// File: /workspace/github_cpp_makefile_star2_O2/Davidc2525[P]Leaf/tree.cpp
// Function: to_reg_[abi:cxx11](int, int)
string *_to_reg_(int r, int offset)
{

    //return new string("R"+to_string(r));

    switch (r + offset)
    {
    case 1:
    {
        return new string("rax");
    }
    case 2:
    {
        return new string("rbx");
    }
    case 3:
    {
        return new string("rcx");
    }
    case 4:
    {
        return new string("rdx");
    }
    case 5:
    {
        return new string("rdi");
    }
    case 6:
    {
        return new string("rsi");
    }
    case 7:
    {
        return new string("r8");
    }
    case 8:
    {
        return new string("r9");
    }
    case 9:
    {
        return new string("r10");
    }
    case 10:
    {
        return new string("r11");
    }
    case 11:
    {
        return new string("r12");
    }
    case 12:
    {
        return new string("r13");
    }
    case 13:
    {
        return new string("r14");
    }
    case 14:
    {
        return new string("r15");
    }
    case 15:
    { //parametros
        return new string("rdi");
    }
    case 16:
    {
        return new string("rsi");
    }
    case 17:
    {
        return new string("rdx");
    }
    case 18:
    {
        return new string("rcx");
    }
    case 19:
    {
        return new string("r8");
    }
    case 20:
    {
        return new string("r9");
    }
    }
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x10, %rsp
movl %esi, %r14d
movl %edi, %r15d
pushq $0x20
popq %rdi
callq 0x5260
movq %rax, %rbx
leal (%r14,%r15), %eax
decl %eax
leaq 0x95ea(%rip), %rcx      # 0x17f14
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x962a(%rip), %rsi      # 0x17f64
leaq 0xf(%rsp), %rdx
movq %rbx, %rdi
callq 0x70ae
jmp 0xeb13
leaq 0x961d(%rip), %rsi      # 0x17f70
leaq 0xf(%rsp), %rdx
movq %rbx, %rdi
callq 0x70ae
jmp 0xeb13
leaq 0x9608(%rip), %rsi      # 0x17f74
leaq 0xf(%rsp), %rdx
movq %rbx, %rdi
callq 0x70ae
jmp 0xeb13
leaq 0x9609(%rip), %rsi      # 0x17f8e
leaq 0xf(%rsp), %rdx
movq %rbx, %rdi
callq 0x70ae
jmp 0xeb13
leaq 0x95d6(%rip), %rsi      # 0x17f74
leaq 0xf(%rsp), %rdx
movq %rbx, %rdi
callq 0x70ae
jmp 0xeb13
leaq 0x95db(%rip), %rsi      # 0x17f92
leaq 0xf(%rsp), %rdx
movq %rbx, %rdi
callq 0x70ae
jmp 0xeb13
leaq 0x95b6(%rip), %rsi      # 0x17f86
leaq 0xf(%rsp), %rdx
movq %rbx, %rdi
callq 0x70ae
jmp 0xeb13
leaq 0x9583(%rip), %rsi      # 0x17f6c
leaq 0xf(%rsp), %rdx
movq %rbx, %rdi
callq 0x70ae
jmp 0xeb13
leaq 0x9576(%rip), %rsi      # 0x17f78
leaq 0xf(%rsp), %rdx
movq %rbx, %rdi
callq 0x70ae
jmp 0xeb13
leaq 0x9555(%rip), %rsi      # 0x17f70
leaq 0xf(%rsp), %rdx
movq %rbx, %rdi
callq 0x70ae
jmp 0xeb13
leaq 0x954b(%rip), %rsi      # 0x17f7f
leaq 0xf(%rsp), %rdx
movq %rbx, %rdi
callq 0x70ae
jmp 0xeb13
leaq 0x951b(%rip), %rsi      # 0x17f68
leaq 0xf(%rsp), %rdx
movq %rbx, %rdi
callq 0x70ae
jmp 0xeb13
leaq 0x9506(%rip), %rsi      # 0x17f6c
leaq 0xf(%rsp), %rdx
movq %rbx, %rdi
callq 0x70ae
jmp 0xeb13
leaq 0x94f9(%rip), %rsi      # 0x17f78
leaq 0xf(%rsp), %rdx
movq %rbx, %rdi
callq 0x70ae
jmp 0xeb13
leaq 0x94fe(%rip), %rsi      # 0x17f96
leaq 0xf(%rsp), %rdx
movq %rbx, %rdi
callq 0x70ae
jmp 0xeb13
leaq 0x94ce(%rip), %rsi      # 0x17f7c
leaq 0xf(%rsp), %rdx
movq %rbx, %rdi
callq 0x70ae
jmp 0xeb13
leaq 0x94b8(%rip), %rsi      # 0x17f7c
leaq 0xf(%rsp), %rdx
movq %rbx, %rdi
callq 0x70ae
jmp 0xeb13
leaq 0x94b0(%rip), %rsi      # 0x17f8a
leaq 0xf(%rsp), %rdx
movq %rbx, %rdi
callq 0x70ae
jmp 0xeb13
leaq 0x9492(%rip), %rsi      # 0x17f82
leaq 0xf(%rsp), %rdx
movq %rbx, %rdi
callq 0x70ae
jmp 0xeb13
leaq 0x9479(%rip), %rsi      # 0x17f7f
leaq 0xf(%rsp), %rdx
movq %rbx, %rdi
callq 0x70ae
movq %rbx, %rax
addq $0x10, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0xeb46
jmp 0xeb46
jmp 0xeb46
jmp 0xeb46
jmp 0xeb46
jmp 0xeb46
jmp 0xeb46
jmp 0xeb46
jmp 0xeb46
jmp 0xeb46
jmp 0xeb46
jmp 0xeb46
jmp 0xeb46
jmp 0xeb46
jmp 0xeb46
jmp 0xeb46
jmp 0xeb46
jmp 0xeb46
jmp 0xeb46
movq %rax, %r14
pushq $0x20
popq %rsi
movq %rbx, %rdi
callq 0x5270
movq %r14, %rdi
callq 0x5420