// File: /workspace/github_cpp_makefile_star2_O3/Fohlen[P]cubescript-standalone/command.cpp
// Function: callcommand(ident*, tagval*, int, bool)
static inline void callcommand(ident *id, tagval *args, int numargs, bool lookup = false)
{
    int i = -1, fakeargs = 0;
    bool rep = false;
    for(const char *fmt = id->args; *fmt; fmt++) switch(*fmt)
    {
        case 'i': if(++i >= numargs) { if(rep) break; args[i].setint(0); fakeargs++; } else forceint(args[i]); break;
        case 'b': if(++i >= numargs) { if(rep) break; args[i].setint(INT_MIN); fakeargs++; } else forceint(args[i]); break;
        case 'f': if(++i >= numargs) { if(rep) break; args[i].setfloat(0.0f); fakeargs++; } else forcefloat(args[i]); break;
        case 's': if(++i >= numargs) { if(rep) break; args[i].setstr(newstring("")); fakeargs++; } else forcestr(args[i]); break;
        case 't': if(++i >= numargs) { if(rep) break; args[i].setnull(); fakeargs++; } break;
        case 'e':
            if(++i >= numargs)
            {
                if(rep) break;
                static uint buf[2] = { CODE_START + 0x100, CODE_EXIT };
                args[i].setcode(buf);
                fakeargs++;
            }
            else
            {
                vector<uint> buf;
                buf.reserve(64);
                compilemain(buf, numargs <= i ? "" : args[i].getstr());
                freearg(args[i]);
                args[i].setcode(buf.getbuf()+1);
                buf.disown();
            }
            break;
        case 'r': if(++i >= numargs) { if(rep) break; args[i].setident(dummyident); fakeargs++; } else forceident(args[i]); break;
        case '$': if(++i < numargs) freearg(args[i]); args[i].setident(id); break;
        case 'N': if(++i < numargs) freearg(args[i]); args[i].setint(lookup ? -1 : i-fakeargs); break;
        case 'C': { i = max(i+1, numargs); vector<char> buf; ((comfun1)id->fun)(conc(buf, args, i, true)); goto cleanup; }
        case 'V': i = max(i+1, numargs); ((comfunv)id->fun)(args, i); goto cleanup;
        case '1': case '2': case '3': case '4': if(i+1 < numargs) { fmt -= *fmt-'0'+1; rep = true; } break;
    }
    #define ARG(n) (id->argmask&(1<<n) ? (void *)args[n].s : (void *)&args[n].i)
    #define CALLCOM(n) \
        switch(n) \
        { \
            case 0: ((comfun)id->fun)(); break; \
            case 1: ((comfun1)id->fun)(ARG(0)); break; \
            case 2: ((comfun2)id->fun)(ARG(0), ARG(1)); break; \
            case 3: ((comfun3)id->fun)(ARG(0), ARG(1), ARG(2)); break; \
            case 4: ((comfun4)id->fun)(ARG(0), ARG(1), ARG(2), ARG(3)); break; \
            case 5: ((comfun5)id->fun)(ARG(0), ARG(1), ARG(2), ARG(3), ARG(4)); break; \
            case 6: ((comfun6)id->fun)(ARG(0), ARG(1), ARG(2), ARG(3), ARG(4), ARG(5)); break; \
            case 7: ((comfun7)id->fun)(ARG(0), ARG(1), ARG(2), ARG(3), ARG(4), ARG(5), ARG(6)); break; \
            case 8: ((comfun8)id->fun)(ARG(0), ARG(1), ARG(2), ARG(3), ARG(4), ARG(5), ARG(6), ARG(7)); break; \
            case 9: ((comfun9)id->fun)(ARG(0), ARG(1), ARG(2), ARG(3), ARG(4), ARG(5), ARG(6), ARG(7), ARG(8)); break; \
            case 10: ((comfun10)id->fun)(ARG(0), ARG(1), ARG(2), ARG(3), ARG(4), ARG(5), ARG(6), ARG(7), ARG(8), ARG(9)); break; \
            case 11: ((comfun11)id->fun)(ARG(0), ARG(1), ARG(2), ARG(3), ARG(4), ARG(5), ARG(6), ARG(7), ARG(8), ARG(9), ARG(10)); break; \
            case 12: ((comfun12)id->fun)(ARG(0), ARG(1), ARG(2), ARG(3), ARG(4), ARG(5), ARG(6), ARG(7), ARG(8), ARG(9), ARG(10), ARG(11)); break; \
        }
    ++i;
    CALLCOM(i)
cleanup:
    loopk(i) freearg(args[k]);
    for(; i < numargs; i++) freearg(args[i]);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movl %ecx, -0x64(%rbp)
movl %edx, %ebx
movq %rsi, %r15
movq %rdi, -0x30(%rbp)
movq 0x20(%rdi), %r13
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
movl $0x0, -0x34(%rbp)
movq $0x0, -0x48(%rbp)
movq %rsi, -0x40(%rbp)
movzbl (%r13), %eax
cmpl $0x61, %eax
jle 0x116e4
cmpl $0x71, %eax
jg 0x11714
addl $-0x62, %eax
cmpl $0x7, %eax
ja 0x11baf
leaq 0x64d2(%rip), %rcx      # 0x17b40
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
incl %r12d
cmpl %ebx, %r12d
jge 0x119a4
movslq %r12d, %rax
shlq $0x4, %rax
leaq (%r15,%rax), %r14
movl 0x8(%r15,%rax), %eax
xorl %r15d, %r15d
leal -0x1(%rax), %ecx
cmpl $0x5, %ecx
ja 0x116c1
leaq 0x64e7(%rip), %rdx      # 0x17b8c
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movq (%r14), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x2050
movq %rax, %r15
movl 0x8(%r14), %eax
movq (%r14), %rdi
cmpl $0x5, %eax
je 0x11ade
cmpl $0x3, %eax
jne 0x11aed
testq %rdi, %rdi
jne 0x11ae8
jmp 0x11aed
cmpl $0x42, %eax
jg 0x1175c
leal -0x31(%rax), %ecx
cmpl $0x4, %ecx
jae 0x117a4
leal 0x1(%r12), %ecx
cmpl %ebx, %ecx
jge 0x11baf
subq %rax, %r13
addq $0x2f, %r13
movb $0x1, %al
movq %rax, -0x48(%rbp)
jmp 0x11baf
cmpl $0x72, %eax
je 0x118dc
cmpl $0x73, %eax
je 0x11941
cmpl $0x74, %eax
jne 0x11baf
incl %r12d
cmpl %ebx, %r12d
jl 0x11baf
testb $0x1, -0x48(%rbp)
jne 0x11baf
movslq %r12d, %rax
shlq $0x4, %rax
xorl %ecx, %ecx
movl %ecx, 0x8(%r15,%rax)
movl %ecx, (%r15,%rax)
jmp 0x11a3d
cmpl $0x4e, %eax
jne 0x11a45
incl %r12d
movslq %r12d, %r14
cmpl %ebx, %r12d
jge 0x11a7f
movq %r14, %rax
shlq $0x4, %rax
movq (%r15,%rax), %rdi
movl 0x8(%r15,%rax), %eax
cmpl $0x5, %eax
je 0x11a70
cmpl $0x3, %eax
jne 0x11a7f
testq %rdi, %rdi
jne 0x11a7a
jmp 0x11a7f
cmpl $0x24, %eax
jne 0x11a5c
incl %r12d
movslq %r12d, %r14
cmpl %ebx, %r12d
jge 0x11ab8
movq %r14, %rax
shlq $0x4, %rax
movq (%r15,%rax), %rdi
movl 0x8(%r15,%rax), %eax
cmpl $0x5, %eax
je 0x11aa9
cmpl $0x3, %eax
jne 0x11ab8
testq %rdi, %rdi
jne 0x11ab3
jmp 0x11ab8
incl %r12d
cmpl %ebx, %r12d
jge 0x11961
movslq %r12d, %rdi
shlq $0x4, %rdi
addq %r15, %rdi
callq 0x11542
jmp 0x11baf
incl %r12d
cmpl %ebx, %r12d
jge 0x1197d
movslq %r12d, %rax
shlq $0x4, %rax
leaq (%r15,%rax), %r14
movl 0x8(%r15,%rax), %eax
xorl %r15d, %r15d
leal -0x1(%rax), %ecx
cmpl $0x5, %ecx
ja 0x11856
leaq 0x636a(%rip), %rdx      # 0x17ba4
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movq (%r14), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x2050
movq %rax, %r15
movl 0x8(%r14), %eax
movq (%r14), %rdi
cmpl $0x5, %eax
je 0x11ad2
cmpl $0x3, %eax
jne 0x11aed
testq %rdi, %rdi
jne 0x11adc
jmp 0x11aed
incl %r12d
cmpl %ebx, %r12d
jge 0x119c8
xorps %xmm0, %xmm0
movaps %xmm0, -0x60(%rbp)
leaq -0x60(%rbp), %rdi
movl $0x40, %esi
callq 0x131ba
movslq %r12d, %rax
shlq $0x4, %rax
movq %r15, %rcx
addq %rax, %r15
movl 0x8(%rcx,%rax), %eax
decl %eax
leaq 0x69bb(%rip), %rsi      # 0x1826f
cmpl $0x5, %eax
ja 0x11b63
leaq 0x62b0(%rip), %rcx      # 0x17b74
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
leaq 0x699d(%rip), %rsi      # 0x1826f
jmpq *%rax
movq (%r15), %rsi
jmp 0x11b63
incl %r12d
cmpl %ebx, %r12d
jge 0x119eb
movslq %r12d, %rax
shlq $0x4, %rax
leaq (%r15,%rax), %r14
movl 0x8(%r15,%rax), %eax
addl $-0x3, %eax
cmpl $0x4, %eax
ja 0x11bc9
leaq 0x6255(%rip), %rcx      # 0x17b60
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq (%r14), %rdi
movl $0x20, %esi
callq 0x3e12
movq %rax, %r15
movq (%r14), %rdi
testq %rdi, %rdi
je 0x11931
callq 0x1572b
movl $0x7, 0x8(%r14)
movq %r15, (%r14)
jmp 0x11bab
incl %r12d
cmpl %ebx, %r12d
jge 0x11a12
movslq %r12d, %rdi
shlq $0x4, %rdi
addq %r15, %rdi
callq 0x92fb
jmp 0x11baf
testb $0x1, -0x48(%rbp)
jne 0x11baf
movslq %r12d, %rax
shlq $0x4, %rax
movl $0x2, 0x8(%r15,%rax)
jmp 0x11997
testb $0x1, -0x48(%rbp)
jne 0x11baf
movslq %r12d, %rax
shlq $0x4, %rax
movl $0x1, 0x8(%r15,%rax)
movl $0x0, (%r15,%rax)
jmp 0x11a3d
testb $0x1, -0x48(%rbp)
jne 0x11baf
movslq %r12d, %rax
shlq $0x4, %rax
movl $0x1, 0x8(%r15,%rax)
movl $0x80000000, (%r15,%rax) # imm = 0x80000000
jmp 0x11a3d
testb $0x1, -0x48(%rbp)
jne 0x11baf
movslq %r12d, %rax
shlq $0x4, %rax
movl $0x5, 0x8(%r15,%rax)
leaq 0xd84f(%rip), %rcx      # 0x1f238
jmp 0x11a0c
testb $0x1, -0x48(%rbp)
jne 0x11baf
movslq %r12d, %rax
shlq $0x4, %rax
movq 0xdc8d(%rip), %rcx      # 0x1f690
movl $0x7, 0x8(%r15,%rax)
movq %rcx, (%r15,%rax)
jmp 0x11a3d
testb $0x1, -0x48(%rbp)
jne 0x11baf
movslq %r12d, %r14
shlq $0x4, %r14
movl $0x1, %edi
callq 0x15705
movb $0x0, (%rax)
movl $0x3, 0x8(%r15,%r14)
movq %rax, (%r15,%r14)
incl -0x34(%rbp)
jmp 0x11baf
cmpl $0x43, %eax
je 0x11c05
cmpl $0x56, %eax
jne 0x11baf
jmp 0x11bec
testl %eax, %eax
jne 0x11baf
jmp 0x11ce2
cvttss2si (%r14), %r15d
jmp 0x11aed
cmpl $0x0, -0x4(%rdi)
jne 0x11a7f
addq $-0x4, %rdi
callq 0x1572b
movq %r14, %rax
shlq $0x4, %rax
subl -0x34(%rbp), %r14d
cmpb $0x0, -0x64(%rbp)
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
cmovnel %ecx, %r14d
movl $0x1, 0x8(%r15,%rax)
movl %r14d, (%r15,%rax)
jmp 0x11baf
cmpl $0x0, -0x4(%rdi)
jne 0x11ab8
addq $-0x4, %rdi
callq 0x1572b
shlq $0x4, %r14
movl $0x7, 0x8(%r15,%r14)
movq -0x30(%rbp), %rax
movq %rax, (%r15,%r14)
jmp 0x11baf
cmpl $0x0, -0x4(%rdi)
jne 0x11aed
addq $-0x4, %rdi
jmp 0x11ae8
cmpl $0x0, -0x4(%rdi)
jne 0x11aed
addq $-0x4, %rdi
callq 0x1572b
movl $0x1, 0x8(%r14)
movl %r15d, (%r14)
jmp 0x11bab
movss (%r15), %xmm0
callq 0x4d4c
movq %rax, %rsi
jmp 0x11b63
movl (%r15), %edx
movl 0xdc7f(%rip), %eax      # 0x1f794
incl %eax
andl $0x3, %eax
movl %eax, 0xdc74(%rip)      # 0x1f794
movl %eax, %ecx
shll $0x8, %ecx
leal (%rcx,%rax,4), %eax
leaq 0xdc71(%rip), %rcx      # 0x1f7a0
addq %rcx, %rax
movq %rax, -0x70(%rbp)
leaq -0x70(%rbp), %rdi
leaq 0x6360(%rip), %rsi      # 0x17ea1
xorl %eax, %eax
callq 0x12e1e
movl 0xdc46(%rip), %eax      # 0x1f794
movq %rax, %rcx
shlq $0x8, %rcx
leaq (%rcx,%rax,4), %rsi
leaq 0xdc40(%rip), %rax      # 0x1f7a0
addq %rax, %rsi
leaq -0x60(%rbp), %rdi
movl $0x4, %edx
callq 0x508c
movq (%r15), %rdi
movl 0x8(%r15), %eax
cmpl $0x5, %eax
je 0x11b89
cmpl $0x3, %eax
jne 0x11b98
testq %rdi, %rdi
jne 0x11b93
jmp 0x11b98
cmpl $0x0, -0x4(%rdi)
jne 0x11b98
addq $-0x4, %rdi
callq 0x1572b
movq -0x60(%rbp), %rax
addq $0x4, %rax
movl $0x5, 0x8(%r15)
movq %rax, (%r15)
movq -0x40(%rbp), %r15
incq %r13
jmp 0x11644
movq (%r14), %rdi
cmpl $0x0, -0x4(%rdi)
jne 0x11bc9
addq $-0x4, %rdi
callq 0x1572b
movq 0xdac0(%rip), %rax      # 0x1f690
jmp 0x11bdf
movq (%r14), %rdi
movl $0x20, %esi
callq 0x3e12
movl $0x7, 0x8(%r14)
movq %rax, (%r14)
jmp 0x11baf
incl %r12d
cmpl %ebx, %r12d
cmovlel %ebx, %r12d
movq %r15, %rdi
movl %r12d, %esi
movq -0x30(%rbp), %rax
callq *0x30(%rax)
jmp 0x11c47
incl %r12d
cmpl %ebx, %r12d
cmovlel %ebx, %r12d
xorps %xmm0, %xmm0
leaq -0x60(%rbp), %rdi
movaps %xmm0, (%rdi)
movq -0x30(%rbp), %rax
movq 0x30(%rax), %r14
movq %r15, %rsi
movl %r12d, %edx
callq 0x1227f
movq %rax, %rdi
callq *%r14
movl $0x0, -0x54(%rbp)
movq -0x60(%rbp), %rdi
testq %rdi, %rdi
je 0x11c47
callq 0x1572b
testl %r12d, %r12d
jle 0x11c90
movl %r12d, %r14d
shlq $0x4, %r14
xorl %r15d, %r15d
movq -0x40(%rbp), %rax
movq (%rax,%r15), %rdi
movl 0x8(%rax,%r15), %eax
cmpl $0x5, %eax
je 0x11c74
cmpl $0x3, %eax
jne 0x11c83
testq %rdi, %rdi
jne 0x11c7e
jmp 0x11c83
cmpl $0x0, -0x4(%rdi)
jne 0x11c83
addq $-0x4, %rdi
callq 0x1572b
addq $0x10, %r15
cmpq %r15, %r14
jne 0x11c56
movq -0x40(%rbp), %r15
subl %r12d, %ebx
jle 0x11cd3
movslq %r12d, %rax
shlq $0x4, %rax
leaq (%rax,%r15), %r14
addq $0x8, %r14
movq -0x8(%r14), %rdi
movl (%r14), %eax
cmpl $0x5, %eax
je 0x11cbc
cmpl $0x3, %eax
jne 0x11ccb
testq %rdi, %rdi
jne 0x11cc6
jmp 0x11ccb
cmpl $0x0, -0x4(%rdi)
jne 0x11ccb
addq $-0x4, %rdi
callq 0x1572b
addq $0x10, %r14
decl %ebx
jne 0x11ca4
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
incl %r12d
cmpl $0xc, %r12d
ja 0x11c47
leaq 0x5ec6(%rip), %rax      # 0x17bbc
movslq (%rax,%r12,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movq -0x30(%rbp), %rax
callq *0x30(%rax)
xorl %r12d, %r12d
jmp 0x11c90
movq -0x30(%rbp), %rax
movl 0x28(%rax), %eax
movq %r15, %rdi
testb $0x1, %al
je 0x11d1c
movq (%r15), %rdi
leaq 0x10(%r15), %rsi
testb $0x2, %al
je 0x11d27
movq (%rsi), %rsi
leaq 0x20(%r15), %rdx
testb $0x4, %al
je 0x11d32
movq (%rdx), %rdx
leaq 0x30(%r15), %rcx
testb $0x8, %al
je 0x11d3d
movq (%rcx), %rcx
leaq 0x40(%r15), %r8
testb $0x10, %al
je 0x11d48
movq (%r8), %r8
leaq 0x50(%r15), %r9
testb $0x20, %al
je 0x11d53
movq (%r9), %r9
leaq 0x60(%r15), %r10
testb $0x40, %al
je 0x11d5e
movq (%r10), %r10
leaq 0x70(%r15), %r11
testb %al, %al
jns 0x11d69
movq (%r11), %r11
leaq 0x80(%r15), %r14
btl $0x8, %eax
jae 0x11d79
movq (%r14), %r14
addq $0x90, %r15
btl $0x9, %eax
jae 0x11d89
movq (%r15), %r15
movq -0x30(%rbp), %r12
movq 0x30(%r12), %r12
movq -0x40(%rbp), %r13
addq $0xa0, %r13
btl $0xa, %eax
jae 0x11da7
movq (%r13), %r13
subq $0x8, %rsp
pushq %r13
pushq %r15
pushq %r14
pushq %r11
pushq %r10
callq *%r12
addq $0x30, %rsp
movl $0xb, %r12d
jmp 0x11c4c
movq -0x30(%rbp), %rax
movl 0x28(%rax), %eax
movq %r15, %rdi
testb $0x1, %al
je 0x11dd8
movq (%r15), %rdi
leaq 0x10(%r15), %rsi
testb $0x2, %al
je 0x11de3
movq (%rsi), %rsi
leaq 0x20(%r15), %rdx
testb $0x4, %al
je 0x11dee
movq (%rdx), %rdx
movq -0x30(%rbp), %rcx
movq 0x30(%rcx), %r8
leaq 0x30(%r15), %rcx
testb $0x8, %al
je 0x11e01
movq (%rcx), %rcx
callq *%r8
movl $0x4, %r12d
jmp 0x11c4c
movq -0x30(%rbp), %rax
movl 0x28(%rax), %eax
movq %r15, %rdi
testb $0x1, %al
je 0x11e20
movq (%r15), %rdi
leaq 0x10(%r15), %rsi
testb $0x2, %al
je 0x11e2b
movq (%rsi), %rsi
leaq 0x20(%r15), %rdx
testb $0x4, %al
je 0x11e36
movq (%rdx), %rdx
leaq 0x30(%r15), %rcx
testb $0x8, %al
je 0x11e41
movq (%rcx), %rcx
leaq 0x40(%r15), %r8
testb $0x10, %al
je 0x11e4c
movq (%r8), %r8
leaq 0x50(%r15), %r9
testb $0x20, %al
je 0x11e57
movq (%r9), %r9
leaq 0x60(%r15), %r10
testb $0x40, %al
je 0x11e62
movq (%r10), %r10
leaq 0x70(%r15), %r11
testb %al, %al
jns 0x11e6d
movq (%r11), %r11
leaq 0x80(%r15), %r14
btl $0x8, %eax
jae 0x11e7d
movq (%r14), %r14
addq $0x90, %r15
btl $0x9, %eax
movq %r10, -0x48(%rbp)
jae 0x11e91
movq (%r15), %r15
movq -0x40(%rbp), %r10
leaq 0xa0(%r10), %r12
btl $0xa, %eax
jae 0x11ea6
movq (%r12), %r12
movq -0x30(%rbp), %r10
movq 0x30(%r10), %r13
movq -0x40(%rbp), %r10
addq $0xb0, %r10
btl $0xb, %eax
jae 0x11ec2
movq (%r10), %r10
pushq %r10
pushq %r12
pushq %r15
pushq %r14
pushq %r11
pushq -0x48(%rbp)
callq *%r13
addq $0x30, %rsp
movl $0xc, %r12d
jmp 0x11c4c
movq -0x30(%rbp), %rax
movl 0x28(%rax), %eax
movq %r15, %rdi
testb $0x1, %al
je 0x11ef2
movq (%r15), %rdi
leaq 0x10(%r15), %rsi
testb $0x2, %al
je 0x11efd
movq (%rsi), %rsi
leaq 0x20(%r15), %rdx
testb $0x4, %al
je 0x11f08
movq (%rdx), %rdx
leaq 0x30(%r15), %rcx
testb $0x8, %al
je 0x11f13
movq (%rcx), %rcx
leaq 0x40(%r15), %r8
testb $0x10, %al
je 0x11f1e
movq (%r8), %r8
leaq 0x50(%r15), %r9
testb $0x20, %al
je 0x11f29
movq (%r9), %r9
leaq 0x60(%r15), %r10
testb $0x40, %al
je 0x11f34
movq (%r10), %r10
leaq 0x70(%r15), %r11
testb %al, %al
jns 0x11f3f
movq (%r11), %r11
movq -0x30(%rbp), %r14
movq 0x30(%r14), %r14
addq $0x80, %r15
btl $0x8, %eax
jae 0x11f57
movq (%r15), %r15
subq $0x8, %rsp
pushq %r15
pushq %r11
pushq %r10
callq *%r14
addq $0x20, %rsp
movl $0x9, %r12d
jmp 0x11c4c
movq -0x30(%rbp), %rax
movl 0x28(%rax), %ecx
movq %r15, %rdi
testb $0x1, %cl
je 0x11f85
movq (%r15), %rdi
movq -0x30(%rbp), %rax
movq 0x30(%rax), %rax
leaq 0x10(%r15), %rsi
testb $0x2, %cl
je 0x11f99
movq (%rsi), %rsi
callq *%rax
movl $0x2, %r12d
jmp 0x11c4c
movq -0x30(%rbp), %rax
movl 0x28(%rax), %eax
movq %r15, %rdi
testb $0x1, %al
je 0x11fb7
movq (%r15), %rdi
leaq 0x10(%r15), %rsi
testb $0x2, %al
je 0x11fc2
movq (%rsi), %rsi
movq -0x30(%rbp), %rcx
movq 0x30(%rcx), %rcx
leaq 0x20(%r15), %rdx
testb $0x4, %al
je 0x11fd5
movq (%rdx), %rdx
callq *%rcx
movl $0x3, %r12d
jmp 0x11c4c
movq -0x30(%rbp), %rax
movl 0x28(%rax), %eax
movq %r15, %rdi
testb $0x1, %al
je 0x11ff3
movq (%r15), %rdi
leaq 0x10(%r15), %rsi
testb $0x2, %al
je 0x11ffe
movq (%rsi), %rsi
leaq 0x20(%r15), %rdx
testb $0x4, %al
je 0x12009
movq (%rdx), %rdx
leaq 0x30(%r15), %rcx
testb $0x8, %al
je 0x12014
movq (%rcx), %rcx
leaq 0x40(%r15), %r8
testb $0x10, %al
je 0x1201f
movq (%r8), %r8
leaq 0x50(%r15), %r9
testb $0x20, %al
je 0x1202a
movq (%r9), %r9
movq -0x30(%rbp), %r10
movq 0x30(%r10), %r10
leaq 0x60(%r15), %r11
testb $0x40, %al
je 0x1203d
movq (%r11), %r11
subq $0x8, %rsp
pushq %r11
callq *%r10
addq $0x10, %rsp
movl $0x7, %r12d
jmp 0x11c4c
movq -0x30(%rbp), %rcx
movq 0x30(%rcx), %rax
testb $0x1, 0x28(%rcx)
movq %r15, %rdi
je 0x12069
movq (%r15), %rdi
callq *%rax
movl $0x1, %r12d
jmp 0x11c4c
movq -0x30(%rbp), %rax
movl 0x28(%rax), %eax
movq %r15, %rdi
testb $0x1, %al
je 0x12087
movq (%r15), %rdi
leaq 0x10(%r15), %rsi
testb $0x2, %al
je 0x12092
movq (%rsi), %rsi
leaq 0x20(%r15), %rdx
testb $0x4, %al
je 0x1209d
movq (%rdx), %rdx
leaq 0x30(%r15), %rcx
testb $0x8, %al
je 0x120a8
movq (%rcx), %rcx
movq -0x30(%rbp), %r8
movq 0x30(%r8), %r9
leaq 0x40(%r15), %r8
testb $0x10, %al
je 0x120bb
movq (%r8), %r8
callq *%r9
movl $0x5, %r12d
jmp 0x11c4c
movq -0x30(%rbp), %rax
movl 0x28(%rax), %eax
movq %r15, %rdi
testb $0x1, %al
je 0x120da
movq (%r15), %rdi
leaq 0x10(%r15), %rsi
testb $0x2, %al
je 0x120e5
movq (%rsi), %rsi
leaq 0x20(%r15), %rdx
testb $0x4, %al
je 0x120f0
movq (%rdx), %rdx
leaq 0x30(%r15), %rcx
testb $0x8, %al
je 0x120fb
movq (%rcx), %rcx
leaq 0x40(%r15), %r8
testb $0x10, %al
je 0x12106
movq (%r8), %r8
movq -0x30(%rbp), %r9
movq 0x30(%r9), %r10
leaq 0x50(%r15), %r9
testb $0x20, %al
je 0x12119
movq (%r9), %r9
callq *%r10
movl $0x6, %r12d
jmp 0x11c4c
movq -0x30(%rbp), %rax
movl 0x28(%rax), %eax
movq %r15, %rdi
testb $0x1, %al
je 0x12138
movq (%r15), %rdi
leaq 0x10(%r15), %rsi
testb $0x2, %al
je 0x12143
movq (%rsi), %rsi
leaq 0x20(%r15), %rdx
testb $0x4, %al
je 0x1214e
movq (%rdx), %rdx
leaq 0x30(%r15), %rcx
testb $0x8, %al
je 0x12159
movq (%rcx), %rcx
leaq 0x40(%r15), %r8
testb $0x10, %al
je 0x12164
movq (%r8), %r8
leaq 0x50(%r15), %r9
testb $0x20, %al
je 0x1216f
movq (%r9), %r9
leaq 0x60(%r15), %r10
testb $0x40, %al
je 0x1217a
movq (%r10), %r10
leaq 0x70(%r15), %r11
testb %al, %al
jns 0x12185
movq (%r11), %r11
leaq 0x80(%r15), %r14
btl $0x8, %eax
jae 0x12195
movq (%r14), %r14
movq -0x30(%rbp), %r15
movq 0x30(%r15), %r15
movq -0x40(%rbp), %r12
addq $0x90, %r12
btl $0x9, %eax
jae 0x121b2
movq (%r12), %r12
pushq %r12
pushq %r14
pushq %r11
pushq %r10
callq *%r15
addq $0x20, %rsp
movl $0xa, %r12d
jmp 0x11c4c
movq -0x30(%rbp), %rax
movl 0x28(%rax), %eax
movq %r15, %rdi
testb $0x1, %al
je 0x121dd
movq (%r15), %rdi
leaq 0x10(%r15), %rsi
testb $0x2, %al
je 0x121e8
movq (%rsi), %rsi
leaq 0x20(%r15), %rdx
testb $0x4, %al
je 0x121f3
movq (%rdx), %rdx
leaq 0x30(%r15), %rcx
testb $0x8, %al
je 0x121fe
movq (%rcx), %rcx
leaq 0x40(%r15), %r8
testb $0x10, %al
je 0x12209
movq (%r8), %r8
leaq 0x50(%r15), %r9
testb $0x20, %al
je 0x12214
movq (%r9), %r9
leaq 0x60(%r15), %r10
testb $0x40, %al
je 0x1221f
movq (%r10), %r10
movq -0x30(%rbp), %r11
movq 0x30(%r11), %r11
leaq 0x70(%r15), %r14
testb %al, %al
jns 0x12232
movq (%r14), %r14
pushq %r14
pushq %r10
callq *%r11
addq $0x10, %rsp
movl $0x8, %r12d
jmp 0x11c4c
movq %rax, %rbx
movl $0x0, -0x54(%rbp)
movq -0x60(%rbp), %rdi
testq %rdi, %rdi
je 0x12277
jmp 0x12272
jmp 0x1225f
movq %rax, %rbx
movl $0x0, -0x54(%rbp)
movq -0x60(%rbp), %rdi
testq %rdi, %rdi
je 0x12277
callq 0x1572b
movq %rbx, %rdi
callq 0x23a0