// File: /workspace/github_c_makefile_star2_O0/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
movq %rsp, %rbp
subq $0x90, %rsp
leaq 0xb9fe(%rip), %rax      # 0x11260
movq (%rax), %rdi
leaq 0x8bf4(%rip), %rsi      # 0xe460
movl $0xc3, %edx
callq 0x1610
leaq 0xb9e3(%rip), %rax      # 0x11260
movq (%rax), %rdi
callq 0x12a0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
leaq 0xba60(%rip), %rsi      # 0x112fc
leaq 0x8bbd(%rip), %rdx      # 0xe460
movl $0xc3, %ecx
callq 0x1f60
cmpl $0x0, %eax
je 0x5dfd
movq -0x18(%rbp), %rax
movq (%rax), %rax
cmpl $0x0, 0x1b4(%rax)
je 0x5dfd
movq -0x18(%rbp), %rax
movq (%rax), %rdi
addq $0x8, %rdi
movl $0x1, %esi
callq 0x1110
cmpl $0x0, %eax
jne 0x5dfd
movq -0x18(%rbp), %rax
movq (%rax), %rax
movl $0x1, 0x1b8(%rax)
movq -0x18(%rbp), %rdi
leaq 0x8b5c(%rip), %rsi      # 0xe460
movl $0xc4, %edx
callq 0x1610
movq -0x18(%rbp), %rdi
callq 0x12a0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
leaq 0xb9d2(%rip), %rsi      # 0x11300
leaq 0x8b2b(%rip), %rdx      # 0xe460
movl $0xc4, %ecx
callq 0x1f60
cmpl $0x0, %eax
je 0x5c9c
movq -0x28(%rbp), %rax
movq (%rax), %rax
cmpl $0x0, 0x1b4(%rax)
je 0x5c9c
movq -0x28(%rbp), %rax
movq (%rax), %rdi
addq $0x8, %rdi
movl $0x1, %esi
callq 0x1110
cmpl $0x0, %eax
jne 0x5c9c
movq -0x28(%rbp), %rax
movq (%rax), %rax
movl $0x1, 0x1b8(%rax)
movq -0x28(%rbp), %rdi
leaq 0x8aca(%rip), %rsi      # 0xe460
movl $0xc5, %edx
callq 0x1610
movq -0x28(%rbp), %rdi
callq 0x12a0
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
leaq 0xb944(%rip), %rsi      # 0x11304
leaq 0x8a99(%rip), %rdx      # 0xe460
movl $0xc5, %ecx
callq 0x1f60
cmpl $0x0, %eax
je 0x5a37
movq -0x38(%rbp), %rax
movq (%rax), %rax
cmpl $0x0, 0x1b4(%rax)
je 0x5a37
movq -0x38(%rbp), %rax
movq (%rax), %rdi
addq $0x8, %rdi
movl $0x1, %esi
callq 0x1110
cmpl $0x0, %eax
jne 0x5a37
movq -0x38(%rbp), %rax
movq (%rax), %rax
movl $0x1, 0x1b8(%rax)
movq -0x38(%rbp), %rdi
leaq 0xb694(%rip), %rsi      # 0x110b0
xorl %eax, %eax
movl %eax, %edx
leaq 0x8a39(%rip), %rcx      # 0xe460
movl $0xc6, %r8d
callq 0x1860
jmp 0x5b37
movq -0x38(%rbp), %rdi
leaq 0xb8c2(%rip), %rsi      # 0x11304
leaq 0xb667(%rip), %rdx      # 0x110b0
leaq 0x8a10(%rip), %rcx      # 0xe460
movl $0xc7, %r8d
callq 0x2030
cmpl $0x0, %eax
je 0x5b35
movq -0x38(%rbp), %rax
movq (%rax), %rax
cmpl $0x0, 0x1b4(%rax)
je 0x5b35
movq -0x38(%rbp), %rdi
leaq 0xb62d(%rip), %rsi      # 0x110b0
callq 0x1b80
cmpl $0x0, %eax
je 0x5b35
movq -0x38(%rbp), %rax
movq 0x8(%rax), %rdi
movl $0x1, %esi
callq 0x2550
movq %rax, -0x40(%rbp)
movq -0x38(%rbp), %rax
movq (%rax), %rax
movl $0x2, 0x1b8(%rax)
movq -0x38(%rbp), %rdi
callq 0x1240
cmpl $-0x1, %eax
je 0x5b29
movq -0x38(%rbp), %rdi
movl $0xc8, %ecx
leaq 0x898a(%rip), %rdx      # 0xe460
movl %ecx, %esi
callq 0x28c0
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x38(%rbp), %rdi
callq 0x12a0
movq -0x68(%rbp), %rcx
movq (%rax), %rax
movq %rcx, 0x1a0(%rax)
movq -0x48(%rbp), %rdi
movl $0x1, %esi
callq 0x1110
cmpl $0x0, %eax
jne 0x5b1e
movq -0x38(%rbp), %rdi
callq 0x1f00
jmp 0x5b27
movq -0x48(%rbp), %rdi
callq 0x1040
jmp 0x5b29
movl $0x1, -0x4(%rbp)
jmp 0x5f84
jmp 0x5b37
cmpl $0x0, 0xb7c6(%rip)      # 0x11304
jne 0x5b45
jmp 0x59a0
movq -0x38(%rbp), %rax
movq (%rax), %rax
cmpl $0x0, 0x1b4(%rax)
jne 0x5b85
movq -0x38(%rbp), %rax
movq (%rax), %rdi
addq $0xd0, %rdi
movl $0x1, %esi
callq 0x1110
cmpl $0x0, %eax
jne 0x5b85
movq -0x38(%rbp), %rax
movq (%rax), %rax
movl $0x1, 0x1b4(%rax)
jmp 0x5b87
jmp 0x5b8c
jmp 0x59a0
movq -0x28(%rbp), %rdi
callq 0x12a0
movq (%rax), %rax
movl $0x3, 0x1b8(%rax)
movq -0x28(%rbp), %rdi
callq 0x12a0
movq (%rax), %rcx
movb $0x1, %al
cmpl $0x0, 0x1b4(%rcx)
movb %al, -0x69(%rbp)
jg 0x5bce
movq -0x28(%rbp), %rdi
callq 0x1c60
cmpl $0x0, %eax
setne %al
movb %al, -0x69(%rbp)
movb -0x69(%rbp), %al
testb $0x1, %al
jne 0x5bda
jmp 0x5c95
jmp 0x5bdc
movq -0x28(%rbp), %rdi
callq 0x12a0
movq (%rax), %rcx
movl 0x1b4(%rcx), %eax
movl %eax, %edx
addl $-0x1, %edx
movl %edx, 0x1b4(%rcx)
cmpl $0x0, %eax
jle 0x5c90
leaq 0x8867(%rip), %rdi      # 0xe470
movb $0x0, %al
callq 0x1060
movq -0x28(%rbp), %rdi
callq 0x1240
cmpl $-0x1, %eax
je 0x5c84
movq -0x28(%rbp), %rdi
movl $0xc8, %esi
leaq 0x8832(%rip), %rdx      # 0xe460
movl $0xcc, %ecx
callq 0x28c0
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x28(%rbp), %rdi
callq 0x12a0
movq -0x78(%rbp), %rcx
movq (%rax), %rax
movq %rcx, 0x1a0(%rax)
movq -0x50(%rbp), %rdi
movl $0x1, %esi
callq 0x1110
cmpl $0x0, %eax
jne 0x5c79
movq -0x28(%rbp), %rdi
callq 0x1f00
jmp 0x5c82
movq -0x50(%rbp), %rdi
callq 0x1040
jmp 0x5c84
movl $0x2, -0x4(%rbp)
jmp 0x5f84
jmp 0x5ba2
jmp 0x5c97
jmp 0x5d23
movq -0x28(%rbp), %rdi
leaq 0xb659(%rip), %rsi      # 0x11300
leaq 0xb402(%rip), %rdx      # 0x110b0
leaq 0x87ab(%rip), %rcx      # 0xe460
movl $0xcf, %r8d
callq 0x2030
cmpl $0x0, %eax
je 0x5d21
movq -0x28(%rbp), %rax
movq (%rax), %rax
cmpl $0x0, 0x1b4(%rax)
je 0x5d21
movq -0x28(%rbp), %rdi
leaq 0xb3d0(%rip), %rsi      # 0x110b0
callq 0x1b80
cmpl $0x0, %eax
je 0x5d21
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rdi
movl $0x1, %esi
callq 0x2550
movq %rax, -0x58(%rbp)
movq -0x28(%rbp), %rax
movq (%rax), %rax
movl $0x2, 0x1b8(%rax)
leaq 0x875a(%rip), %rdi      # 0xe472
movb $0x0, %al
callq 0x1060
jmp 0x5d21
jmp 0x5d23
cmpl $0x0, 0xb5d6(%rip)      # 0x11300
jne 0x5d31
jmp 0x590e
movq -0x28(%rbp), %rax
movq (%rax), %rax
cmpl $0x0, 0x1b4(%rax)
jne 0x5d71
movq -0x28(%rbp), %rax
movq (%rax), %rdi
addq $0xd0, %rdi
movl $0x1, %esi
callq 0x1110
cmpl $0x0, %eax
jne 0x5d71
movq -0x28(%rbp), %rax
movq (%rax), %rax
movl $0x1, 0x1b4(%rax)
jmp 0x5d73
jmp 0x5d78
jmp 0x590e
movq -0x18(%rbp), %rdi
callq 0x12a0
movq (%rax), %rax
movl $0x3, 0x1b8(%rax)
movq -0x18(%rbp), %rdi
callq 0x12a0
movq (%rax), %rcx
movb $0x1, %al
cmpl $0x0, 0x1b4(%rcx)
movb %al, -0x79(%rbp)
jg 0x5dba
movq -0x18(%rbp), %rdi
callq 0x1c60
cmpl $0x0, %eax
setne %al
movb %al, -0x79(%rbp)
movb -0x79(%rbp), %al
testb $0x1, %al
jne 0x5dc3
jmp 0x5df9
jmp 0x5dc5
movq -0x18(%rbp), %rdi
callq 0x12a0
movq (%rax), %rcx
movl 0x1b4(%rcx), %eax
movl %eax, %edx
addl $-0x1, %edx
movl %edx, 0x1b4(%rcx)
cmpl $0x0, %eax
jle 0x5df7
leaq 0x868a(%rip), %rdi      # 0xe478
movb $0x0, %al
callq 0x1060
jmp 0x5dc5
jmp 0x5d8e
jmp 0x5dfb
jmp 0x5dfd
cmpl $0x0, 0xb4f8(%rip)      # 0x112fc
jne 0x5e0b
jmp 0x5876
movq -0x18(%rbp), %rax
movq (%rax), %rax
cmpl $0x0, 0x1b4(%rax)
jne 0x5e4b
movq -0x18(%rbp), %rax
movq (%rax), %rdi
addq $0xd0, %rdi
movl $0x1, %esi
callq 0x1110
cmpl $0x0, %eax
jne 0x5e4b
movq -0x18(%rbp), %rax
movq (%rax), %rax
movl $0x1, 0x1b4(%rax)
jmp 0x5e4d
jmp 0x5e52
jmp 0x5876
leaq 0xb407(%rip), %rax      # 0x11260
movq (%rax), %rdi
callq 0x12a0
movq (%rax), %rax
movl $0x3, 0x1b8(%rax)
leaq 0xb3eb(%rip), %rax      # 0x11260
movq (%rax), %rdi
callq 0x12a0
movq (%rax), %rcx
movb $0x1, %al
cmpl $0x0, 0x1b4(%rcx)
movb %al, -0x7a(%rbp)
jg 0x5ea6
leaq 0xb3cb(%rip), %rax      # 0x11260
movq (%rax), %rdi
callq 0x1c60
cmpl $0x0, %eax
setne %al
movb %al, -0x7a(%rbp)
movb -0x7a(%rbp), %al
testb $0x1, %al
jne 0x5eaf
jmp 0x5eeb
jmp 0x5eb1
leaq 0xb3a8(%rip), %rax      # 0x11260
movq (%rax), %rdi
callq 0x12a0
movq (%rax), %rcx
movl 0x1b4(%rcx), %eax
movl %eax, %edx
addl $-0x1, %edx
movl %edx, 0x1b4(%rcx)
cmpl $0x0, %eax
jle 0x5ee9
leaq 0x859a(%rip), %rdi      # 0xe47a
movb $0x0, %al
callq 0x1060
jmp 0x5eb1
jmp 0x5e6e
leaq 0xb36e(%rip), %rax      # 0x11260
movq (%rax), %rdi
callq 0x1240
cmpl $-0x1, %eax
je 0x5f7d
leaq 0xb35a(%rip), %rax      # 0x11260
movq (%rax), %rdi
movl $0xc8, %esi
leaq 0x854b(%rip), %rdx      # 0xe460
movl $0xd6, %ecx
callq 0x28c0
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x88(%rbp)
leaq 0xb32b(%rip), %rax      # 0x11260
movq (%rax), %rdi
callq 0x12a0
movq -0x88(%rbp), %rcx
movq (%rax), %rax
movq %rcx, 0x1a0(%rax)
movq -0x60(%rbp), %rdi
movl $0x1, %esi
callq 0x1110
cmpl $0x0, %eax
jne 0x5f72
leaq 0xb2f8(%rip), %rax      # 0x11260
movq (%rax), %rdi
callq 0x1f00
jmp 0x5f7b
movq -0x60(%rbp), %rdi
callq 0x1040
jmp 0x5f7d
movl $0x3, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x90, %rsp
popq %rbp
retq