// File: /workspace/github_cpp_makefile_star2_O1/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
movl %esi, %r14d
movl %edi, %r15d
movl $0x20, %edi
callq 0x5290
movq %rax, %rbx
addq $0x10, %rax
movq %rax, (%rbx)
leal (%r14,%r15), %eax
decl %eax
leaq 0xa902(%rip), %rcx      # 0x1ae94
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0xa942(%rip), %rsi      # 0x1aee4
leaq 0xa93e(%rip), %rdx      # 0x1aee7
movq %rbx, %rdi
callq 0x84ba
jmp 0x107a3
leaq 0xa933(%rip), %rsi      # 0x1aef0
leaq 0xa92f(%rip), %rdx      # 0x1aef3
movq %rbx, %rdi
callq 0x84ba
jmp 0x107a3
leaq 0xa91c(%rip), %rsi      # 0x1aef4
leaq 0xa918(%rip), %rdx      # 0x1aef7
movq %rbx, %rdi
callq 0x84ba
jmp 0x107a3
leaq 0xa91b(%rip), %rsi      # 0x1af0e
leaq 0xa917(%rip), %rdx      # 0x1af11
movq %rbx, %rdi
callq 0x84ba
jmp 0x107a3
leaq 0xa8e6(%rip), %rsi      # 0x1aef4
leaq 0xa8e2(%rip), %rdx      # 0x1aef7
movq %rbx, %rdi
callq 0x84ba
jmp 0x107a3
leaq 0xa8e9(%rip), %rsi      # 0x1af12
leaq 0xa8e5(%rip), %rdx      # 0x1af15
movq %rbx, %rdi
callq 0x84ba
jmp 0x107a3
leaq 0xa8c2(%rip), %rsi      # 0x1af06
leaq 0xa8be(%rip), %rdx      # 0x1af09
movq %rbx, %rdi
callq 0x84ba
jmp 0x107a3
leaq 0xa88d(%rip), %rsi      # 0x1aeec
leaq 0xa889(%rip), %rdx      # 0x1aeef
movq %rbx, %rdi
callq 0x84ba
jmp 0x107a3
leaq 0xa87e(%rip), %rsi      # 0x1aef8
leaq 0xa87a(%rip), %rdx      # 0x1aefb
movq %rbx, %rdi
callq 0x84ba
jmp 0x107a3
leaq 0xa85b(%rip), %rsi      # 0x1aef0
leaq 0xa857(%rip), %rdx      # 0x1aef3
movq %rbx, %rdi
callq 0x84ba
jmp 0x107a3
leaq 0xa84f(%rip), %rsi      # 0x1aeff
leaq 0xa84a(%rip), %rdx      # 0x1af01
movq %rbx, %rdi
callq 0x84ba
jmp 0x107a3
leaq 0xa81d(%rip), %rsi      # 0x1aee8
leaq 0xa819(%rip), %rdx      # 0x1aeeb
movq %rbx, %rdi
callq 0x84ba
jmp 0x107a3
leaq 0xa806(%rip), %rsi      # 0x1aeec
leaq 0xa802(%rip), %rdx      # 0x1aeef
movq %rbx, %rdi
callq 0x84ba
jmp 0x107a3
leaq 0xa7f7(%rip), %rsi      # 0x1aef8
leaq 0xa7f3(%rip), %rdx      # 0x1aefb
movq %rbx, %rdi
callq 0x84ba
jmp 0x107a3
leaq 0xa7fa(%rip), %rsi      # 0x1af16
leaq 0xa7f6(%rip), %rdx      # 0x1af19
movq %rbx, %rdi
callq 0x84ba
jmp 0x107a3
leaq 0xa7c8(%rip), %rsi      # 0x1aefc
leaq 0xa7c3(%rip), %rdx      # 0x1aefe
movq %rbx, %rdi
callq 0x84ba
jmp 0x107a3
leaq 0xa7b0(%rip), %rsi      # 0x1aefc
leaq 0xa7ab(%rip), %rdx      # 0x1aefe
movq %rbx, %rdi
callq 0x84ba
jmp 0x107a3
leaq 0xa7a6(%rip), %rsi      # 0x1af0a
leaq 0xa7a2(%rip), %rdx      # 0x1af0d
movq %rbx, %rdi
callq 0x84ba
jmp 0x107a3
leaq 0xa786(%rip), %rsi      # 0x1af02
leaq 0xa782(%rip), %rdx      # 0x1af05
movq %rbx, %rdi
callq 0x84ba
jmp 0x107a3
leaq 0xa76b(%rip), %rsi      # 0x1aeff
leaq 0xa766(%rip), %rdx      # 0x1af01
movq %rbx, %rdi
callq 0x84ba
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq
jmp 0x107d2
jmp 0x107d2
jmp 0x107d2
jmp 0x107d2
jmp 0x107d2
jmp 0x107d2
jmp 0x107d2
jmp 0x107d2
jmp 0x107d2
jmp 0x107d2
jmp 0x107d2
jmp 0x107d2
jmp 0x107d2
jmp 0x107d2
jmp 0x107d2
jmp 0x107d2
jmp 0x107d2
jmp 0x107d2
jmp 0x107d2
movq %rax, %r14
movl $0x20, %esi
movq %rbx, %rdi
callq 0x52a0
movq %r14, %rdi
callq 0x5470