// File: /workspace/github_cpp_makefile_star2_O3/alexwarth[P]nothing/main.cpp
// Function: vprintf2(char const*, __va_list_tag*, int)
void vprintf2(const char *fmt, va_list args, value_t n) {
  int oldDebug = debug; debug = 0;
  while (1)
    switch (*fmt) { case 0:   va_end(args); debug = oldDebug; return;
                    case '%': fmt++;
                              switch (*fmt++) { case '%': putchar('%');                                                  break;
                                                case 'o': fsend1(sPrint, va_arg(args, value_t));                         break;
                                                case 'd': printf("%d", va_arg(args, int));                               break;
                                                case 'S': printf2("ipb(ip=%o): [", ip);
                                                          for (int idx = 0; idx < IntValue(numSlots(ipb)); idx++) {
                                                            if (idx > 0) printf2(", ");
                                                            value_t instr = slotAt(ipb, Int(idx)),
                                                                    prim  = slotAt(instr, Int(0)),
                                                                    arg   = slotAt(instr, Int(1));
                                                            if (idx == IntValue(ip)) printf2("<<");
                                                            printf2("%o(%o)", primNames[IntValue(prim)], arg);
                                                            if (idx == IntValue(ip)) printf2(">>");
                                                          }
                                                          printf2("]\nfp: %o\n", fp);
                                                          printf2("/---------------------------------------------\\\n");
                                                          for (int spv = IntValue(sp); spv >= 0; spv--)
                                                            printf2("  %o\n", slotAt(stack, Int(spv)));
                                                          printf2("\\---------------------------------------------/\n"); break;
                                                default:  putchar('%'); fmt--; };
                              break;
                    default:  putchar(*fmt++); }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rsi, %r14
movq %rdi, %rbx
movl 0x112d2(%rip), %eax     # 0x13540
movl %eax, 0x4(%rsp)
movl $0x0, 0x112c4(%rip)     # 0x13540
leaq 0x10ffd(%rip), %r15     # 0x13280
leaq 0xa5c1(%rip), %r12      # 0xc84b
movq %rsi, 0x8(%rsp)
movzbl (%rbx), %eax
cmpl $0x25, %eax
je 0x22ac
testl %eax, %eax
je 0x2633
movsbl %al, %edi
incq %rbx
callq 0x20b0
jmp 0x228f
leaq 0x2(%rbx), %r13
movzbl 0x1(%rbx), %eax
cmpl $0x63, %eax
jg 0x24a8
cmpl $0x25, %eax
je 0x24e9
cmpl $0x53, %eax
jne 0x24d7
movq %r13, 0x10(%rsp)
movl 0x1127a(%rip), %esi     # 0x13554
leaq 0xa2b6(%rip), %rdi      # 0xc597
xorl %eax, %eax
callq 0x21cc
movl 0x11262(%rip), %edi     # 0x13550
callq 0x29e3
movl 0x11247(%rip), %ecx     # 0x13540
testl %ecx, %ecx
setne %dl
testb $0x1, %al
sete %sil
testb %sil, %dl
jne 0x2658
xorl %ebp, %ebp
xorl %r13d, %r13d
sarl %eax
cmpl %eax, %r13d
jge 0x251a
testl %r13d, %r13d
je 0x2336
leaq 0xa2b2(%rip), %rdi      # 0xc5db
xorl %eax, %eax
callq 0x21cc
movl 0x1120a(%rip), %ecx     # 0x13540
movl 0x11214(%rip), %esi     # 0x13550
testl %ecx, %ecx
sete %al
testb $0x1, %sil
sete %dl
orb %al, %dl
je 0x26be
sarl %esi
movl %ebp, %edx
sarl %edx
testl %ecx, %ecx
je 0x2388
testl %edx, %edx
js 0x264c
movq 0x11247(%rip), %rax     # 0x135b0
movslq %esi, %rsi
leaq (%rsi,%rsi,2), %rdi
movl (%rax,%rdi,8), %edi
testb $0x1, %dil
je 0x2739
sarl %edi
cmpl %edi, %edx
jl 0x2392
jmp 0x264c
movq 0x11221(%rip), %rax     # 0x135b0
movslq %esi, %rsi
leaq (%rsi,%rsi,2), %rsi
movq 0x10(%rax,%rsi,8), %rsi
movslq %edx, %rdx
movl (%rsi,%rdx,4), %edx
testl %ecx, %ecx
je 0x23b0
movl %edx, %esi
andl $0x1, %esi
jne 0x26b5
sarl %edx
movslq %edx, %rdx
testl %ecx, %ecx
je 0x23ed
leaq (%rdx,%rdx,2), %rsi
movl (%rax,%rsi,8), %esi
testb $0x1, %sil
je 0x26f2
cmpl $0x1, %esi
jle 0x271a
cmpl $0x3, %esi
jbe 0x26fb
movl 0x11172(%rip), %esi     # 0x13554
testb $0x1, %sil
jne 0x23f3
jmp 0x26d3
movl 0x11161(%rip), %esi     # 0x13554
leaq (%rdx,%rdx,2), %rdx
movq 0x10(%rax,%rdx,8), %rax
movl (%rax), %r14d
movl 0x4(%rax), %ebx
sarl %esi
cmpl %esi, %r13d
jne 0x241d
leaq 0xa438(%rip), %rdi      # 0xc848
xorl %eax, %eax
callq 0x21cc
movl 0x11123(%rip), %ecx     # 0x13540
testl %ecx, %ecx
je 0x242d
movl %r14d, %eax
andl $0x1, %eax
je 0x2696
sarl %r14d
movslq %r14d, %rax
movq (%r15,%rax,8), %rsi
movq %r12, %rdi
movl %ebx, %edx
xorl %eax, %eax
callq 0x21cc
movl 0x1110b(%rip), %eax     # 0x13554
cmpl $0x0, 0x110f0(%rip)     # 0x13540
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x2677
sarl %eax
cmpl %eax, %r13d
jne 0x2478
leaq 0xa3e1(%rip), %rdi      # 0xc852
xorl %eax, %eax
callq 0x21cc
incl %r13d
movl 0x110cf(%rip), %edi     # 0x13550
callq 0x29e3
movl 0x110b4(%rip), %ecx     # 0x13540
testl %ecx, %ecx
setne %dl
testb $0x1, %al
sete %sil
addl $0x2, %ebp
testb %sil, %dl
je 0x2312
jmp 0x2658
cmpl $0x64, %eax
je 0x24fb
cmpl $0x6f, %eax
jne 0x24d7
movl 0x110d8(%rip), %edi     # 0x13590
movl (%r14), %ecx
cmpq $0x28, %rcx
ja 0x25f4
movq %rcx, %rax
addq 0x10(%r14), %rax
addl $0x8, %ecx
movl %ecx, (%r14)
jmp 0x2600
incq %rbx
movl $0x25, %edi
callq 0x20b0
jmp 0x228f
movl $0x25, %edi
callq 0x20b0
movq %r13, %rbx
jmp 0x228f
movl (%r14), %ecx
cmpq $0x28, %rcx
ja 0x260f
movq %rcx, %rax
addq 0x10(%r14), %rax
addl $0x8, %ecx
movl %ecx, (%r14)
jmp 0x261b
movl 0x11038(%rip), %esi     # 0x13558
leaq 0xa32e(%rip), %rdi      # 0xc855
xorl %eax, %eax
callq 0x21cc
leaq 0xa32a(%rip), %rdi      # 0xc85f
xorl %eax, %eax
callq 0x21cc
movl 0x1101a(%rip), %eax     # 0x1355c
cmpl $0x0, 0x10ff7(%rip)     # 0x13540
setne %cl
testb $0x1, %al
sete %dl
testb %dl, %cl
jne 0x2780
sarl %eax
movq 0x8(%rsp), %r14
leaq 0xa329(%rip), %r13      # 0xc890
js 0x25dc
movl %eax, %ebx
movl 0x10fdb(%rip), %ecx     # 0x1354c
movl 0x10fc9(%rip), %edx     # 0x13540
testl %edx, %edx
sete %al
testb $0x1, %cl
sete %sil
orb %al, %sil
je 0x26c7
sarl %ecx
movq 0x1101b(%rip), %rax     # 0x135b0
movslq %ecx, %rcx
testl %edx, %edx
je 0x25ba
leaq (%rcx,%rcx,2), %rdx
movl (%rax,%rdx,8), %edx
testb $0x1, %dl
je 0x2761
sarl %edx
movslq %edx, %rdx
cmpq %rdx, %rbx
jge 0x2758
leaq (%rcx,%rcx,2), %rcx
movq 0x10(%rax,%rcx,8), %rax
movl (%rax,%rbx,4), %esi
movq %r13, %rdi
xorl %eax, %eax
callq 0x21cc
leaq -0x1(%rbx), %rax
testq %rbx, %rbx
movq %rax, %rbx
jg 0x256b
leaq 0xa381(%rip), %rdi      # 0xc964
xorl %eax, %eax
callq 0x21cc
movq 0x10(%rsp), %rbx
jmp 0x228f
movq 0x8(%r14), %rax
leaq 0x8(%rax), %rcx
movq %rcx, 0x8(%r14)
movl (%rax), %esi
callq 0x315d
movq %r13, %rbx
jmp 0x228f
movq 0x8(%r14), %rax
leaq 0x8(%rax), %rcx
movq %rcx, 0x8(%r14)
movl (%rax), %esi
leaq 0xc8aa(%rip), %rdi      # 0xeece
xorl %eax, %eax
callq 0x2030
movq %r13, %rbx
jmp 0x228f
movl 0x4(%rsp), %eax
movl %eax, 0x10f03(%rip)     # 0x13540
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x9f8b(%rip), %rdi      # 0xc5de
jmp 0x2740
leaq 0x9b2f(%rip), %rdi      # 0xc18e
leaq 0x99d1(%rip), %rsi      # 0xc037
leaq 0x9f38(%rip), %rcx      # 0xc5a5
movl $0xd2, %edx
callq 0x2060
leaq 0x9b10(%rip), %rdi      # 0xc18e
leaq 0x99b2(%rip), %rsi      # 0xc037
leaq 0x9f19(%rip), %rcx      # 0xc5a5
movl $0xd9, %edx
callq 0x2060
leaq 0x9af1(%rip), %rdi      # 0xc18e
leaq 0x9993(%rip), %rsi      # 0xc037
leaq 0x9efa(%rip), %rcx      # 0xc5a5
movl $0xd8, %edx
callq 0x2060
leaq 0x999e(%rip), %rdi      # 0xc05a
jmp 0x2721
leaq 0x9995(%rip), %rdi      # 0xc05a
jmp 0x2740
leaq 0x998c(%rip), %rdi      # 0xc05a
jmp 0x2768
leaq 0x9ab4(%rip), %rdi      # 0xc18e
leaq 0x9956(%rip), %rsi      # 0xc037
leaq 0x9ebd(%rip), %rcx      # 0xc5a5
movl $0xd7, %edx
callq 0x2060
leaq 0x9a95(%rip), %rdi      # 0xc18e
jmp 0x2721
leaq 0xa078(%rip), %rdi      # 0xc77a
leaq 0x992e(%rip), %rsi      # 0xc037
leaq 0x9e95(%rip), %rcx      # 0xc5a5
movl $0xd6, %edx
callq 0x2060
leaq 0x9f8b(%rip), %rdi      # 0xc6ac
leaq 0x990f(%rip), %rsi      # 0xc037
leaq 0x9e76(%rip), %rcx      # 0xc5a5
movl $0xd5, %edx
callq 0x2060
leaq 0x9a4e(%rip), %rdi      # 0xc18e
leaq 0x98f0(%rip), %rsi      # 0xc037
leaq 0x9e57(%rip), %rcx      # 0xc5a5
movl $0xd4, %edx
callq 0x2060
leaq 0xa137(%rip), %rdi      # 0xc896
jmp 0x2768
leaq 0x9a26(%rip), %rdi      # 0xc18e
leaq 0x98c8(%rip), %rsi      # 0xc037
leaq 0x9e2f(%rip), %rcx      # 0xc5a5
movl $0xde, %edx
callq 0x2060
leaq 0x9a07(%rip), %rdi      # 0xc18e
leaq 0x98a9(%rip), %rsi      # 0xc037
leaq 0x9e10(%rip), %rcx      # 0xc5a5
movl $0xdd, %edx
callq 0x2060