// File: /workspace/github_cpp_makefile_star2_O2/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, %r15
movq %rdi, %rbx
movl 0x112d2(%rip), %eax     # 0x13540
movl %eax, 0x4(%rsp)
andl $0x0, 0x112c7(%rip)     # 0x13540
leaq 0x95cb(%rip), %r12      # 0xb84b
leaq 0x9609(%rip), %r14      # 0xb890
pushq $0x25
popq %rbp
movq %rsi, 0x8(%rsp)
movzbl (%rbx), %eax
cmpl $0x25, %eax
je 0x22ac
testl %eax, %eax
je 0x2611
movsbl %al, %edi
incq %rbx
callq 0x20b0
jmp 0x228f
leaq 0x2(%rbx), %r13
movzbl 0x1(%rbx), %eax
cmpl $0x6f, %eax
je 0x24ce
cmpl $0x53, %eax
je 0x22e0
cmpl $0x64, %eax
je 0x24af
cmpl $0x25, %eax
jne 0x24f3
movl %ebp, %edi
callq 0x20b0
movq %r13, %rbx
jmp 0x228f
movq %r13, 0x10(%rsp)
movl 0x11269(%rip), %esi     # 0x13554
xorl %ebp, %ebp
leaq 0x92a3(%rip), %rdi      # 0xb597
xorl %eax, %eax
callq 0x21cc
xorl %r13d, %r13d
movl 0x1124c(%rip), %edi     # 0x13550
callq 0x29b8
movl 0x11231(%rip), %ecx     # 0x13540
testl %ecx, %ecx
sete %dl
movl %eax, %esi
orb %dl, %sil
testb $0x1, %sil
je 0x2636
sarl %eax
cmpl %eax, %r13d
jge 0x2502
testl %r13d, %r13d
je 0x2347
leaq 0x92a1(%rip), %rdi      # 0xb5db
xorl %eax, %eax
callq 0x21cc
movl 0x111f9(%rip), %ecx     # 0x13540
movl 0x11203(%rip), %eax     # 0x13550
testl %ecx, %ecx
sete %dl
testb $0x1, %al
sete %sil
orb %dl, %sil
je 0x2674
sarl %eax
movl %ebp, %edx
sarl %edx
movslq %eax, %rsi
testl %ecx, %ecx
je 0x2399
testl %edx, %edx
js 0x262a
movq 0x11233(%rip), %rax     # 0x135b0
imulq $0x18, %rsi, %rdi
movl (%rax,%rdi), %edi
testb $0x1, %dil
je 0x2720
sarl %edi
cmpl %edi, %edx
jl 0x23a0
jmp 0x262a
movq 0x11210(%rip), %rax     # 0x135b0
imulq $0x18, %rsi, %rsi
movq 0x10(%rax,%rsi), %rsi
movslq %edx, %rdx
movl (%rsi,%rdx,4), %edx
testl %ecx, %ecx
je 0x23be
movl %edx, %esi
andl $0x1, %esi
jne 0x26be
sarl %edx
movslq %edx, %rdx
testl %ecx, %ecx
je 0x23f7
imulq $0x18, %rdx, %rsi
movl (%rax,%rsi), %edi
testb $0x1, %dil
je 0x26f8
cmpl $0x1, %edi
jle 0x2701
movl (%rax,%rsi), %esi
testb $0x1, %sil
je 0x26d0
cmpl $0x3, %esi
jle 0x26d9
movl 0x11157(%rip), %esi     # 0x13554
testl %ecx, %ecx
setne %dil
testb $0x1, %sil
sete %r8b
andb %dil, %r8b
cmpb $0x1, %r8b
je 0x2680
imulq $0x18, %rdx, %rdx
movq 0x10(%rax,%rdx), %rax
movl (%rax), %r15d
movl 0x4(%rax), %ebx
sarl %esi
cmpl %esi, %r13d
jne 0x2442
leaq 0x9413(%rip), %rdi      # 0xb848
xorl %eax, %eax
callq 0x21cc
movl 0x110fe(%rip), %ecx     # 0x13540
testl %ecx, %ecx
je 0x2452
movl %r15d, %eax
andl $0x1, %eax
je 0x269f
sarl %r15d
movslq %r15d, %rax
leaq 0x10e21(%rip), %rcx     # 0x13280
movq (%rcx,%rax,8), %rsi
movq %r12, %rdi
movl %ebx, %edx
xorl %eax, %eax
callq 0x21cc
movl 0x110df(%rip), %eax     # 0x13554
cmpl $0x0, 0x110c4(%rip)     # 0x13540
setne %cl
testb $0x1, %al
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
je 0x2655
sarl %eax
cmpl %eax, %r13d
jne 0x24a4
leaq 0x93b5(%rip), %rdi      # 0xb852
xorl %eax, %eax
callq 0x21cc
incl %r13d
addl $0x2, %ebp
jmp 0x22fe
movl (%r15), %ecx
cmpq $0x28, %rcx
ja 0x25d2
movq %rcx, %rax
addq 0x10(%r15), %rax
addl $0x8, %ecx
movl %ecx, (%r15)
jmp 0x25de
movl 0x110bc(%rip), %edi     # 0x13590
movl (%r15), %ecx
cmpq $0x28, %rcx
ja 0x25f6
movq %rcx, %rax
addq 0x10(%r15), %rax
addl $0x8, %ecx
movl %ecx, (%r15)
jmp 0x2602
incq %rbx
movl %ebp, %edi
callq 0x20b0
jmp 0x228f
movl 0x11050(%rip), %esi     # 0x13558
leaq 0x9346(%rip), %rdi      # 0xb855
xorl %eax, %eax
callq 0x21cc
leaq 0x9342(%rip), %rdi      # 0xb85f
xorl %eax, %eax
callq 0x21cc
movl 0x11032(%rip), %ebx     # 0x1355c
cmpl $0x0, 0x1100f(%rip)     # 0x13540
setne %al
testb $0x1, %bl
sete %cl
testb %cl, %al
jne 0x2767
sarl %ebx
movq 0x8(%rsp), %r15
pushq $0x25
popq %rbp
movq 0x10(%rsp), %r13
testl %ebx, %ebx
js 0x25bc
movl 0x10ff1(%rip), %ecx     # 0x1354c
movl 0x10fdf(%rip), %edx     # 0x13540
testl %edx, %edx
sete %al
testb $0x1, %cl
sete %sil
orb %al, %sil
je 0x26c7
sarl %ecx
movq 0x11031(%rip), %rax     # 0x135b0
movslq %ecx, %rcx
testl %edx, %edx
je 0x25a0
imulq $0x18, %rcx, %rdx
movl (%rax,%rdx), %edx
testb $0x1, %dl
je 0x273f
sarl %edx
cmpl %edx, %ebx
jge 0x2748
imulq $0x18, %rcx, %rcx
movq 0x10(%rax,%rcx), %rax
movl %ebx, %ecx
movl (%rax,%rcx,4), %esi
movq %r14, %rdi
xorl %eax, %eax
callq 0x21cc
decl %ebx
jmp 0x2551
leaq 0x93a1(%rip), %rdi      # 0xb964
xorl %eax, %eax
callq 0x21cc
movq %r13, %rbx
jmp 0x228f
movq 0x8(%r15), %rax
leaq 0x8(%rax), %rcx
movq %rcx, 0x8(%r15)
movl (%rax), %esi
leaq 0xb8e7(%rip), %rdi      # 0xdece
xorl %eax, %eax
callq 0x2030
movq %r13, %rbx
jmp 0x228f
movq 0x8(%r15), %rax
leaq 0x8(%rax), %rcx
movq %rcx, 0x8(%r15)
movl (%rax), %esi
callq 0x30f5
movq %r13, %rbx
jmp 0x228f
movl 0x4(%rsp), %eax
movl %eax, 0x10f25(%rip)     # 0x13540
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x8fad(%rip), %rdi      # 0xb5de
jmp 0x2727
leaq 0x8b51(%rip), %rdi      # 0xb18e
leaq 0x89f3(%rip), %rsi      # 0xb037
leaq 0x8f5a(%rip), %rcx      # 0xb5a5
movl $0xd2, %edx
callq 0x2060
leaq 0x8b32(%rip), %rdi      # 0xb18e
leaq 0x89d4(%rip), %rsi      # 0xb037
leaq 0x8f3b(%rip), %rcx      # 0xb5a5
movl $0xd9, %edx
callq 0x2060
leaq 0x89df(%rip), %rdi      # 0xb05a
jmp 0x2727
leaq 0x8b07(%rip), %rdi      # 0xb18e
leaq 0x89a9(%rip), %rsi      # 0xb037
leaq 0x8f10(%rip), %rcx      # 0xb5a5
movl $0xd7, %edx
callq 0x2060
leaq 0x8ae8(%rip), %rdi      # 0xb18e
leaq 0x898a(%rip), %rsi      # 0xb037
leaq 0x8ef1(%rip), %rcx      # 0xb5a5
movl $0xd8, %edx
callq 0x2060
leaq 0x8995(%rip), %rdi      # 0xb05a
jmp 0x2708
leaq 0x898c(%rip), %rdi      # 0xb05a
jmp 0x274f
leaq 0x8ab7(%rip), %rdi      # 0xb18e
jmp 0x26e0
leaq 0x909a(%rip), %rdi      # 0xb77a
leaq 0x8950(%rip), %rsi      # 0xb037
leaq 0x8eb7(%rip), %rcx      # 0xb5a5
movl $0xd6, %edx
callq 0x2060
leaq 0x8a8f(%rip), %rdi      # 0xb18e
jmp 0x2708
leaq 0x8fa4(%rip), %rdi      # 0xb6ac
leaq 0x8928(%rip), %rsi      # 0xb037
leaq 0x8e8f(%rip), %rcx      # 0xb5a5
movl $0xd5, %edx
callq 0x2060
leaq 0x8a67(%rip), %rdi      # 0xb18e
leaq 0x8909(%rip), %rsi      # 0xb037
leaq 0x8e70(%rip), %rcx      # 0xb5a5
movl $0xd4, %edx
callq 0x2060
leaq 0x8a48(%rip), %rdi      # 0xb18e
jmp 0x274f
leaq 0x9147(%rip), %rdi      # 0xb896
leaq 0x88e1(%rip), %rsi      # 0xb037
leaq 0x8e48(%rip), %rcx      # 0xb5a5
movl $0xde, %edx
callq 0x2060
leaq 0x8a20(%rip), %rdi      # 0xb18e
leaq 0x88c2(%rip), %rsi      # 0xb037
leaq 0x8e29(%rip), %rcx      # 0xb5a5
movl $0xdd, %edx
callq 0x2060