// File: /workspace/github_cpp_makefile_star2_O2/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 $0x58, %rsp
movl %edx, -0x74(%rbp)
movq %rsi, %rbx
movq (%rsi), %rax
movq %rax, -0x80(%rbp)
leaq -0x60(%rbp), %rax
andq $0x0, (%rax)
leaq -0x64(%rbp), %rax
andl $0x0, (%rax)
movq %rdi, %r13
pushq $0x4
popq %r12
leaq -0x48(%rbp), %r15
movq $0x0, -0x40(%rbp)
movq %rbx, %rdi
callq 0xaa0b
andq $0x0, -0x60(%rbp)
movq %r13, %rdi
movq %rbx, %rsi
movl %r12d, %edx
leaq -0x60(%rbp), %rcx
leaq -0x64(%rbp), %r8
callq 0xaa72
testb %al, %al
je 0xa1cc
movq %rbx, %rdi
callq 0xaa0b
movq (%rbx), %rax
cmpb $0x3d, (%rax)
jne 0xa1e8
movzbl 0x1(%rax), %ecx
cmpq $0x3b, %rcx
ja 0xa1e8
movabsq $0x800000100002601, %rdx # imm = 0x800000100002601
btq %rcx, %rdx
jae 0xa1d8
incq %rax
movq %rax, (%rbx)
movq -0x60(%rbp), %rdi
testq %rdi, %rdi
pushq $0x1
popq %r14
je 0xa180
pushq $0x20
popq %rsi
callq 0x3be8
testq %rax, %rax
je 0xa15a
cmpl $0x4, (%rax)
je 0xa16e
movq -0x60(%rbp), %rsi
movl -0x64(%rbp), %edx
movq %r13, %rdi
movl %r14d, %ecx
callq 0xb0b6
xorl %eax, %eax
movq %rax, -0x40(%rbp)
movq -0x60(%rbp), %rdi
testq %rdi, %rdi
je 0xa180
callq 0xf9a8
movq %r13, %rdi
movq %rbx, %rsi
movl %r12d, %edx
callq 0xb17e
movl %eax, -0x2c(%rbp)
testb %al, %al
jne 0xa19d
movq %r13, %rdi
callq 0xb1df
pushq $0x24
popq %rax
movq -0x40(%rbp), %rcx
testq %rcx, %rcx
je 0xa1c4
cmpq $0x0, -0x60(%rbp)
je 0xa1c4
movl 0x3c(%rcx), %eax
xorl %ecx, %ecx
cmpl $0x19, %eax
setl %cl
shll $0x8, %eax
leal (%rax,%rcx,2), %eax
addl $0x23, %eax
movl %eax, -0x48(%rbp)
jmp 0xa337
movl $0x0, -0x2c(%rbp)
jmp 0xa948
cmpq $0x2f, %rcx
jne 0xa1e8
cmpb $0x2f, 0x2(%rax)
je 0xa135
cmpq $0x0, -0x60(%rbp)
je 0xa307
leaq 0xf476(%rip), %rdi      # 0x19670
leaq -0x60(%rbp), %rsi
callq 0xd170
testq %rax, %rax
movq %rax, -0x40(%rbp)
je 0xa29d
movl (%rax), %eax
cmpq $0x5, %rax
ja 0xa808
leaq 0x7329(%rip), %rcx      # 0x1154c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
pushq $0x1
popq %r14
jmpq *%rax
movq %r13, %rdi
movq %rbx, %rsi
movl %r14d, %edx
callq 0xb17e
testb %al, %al
je 0xa76f
movb $0x1, %cl
movq -0x40(%rbp), %rax
testb $0x4, 0x38(%rax)
je 0xa903
movq %r13, %rdi
movq %rbx, %rsi
movl %r14d, %edx
callq 0xb17e
testb %al, %al
je 0xa8fd
movq %r13, %rdi
movq %rbx, %rsi
movl %r14d, %edx
callq 0xb17e
testb %al, %al
je 0xa9c8
movq -0x40(%rbp), %rax
movl 0x3c(%rax), %eax
shll $0x8, %eax
orl $0x1d, %eax
movl %eax, -0x48(%rbp)
movq %r13, %rdi
movq %r15, %rsi
jmp 0xa803
movq -0x60(%rbp), %r14
movq %r14, %rdi
callq 0x3c6c
testb %al, %al
je 0xa2e1
movq %r14, -0x48(%rbp)
movq %r14, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x2060
movq -0x48(%rbp), %rcx
cmpb $0x0, (%rcx)
je 0xa7eb
movq -0x60(%rbp), %rsi
movl -0x64(%rbp), %edx
movq %r13, %rdi
xorl %ecx, %ecx
callq 0xb0b6
jmp 0xa7f5
movl -0x64(%rbp), %edx
movq %r13, %rdi
movq %r14, %rsi
xorl %ecx, %ecx
callq 0xb0b6
movq -0x60(%rbp), %rdi
testq %rdi, %rdi
je 0xa2ff
callq 0xf9a8
movq $0x0, -0x40(%rbp)
pushq $0x1a
popq %r14
decl %r14d
je 0xa32b
movq %r13, %rdi
movq %rbx, %rsi
movl %r12d, %edx
callq 0xb17e
testb %al, %al
jne 0xa30b
movl $0x0, -0x2c(%rbp)
jmp 0xa330
movb $0x1, %al
movl %eax, -0x2c(%rbp)
movl $0x27, -0x48(%rbp)
movq %r13, %rdi
movq %r15, %rsi
callq 0xd7c0
jmp 0xa948
pushq $0x1a
popq %r14
decl %r14d
je 0xa812
movq %r13, %rdi
movq %rbx, %rsi
movl %r12d, %edx
callq 0xb17e
testb %al, %al
jne 0xa34b
movl $0x0, -0x2c(%rbp)
jmp 0xa817
movq %r13, %rdi
movq %rbx, %rsi
pushq $0x3
popq %rdx
callq 0xb17e
testb %al, %al
je 0xa76f
xorl %r14d, %r14d
cmpl $0x18, %r14d
je 0xa8cb
incl %r14d
movq %r13, %rdi
movq %rbx, %rsi
movl %r12d, %edx
callq 0xb17e
testb %al, %al
jne 0xa38b
movl $0x0, -0x2c(%rbp)
cmpl $0x1, %r14d
jne 0xa8d4
jmp 0xa8ee
movq -0x40(%rbp), %rax
movq 0x20(%rax), %rsi
xorl %r14d, %r14d
movb $0x1, %dil
movl $0x0, -0x54(%rbp)
movq $0x0, -0x70(%rbp)
movzbl (%rsi), %eax
leal -0x31(%rax), %ecx
cmpl $0x4, %ecx
jb 0xa499
leal -0x62(%rax), %ecx
cmpl $0x7, %ecx
jbe 0xa440
cmpl $0x24, %eax
je 0xa602
cmpl $0x4e, %eax
je 0xa5e0
cmpl $0x72, %eax
je 0xa595
cmpl $0x73, %eax
je 0xa670
cmpl $0x74, %eax
je 0xa627
testl %eax, %eax
je 0xa873
cmpl $0x43, %eax
je 0xa87c
cmpl $0x56, %eax
jne 0xa70b
jmp 0xa834
leaq 0x711d(%rip), %rdx      # 0x11564
movslq (%rdx,%rcx,4), %rax
addq %rdx, %rax
jmpq *%rax
testb $0x1, %dil
je 0xa46e
movq %r13, %rdi
movq %rsi, -0x50(%rbp)
movq %rbx, %rsi
pushq $0x1
popq %rdx
callq 0xb17e
movq -0x50(%rbp), %rsi
movl %eax, %edi
testb $0x1, %dil
jne 0xa708
testb $0x1, -0x70(%rbp)
jne 0xa70b
movq %r14, -0x38(%rbp)
movl %edi, -0x2c(%rbp)
movq %r13, %rdi
movq %rsi, %r14
movl $0x80000000, %esi       # imm = 0x80000000
jmp 0xa53f
testb $0x1, %dil
je 0xa70b
subq %rax, %rsi
addq $0x2f, %rsi
movb $0x1, %al
movq %rax, -0x70(%rbp)
jmp 0xa70b
testb $0x1, %dil
je 0xa4d3
movq %r13, %rdi
movq %rsi, -0x50(%rbp)
movq %rbx, %rsi
pushq $0x5
popq %rdx
callq 0xb17e
movq -0x50(%rbp), %rsi
movl %eax, %edi
testb $0x1, %dil
jne 0xa708
testb $0x1, -0x70(%rbp)
jne 0xa70b
movq %r14, -0x38(%rbp)
movl %edi, -0x2c(%rbp)
movq %r13, %rdi
movq %rsi, %r14
callq 0xb270
jmp 0xa6fb
testb $0x1, %dil
je 0xa51c
movq %r13, %rdi
movq %rsi, -0x50(%rbp)
movq %rbx, %rsi
pushq $0x1
popq %rdx
callq 0xb17e
movq -0x50(%rbp), %rsi
movl %eax, %edi
testb $0x1, %dil
jne 0xa708
testb $0x1, -0x70(%rbp)
jne 0xa70b
movq %r14, -0x38(%rbp)
movl %edi, -0x2c(%rbp)
movq %r13, %rdi
movq %rsi, %r14
xorl %esi, %esi
callq 0xb1fc
jmp 0xa6fb
testb $0x1, %dil
je 0xa567
movq %r13, %rdi
movq %rsi, -0x50(%rbp)
movq %rbx, %rsi
pushq $0x2
popq %rdx
callq 0xb17e
movq -0x50(%rbp), %rsi
movl %eax, %edi
testb $0x1, %dil
jne 0xa708
testb $0x1, -0x70(%rbp)
jne 0xa70b
xorps %xmm0, %xmm0
movq %r14, -0x38(%rbp)
movl %edi, -0x2c(%rbp)
movq %r13, %rdi
movq %rsi, %r14
callq 0xbc5f
jmp 0xa6fb
testb $0x1, %dil
je 0xa5b3
movq %r13, %rdi
movq %rsi, -0x50(%rbp)
movq %rbx, %rsi
pushq $0x7
popq %rdx
callq 0xb17e
movq -0x50(%rbp), %rsi
movl %eax, %edi
testb $0x1, %dil
jne 0xa708
testb $0x1, -0x70(%rbp)
jne 0xa70b
movq %r14, -0x38(%rbp)
movl %edi, -0x2c(%rbp)
movq %r13, %rdi
movq %rsi, %r14
xorl %esi, %esi
callq 0xb2d7
jmp 0xa6fb
movq %rsi, -0x50(%rbp)
movl %r14d, %esi
subl -0x54(%rbp), %esi
movq %r14, -0x38(%rbp)
movl %edi, %r14d
movq %r13, %rdi
callq 0xb1fc
movq -0x50(%rbp), %rsi
movl %r14d, %edi
jmp 0xa61e
movq %r14, -0x38(%rbp)
movl %edi, -0x2c(%rbp)
movq %r13, %rdi
movq %rsi, %r14
movq -0x40(%rbp), %rsi
callq 0xb309
movq %r14, %rsi
movl -0x2c(%rbp), %edi
movq -0x38(%rbp), %r14
jmp 0xa708
testb $0x1, %dil
je 0xa645
movq %r13, %rdi
movq %rsi, -0x50(%rbp)
movq %rbx, %rsi
movl %r12d, %edx
callq 0xb17e
movq -0x50(%rbp), %rsi
movl %eax, %edi
testb $0x1, %dil
jne 0xa708
testb $0x1, -0x70(%rbp)
jne 0xa70b
movq %r14, -0x38(%rbp)
movl %edi, -0x2c(%rbp)
movq %r13, %rdi
movq %rsi, %r14
callq 0xb253
jmp 0xa6fb
testb $0x1, %dil
je 0xa68e
movq %r13, %rdi
movq %rsi, -0x50(%rbp)
movq %rbx, %rsi
pushq $0x3
popq %rdx
callq 0xb17e
movq -0x50(%rbp), %rsi
movl %eax, %edi
testb $0x1, %dil
je 0xa6dc
cmpb $0x0, 0x1(%rsi)
jne 0xa708
movq %r14, -0x38(%rbp)
xorl %r15d, %r15d
movl $0x1d4, %r14d           # imm = 0x1D4
movq %rsi, -0x50(%rbp)
movq -0x38(%rbp), %rax
addl %r15d, %eax
cmpl $0x18, %eax
jg 0xa719
movq %r13, %rdi
movq %rbx, %rsi
pushq $0x3
popq %rdx
callq 0xb17e
testb %al, %al
je 0xa713
incl %r15d
addl $0x100, %r14d           # imm = 0x100
movb $0x1, %dil
movq -0x50(%rbp), %rsi
jmp 0xa6ab
testb $0x1, -0x70(%rbp)
jne 0xa70b
movq %r14, -0x38(%rbp)
movl %edi, -0x2c(%rbp)
movq %r13, %rdi
movq %rsi, %r14
xorl %esi, %esi
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0xb0b6
movq %r14, %rsi
movl -0x2c(%rbp), %edi
movq -0x38(%rbp), %r14
incl -0x54(%rbp)
incl %r14d
incq %rsi
jmp 0xa3dd
xorl %edi, %edi
movq -0x50(%rbp), %rsi
testl %r15d, %r15d
je 0xa73c
movl %r14d, -0x48(%rbp)
movl %edi, -0x2c(%rbp)
movq %r13, %rdi
movq %rsi, %r14
leaq -0x48(%rbp), %r15
movq %r15, %rsi
callq 0xd7c0
jmp 0xa618
movq -0x38(%rbp), %r14
leaq -0x48(%rbp), %r15
jmp 0xa708
movb $0x1, %al
movl %eax, -0x2c(%rbp)
movq %r13, %rdi
movq %rbx, %rsi
pushq $0x2
popq %rdx
callq 0xb17e
testb %al, %al
je 0xa76f
movq -0x40(%rbp), %rax
movl 0x3c(%rax), %eax
shll $0x8, %eax
orl $0x1f, %eax
jmp 0xa90f
movq -0x40(%rbp), %rax
movl 0x3c(%rax), %eax
shll $0x8, %eax
orl $0x29, %eax
movl %eax, -0x48(%rbp)
jmp 0xa7d4
xorl %r14d, %r14d
movq %r13, %rdi
movq %rbx, %rsi
pushq $0x7
popq %rdx
callq 0xb17e
testb %al, %al
je 0xa7a3
leal 0x1(%r14), %ecx
cmpl $0x18, %r14d
movl %ecx, %r14d
jb 0xa784
testb %al, %al
je 0xa7cd
movq %r13, %rdi
movq %rbx, %rsi
movl %r12d, %edx
callq 0xb17e
testb %al, %al
je 0xa7cd
movl $0x2, -0x48(%rbp)
movq %r13, %rdi
movq %r15, %rsi
callq 0xd7c0
jmp 0xa7a7
movl $0x2a, -0x48(%rbp)
movq %r13, %rdi
movq %r15, %rsi
callq 0xd7c0
movl $0x0, -0x2c(%rbp)
jmp 0xa91d
movq %r13, %rdi
movl %eax, %esi
callq 0xb1fc
movl $0xc, -0x78(%rbp)
movq %r13, %rdi
leaq -0x78(%rbp), %rsi
callq 0xd7c0
movb $0x1, %al
movl %eax, -0x2c(%rbp)
jmp 0xa91d
movb $0x1, %al
movl %eax, -0x2c(%rbp)
movq -0x40(%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
jmp 0xa90f
pushq $0x13
popq %rax
testb $0x1, %dil
je 0xa876
movq %r14, -0x38(%rbp)
cmpl $0x18, %r14d
movq -0x40(%rbp), %r14
jg 0xa8ba
movq %r13, %rdi
movq %rbx, %rsi
movl %r12d, %edx
callq 0xb17e
movl %eax, %edi
testb %al, %al
je 0xa86f
movq -0x38(%rbp), %rcx
leal 0x1(%rcx), %eax
cmpl $0x18, %ecx
movq %rax, -0x38(%rbp)
jl 0xa84b
pushq $0x13
jmp 0xa8b9
pushq $0x10
popq %rax
movq -0x40(%rbp), %r14
jmp 0xa8ba
movq %r14, -0x38(%rbp)
testb $0x1, %dil
movq -0x40(%rbp), %r14
je 0xa8b7
pushq $0x12
popq %rax
cmpl $0x18, -0x38(%rbp)
jg 0xa8ba
movq %r13, %rdi
movq %rbx, %rsi
movl %r12d, %edx
callq 0xb17e
movl %eax, %edi
testb %al, %al
je 0xa8b7
movq -0x38(%rbp), %rcx
leal 0x1(%rcx), %eax
cmpl $0x18, %ecx
movq %rax, -0x38(%rbp)
jl 0xa893
pushq $0x12
popq %rax
movl %edi, -0x2c(%rbp)
movl 0x3c(%r14), %ecx
shll $0x8, %ecx
orl %eax, %ecx
movl %ecx, -0x48(%rbp)
jmp 0xa912
movb $0x1, %al
movl %eax, -0x2c(%rbp)
pushq $0x19
popq %r14
shll $0x8, %r14d
orl $0xd4, %r14d
movl %r14d, -0x48(%rbp)
movq %r13, %rdi
movq %r15, %rsi
callq 0xd7c0
movq -0x40(%rbp), %rax
movl 0x3c(%rax), %eax
shll $0x8, %eax
orl $0x19, %eax
jmp 0xa90f
xorl %ecx, %ecx
movq -0x40(%rbp), %rax
movl %ecx, -0x2c(%rbp)
movl 0x3c(%rax), %eax
shll $0x8, %eax
orl $0x1b, %eax
movl %eax, -0x48(%rbp)
movq %r13, %rdi
movq %r15, %rsi
callq 0xd7c0
movq -0x60(%rbp), %rdi
testq %rdi, %rdi
je 0xa948
callq 0xf9a8
jmp 0xa948
cmpb $0x2f, (%r14)
jne 0xa948
movq %r14, %rdi
leaq 0x6df0(%rip), %rsi      # 0x1172d
callq 0x2030
addq %r14, %rax
movq %rax, (%rbx)
testb $0x1, -0x2c(%rbp)
je 0xa974
movq %r13, %rdi
movq %rbx, %rsi
movl %r12d, %edx
callq 0xb17e
testb %al, %al
je 0xa974
movl $0x2, -0x48(%rbp)
movq %r13, %rdi
movq %r15, %rsi
callq 0xd7c0
jmp 0xa94e
movq (%rbx), %r14
movq %r14, %rdi
leaq 0x6da5(%rip), %rsi      # 0x11726
callq 0x2030
addq %rax, %r14
incq %r14
movq %r14, (%rbx)
movzbl -0x1(%r14), %edx
cmpl $0x2f, %edx
je 0xa92d
cmpl $0x5d, %edx
je 0xa9ac
cmpl $0x29, %edx
je 0xa9ac
testl %edx, %edx
je 0xa9da
jmp 0xa0d4
cmpl -0x74(%rbp), %edx
je 0xa9fc
movq -0x80(%rbp), %rdi
leaq 0x72c9(%rip), %rsi      # 0x11c85
xorl %eax, %eax
callq 0xb336
jmp 0xa0d4
movq -0x40(%rbp), %rax
movl 0x3c(%rax), %eax
shll $0x8, %eax
orl $0x1c, %eax
jmp 0xa77c
movl -0x74(%rbp), %edx
testl %edx, %edx
je 0xa9f6
leaq 0x7290(%rip), %rsi      # 0x11c78
movq -0x80(%rbp), %rdi
xorl %eax, %eax
callq 0xb336
movq (%rbx), %r14
decq %r14
movq %r14, (%rbx)
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq