// File: /workspace/github_cpp_makefile_star2_O3/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 0xa91e(%rip), %rcx      # 0x1aef4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0xa95e(%rip), %rsi      # 0x1af44
leaq 0xa95a(%rip), %rdx      # 0x1af47
movq %rbx, %rdi
callq 0x8496
jmp 0x107e7
leaq 0xa94f(%rip), %rsi      # 0x1af50
leaq 0xa94b(%rip), %rdx      # 0x1af53
movq %rbx, %rdi
callq 0x8496
jmp 0x107e7
leaq 0xa938(%rip), %rsi      # 0x1af54
leaq 0xa934(%rip), %rdx      # 0x1af57
movq %rbx, %rdi
callq 0x8496
jmp 0x107e7
leaq 0xa937(%rip), %rsi      # 0x1af6e
leaq 0xa933(%rip), %rdx      # 0x1af71
movq %rbx, %rdi
callq 0x8496
jmp 0x107e7
leaq 0xa902(%rip), %rsi      # 0x1af54
leaq 0xa8fe(%rip), %rdx      # 0x1af57
movq %rbx, %rdi
callq 0x8496
jmp 0x107e7
leaq 0xa905(%rip), %rsi      # 0x1af72
leaq 0xa901(%rip), %rdx      # 0x1af75
movq %rbx, %rdi
callq 0x8496
jmp 0x107e7
leaq 0xa8de(%rip), %rsi      # 0x1af66
leaq 0xa8da(%rip), %rdx      # 0x1af69
movq %rbx, %rdi
callq 0x8496
jmp 0x107e7
leaq 0xa8a9(%rip), %rsi      # 0x1af4c
leaq 0xa8a5(%rip), %rdx      # 0x1af4f
movq %rbx, %rdi
callq 0x8496
jmp 0x107e7
leaq 0xa89a(%rip), %rsi      # 0x1af58
leaq 0xa896(%rip), %rdx      # 0x1af5b
movq %rbx, %rdi
callq 0x8496
jmp 0x107e7
leaq 0xa877(%rip), %rsi      # 0x1af50
leaq 0xa873(%rip), %rdx      # 0x1af53
movq %rbx, %rdi
callq 0x8496
jmp 0x107e7
leaq 0xa86b(%rip), %rsi      # 0x1af5f
leaq 0xa866(%rip), %rdx      # 0x1af61
movq %rbx, %rdi
callq 0x8496
jmp 0x107e7
leaq 0xa839(%rip), %rsi      # 0x1af48
leaq 0xa835(%rip), %rdx      # 0x1af4b
movq %rbx, %rdi
callq 0x8496
jmp 0x107e7
leaq 0xa822(%rip), %rsi      # 0x1af4c
leaq 0xa81e(%rip), %rdx      # 0x1af4f
movq %rbx, %rdi
callq 0x8496
jmp 0x107e7
leaq 0xa813(%rip), %rsi      # 0x1af58
leaq 0xa80f(%rip), %rdx      # 0x1af5b
movq %rbx, %rdi
callq 0x8496
jmp 0x107e7
leaq 0xa816(%rip), %rsi      # 0x1af76
leaq 0xa812(%rip), %rdx      # 0x1af79
movq %rbx, %rdi
callq 0x8496
jmp 0x107e7
leaq 0xa7e4(%rip), %rsi      # 0x1af5c
leaq 0xa7df(%rip), %rdx      # 0x1af5e
movq %rbx, %rdi
callq 0x8496
jmp 0x107e7
leaq 0xa7cc(%rip), %rsi      # 0x1af5c
leaq 0xa7c7(%rip), %rdx      # 0x1af5e
movq %rbx, %rdi
callq 0x8496
jmp 0x107e7
leaq 0xa7c2(%rip), %rsi      # 0x1af6a
leaq 0xa7be(%rip), %rdx      # 0x1af6d
movq %rbx, %rdi
callq 0x8496
jmp 0x107e7
leaq 0xa7a2(%rip), %rsi      # 0x1af62
leaq 0xa79e(%rip), %rdx      # 0x1af65
movq %rbx, %rdi
callq 0x8496
jmp 0x107e7
leaq 0xa787(%rip), %rsi      # 0x1af5f
leaq 0xa782(%rip), %rdx      # 0x1af61
movq %rbx, %rdi
callq 0x8496
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq
jmp 0x10816
jmp 0x10816
jmp 0x10816
jmp 0x10816
jmp 0x10816
jmp 0x10816
jmp 0x10816
jmp 0x10816
jmp 0x10816
jmp 0x10816
jmp 0x10816
jmp 0x10816
jmp 0x10816
jmp 0x10816
jmp 0x10816
jmp 0x10816
jmp 0x10816
jmp 0x10816
jmp 0x10816
movq %rax, %r14
movl $0x20, %esi
movq %rbx, %rdi
callq 0x52a0
movq %r14, %rdi
callq 0x5470