// File: /workspace/github_cpp_makefile_star2_O3/joncampbell123[P]haxcc/haxpp.cpp
// Function: to_string_pp[abi:cxx11](token const&)
string to_string_pp(const token &t) {
    switch (t.tval) {
        case token::MACRO:
            return t.sval + " ";
        case token::PREPROC:
            return "";
        case token::MACROSUBST:
            return t.sval + " ";
        case token::IDENTIFIER:
            return t.sval + " ";
        case token::MACROPARAM:
            return "";
        case token::INTEGER:
            return to_string(t.i.s) + " ";
        case token::FLOAT:
            return a_better_float_to_string(t.f.get_double()) + " ";
        case token::STRING:
            return string("\"") + string_store.get_char(t.s.strref) + string("\"") + " ";
        default:
            break;
    };

    return to_string(t);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x98, %rsp
movq %rsi, %r14
movq %rdi, %rbx
movl (%rsi), %eax
decl %eax
cmpl $0xa, %eax
ja 0x62a7
leaq 0xd14c(%rip), %rcx      # 0x133cc
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0xe009(%rip), %rdx      # 0x142a0
movq %rbx, %rdi
movq %rdx, %rsi
callq 0x10b2e
jmp 0x66f7
movq %rbx, %rdi
movq %r14, %rsi
callq 0x50ff
jmp 0x66f7
movq 0x8(%r14), %r15
movq %r15, %r14
negq %r14
cmovsq %r15, %r14
movl $0x1, %r12d
cmpq $0xa, %r14
jb 0x665d
movl $0x4, %r12d
movabsq $0x346dc5d63886594b, %rsi # imm = 0x346DC5D63886594B
movq %r14, %rcx
cmpq $0x63, %rcx
jbe 0x6654
cmpq $0x3e7, %rcx            # imm = 0x3E7
jbe 0x665a
cmpq $0x2710, %rcx           # imm = 0x2710
jb 0x665d
movq %rcx, %rax
mulq %rsi
shrq $0xb, %rdx
addl $0x4, %r12d
cmpq $0x1869f, %rcx          # imm = 0x1869F
movq %rdx, %rcx
ja 0x62e8
addl $-0x3, %r12d
jmp 0x665d
leaq 0x10(%rbx), %r15
movq %r15, (%rbx)
movq 0x48(%r14), %rsi
movq 0x50(%r14), %rdx
addq %rsi, %rdx
movq %rbx, %rdi
callq 0x10a3c
leaq 0xd8df(%rip), %rsi      # 0x13c2f
movq %rbx, %rdi
callq 0x23b0
jmp 0x66f7
fldt 0x20(%r14)
movl 0x30(%r14), %edi
fstpt (%rsp)
callq 0x2240
fstpt (%rsp)
leaq 0x18(%rsp), %r14
movq %r14, %rdi
callq 0x50a6
leaq 0xd8ab(%rip), %rsi      # 0x13c2f
movq %r14, %rdi
callq 0x23b0
leaq 0x10(%rbx), %rdx
movq %rdx, (%rbx)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0x648a
movq %rsi, (%rbx)
movq (%rcx), %rdx
movq %rdx, 0x10(%rbx)
jmp 0x6490
leaq 0x88(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0xd864(%rip), %rsi      # 0x13c2c
leaq 0xd85e(%rip), %rdx      # 0x13c2d
leaq 0x78(%rsp), %rdi
callq 0x10b2e
movq 0x40(%r14), %rsi
leaq 0x13e5c(%rip), %rdi     # 0x1a240
movq %rdi, %rdx
xorl %ecx, %ecx
callq 0xeae2
movq (%rax), %rsi
movq 0x8(%rax), %rdx
leaq 0x78(%rsp), %rdi
callq 0x2090
leaq 0x48(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x64be
movq %rdx, 0x38(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x48(%rsp)
jmp 0x64c6
leaq 0x10(%rbx), %r15
movq %r15, (%rbx)
movq 0x48(%r14), %rsi
movq 0x50(%r14), %rdx
addq %rsi, %rdx
movq %rbx, %rdi
callq 0x10a3c
leaq 0xd7e0(%rip), %rsi      # 0x13c2f
movq %rbx, %rdi
callq 0x23b0
jmp 0x66f7
leaq 0x10(%rbx), %r15
movq %r15, (%rbx)
movq 0x48(%r14), %rsi
movq 0x50(%r14), %rdx
addq %rsi, %rdx
movq %rbx, %rdi
callq 0x10a3c
leaq 0xd7b2(%rip), %rsi      # 0x13c2f
movq %rbx, %rdi
callq 0x23b0
jmp 0x66f7
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rbx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x28(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
jne 0x66ea
jmp 0x66f7
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, 0x40(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x68(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xd73e(%rip), %rsi      # 0x13c2c
leaq 0xd738(%rip), %rdx      # 0x13c2d
leaq 0x58(%rsp), %rdi
callq 0x10b2e
movq 0x38(%rsp), %rcx
movq 0x40(%rsp), %r8
movq 0x60(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r12, %rcx
je 0x6521
movq 0x48(%rsp), %rdi
movq 0x58(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x653f
movl $0xf, %edi
cmpq %r13, %rsi
je 0x653a
movq 0x68(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x654b
leaq 0x38(%rsp), %rdi
callq 0x2090
jmp 0x6559
leaq 0x58(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x2210
leaq 0x28(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x657d
movq %rsi, 0x18(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x28(%rsp)
jmp 0x6583
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x20(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0xd688(%rip), %rsi      # 0x13c2f
leaq 0x18(%rsp), %rdi
callq 0x23b0
leaq 0x10(%rbx), %rdx
movq %rdx, (%rbx)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0x65d3
movq %rsi, (%rbx)
movq (%rcx), %rdx
movq %rdx, 0x10(%rbx)
jmp 0x65d9
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rbx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x28(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x660b
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x21d0
movq 0x58(%rsp), %rdi
cmpq %r13, %rdi
je 0x6622
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x21d0
movq 0x38(%rsp), %rdi
cmpq %r12, %rdi
je 0x6639
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x21d0
movq 0x78(%rsp), %rdi
cmpq %r15, %rdi
je 0x66f7
movq 0x88(%rsp), %rsi
jmp 0x66ef
addl $-0x2, %r12d
jmp 0x665d
decl %r12d
shrq $0x3f, %r15
leal (%r15,%r12), %esi
leaq 0x28(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x18(%rsp), %r13
movq %r13, %rdi
movl $0x2d, %edx
callq 0x2220
addq (%r13), %r15
movq %r15, %rdi
movl %r12d, %esi
movq %r14, %rdx
callq 0xf681
leaq 0xd596(%rip), %rsi      # 0x13c2f
movq %r13, %rdi
callq 0x23b0
leaq 0x10(%rbx), %rdx
movq %rdx, (%rbx)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0x66c3
movq %rsi, (%rbx)
movq (%rcx), %rdx
movq %rdx, 0x10(%rbx)
jmp 0x66c9
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rbx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x18(%rsp), %rdi
cmpq %rbp, %rdi
je 0x66f7
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x21d0
movq %rbx, %rax
addq $0x98, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
leaq 0x28(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x672f
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x21d0
jmp 0x672f
movq %rax, %r14
movq 0x58(%rsp), %rdi
cmpq %r13, %rdi
je 0x674b
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x21d0
jmp 0x674b
movq %rax, %r14
movq 0x38(%rsp), %rdi
cmpq %r12, %rdi
je 0x67a7
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x21d0
jmp 0x67a7
jmp 0x6780
jmp 0x6780
movq %rax, %r14
jmp 0x67c1
movq %rax, %r14
leaq 0x28(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
jne 0x679d
jmp 0x67c1
movq %rax, %r14
movq (%rbx), %rdi
cmpq %r15, %rdi
je 0x67c1
movq (%r15), %rsi
jmp 0x67b9
movq %rax, %r14
movq 0x18(%rsp), %rdi
cmpq %rbp, %rdi
je 0x67c1
movq 0x28(%rsp), %rsi
jmp 0x67b9
movq %rax, %r14
movq 0x78(%rsp), %rdi
cmpq %r15, %rdi
je 0x67c1
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x21d0
movq %r14, %rdi
callq 0x2360