// File: /workspace/github_cpp_makefile_star2_O3/fondoger[P]C0-Compiler/src/mips.cpp
// Function: gen_FUNC()
static void gen_FUNC()
{
    // mid-code format: FUNC, int|char|void, id
    assert((*m).op == FUNC);

    // generate label for function
    // (*m).b if the function name
    MIPS(T << (*m).b << ":"); 

    buildSymbolTable();
    assert((*m).op == FUNC);
    m++;

    indent();
    // allocate memory from stack
    MIPS(T << "addiu" << HT << "$sp, $sp, " << -cur_func_size);
    MIPS(T << "sw" << HT << "$ra, "<< (cur_func_size - 4) << "($sp)");

    while ((*m).op != END) {
        switch ((*m).op) {
            case ADD:
            case SUB: 
            case MUL:
            case DIV:   gen_ADD_SUB_MUL_DIV(*m); break;
            case WARRAY:
            case RARRAY:gen_RARRAY_WARRAY(*m); break;
            case PUSH:  gen_PUSH(*m); break;
            case CALL:  gen_CALL(*m); break;
            case WRITE: gen_WRITE(*m); break;
            case READ:  gen_READ(*m); break;
            case ASSIGN:gen_ASSIGN(*m); break;
            case GETRET:gen_GETRET(*m); break;
            case GOTO:  gen_GOTO(*m); break;
            case LABEL: gen_LABEL(*m); break;
            case RET:   gen_RET(*m); break;
            case COMPARE: gen_COMPARE(*m); break;
            case VAR:   break;
            case PARA:  break;
            case TEMP:  break;
            default:    MIPS(T << "unhandled:" << op2str[(*m).op]); break;
        }
        m++;
    }
    gen_END();

    unindent();
    m++;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xc8, %rsp
movq 0x11395(%rip), %rax     # 0x28758
cmpl $0x5, (%rax)
jne 0x19464
movq 0x28(%rax), %rsi
movq 0x30(%rax), %rdx
leaq 0x111e5(%rip), %rdi     # 0x285c0
callq 0x3340
movq %rax, %rbx
leaq 0x4deb(%rip), %rsi      # 0x1c1d5
movl $0x1, %edx
movq %rax, %rdi
callq 0x3340
movq %rbx, %rdi
callq 0x16ea7
movq 0x11352(%rip), %rax     # 0x28758
cmpl $0x5, (%rax)
jne 0x19483
movl $0x1, %edi
callq 0x1aa43
movq 0x11338(%rip), %rsi     # 0x28758
addq $0x28, %rsi
leaq 0x1130d(%rip), %rdi     # 0x28738
callq 0x3160
movl $0x4, 0x1137a(%rip)     # 0x287b4
xorps %xmm0, %xmm0
leaq -0xc0(%rbp), %rdi
movaps %xmm0, 0x40(%rdi)
movaps %xmm0, 0x30(%rdi)
movaps %xmm0, 0x20(%rdi)
movaps %xmm0, 0x10(%rdi)
movaps %xmm0, (%rdi)
xorl %esi, %esi
callq 0x19b16
movl $0xb0, %ebx
addq 0x112ee(%rip), %rbx     # 0x28758
leaq 0x5969(%rip), %r15      # 0x1cdda
movl -0x48(%rbx), %eax
cmpl $0x11, %eax
jg 0x17488
cmpl $0x6, %eax
je 0x17491
cmpl $0x8, %eax
je 0x17491
jmp 0x1751e
cmpl $0x17, %eax
jne 0x17527
leaq -0x40(%rbx), %rdi
leaq 0x515e(%rip), %rsi      # 0x1c5fa
callq 0x30c0
movq %rbx, %rdi
movq %r15, %rsi
callq 0x30c0
testl %eax, %eax
je 0x17513
movq (%rbx), %r12
callq 0x3050
movq %rax, %r13
movl (%rax), %r14d
movl $0x0, (%rax)
movq %r12, %rdi
leaq -0x70(%rbp), %rsi
movl $0xa, %edx
callq 0x33a0
cmpq %r12, -0x70(%rbp)
je 0x192c0
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x192cc
movl (%r13), %ecx
cmpl $0x22, %ecx
je 0x192cc
testl %ecx, %ecx
jne 0x1750e
movl %r14d, (%r13)
shll $0x2, %eax
jmp 0x17518
movl $0x4, %eax
addl %eax, 0x11296(%rip)     # 0x287b4
addq $0x68, %rbx
jmp 0x17471
cmpl $0x12, %eax
jne 0x1751e
movl $0xfffffffc, 0x11282(%rip) # imm = 0xFFFFFFFC
movl 0x11277(%rip), %r14d    # 0x287b4
addl $-0x4, %r14d
movq 0x11210(%rip), %rbx     # 0x28758
leaq 0x50ab(%rip), %r13      # 0x1c5fa
leaq 0x5884(%rip), %r12      # 0x1cdda
addq $0x48, %rbx
movl 0x20(%rbx), %eax
addq $0x68, %rbx
cmpl $0x11, %eax
jg 0x17572
cmpl $0x6, %eax
je 0x17580
cmpl $0x8, %eax
jne 0x1755a
jmp 0x17580
cmpl $0x12, %eax
je 0x17678
cmpl $0x17, %eax
jne 0x1755a
leaq -0x40(%rbx), %rdi
movq %r13, %rsi
callq 0x30c0
cmpl $0x1, %eax
movl $0x2, %r15d
sbbl $0x0, %r15d
movq %rbx, %rdi
movq %r12, %rsi
callq 0x30c0
testl %eax, %eax
je 0x1763c
movl %r15d, -0xe8(%rbp)
movq %r13, %r15
movq (%rbx), %r13
callq 0x3050
movq %rax, %r12
movl (%rax), %eax
movl %eax, -0xec(%rbp)
movl $0x0, (%r12)
movq %r13, %rdi
leaq -0x70(%rbp), %rsi
movl $0xa, %edx
callq 0x33a0
cmpq %r13, -0x70(%rbp)
je 0x193ef
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x193fb
movl (%r12), %ecx
cmpl $0x22, %ecx
je 0x193fb
testl %ecx, %ecx
movq %r15, %r13
jne 0x17624
movl -0xec(%rbp), %ecx
movl %ecx, (%r12)
shll $0x2, %eax
movl $0x3, %ecx
leaq 0x57a7(%rip), %r12      # 0x1cdda
movl -0xe8(%rbp), %r15d
jmp 0x17646
movl $0x4, %eax
movl $0x1, %ecx
subl %eax, %r14d
movl $0x1, -0x70(%rbp)
movl %ecx, -0x6c(%rbp)
movl %r15d, -0x68(%rbp)
movl $0xffffffff, -0x64(%rbp) # imm = 0xFFFFFFFF
movl %r14d, -0x60(%rbp)
leaq -0x20(%rbx), %rdi
leaq -0x70(%rbp), %rsi
callq 0x1a982
addq $-0x48, %rbx
jmp 0x17556
leaq -0xc0(%rbp), %rdi
callq 0x19cbc
movq 0x110cd(%rip), %rax     # 0x28758
cmpl $0x5, (%rax)
jne 0x194a2
addq $0x68, %rax
movq %rax, 0x110b9(%rip)     # 0x28758
addl $0x8, 0x1110a(%rip)     # 0x287b0
leaq 0x10f13(%rip), %r14     # 0x285c0
leaq 0x575f(%rip), %rsi      # 0x1ce13
movl $0x5, %edx
movq %r14, %rdi
callq 0x3340
leaq 0x5711(%rip), %r15      # 0x1cdd9
movl $0x1, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x3340
leaq 0x573a(%rip), %rsi      # 0x1ce19
movl $0xa, %edx
movq %r14, %rdi
callq 0x3340
xorl %esi, %esi
subl 0x110c0(%rip), %esi     # 0x287b4
movq %r14, %rdi
callq 0x3470
movq %rax, %rdi
callq 0x16ea7
leaq 0x568f(%rip), %rsi      # 0x1cd9a
movl $0x2, %edx
movq %r14, %rdi
callq 0x3340
movl $0x1, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x3340
leaq 0x56f5(%rip), %rsi      # 0x1ce24
movl $0x5, %edx
movq %r14, %rdi
callq 0x3340
movl 0x11072(%rip), %esi     # 0x287b4
addl $-0x4, %esi
movq %r14, %rdi
callq 0x3470
movq %rax, %rbx
leaq 0x56d3(%rip), %rsi      # 0x1ce2a
movl $0x5, %edx
movq %rax, %rdi
callq 0x3340
movq %rbx, %rdi
callq 0x16ea7
leaq -0xb0(%rbp), %r12
movq 0x10fde(%rip), %rbx     # 0x28758
leaq -0xe0(%rbp), %r13
movl (%rbx), %eax
cmpq $0x17, %rax
ja 0x17a17
leaq 0x5554(%rip), %rdx      # 0x1cce8
movslq (%rdx,%rax,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
decl %eax
leaq 0x56bb(%rip), %r15      # 0x1ce61
cmpl $0x2, %eax
ja 0x177bb
movl %eax, %eax
leaq 0x5594(%rip), %rcx      # 0x1cd48
movslq (%rcx,%rax,4), %r15
addq %rcx, %r15
movq %r12, -0xc0(%rbp)
movq %r15, %rdi
callq 0x3120
leaq (%rax,%r15), %rdx
leaq -0xc0(%rbp), %rdi
movq %r15, %rsi
callq 0x14396
leaq 0x8(%rbx), %r15
movq %r15, %rdi
leaq -0x2c(%rbp), %rsi
callq 0x163ae
testb %al, %al
je 0x17806
leaq 0x28(%rbx), %rdi
leaq -0x2c(%rbp), %rsi
callq 0x163ae
testb %al, %al
jne 0x19282
leaq -0x60(%rbp), %r14
movq %r14, -0x70(%rbp)
movb $0x30, 0x2(%r14)
movw $0x7624, (%r14)         # imm = 0x7624
movq $0x3, -0x68(%rbp)
movb $0x0, -0x5d(%rbp)
leaq -0x70(%rbp), %rdi
movq %r15, %rsi
callq 0x19802
movq -0x70(%rbp), %rdi
cmpq %r14, %rdi
je 0x1783f
callq 0x32a0
leaq -0x60(%rbp), %rax
movq %rax, -0x70(%rbp)
movw $0x7624, %dx            # imm = 0x7624
movw %dx, (%rax)
movb $0x30, 0x2(%rax)
movl $0x3, %esi
movq %rsi, -0x68(%rbp)
xorl %ecx, %ecx
movb %cl, -0x5d(%rbp)
leaq -0x40(%rbp), %rax
movq %rax, -0x50(%rbp)
movw %dx, (%rax)
movb $0x31, 0x2(%rax)
movq %rsi, -0x48(%rbp)
movb %cl, -0x3d(%rbp)
leaq 0x28(%rbx), %r15
movq %r15, %rdi
leaq -0x2c(%rbp), %rsi
callq 0x163ae
testb %al, %al
je 0x179c7
movl -0x2c(%rbp), %r12d
movl %r12d, %r13d
negl %r13d
cmovsl %r12d, %r13d
movl $0x1, %r15d
cmpl $0xa, %r13d
jb 0x182c6
movl $0x4, %r15d
movl %r13d, %eax
movl $0xd1b71759, %edx       # imm = 0xD1B71759
cmpl $0x63, %eax
jbe 0x182bd
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x182c3
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x182c6
movl %eax, %ecx
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %r15d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x178ba
addl $-0x3, %r15d
jmp 0x182c6
leaq 0x8(%rbx), %rdi
leaq -0x50(%rbp), %rsi
callq 0x1a77d
testb %al, %al
je 0x19263
cmpl $0x3, -0x4c(%rbp)
jne 0x192a1
leaq 0x28(%rbx), %r15
movq %r15, %rdi
movq %r13, %rsi
callq 0x163ae
testb %al, %al
je 0x17ffb
movq %r12, -0xc0(%rbp)
movb $0x30, 0x2(%r12)
movw $0x7624, (%r12)         # imm = 0x7624
movq $0x3, -0xb8(%rbp)
movb $0x0, -0xad(%rbp)
movl -0xe0(%rbp), %r13d
shll $0x2, %r13d
movl %r13d, %r12d
negl %r12d
cmovsl %r13d, %r12d
movl $0x1, %r15d
cmpl $0xa, %r12d
jb 0x1894d
movl $0x4, %r15d
movl %r12d, %eax
movl $0xd1b71759, %edx       # imm = 0xD1B71759
cmpl $0x63, %eax
jbe 0x1892b
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x1894a
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x1894d
movl %eax, %ecx
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %r15d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x17988
addl $-0x3, %r15d
jmp 0x1894d
leaq -0xd0(%rbp), %r14
movq %r14, -0xe0(%rbp)
movb $0x31, 0x2(%r14)
movw $0x7624, (%r14)         # imm = 0x7624
movq $0x3, -0xd8(%rbp)
movb $0x0, -0xcd(%rbp)
movq %r13, %rdi
movq %r15, %rsi
callq 0x19802
movq -0xe0(%rbp), %rdi
cmpq %r14, %rdi
je 0x18330
callq 0x32a0
jmp 0x18330
movl $0xa, %edx
movq %r14, %rdi
leaq 0x540a(%rip), %rsi      # 0x1ce30
callq 0x3340
movq 0x10d26(%rip), %rax     # 0x28758
movl (%rax), %eax
shlq $0x5, %rax
leaq 0x10831(%rip), %rcx     # 0x28270
movq (%rax,%rcx), %rsi
movq 0x8(%rax,%rcx), %rdx
jmp 0x18e81
movl $0x2, %edx
movq %r14, %rdi
leaq 0x533e(%rip), %rsi      # 0x1cd9a
callq 0x3340
movl $0x1, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x3340
movl $0x5, %edx
movq %r14, %rdi
leaq 0x5375(%rip), %rsi      # 0x1cdf5
callq 0x3340
addq $0x48, %rbx
leaq -0xc0(%rbp), %rdi
movq %rbx, %rsi
callq 0x19968
movq -0xc0(%rbp), %rsi
movq -0xb8(%rbp), %rdx
movq %r14, %rdi
callq 0x3340
movq %rax, %rdi
callq 0x16ea7
jmp 0x1846d
movq 0x8(%rbx), %rsi
movq 0x10(%rbx), %rdx
movl 0x10ce7(%rip), %eax     # 0x287b0
leal -0x4(%rax), %ecx
movl %ecx, 0x10cde(%rip)     # 0x287b0
cmpl $0x3, %eax
jle 0x19316
movq %r14, %rdi
callq 0x3340
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x46e0(%rip), %rsi      # 0x1c1d5
callq 0x3340
movq %rbx, %rdi
callq 0x16ea7
addl $0x4, 0x10ca7(%rip)     # 0x287b0
jmp 0x18e91
movl $0x3, %edx
movq %r14, %rdi
leaq 0x52d1(%rip), %rsi      # 0x1cdee
callq 0x3340
movl $0x1, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x3340
movq 0x8(%rbx), %rsi
movq 0x10(%rbx), %rdx
movq %r14, %rdi
callq 0x3340
movq %rax, %rdi
callq 0x16ea7
movl $0xfffffffc, 0x10c64(%rip) # imm = 0xFFFFFFFC
jmp 0x18e91
leaq 0x8(%rbx), %r15
movq %r15, %rdi
leaq 0x4a93(%rip), %rsi      # 0x1c5fa
callq 0x30c0
testl %eax, %eax
je 0x17b9a
movq %r15, %rdi
leaq 0x4b5e(%rip), %rsi      # 0x1c6d8
callq 0x30c0
testl %eax, %eax
je 0x17b9a
movq %r15, %rdi
leaq 0x47a3(%rip), %rsi      # 0x1c330
callq 0x30c0
testl %eax, %eax
jne 0x19373
movq %r15, %rdi
leaq 0x4b34(%rip), %rsi      # 0x1c6d8
callq 0x30c0
testl %eax, %eax
je 0x18181
movq %r15, %rdi
leaq 0x4a3f(%rip), %rsi      # 0x1c5fa
callq 0x30c0
addq $0x28, %rbx
testl %eax, %eax
je 0x1851d
movq %r12, -0xc0(%rbp)
movb $0x30, 0x2(%r12)
movw $0x6124, (%r12)         # imm = 0x6124
movq $0x3, -0xb8(%rbp)
movb $0x0, -0xad(%rbp)
leaq -0xc0(%rbp), %rdi
movq %rbx, %rsi
callq 0x19802
movq -0xc0(%rbp), %rdi
cmpq %r12, %rdi
leaq 0x51c7(%rip), %r15      # 0x1cdd9
je 0x17c19
callq 0x32a0
movl $0x2, %edx
movq %r14, %rdi
leaq 0x51ca(%rip), %rsi      # 0x1cdf2
callq 0x3340
movl $0x1, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x3340
movl $0x7, %edx
movq %r14, %rdi
leaq 0x5415(%rip), %rsi      # 0x1d061
jmp 0x1859d
leaq 0x8(%rbx), %r15
movq %r15, %rdi
leaq 0x499b(%rip), %rsi      # 0x1c5fa
callq 0x30c0
testl %eax, %eax
je 0x17c7f
movq %r15, %rdi
leaq 0x46be(%rip), %rsi      # 0x1c330
callq 0x30c0
testl %eax, %eax
jne 0x19354
movq %r15, %rdi
leaq 0x4971(%rip), %rsi      # 0x1c5fa
callq 0x30c0
movl %eax, %r15d
movl $0x2, %edx
movq %r14, %rdi
leaq 0x5152(%rip), %rsi      # 0x1cdf2
callq 0x3340
movl $0x1, %edx
movq %r14, %rdi
leaq 0x5125(%rip), %rsi      # 0x1cdd9
callq 0x3340
testl %r15d, %r15d
je 0x18210
movl $0x7, %edx
movq %r14, %rdi
leaq 0x53c0(%rip), %rsi      # 0x1d091
jmp 0x1821f
leaq 0x8(%rbx), %rdi
leaq 0x4919(%rip), %rsi      # 0x1c5fa
callq 0x30c0
addl $-0x4, 0x10acb(%rip)    # 0x287b8
movq %r12, -0xc0(%rbp)
movb $0x30, 0x2(%r12)
movw $0x7624, (%r12)         # imm = 0x7624
movq $0x3, -0xb8(%rbp)
movb $0x0, -0xad(%rbp)
addq $0x28, %rbx
leaq -0xc0(%rbp), %rdi
movq %rbx, %rsi
callq 0x19802
movq -0xc0(%rbp), %rdi
cmpq %r12, %rdi
je 0x17d37
callq 0x32a0
movl $0x2, %edx
movq %r14, %rdi
leaq 0x5054(%rip), %rsi      # 0x1cd9a
callq 0x3340
movl $0x1, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x3340
movl $0x5, %edx
movq %r14, %rdi
leaq 0x508b(%rip), %rsi      # 0x1cdf5
callq 0x3340
movl 0x10a43(%rip), %esi     # 0x287b8
movq %r14, %rdi
callq 0x3470
movq %rax, %rbx
movl $0x5, %edx
movq %rax, %rdi
leaq 0x509b(%rip), %rsi      # 0x1ce2a
jmp 0x18d3b
movl $0x1, %edx
movq %r14, %rdi
leaq 0x52f6(%rip), %rsi      # 0x1d099
callq 0x3340
movl $0x1, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x3340
movq 0x8(%rbx), %rsi
movq 0x10(%rbx), %rdx
jmp 0x18e81
movq %r12, -0xc0(%rbp)
movb $0x30, 0x2(%r12)
movw $0x7624, (%r12)         # imm = 0x7624
movq $0x3, -0xb8(%rbp)
movb $0x0, -0xad(%rbp)
leaq 0x8(%rbx), %rsi
leaq -0xc0(%rbp), %rdi
callq 0x19802
movq -0xc0(%rbp), %rdi
cmpq %r12, %rdi
je 0x17e0c
callq 0x32a0
movl $0x2, %edx
movq %r14, %rdi
leaq 0x4f7f(%rip), %rsi      # 0x1cd9a
callq 0x3340
movl $0x1, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x3340
movl $0x5, %edx
movq %r14, %rdi
leaq 0x4fb6(%rip), %rsi      # 0x1cdf5
callq 0x3340
addq $0x48, %rbx
leaq -0xc0(%rbp), %rdi
movq %rbx, %rsi
callq 0x19968
movq -0xc0(%rbp), %rsi
movq -0xb8(%rbp), %rdx
movq %r14, %rdi
callq 0x3340
movq %rax, %rdi
callq 0x16ea7
jmp 0x1846d
addq $0x8, %rbx
movq %rbx, %rdi
leaq 0x4f52(%rip), %rsi      # 0x1cdda
callq 0x30c0
testl %eax, %eax
je 0x17ed7
movq %r12, -0xc0(%rbp)
movb $0x30, 0x2(%r12)
movw $0x7624, (%r12)         # imm = 0x7624
movq $0x3, -0xb8(%rbp)
movb $0x0, -0xad(%rbp)
leaq -0xc0(%rbp), %rdi
movq %rbx, %rsi
callq 0x19802
movq -0xc0(%rbp), %rdi
cmpq %r12, %rdi
je 0x17ed7
callq 0x32a0
callq 0x196ea
jmp 0x18e91
leaq 0x68(%rbx), %rax
movq %rax, 0x1086c(%rip)     # 0x28758
movl 0x68(%rbx), %eax
addl $-0x15, %eax
cmpl $0x2, %eax
jae 0x192d8
leaq 0x8(%rbx), %r13
movq %r13, %rdi
leaq -0xe0(%rbp), %rsi
callq 0x163ae
testb %al, %al
je 0x1808d
leaq 0x28(%rbx), %r12
movq %r12, %rdi
leaq 0x4eb6(%rip), %rsi      # 0x1cdda
callq 0x30c0
testl %eax, %eax
je 0x17f42
leaq 0x48(%rbx), %rdi
leaq -0x2c(%rbp), %rsi
callq 0x163ae
testb %al, %al
je 0x1808d
movq %r12, %rdi
leaq 0x4e8e(%rip), %rsi      # 0x1cdda
callq 0x30c0
testl %eax, %eax
je 0x18931
movq %r12, %rdi
leaq 0x4103(%rip), %rsi      # 0x1c066
callq 0x30c0
testl %eax, %eax
je 0x18d78
movq %r12, %rdi
leaq 0x40f0(%rip), %rsi      # 0x1c06a
callq 0x30c0
testl %eax, %eax
je 0x18e10
movq %r12, %rdi
leaq 0x40dd(%rip), %rsi      # 0x1c06e
callq 0x30c0
testl %eax, %eax
leaq -0xe0(%rbp), %r13
je 0x18f2f
movq %r12, %rdi
leaq 0x40c3(%rip), %rsi      # 0x1c072
callq 0x30c0
testl %eax, %eax
je 0x18f7a
movq %r12, %rdi
leaq 0x40b0(%rip), %rsi      # 0x1c076
callq 0x30c0
testl %eax, %eax
je 0x18fdf
movq %r12, %rdi
leaq 0x409d(%rip), %rsi      # 0x1c07a
callq 0x30c0
movl -0xe0(%rbp), %ecx
cmpl -0x2c(%rbp), %ecx
setge %cl
testl %eax, %eax
je 0x18e23
jmp 0x194e0
movq %r12, -0xc0(%rbp)
movb $0x30, 0x2(%r12)
movw $0x7624, (%r12)         # imm = 0x7624
movq $0x3, -0xb8(%rbp)
movb $0x0, -0xad(%rbp)
leaq -0xc0(%rbp), %rdi
movq %r15, %rsi
callq 0x19802
movq -0xc0(%rbp), %rdi
cmpq %r12, %rdi
leaq 0x4d98(%rip), %r15      # 0x1cdd9
je 0x18048
callq 0x32a0
movl $0x3, %edx
movq %r14, %rdi
leaq 0x4e06(%rip), %rsi      # 0x1ce5d
callq 0x3340
movl $0x1, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x3340
movl $0xb, %edx
movq %r14, %rdi
leaq 0x4f44(%rip), %rsi      # 0x1cfbf
callq 0x3340
movq %r14, %rdi
callq 0x16ea7
jmp 0x189ce
leaq 0x28(%rbx), %r12
movq %r12, %rdi
leaq 0x4d3f(%rip), %r15      # 0x1cdda
movq %r15, %rsi
callq 0x30c0
testl %eax, %eax
je 0x18487
movq %r12, -0xe8(%rbp)
movq %r12, %rdi
movq %r15, %rsi
callq 0x30c0
testl %eax, %eax
leaq -0x70(%rbp), %r12
je 0x19335
addq $0x48, %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x30c0
testl %eax, %eax
je 0x19335
movq %r13, %rdi
leaq -0xe0(%rbp), %rsi
callq 0x163ae
testb %al, %al
je 0x18107
movq %rbx, %rdi
leaq -0x2c(%rbp), %rsi
callq 0x163ae
testb %al, %al
jne 0x193b1
leaq -0xb0(%rbp), %rax
movq %rax, -0xc0(%rbp)
movb $0x30, 0x2(%rax)
movw $0x7624, (%rax)         # imm = 0x7624
movq $0x3, -0xb8(%rbp)
movb $0x0, -0xad(%rbp)
movq %r13, %rdi
leaq -0xe0(%rbp), %rsi
callq 0x163ae
leaq 0x4c93(%rip), %r15      # 0x1cdd9
cmpl $0x0, -0xe0(%rbp)
sete %cl
andb %cl, %al
cmpb $0x1, %al
jne 0x185c6
movq -0xb8(%rbp), %rdx
movl $0x5, %r8d
leaq -0xc0(%rbp), %rdi
xorl %esi, %esi
leaq 0x502c(%rip), %rcx      # 0x1d1a3
callq 0x33f0
jmp 0x18605
movl $0x2, %edx
movq %r14, %rdi
leaq 0x4ebd(%rip), %rsi      # 0x1d04d
callq 0x3340
movl $0x1, %edx
movq %r14, %rdi
leaq 0x4c35(%rip), %r15      # 0x1cdd9
movq %r15, %rsi
callq 0x3340
movl $0x5, %edx
movq %r14, %rdi
leaq 0x4e95(%rip), %rsi      # 0x1d050
callq 0x3340
movq 0x28(%rbx), %rsi
movq 0x30(%rbx), %rdx
movq %r14, %rdi
callq 0x3340
movq %rax, %rdi
callq 0x16ea7
movl $0x2, %edx
movq %r14, %rdi
leaq 0x4c0b(%rip), %rsi      # 0x1cdf2
callq 0x3340
movl $0x1, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x3340
movl $0x6, %edx
movq %r14, %rdi
leaq 0x4db9(%rip), %rsi      # 0x1cfc4
jmp 0x1859d
movl $0x6, %edx
movq %r14, %rdi
leaq 0x4e6b(%rip), %rsi      # 0x1d08a
callq 0x3340
movq %r14, %rdi
callq 0x16ea7
movl $0x7, %edx
movq %r14, %rdi
leaq 0x4bc0(%rip), %rsi      # 0x1cdfb
callq 0x3340
movq %r14, %rdi
callq 0x16ea7
movl $0x2, %edx
movq %r14, %rdi
leaq 0x4b43(%rip), %rsi      # 0x1cd9a
callq 0x3340
movl $0x1, %edx
movq %r14, %rdi
leaq 0x4b6e(%rip), %r15      # 0x1cdd9
movq %r15, %rsi
callq 0x3340
movl $0x5, %edx
movq %r14, %rdi
leaq 0x4b73(%rip), %rsi      # 0x1cdf5
callq 0x3340
addq $0x28, %rbx
leaq -0xc0(%rbp), %rdi
movq %rbx, %rsi
callq 0x19968
movq -0xc0(%rbp), %rsi
movq -0xb8(%rbp), %rdx
movq %r14, %rdi
callq 0x3340
movq %rax, %rdi
callq 0x16ea7
jmp 0x1846d
addl $-0x2, %r15d
jmp 0x182c6
decl %r15d
shrl $0x1f, %r12d
leal (%r15,%r12), %esi
leaq -0xd0(%rbp), %r14
movq %r14, -0xe0(%rbp)
leaq -0xe0(%rbp), %r14
movq %r14, %rdi
movl $0x2d, %edx
callq 0x3350
addq -0xe0(%rbp), %r12
movq %r12, %rdi
movl %r15d, %esi
movl %r13d, %edx
callq 0x13e46
leaq -0x50(%rbp), %rdi
movq %r14, %rsi
callq 0x3370
movq -0xe0(%rbp), %rdi
leaq -0xd0(%rbp), %rax
cmpq %rax, %rdi
je 0x18329
callq 0x32a0
leaq -0xb0(%rbp), %r12
leaq 0x10289(%rip), %r14     # 0x285c0
movq -0xc0(%rbp), %rsi
movq -0xb8(%rbp), %rdx
movq %r14, %rdi
callq 0x3340
movq %rax, %r15
movq %r14, %rax
leaq -0xe0(%rbp), %r13
movl $0x1, %edx
movq %r15, %rdi
leaq 0x4a70(%rip), %rsi      # 0x1cdd9
callq 0x3340
movl $0x5, %edx
movq %r15, %rdi
leaq 0x4a78(%rip), %rsi      # 0x1cdf5
callq 0x3340
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
movq %r15, %rdi
callq 0x3340
movq %rax, %r15
movl $0x2, %edx
movq %rax, %rdi
leaq 0x4caf(%rip), %rsi      # 0x1d053
callq 0x3340
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq %r15, %rdi
callq 0x3340
movq %rax, %rdi
callq 0x16ea7
movl $0x2, %edx
movq %r14, %rdi
leaq 0x49ca(%rip), %rsi      # 0x1cd9a
callq 0x3340
movl $0x1, %edx
movq %r14, %rdi
leaq 0x49f5(%rip), %rsi      # 0x1cdd9
callq 0x3340
movl $0x5, %edx
movq %r14, %rdi
leaq 0x49fd(%rip), %rsi      # 0x1cdf5
callq 0x3340
addq $0x48, %rbx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x19968
movq -0xe0(%rbp), %rsi
movq -0xd8(%rbp), %rdx
movq %r14, %rdi
callq 0x3340
leaq 0x49b0(%rip), %r15      # 0x1cdd9
movq %rax, %rdi
callq 0x16ea7
movq -0xe0(%rbp), %rdi
leaq -0xd0(%rbp), %rax
cmpq %rax, %rdi
je 0x18449
callq 0x32a0
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x1845b
callq 0x32a0
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x1846d
callq 0x32a0
movq -0xc0(%rbp), %rdi
cmpq %r12, %rdi
je 0x18e91
callq 0x32a0
jmp 0x18e91
movq %r13, %rdi
leaq -0xe0(%rbp), %rsi
callq 0x163ae
testb %al, %al
jne 0x19392
leaq -0xb0(%rbp), %r12
movq %r12, -0xc0(%rbp)
movb $0x30, 0x2(%r12)
movw $0x7624, (%r12)         # imm = 0x7624
movq $0x3, -0xb8(%rbp)
movb $0x0, -0xad(%rbp)
leaq -0xc0(%rbp), %rdi
movq %r13, %rsi
callq 0x19802
leaq 0x48f8(%rip), %r15      # 0x1cdd9
movq -0xc0(%rbp), %rdi
cmpq %r12, %rdi
je 0x184f2
callq 0x32a0
movq 0x1025f(%rip), %rax     # 0x28758
cmpl $0x15, (%rax)
leaq -0xe0(%rbp), %r13
movl $0x3, %edx
movq %r14, %rdi
jne 0x18d48
leaq 0x4c21(%rip), %rsi      # 0x1d139
jmp 0x18d4f
movq %r12, -0xc0(%rbp)
movb $0x30, 0x2(%r12)
movw $0x6124, (%r12)         # imm = 0x6124
movq $0x3, -0xb8(%rbp)
movb $0x0, -0xad(%rbp)
leaq -0xc0(%rbp), %rdi
movq %rbx, %rsi
callq 0x19802
movq -0xc0(%rbp), %rdi
cmpq %r12, %rdi
leaq 0x4876(%rip), %r15      # 0x1cdd9
je 0x1856a
callq 0x32a0
movl $0x2, %edx
movq %r14, %rdi
leaq 0x4879(%rip), %rsi      # 0x1cdf2
callq 0x3340
movl $0x1, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x3340
movl $0x6, %edx
movq %r14, %rdi
leaq 0x4abd(%rip), %rsi      # 0x1d05a
callq 0x3340
movq %r14, %rdi
callq 0x16ea7
movl $0x7, %edx
movq %r14, %rdi
leaq 0x4842(%rip), %rsi      # 0x1cdfb
callq 0x3340
movq %r14, %rdi
jmp 0x18e8c
leaq -0x60(%rbp), %r15
movq %r15, -0x70(%rbp)
movb $0x30, 0x2(%r15)
movw $0x7624, (%r15)         # imm = 0x7624
movq $0x3, -0x68(%rbp)
movb $0x0, -0x5d(%rbp)
movq %r12, %rdi
movq %r13, %rsi
callq 0x19802
movq -0x70(%rbp), %rdi
cmpq %r15, %rdi
je 0x185fe
callq 0x32a0
leaq 0x47d4(%rip), %r15      # 0x1cdd9
leaq -0x60(%rbp), %r13
movq %r13, -0x70(%rbp)
movb $0x31, 0x2(%r13)
movw $0x7624, (%r13)         # imm = 0x7624
movq $0x3, -0x68(%rbp)
movb $0x0, -0x5d(%rbp)
movq %rbx, %rdi
leaq -0x2c(%rbp), %rsi
callq 0x163ae
leaq -0xe0(%rbp), %r13
cmpl $0x0, -0x2c(%rbp)
sete %cl
andb %cl, %al
cmpb $0x1, %al
jne 0x18662
movq -0x68(%rbp), %rdx
movl $0x5, %r8d
movq %r12, %rdi
xorl %esi, %esi
leaq 0x4b48(%rip), %rcx      # 0x1d1a3
callq 0x33f0
jmp 0x186a1
leaq -0x40(%rbp), %r12
movq %r12, -0x50(%rbp)
movb $0x31, 0x2(%r12)
movw $0x7624, (%r12)         # imm = 0x7624
movq $0x3, -0x48(%rbp)
movb $0x0, -0x3d(%rbp)
leaq -0x50(%rbp), %rdi
movq %rbx, %rsi
callq 0x19802
movq -0x50(%rbp), %rdi
cmpq %r12, %rdi
je 0x1869d
callq 0x32a0
leaq -0x70(%rbp), %r12
movq -0xe8(%rbp), %rbx
movq %rbx, %rdi
leaq 0x39b4(%rip), %rsi      # 0x1c066
callq 0x30c0
testl %eax, %eax
je 0x18831
movq %rbx, %rdi
leaq 0x39a1(%rip), %rsi      # 0x1c06a
callq 0x30c0
testl %eax, %eax
je 0x18831
leaq -0xc0(%rbp), %rdi
leaq 0x4abf(%rip), %rbx      # 0x1d1a3
movq %rbx, %rsi
callq 0x30c0
testl %eax, %eax
jne 0x18703
movq %r12, %rdi
movq %rbx, %rsi
callq 0x30c0
testl %eax, %eax
je 0x19426
movq %r12, %rdi
movq %rbx, %rsi
callq 0x30c0
testl %eax, %eax
je 0x18d89
leaq -0xc0(%rbp), %rdi
movq %rbx, %rsi
callq 0x30c0
testl %eax, %eax
je 0x18ea8
movl $0x4, %edx
movq %r14, %rdi
leaq 0x471c(%rip), %rsi      # 0x1ce58
callq 0x3340
movl $0x1, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x3340
movl $0x5, %edx
movq %r14, %rdi
leaq 0x4695(%rip), %rsi      # 0x1cdf5
callq 0x3340
movq -0xc0(%rbp), %rsi
movq -0xb8(%rbp), %rdx
movq %r14, %rdi
callq 0x3340
movq %rax, %rbx
movl $0x2, %edx
movq %rax, %rdi
leaq 0x48c6(%rip), %rsi      # 0x1d053
callq 0x3340
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
movq %rbx, %rdi
callq 0x3340
movq %rax, %rdi
callq 0x16ea7
movq -0xe8(%rbp), %rbx
movq %rbx, %rdi
leaq 0x38b3(%rip), %rsi      # 0x1c06e
callq 0x30c0
testl %eax, %eax
je 0x18f40
movq %rbx, %rdi
leaq 0x38a0(%rip), %rsi      # 0x1c072
callq 0x30c0
testl %eax, %eax
je 0x18f8b
movq %rbx, %rdi
leaq 0x388d(%rip), %rsi      # 0x1c076
callq 0x30c0
testl %eax, %eax
je 0x18ff0
movq %rbx, %rdi
leaq 0x387a(%rip), %rsi      # 0x1c07a
callq 0x30c0
leaq 0x45ce(%rip), %rbx      # 0x1cdda
testl %eax, %eax
jne 0x1900c
movq 0xff3d(%rip), %rax      # 0x28758
cmpl $0x15, (%rax)
leaq 0x49b2(%rip), %rbx      # 0x1d1d7
leaq 0x49b0(%rip), %rax      # 0x1d1dc
jmp 0x19008
movq %rbx, %rdi
leaq 0x382b(%rip), %rsi      # 0x1c066
callq 0x30c0
testl %eax, %eax
sete %al
movq 0xff0c(%rip), %rcx      # 0x28758
cmpl $0x15, (%rcx)
sete %cl
xorb %al, %cl
leaq 0x48ef(%rip), %rsi      # 0x1d14a
leaq 0x48d7(%rip), %rax      # 0x1d139
cmovneq %rax, %rsi
leaq -0x40(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq 0x48d8(%rip), %rdx      # 0x1d14d
leaq 0x48c0(%rip), %rax      # 0x1d13c
cmovneq %rax, %rdx
leaq -0x50(%rbp), %rdi
callq 0x14396
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq %r14, %rdi
leaq -0xb0(%rbp), %r12
callq 0x3340
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x3340
movq -0xc0(%rbp), %rsi
movq -0xb8(%rbp), %rdx
movq %rbx, %rdi
callq 0x3340
movq %rax, %rbx
movl $0x2, %edx
movq %rax, %rdi
leaq 0x4778(%rip), %rsi      # 0x1d053
callq 0x3340
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
movq %rbx, %rdi
callq 0x3340
movq %rax, %rbx
movl $0x2, %edx
movq %rax, %rdi
leaq 0x4751(%rip), %rsi      # 0x1d053
callq 0x3340
movq 0xfe4a(%rip), %rax      # 0x28758
movq 0x8(%rax), %rsi
movq 0x10(%rax), %rdx
movq %rbx, %rdi
callq 0x3340
movq %rax, %rdi
callq 0x16ea7
jmp 0x18449
addl $-0x2, %r15d
jmp 0x1894d
movl -0xe0(%rbp), %eax
leaq -0xb0(%rbp), %r12
leaq -0xe0(%rbp), %r13
jmp 0x18e33
decl %r15d
shrl $0x1f, %r13d
leal (%r15,%r13), %esi
leaq -0x60(%rbp), %rax
movq %rax, -0x70(%rbp)
leaq -0x70(%rbp), %r14
movq %r14, %rdi
movl $0x2d, %edx
callq 0x3350
movl %r13d, %edi
addq -0x70(%rbp), %rdi
movl %r15d, %esi
movl %r12d, %edx
callq 0x13e46
leaq -0xc0(%rbp), %rdi
movq %r14, %rsi
callq 0x19802
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %r13
cmpq %r13, %rdi
leaq -0xb0(%rbp), %r12
leaq 0x4431(%rip), %r15      # 0x1cdd9
leaq -0xe0(%rbp), %r13
je 0x189b6
callq 0x32a0
movq -0xc0(%rbp), %rdi
cmpq %r12, %rdi
leaq 0xfbf9(%rip), %r14      # 0x285c0
je 0x189ce
callq 0x32a0
movl -0x50(%rbp), %eax
cmpl $0x1, %eax
je 0x18acc
testl %eax, %eax
jne 0x192f7
cmpl $0xe, (%rbx)
jne 0x18c9a
movl $0x2, %edx
movq %r14, %rdi
leaq 0x439d(%rip), %rsi      # 0x1cd97
callq 0x3340
movl $0x1, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x3340
movl $0x5, %edx
movq %r14, %rdi
movq %r14, %r13
leaq 0x45aa(%rip), %r14      # 0x1cfcb
movq %r14, %rsi
callq 0x3340
movq 0x8(%rbx), %rsi
movq 0x10(%rbx), %rdx
movq %r13, %rdi
callq 0x3340
movq %rax, %r15
movl $0x5, %edx
movq %rax, %rdi
leaq 0x4586(%rip), %rsi      # 0x1cfd1
callq 0x3340
movq %r15, %rdi
leaq 0x437f(%rip), %r15      # 0x1cdd9
callq 0x16ea7
movl $0x2, %edx
movq %r13, %rdi
leaq 0x432c(%rip), %rsi      # 0x1cd9a
callq 0x3340
movl $0x1, %edx
movq %r13, %rdi
movq %r15, %rsi
callq 0x3340
movl $0x5, %edx
movq %r13, %rdi
movq %r14, %rsi
movq %r13, %r14
callq 0x3340
addq $0x48, %rbx
leaq -0xc0(%rbp), %rdi
movq %rbx, %rsi
callq 0x19968
movq -0xc0(%rbp), %rsi
movq -0xb8(%rbp), %rdx
movq %r13, %rdi
callq 0x3340
movq %rax, %rdi
callq 0x16ea7
jmp 0x18bec
movl $0x4, %edx
movq %r14, %rdi
leaq 0x4378(%rip), %rsi      # 0x1ce53
callq 0x3340
movl $0x1, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x3340
movl $0xd, %edx
movq %r14, %rdi
leaq 0x44ed(%rip), %rsi      # 0x1cfec
callq 0x3340
movq %r14, %rdi
callq 0x16ea7
cmpl $0xe, (%rbx)
jne 0x18c08
movl $0x2, %edx
movq %r14, %rdi
leaq 0x4273(%rip), %rsi      # 0x1cd97
callq 0x3340
movl $0x1, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x3340
movl $0x5, %edx
movq %r14, %rdi
movq %r14, %r13
leaq 0x4480(%rip), %r14      # 0x1cfcb
movq %r14, %rsi
callq 0x3340
movl -0x40(%rbp), %esi
movq %r13, %rdi
callq 0x3470
movq %rax, %r15
movl $0x5, %edx
movq %rax, %rdi
leaq 0x4461(%rip), %rsi      # 0x1cfd1
callq 0x3340
movq %r15, %rdi
leaq 0x425a(%rip), %r15      # 0x1cdd9
callq 0x16ea7
movl $0x2, %edx
movq %r13, %rdi
leaq 0x4207(%rip), %rsi      # 0x1cd9a
callq 0x3340
movl $0x1, %edx
movq %r13, %rdi
movq %r15, %rsi
callq 0x3340
movl $0x5, %edx
movq %r13, %rdi
movq %r14, %rsi
movq %r13, %r14
callq 0x3340
addq $0x48, %rbx
leaq -0xc0(%rbp), %rdi
movq %rbx, %rsi
callq 0x19968
movq -0xc0(%rbp), %rsi
movq -0xb8(%rbp), %rdx
movq %r13, %rdi
callq 0x3340
movq %rax, %rdi
callq 0x16ea7
movq -0xc0(%rbp), %rdi
cmpq %r12, %rdi
leaq -0xe0(%rbp), %r13
jne 0x1847d
jmp 0x18e91
movq %r12, -0xc0(%rbp)
movb $0x31, 0x2(%r12)
movw $0x7624, (%r12)         # imm = 0x7624
movq $0x3, -0xb8(%rbp)
movb $0x0, -0xad(%rbp)
addq $0x48, %rbx
leaq -0xc0(%rbp), %rdi
movq %rbx, %rsi
callq 0x19802
movq -0xc0(%rbp), %rdi
cmpq %r12, %rdi
je 0x18c52
callq 0x32a0
movl $0x2, %edx
movq %r14, %rdi
leaq 0x4139(%rip), %rsi      # 0x1cd9a
callq 0x3340
movl $0x1, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x3340
movl $0x5, %edx
movq %r14, %rdi
leaq 0x4346(%rip), %rsi      # 0x1cfcb
callq 0x3340
movl -0x40(%rbp), %esi
movq %r14, %rdi
callq 0x3470
jmp 0x18d29
movq %r12, -0xc0(%rbp)
movb $0x31, 0x2(%r12)
movw $0x7624, (%r12)         # imm = 0x7624
movq $0x3, -0xb8(%rbp)
movb $0x0, -0xad(%rbp)
leaq 0x48(%rbx), %rsi
leaq -0xc0(%rbp), %rdi
callq 0x19802
movq -0xc0(%rbp), %rdi
cmpq %r12, %rdi
je 0x18ce1
callq 0x32a0
movl $0x2, %edx
movq %r14, %rdi
leaq 0x40aa(%rip), %rsi      # 0x1cd9a
callq 0x3340
movl $0x1, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x3340
movl $0x5, %edx
movq %r14, %rdi
leaq 0x42b7(%rip), %rsi      # 0x1cfcb
callq 0x3340
movq 0x8(%rbx), %rsi
movq 0x10(%rbx), %rdx
movq %r14, %rdi
callq 0x3340
movq %rax, %rbx
movl $0x5, %edx
movq %rax, %rdi
leaq 0x4296(%rip), %rsi      # 0x1cfd1
callq 0x3340
movq %rbx, %rdi
jmp 0x18e8c
leaq 0x43fb(%rip), %rsi      # 0x1d14a
callq 0x3340
movl $0x1, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x3340
movl $0xc, %edx
movq %r14, %rdi
leaq 0x43ca(%rip), %rsi      # 0x1d13d
jmp 0x18e6d
movl -0xe0(%rbp), %eax
cmpl -0x2c(%rbp), %eax
sete %cl
jmp 0x18e1c
movq -0xe8(%rbp), %rbx
movq %rbx, %rdi
leaq 0x32d4(%rip), %rsi      # 0x1c06e
callq 0x30c0
testl %eax, %eax
je 0x18f5d
movq %rbx, %rdi
leaq 0x32c1(%rip), %rsi      # 0x1c072
callq 0x30c0
testl %eax, %eax
je 0x18fa5
movq %rbx, %rdi
leaq 0x32ae(%rip), %rsi      # 0x1c076
callq 0x30c0
testl %eax, %eax
je 0x190a6
movq %rbx, %rdi
leaq 0x329b(%rip), %rsi      # 0x1c07a
callq 0x30c0
leaq 0x3fef(%rip), %rbx      # 0x1cdda
testl %eax, %eax
jne 0x190c2
movq 0xf95e(%rip), %rax      # 0x28758
cmpl $0x15, (%rax)
leaq 0x43d3(%rip), %rbx      # 0x1d1d7
leaq 0x43d1(%rip), %rax      # 0x1d1dc
jmp 0x190be
movl -0xe0(%rbp), %eax
cmpl -0x2c(%rbp), %eax
setne %cl
leaq -0xe0(%rbp), %r13
movzbl %cl, %eax
movl %eax, -0xe0(%rbp)
leaq -0xb0(%rbp), %r12
movq 0xf91e(%rip), %rcx      # 0x28758
movl (%rcx), %ecx
cmpl $0x15, %ecx
jne 0x18e45
testl %eax, %eax
je 0x18e4e
cmpl $0x16, %ecx
jne 0x18e91
testl %eax, %eax
je 0x18e91
movl $0x1, %edx
movq %r14, %rdi
leaq 0x423c(%rip), %rsi      # 0x1d099
callq 0x3340
movl $0x1, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x3340
movq 0xf8df(%rip), %rax      # 0x28758
movq 0x8(%rax), %rsi
movq 0x10(%rax), %rdx
movq %r14, %rdi
callq 0x3340
movq %rax, %rdi
callq 0x16ea7
movq 0xf8c0(%rip), %rbx      # 0x28758
addq $0x68, %rbx
movq %rbx, 0xf8b5(%rip)      # 0x28758
jmp 0x17781
movq -0xe8(%rbp), %rbx
movq %rbx, %rdi
leaq 0x31b5(%rip), %rsi      # 0x1c06e
callq 0x30c0
testl %eax, %eax
je 0x18fc2
movq %rbx, %rdi
leaq 0x31a2(%rip), %rsi      # 0x1c072
callq 0x30c0
testl %eax, %eax
je 0x1915c
movq %rbx, %rdi
leaq 0x318f(%rip), %rsi      # 0x1c076
callq 0x30c0
testl %eax, %eax
je 0x19176
movq %rbx, %rdi
leaq 0x317c(%rip), %rsi      # 0x1c07a
callq 0x30c0
leaq 0x3ed0(%rip), %rbx      # 0x1cdda
testl %eax, %eax
jne 0x19192
movq 0xf83f(%rip), %rax      # 0x28758
cmpl $0x15, (%rax)
leaq 0x42b9(%rip), %rbx      # 0x1d1dc
leaq 0x42ad(%rip), %rax      # 0x1d1d7
jmp 0x1918e
movl -0xe0(%rbp), %eax
cmpl -0x2c(%rbp), %eax
setl %cl
jmp 0x18e23
movq 0xf811(%rip), %rax      # 0x28758
cmpl $0x15, (%rax)
leaq 0x428b(%rip), %rbx      # 0x1d1dc
leaq 0x427f(%rip), %rax      # 0x1d1d7
jmp 0x19008
movq 0xf7f4(%rip), %rax      # 0x28758
cmpl $0x15, (%rax)
leaq 0x426e(%rip), %rbx      # 0x1d1dc
leaq 0x4262(%rip), %rax      # 0x1d1d7
jmp 0x190be
movl -0xe0(%rbp), %eax
cmpl -0x2c(%rbp), %eax
setle %cl
jmp 0x18e23
movq 0xf7c6(%rip), %rax      # 0x28758
cmpl $0x15, (%rax)
leaq 0x424a(%rip), %rbx      # 0x1d1e6
leaq 0x423e(%rip), %rax      # 0x1d1e1
jmp 0x19008
movq 0xf7ac(%rip), %rax      # 0x28758
cmpl $0x15, (%rax)
leaq 0x4230(%rip), %rbx      # 0x1d1e6
leaq 0x4224(%rip), %rax      # 0x1d1e1
jmp 0x190be
movq 0xf78f(%rip), %rax      # 0x28758
cmpl $0x15, (%rax)
leaq 0x4204(%rip), %rbx      # 0x1d1d7
leaq 0x4202(%rip), %rax      # 0x1d1dc
jmp 0x1918e
movl -0xe0(%rbp), %eax
cmpl -0x2c(%rbp), %eax
setg %cl
jmp 0x18e23
movq 0xf761(%rip), %rax      # 0x28758
cmpl $0x15, (%rax)
leaq 0x41e0(%rip), %rbx      # 0x1d1e1
leaq 0x41de(%rip), %rax      # 0x1d1e6
cmoveq %rax, %rbx
leaq -0x40(%rbp), %rax
movq %rax, -0x50(%rbp)
movq %rbx, %rdi
callq 0x3120
leaq (%rax,%rbx), %rdx
leaq -0x50(%rbp), %rdi
movq %rbx, %rsi
leaq -0xb0(%rbp), %r12
callq 0x14396
leaq -0x50(%rbp), %rdi
leaq 0x3d9c(%rip), %rsi      # 0x1cdda
callq 0x30c0
testl %eax, %eax
je 0x193d0
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq %r14, %rdi
callq 0x3340
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x3340
movl $0x5, %edx
movq %rbx, %rdi
leaq 0x3d78(%rip), %rsi      # 0x1cdf5
callq 0x3340
movq 0xf6cf(%rip), %rax      # 0x28758
movq 0x8(%rax), %rsi
movq 0x10(%rax), %rdx
movq %rbx, %rdi
callq 0x3340
movq %rax, %rdi
callq 0x16ea7
jmp 0x18449
movq 0xf6ab(%rip), %rax      # 0x28758
cmpl $0x15, (%rax)
leaq 0x412a(%rip), %rbx      # 0x1d1e1
leaq 0x4128(%rip), %rax      # 0x1d1e6
cmoveq %rax, %rbx
leaq -0x40(%rbp), %rax
movq %rax, -0x50(%rbp)
movq %rbx, %rdi
callq 0x3120
leaq (%rax,%rbx), %rdx
leaq -0x50(%rbp), %rdi
movq %rbx, %rsi
leaq -0xb0(%rbp), %r12
callq 0x14396
leaq -0x50(%rbp), %rdi
leaq 0x3ce6(%rip), %rsi      # 0x1cdda
callq 0x30c0
testl %eax, %eax
je 0x19407
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq %r14, %rdi
callq 0x3340
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x3340
movl $0x5, %edx
movq %rbx, %rdi
leaq 0x40c1(%rip), %rsi      # 0x1d1f4
callq 0x3340
movq 0xf619(%rip), %rax      # 0x28758
movq 0x8(%rax), %rsi
movq 0x10(%rax), %rdx
movq %rbx, %rdi
callq 0x3340
movq %rax, %rdi
callq 0x16ea7
jmp 0x18449
movq 0xf5f5(%rip), %rax      # 0x28758
cmpl $0x15, (%rax)
leaq 0x4074(%rip), %rbx      # 0x1d1e1
leaq 0x4072(%rip), %rax      # 0x1d1e6
jmp 0x1918e
movq 0xf5db(%rip), %rax      # 0x28758
cmpl $0x15, (%rax)
leaq 0x405f(%rip), %rbx      # 0x1d1e6
leaq 0x4053(%rip), %rax      # 0x1d1e1
cmoveq %rax, %rbx
leaq -0x40(%rbp), %rax
movq %rax, -0x50(%rbp)
movq %rbx, %rdi
callq 0x3120
leaq (%rax,%rbx), %rdx
leaq -0x50(%rbp), %rdi
movq %rbx, %rsi
leaq -0xb0(%rbp), %r12
callq 0x14396
leaq -0x50(%rbp), %rdi
leaq 0x3c16(%rip), %rsi      # 0x1cdda
callq 0x30c0
testl %eax, %eax
je 0x19445
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq %r14, %rdi
callq 0x3340
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x3340
movl $0x5, %edx
movq %rbx, %rdi
leaq 0x3ff7(%rip), %rsi      # 0x1d1fa
callq 0x3340
movq 0xf549(%rip), %rax      # 0x28758
movq 0x8(%rax), %rsi
movq 0x10(%rax), %rdx
movq %rbx, %rdi
callq 0x3340
movq %rax, %rdi
callq 0x16ea7
jmp 0x18449
callq 0x196ea
movl 0xf579(%rip), %eax      # 0x287b0
leal -0x8(%rax), %ecx
movl %ecx, 0xf570(%rip)      # 0x287b0
cmpl $0x7, %eax
jle 0x194c1
addq $0x68, 0xf507(%rip)     # 0x28758
addq $0xc8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x3c6d(%rip), %rdi      # 0x1ced7
leaq 0x3b04(%rip), %rsi      # 0x1cd75
leaq 0x3d05(%rip), %rcx      # 0x1cf7d
movl $0x19f, %edx            # imm = 0x19F
callq 0x31b0
leaq 0x3bdc(%rip), %rdi      # 0x1ce65
leaq 0x3ae5(%rip), %rsi      # 0x1cd75
leaq 0x3c0c(%rip), %rcx      # 0x1cea3
movl $0x15c, %edx            # imm = 0x15C
callq 0x31b0
leaq 0x3cff(%rip), %rdi      # 0x1cfa7
leaq 0x3ac6(%rip), %rsi      # 0x1cd75
leaq 0x3cc7(%rip), %rcx      # 0x1cf7d
movl $0x1a0, %edx            # imm = 0x1A0
callq 0x31b0
leaq 0x3a1c(%rip), %rdi      # 0x1cce3
callq 0x3180
leaq 0x3a10(%rip), %rdi      # 0x1cce3
callq 0x33b0
leaq 0x3ddd(%rip), %rdi      # 0x1d0bc
leaq 0x3a8f(%rip), %rsi      # 0x1cd75
leaq 0x3def(%rip), %rcx      # 0x1d0dc
movl $0x1ff, %edx            # imm = 0x1FF
callq 0x31b0
leaq 0x3cd9(%rip), %rdi      # 0x1cfd7
leaq 0x3a70(%rip), %rsi      # 0x1cd75
leaq 0x3c71(%rip), %rcx      # 0x1cf7d
movl $0x1ba, %edx            # imm = 0x1BA
callq 0x31b0
leaq 0x3d7e(%rip), %rdi      # 0x1d09b
leaq 0x3a51(%rip), %rsi      # 0x1cd75
leaq 0x3d80(%rip), %rcx      # 0x1d0ab
movl $0x274, %edx            # imm = 0x274
callq 0x31b0
leaq 0x3e12(%rip), %rdi      # 0x1d14e
leaq 0x3a32(%rip), %rsi      # 0x1cd75
leaq 0x3d92(%rip), %rcx      # 0x1d0dc
movl $0x220, %edx            # imm = 0x220
callq 0x31b0
leaq 0x3a42(%rip), %rdi      # 0x1cd9d
leaq 0x3a13(%rip), %rsi      # 0x1cd75
leaq 0x3d00(%rip), %rcx      # 0x1d069
movl $0x147, %edx            # imm = 0x147
callq 0x31b0
leaq 0x3c80(%rip), %rdi      # 0x1cffa
leaq 0x39f4(%rip), %rsi      # 0x1cd75
leaq 0x3ca3(%rip), %rcx      # 0x1d02b
movl $0x135, %edx            # imm = 0x135
callq 0x31b0
leaq 0x3d7e(%rip), %rdi      # 0x1d117
leaq 0x39d5(%rip), %rsi      # 0x1cd75
leaq 0x3d35(%rip), %rcx      # 0x1d0dc
movl $0x216, %edx            # imm = 0x216
callq 0x31b0
leaq 0x3db1(%rip), %rdi      # 0x1d169
leaq 0x39b6(%rip), %rsi      # 0x1cd75
leaq 0x3d16(%rip), %rcx      # 0x1d0dc
movl $0x221, %edx            # imm = 0x221
callq 0x31b0
leaq 0x3e14(%rip), %rdi      # 0x1d1eb
leaq 0x3997(%rip), %rsi      # 0x1cd75
leaq 0x3cf7(%rip), %rcx      # 0x1d0dc
movl $0x25f, %edx            # imm = 0x25F
callq 0x31b0
leaq 0x38ed(%rip), %rdi      # 0x1cce3
callq 0x3180
leaq 0x38e1(%rip), %rdi      # 0x1cce3
callq 0x33b0
leaq 0x3ddd(%rip), %rdi      # 0x1d1eb
leaq 0x3960(%rip), %rsi      # 0x1cd75
leaq 0x3cc0(%rip), %rcx      # 0x1d0dc
movl $0x246, %edx            # imm = 0x246
callq 0x31b0
leaq 0x3d7c(%rip), %rdi      # 0x1d1a9
leaq 0x3941(%rip), %rsi      # 0x1cd75
leaq 0x3ca1(%rip), %rcx      # 0x1d0dc
movl $0x23c, %edx            # imm = 0x23C
callq 0x31b0
leaq 0x3d9f(%rip), %rdi      # 0x1d1eb
leaq 0x3922(%rip), %rsi      # 0x1cd75
leaq 0x3c82(%rip), %rcx      # 0x1d0dc
movl $0x253, %edx            # imm = 0x253
callq 0x31b0
leaq 0x38fa(%rip), %rdi      # 0x1cd65
leaq 0x3903(%rip), %rsi      # 0x1cd75
leaq 0x398a(%rip), %rcx      # 0x1ce03
movl $0xf4, %edx
callq 0x31b0
leaq 0x38db(%rip), %rdi      # 0x1cd65
leaq 0x38e4(%rip), %rsi      # 0x1cd75
leaq 0x39a3(%rip), %rcx      # 0x1ce3b
movl $0xc6, %edx
callq 0x31b0
leaq 0x38bc(%rip), %rdi      # 0x1cd65
leaq 0x38c5(%rip), %rsi      # 0x1cd75
leaq 0x394c(%rip), %rcx      # 0x1ce03
movl $0xfb, %edx
callq 0x31b0
leaq 0x3bd3(%rip), %rdi      # 0x1d09b
leaq 0x38a6(%rip), %rsi      # 0x1cd75
leaq 0x3d31(%rip), %rcx      # 0x1d207
movl $0x26b, %edx            # imm = 0x26B
callq 0x31b0
movl $0xffffffff, -0xe0(%rbp) # imm = 0xFFFFFFFF
leaq 0x3c0f(%rip), %rdi      # 0x1d100
leaq 0x387d(%rip), %rsi      # 0x1cd75
leaq 0x3bdd(%rip), %rcx      # 0x1d0dc
movl $0x20b, %edx            # imm = 0x20B
callq 0x31b0
jmp 0x195ec
jmp 0x195ec
jmp 0x195ec
movq %rax, %rbx
jmp 0x1966a
movq %rax, %rbx
cmpl $0x0, (%r12)
jne 0x1966a
movl -0xec(%rbp), %eax
movl %eax, (%r12)
jmp 0x1966a
jmp 0x195f1
movq %rax, %rbx
movq -0x50(%rbp), %rdi
cmpq %r12, %rdi
jne 0x19601
jmp 0x19606
movq %rax, %rbx
movq -0x70(%rbp), %rdi
cmpq %r15, %rdi
je 0x1958c
callq 0x32a0
jmp 0x1958c
jmp 0x19688
jmp 0x19688
jmp 0x195ec
jmp 0x195f1
jmp 0x195f1
jmp 0x19688
jmp 0x19688
jmp 0x19688
movq %rax, %rbx
leaq -0xb0(%rbp), %r14
jmp 0x1961f
jmp 0x19688
jmp 0x19688
jmp 0x19688
jmp 0x19688
jmp 0x19688
jmp 0x19688
movq %rax, %rbx
jmp 0x195d0
movq %rax, %rbx
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x195d0
callq 0x32a0
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
jne 0x196dd
jmp 0x196e2
movq %rax, %rbx
jmp 0x19606
movq %rax, %rbx
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x19606
callq 0x32a0
leaq -0xb0(%rbp), %r14
leaq -0x60(%rbp), %r13
movq -0x70(%rbp), %rdi
cmpq %r13, %rdi
je 0x1961f
callq 0x32a0
movq -0xc0(%rbp), %rdi
cmpq %r14, %rdi
jne 0x196dd
jmp 0x196e2
movq %rax, %rbx
movq -0xe0(%rbp), %rdi
cmpq %r14, %rdi
je 0x1964d
callq 0x32a0
jmp 0x1964d
movq %rax, %rbx
leaq -0xb0(%rbp), %r12
jmp 0x196ad
jmp 0x19688
jmp 0x19688
jmp 0x19688
movq %rax, %rbx
cmpl $0x0, (%r13)
jne 0x1966a
movl %r14d, (%r13)
leaq -0xc0(%rbp), %rdi
callq 0x19cbc
jmp 0x196e2
jmp 0x196aa
movq %rax, %rbx
movq -0x70(%rbp), %rdi
cmpq %r14, %rdi
jne 0x196cc
jmp 0x196d1
movq %rax, %rbx
jmp 0x196d1
movq %rax, %rbx
movq -0xe0(%rbp), %rdi
leaq -0xd0(%rbp), %rax
cmpq %rax, %rdi
je 0x196ad
callq 0x32a0
jmp 0x196ad
movq %rax, %rbx
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x196bf
callq 0x32a0
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x196d1
callq 0x32a0
movq -0xc0(%rbp), %rdi
cmpq %r12, %rdi
je 0x196e2
callq 0x32a0
movq %rbx, %rdi
callq 0x3480