// File: /workspace/github_c_makefile_star2_O1/crcx[P]retroforth/vm/nga-c/./dev-unix.c
// Function: unix_exec2
V unix_exec2(NgaState *vm) {
  char path[1025];
  char arg0[1025], arg1[1025];
  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, (char *)0);
  stack_push(vm, errno);
}

// Assembly:
pushq %r14
pushq %rbx
subq $0xc28, %rsp            # imm = 0xC28
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 0x6788
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 0x678a
movl (%rcx,%rsi,4), %edx
movq %rax, %rsi
testl %edx, %edx
jne 0x6768
jmp 0x678a
xorl %eax, %eax
leaq 0x200004(%rbx), %r14
movb $0x0, 0x2045b8(%rbx,%rax)
xorl %ecx, %ecx
movq %rcx, %rax
cmpq $0x3ff, %rcx            # imm = 0x3FF
je 0x67be
movb 0x2045b8(%rbx,%rax), %dl
movb %dl, (%rsp,%rax)
leaq 0x1(%rax), %rcx
testb %dl, %dl
jne 0x679b
addq %rsp, %rcx
jmp 0x67c2
leaq (%rsp,%rax), %rcx
cmpq $0x3ff, %rax            # imm = 0x3FF
jne 0x67cd
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 0x6820
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 0x6822
movl (%rax,%rsi,4), %ecx
movq %rdx, %rsi
testl %ecx, %ecx
jne 0x6800
jmp 0x6822
xorl %edx, %edx
movb $0x0, 0x2045b8(%rbx,%rdx)
xorl %ecx, %ecx
movq %rcx, %rax
cmpq $0x3ff, %rcx            # imm = 0x3FF
je 0x685a
movb 0x2045b8(%rbx,%rax), %dl
movb %dl, 0x410(%rsp,%rax)
leaq 0x1(%rax), %rcx
testb %dl, %dl
jne 0x682c
addq %rsp, %rcx
addq $0x410, %rcx            # imm = 0x410
jmp 0x6865
leaq (%rsp,%rax), %rcx
addq $0x410, %rcx            # imm = 0x410
cmpq $0x3ff, %rax            # imm = 0x3FF
jne 0x6870
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 0x68c3
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 0x68c5
movl (%rax,%rsi,4), %ecx
movq %rdx, %rsi
testl %ecx, %ecx
jne 0x68a3
jmp 0x68c5
xorl %edx, %edx
movb $0x0, 0x2045b8(%rbx,%rdx)
xorl %ecx, %ecx
movq %rcx, %rax
cmpq $0x3ff, %rcx            # imm = 0x3FF
je 0x68fd
movb 0x2045b8(%rbx,%rax), %dl
movb %dl, 0x820(%rsp,%rax)
leaq 0x1(%rax), %rcx
testb %dl, %dl
jne 0x68cf
addq %rsp, %rcx
addq $0x820, %rcx            # imm = 0x820
jmp 0x6908
leaq (%rsp,%rax), %rcx
addq $0x820, %rcx            # imm = 0x820
cmpq $0x3ff, %rax            # imm = 0x3FF
jne 0x6913
movb $0x0, (%rcx)
leaq 0x820(%rsp), %rdi
leaq 0x410(%rsp), %rdx
movq %rsp, %rcx
movq %rdi, %rsi
xorl %r8d, %r8d
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 $0xc28, %rsp            # imm = 0xC28
popq %rbx
popq %r14
retq