// File: /workspace/github_c_makefile_star2_O2/meaning-matters[P]Except/Test.c
// Function: spell
int spell(void)
{
    if (1)
        try
            try 
                try
                    throw (Throwable, 0);
                catch (Throwable, e)
                    return(1);
                finally
                {
                    printf("A");
                    return(2);
                }
        
            catch (Throwable, e)
                printf("Magic");
            finally
                printf("B");
    
        finally
            printf("C");
    return(3);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
leaq 0xa343(%rip), %r13      # 0xe270
movq (%r13), %rdi
leaq 0x64e0(%rip), %r14      # 0xa418
movl $0xc3, %ebx
movq %r14, %rsi
movl %ebx, %edx
callq 0x14e8
leaq 0xa3be(%rip), %r15      # 0xe30c
pushq $0x42
popq %rbp
movq (%r13), %rdi
callq 0x1290
movq %rax, %r12
movq %rax, %rdi
movq %r15, %rsi
movq %r14, %rdx
movl %ebx, %ecx
callq 0x1b23
testl %eax, %eax
je 0x3f8e
movq (%r12), %rdi
cmpl $0x0, 0x1b4(%rdi)
je 0x3f8e
addq $0x8, %rdi
pushq $0x1
popq %rsi
callq 0x1130
testl %eax, %eax
je 0x3fcf
cmpl $0x0, 0xa377(%rip)      # 0xe30c
je 0x3f51
movq (%r12), %rdi
cmpl $0x0, 0x1b4(%rdi)
jne 0x431c
addq $0xd0, %rdi
pushq $0x1
popq %rsi
callq 0x1130
testl %eax, %eax
jne 0x431c
movq (%r12), %rax
movl $0x1, 0x1b4(%rax)
jmp 0x3f51
movq (%r12), %rax
movl $0x1, 0x1b8(%rax)
movq %r12, %rdi
movq %r14, %rsi
movl $0xc4, %edx
callq 0x14e8
movq %r12, %rdi
callq 0x1290
movq %rax, %rbx
movq %rax, %rdi
leaq 0xa30e(%rip), %rsi      # 0xe310
movq %r14, %rdx
movl $0xc4, %ecx
callq 0x1b23
testl %eax, %eax
je 0x4033
movq (%rbx), %rdi
cmpl $0x0, 0x1b4(%rdi)
je 0x4033
addq $0x8, %rdi
pushq $0x1
popq %rsi
callq 0x1130
testl %eax, %eax
je 0x40e2
movq %rbx, %rdi
leaq 0xa2d3(%rip), %rsi      # 0xe310
leaq 0xa07c(%rip), %rdx      # 0xe0c0
movq %r14, %rcx
movl $0xcf, %r8d
callq 0x1bb7
testl %eax, %eax
je 0x409c
movq (%rbx), %rax
cmpl $0x0, 0x1b4(%rax)
je 0x409c
movq %rbx, %rdi
leaq 0xa054(%rip), %rsi      # 0xe0c0
callq 0x1867
testl %eax, %eax
je 0x409c
movq 0x8(%rbx), %rdi
pushq $0x1
popq %rsi
callq 0x1f02
movq (%rbx), %rax
movl $0x2, 0x1b8(%rax)
xorl %eax, %eax
leaq 0x6391(%rip), %rdi      # 0xa428
callq 0x1080
cmpl $0x0, 0xa26d(%rip)      # 0xe310
je 0x3fed
movq (%rbx), %rdi
cmpl $0x0, 0x1b4(%rdi)
jne 0x4250
addq $0xd0, %rdi
pushq $0x1
popq %rsi
callq 0x1130
testl %eax, %eax
jne 0x4250
movq (%rbx), %rax
movl $0x1, 0x1b4(%rax)
jmp 0x3fed
movq (%rbx), %rax
movl $0x1, 0x1b8(%rax)
movq %rbx, %rdi
movq %r14, %rsi
movl $0xc5, %edx
callq 0x14e8
movq %rbx, %rdi
callq 0x1290
movq %rax, %r15
movq %rax, %rdi
leaq 0xa200(%rip), %rsi      # 0xe314
movq %r14, %rdx
movl $0xc5, %ecx
callq 0x1b23
testl %eax, %eax
je 0x4141
movq (%r15), %rdi
cmpl $0x0, 0x1b4(%rdi)
je 0x4141
addq $0x8, %rdi
pushq $0x1
popq %rsi
callq 0x1130
testl %eax, %eax
je 0x4188
movq %r15, %rdi
leaq 0xa1c9(%rip), %rsi      # 0xe314
leaq 0x9f6e(%rip), %rdx      # 0xe0c0
movq %r14, %rcx
movl $0xc7, %r8d
callq 0x1bb7
testl %eax, %eax
je 0x41b1
movq (%r15), %rax
cmpl $0x0, 0x1b4(%rax)
je 0x41b1
movq %r15, %rdi
leaq 0x9f46(%rip), %rsi      # 0xe0c0
callq 0x1867
testl %eax, %eax
je 0x41b1
jmp 0x43e7
movq (%r15), %rax
movl $0x1, 0x1b8(%rax)
xorl %eax, %eax
movl %eax, %edx
movq %r15, %rdi
leaq 0x9f1d(%rip), %rsi      # 0xe0c0
movq %r14, %rcx
movl $0xc6, %r8d
callq 0x1684
cmpl $0x0, 0xa15c(%rip)      # 0xe314
je 0x40ff
movq (%r15), %rdi
cmpl $0x0, 0x1b4(%rdi)
jne 0x41ef
addq $0xd0, %rdi
pushq $0x1
popq %rsi
callq 0x1130
testl %eax, %eax
jne 0x41ef
movq (%r15), %rax
movl $0x1, 0x1b4(%rax)
jmp 0x40ff
movq %rbx, %rdi
callq 0x1290
movq (%rax), %rax
movl $0x3, 0x1b8(%rax)
leaq 0xa101(%rip), %r15      # 0xe30c
movq %rbx, %rdi
callq 0x1290
movq (%rax), %rax
cmpl $0x0, 0x1b4(%rax)
jg 0x422f
movq %rbx, %rdi
callq 0x18d5
testl %eax, %eax
je 0x409c
movq %rbx, %rdi
callq 0x1290
movq (%rax), %rax
movl 0x1b4(%rax), %ecx
movl %ecx, %edx
decl %edx
movl %edx, 0x1b4(%rax)
testl %ecx, %ecx
jle 0x420b
jmp 0x42b7
movq %r12, %rdi
callq 0x1290
movq (%rax), %rax
movl $0x3, 0x1b8(%rax)
movl $0xc3, %ebx
movq %r12, %rdi
callq 0x1290
movq (%rax), %rax
cmpl $0x0, 0x1b4(%rax)
jg 0x4296
movq %r12, %rdi
callq 0x18d5
testl %eax, %eax
jne 0x4296
jmp 0x3f8e
movl %ebp, %edi
callq 0x1050
movq %r12, %rdi
callq 0x1290
movq (%rax), %rax
movl 0x1b4(%rax), %ecx
movl %ecx, %edx
decl %edx
movl %edx, 0x1b4(%rax)
testl %ecx, %ecx
jg 0x428f
jmp 0x426a
pushq $0x41
popq %rdi
callq 0x1050
movq %rbx, %rdi
callq 0x125c
pushq $0x2
popq %rbp
cmpl $-0x1, %eax
je 0x446f
leaq 0x613e(%rip), %rdx      # 0xa418
movq %rbx, %rdi
movl $0xc8, %esi
movl $0xcc, %ecx
callq 0x2112
movq %rax, %r14
movq %rbx, %rdi
callq 0x1290
movq (%rax), %rax
movq %r14, 0x1a0(%rax)
pushq $0x1
popq %rsi
movq %r14, %rdi
callq 0x1130
testl %eax, %eax
je 0x4455
movq %r14, %rdi
jmp 0x43dd
movq (%r13), %rdi
callq 0x1290
movq (%rax), %rax
movl $0x3, 0x1b8(%rax)
pushq $0x43
popq %rbx
movq (%r13), %rdi
callq 0x1290
movq (%rax), %rax
cmpl $0x0, 0x1b4(%rax)
jg 0x4360
movq (%r13), %rdi
callq 0x18d5
testl %eax, %eax
jne 0x4360
jmp 0x4382
movl %ebx, %edi
callq 0x1050
movq (%r13), %rdi
callq 0x1290
movq (%rax), %rax
movl 0x1b4(%rax), %ecx
movl %ecx, %edx
decl %edx
movl %edx, 0x1b4(%rax)
testl %ecx, %ecx
jg 0x4359
jmp 0x4335
movq (%r13), %rdi
callq 0x125c
pushq $0x3
popq %rbp
cmpl $-0x1, %eax
je 0x446f
movq (%r13), %rdi
leaq 0x6076(%rip), %rdx      # 0xa418
movl $0xc8, %esi
movl $0xd6, %ecx
callq 0x2112
movq %rax, %rbx
movq (%r13), %rdi
callq 0x1290
movq (%rax), %rax
movq %rbx, 0x1a0(%rax)
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0x1130
testl %eax, %eax
je 0x445a
movq %rbx, %rdi
callq 0x1040
jmp 0x446f
movq 0x8(%r15), %rdi
pushq $0x1
popq %rbp
movl %ebp, %esi
callq 0x1f02
movq (%r15), %rax
movl $0x2, 0x1b8(%rax)
movq %r15, %rdi
callq 0x125c
cmpl $-0x1, %eax
je 0x446f
leaq 0x6002(%rip), %rdx      # 0xa418
movl $0xc8, %ecx
movq %r15, %rdi
movl %ecx, %esi
callq 0x2112
movq %rax, %r14
movq %r15, %rdi
callq 0x1290
movq (%rax), %rax
movq %r14, 0x1a0(%rax)
pushq $0x1
popq %rbx
movq %r14, %rdi
movl %ebx, %esi
callq 0x1130
testl %eax, %eax
je 0x4465
movq %r14, %rdi
callq 0x1040
jmp 0x446d
movq %rbx, %rdi
jmp 0x445e
movq (%r13), %rdi
callq 0x1aec
jmp 0x446f
movq %r15, %rdi
callq 0x1aec
movl %ebx, %ebp
movl %ebp, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq