// File: /workspace/github_cpp_makefile_star2_O3/Fohlen[P]cubescript-standalone/command.cpp
// Function: compilestatements(vector<unsigned int>&, char const*&, int, int)
static void compilestatements(vector<uint> &code, const char *&p, int rettype, int brak)
{
    const char *line = p;
    char *idname = NULL;
    int idlen = 0;
    ident *id = NULL;
    int numargs = 0;
    for(;;)
    {
        skipcomments(p);
        idname = NULL;
        bool more = compileword(code, p, VAL_ANY, idname, idlen);
        if(!more) goto endstatement;
        skipcomments(p);
        if(p[0] == '=') switch(p[1]) 
        { 
            case '/': 
                if(p[2] != '/') break;
            case ';': case ' ': case '\t': case '\r': case '\n': case '\0':
                p++;
                if(idname) 
                {
                    id = newident(idname, IDF_UNKNOWN);
                    if(!id || id->type != ID_ALIAS) { compilestr(code, idname, idlen, true); id = NULL; }
                    delete[] idname;
                }
                if(!(more = compilearg(code, p, VAL_ANY))) compilestr(code);
                code.add(id && idname ? (id->index < MAXARGS ? CODE_ALIASARG : CODE_ALIAS)|(id->index<<8) : CODE_ALIASU);
                goto endstatement;
        }
        numargs = 0;
        if(!idname)
        {
        noid:
            while(numargs < MAXARGS && (more = compilearg(code, p, VAL_ANY))) numargs++;
            code.add(CODE_CALLU);
        }
        else
        {
            id = idents.access(idname);
            if(!id) 
            {
                if(!checknumber(idname)) { compilestr(code, idname, idlen); delete[] idname; goto noid; }
                char *end = idname;
                int val = int(strtoul(idname, &end, 0));
                if(*end) compilestr(code, idname, idlen);
                else compileint(code, val);    
                code.add(CODE_RESULT);
            }
            else switch(id->type)
            {
                case ID_ALIAS:
                    while(numargs < MAXARGS && (more = compilearg(code, p, VAL_ANY))) numargs++;
                    code.add((id->index < MAXARGS ? CODE_CALLARG : CODE_CALL)|(id->index<<8));
                    break;
                case ID_COMMAND:
                {
                    int comtype = CODE_COM, fakeargs = 0;
                    bool rep = false;
                    for(const char *fmt = id->args; *fmt; fmt++) switch(*fmt)
                    {
                    case 's': 
                        if(more) more = compilearg(code, p, VAL_STR);
                        if(!more) 
                        {
                            if(rep) break;
                            compilestr(code, NULL, 0, true);
                            fakeargs++;
                        }
                        else if(!fmt[1])
                        {
                            int numconc = 0;
                            while(numargs + numconc < MAXARGS && (more = compilearg(code, p, VAL_STR))) numconc++;
                            if(numconc > 0) code.add(CODE_CONC|RET_STR|((numconc+1)<<8));
                        }
                        numargs++;
                        break;
                    case 'i': if(more) more = compilearg(code, p, VAL_INT); if(!more) { if(rep) break; compileint(code); fakeargs++; } numargs++; break;
                    case 'b': if(more) more = compilearg(code, p, VAL_INT); if(!more) { if(rep) break; compileint(code, INT_MIN); fakeargs++; } numargs++; break;
                    case 'f': if(more) more = compilearg(code, p, VAL_FLOAT); if(!more) { if(rep) break; compilefloat(code); fakeargs++; } numargs++; break; 
                    case 't': if(more) more = compilearg(code, p, VAL_ANY); if(!more) { if(rep) break; compilenull(code); fakeargs++; } numargs++; break;
                    case 'e': if(more) more = compilearg(code, p, VAL_CODE); if(!more) { if(rep) break; compileblock(code); fakeargs++; } numargs++; break;
                    case 'r': if(more) more = compilearg(code, p, VAL_IDENT); if(!more) { if(rep) break; compileident(code); fakeargs++; } numargs++; break;
                    case '$': compileident(code, id); numargs++; break;
                    case 'N': compileint(code, numargs-fakeargs); numargs++; break;
                    case 'C': comtype = CODE_COMC; if(more) while(numargs < MAXARGS && (more = compilearg(code, p, VAL_ANY))) numargs++; numargs = 1; goto endfmt;
                    case 'V': comtype = CODE_COMV; if(more) while(numargs < MAXARGS && (more = compilearg(code, p, VAL_ANY))) numargs++; numargs = 2; goto endfmt;
                    case '1': case '2': case '3': case '4': if(more) { fmt -= *fmt-'0'+1; rep = true; } break;
                    }
                endfmt:
                    code.add(comtype|(rettype < VAL_ANY ? rettype<<CODE_RET : 0)|(id->index<<8));
                    break;
                }
                case ID_LOCAL:
                    if(more) while(numargs < MAXARGS && (more = compilearg(code, p, VAL_IDENT))) numargs++;
                    if(more) while((more = compilearg(code, p, VAL_ANY))) code.add(CODE_POP);
                    code.add(CODE_LOCAL);
                    break;
                case ID_VAR:
                    if(!(more = compilearg(code, p, VAL_INT))) code.add(CODE_PRINT|(id->index<<8));
                    else if(!(id->flags&IDF_HEX) || !(more = compilearg(code, p, VAL_INT))) code.add(CODE_IVAR1|(id->index<<8));
                    else if(!(more = compilearg(code, p, VAL_INT))) code.add(CODE_IVAR2|(id->index<<8));
                    else code.add(CODE_IVAR3|(id->index<<8));
                    break;
                case ID_FVAR:
                    if(!(more = compilearg(code, p, VAL_FLOAT))) code.add(CODE_PRINT|(id->index<<8));
                    else code.add(CODE_FVAR1|(id->index<<8));
                    break;
                case ID_SVAR:
                    if(!(more = compilearg(code, p, VAL_STR))) code.add(CODE_PRINT|(id->index<<8));
                    else 
                    {
                        int numconc = 0;
                        while(numconc+1 < MAXARGS && (more = compilearg(code, p, VAL_ANY))) numconc++;
                        if(numconc > 0) code.add(CODE_CONC|RET_STR|((numconc+1)<<8));
                        code.add(CODE_SVAR1|(id->index<<8));
                    }
                    break;
            }        
            delete[] idname;
        }
    endstatement:
        if(more) while(compilearg(code, p, VAL_ANY)) code.add(CODE_POP); 
        p += strcspn(p, ")];/\n\0");
        int c = *p++;
        switch(c)
        {
            case '\0':
                if(c != brak) debugcodeline(line, "missing \"%c\"", brak);
                p--;
                return;

            case ')':
            case ']':
                if(c == brak) return;
                debugcodeline(line, "unexpected \"%c\"", c); 
                break;

            case '/':
                if(*p == '/') p += strcspn(p, "\n\0");
                goto endstatement;
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
movl %edx, -0x84(%rbp)
movq %rsi, %r15
movq %rdi, %r12
movq (%rsi), %r14
leaq -0x70(%rbp), %rax
movq $0x0, (%rax)
leaq -0x74(%rbp), %rax
movl $0x0, (%rax)
movq %r14, -0x90(%rbp)
movq $0x0, -0x58(%rbp)
movq %rsi, -0x50(%rbp)
movq %r14, %rdi
leaq 0x9f88(%rip), %rsi      # 0x181f5
callq 0x2070
leaq (%r14,%rax), %r13
movq %r13, (%r15)
cmpb $0x2f, (%r14,%rax)
jne 0xe2bc
cmpb $0x2f, 0x1(%r13)
jne 0xe2bc
movq %r13, %rdi
leaq 0x99a8(%rip), %rsi      # 0x17c39
callq 0x2030
movq %rax, %r14
addq %r13, %r14
movq %r14, (%r15)
movq %r14, %rdi
leaq 0x9f4c(%rip), %rsi      # 0x181f5
callq 0x2070
leaq (%r14,%rax), %r13
movq %r13, (%r15)
cmpb $0x2f, (%rax,%r14)
je 0xe280
movq $0x0, -0x70(%rbp)
movq %r12, %rdi
movq %r15, %rsi
movl $0x4, %edx
leaq -0x70(%rbp), %rcx
leaq -0x74(%rbp), %r8
callq 0xfdb6
testb %al, %al
je 0xe344
movl %eax, -0x68(%rbp)
movq (%r15), %r13
movq %r13, %rdi
leaq 0x9f05(%rip), %rsi      # 0x181f5
callq 0x2070
leaq (%rax,%r13), %r14
movq %r14, (%r15)
movb (%r13,%rax), %al
cmpb $0x2f, %al
jne 0xe34c
cmpb $0x2f, 0x1(%r14)
jne 0xe4e4
movq %r14, %rdi
leaq 0x991f(%rip), %rsi      # 0x17c39
callq 0x2030
movq %rax, %r13
addq %r14, %r13
movq %r13, (%r15)
movq %r13, %rdi
leaq 0x9ec3(%rip), %rsi      # 0x181f5
callq 0x2070
leaq (%rax,%r13), %r14
movq %r14, (%r15)
movb (%rax,%r13), %al
jmp 0xe301
xorl %r13d, %r13d
jmp 0xfb0d
cmpb $0x3d, %al
jne 0xe4e4
movzbl 0x1(%r14), %eax
cmpq $0x3b, %rax
ja 0xe4e4
movabsq $0x800000100002601, %rcx # imm = 0x800000100002601
btq %rax, %rcx
jae 0xe4d3
incq %r14
movq %r14, (%r15)
movq -0x70(%rbp), %rdi
testq %rdi, %rdi
leaq -0x30(%rbp), %r14
je 0xe419
movl $0x20, %esi
callq 0x3e12
testq %rax, %rax
je 0xe3a2
cmpl $0x4, (%rax)
je 0xe407
movq -0x70(%rbp), %r14
movslq -0x74(%rbp), %r15
movl %r15d, %eax
shll $0x8, %eax
orl $0x7, %eax
movl %eax, -0x30(%rbp)
movq %r12, %rdi
leaq -0x30(%rbp), %rsi
callq 0x13178
movl %r15d, %edx
sarl $0x2, %edx
movq %r12, %rdi
movq %r14, %rsi
callq 0x13236
movl %r15d, %edx
andl $0x3, %edx
movl $0x0, -0x30(%rbp)
addq %r15, %r14
movq -0x50(%rbp), %r15
subq %rdx, %r14
leaq -0x30(%rbp), %rdi
movq %r14, %rsi
leaq -0x30(%rbp), %r14
callq 0x2130
movq %r12, %rdi
movq %r14, %rsi
callq 0x13178
xorl %eax, %eax
movq %rax, -0x58(%rbp)
movq -0x70(%rbp), %rdi
testq %rdi, %rdi
je 0xe419
callq 0x1572b
movq $0x0, -0x30(%rbp)
movl $0x0, -0x3c(%rbp)
movq %r12, %rdi
movq %r15, %rsi
movl $0x4, %edx
movq %r14, %rcx
leaq -0x3c(%rbp), %r8
callq 0xfdb6
testb %al, %al
je 0xe4b9
movq -0x30(%rbp), %rbx
testq %rbx, %rbx
je 0xe6b8
movslq -0x3c(%rbp), %r13
cmpq $0x3, %r13
jle 0xe67d
movl %r13d, %eax
shll $0x8, %eax
orl $0xc5, %eax
movl %eax, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %r15
movq %r15, %rsi
callq 0x13178
movl %r13d, %edx
shrl $0x2, %edx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x13236
movl %r13d, %edx
andl $0x3, %edx
movl $0x0, -0x38(%rbp)
addq %rbx, %r13
subq %rdx, %r13
movq %r15, %rdi
movq %r13, %rsi
callq 0x2130
movq %r12, %rdi
movq %r15, %rsi
movq -0x50(%rbp), %r15
jmp 0xe6ab
movl $0xc6, -0x30(%rbp)
movq %r12, %rdi
movq %r14, %rsi
callq 0x13178
xorl %r13d, %r13d
jmp 0xe6bb
cmpq $0x2f, %rax
jne 0xe4e4
cmpb $0x2f, 0x2(%r14)
je 0xe377
cmpq $0x0, -0x70(%rbp)
leaq -0x30(%rbp), %r14
je 0xf644
leaq 0x11166(%rip), %rdi     # 0x1f660
leaq -0x70(%rbp), %rsi
callq 0x12ba8
testq %rax, %rax
movq %rax, -0x58(%rbp)
je 0xe59b
movl (%rax), %eax
cmpq $0x5, %rax
movl -0x68(%rbp), %r13d
ja 0xfae2
leaq 0x94ed(%rip), %rcx      # 0x17a14
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq $0x0, -0x30(%rbp)
movq %r12, %rdi
movq %r15, %rsi
movl $0x1, %edx
movq %r14, %rcx
leaq -0x3c(%rbp), %r8
callq 0xfdb6
testb %al, %al
je 0xf374
movq -0x30(%rbp), %r14
testq %r14, %r14
je 0xfa25
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x2050
movq %rax, %r13
addl $0x800000, %eax         # imm = 0x800000
cmpl $0xffffff, %eax         # imm = 0xFFFFFF
ja 0xf9f4
shll $0x8, %r13d
orl $0x46, %r13d
movl %r13d, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %rsi
jmp 0xfa18
movq -0x70(%rbp), %rbx
movsbl (%rbx), %eax
leal -0x30(%rax), %ecx
cmpl $0xa, %ecx
movl -0x68(%rbp), %r13d
jae 0xe640
movq %rbx, -0x30(%rbp)
movq %rbx, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x2050
movq %rax, %r14
movq -0x30(%rbp), %rax
cmpb $0x0, (%rax)
je 0xe6f9
movq -0x70(%rbp), %r13
movslq -0x74(%rbp), %r14
cmpq $0x3, %r14
jle 0xf506
movl %r14d, %eax
shll $0x8, %eax
orl $0xc5, %eax
movl %eax, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %r15
movq %r15, %rsi
callq 0x13178
movl %r14d, %edx
shrl $0x2, %edx
movq %r12, %rdi
movq %r13, %rsi
callq 0x13236
movl %r14d, %edx
andl $0x3, %edx
movl $0x0, -0x38(%rbp)
addq %r14, %r13
movq %r15, %r14
movq -0x50(%rbp), %r15
subq %rdx, %r13
movq %r14, %rdi
movq %r13, %rsi
callq 0x2130
movq %r12, %rdi
jmp 0xf536
movzbl %al, %eax
cmpl $0x2b, %eax
je 0xe65a
cmpl $0x2e, %eax
je 0xf582
cmpl $0x2d, %eax
jne 0xf597
movsbl 0x1(%rbx), %ecx
leal -0x30(%rcx), %eax
cmpl $0xa, %eax
jb 0xe5b2
movl $0x2, %eax
cmpb $0x2e, %cl
je 0xf587
jmp 0xf597
movl $0xc6, %eax
testl %r13d, %r13d
jle 0xe6a1
movl $0x8, %ecx
xorl %edx, %edx
movzbl (%rbx,%rdx), %esi
shll %cl, %esi
incq %rdx
orl %esi, %eax
addl $0x8, %ecx
cmpq %rdx, %r13
jne 0xe68e
movl %eax, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %rsi
callq 0x13178
movq %rbx, %rdi
callq 0x1572b
movb $0x1, %r13b
movl $0x24, %eax
cmpq $0x0, -0x58(%rbp)
je 0xe6e6
cmpq $0x0, -0x70(%rbp)
je 0xe6e6
movq -0x58(%rbp), %rax
movl 0x3c(%rax), %eax
xorl %ecx, %ecx
cmpl $0x19, %eax
setl %cl
shll $0x8, %eax
leal (%rax,%rcx,2), %eax
addl $0x23, %eax
movl %eax, -0x30(%rbp)
movq %r12, %rdi
movq %r14, %rsi
callq 0x13178
jmp 0xfb0d
leal 0x800000(%r14), %eax
cmpl $0xffffff, %eax         # imm = 0xFFFFFF
ja 0xf544
shll $0x8, %r14d
orl $0x46, %r14d
movl %r14d, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %r14
jmp 0xf568
xorl %r15d, %r15d
movq $0x0, -0x30(%rbp)
movl $0x0, -0x3c(%rbp)
movq %r12, %rdi
movq -0x50(%rbp), %rsi
movl $0x4, %edx
movq %r14, %rcx
leaq -0x3c(%rbp), %r8
callq 0xfdb6
testb %al, %al
je 0xf752
movq -0x30(%rbp), %r13
testq %r13, %r13
je 0xe801
movslq -0x3c(%rbp), %r14
cmpq $0x3, %r14
jle 0xe7c0
movl %r14d, %eax
shll $0x8, %eax
orl $0xc5, %eax
movl %eax, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %rbx
movq %rbx, %rsi
callq 0x13178
movl %r14d, %edx
shrl $0x2, %edx
movq %r12, %rdi
movq %r13, %rsi
callq 0x13236
movl %r14d, %edx
andl $0x3, %edx
movl $0x0, -0x38(%rbp)
addq %r13, %r14
subq %rdx, %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x2130
movq %r12, %rdi
movq %rbx, %rsi
jmp 0xe7f0
movl $0xc6, %eax
testl %r14d, %r14d
jle 0xe7e6
movl $0x8, %ecx
xorl %edx, %edx
movzbl (%r13,%rdx), %esi
shll %cl, %esi
incq %rdx
orl %esi, %eax
addl $0x8, %ecx
cmpq %rdx, %r14
jne 0xe7d1
movl %eax, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %rsi
callq 0x13178
movq %r13, %rdi
callq 0x1572b
leaq -0x30(%rbp), %r14
incl %r15d
cmpl $0x19, %r15d
jne 0xe726
movb $0x1, %r13b
jmp 0xf755
movq $0x0, -0x30(%rbp)
movl $0x0, -0x3c(%rbp)
movq %r12, %rdi
movq %r15, %rsi
movl $0x3, %edx
movq %r14, %rcx
leaq -0x3c(%rbp), %r8
callq 0xfdb6
testb %al, %al
je 0xf374
movq -0x30(%rbp), %r14
testq %r14, %r14
je 0xe8ae
movslq -0x3c(%rbp), %r13
movl %r13d, %eax
shll $0x8, %eax
orl $0x7, %eax
movl %eax, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %r15
movq %r15, %rsi
callq 0x13178
movl %r13d, %edx
sarl $0x2, %edx
movq %r12, %rdi
movq %r14, %rsi
callq 0x13236
movl %r13d, %edx
andl $0x3, %edx
movl $0x0, -0x38(%rbp)
addq %r14, %r13
subq %rdx, %r13
movq %r15, %rdi
movq %r13, %rsi
callq 0x2130
movq %r12, %rdi
movq %r15, %rsi
callq 0x13178
movq %r14, %rdi
callq 0x1572b
movb $0x1, %r15b
movl $0x1, %r14d
movq $0x0, -0x30(%rbp)
movl $0x0, -0x3c(%rbp)
movq %r12, %rdi
movq -0x50(%rbp), %rsi
movl $0x4, %edx
leaq -0x30(%rbp), %rcx
leaq -0x3c(%rbp), %r8
callq 0xfdb6
testb %al, %al
je 0xf9a9
movq -0x30(%rbp), %rbx
testq %rbx, %rbx
je 0xe98d
movslq -0x3c(%rbp), %r13
cmpq $0x3, %r13
jle 0xe952
movl %r13d, %eax
shll $0x8, %eax
orl $0xc5, %eax
movl %eax, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %r15
movq %r15, %rsi
callq 0x13178
movl %r13d, %edx
shrl $0x2, %edx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x13236
movl %r13d, %edx
andl $0x3, %edx
movl $0x0, -0x38(%rbp)
addq %rbx, %r13
subq %rdx, %r13
movq %r15, %rdi
movq %r13, %rsi
callq 0x2130
movq %r12, %rdi
movq %r15, %rsi
jmp 0xe980
movl $0xc6, %eax
testl %r13d, %r13d
jle 0xe976
movl $0x8, %ecx
xorl %edx, %edx
movzbl (%rbx,%rdx), %esi
shll %cl, %esi
incq %rdx
orl %esi, %eax
addl $0x8, %ecx
cmpq %rdx, %r13
jne 0xe963
movl %eax, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %rsi
callq 0x13178
movq %rbx, %rdi
callq 0x1572b
leal 0x1(%r14), %eax
xorl %r15d, %r15d
cmpl $0x18, %r14d
movl %eax, %r14d
jne 0xe8b7
movb $0x1, %r13b
movl $0x19, %r14d
leaq -0x30(%rbp), %r15
jmp 0xf9b6
movq -0x58(%rbp), %rax
movq 0x20(%rax), %rdx
xorl %ebx, %ebx
movl $0x0, -0x64(%rbp)
movq $0x0, -0x80(%rbp)
movzbl (%rdx), %eax
cmpl $0x61, %eax
jle 0xea80
cmpl $0x71, %eax
jg 0xeab1
addl $-0x62, %eax
cmpl $0x7, %eax
ja 0xf2fa
leaq 0x9038(%rip), %rcx      # 0x17a2c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
testb $0x1, %r13b
je 0xf243
movq %rdx, -0x60(%rbp)
movq $0x0, -0x30(%rbp)
movq %r12, %rdi
movq %r15, %rsi
movl $0x1, %edx
movq %r14, %rcx
leaq -0x3c(%rbp), %r8
callq 0xfdb6
movl %eax, %r13d
testb %al, %al
je 0xf23b
movq -0x30(%rbp), %r14
testq %r14, %r14
je 0xf23b
movq %rbx, -0x48(%rbp)
movl %r13d, %ebx
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x2050
movq %rax, %r13
addl $0x800000, %eax         # imm = 0x800000
cmpl $0xffffff, %eax         # imm = 0xFFFFFF
ja 0xf203
shll $0x8, %r13d
orl $0x46, %r13d
movl %r13d, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %rsi
jmp 0xf227
cmpl $0x42, %eax
jg 0xec74
leal -0x31(%rax), %ecx
cmpl $0x4, %ecx
jae 0xecb2
testb $0x1, %r13b
je 0xf2fa
subq %rax, %rdx
addq $0x2f, %rdx
movb $0x1, %al
movq %rax, -0x80(%rbp)
jmp 0xf2fa
cmpl $0x72, %eax
je 0xef48
cmpl $0x74, %eax
je 0xeff8
cmpl $0x73, %eax
jne 0xf2fa
testb $0x1, %r13b
je 0xeb8b
movq %rdx, -0x60(%rbp)
movq $0x0, -0x30(%rbp)
movl $0x0, -0x3c(%rbp)
movq %r12, %rdi
movq %r15, %rsi
movl $0x3, %edx
movq %r14, %rcx
leaq -0x3c(%rbp), %r8
callq 0xfdb6
movl %eax, %r13d
testb %al, %al
je 0xeb83
movq -0x30(%rbp), %r14
testq %r14, %r14
je 0xeb83
movq %rbx, -0x48(%rbp)
movl %r13d, %ebx
movslq -0x3c(%rbp), %r13
movl %r13d, %eax
shll $0x8, %eax
orl $0x7, %eax
movl %eax, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %r15
movq %r15, %rsi
callq 0x13178
movl %r13d, %edx
sarl $0x2, %edx
movq %r12, %rdi
movq %r14, %rsi
callq 0x13236
movl %r13d, %edx
andl $0x3, %edx
movl $0x0, -0x38(%rbp)
addq %r14, %r13
subq %rdx, %r13
movq %r15, %rdi
movq %r13, %rsi
movl %ebx, %r13d
movq -0x48(%rbp), %rbx
callq 0x2130
movq %r12, %rdi
movq %r15, %rsi
movq -0x50(%rbp), %r15
callq 0x13178
movq %r14, %rdi
callq 0x1572b
leaq -0x30(%rbp), %r14
movq -0x60(%rbp), %rdx
testb $0x1, %r13b
je 0xf0b8
cmpb $0x0, 0x1(%rdx)
jne 0xf2f8
cmpl $0x18, %ebx
jg 0xf2f8
movq %rdx, -0x60(%rbp)
movl $0x19, %eax
subl %ebx, %eax
movl %eax, -0x68(%rbp)
leal -0x19(%rbx), %eax
movl %eax, -0x48(%rbp)
xorl %r15d, %r15d
movq $0x0, -0x30(%rbp)
movl $0x0, -0x3c(%rbp)
movq %r12, %rdi
movq -0x50(%rbp), %rsi
movl $0x3, %edx
movq %r14, %rcx
leaq -0x3c(%rbp), %r8
callq 0xfdb6
testb %al, %al
je 0xf171
movq -0x30(%rbp), %r14
testq %r14, %r14
je 0xec57
movslq -0x3c(%rbp), %r13
movl %r13d, %eax
shll $0x8, %eax
orl $0x7, %eax
movl %eax, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %rsi
callq 0x13178
movl %r13d, %edx
sarl $0x2, %edx
movq %r12, %rdi
movq %r14, %rsi
callq 0x13236
movl %r13d, %edx
andl $0x3, %edx
movl $0x0, -0x38(%rbp)
addq %r14, %r13
subq %rdx, %r13
leaq -0x38(%rbp), %rdi
movq %r13, %rsi
callq 0x2130
movq %r12, %rdi
leaq -0x38(%rbp), %rsi
callq 0x13178
movq %r14, %rdi
callq 0x1572b
decl %r15d
cmpl %r15d, -0x48(%rbp)
leaq -0x30(%rbp), %r14
jne 0xebbf
movb $0x1, %r13b
movl -0x68(%rbp), %r15d
jmp 0xf17c
cmpl $0x4e, %eax
jne 0xf151
movq %rdx, -0x60(%rbp)
movl %ebx, %r14d
subl -0x64(%rbp), %r14d
leal 0x800000(%r14), %eax
cmpl $0xffffff, %eax         # imm = 0xFFFFFF
ja 0xf110
shll $0x8, %r14d
orl $0x46, %r14d
movl %r14d, -0x30(%rbp)
movq %r12, %rdi
leaq -0x30(%rbp), %r14
jmp 0xf13e
movq %rdx, -0x60(%rbp)
cmpl $0x24, %eax
jne 0xf168
movq -0x58(%rbp), %rax
movl 0x3c(%rax), %eax
xorl %ecx, %ecx
cmpl $0x19, %eax
setl %cl
shll $0x8, %eax
leal (%rax,%rcx,2), %eax
addl $0xd, %eax
movl %eax, -0x30(%rbp)
jmp 0xf13b
testb $0x1, %r13b
je 0xed48
movq %rbx, -0x48(%rbp)
movq %rdx, %rbx
movq $0x0, -0x30(%rbp)
movl $0x0, -0x38(%rbp)
movq %r12, %rdi
movq %r15, %rsi
movl $0x2, %edx
movq %r14, %rcx
leaq -0x38(%rbp), %r8
callq 0xfdb6
movl %eax, %r13d
testb %al, %al
je 0xed3d
movq -0x30(%rbp), %r14
testq %r14, %r14
je 0xed3d
movl -0x38(%rbp), %ecx
movq %r12, %rdi
movl $0x2, %esi
movq %r14, %rdx
callq 0x10f06
movq %r14, %rdi
callq 0x1572b
leaq -0x30(%rbp), %r14
movq %rbx, %rdx
movq -0x48(%rbp), %rbx
testb $0x1, %r13b
jne 0xf2f8
testb $0x1, -0x80(%rbp)
jne 0xf2fa
movl $0x86, -0x30(%rbp)
jmp 0xf2dc
testb $0x1, %r13b
je 0xf1e3
movq %rdx, -0x60(%rbp)
movq $0x0, -0x30(%rbp)
movq %r12, %rdi
movq %r15, %rsi
movl $0x1, %edx
movq %r14, %rcx
leaq -0x3c(%rbp), %r8
callq 0xfdb6
movl %eax, %r13d
testb %al, %al
je 0xf1db
movq -0x30(%rbp), %r14
testq %r14, %r14
je 0xf1db
movq %rbx, -0x48(%rbp)
movl %r13d, %ebx
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x2050
movq %rax, %r13
addl $0x800000, %eax         # imm = 0x800000
cmpl $0xffffff, %eax         # imm = 0xFFFFFF
ja 0xf1a3
shll $0x8, %r13d
orl $0x46, %r13d
movl %r13d, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %rsi
jmp 0xf1c7
testb $0x1, %r13b
je 0xeec3
movq %rdx, -0x60(%rbp)
movq $0x0, -0x38(%rbp)
movq %r12, %rdi
movq %r15, %rsi
movl $0x5, %edx
leaq -0x38(%rbp), %rcx
leaq -0x94(%rbp), %r8
callq 0xfdb6
movl %eax, %r13d
testb %al, %al
je 0xeebb
movq -0x38(%rbp), %r14
testq %r14, %r14
je 0xeebb
movslq 0xc(%r12), %r15
movl $0x9, -0x30(%rbp)
movq %r12, %rdi
movq %rbx, -0x48(%rbp)
movl %r13d, %ebx
leaq -0x30(%rbp), %r13
movq %r13, %rsi
callq 0x13178
movl %r15d, %eax
shll $0x8, %eax
addl $0x201, %eax            # imm = 0x201
movl %eax, -0x30(%rbp)
movq %r12, %rdi
movq %r13, %rsi
callq 0x13178
movq %r14, -0x30(%rbp)
movq %r12, %rdi
movq %r13, %rsi
movl %ebx, %r13d
movq -0x48(%rbp), %rbx
xorl %edx, %edx
callq 0xe21b
movl $0xc4, -0x3c(%rbp)
movq %r12, %rdi
leaq -0x3c(%rbp), %rsi
callq 0x13178
movl %r15d, %eax
notl %eax
addl 0xc(%r12), %eax
shll $0x8, %eax
movq (%r12), %rcx
orl %eax, (%rcx,%r15,4)
movq -0x50(%rbp), %r15
movq %r14, %rdi
callq 0x1572b
leaq -0x30(%rbp), %r14
movq -0x60(%rbp), %rdx
testb $0x1, %r13b
jne 0xf2f8
testb $0x1, -0x80(%rbp)
jne 0xf2fa
movslq 0xc(%r12), %r14
movl $0x9, -0x30(%rbp)
movq %r12, %rdi
leaq -0x30(%rbp), %rsi
movq %rbx, -0x48(%rbp)
movq %rdx, %rbx
callq 0x13178
movl %r14d, %eax
shll $0x8, %eax
addl $0x201, %eax            # imm = 0x201
movl %eax, -0x30(%rbp)
movq %r12, %rdi
leaq -0x30(%rbp), %rsi
callq 0x13178
movl $0x4, -0x30(%rbp)
movq %r12, %rdi
leaq -0x30(%rbp), %rsi
callq 0x13178
movq %rbx, %rdx
movq -0x48(%rbp), %rbx
movl %r14d, %eax
notl %eax
addl 0xc(%r12), %eax
shll $0x8, %eax
movq (%r12), %rcx
orl %eax, (%rcx,%r14,4)
leaq -0x30(%rbp), %r14
jmp 0xf2f5
testb $0x1, %r13b
je 0xefc1
movq %rdx, -0x60(%rbp)
movq $0x0, -0x30(%rbp)
movq %r12, %rdi
movq %r15, %rsi
movl $0x7, %edx
movq %r14, %rcx
leaq -0x3c(%rbp), %r8
callq 0xfdb6
movl %eax, %r13d
testb %al, %al
je 0xefb9
movq -0x30(%rbp), %r14
testq %r14, %r14
je 0xefb9
movq %r14, %rdi
movl $0x20, %esi
callq 0x3e12
movl 0x3c(%rax), %eax
xorl %ecx, %ecx
cmpl $0x19, %eax
setl %cl
shll $0x8, %eax
leal (%rax,%rcx,2), %eax
addl $0xd, %eax
movl %eax, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %rsi
callq 0x13178
movq %r14, %rdi
callq 0x1572b
leaq -0x30(%rbp), %r14
movq -0x60(%rbp), %rdx
testb $0x1, %r13b
jne 0xf2f8
testb $0x1, -0x80(%rbp)
jne 0xf2fa
movq 0x106b4(%rip), %rax     # 0x1f690
movl 0x3c(%rax), %eax
xorl %ecx, %ecx
cmpl $0x19, %eax
setl %cl
shll $0x8, %eax
leal (%rax,%rcx,2), %eax
addl $0xd, %eax
movl %eax, -0x30(%rbp)
jmp 0xf2dc
testb $0x1, %r13b
je 0xf2c9
movq %rdx, -0x60(%rbp)
movq $0x0, -0x30(%rbp)
movl $0x0, -0x3c(%rbp)
movq %r12, %rdi
movq %r15, %rsi
movl $0x4, %edx
movq %r14, %rcx
leaq -0x3c(%rbp), %r8
callq 0xfdb6
movl %eax, %r13d
testb %al, %al
je 0xf2c5
movq -0x30(%rbp), %rdi
testq %rdi, %rdi
je 0xf2c5
movq %rbx, -0x48(%rbp)
movl %r13d, -0x68(%rbp)
movslq -0x3c(%rbp), %r13
cmpq $0x3, %r13
jle 0xf27f
movl %r13d, %eax
shll $0x8, %eax
orl $0xc5, %eax
movl %eax, -0x38(%rbp)
movq %rdi, %rbx
movq %r12, %rdi
leaq -0x38(%rbp), %r15
movq %r15, %rsi
callq 0x13178
movl %r13d, %edx
shrl $0x2, %edx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x13236
movl %r13d, %edx
andl $0x3, %edx
movl $0x0, -0x38(%rbp)
addq %rbx, %r13
subq %rdx, %r13
movq %r15, %rdi
movq %r13, %rsi
callq 0x2130
movq %r12, %rdi
movq %r15, %rsi
movq -0x50(%rbp), %r15
jmp 0xf2b0
testb $0x1, -0x80(%rbp)
jne 0xf2fa
movq %rbx, -0x48(%rbp)
movq %rdx, %rbx
movl $0x7, -0x30(%rbp)
movq %r12, %rdi
movq %r14, %rsi
callq 0x13178
movl 0xc(%r12), %esi
cmpl 0x8(%r12), %esi
jle 0xf0ef
movq %r12, %rdi
callq 0x131ba
movl $0x0, -0x30(%rbp)
movq %r12, %rdi
movq %r14, %rsi
callq 0x13178
incl -0x64(%rbp)
movq %rbx, %rdx
movq -0x48(%rbp), %rbx
jmp 0xf2f8
movl $0x45, -0x30(%rbp)
movq %r12, %rdi
movq %rbx, -0x48(%rbp)
movl %r13d, %ebx
leaq -0x30(%rbp), %r13
movq %r13, %rsi
callq 0x13178
movl %r14d, -0x30(%rbp)
movq %r13, %r14
movl %ebx, %r13d
movq -0x48(%rbp), %rbx
movq %r12, %rdi
movq %r14, %rsi
callq 0x13178
incl %ebx
movq -0x60(%rbp), %rdx
jmp 0xf2fa
cmpl $0x43, %eax
je 0xf89c
cmpl $0x56, %eax
jne 0xf2fa
jmp 0xf799
testl %eax, %eax
jne 0xf148
jmp 0xf99f
xorl %r13d, %r13d
testl %r15d, %r15d
je 0xf196
negl %r15d
shll $0x8, %r15d
addl $0x1d4, %r15d           # imm = 0x1D4
movl %r15d, -0x30(%rbp)
movq %r12, %rdi
movq %r14, %rsi
callq 0x13178
movq -0x50(%rbp), %r15
movq -0x60(%rbp), %rdx
jmp 0xf2f8
movl $0x45, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %r15
movq %r15, %rsi
callq 0x13178
movl %r13d, -0x38(%rbp)
movq %r12, %rdi
movq %r15, %rsi
movq -0x50(%rbp), %r15
callq 0x13178
movq %r14, %rdi
callq 0x1572b
movl %ebx, %r13d
movq -0x48(%rbp), %rbx
leaq -0x30(%rbp), %r14
movq -0x60(%rbp), %rdx
testb $0x1, %r13b
jne 0xf2f8
testb $0x1, -0x80(%rbp)
jne 0xf2fa
movl $0x46, -0x30(%rbp)
jmp 0xf2dc
movl $0x45, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %r15
movq %r15, %rsi
callq 0x13178
movl %r13d, -0x38(%rbp)
movq %r12, %rdi
movq %r15, %rsi
movq -0x50(%rbp), %r15
callq 0x13178
movq %r14, %rdi
callq 0x1572b
movl %ebx, %r13d
movq -0x48(%rbp), %rbx
leaq -0x30(%rbp), %r14
movq -0x60(%rbp), %rdx
testb $0x1, %r13b
jne 0xf2f8
testb $0x1, -0x80(%rbp)
jne 0xf2fa
movl $0x45, -0x30(%rbp)
movq %r12, %rdi
movq %r14, %rsi
movq %rbx, -0x48(%rbp)
movq %rdx, %rbx
callq 0x13178
movl $0x80000000, -0x30(%rbp) # imm = 0x80000000
movq %r12, %rdi
movq %r14, %rsi
jmp 0xf2e9
movl $0xc6, %eax
testl %r13d, %r13d
jle 0xf2a3
movl $0x8, %ecx
xorl %edx, %edx
movzbl (%rdi,%rdx), %esi
shll %cl, %esi
incq %rdx
orl %esi, %eax
addl $0x8, %ecx
cmpq %rdx, %r13
jne 0xf290
movl %eax, -0x38(%rbp)
movq %rdi, %rbx
movq %r12, %rdi
leaq -0x38(%rbp), %rsi
callq 0x13178
movq %rbx, %rdi
callq 0x1572b
movl -0x68(%rbp), %r13d
movq -0x48(%rbp), %rbx
movq -0x60(%rbp), %rdx
testb $0x1, %r13b
jne 0xf2f8
testb $0x1, -0x80(%rbp)
jne 0xf2fa
movl $0x6, -0x30(%rbp)
movq %r12, %rdi
movq %r14, %rsi
movq %rbx, -0x48(%rbp)
movq %rdx, %rbx
callq 0x13178
movq %rbx, %rdx
movq -0x48(%rbp), %rbx
incl -0x64(%rbp)
incl %ebx
incq %rdx
jmp 0xe9cc
movq $0x0, -0x30(%rbp)
movl $0x0, -0x38(%rbp)
movq %r12, %rdi
movq %r15, %rsi
movl $0x2, %edx
movq %r14, %rcx
leaq -0x38(%rbp), %r8
callq 0xfdb6
testb %al, %al
je 0xf374
movq -0x30(%rbp), %r14
testq %r14, %r14
je 0xf350
movl -0x38(%rbp), %ecx
movq %r12, %rdi
movl $0x2, %esi
movq %r14, %rdx
callq 0x10f06
movq %r14, %rdi
callq 0x1572b
movq -0x58(%rbp), %rax
movl 0x3c(%rax), %eax
shll $0x8, %eax
orl $0x1f, %eax
movl %eax, -0x30(%rbp)
movq %r12, %rdi
leaq -0x30(%rbp), %rsi
callq 0x13178
movb $0x1, %r13b
jmp 0xfae2
movq -0x58(%rbp), %rax
movl 0x3c(%rax), %eax
shll $0x8, %eax
orl $0x29, %eax
movl %eax, -0x30(%rbp)
jmp 0xf786
movl $0x19, %r15d
movq $0x0, -0x30(%rbp)
movq %r12, %rdi
movq -0x50(%rbp), %rsi
movl $0x7, %edx
movq %r14, %rcx
leaq -0x3c(%rbp), %r8
callq 0xfdb6
testb %al, %al
je 0xf77b
movq -0x30(%rbp), %r14
testq %r14, %r14
je 0xf3f8
movq %r14, %rdi
movl $0x20, %esi
callq 0x3e12
movl 0x3c(%rax), %eax
xorl %ecx, %ecx
cmpl $0x19, %eax
setl %cl
shll $0x8, %eax
leal (%rax,%rcx,2), %eax
addl $0xd, %eax
movl %eax, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %rsi
callq 0x13178
movq %r14, %rdi
callq 0x1572b
decl %r15d
leaq -0x30(%rbp), %r14
jne 0xf38f
movq $0x0, -0x30(%rbp)
movl $0x0, -0x3c(%rbp)
movq %r12, %rdi
movq -0x50(%rbp), %r15
movq %r15, %rsi
movl $0x4, %edx
movq %r14, %rcx
leaq -0x3c(%rbp), %r8
callq 0xfdb6
testb %al, %al
je 0xf77f
movq -0x30(%rbp), %rbx
testq %rbx, %rbx
je 0xf4dd
movslq -0x3c(%rbp), %r13
cmpq $0x3, %r13
jle 0xf4a2
movl %r13d, %eax
shll $0x8, %eax
orl $0xc5, %eax
movl %eax, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %r15
movq %r15, %rsi
callq 0x13178
movl %r13d, %edx
shrl $0x2, %edx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x13236
movl %r13d, %edx
andl $0x3, %edx
movl $0x0, -0x38(%rbp)
addq %rbx, %r13
subq %rdx, %r13
movq %r15, %rdi
movq %r13, %rsi
callq 0x2130
movq %r12, %rdi
movq %r15, %rsi
movq -0x50(%rbp), %r15
jmp 0xf4d0
movl $0xc6, %eax
testl %r13d, %r13d
jle 0xf4c6
movl $0x8, %ecx
xorl %edx, %edx
movzbl (%rbx,%rdx), %esi
shll %cl, %esi
incq %rdx
orl %esi, %eax
addl $0x8, %ecx
cmpq %rdx, %r13
jne 0xf4b3
movl %eax, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %rsi
callq 0x13178
movq %rbx, %rdi
callq 0x1572b
movl $0x2, -0x30(%rbp)
movq %r12, %rdi
movq %r14, %rsi
callq 0x13178
movq $0x0, -0x30(%rbp)
movl $0x0, -0x3c(%rbp)
movq %r12, %rdi
jmp 0xf417
movl $0xc6, %eax
testl %r14d, %r14d
jle 0xf52c
movl $0x8, %ecx
xorl %edx, %edx
movzbl (%r13,%rdx), %esi
shll %cl, %esi
incq %rdx
orl %esi, %eax
addl $0x8, %ecx
cmpq %rdx, %r14
jne 0xf517
movl %eax, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %r14
movq %r14, %rsi
callq 0x13178
movl -0x68(%rbp), %r13d
jmp 0xf570
movl $0x45, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %r15
movq %r15, %rsi
callq 0x13178
movl %r14d, -0x38(%rbp)
movq %r15, %r14
movq -0x50(%rbp), %r15
movq %r12, %rdi
movq %r14, %rsi
callq 0x13178
movl $0xc, -0x38(%rbp)
movq %r12, %rdi
movq %r14, %rsi
jmp 0xfadd
movl $0x1, %eax
movsbl (%rbx,%rax), %eax
addl $-0x30, %eax
cmpl $0xa, %eax
jb 0xe5b2
movslq -0x74(%rbp), %r14
cmpq $0x3, %r14
jle 0xf5f8
movl %r14d, %eax
shll $0x8, %eax
orl $0xc5, %eax
movl %eax, -0x30(%rbp)
movq %r12, %rdi
leaq -0x30(%rbp), %r13
movq %r13, %rsi
callq 0x13178
movl %r14d, %edx
shrl $0x2, %edx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x13236
movl %r14d, %edx
andl $0x3, %edx
movl $0x0, -0x30(%rbp)
addq %r14, %rbx
movq %r13, %r14
subq %rdx, %rbx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x2130
movq %r12, %rdi
movq %r13, %rsi
jmp 0xf629
movl $0xc6, %eax
testl %r14d, %r14d
jle 0xf61c
movl $0x8, %ecx
xorl %edx, %edx
movzbl (%rbx,%rdx), %esi
shll %cl, %esi
incq %rdx
orl %esi, %eax
addl $0x8, %ecx
cmpq %rdx, %r14
jne 0xf609
movl %eax, -0x30(%rbp)
movq %r12, %rdi
leaq -0x30(%rbp), %r14
movq %r14, %rsi
callq 0x13178
movq -0x70(%rbp), %rdi
testq %rdi, %rdi
je 0xf63c
callq 0x1572b
movq $0x0, -0x58(%rbp)
xorl %r15d, %r15d
movq $0x0, -0x30(%rbp)
movl $0x0, -0x3c(%rbp)
movq %r12, %rdi
movq -0x50(%rbp), %rsi
movl $0x4, %edx
movq %r14, %rcx
leaq -0x3c(%rbp), %r8
callq 0xfdb6
testb %al, %al
je 0xf734
movq -0x30(%rbp), %r13
testq %r13, %r13
je 0xf722
movslq -0x3c(%rbp), %r14
cmpq $0x3, %r14
jle 0xf6e1
movl %r14d, %eax
shll $0x8, %eax
orl $0xc5, %eax
movl %eax, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %rbx
movq %rbx, %rsi
callq 0x13178
movl %r14d, %edx
shrl $0x2, %edx
movq %r12, %rdi
movq %r13, %rsi
callq 0x13236
movl %r14d, %edx
andl $0x3, %edx
movl $0x0, -0x38(%rbp)
addq %r13, %r14
subq %rdx, %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x2130
movq %r12, %rdi
movq %rbx, %rsi
jmp 0xf711
movl $0xc6, %eax
testl %r14d, %r14d
jle 0xf707
movl $0x8, %ecx
xorl %edx, %edx
movzbl (%r13,%rdx), %esi
shll %cl, %esi
incq %rdx
orl %esi, %eax
addl $0x8, %ecx
cmpq %rdx, %r14
jne 0xf6f2
movl %eax, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %rsi
callq 0x13178
movq %r13, %rdi
callq 0x1572b
leaq -0x30(%rbp), %r14
incl %r15d
cmpl $0x19, %r15d
jne 0xf647
movb $0x1, %r13b
jmp 0xf737
xorl %r13d, %r13d
movl $0x27, -0x30(%rbp)
movq %r12, %rdi
movq %r14, %rsi
callq 0x13178
movq -0x50(%rbp), %r15
jmp 0xfb0d
xorl %r13d, %r13d
movq -0x58(%rbp), %rax
movl 0x3c(%rax), %eax
xorl %ecx, %ecx
cmpl $0x19, %eax
setl %cl
shll $0x8, %eax
leal (%rax,%rcx,2), %eax
addl $0x26, %eax
movl %eax, -0x30(%rbp)
movq %r12, %rdi
movq %r14, %rsi
jmp 0xf9e6
movq -0x50(%rbp), %r15
movl $0x2a, -0x30(%rbp)
movq %r12, %rdi
movq %r14, %rsi
callq 0x13178
xorl %r13d, %r13d
jmp 0xfae2
testb $0x1, %r13b
je 0xfab8
cmpl $0x18, %ebx
jg 0xfab8
movq $0x0, -0x30(%rbp)
movl $0x0, -0x3c(%rbp)
movq %r12, %rdi
movq %r15, %rsi
movl $0x4, %edx
leaq -0x30(%rbp), %rcx
leaq -0x3c(%rbp), %r8
callq 0xfdb6
testb %al, %al
je 0xfab5
movq -0x30(%rbp), %r14
testq %r14, %r14
je 0xf886
movslq -0x3c(%rbp), %r13
cmpq $0x3, %r13
jle 0xf84a
movl %r13d, %eax
shll $0x8, %eax
orl $0xc5, %eax
movl %eax, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %r15
movq %r15, %rsi
callq 0x13178
movl %r13d, %edx
shrl $0x2, %edx
movq %r12, %rdi
movq %r14, %rsi
callq 0x13236
movl %r13d, %edx
andl $0x3, %edx
movl $0x0, -0x38(%rbp)
addq %r14, %r13
subq %rdx, %r13
movq %r15, %rdi
movq %r13, %rsi
callq 0x2130
movq %r12, %rdi
movq %r15, %rsi
movq -0x50(%rbp), %r15
jmp 0xf879
movl $0xc6, %eax
testl %r13d, %r13d
jle 0xf86f
movl $0x8, %ecx
xorl %edx, %edx
movzbl (%r14,%rdx), %esi
shll %cl, %esi
incq %rdx
orl %esi, %eax
addl $0x8, %ecx
cmpq %rdx, %r13
jne 0xf85b
movl %eax, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %rsi
callq 0x13178
movq %r14, %rdi
callq 0x1572b
leal 0x1(%rbx), %eax
cmpl $0x18, %ebx
movl %eax, %ebx
jl 0xf7ac
movb $0x1, %r13b
jmp 0xfab8
testb $0x1, %r13b
je 0xfac2
cmpl $0x18, %ebx
jg 0xfac2
movq $0x0, -0x30(%rbp)
movl $0x0, -0x3c(%rbp)
movq %r12, %rdi
movq %r15, %rsi
movl $0x4, %edx
leaq -0x30(%rbp), %rcx
leaq -0x3c(%rbp), %r8
callq 0xfdb6
testb %al, %al
je 0xfabf
movq -0x30(%rbp), %r14
testq %r14, %r14
je 0xf989
movslq -0x3c(%rbp), %r13
cmpq $0x3, %r13
jle 0xf94d
movl %r13d, %eax
shll $0x8, %eax
orl $0xc5, %eax
movl %eax, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %r15
movq %r15, %rsi
callq 0x13178
movl %r13d, %edx
shrl $0x2, %edx
movq %r12, %rdi
movq %r14, %rsi
callq 0x13236
movl %r13d, %edx
andl $0x3, %edx
movl $0x0, -0x38(%rbp)
addq %r14, %r13
subq %rdx, %r13
movq %r15, %rdi
movq %r13, %rsi
callq 0x2130
movq %r12, %rdi
movq %r15, %rsi
movq -0x50(%rbp), %r15
jmp 0xf97c
movl $0xc6, %eax
testl %r13d, %r13d
jle 0xf972
movl $0x8, %ecx
xorl %edx, %edx
movzbl (%r14,%rdx), %esi
shll %cl, %esi
incq %rdx
orl %esi, %eax
addl $0x8, %ecx
cmpq %rdx, %r13
jne 0xf95e
movl %eax, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %rsi
callq 0x13178
movq %r14, %rdi
callq 0x1572b
leal 0x1(%rbx), %eax
cmpl $0x18, %ebx
movl %eax, %ebx
jl 0xf8af
movb $0x1, %r13b
jmp 0xfac2
movl $0x10, %ecx
jmp 0xfac7
xorl %r13d, %r13d
testb $0x1, %r15b
leaq -0x30(%rbp), %r15
jne 0xf9d0
shll $0x8, %r14d
orl $0xd4, %r14d
movl %r14d, -0x30(%rbp)
movq %r12, %rdi
movq %r15, %rsi
callq 0x13178
movq -0x58(%rbp), %rax
movl 0x3c(%rax), %eax
shll $0x8, %eax
orl $0x19, %eax
movl %eax, -0x30(%rbp)
movq %r12, %rdi
movq %r15, %rsi
callq 0x13178
movq -0x50(%rbp), %r15
jmp 0xfae2
movl $0x45, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %r15
movq %r15, %rsi
callq 0x13178
movl %r13d, -0x38(%rbp)
movq %r12, %rdi
movq %r15, %rsi
movq -0x50(%rbp), %r15
callq 0x13178
movq %r14, %rdi
callq 0x1572b
movb $0x1, %r13b
movq -0x58(%rbp), %rax
testb $0x4, 0x38(%rax)
leaq -0x30(%rbp), %r14
je 0xfaa4
movq $0x0, -0x30(%rbp)
movq %r12, %rdi
movq %r15, %rsi
movl $0x1, %edx
movq %r14, %rcx
leaq -0x3c(%rbp), %r8
callq 0xfdb6
testb %al, %al
je 0xfa9d
movq -0x30(%rbp), %r14
testq %r14, %r14
je 0xfcca
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x2050
movq %rax, %r13
addl $0x800000, %eax         # imm = 0x800000
cmpl $0xffffff, %eax         # imm = 0xFFFFFF
ja 0xfc99
shll $0x8, %r13d
orl $0x46, %r13d
movl %r13d, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %rsi
jmp 0xfcbd
xorl %r13d, %r13d
movq -0x58(%rbp), %rax
movl 0x3c(%rax), %eax
shll $0x8, %eax
orl $0x1b, %eax
movl %eax, -0x30(%rbp)
jmp 0xf577
xorl %r13d, %r13d
movl $0x13, %ecx
jmp 0xfac7
xorl %r13d, %r13d
movl $0x12, %ecx
movq -0x58(%rbp), %rax
movl 0x3c(%rax), %eax
shll $0x8, %eax
orl %ecx, %eax
movl %eax, -0x30(%rbp)
movq %r12, %rdi
leaq -0x30(%rbp), %rsi
callq 0x13178
movq -0x70(%rbp), %rdi
testq %rdi, %rdi
je 0xfb0d
callq 0x1572b
jmp 0xfb0d
cmpb $0x2f, (%r14)
jne 0xfb0d
movq %r14, %rdi
leaq 0x8137(%rip), %rsi      # 0x17c39
callq 0x2030
addq %r14, %rax
movq %rax, (%r15)
testb $0x1, %r13b
je 0xfc30
movl %r13d, %ebx
movq $0x0, -0x30(%rbp)
movl $0x0, -0x3c(%rbp)
movq %r12, %rdi
movq %r15, %rsi
movl $0x4, %edx
leaq -0x30(%rbp), %r14
movq %r14, %rcx
leaq -0x3c(%rbp), %r8
callq 0xfdb6
testb %al, %al
je 0xfc2d
movq -0x30(%rbp), %r13
testq %r13, %r13
je 0xfbfc
movslq -0x3c(%rbp), %r14
cmpq $0x3, %r14
jle 0xfbbb
movl %r14d, %eax
shll $0x8, %eax
orl $0xc5, %eax
movl %eax, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %r15
movq %r15, %rsi
callq 0x13178
movl %r14d, %edx
shrl $0x2, %edx
movq %r12, %rdi
movq %r13, %rsi
callq 0x13236
movl %r14d, %edx
andl $0x3, %edx
movl $0x0, -0x38(%rbp)
addq %r13, %r14
subq %rdx, %r14
movq %r15, %rdi
movq %r14, %rsi
callq 0x2130
movq %r12, %rdi
movq %r15, %rsi
movq -0x50(%rbp), %r15
jmp 0xfbeb
movl $0xc6, %eax
testl %r14d, %r14d
jle 0xfbe1
movl $0x8, %ecx
xorl %edx, %edx
movzbl (%r13,%rdx), %esi
shll %cl, %esi
incq %rdx
orl %esi, %eax
addl $0x8, %ecx
cmpq %rdx, %r14
jne 0xfbcc
movl %eax, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %rsi
callq 0x13178
movq %r13, %rdi
callq 0x1572b
leaq -0x30(%rbp), %r14
movl $0x2, -0x30(%rbp)
movq %r12, %rdi
movq %r14, %rsi
callq 0x13178
movq $0x0, -0x30(%rbp)
movl $0x0, -0x3c(%rbp)
movq %r12, %rdi
movq %r15, %rsi
movl $0x4, %edx
jmp 0xfb38
movl %ebx, %r13d
movq (%r15), %r14
movq %r14, %rdi
leaq 0x7ff5(%rip), %rsi      # 0x17c32
callq 0x2030
addq %rax, %r14
incq %r14
movq %r14, (%r15)
movzbl -0x1(%r14), %edx
cmpl $0x2f, %edx
je 0xfaf2
cmpl $0x5d, %edx
je 0xfc70
cmpl $0x29, %edx
je 0xfc70
testl %edx, %edx
je 0xfd7f
jmp 0xe263
cmpl -0x84(%rbp), %edx
je 0xfda7
movq -0x90(%rbp), %rdi
leaq 0x855b(%rip), %rsi      # 0x181e5
xorl %eax, %eax
callq 0x107a6
movq (%r15), %r14
jmp 0xe263
movl $0x45, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %r15
movq %r15, %rsi
callq 0x13178
movl %r13d, -0x38(%rbp)
movq %r12, %rdi
movq %r15, %rsi
movq -0x50(%rbp), %r15
callq 0x13178
movq %r14, %rdi
callq 0x1572b
movq $0x0, -0x30(%rbp)
movq %r12, %rdi
movq %r15, %rsi
movl $0x1, %edx
leaq -0x30(%rbp), %r14
movq %r14, %rcx
leaq -0x3c(%rbp), %r8
callq 0xfdb6
testb %al, %al
je 0xfd2a
movq -0x30(%rbp), %r14
testq %r14, %r14
je 0xfd6d
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x2050
movq %rax, %r13
addl $0x800000, %eax         # imm = 0x800000
cmpl $0xffffff, %eax         # imm = 0xFFFFFF
ja 0xfd3c
shll $0x8, %r13d
orl $0x46, %r13d
movl %r13d, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %rsi
jmp 0xfd60
movq -0x58(%rbp), %rax
movl 0x3c(%rax), %eax
shll $0x8, %eax
orl $0x1c, %eax
jmp 0xf381
movl $0x45, -0x38(%rbp)
movq %r12, %rdi
leaq -0x38(%rbp), %r15
movq %r15, %rsi
callq 0x13178
movl %r13d, -0x38(%rbp)
movq %r12, %rdi
movq %r15, %rsi
movq -0x50(%rbp), %r15
callq 0x13178
movq %r14, %rdi
callq 0x1572b
movq -0x58(%rbp), %rax
movl 0x3c(%rax), %eax
shll $0x8, %eax
orl $0x1d, %eax
jmp 0xf35d
movl -0x84(%rbp), %edx
testl %edx, %edx
je 0xfda1
leaq 0x8448(%rip), %rsi      # 0x181d8
movq -0x90(%rbp), %rdi
xorl %eax, %eax
callq 0x107a6
movq (%r15), %r14
decq %r14
movq %r14, (%r15)
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq