// File: /workspace/github_c_makefile_star2_O3/crcx[P]retroforth/vm/nga-c/./dev-unix.c
// Function: unix_exec3
V unix_exec3(NgaState *vm) {
  char path[1025];
  char arg0[1025], arg1[1025], arg2[1025];
  strlcpy(arg2, string_extract(vm, stack_pop(vm)), 1024);
  strlcpy(arg1, string_extract(vm, stack_pop(vm)), 1024);
  strlcpy(arg0, string_extract(vm, stack_pop(vm)), 1024);
  strlcpy(path, string_extract(vm, stack_pop(vm)), 1024);
  execl(path, path, arg0, arg1, arg2, (char *)0);
  stack_push(vm, errno);
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x1038, %rsp           # imm = 0x1038
movq %rdi, %rbx
movslq 0x2043a4(%rdi), %rax
imulq $0x874, %rax, %rax      # imm = 0x874
addq %rdi, %rax
addq $0x200004, %rax         # imm = 0x200004
movslq (%rax), %rcx
leal -0x1(%rcx), %edx
movl %edx, (%rax)
movslq 0x14(%rax,%rcx,4), %rax
movl (%rdi,%rax,4), %edx
testl %edx, %edx
je 0x68ff
leaq (%rbx,%rax,4), %rcx
addq $0x4, %rcx
xorl %esi, %esi
leaq 0x1(%rsi), %rax
movb %dl, 0x2045b8(%rbx,%rsi)
cmpq $0x1ffe, %rsi           # imm = 0x1FFE
ja 0x6901
movl (%rcx,%rsi,4), %edx
movq %rax, %rsi
testl %edx, %edx
jne 0x68df
jmp 0x6901
xorl %eax, %eax
leaq 0x200004(%rbx), %r14
movb $0x0, 0x2045b8(%rbx,%rax)
xorl %eax, %eax
cmpq $0x3ff, %rax            # imm = 0x3FF
je 0x692d
movb 0x2045b8(%rbx,%rax), %cl
movb %cl, (%rsp,%rax)
incq %rax
testb %cl, %cl
jne 0x6912
jmp 0x6931
movb $0x0, (%rsp,%rax)
movslq 0x2043a4(%rbx), %rax
imulq $0x874, %rax, %rax      # imm = 0x874
leaq (%r14,%rax), %rcx
movslq (%r14,%rax), %rdx
leal -0x1(%rdx), %esi
movl %esi, (%r14,%rax)
movslq 0x14(%rcx,%rdx,4), %rax
movl (%rbx,%rax,4), %ecx
testl %ecx, %ecx
je 0x6984
leaq (%rbx,%rax,4), %rax
addq $0x4, %rax
xorl %esi, %esi
leaq 0x1(%rsi), %rdx
movb %cl, 0x2045b8(%rbx,%rsi)
cmpq $0x1ffe, %rsi           # imm = 0x1FFE
ja 0x6986
movl (%rax,%rsi,4), %ecx
movq %rdx, %rsi
testl %ecx, %ecx
jne 0x6964
jmp 0x6986
xorl %edx, %edx
movb $0x0, 0x2045b8(%rbx,%rdx)
xorl %eax, %eax
cmpq $0x3ff, %rax            # imm = 0x3FF
je 0x69af
movb 0x2045b8(%rbx,%rax), %cl
movb %cl, 0x410(%rsp,%rax)
incq %rax
testb %cl, %cl
jne 0x6990
jmp 0x69b7
movb $0x0, 0x410(%rsp,%rax)
movslq 0x2043a4(%rbx), %rax
imulq $0x874, %rax, %rax      # imm = 0x874
leaq (%r14,%rax), %rcx
movslq (%r14,%rax), %rdx
leal -0x1(%rdx), %esi
movl %esi, (%r14,%rax)
movslq 0x14(%rcx,%rdx,4), %rax
movl (%rbx,%rax,4), %ecx
testl %ecx, %ecx
je 0x6a0a
leaq (%rbx,%rax,4), %rax
addq $0x4, %rax
xorl %esi, %esi
leaq 0x1(%rsi), %rdx
movb %cl, 0x2045b8(%rbx,%rsi)
cmpq $0x1ffe, %rsi           # imm = 0x1FFE
ja 0x6a0c
movl (%rax,%rsi,4), %ecx
movq %rdx, %rsi
testl %ecx, %ecx
jne 0x69ea
jmp 0x6a0c
xorl %edx, %edx
movb $0x0, 0x2045b8(%rbx,%rdx)
xorl %eax, %eax
cmpq $0x3ff, %rax            # imm = 0x3FF
je 0x6a35
movb 0x2045b8(%rbx,%rax), %cl
movb %cl, 0x820(%rsp,%rax)
incq %rax
testb %cl, %cl
jne 0x6a16
jmp 0x6a3d
movb $0x0, 0x820(%rsp,%rax)
movslq 0x2043a4(%rbx), %rax
imulq $0x874, %rax, %rax      # imm = 0x874
leaq (%r14,%rax), %rcx
movslq (%r14,%rax), %rdx
leal -0x1(%rdx), %esi
movl %esi, (%r14,%rax)
movslq 0x14(%rcx,%rdx,4), %rax
movl (%rbx,%rax,4), %ecx
testl %ecx, %ecx
je 0x6a90
leaq (%rbx,%rax,4), %rax
addq $0x4, %rax
xorl %esi, %esi
leaq 0x1(%rsi), %rdx
movb %cl, 0x2045b8(%rbx,%rsi)
cmpq $0x1ffe, %rsi           # imm = 0x1FFE
ja 0x6a92
movl (%rax,%rsi,4), %ecx
movq %rdx, %rsi
testl %ecx, %ecx
jne 0x6a70
jmp 0x6a92
xorl %edx, %edx
movb $0x0, 0x2045b8(%rbx,%rdx)
xorl %eax, %eax
cmpq $0x3ff, %rax            # imm = 0x3FF
je 0x6abb
movb 0x2045b8(%rbx,%rax), %cl
movb %cl, 0xc30(%rsp,%rax)
incq %rax
testb %cl, %cl
jne 0x6a9c
jmp 0x6ac3
movb $0x0, 0xc30(%rsp,%rax)
leaq 0xc30(%rsp), %rdi
leaq 0x820(%rsp), %rdx
leaq 0x410(%rsp), %rcx
movq %rsp, %r8
movq %rdi, %rsi
xorl %r9d, %r9d
xorl %eax, %eax
callq 0x3400
callq 0x3070
movl (%rax), %eax
movslq 0x2043a4(%rbx), %rcx
imulq $0x874, %rcx, %rcx      # imm = 0x874
leaq (%r14,%rcx), %rdx
movslq (%r14,%rcx), %rsi
leaq 0x1(%rsi), %rdi
movl %edi, (%r14,%rcx)
movl %eax, 0x18(%rdx,%rsi,4)
addq $0x1038, %rsp           # imm = 0x1038
popq %rbx
popq %r14
retq