// File: /workspace/github_c_makefile_star2_O1/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 0x69c9
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 0x69cb
movl (%rcx,%rsi,4), %edx
movq %rax, %rsi
testl %edx, %edx
jne 0x69a9
jmp 0x69cb
xorl %eax, %eax
leaq 0x200004(%rbx), %r14
movb $0x0, 0x2045b8(%rbx,%rax)
xorl %ecx, %ecx
movq %rcx, %rax
cmpq $0x3ff, %rcx            # imm = 0x3FF
je 0x69ff
movb 0x2045b8(%rbx,%rax), %dl
movb %dl, (%rsp,%rax)
leaq 0x1(%rax), %rcx
testb %dl, %dl
jne 0x69dc
addq %rsp, %rcx
jmp 0x6a03
leaq (%rsp,%rax), %rcx
cmpq $0x3ff, %rax            # imm = 0x3FF
jne 0x6a0e
movb $0x0, (%rcx)
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 0x6a61
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 0x6a63
movl (%rax,%rsi,4), %ecx
movq %rdx, %rsi
testl %ecx, %ecx
jne 0x6a41
jmp 0x6a63
xorl %edx, %edx
movb $0x0, 0x2045b8(%rbx,%rdx)
xorl %ecx, %ecx
movq %rcx, %rax
cmpq $0x3ff, %rcx            # imm = 0x3FF
je 0x6a9b
movb 0x2045b8(%rbx,%rax), %dl
movb %dl, 0x410(%rsp,%rax)
leaq 0x1(%rax), %rcx
testb %dl, %dl
jne 0x6a6d
addq %rsp, %rcx
addq $0x410, %rcx            # imm = 0x410
jmp 0x6aa6
leaq (%rsp,%rax), %rcx
addq $0x410, %rcx            # imm = 0x410
cmpq $0x3ff, %rax            # imm = 0x3FF
jne 0x6ab1
movb $0x0, (%rcx)
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 0x6b04
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 0x6b06
movl (%rax,%rsi,4), %ecx
movq %rdx, %rsi
testl %ecx, %ecx
jne 0x6ae4
jmp 0x6b06
xorl %edx, %edx
movb $0x0, 0x2045b8(%rbx,%rdx)
xorl %ecx, %ecx
movq %rcx, %rax
cmpq $0x3ff, %rcx            # imm = 0x3FF
je 0x6b3e
movb 0x2045b8(%rbx,%rax), %dl
movb %dl, 0x820(%rsp,%rax)
leaq 0x1(%rax), %rcx
testb %dl, %dl
jne 0x6b10
addq %rsp, %rcx
addq $0x820, %rcx            # imm = 0x820
jmp 0x6b49
leaq (%rsp,%rax), %rcx
addq $0x820, %rcx            # imm = 0x820
cmpq $0x3ff, %rax            # imm = 0x3FF
jne 0x6b54
movb $0x0, (%rcx)
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 0x6ba7
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 0x6ba9
movl (%rax,%rsi,4), %ecx
movq %rdx, %rsi
testl %ecx, %ecx
jne 0x6b87
jmp 0x6ba9
xorl %edx, %edx
movb $0x0, 0x2045b8(%rbx,%rdx)
xorl %ecx, %ecx
movq %rcx, %rax
cmpq $0x3ff, %rcx            # imm = 0x3FF
je 0x6be1
movb 0x2045b8(%rbx,%rax), %dl
movb %dl, 0xc30(%rsp,%rax)
leaq 0x1(%rax), %rcx
testb %dl, %dl
jne 0x6bb3
addq %rsp, %rcx
addq $0xc30, %rcx            # imm = 0xC30
jmp 0x6bec
leaq (%rsp,%rax), %rcx
addq $0xc30, %rcx            # imm = 0xC30
cmpq $0x3ff, %rax            # imm = 0x3FF
jne 0x6bf7
movb $0x0, (%rcx)
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