// File: /workspace/github_cpp_makefile_star2_O1/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 0x112f4(%rip), %rax     # 0x28758
cmpl $0x5, (%rax)
jne 0x195c6
movq 0x28(%rax), %rsi
movq 0x30(%rax), %rdx
leaq 0x11144(%rip), %rdi     # 0x285c0
callq 0x3340
movq %rax, %rbx
leaq 0x4d43(%rip), %rsi      # 0x1c1ce
movl $0x1, %edx
movq %rax, %rdi
callq 0x3340
movq %rbx, %rdi
callq 0x16f37
movq 0x112b1(%rip), %rax     # 0x28758
cmpl $0x5, (%rax)
jne 0x195e5
movl $0x1, %edi
callq 0x1ab8b
movq 0x11297(%rip), %rsi     # 0x28758
addq $0x28, %rsi
leaq 0x1126c(%rip), %rdi     # 0x28738
callq 0x3160
movl $0x4, 0x112d9(%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 0x19c50
movl $0xb0, %ebx
addq 0x1124d(%rip), %rbx     # 0x28758
leaq 0x5908(%rip), %r15      # 0x1ce1a
movl -0x48(%rbx), %eax
cmpl $0x11, %eax
jg 0x17529
cmpl $0x6, %eax
je 0x17532
cmpl $0x8, %eax
je 0x17532
jmp 0x175bf
cmpl $0x17, %eax
jne 0x175c8
leaq -0x40(%rbx), %rdi
leaq 0x5102(%rip), %rsi      # 0x1c63f
callq 0x30c0
movq %rbx, %rdi
movq %r15, %rsi
callq 0x30c0
testl %eax, %eax
je 0x175b4
movq (%rbx), %r12
callq 0x3050
movq %rax, %r13
movl (%rax), %r14d
movl $0x0, (%rax)
movq %r12, %rdi
leaq -0x50(%rbp), %rsi
movl $0xa, %edx
callq 0x33a0
cmpq %r12, -0x50(%rbp)
je 0x19403
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x1940f
movl (%r13), %ecx
cmpl $0x22, %ecx
je 0x1940f
testl %ecx, %ecx
jne 0x175af
movl %r14d, (%r13)
shll $0x2, %eax
jmp 0x175b9
movl $0x4, %eax
addl %eax, 0x111f5(%rip)     # 0x287b4
addq $0x68, %rbx
jmp 0x17512
cmpl $0x12, %eax
jne 0x175bf
movl $0xfffffffc, 0x111e1(%rip) # imm = 0xFFFFFFFC
movl 0x111d6(%rip), %r14d    # 0x287b4
addl $-0x4, %r14d
movq 0x1116f(%rip), %rbx     # 0x28758
leaq 0x504f(%rip), %r13      # 0x1c63f
leaq 0x5823(%rip), %r12      # 0x1ce1a
addq $0x48, %rbx
movl 0x20(%rbx), %eax
addq $0x68, %rbx
cmpl $0x11, %eax
jg 0x17613
cmpl $0x6, %eax
je 0x17621
cmpl $0x8, %eax
jne 0x175fb
jmp 0x17621
cmpl $0x12, %eax
je 0x17719
cmpl $0x17, %eax
jne 0x175fb
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 0x176dd
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 -0x50(%rbp), %rsi
movl $0xa, %edx
callq 0x33a0
cmpq %r13, -0x50(%rbp)
je 0x19551
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x1955d
movl (%r12), %ecx
cmpl $0x22, %ecx
je 0x1955d
testl %ecx, %ecx
movq %r15, %r13
jne 0x176c5
movl -0xec(%rbp), %ecx
movl %ecx, (%r12)
shll $0x2, %eax
movl $0x3, %ecx
leaq 0x5746(%rip), %r12      # 0x1ce1a
movl -0xe8(%rbp), %r15d
jmp 0x176e7
movl $0x4, %eax
movl $0x1, %ecx
subl %eax, %r14d
movl $0x1, -0x50(%rbp)
movl %ecx, -0x4c(%rbp)
movl %r15d, -0x48(%rbp)
movl $0xffffffff, -0x44(%rbp) # imm = 0xFFFFFFFF
movl %r14d, -0x40(%rbp)
leaq -0x20(%rbx), %rdi
leaq -0x50(%rbp), %rsi
callq 0x1aaca
addq $-0x48, %rbx
jmp 0x175f7
leaq -0xc0(%rbp), %rdi
callq 0x19df6
movq 0x1102c(%rip), %rax     # 0x28758
cmpl $0x5, (%rax)
jne 0x19604
addq $0x68, %rax
movq %rax, 0x11018(%rip)     # 0x28758
addl $0x8, 0x11069(%rip)     # 0x287b0
leaq 0x10e72(%rip), %rbx     # 0x285c0
leaq 0x56fe(%rip), %rsi      # 0x1ce53
movl $0x5, %edx
movq %rbx, %rdi
callq 0x3340
leaq 0x56b0(%rip), %r15      # 0x1ce19
movl $0x1, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3340
leaq 0x56d9(%rip), %rsi      # 0x1ce59
movl $0xa, %edx
movq %rbx, %rdi
callq 0x3340
xorl %esi, %esi
subl 0x1101f(%rip), %esi     # 0x287b4
movq %rbx, %rdi
callq 0x3470
movq %rax, %rdi
callq 0x16f37
leaq 0x562e(%rip), %rsi      # 0x1cdda
movl $0x2, %edx
movq %rbx, %rdi
callq 0x3340
movl $0x1, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3340
leaq 0x5694(%rip), %rsi      # 0x1ce64
movl $0x5, %edx
movq %rbx, %rdi
callq 0x3340
movl 0x10fd1(%rip), %esi     # 0x287b4
addl $-0x4, %esi
movq %rbx, %rdi
callq 0x3470
movq %rax, %rbx
leaq 0x5672(%rip), %rsi      # 0x1ce6a
movl $0x5, %edx
movq %rax, %rdi
callq 0x3340
movq %rbx, %rdi
callq 0x16f37
leaq -0xb0(%rbp), %r12
leaq -0x40(%rbp), %r13
movq 0x10f39(%rip), %rbx     # 0x28758
movl (%rbx), %eax
cmpq $0x17, %rax
ja 0x17aed
leaq 0x54f6(%rip), %rdx      # 0x1cd28
movslq (%rdx,%rax,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movl (%rbx), %eax
leal -0x1(%rax), %ecx
cmpl $0x3, %ecx
jae 0x17857
movl %ecx, %eax
leaq 0x553a(%rip), %rcx      # 0x1cd88
movslq (%rcx,%rax,4), %r15
addq %rcx, %r15
jmp 0x1786c
cmpl $0x4, %eax
leaq 0x5644(%rip), %r15      # 0x1cea5
leaq 0x5639(%rip), %rax      # 0x1cea1
cmoveq %rax, %r15
movq %r12, -0xc0(%rbp)
movq %r15, %rdi
callq 0x3120
leaq (%rax,%r15), %rdx
leaq -0xc0(%rbp), %rdi
movq %r15, %rsi
callq 0x14454
leaq 0x8(%rbx), %r15
movq %r15, %rdi
leaq -0x2c(%rbp), %rsi
callq 0x16448
testb %al, %al
je 0x178b7
leaq 0x28(%rbx), %rdi
leaq -0x2c(%rbp), %rsi
callq 0x16448
testb %al, %al
jne 0x193a6
movq %r13, -0x50(%rbp)
movb $0x30, 0x2(%r13)
movw $0x7624, (%r13)         # imm = 0x7624
movq $0x3, -0x48(%rbp)
movb $0x0, -0x3d(%rbp)
leaq -0x50(%rbp), %rdi
movq %r15, %rsi
callq 0x19939
movq -0x50(%rbp), %rdi
cmpq %r13, %rdi
je 0x178ed
callq 0x32a0
movq %r13, -0x50(%rbp)
movw $0x7624, %dx            # imm = 0x7624
movw %dx, (%r13)
movb $0x30, 0x2(%r13)
movl $0x3, %esi
movq %rsi, -0x48(%rbp)
xorl %ecx, %ecx
movb %cl, -0x3d(%rbp)
leaq -0x60(%rbp), %rax
movq %rax, -0x70(%rbp)
movw %dx, (%rax)
movb $0x31, 0x2(%rax)
movq %rsi, -0x68(%rbp)
movb %cl, -0x5d(%rbp)
movq %rbx, -0xe8(%rbp)
leaq 0x28(%rbx), %r15
movq %r15, %rdi
leaq -0x2c(%rbp), %rsi
callq 0x16448
testb %al, %al
je 0x17a99
movl -0x2c(%rbp), %r12d
movl %r12d, %r13d
negl %r13d
cmovsl %r12d, %r13d
movl $0x1, %r15d
cmpl $0xa, %r13d
jb 0x183ec
movl $0x4, %r15d
movl %r13d, %eax
movl $0xd1b71759, %edx       # imm = 0xD1B71759
cmpl $0x63, %eax
jbe 0x183e3
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x183e9
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x183ec
movl %eax, %ecx
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %r15d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x1796e
addl $-0x3, %r15d
jmp 0x183ec
addl $-0xd, %eax
cmpl $0x2, %eax
jae 0x193e4
leaq 0x8(%rbx), %rdi
leaq -0x70(%rbp), %rsi
callq 0x1a8c5
testb %al, %al
je 0x19387
cmpl $0x3, -0x6c(%rbp)
jne 0x193c5
movq %rbx, -0xe8(%rbp)
leaq 0x28(%rbx), %r15
movq %r15, %rdi
leaq -0xe0(%rbp), %rsi
callq 0x16448
testb %al, %al
leaq 0x10bc5(%rip), %rbx     # 0x285c0
je 0x18128
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 0x18a49
movl $0x4, %r15d
movl %r12d, %eax
movl $0xd1b71759, %edx       # imm = 0xD1B71759
cmpl $0x63, %eax
jbe 0x18a40
cmpl $0x3e7, %eax            # imm = 0x3E7
jbe 0x18a46
cmpl $0x2710, %eax           # imm = 0x2710
jb 0x18a49
movl %eax, %ecx
imulq %rdx, %rcx
shrq $0x2d, %rcx
addl $0x4, %r15d
cmpl $0x1869f, %eax          # imm = 0x1869F
movl %ecx, %eax
ja 0x17a5a
addl $-0x3, %r15d
jmp 0x18a49
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)
leaq -0xe0(%rbp), %rdi
movq %r15, %rsi
callq 0x19939
movq -0xe0(%rbp), %rdi
cmpq %r14, %rdi
je 0x18453
callq 0x32a0
jmp 0x18453
movl $0xa, %edx
leaq 0x10ac7(%rip), %rbx     # 0x285c0
movq %rbx, %rdi
leaq 0x536d(%rip), %rsi      # 0x1ce70
callq 0x3340
movq 0x10c49(%rip), %rax     # 0x28758
movl (%rax), %eax
shlq $0x5, %rax
leaq 0x10754(%rip), %rcx     # 0x28270
movq (%rax,%rcx), %rsi
movq 0x8(%rax,%rcx), %rdx
jmp 0x190e5
movl $0x2, %edx
movq %rbx, %r14
leaq 0x10a87(%rip), %rbx     # 0x285c0
movq %rbx, %rdi
leaq 0x5297(%rip), %rsi      # 0x1cdda
callq 0x3340
movl $0x1, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3340
movl $0x5, %edx
movq %rbx, %rdi
leaq 0x52ce(%rip), %rsi      # 0x1ce35
callq 0x3340
addq $0x48, %r14
leaq -0xc0(%rbp), %rdi
movq %r14, %rsi
callq 0x19a9f
movq -0xc0(%rbp), %rsi
movq -0xb8(%rbp), %rdx
movq %rbx, %rdi
callq 0x3340
movq %rax, %rdi
callq 0x16f37
jmp 0x1858a
movl 0x10c08(%rip), %eax     # 0x287b0
leal -0x4(%rax), %ecx
movl %ecx, 0x10bff(%rip)     # 0x287b0
cmpl $0x3, %eax
jle 0x1941b
movq 0x8(%rbx), %rsi
movq 0x10(%rbx), %rdx
leaq 0x109f7(%rip), %rdi     # 0x285c0
callq 0x3340
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x45ee(%rip), %rsi      # 0x1c1ce
callq 0x3340
movq %rbx, %rdi
callq 0x16f37
addl $0x4, 0x10bbc(%rip)     # 0x287b0
jmp 0x190f5
movl $0x3, %edx
movq %rbx, %r14
leaq 0x109b8(%rip), %rbx     # 0x285c0
movq %rbx, %rdi
leaq 0x521c(%rip), %rsi      # 0x1ce2e
callq 0x3340
movl $0x1, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3340
movq 0x8(%r14), %rsi
movq 0x10(%r14), %rdx
movq %rbx, %rdi
callq 0x3340
movq %rax, %rdi
callq 0x16f37
movl $0xfffffffc, 0x10b6f(%rip) # imm = 0xFFFFFFFC
jmp 0x190f5
movq %rbx, %r14
leaq 0x8(%rbx), %r15
movq %r15, %rdi
leaq 0x49e0(%rip), %rsi      # 0x1c63f
callq 0x30c0
testl %eax, %eax
je 0x17c92
movq %r15, %rdi
leaq 0x4aab(%rip), %rsi      # 0x1c71d
callq 0x30c0
testl %eax, %eax
je 0x17c92
movq %r15, %rdi
leaq 0x46ab(%rip), %rsi      # 0x1c330
callq 0x30c0
testl %eax, %eax
jne 0x194b6
movq %r15, %rdi
leaq 0x4a81(%rip), %rsi      # 0x1c71d
callq 0x30c0
testl %eax, %eax
leaq 0x10916(%rip), %rbx     # 0x285c0
je 0x182a7
movq %r15, %rdi
leaq 0x4985(%rip), %rsi      # 0x1c63f
callq 0x30c0
movq %r14, %rsi
addq $0x28, %rsi
testl %eax, %eax
je 0x1863e
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
callq 0x19939
movq -0xc0(%rbp), %rdi
cmpq %r12, %rdi
leaq 0x5108(%rip), %r15      # 0x1ce19
je 0x17d18
callq 0x32a0
movl $0x2, %edx
movq %rbx, %rdi
leaq 0x510b(%rip), %rsi      # 0x1ce32
callq 0x3340
movl $0x1, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3340
movl $0x7, %edx
movq %rbx, %rdi
leaq 0x537e(%rip), %rsi      # 0x1d0c9
jmp 0x186bb
movq %rbx, %r14
leaq 0x8(%rbx), %r15
movq %r15, %rdi
leaq 0x48de(%rip), %rsi      # 0x1c63f
callq 0x30c0
testl %eax, %eax
je 0x17d81
movq %r15, %rdi
leaq 0x45bc(%rip), %rsi      # 0x1c330
callq 0x30c0
testl %eax, %eax
jne 0x19497
movq %r15, %rdi
leaq 0x48b4(%rip), %rsi      # 0x1c63f
callq 0x30c0
movl %eax, %r15d
movl $0x2, %edx
leaq 0x10821(%rip), %rbx     # 0x285c0
movq %rbx, %rdi
leaq 0x5089(%rip), %rsi      # 0x1ce32
callq 0x3340
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x505c(%rip), %rsi      # 0x1ce19
callq 0x3340
testl %r15d, %r15d
je 0x18336
movl $0x7, %edx
movq %rbx, %rdi
leaq 0x531f(%rip), %rsi      # 0x1d0f9
jmp 0x18345
leaq 0x8(%rbx), %rdi
leaq 0x4855(%rip), %rsi      # 0x1c63f
callq 0x30c0
addl $-0x4, 0x109c2(%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 0x19939
movq -0xc0(%rbp), %rdi
cmpq %r12, %rdi
leaq 0x10780(%rip), %rbx     # 0x285c0
je 0x17e47
callq 0x32a0
movl $0x2, %edx
movq %rbx, %rdi
leaq 0x4f84(%rip), %rsi      # 0x1cdda
callq 0x3340
movl $0x1, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3340
movl $0x5, %edx
movq %rbx, %rdi
leaq 0x4fbb(%rip), %rsi      # 0x1ce35
callq 0x3340
movl 0x10933(%rip), %esi     # 0x287b8
movq %rbx, %rdi
callq 0x3470
movq %rax, %rbx
movl $0x5, %edx
movq %rax, %rdi
leaq 0x4fcb(%rip), %rsi      # 0x1ce6a
jmp 0x18e45
movl $0x1, %edx
movq %rbx, %r14
leaq 0x1070d(%rip), %rbx     # 0x285c0
movq %rbx, %rdi
leaq 0x5244(%rip), %rsi      # 0x1d101
callq 0x3340
movl $0x1, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3340
movq 0x8(%r14), %rsi
movq 0x10(%r14), %rdx
jmp 0x190e5
movq %r12, -0xc0(%rbp)
movb $0x30, 0x2(%r12)
movw $0x7624, (%r12)         # imm = 0x7624
movq $0x3, -0xb8(%rbp)
movb $0x0, -0xad(%rbp)
movq %rbx, %r14
leaq 0x8(%rbx), %rsi
leaq -0xc0(%rbp), %rdi
callq 0x19939
movq -0xc0(%rbp), %rdi
cmpq %r12, %rdi
leaq 0x10697(%rip), %rbx     # 0x285c0
je 0x17f30
callq 0x32a0
movl $0x2, %edx
movq %rbx, %rdi
leaq 0x4e9b(%rip), %rsi      # 0x1cdda
callq 0x3340
movl $0x1, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3340
movl $0x5, %edx
movq %rbx, %rdi
leaq 0x4ed2(%rip), %rsi      # 0x1ce35
callq 0x3340
movq %r14, %rsi
addq $0x48, %rsi
leaq -0xc0(%rbp), %rdi
callq 0x19a9f
movq -0xc0(%rbp), %rsi
movq -0xb8(%rbp), %rdx
movq %rbx, %rdi
callq 0x3340
movq %rax, %rdi
callq 0x16f37
jmp 0x1858a
addq $0x8, %rbx
movq %rbx, %rdi
leaq 0x4e6e(%rip), %rsi      # 0x1ce1a
callq 0x30c0
testl %eax, %eax
je 0x17ffb
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 0x19939
movq -0xc0(%rbp), %rdi
cmpq %r12, %rdi
je 0x17ffb
callq 0x32a0
callq 0x19821
jmp 0x190f5
leaq 0x68(%rbx), %rax
movq %rax, 0x10748(%rip)     # 0x28758
movl 0x68(%rbx), %eax
addl $-0x15, %eax
cmpl $0x2, %eax
jae 0x1943a
leaq 0x8(%rbx), %r13
movq %r13, %rdi
leaq -0xe0(%rbp), %rsi
callq 0x16448
testb %al, %al
je 0x181ba
leaq 0x28(%rbx), %r12
movq %r12, %rdi
leaq 0x4dd2(%rip), %rsi      # 0x1ce1a
callq 0x30c0
testl %eax, %eax
je 0x18066
leaq 0x48(%rbx), %rdi
leaq -0x2c(%rbp), %rsi
callq 0x16448
testb %al, %al
je 0x181ba
movq %r12, %rdi
leaq 0x4daa(%rip), %rsi      # 0x1ce1a
callq 0x30c0
testl %eax, %eax
leaq -0x40(%rbp), %r13
leaq 0x1053e(%rip), %rbx     # 0x285c0
je 0x19081
movq %r12, %rdi
leaq 0x3fd4(%rip), %rsi      # 0x1c066
callq 0x30c0
testl %eax, %eax
je 0x18e8a
movq %r12, %rdi
leaq 0x3fc1(%rip), %rsi      # 0x1c06a
callq 0x30c0
testl %eax, %eax
je 0x18f1d
movq %r12, %rdi
leaq 0x3fae(%rip), %rsi      # 0x1c06e
callq 0x30c0
testl %eax, %eax
je 0x18fb0
movq %r12, %rdi
leaq 0x3f9b(%rip), %rsi      # 0x1c072
callq 0x30c0
testl %eax, %eax
je 0x18ffd
movq %r12, %rdi
leaq 0x3f88(%rip), %rsi      # 0x1c076
callq 0x30c0
testl %eax, %eax
je 0x19064
movq %r12, %rdi
leaq 0x3f75(%rip), %rsi      # 0x1c07a
callq 0x30c0
movl -0xe0(%rbp), %ecx
xorl %edx, %edx
cmpl -0x2c(%rbp), %ecx
setge %dl
negl %eax
movl $0x0, %eax
sbbl %eax, %eax
orl %edx, %eax
jmp 0x19072
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 0x19939
movq -0xc0(%rbp), %rdi
cmpq %r12, %rdi
leaq 0x4cab(%rip), %r15      # 0x1ce19
je 0x18175
callq 0x32a0
movl $0x3, %edx
movq %rbx, %rdi
leaq 0x4d19(%rip), %rsi      # 0x1ce9d
callq 0x3340
movl $0x1, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3340
movl $0xb, %edx
movq %rbx, %rdi
leaq 0x4e7f(%rip), %rsi      # 0x1d027
callq 0x3340
movq %rbx, %rdi
callq 0x16f37
jmp 0x18abc
leaq 0x28(%rbx), %r14
movq %r14, %rdi
leaq 0x4c52(%rip), %r15      # 0x1ce1a
movq %r15, %rsi
callq 0x30c0
testl %eax, %eax
je 0x185a4
movq %r14, %rdi
movq %r15, %rsi
callq 0x30c0
testl %eax, %eax
leaq -0x50(%rbp), %r12
je 0x19478
addq $0x48, %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x30c0
testl %eax, %eax
je 0x19478
movq %r13, %rdi
leaq -0xe0(%rbp), %rsi
callq 0x16448
testb %al, %al
je 0x1822d
movq %rbx, %rdi
leaq -0x2c(%rbp), %rsi
callq 0x16448
testb %al, %al
jne 0x19513
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 0x16448
leaq 0x4bad(%rip), %r15      # 0x1ce19
cmpl $0x0, -0xe0(%rbp)
sete %cl
andb %cl, %al
cmpb $0x1, %al
jne 0x186dc
movq -0xb8(%rbp), %rdx
movl $0x5, %r8d
leaq -0xc0(%rbp), %rdi
xorl %esi, %esi
leaq 0x4f6e(%rip), %rcx      # 0x1d20b
callq 0x33f0
jmp 0x1871b
movl $0x2, %edx
movq %rbx, %rdi
leaq 0x4dff(%rip), %rsi      # 0x1d0b5
callq 0x3340
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x4b4f(%rip), %r15      # 0x1ce19
movq %r15, %rsi
callq 0x3340
movl $0x5, %edx
movq %rbx, %rdi
leaq 0x4dd7(%rip), %rsi      # 0x1d0b8
callq 0x3340
movq 0x28(%r14), %rsi
movq 0x30(%r14), %rdx
movq %rbx, %rdi
callq 0x3340
movq %rax, %rdi
callq 0x16f37
movl $0x2, %edx
movq %rbx, %rdi
leaq 0x4b25(%rip), %rsi      # 0x1ce32
callq 0x3340
movl $0x1, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3340
movl $0x6, %edx
movq %rbx, %rdi
leaq 0x4cfb(%rip), %rsi      # 0x1d02c
jmp 0x186bb
movl $0x6, %edx
movq %rbx, %rdi
leaq 0x4dad(%rip), %rsi      # 0x1d0f2
callq 0x3340
movq %rbx, %rdi
callq 0x16f37
movl $0x7, %edx
movq %rbx, %rdi
leaq 0x4ada(%rip), %rsi      # 0x1ce3b
callq 0x3340
movq %rbx, %rdi
callq 0x16f37
movl $0x2, %edx
movq %rbx, %rdi
leaq 0x4a5d(%rip), %rsi      # 0x1cdda
callq 0x3340
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x4a88(%rip), %r15      # 0x1ce19
movq %r15, %rsi
callq 0x3340
movl $0x5, %edx
movq %rbx, %rdi
leaq 0x4a8d(%rip), %rsi      # 0x1ce35
callq 0x3340
movq %r14, %rsi
addq $0x28, %rsi
leaq -0xc0(%rbp), %rdi
callq 0x19a9f
movq -0xc0(%rbp), %rsi
movq -0xb8(%rbp), %rdx
movq %rbx, %rdi
callq 0x3340
movq %rax, %rdi
callq 0x16f37
jmp 0x1858a
addl $-0x2, %r15d
jmp 0x183ec
decl %r15d
shrl $0x1f, %r12d
leal (%r15,%r12), %esi
leaq -0xd0(%rbp), %r14
movq %r14, -0xe0(%rbp)
leaq -0xe0(%rbp), %rbx
movq %rbx, %rdi
movl $0x2d, %edx
callq 0x3350
addq -0xe0(%rbp), %r12
movq %r12, %rdi
movl %r15d, %esi
movl %r13d, %edx
callq 0x13f04
leaq -0x70(%rbp), %rdi
movq %rbx, %rsi
callq 0x3370
movq -0xe0(%rbp), %rdi
cmpq %r14, %rdi
je 0x18448
callq 0x32a0
leaq -0xb0(%rbp), %r12
leaq -0x40(%rbp), %r13
leaq 0x10166(%rip), %rbx     # 0x285c0
movq -0xc0(%rbp), %rsi
movq -0xb8(%rbp), %rdx
movq %rbx, %rdi
callq 0x3340
movq %rax, %r15
movl $0x1, %edx
movq %rax, %rdi
leaq 0x4997(%rip), %rsi      # 0x1ce19
callq 0x3340
movl $0x5, %edx
movq %r15, %rdi
leaq 0x499f(%rip), %rsi      # 0x1ce35
callq 0x3340
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq %r15, %rdi
callq 0x3340
movq %rax, %r15
movl $0x2, %edx
movq %rax, %rdi
leaq 0x4bfe(%rip), %rsi      # 0x1d0bb
callq 0x3340
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
movq %r15, %rdi
callq 0x3340
movq %rax, %rdi
callq 0x16f37
movl $0x2, %edx
movq %rbx, %rdi
leaq 0x48f1(%rip), %rsi      # 0x1cdda
callq 0x3340
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x491c(%rip), %rsi      # 0x1ce19
callq 0x3340
movl $0x5, %edx
movq %rbx, %rdi
leaq 0x4924(%rip), %rsi      # 0x1ce35
callq 0x3340
movq -0xe8(%rbp), %rsi
addq $0x48, %rsi
leaq -0xe0(%rbp), %rdi
callq 0x19a9f
movq -0xe0(%rbp), %rsi
movq -0xd8(%rbp), %rdx
movq %rbx, %rdi
callq 0x3340
leaq 0x48cf(%rip), %r15      # 0x1ce19
movq %rax, %rdi
callq 0x16f37
movq -0xe0(%rbp), %rdi
leaq -0xd0(%rbp), %rax
cmpq %rax, %rdi
je 0x1856a
callq 0x32a0
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x1857c
callq 0x32a0
movq -0x50(%rbp), %rdi
cmpq %r13, %rdi
je 0x1858a
callq 0x32a0
movq -0xc0(%rbp), %rdi
cmpq %r12, %rdi
je 0x190f5
callq 0x32a0
jmp 0x190f5
movq %r13, %rdi
leaq -0xe0(%rbp), %rsi
callq 0x16448
testb %al, %al
leaq 0x10004(%rip), %rbx     # 0x285c0
jne 0x194d5
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 0x19939
leaq 0x4814(%rip), %r15      # 0x1ce19
movq -0xc0(%rbp), %rdi
cmpq %r12, %rdi
leaq -0x40(%rbp), %r13
je 0x1861a
callq 0x32a0
movq 0x10137(%rip), %rax     # 0x28758
cmpl $0x15, (%rax)
jne 0x18e52
movl $0x3, %edx
movq %rbx, %rdi
leaq 0x4b68(%rip), %rsi      # 0x1d1a1
jmp 0x18e61
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
callq 0x19939
movq -0xc0(%rbp), %rdi
cmpq %r12, %rdi
leaq 0x4798(%rip), %r15      # 0x1ce19
je 0x18688
callq 0x32a0
movl $0x2, %edx
movq %rbx, %rdi
leaq 0x479b(%rip), %rsi      # 0x1ce32
callq 0x3340
movl $0x1, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3340
movl $0x6, %edx
movq %rbx, %rdi
leaq 0x4a07(%rip), %rsi      # 0x1d0c2
callq 0x3340
movq %rbx, %rdi
callq 0x16f37
movl $0x7, %edx
movq %rbx, %rdi
leaq 0x4764(%rip), %rsi      # 0x1ce3b
jmp 0x18e45
leaq -0x40(%rbp), %r15
movq %r15, -0x50(%rbp)
movb $0x30, 0x2(%r15)
movw $0x7624, (%r15)         # imm = 0x7624
movq $0x3, -0x48(%rbp)
movb $0x0, -0x3d(%rbp)
movq %r12, %rdi
movq %r13, %rsi
callq 0x19939
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x18714
callq 0x32a0
leaq 0x46fe(%rip), %r15      # 0x1ce19
leaq -0x40(%rbp), %r13
movq %r13, -0x50(%rbp)
movb $0x31, 0x2(%r13)
movw $0x7624, (%r13)         # imm = 0x7624
movq $0x3, -0x48(%rbp)
movb $0x0, -0x3d(%rbp)
movq %rbx, %rdi
leaq -0x2c(%rbp), %rsi
callq 0x16448
cmpl $0x0, -0x2c(%rbp)
sete %cl
andb %cl, %al
cmpb $0x1, %al
jne 0x18771
movq -0x48(%rbp), %rdx
movl $0x5, %r8d
movq %r12, %rdi
xorl %esi, %esi
leaq 0x4aa1(%rip), %rcx      # 0x1d20b
callq 0x33f0
jmp 0x187b0
leaq -0x60(%rbp), %r12
movq %r12, -0x70(%rbp)
movb $0x31, 0x2(%r12)
movw $0x7624, (%r12)         # imm = 0x7624
movq $0x3, -0x68(%rbp)
movb $0x0, -0x5d(%rbp)
leaq -0x70(%rbp), %rdi
movq %rbx, %rsi
callq 0x19939
movq -0x70(%rbp), %rdi
cmpq %r12, %rdi
je 0x187ac
callq 0x32a0
leaq -0x50(%rbp), %r12
movq %r14, %rdi
leaq 0x38ac(%rip), %rsi      # 0x1c066
callq 0x30c0
testl %eax, %eax
je 0x18942
movq %r14, %rdi
leaq 0x3899(%rip), %rsi      # 0x1c06a
callq 0x30c0
testl %eax, %eax
je 0x18942
leaq -0xc0(%rbp), %rdi
leaq 0x4a1f(%rip), %rbx      # 0x1d20b
movq %rbx, %rsi
callq 0x30c0
testl %eax, %eax
jne 0x1880b
movq %r12, %rdi
movq %rbx, %rsi
callq 0x30c0
testl %eax, %eax
je 0x19569
movq %r12, %rdi
movq %rbx, %rsi
callq 0x30c0
testl %eax, %eax
je 0x18e9d
leaq -0xc0(%rbp), %rdi
movq %rbx, %rsi
callq 0x30c0
testl %eax, %eax
leaq 0xfd8a(%rip), %rdi      # 0x285c0
je 0x18f30
movl $0x4, %edx
leaq 0x4650(%rip), %rsi      # 0x1ce98
callq 0x3340
movl $0x1, %edx
leaq 0xfd67(%rip), %rdi      # 0x285c0
movq %r15, %rsi
callq 0x3340
movl $0x5, %edx
leaq 0xfd53(%rip), %rdi      # 0x285c0
leaq 0x45c1(%rip), %rsi      # 0x1ce35
callq 0x3340
movq -0xc0(%rbp), %rsi
movq -0xb8(%rbp), %rdx
leaq 0xfd32(%rip), %rdi      # 0x285c0
callq 0x3340
movq %rax, %rbx
movl $0x2, %edx
movq %rax, %rdi
leaq 0x4816(%rip), %rsi      # 0x1d0bb
callq 0x3340
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq %rbx, %rdi
callq 0x3340
movq %rax, %rdi
callq 0x16f37
movq %r14, %rdi
leaq 0x37a2(%rip), %rsi      # 0x1c06e
callq 0x30c0
testl %eax, %eax
je 0x18fc3
movq %r14, %rdi
leaq 0x378f(%rip), %rsi      # 0x1c072
callq 0x30c0
testl %eax, %eax
je 0x1900d
movq %r14, %rdi
leaq 0x377c(%rip), %rsi      # 0x1c076
callq 0x30c0
testl %eax, %eax
je 0x19102
movq %r14, %rdi
leaq 0x3769(%rip), %rsi      # 0x1c07a
callq 0x30c0
leaq 0x44fd(%rip), %rbx      # 0x1ce1a
testl %eax, %eax
jne 0x1911e
movq 0xfe2c(%rip), %rax      # 0x28758
cmpl $0x15, (%rax)
leaq 0x4909(%rip), %rbx      # 0x1d23f
leaq 0x4907(%rip), %rax      # 0x1d244
jmp 0x1911a
movq %r14, %rdi
leaq 0x371a(%rip), %rsi      # 0x1c066
callq 0x30c0
testl %eax, %eax
sete %al
movq 0xfdfb(%rip), %rcx      # 0x28758
cmpl $0x15, (%rcx)
sete %cl
xorb %al, %cl
leaq 0x4846(%rip), %rsi      # 0x1d1b2
leaq 0x482e(%rip), %rax      # 0x1d1a1
cmovneq %rax, %rsi
leaq -0x60(%rbp), %rax
movq %rax, -0x70(%rbp)
leaq 0x482f(%rip), %rdx      # 0x1d1b5
leaq 0x4817(%rip), %rax      # 0x1d1a4
cmovneq %rax, %rdx
leaq -0x70(%rbp), %rdi
callq 0x14454
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
leaq 0xfc17(%rip), %rdi      # 0x285c0
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 0x46cb(%rip), %rsi      # 0x1d0bb
callq 0x3340
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq %rbx, %rdi
callq 0x3340
movq %rax, %rbx
movl $0x2, %edx
movq %rax, %rdi
leaq 0x46a4(%rip), %rsi      # 0x1d0bb
callq 0x3340
movq 0xfd35(%rip), %rax      # 0x28758
movq 0x8(%rax), %rsi
movq 0x10(%rax), %rdx
movq %rbx, %rdi
callq 0x3340
movq %rax, %rdi
callq 0x16f37
jmp 0x1856a
addl $-0x2, %r15d
jmp 0x18a49
decl %r15d
shrl $0x1f, %r13d
leal (%r15,%r13), %esi
leaq -0x40(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x50(%rbp), %r14
movq %r14, %rdi
movl $0x2d, %edx
callq 0x3350
movl %r13d, %edi
addq -0x50(%rbp), %rdi
movl %r15d, %esi
movl %r12d, %edx
callq 0x13f04
leaq -0xc0(%rbp), %rdi
movq %r14, %rsi
callq 0x19939
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %r13
cmpq %r13, %rdi
leaq -0xb0(%rbp), %r12
leaq 0x4375(%rip), %r15      # 0x1ce19
je 0x18aab
callq 0x32a0
movq -0xc0(%rbp), %rdi
cmpq %r12, %rdi
je 0x18abc
callq 0x32a0
movl -0x70(%rbp), %eax
cmpl $0x1, %eax
je 0x18bd0
testl %eax, %eax
jne 0x19459
movq -0xe8(%rbp), %r14
cmpl $0xe, (%r14)
jne 0x18d9d
movl $0x2, %edx
movq %rbx, %rdi
leaq 0x42e7(%rip), %rsi      # 0x1cdd7
callq 0x3340
movl $0x1, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3340
movl $0x5, %edx
movq %rbx, %rdi
leaq 0x451f(%rip), %rbx      # 0x1d033
movq %rbx, %rsi
callq 0x3340
movq 0x8(%r14), %rsi
movq 0x10(%r14), %rdx
leaq 0xfa95(%rip), %rdi      # 0x285c0
callq 0x3340
movq %rax, %r15
movl $0x5, %edx
movq %rax, %rdi
leaq 0x44f7(%rip), %rsi      # 0x1d039
callq 0x3340
movq %r15, %rdi
leaq 0x42c8(%rip), %r15      # 0x1ce19
callq 0x16f37
movl $0x2, %edx
leaq 0xfa5e(%rip), %rdi      # 0x285c0
leaq 0x4271(%rip), %rsi      # 0x1cdda
callq 0x3340
movl $0x1, %edx
leaq 0xfa46(%rip), %rdi      # 0x285c0
movq %r15, %rsi
callq 0x3340
movl $0x5, %edx
leaq 0xfa32(%rip), %rdi      # 0x285c0
movq %rbx, %rsi
callq 0x3340
addq $0x48, %r14
leaq -0xc0(%rbp), %rdi
movq %r14, %rsi
callq 0x19a9f
movq -0xc0(%rbp), %rsi
movq -0xb8(%rbp), %rdx
leaq 0xfa02(%rip), %rdi      # 0x285c0
callq 0x3340
movq %rax, %rdi
callq 0x16f37
jmp 0x1858a
movl $0x4, %edx
movq %rbx, %rdi
leaq 0x42b4(%rip), %rsi      # 0x1ce93
callq 0x3340
movl $0x1, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3340
movl $0xd, %edx
movq %rbx, %rdi
leaq 0x4451(%rip), %rsi      # 0x1d054
callq 0x3340
movq %rbx, %rdi
callq 0x16f37
movq -0xe8(%rbp), %r14
cmpl $0xe, (%r14)
jne 0x18d0b
movl $0x2, %edx
movq %rbx, %rdi
leaq 0x41a7(%rip), %rsi      # 0x1cdd7
callq 0x3340
movl $0x1, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3340
movl $0x5, %edx
movq %rbx, %rdi
leaq 0x43df(%rip), %rbx      # 0x1d033
movq %rbx, %rsi
callq 0x3340
movl -0x60(%rbp), %esi
leaq 0xf95a(%rip), %rdi      # 0x285c0
callq 0x3470
movq %rax, %r15
movl $0x5, %edx
movq %rax, %rdi
leaq 0x43bc(%rip), %rsi      # 0x1d039
callq 0x3340
movq %r15, %rdi
leaq 0x418d(%rip), %r15      # 0x1ce19
callq 0x16f37
movl $0x2, %edx
leaq 0xf923(%rip), %rdi      # 0x285c0
leaq 0x4136(%rip), %rsi      # 0x1cdda
callq 0x3340
movl $0x1, %edx
leaq 0xf90b(%rip), %rdi      # 0x285c0
movq %r15, %rsi
callq 0x3340
movl $0x5, %edx
leaq 0xf8f7(%rip), %rdi      # 0x285c0
movq %rbx, %rsi
callq 0x3340
addq $0x48, %r14
leaq -0xc0(%rbp), %rdi
movq %r14, %rsi
callq 0x19a9f
movq -0xc0(%rbp), %rsi
movq -0xb8(%rbp), %rdx
leaq 0xf8c7(%rip), %rdi      # 0x285c0
callq 0x3340
movq %rax, %rdi
callq 0x16f37
jmp 0x1858a
movq %r12, -0xc0(%rbp)
movb $0x31, 0x2(%r12)
movw $0x7624, (%r12)         # imm = 0x7624
movq $0x3, -0xb8(%rbp)
movb $0x0, -0xad(%rbp)
addq $0x48, %r14
leaq -0xc0(%rbp), %rdi
movq %r14, %rsi
callq 0x19939
movq -0xc0(%rbp), %rdi
cmpq %r12, %rdi
je 0x18d55
callq 0x32a0
movl $0x2, %edx
movq %rbx, %rdi
leaq 0x4076(%rip), %rsi      # 0x1cdda
callq 0x3340
movl $0x1, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3340
movl $0x5, %edx
movq %rbx, %rdi
leaq 0x42ab(%rip), %rsi      # 0x1d033
callq 0x3340
movl -0x60(%rbp), %esi
movq %rbx, %rdi
callq 0x3470
jmp 0x18e33
movq %r12, -0xc0(%rbp)
movb $0x31, 0x2(%r12)
movw $0x7624, (%r12)         # imm = 0x7624
movq $0x3, -0xb8(%rbp)
movb $0x0, -0xad(%rbp)
leaq 0x48(%r14), %rsi
leaq -0xc0(%rbp), %rdi
callq 0x19939
movq -0xc0(%rbp), %rdi
cmpq %r12, %rdi
je 0x18de4
callq 0x32a0
movl $0x2, %edx
movq %rbx, %rdi
leaq 0x3fe7(%rip), %rsi      # 0x1cdda
callq 0x3340
movl $0x1, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3340
movl $0x5, %edx
movq %rbx, %rdi
leaq 0x421c(%rip), %rsi      # 0x1d033
callq 0x3340
movq -0xe8(%rbp), %rax
movq 0x8(%rax), %rsi
movq 0x10(%rax), %rdx
movq %rbx, %rdi
callq 0x3340
movq %rax, %rbx
movl $0x5, %edx
movq %rax, %rdi
leaq 0x41f4(%rip), %rsi      # 0x1d039
callq 0x3340
movq %rbx, %rdi
jmp 0x190f0
movl $0x3, %edx
movq %rbx, %rdi
leaq 0x4351(%rip), %rsi      # 0x1d1b2
callq 0x3340
movl $0x1, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3340
movl $0xc, %edx
movq %rbx, %rdi
leaq 0x4320(%rip), %rsi      # 0x1d1a5
jmp 0x190d1
movl -0xe0(%rbp), %ecx
xorl %eax, %eax
cmpl -0x2c(%rbp), %ecx
sete %al
jmp 0x19072
movq %r14, %rdi
leaq 0x31c7(%rip), %rsi      # 0x1c06e
callq 0x30c0
testl %eax, %eax
je 0x18fe0
movq %r14, %rdi
leaq 0x31b4(%rip), %rsi      # 0x1c072
callq 0x30c0
testl %eax, %eax
je 0x1902a
movq %r14, %rdi
leaq 0x31a1(%rip), %rsi      # 0x1c076
callq 0x30c0
testl %eax, %eax
je 0x191be
movq %r14, %rdi
leaq 0x318e(%rip), %rsi      # 0x1c07a
callq 0x30c0
leaq 0x3f22(%rip), %rbx      # 0x1ce1a
testl %eax, %eax
jne 0x191da
movq 0xf851(%rip), %rax      # 0x28758
cmpl $0x15, (%rax)
leaq 0x432e(%rip), %rbx      # 0x1d23f
leaq 0x432c(%rip), %rax      # 0x1d244
jmp 0x191d6
movl -0xe0(%rbp), %ecx
xorl %eax, %eax
cmpl -0x2c(%rbp), %ecx
setne %al
jmp 0x19072
movq %r14, %rdi
leaq 0x3134(%rip), %rsi      # 0x1c06e
callq 0x30c0
testl %eax, %eax
je 0x19047
movq %r14, %rdi
leaq 0x3121(%rip), %rsi      # 0x1c072
callq 0x30c0
testl %eax, %eax
je 0x1927a
movq %r14, %rdi
leaq 0x310e(%rip), %rsi      # 0x1c076
callq 0x30c0
testl %eax, %eax
je 0x19294
movq %r14, %rdi
leaq 0x30fb(%rip), %rsi      # 0x1c07a
callq 0x30c0
leaq 0x3e8f(%rip), %rbx      # 0x1ce1a
testl %eax, %eax
jne 0x192b0
movq 0xf7be(%rip), %rax      # 0x28758
cmpl $0x15, (%rax)
leaq 0x42a0(%rip), %rbx      # 0x1d244
leaq 0x4294(%rip), %rax      # 0x1d23f
jmp 0x192ac
movl -0xe0(%rbp), %ecx
xorl %eax, %eax
cmpl -0x2c(%rbp), %ecx
setl %al
jmp 0x19072
movq 0xf78e(%rip), %rax      # 0x28758
cmpl $0x15, (%rax)
leaq 0x4270(%rip), %rbx      # 0x1d244
leaq 0x4264(%rip), %rax      # 0x1d23f
jmp 0x1911a
movq 0xf771(%rip), %rax      # 0x28758
cmpl $0x15, (%rax)
leaq 0x4253(%rip), %rbx      # 0x1d244
leaq 0x4247(%rip), %rax      # 0x1d23f
jmp 0x191d6
movl -0xe0(%rbp), %ecx
xorl %eax, %eax
cmpl -0x2c(%rbp), %ecx
setle %al
jmp 0x19072
movq 0xf744(%rip), %rax      # 0x28758
cmpl $0x15, (%rax)
leaq 0x4230(%rip), %rbx      # 0x1d24e
leaq 0x4224(%rip), %rax      # 0x1d249
jmp 0x1911a
movq 0xf727(%rip), %rax      # 0x28758
cmpl $0x15, (%rax)
leaq 0x4213(%rip), %rbx      # 0x1d24e
leaq 0x4207(%rip), %rax      # 0x1d249
jmp 0x191d6
movq 0xf70a(%rip), %rax      # 0x28758
cmpl $0x15, (%rax)
leaq 0x41e7(%rip), %rbx      # 0x1d23f
leaq 0x41e5(%rip), %rax      # 0x1d244
jmp 0x192ac
movl -0xe0(%rbp), %ecx
xorl %eax, %eax
cmpl -0x2c(%rbp), %ecx
setg %al
movl %eax, -0xe0(%rbp)
cmpl $0x2, %eax
jae 0x194f4
movq 0xf6d0(%rip), %rax      # 0x28758
movl (%rax), %eax
movl %eax, %edx
xorl $0x15, %edx
movl -0xe0(%rbp), %ecx
orl %ecx, %edx
leaq -0xb0(%rbp), %r12
je 0x190b2
cmpl $0x16, %eax
sete %al
testl %ecx, %ecx
setne %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x190f5
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x4040(%rip), %rsi      # 0x1d101
callq 0x3340
movl $0x1, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3340
movq 0xf67b(%rip), %rax      # 0x28758
movq 0x8(%rax), %rsi
movq 0x10(%rax), %rdx
movq %rbx, %rdi
callq 0x3340
movq %rax, %rdi
callq 0x16f37
addq $0x68, 0xf65b(%rip)     # 0x28758
jmp 0x17818
movq 0xf64f(%rip), %rax      # 0x28758
cmpl $0x15, (%rax)
leaq 0x4136(%rip), %rbx      # 0x1d249
leaq 0x4134(%rip), %rax      # 0x1d24e
cmoveq %rax, %rbx
leaq -0x60(%rbp), %rax
movq %rax, -0x70(%rbp)
movq %rbx, %rdi
callq 0x3120
leaq (%rax,%rbx), %rdx
leaq -0x70(%rbp), %r14
movq %r14, %rdi
movq %rbx, %rsi
leaq -0xb0(%rbp), %r12
callq 0x14454
movq %r14, %rdi
leaq 0x3cc8(%rip), %rsi      # 0x1ce1a
callq 0x30c0
testl %eax, %eax
leaq 0xf460(%rip), %rdi      # 0x285c0
je 0x19532
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
callq 0x3340
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x3340
movl $0x5, %edx
movq %rbx, %rdi
leaq 0x3ca0(%rip), %rsi      # 0x1ce35
callq 0x3340
movq 0xf5b7(%rip), %rax      # 0x28758
movq 0x8(%rax), %rsi
movq 0x10(%rax), %rdx
movq %rbx, %rdi
callq 0x3340
movq %rax, %rdi
callq 0x16f37
jmp 0x1856a
movq 0xf593(%rip), %rax      # 0x28758
cmpl $0x15, (%rax)
leaq 0x407a(%rip), %rbx      # 0x1d249
leaq 0x4078(%rip), %rax      # 0x1d24e
cmoveq %rax, %rbx
leaq -0x60(%rbp), %rax
movq %rax, -0x70(%rbp)
movq %rbx, %rdi
callq 0x3120
leaq (%rax,%rbx), %rdx
leaq -0x70(%rbp), %r14
movq %r14, %rdi
movq %rbx, %rsi
leaq -0xb0(%rbp), %r12
callq 0x14454
movq %r14, %rdi
leaq 0x3c0c(%rip), %rsi      # 0x1ce1a
callq 0x30c0
testl %eax, %eax
leaq 0xf3a4(%rip), %rdi      # 0x285c0
je 0x19588
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
callq 0x3340
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x3340
movl $0x5, %edx
movq %rbx, %rdi
leaq 0x400b(%rip), %rsi      # 0x1d25c
callq 0x3340
movq 0xf4fb(%rip), %rax      # 0x28758
movq 0x8(%rax), %rsi
movq 0x10(%rax), %rdx
movq %rbx, %rdi
callq 0x3340
movq %rax, %rdi
callq 0x16f37
jmp 0x1856a
movq 0xf4d7(%rip), %rax      # 0x28758
cmpl $0x15, (%rax)
leaq 0x3fbe(%rip), %rbx      # 0x1d249
leaq 0x3fbc(%rip), %rax      # 0x1d24e
jmp 0x192ac
movq 0xf4bd(%rip), %rax      # 0x28758
cmpl $0x15, (%rax)
leaq 0x3fa9(%rip), %rbx      # 0x1d24e
leaq 0x3f9d(%rip), %rax      # 0x1d249
cmoveq %rax, %rbx
leaq -0x60(%rbp), %rax
movq %rax, -0x70(%rbp)
movq %rbx, %rdi
callq 0x3120
leaq (%rax,%rbx), %rdx
leaq -0x70(%rbp), %r14
movq %r14, %rdi
movq %rbx, %rsi
leaq -0xb0(%rbp), %r12
callq 0x14454
movq %r14, %rdi
leaq 0x3b36(%rip), %rsi      # 0x1ce1a
callq 0x30c0
testl %eax, %eax
leaq 0xf2ce(%rip), %rdi      # 0x285c0
je 0x195a7
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
callq 0x3340
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x3340
movl $0x5, %edx
movq %rbx, %rdi
leaq 0x3f3b(%rip), %rsi      # 0x1d262
callq 0x3340
movq 0xf425(%rip), %rax      # 0x28758
movq 0x8(%rax), %rsi
movq 0x10(%rax), %rdx
movq %rbx, %rdi
callq 0x3340
movq %rax, %rdi
callq 0x16f37
jmp 0x1856a
callq 0x19821
movl 0xf455(%rip), %eax      # 0x287b0
leal -0x8(%rax), %ecx
movl %ecx, 0xf44c(%rip)      # 0x287b0
cmpl $0x7, %eax
jle 0x19623
addq $0x68, 0xf3e3(%rip)     # 0x28758
addq $0xc8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x3b8e(%rip), %rdi      # 0x1cf1c
leaq 0x3a20(%rip), %rsi      # 0x1cdb5
leaq 0x3c49(%rip), %rcx      # 0x1cfe5
movl $0x19f, %edx            # imm = 0x19F
callq 0x31b0
leaq 0x3afd(%rip), %rdi      # 0x1ceaa
leaq 0x3a01(%rip), %rsi      # 0x1cdb5
leaq 0x3b2d(%rip), %rcx      # 0x1cee8
movl $0x15c, %edx            # imm = 0x15C
callq 0x31b0
leaq 0x3c43(%rip), %rdi      # 0x1d00f
leaq 0x39e2(%rip), %rsi      # 0x1cdb5
leaq 0x3c0b(%rip), %rcx      # 0x1cfe5
movl $0x1a0, %edx            # imm = 0x1A0
callq 0x31b0
leaq 0x3bd7(%rip), %rdi      # 0x1cfc2
leaq 0x39c3(%rip), %rsi      # 0x1cdb5
leaq 0x3bec(%rip), %rcx      # 0x1cfe5
movl $0x19b, %edx            # imm = 0x19B
callq 0x31b0
leaq 0x3919(%rip), %rdi      # 0x1cd23
callq 0x3180
leaq 0x390d(%rip), %rdi      # 0x1cd23
callq 0x33b0
leaq 0x3ce1(%rip), %rdi      # 0x1d103
leaq 0x398c(%rip), %rsi      # 0x1cdb5
leaq 0x3ce3(%rip), %rcx      # 0x1d113
movl $0x274, %edx            # imm = 0x274
callq 0x31b0
leaq 0x3ce3(%rip), %rdi      # 0x1d124
leaq 0x396d(%rip), %rsi      # 0x1cdb5
leaq 0x3cf5(%rip), %rcx      # 0x1d144
movl $0x1ff, %edx            # imm = 0x1FF
callq 0x31b0
leaq 0x3bdf(%rip), %rdi      # 0x1d03f
leaq 0x394e(%rip), %rsi      # 0x1cdb5
leaq 0x3b77(%rip), %rcx      # 0x1cfe5
movl $0x1ba, %edx            # imm = 0x1BA
callq 0x31b0
leaq 0x3d37(%rip), %rdi      # 0x1d1b6
leaq 0x392f(%rip), %rsi      # 0x1cdb5
leaq 0x3cb7(%rip), %rcx      # 0x1d144
movl $0x220, %edx            # imm = 0x220
callq 0x31b0
leaq 0x393f(%rip), %rdi      # 0x1cddd
leaq 0x3910(%rip), %rsi      # 0x1cdb5
leaq 0x3c25(%rip), %rcx      # 0x1d0d1
movl $0x147, %edx            # imm = 0x147
callq 0x31b0
leaq 0x3ba5(%rip), %rdi      # 0x1d062
leaq 0x38f1(%rip), %rsi      # 0x1cdb5
leaq 0x3bc8(%rip), %rcx      # 0x1d093
movl $0x135, %edx            # imm = 0x135
callq 0x31b0
leaq 0x3ca3(%rip), %rdi      # 0x1d17f
leaq 0x38d2(%rip), %rsi      # 0x1cdb5
leaq 0x3c5a(%rip), %rcx      # 0x1d144
movl $0x216, %edx            # imm = 0x216
callq 0x31b0
leaq 0x3c6d(%rip), %rdi      # 0x1d168
leaq 0x38b3(%rip), %rsi      # 0x1cdb5
leaq 0x3c3b(%rip), %rcx      # 0x1d144
movl $0x20b, %edx            # imm = 0x20B
callq 0x31b0
leaq 0x3cb7(%rip), %rdi      # 0x1d1d1
leaq 0x3894(%rip), %rsi      # 0x1cdb5
leaq 0x3c1c(%rip), %rcx      # 0x1d144
movl $0x221, %edx            # imm = 0x221
callq 0x31b0
leaq 0x3d1a(%rip), %rdi      # 0x1d253
leaq 0x3875(%rip), %rsi      # 0x1cdb5
leaq 0x3bfd(%rip), %rcx      # 0x1d144
movl $0x25f, %edx            # imm = 0x25F
callq 0x31b0
leaq 0x37cb(%rip), %rdi      # 0x1cd23
callq 0x3180
leaq 0x37bf(%rip), %rdi      # 0x1cd23
callq 0x33b0
leaq 0x3ca1(%rip), %rdi      # 0x1d211
leaq 0x383e(%rip), %rsi      # 0x1cdb5
leaq 0x3bc6(%rip), %rcx      # 0x1d144
movl $0x23c, %edx            # imm = 0x23C
callq 0x31b0
leaq 0x3cc4(%rip), %rdi      # 0x1d253
leaq 0x381f(%rip), %rsi      # 0x1cdb5
leaq 0x3ba7(%rip), %rcx      # 0x1d144
movl $0x246, %edx            # imm = 0x246
callq 0x31b0
leaq 0x3ca5(%rip), %rdi      # 0x1d253
leaq 0x3800(%rip), %rsi      # 0x1cdb5
leaq 0x3b88(%rip), %rcx      # 0x1d144
movl $0x253, %edx            # imm = 0x253
callq 0x31b0
leaq 0x37d8(%rip), %rdi      # 0x1cda5
leaq 0x37e1(%rip), %rsi      # 0x1cdb5
leaq 0x3868(%rip), %rcx      # 0x1ce43
movl $0xf4, %edx
callq 0x31b0
leaq 0x37b9(%rip), %rdi      # 0x1cda5
leaq 0x37c2(%rip), %rsi      # 0x1cdb5
leaq 0x3881(%rip), %rcx      # 0x1ce7b
movl $0xc6, %edx
callq 0x31b0
leaq 0x379a(%rip), %rdi      # 0x1cda5
leaq 0x37a3(%rip), %rsi      # 0x1cdb5
leaq 0x382a(%rip), %rcx      # 0x1ce43
movl $0xfb, %edx
callq 0x31b0
leaq 0x3ad9(%rip), %rdi      # 0x1d103
leaq 0x3784(%rip), %rsi      # 0x1cdb5
leaq 0x3c37(%rip), %rcx      # 0x1d26f
movl $0x26b, %edx            # imm = 0x26B
callq 0x31b0
jmp 0x196a4
jmp 0x196a4
jmp 0x196a4
movq %rax, %rbx
jmp 0x197ae
movq %rax, %rbx
cmpl $0x0, (%r12)
jne 0x197ae
movl -0xec(%rbp), %eax
movl %eax, (%r12)
jmp 0x197ae
jmp 0x19731
movq %rax, %rbx
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x196c5
callq 0x32a0
jmp 0x196c5
movq %rax, %rbx
movq -0x70(%rbp), %rdi
cmpq %r12, %rdi
jne 0x19741
jmp 0x19746
jmp 0x197c3
jmp 0x197c3
movq %rax, %rbx
jmp 0x19746
jmp 0x19731
jmp 0x19731
jmp 0x197c3
jmp 0x197c3
jmp 0x197c3
movq %rax, %rbx
leaq -0xb0(%rbp), %r14
jmp 0x1975f
jmp 0x197c3
jmp 0x197c3
jmp 0x197c3
jmp 0x197c3
jmp 0x197c3
jmp 0x197c3
movq %rax, %rbx
jmp 0x19709
movq %rax, %rbx
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x19709
callq 0x32a0
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
jne 0x19814
jmp 0x19819
movq %rax, %rbx
leaq -0xb0(%rbp), %r14
jmp 0x19751
movq %rax, %rbx
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x19746
callq 0x32a0
leaq -0xb0(%rbp), %r14
leaq -0x40(%rbp), %r13
movq -0x50(%rbp), %rdi
cmpq %r13, %rdi
je 0x1975f
callq 0x32a0
movq -0xc0(%rbp), %rdi
cmpq %r14, %rdi
jne 0x19814
jmp 0x19819
movq %rax, %rbx
movq -0xe0(%rbp), %rdi
cmpq %r14, %rdi
je 0x1978d
callq 0x32a0
jmp 0x1978d
movq %rax, %rbx
leaq -0xb0(%rbp), %r12
leaq -0x40(%rbp), %r13
jmp 0x197e8
jmp 0x197c3
jmp 0x197c3
jmp 0x197c3
movq %rax, %rbx
cmpl $0x0, (%r13)
jne 0x197ae
movl %r14d, (%r13)
leaq -0xc0(%rbp), %rdi
callq 0x19df6
jmp 0x19819
jmp 0x197e5
movq %rax, %rbx
jmp 0x197fa
movq %rax, %rbx
jmp 0x19808
movq %rax, %rbx
movq -0xe0(%rbp), %rdi
leaq -0xd0(%rbp), %rax
cmpq %rax, %rdi
je 0x197e8
callq 0x32a0
jmp 0x197e8
movq %rax, %rbx
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x197fa
callq 0x32a0
movq -0x50(%rbp), %rdi
cmpq %r13, %rdi
je 0x19808
callq 0x32a0
movq -0xc0(%rbp), %rdi
cmpq %r12, %rdi
je 0x19819
callq 0x32a0
movq %rbx, %rdi
callq 0x3480