// File: /workspace/github_c_makefile_star2_O0/chgzm[P]minic/generator.c
// Function: get_reg
static const char* get_reg(const char* base, int size) {
    switch (size) {
    case 1: {
        if      (strcmp("ax", base) == 0) { return "al";  }
        else if (strcmp("di", base) == 0) { return "dil"; }
        else if (strcmp("si", base) == 0) { return "sil"; }
        else if (strcmp("dx", base) == 0) { return "dl";  }
        else if (strcmp("cx", base) == 0) { return "cl";  }
        else if (strcmp("r8", base) == 0) { return "r8b"; }
        else if (strcmp("r9", base) == 0) { return "r9b"; }
        else                              { return NULL;  }
    }
    case 8: {
        if      (strcmp("ax", base) == 0) { return "rax"; }
        else if (strcmp("di", base) == 0) { return "rdi"; }
        else if (strcmp("si", base) == 0) { return "rsi"; }
        else if (strcmp("dx", base) == 0) { return "rdx"; }
        else if (strcmp("cx", base) == 0) { return "rcx"; }
        else if (strcmp("r8", base) == 0) { return "r8";  }
        else if (strcmp("r9", base) == 0) { return "r9";  }
        else                              { return NULL;  }
    }
    default: {
        error("Invalid size=%d\n", size);
        return NULL;
    }    
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x18(%rbp)
subl $0x1, %eax
je 0x495d
jmp 0x494c
movl -0x18(%rbp), %eax
subl $0x8, %eax
je 0x4a6d
jmp 0x4b71
movq -0x10(%rbp), %rsi
leaq 0xb05d(%rip), %rdi      # 0xf9c5
callq 0x10c0
cmpl $0x0, %eax
jne 0x4982
leaq 0xb032(%rip), %rax      # 0xf9ab
movq %rax, -0x8(%rbp)
jmp 0x4b8a
movq -0x10(%rbp), %rsi
leaq 0xad16(%rip), %rdi      # 0xf6a3
callq 0x10c0
cmpl $0x0, %eax
jne 0x49a7
leaq 0xb010(%rip), %rax      # 0xf9ae
movq %rax, -0x8(%rbp)
jmp 0x4b8a
movq -0x10(%rbp), %rsi
leaq 0xacf5(%rip), %rdi      # 0xf6a7
callq 0x10c0
cmpl $0x0, %eax
jne 0x49cc
leaq 0xafef(%rip), %rax      # 0xf9b2
movq %rax, -0x8(%rbp)
jmp 0x4b8a
movq -0x10(%rbp), %rsi
leaq 0xacd4(%rip), %rdi      # 0xf6ab
callq 0x10c0
cmpl $0x0, %eax
jne 0x49f1
leaq 0xafce(%rip), %rax      # 0xf9b6
movq %rax, -0x8(%rbp)
jmp 0x4b8a
movq -0x10(%rbp), %rsi
leaq 0xacb3(%rip), %rdi      # 0xf6af
callq 0x10c0
cmpl $0x0, %eax
jne 0x4a16
leaq 0xafac(%rip), %rax      # 0xf9b9
movq %rax, -0x8(%rbp)
jmp 0x4b8a
movq -0x10(%rbp), %rsi
leaq 0xac91(%rip), %rdi      # 0xf6b2
callq 0x10c0
cmpl $0x0, %eax
jne 0x4a3b
leaq 0xaf8a(%rip), %rax      # 0xf9bc
movq %rax, -0x8(%rbp)
jmp 0x4b8a
movq -0x10(%rbp), %rsi
leaq 0xac6f(%rip), %rdi      # 0xf6b5
callq 0x10c0
cmpl $0x0, %eax
jne 0x4a60
leaq 0xaf69(%rip), %rax      # 0xf9c0
movq %rax, -0x8(%rbp)
jmp 0x4b8a
movq $0x0, -0x8(%rbp)
jmp 0x4b8a
movq -0x10(%rbp), %rsi
leaq 0xaf4d(%rip), %rdi      # 0xf9c5
callq 0x10c0
cmpl $0x0, %eax
jne 0x4a92
leaq 0xaf3b(%rip), %rax      # 0xf9c4
movq %rax, -0x8(%rbp)
jmp 0x4b8a
movq -0x10(%rbp), %rsi
leaq 0xac06(%rip), %rdi      # 0xf6a3
callq 0x10c0
cmpl $0x0, %eax
jne 0x4ab7
leaq 0xabf4(%rip), %rax      # 0xf6a2
movq %rax, -0x8(%rbp)
jmp 0x4b8a
movq -0x10(%rbp), %rsi
leaq 0xabe5(%rip), %rdi      # 0xf6a7
callq 0x10c0
cmpl $0x0, %eax
jne 0x4adc
leaq 0xabd3(%rip), %rax      # 0xf6a6
movq %rax, -0x8(%rbp)
jmp 0x4b8a
movq -0x10(%rbp), %rsi
leaq 0xabc4(%rip), %rdi      # 0xf6ab
callq 0x10c0
cmpl $0x0, %eax
jne 0x4b01
leaq 0xabb2(%rip), %rax      # 0xf6aa
movq %rax, -0x8(%rbp)
jmp 0x4b8a
movq -0x10(%rbp), %rsi
leaq 0xaba3(%rip), %rdi      # 0xf6af
callq 0x10c0
cmpl $0x0, %eax
jne 0x4b23
leaq 0xab91(%rip), %rax      # 0xf6ae
movq %rax, -0x8(%rbp)
jmp 0x4b8a
movq -0x10(%rbp), %rsi
leaq 0xab84(%rip), %rdi      # 0xf6b2
callq 0x10c0
cmpl $0x0, %eax
jne 0x4b45
leaq 0xab73(%rip), %rax      # 0xf6b2
movq %rax, -0x8(%rbp)
jmp 0x4b8a
movq -0x10(%rbp), %rsi
leaq 0xab65(%rip), %rdi      # 0xf6b5
callq 0x10c0
cmpl $0x0, %eax
jne 0x4b67
leaq 0xab54(%rip), %rax      # 0xf6b5
movq %rax, -0x8(%rbp)
jmp 0x4b8a
movq $0x0, -0x8(%rbp)
jmp 0x4b8a
movl -0x14(%rbp), %esi
leaq 0xae4d(%rip), %rdi      # 0xf9c8
movb $0x0, %al
callq 0xe4e0
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)