section .text global _start _start: mov rdi, 42 call main mov rdi, rax mov rax, 60 ; syscall: exit syscall global main main: push rbp mov rbp, rsp jmp .prologue .args: mov qword [rbp -8], rdi .body: mov rbx, 42 mov rcx, qword [rbp -8] mov rax, rbx cmp rcx, rax sete bl cmp bl, 0 je .Be mov rbx, 7 mov qword [rbp -16], rbx mov rdi, qword [rbp -16] mov rax, rsp sub rsp, 8 and rsp, -16 mov [rsp], rax call main pop rsp mov rbx, rax mov rax, rbx jmp .epilogue jmp .PHI4 .Be: lea rax, main jmp .epilogue .PHI4: .epilogue: pop rbx add rsp, 16 pop rbp ret .prologue: sub rsp, 16 push rbx jmp .args