// File: /workspace/github_cpp_makefile_star2_O1/alexwarth[P]nothing/main.cpp
// Function: interp(int, int)
value_t interp(value_t prog, value_t retFp = Int(-1)) {
  ipb = prog;
  ip  = Int(0);
  while (1) {
    value_t instr = slotAt(ipb, ip), primIdx = IntValue(car(instr)), op = cdr(instr);
    dPrintf2("\n\n%S\nExecuting instruction <<%o %o>>\n", primNames[primIdx], op);
    if (0 <= primIdx && primIdx < numPrims) prims[primIdx](op);
    else                                    error("%d is not a valid primitive\n", primIdx);
    ip = Int(IntValue(ip) + 1);
    dPrintf2("\n%S\n\n\n");
    if (primIdx == IntValue(Halt))
      break;
    else if (primIdx == IntValue(Ret) && fp == retFp) {
      ip = Int(IntValue(ip) - 1); // undo increment of ip
      break;
    }
  }
  return _p(Pop);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl %esi, %ebx
movl %edi, 0xc6e4(%rip)      # 0x13550
movl $0x1, 0xc6de(%rip)      # 0x13554
leaq 0x814f(%rip), %r14      # 0xefcc
leaq 0x818b(%rip), %r15      # 0xf00f
movl 0xc6c6(%rip), %ecx      # 0x13550
movl 0xc6b0(%rip), %eax      # 0x13540
testl %eax, %eax
sete %dl
testb $0x1, %cl
sete %sil
orb %dl, %sil
je 0x70c5
movl 0xc6a9(%rip), %edx      # 0x13554
testl %eax, %eax
setne %sil
testb $0x1, %dl
sete %dil
andb %sil, %dil
cmpb $0x1, %dil
je 0x70b3
sarl %ecx
sarl %edx
movslq %ecx, %rsi
testl %eax, %eax
je 0x6ef9
testl %edx, %edx
js 0x70bc
movq 0xc6d1(%rip), %rcx      # 0x135b0
leaq (%rsi,%rsi,2), %rdi
movl (%rcx,%rdi,8), %ecx
testb $0x1, %cl
je 0x70b3
sarl %ecx
cmpl %ecx, %edx
jge 0x70bc
movq 0xc6b0(%rip), %rcx      # 0x135b0
leaq (%rsi,%rsi,2), %rsi
movq 0x10(%rcx,%rsi,8), %rsi
movslq %edx, %rdx
movl (%rsi,%rdx,4), %edx
testl %eax, %eax
je 0x6f1e
movl %edx, %esi
andl $0x1, %esi
jne 0x70c5
sarl %edx
movslq %edx, %rdx
testl %eax, %eax
je 0x6f41
leaq (%rdx,%rdx,2), %rsi
movl (%rcx,%rsi,8), %esi
testb $0x1, %sil
je 0x70b3
cmpl $0x1, %esi
jle 0x70bc
leaq (%rdx,%rdx,2), %rsi
movq 0x10(%rcx,%rsi,8), %rdx
movl (%rdx), %ebp
testl %eax, %eax
je 0x6f5b
movl %ebp, %edi
andl $0x1, %edi
je 0x70b3
testl %eax, %eax
je 0x6f73
movl (%rcx,%rsi,8), %eax
testb $0x1, %al
je 0x70b3
cmpl $0x3, %eax
jle 0x70bc
sarl %ebp
movl 0x4(%rdx), %r12d
movslq %ebp, %r13
leaq 0xc2fd(%rip), %rax      # 0x13280
movq (%rax,%r13,8), %rsi
movq %r14, %rdi
movl %r12d, %edx
xorl %eax, %eax
callq 0x27ba
testl %r13d, %r13d
js 0x7122
cmpq %r13, 0xc4dc(%rip)      # 0x13480
jbe 0x7122
movl %r12d, %edi
leaq 0xc0cc(%rip), %rax      # 0x13080
callq *(%rax,%r13,8)
movl 0xc596(%rip), %eax      # 0x13554
cmpl $0x0, 0xc57b(%rip)      # 0x13540
setne %cl
testb $0x1, %al
sete %dl
testb %dl, %cl
jne 0x7103
orl $0x1, %eax
addl $0x2, %eax
movl %eax, 0xc573(%rip)      # 0x13554
movq %r15, %rdi
xorl %eax, %eax
callq 0x27ba
movl 0xc513(%rip), %ecx      # 0x13504
movl 0xc549(%rip), %eax      # 0x13540
testl %eax, %eax
setne %dl
testb $0x1, %cl
sete %sil
andb %dl, %sil
cmpb $0x1, %sil
je 0x70e4
sarl %ecx
cmpl %ecx, %ebp
je 0x7076
testl %eax, %eax
setne %dl
movl 0xc4ab(%rip), %ecx      # 0x134cc
testb $0x1, %cl
sete %sil
andb %dl, %sil
cmpb $0x1, %sil
je 0x7132
sarl %ecx
cmpl %ecx, %ebp
jne 0x6e84
cmpl %ebx, 0xc513(%rip)      # 0x13558
jne 0x6e84
testl %eax, %eax
setne %dl
movl 0xc4fe(%rip), %ecx      # 0x13554
testb $0x1, %cl
sete %sil
andb %dl, %sil
cmpb $0x1, %sil
je 0x7170
orl $0x1, %ecx
addl $-0x2, %ecx
movl %ecx, 0xc4de(%rip)      # 0x13554
testl %eax, %eax
setne %cl
movl 0xc40b(%rip), %eax      # 0x1348c
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x7151
sarl %eax
cltq
movl 0xc4ad(%rip), %edi      # 0x13548
leaq 0xbfde(%rip), %rcx      # 0x13080
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmpq *(%rcx,%rax,8)
leaq 0x50d4(%rip), %rdi      # 0xc18e
jmp 0x70cc
leaq 0x7e3b(%rip), %rdi      # 0xeefe
jmp 0x70cc
leaq 0x4f8e(%rip), %rdi      # 0xc05a
leaq 0x4f64(%rip), %rsi      # 0xc037
leaq 0x7e03(%rip), %rcx      # 0xeedd
movl $0x1cb, %edx            # imm = 0x1CB
callq 0x2060
leaq 0x50a3(%rip), %rdi      # 0xc18e
leaq 0x4f45(%rip), %rsi      # 0xc037
leaq 0x7de4(%rip), %rcx      # 0xeedd
movl $0x1d1, %edx            # imm = 0x1D1
callq 0x2060
leaq 0x5084(%rip), %rdi      # 0xc18e
leaq 0x4f26(%rip), %rsi      # 0xc037
leaq 0x7dc5(%rip), %rcx      # 0xeedd
movl $0x1cf, %edx            # imm = 0x1CF
callq 0x2060
leaq 0x7ec9(%rip), %rdi      # 0xeff2
movl %ebp, %esi
xorl %eax, %eax
callq 0x2850
leaq 0x5055(%rip), %rdi      # 0xc18e
leaq 0x4ef7(%rip), %rsi      # 0xc037
leaq 0x7d96(%rip), %rcx      # 0xeedd
movl $0x1d3, %edx            # imm = 0x1D3
callq 0x2060
leaq 0x5036(%rip), %rdi      # 0xc18e
leaq 0x4ed8(%rip), %rsi      # 0xc037
leaq 0x7d77(%rip), %rcx      # 0xeedd
movl $0x1d8, %edx            # imm = 0x1D8
callq 0x2060
leaq 0x5017(%rip), %rdi      # 0xc18e
leaq 0x4eb9(%rip), %rsi      # 0xc037
leaq 0x7d58(%rip), %rcx      # 0xeedd
movl $0x1d4, %edx            # imm = 0x1D4
callq 0x2060