// File: /workspace/github_cpp_makefile_star2_O2/Wombozo[P]harmony/src/user.cpp
// Function: handle_choice(int)
void handle_choice(int c)
{
    switch (c)
    {
    case C_CD:
        handle_cd();
        break;
    case C_SD:
        handle_sd();
        break;
    case C_ID:
        handle_id();
        break;
    default:
        throw E_CHOICE;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x170, %rsp            # imm = 0x170
leaq -0x50(%rbp), %rax
cmpl $0x3, %edi
je 0xabaf
cmpl $0x2, %edi
je 0xa9e8
cmpl $0x1, %edi
jne 0xad82
leaq -0x60(%rbp), %r14
movq %rax, (%r14)
andq $0x0, 0x8(%r14)
xorl %eax, %eax
movb %al, 0x10(%r14)
leaq -0x30(%rbp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
movb %al, (%rcx)
movq 0x773b(%rip), %rbx      # 0x11fd8
movq 0x7724(%rip), %r15      # 0x11fc8
leaq 0x1c7c(%rip), %r12      # 0xc527
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
xorl %esi, %esi
callq 0x3280
movq %r15, %rdi
movq %r12, %rsi
callq 0x3190
movq %rbx, %rdi
movq %r14, %rsi
callq 0x31d0
movq %r14, %rdi
callq 0x4fe0
testb %al, %al
je 0xa8ab
movq 0x76e3(%rip), %r14      # 0x11fc8
leaq 0x1c74(%rip), %r15      # 0xc560
leaq -0x40(%rbp), %r12
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
xorl %esi, %esi
callq 0x3280
movq %r14, %rdi
movq %r15, %rsi
callq 0x3190
movq %rbx, %rdi
movq %r12, %rsi
callq 0x31d0
movq %r12, %rdi
callq 0x56dc
testb %al, %al
je 0xa8f0
leaq -0x60(%rbp), %rdi
callq 0x5a47
movq %rax, %rbx
leaq 0x19b8(%rip), %rsi      # 0xc2ee
leaq -0x40(%rbp), %rdi
callq 0x3080
testl %eax, %eax
jne 0xa953
leaq 0x1c4b(%rip), %rsi      # 0xc595
leaq -0x40(%rbp), %rdi
callq 0x32e0
leaq -0x190(%rbp), %rdi
leaq -0x40(%rbp), %rdx
movq %rbx, %rsi
callq 0x6ae0
leaq -0xa0(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x7c1a
movq 0x7648(%rip), %rdi      # 0x11fc8
leaq -0xa0(%rbp), %rsi
callq 0x3180
leaq 0x1bff(%rip), %rsi      # 0xc592
movq %rax, %rdi
callq 0x3190
movq %rax, %rbx
leaq -0x80(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x7b3c
leaq -0x80(%rbp), %rsi
movq %rbx, %rdi
callq 0x3180
movq %rax, %rdi
callq 0x30e0
leaq -0x80(%rbp), %rdi
callq 0x30d0
leaq -0xa0(%rbp), %rdi
callq 0x30d0
leaq -0x190(%rbp), %rdi
callq 0x74fc
jmp 0xad60
leaq -0x60(%rbp), %r14
movq %rax, (%r14)
andq $0x0, 0x8(%r14)
xorl %eax, %eax
movb %al, 0x10(%r14)
leaq -0x30(%rbp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
movb %al, (%rcx)
movq 0x75c8(%rip), %rbx      # 0x11fd8
movq 0x75b1(%rip), %r15      # 0x11fc8
leaq 0x1b64(%rip), %r12      # 0xc582
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
xorl %esi, %esi
callq 0x3280
movq %r15, %rdi
movq %r12, %rsi
callq 0x3190
movq %rbx, %rdi
movq %r14, %rsi
callq 0x31d0
movq %r14, %rdi
callq 0x4fe0
testb %al, %al
je 0xaa1e
movq 0x7570(%rip), %r14      # 0x11fc8
leaq 0x1b37(%rip), %r15      # 0xc596
leaq -0x40(%rbp), %r12
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
xorl %esi, %esi
callq 0x3280
movq %r14, %rdi
movq %r15, %rsi
callq 0x3190
movq %rbx, %rdi
callq 0x3160
movq %rbx, %rdi
movq %r12, %rsi
callq 0x3050
movq %r12, %rdi
callq 0x550c
testb %al, %al
je 0xaa63
leaq -0x60(%rbp), %rdi
callq 0x5a47
movq %rax, %rbx
leaq -0x190(%rbp), %rdi
leaq -0x40(%rbp), %rdx
movq %rax, %rsi
callq 0xa150
movq (%rbx), %rax
leaq -0x120(%rbp), %rdi
movq %rbx, %rsi
callq *(%rax)
leaq 0x1ac1(%rip), %rdx      # 0xc594
leaq -0xc0(%rbp), %rdi
leaq -0x120(%rbp), %rsi
callq 0x5b25
leaq -0xe0(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
leaq -0x40(%rbp), %rdx
callq 0x7f1e
leaq 0x1aa6(%rip), %rdx      # 0xc5aa
leaq -0x80(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x5b25
leaq -0x100(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0xa788
leaq -0xa0(%rbp), %rdi
leaq -0x80(%rbp), %rsi
leaq -0x100(%rbp), %rdx
callq 0xb05e
movq 0x7483(%rip), %rdi      # 0x11fc8
leaq -0xa0(%rbp), %rsi
callq 0x3180
movq %rax, %rdi
callq 0x30e0
leaq -0xa0(%rbp), %rdi
callq 0x30d0
leaq -0x100(%rbp), %rdi
callq 0x30d0
leaq -0x80(%rbp), %rdi
callq 0x30d0
leaq -0xe0(%rbp), %rdi
callq 0x30d0
leaq -0xc0(%rbp), %rdi
callq 0x30d0
leaq -0x120(%rbp), %rdi
callq 0x30d0
leaq -0x190(%rbp), %rdi
callq 0xa75e
jmp 0xad60
leaq -0x60(%rbp), %r14
movq %rax, (%r14)
andq $0x0, 0x8(%r14)
xorl %eax, %eax
movb %al, 0x10(%r14)
leaq -0x30(%rbp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
movb %al, (%rcx)
movq 0x7401(%rip), %rbx      # 0x11fd8
movq 0x73ea(%rip), %r15      # 0x11fc8
leaq 0x19d2(%rip), %r12      # 0xc5b7
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
xorl %esi, %esi
callq 0x3280
movq %r15, %rdi
movq %r12, %rsi
callq 0x3190
movq %rbx, %rdi
movq %r14, %rsi
callq 0x31d0
movq %r14, %rdi
callq 0x4fe0
testb %al, %al
je 0xabe5
movq 0x73a9(%rip), %r14      # 0x11fc8
leaq 0x19ba(%rip), %r15      # 0xc5e0
leaq -0x40(%rbp), %r12
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
xorl %esi, %esi
callq 0x3280
movq %r14, %rdi
movq %r15, %rsi
callq 0x3190
movq %rbx, %rdi
callq 0x3160
movq %rbx, %rdi
movq %r12, %rsi
callq 0x3050
movq %r12, %rdi
callq 0x5131
testb %al, %al
je 0xac2a
leaq -0x60(%rbp), %rdi
callq 0x5a47
movq %rax, %rbx
leaq -0x190(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x6840
leaq 0x196f(%rip), %rsi      # 0xc5f7
leaq -0x80(%rbp), %rdi
leaq -0x40(%rbp), %rdx
callq 0x5b4e
leaq 0x1960(%rip), %rdx      # 0xc5fc
leaq -0xa0(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x5b25
movq 0x7315(%rip), %rdi      # 0x11fc8
leaq -0xa0(%rbp), %rsi
callq 0x3180
movq %rax, %r14
movq (%rbx), %rax
leaq -0xe0(%rbp), %rdi
movq %rbx, %rsi
callq *(%rax)
leaq -0xe0(%rbp), %rsi
movq %r14, %rdi
callq 0x3180
leaq 0x191d(%rip), %rsi      # 0xc604
movq %rax, %rdi
callq 0x3190
movq %rax, %r14
leaq -0x190(%rbp), %rdi
movq %rbx, %rsi
callq 0x64ec
movq (%rax), %rcx
leaq -0xc0(%rbp), %rdi
movq %rax, %rsi
callq *(%rcx)
leaq -0xc0(%rbp), %rsi
movq %r14, %rdi
callq 0x3180
movq %rax, %rdi
callq 0x30e0
leaq -0xc0(%rbp), %rdi
callq 0x30d0
leaq -0xe0(%rbp), %rdi
callq 0x30d0
leaq -0xa0(%rbp), %rdi
callq 0x30d0
leaq -0x80(%rbp), %rdi
callq 0x30d0
leaq -0x190(%rbp), %rdi
callq 0x6ab4
leaq -0x40(%rbp), %rdi
callq 0x30d0
leaq -0x60(%rbp), %rdi
callq 0x30d0
addq $0x170, %rsp            # imm = 0x170
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
pushq $0x4
popq %rdi
callq 0x30f0
movl $0x4, (%rax)
leaq 0x6ae1(%rip), %rsi      # 0x11878
movq %rax, %rdi
xorl %edx, %edx
callq 0x3290
movq %rax, %rbx
jmp 0xae38
movq %rax, %rbx
jmp 0xae44
jmp 0xadbb
movq %rax, %rbx
jmp 0xae4d
movq %rax, %rbx
jmp 0xae8e
movq %rax, %rbx
jmp 0xae59
movq %rax, %rbx
jmp 0xae9a
movq %rax, %rbx
jmp 0xae65
movq %rax, %rbx
jmp 0xaea3
movq %rax, %rbx
jmp 0xae71
jmp 0xaee6
jmp 0xaee6
jmp 0xaee6
jmp 0xaee6
jmp 0xaebf
movq %rax, %rbx
jmp 0xaece
jmp 0xaee6
jmp 0xaee6
movq %rax, %rbx
leaq -0xc0(%rbp), %rdi
callq 0x30d0
jmp 0xae82
jmp 0xae7f
movq %rax, %rbx
leaq -0xa0(%rbp), %rdi
callq 0x30d0
leaq -0x100(%rbp), %rdi
callq 0x30d0
leaq -0x80(%rbp), %rdi
callq 0x30d0
leaq -0xe0(%rbp), %rdi
callq 0x30d0
leaq -0xc0(%rbp), %rdi
callq 0x30d0
leaq -0x120(%rbp), %rdi
callq 0x30d0
leaq -0x190(%rbp), %rdi
callq 0xa75e
jmp 0xaee9
movq %rax, %rbx
leaq -0xe0(%rbp), %rdi
callq 0x30d0
leaq -0xa0(%rbp), %rdi
callq 0x30d0
leaq -0x80(%rbp), %rdi
callq 0x30d0
leaq -0x190(%rbp), %rdi
callq 0x6ab4
jmp 0xaee9
movq %rax, %rbx
leaq -0x80(%rbp), %rdi
callq 0x30d0
jmp 0xaec2
movq %rax, %rbx
leaq -0xa0(%rbp), %rdi
callq 0x30d0
leaq -0x190(%rbp), %rdi
callq 0x74fc
jmp 0xaee9
jmp 0xaee6
jmp 0xaee6
jmp 0xaee6
jmp 0xaee6
jmp 0xaee6
movq %rax, %rbx
leaq -0x40(%rbp), %rdi
callq 0x30d0
leaq -0x60(%rbp), %rdi
callq 0x30d0
movq %rbx, %rdi
callq 0x32b0