// File: /workspace/github_cpp_makefile_star2_O2/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 $0x58, %rsp
movl %ecx, -0x44(%rbp)
movq %rsi, %rbx
movq %rdi, -0x30(%rbp)
movq 0x20(%rdi), %r15
movl $0x0, -0x40(%rbp)
pushq $-0x1
popq %rax
movl %eax, %r13d
xorl %r14d, %r14d
movl %edx, -0x34(%rbp)
movzbl (%r15), %eax
leal -0x31(%rax), %ecx
cmpl $0x4, %ecx
jb 0xbf75
leal -0x62(%rax), %ecx
cmpl $0x7, %ecx
jbe 0xbf34
cmpl $0x24, %eax
je 0xc0b7
cmpl $0x4e, %eax
je 0xc073
cmpl $0x72, %eax
je 0xc053
cmpl $0x73, %eax
je 0xc119
cmpl $0x74, %eax
je 0xc0ee
testl %eax, %eax
je 0xc1fa
cmpl $0x43, %eax
je 0xc222
cmpl $0x56, %eax
jne 0xc1d3
jmp 0xc1db
leaq 0x5725(%rip), %rsi      # 0x11660
movslq (%rsi,%rcx,4), %rax
addq %rsi, %rax
jmpq *%rax
incl %r13d
movslq %r13d, %rdi
cmpl %edx, %r13d
jl 0xc022
testb $0x1, %r14b
jne 0xc1d3
shlq $0x4, %rdi
movl $0x1, 0x8(%rbx,%rdi)
movl $0x80000000, (%rbx,%rdi) # imm = 0x80000000
jmp 0xc1d0
leal 0x1(%r13), %ecx
cmpl %edx, %ecx
jge 0xc1d3
subq %rax, %r15
addq $0x2f, %r15
movb $0x1, %r14b
jmp 0xc1d3
incl %r13d
movslq %r13d, %r12
cmpl %edx, %r13d
jge 0xc13f
movl %r14d, -0x48(%rbp)
xorps %xmm0, %xmm0
movaps %xmm0, -0x60(%rbp)
leaq -0x80(%rbp), %rdi
leaq -0x60(%rbp), %rsi
pushq $0x40
popq %rdx
callq 0xd1d6
shlq $0x4, %r12
addq %rbx, %r12
movq %r12, %rdi
callq 0xd32c
leaq -0x60(%rbp), %r14
movq %r14, %rdi
movq %rax, %rsi
pushq $0x4
popq %rdx
callq 0x490b
movq %r12, %rdi
callq 0x3745
movq -0x60(%rbp), %rax
addq $0x4, %rax
movl $0x5, 0x8(%r12)
movq %rax, (%r12)
xorps %xmm0, %xmm0
movaps %xmm0, -0x60(%rbp)
movq %r14, %rdi
callq 0xd228
movl -0x34(%rbp), %edx
movl -0x48(%rbp), %r14d
jmp 0xc1d3
incl %r13d
movslq %r13d, %rdi
cmpl %edx, %r13d
jge 0xc15f
shlq $0x4, %rdi
addq %rbx, %rdi
callq 0xbda6
jmp 0xc137
incl %r13d
movslq %r13d, %rdi
cmpl %edx, %r13d
jge 0xc173
shlq $0x4, %rdi
addq %rbx, %rdi
callq 0xbdfe
jmp 0xc137
incl %r13d
movslq %r13d, %rdi
cmpl %edx, %r13d
jge 0xc18b
shlq $0x4, %rdi
addq %rbx, %rdi
callq 0xc8dd
jmp 0xc137
incl %r13d
movslq %r13d, %r12
cmpl %edx, %r13d
jge 0xc090
movq %r12, %rdi
shlq $0x4, %rdi
addq %rbx, %rdi
callq 0x3745
movl -0x34(%rbp), %edx
movq %r12, %rax
shlq $0x4, %rax
subl -0x40(%rbp), %r12d
cmpb $0x0, -0x44(%rbp)
pushq $-0x1
popq %rcx
cmovnel %ecx, %r12d
movl $0x1, 0x8(%rbx,%rax)
movl %r12d, (%rbx,%rax)
jmp 0xc1d3
incl %r13d
movslq %r13d, %r12
cmpl %edx, %r13d
jge 0xc0d4
movq %r12, %rdi
shlq $0x4, %rdi
addq %rbx, %rdi
callq 0x3745
movl -0x34(%rbp), %edx
shlq $0x4, %r12
movl $0x7, 0x8(%rbx,%r12)
movq -0x30(%rbp), %rax
movq %rax, (%rbx,%r12)
jmp 0xc1d3
incl %r13d
cmpl %edx, %r13d
jl 0xc1d3
testb $0x1, %r14b
jne 0xc1d3
movslq %r13d, %rax
shlq $0x4, %rax
andl $0x0, 0x8(%rbx,%rax)
andl $0x0, (%rbx,%rax)
jmp 0xc1d0
incl %r13d
movslq %r13d, %r12
cmpl %edx, %r13d
jge 0xc1aa
shlq $0x4, %r12
addq %rbx, %r12
movq %r12, %rdi
callq 0x6e6b
movl -0x34(%rbp), %edx
jmp 0xc1d3
testb $0x1, %r14b
jne 0xc1d3
shlq $0x4, %r12
movl $0x5, 0x8(%rbx,%r12)
leaq 0xd0f3(%rip), %rax      # 0x19250
jmp 0xc1cc
testb $0x1, %r14b
jne 0xc1d3
shlq $0x4, %rdi
movl $0x1, 0x8(%rbx,%rdi)
jmp 0xc185
testb $0x1, %r14b
jne 0xc1d3
shlq $0x4, %rdi
movl $0x2, 0x8(%rbx,%rdi)
andl $0x0, (%rbx,%rdi)
jmp 0xc1d0
testb $0x1, %r14b
jne 0xc1d3
shlq $0x4, %rdi
movq 0xd504(%rip), %rax      # 0x196a0
movl $0x7, 0x8(%rbx,%rdi)
movq %rax, (%rbx,%rdi)
jmp 0xc1d0
testb $0x1, %r14b
jne 0xc1d3
shlq $0x4, %r12
leaq 0x5b54(%rip), %rdi      # 0x11d0f
callq 0xd0ec
movl -0x34(%rbp), %edx
movl $0x3, 0x8(%rbx,%r12)
movq %rax, (%rbx,%r12)
incl -0x40(%rbp)
incq %r15
jmp 0xbed0
incl %r13d
cmpl %edx, %r13d
cmovlel %edx, %r13d
movq %rbx, %rdi
movl %r13d, %esi
movq -0x30(%rbp), %rax
callq *0x30(%rax)
movl %r13d, %r12d
jmp 0xc758
incl %r13d
cmpl $0xc, %r13d
ja 0xc1f2
leaq 0x5476(%rip), %rax      # 0x11680
movslq (%rax,%r13,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movq -0x30(%rbp), %rax
callq *0x30(%rax)
xorl %r12d, %r12d
jmp 0xc758
incl %r13d
cmpl %edx, %r13d
movl %r13d, %r12d
cmovlel %edx, %r12d
xorps %xmm0, %xmm0
leaq -0x80(%rbp), %rdi
movaps %xmm0, (%rdi)
movq -0x30(%rbp), %rax
movq 0x30(%rax), %r14
movq %rbx, %rsi
movl %r12d, %edx
callq 0xc7f5
movq %rax, %rdi
callq *%r14
leaq -0x80(%rbp), %rdi
callq 0x36e0
jmp 0xc758
movq -0x30(%rbp), %rax
movl 0x28(%rax), %eax
movq %rbx, %rdi
testb $0x1, %al
je 0xc271
movq (%rbx), %rdi
leaq 0x10(%rbx), %rsi
testb $0x2, %al
je 0xc27c
movq (%rsi), %rsi
leaq 0x20(%rbx), %rdx
testb $0x4, %al
je 0xc287
movq (%rdx), %rdx
leaq 0x30(%rbx), %rcx
testb $0x8, %al
je 0xc292
movq (%rcx), %rcx
leaq 0x40(%rbx), %r8
testb $0x10, %al
je 0xc29d
movq (%r8), %r8
leaq 0x50(%rbx), %r9
testb $0x20, %al
je 0xc2a8
movq (%r9), %r9
leaq 0x60(%rbx), %r10
testb $0x40, %al
je 0xc2b3
movq (%r10), %r10
leaq 0x70(%rbx), %r11
testb %al, %al
jns 0xc2be
movq (%r11), %r11
leaq 0x80(%rbx), %r14
btl $0x8, %eax
jae 0xc2ce
movq (%r14), %r14
leaq 0x90(%rbx), %r15
btl $0x9, %eax
jae 0xc2de
movq (%r15), %r15
movq -0x30(%rbp), %r12
movq 0x30(%r12), %r12
leaq 0xa0(%rbx), %r13
btl $0xa, %eax
jae 0xc2f8
movq (%r13), %r13
subq $0x8, %rsp
pushq %r13
pushq %r15
pushq %r14
pushq %r11
pushq %r10
callq *%r12
addq $0x30, %rsp
pushq $0xb
jmp 0xc756
movq -0x30(%rbp), %rax
movl 0x28(%rax), %eax
movq %rbx, %rdi
testb $0x1, %al
je 0xc325
movq (%rbx), %rdi
leaq 0x10(%rbx), %rsi
testb $0x2, %al
pushq $0x4
popq %r12
je 0xc334
movq (%rsi), %rsi
leaq 0x20(%rbx), %rdx
testb $0x4, %al
je 0xc33f
movq (%rdx), %rdx
movq -0x30(%rbp), %rcx
movq 0x30(%rcx), %r8
leaq 0x30(%rbx), %rcx
testb $0x8, %al
je 0xc352
movq (%rcx), %rcx
callq *%r8
jmp 0xc758
movq -0x30(%rbp), %rax
movl 0x28(%rax), %eax
movq %rbx, %rdi
testb $0x1, %al
je 0xc36b
movq (%rbx), %rdi
leaq 0x10(%rbx), %rsi
testb $0x2, %al
je 0xc376
movq (%rsi), %rsi
leaq 0x20(%rbx), %rdx
testb $0x4, %al
je 0xc381
movq (%rdx), %rdx
leaq 0x30(%rbx), %rcx
testb $0x8, %al
je 0xc38c
movq (%rcx), %rcx
leaq 0x40(%rbx), %r8
testb $0x10, %al
je 0xc397
movq (%r8), %r8
leaq 0x50(%rbx), %r9
testb $0x20, %al
je 0xc3a2
movq (%r9), %r9
leaq 0x60(%rbx), %r10
testb $0x40, %al
je 0xc3ad
movq (%r10), %r10
leaq 0x70(%rbx), %r11
testb %al, %al
jns 0xc3b8
movq (%r11), %r11
leaq 0x80(%rbx), %r14
btl $0x8, %eax
jae 0xc3c8
movq (%r14), %r14
leaq 0x90(%rbx), %r15
btl $0x9, %eax
jae 0xc3d8
movq (%r15), %r15
movq %r11, -0x40(%rbp)
leaq 0xa0(%rbx), %r12
movq %r10, %r11
btl $0xa, %eax
jae 0xc3f0
movq (%r12), %r12
movq -0x30(%rbp), %r10
movq 0x30(%r10), %r13
leaq 0xb0(%rbx), %r10
btl $0xb, %eax
jae 0xc408
movq (%r10), %r10
pushq %r10
pushq %r12
pushq %r15
pushq %r14
pushq -0x40(%rbp)
pushq %r11
callq *%r13
addq $0x30, %rsp
pushq $0xc
jmp 0xc756
movq -0x30(%rbp), %rax
movl 0x28(%rax), %eax
movq %rbx, %rdi
testb $0x1, %al
je 0xc434
movq (%rbx), %rdi
leaq 0x10(%rbx), %rsi
testb $0x2, %al
je 0xc43f
movq (%rsi), %rsi
leaq 0x20(%rbx), %rdx
testb $0x4, %al
je 0xc44a
movq (%rdx), %rdx
leaq 0x30(%rbx), %rcx
testb $0x8, %al
je 0xc455
movq (%rcx), %rcx
leaq 0x40(%rbx), %r8
testb $0x10, %al
je 0xc460
movq (%r8), %r8
leaq 0x50(%rbx), %r9
testb $0x20, %al
je 0xc46b
movq (%r9), %r9
leaq 0x60(%rbx), %r10
testb $0x40, %al
je 0xc476
movq (%r10), %r10
leaq 0x70(%rbx), %r11
testb %al, %al
jns 0xc481
movq (%r11), %r11
movq -0x30(%rbp), %r14
movq 0x30(%r14), %r14
leaq 0x80(%rbx), %r15
btl $0x8, %eax
jae 0xc499
movq (%r15), %r15
subq $0x8, %rsp
pushq %r15
pushq %r11
pushq %r10
callq *%r14
addq $0x20, %rsp
pushq $0x9
jmp 0xc756
movq -0x30(%rbp), %rax
movl 0x28(%rax), %ecx
movq %rbx, %rdi
testb $0x1, %cl
je 0xc4c3
movq (%rbx), %rdi
movq -0x30(%rbp), %rax
movq 0x30(%rax), %rax
leaq 0x10(%rbx), %rsi
testb $0x2, %cl
je 0xc4d7
movq (%rsi), %rsi
callq *%rax
pushq $0x2
jmp 0xc756
movq -0x30(%rbp), %rax
movl 0x28(%rax), %eax
movq %rbx, %rdi
testb $0x1, %al
je 0xc4f1
movq (%rbx), %rdi
leaq 0x10(%rbx), %rsi
testb $0x2, %al
je 0xc4fc
movq (%rsi), %rsi
movq -0x30(%rbp), %rcx
movq 0x30(%rcx), %rcx
leaq 0x20(%rbx), %rdx
testb $0x4, %al
je 0xc50f
movq (%rdx), %rdx
callq *%rcx
pushq $0x3
jmp 0xc756
movq -0x30(%rbp), %rax
movl 0x28(%rax), %eax
movq %rbx, %rdi
testb $0x1, %al
je 0xc529
movq (%rbx), %rdi
leaq 0x10(%rbx), %rsi
testb $0x2, %al
je 0xc534
movq (%rsi), %rsi
leaq 0x20(%rbx), %rdx
testb $0x4, %al
je 0xc53f
movq (%rdx), %rdx
leaq 0x30(%rbx), %rcx
testb $0x8, %al
je 0xc54a
movq (%rcx), %rcx
leaq 0x40(%rbx), %r8
testb $0x10, %al
je 0xc555
movq (%r8), %r8
leaq 0x50(%rbx), %r9
testb $0x20, %al
je 0xc560
movq (%r9), %r9
movq -0x30(%rbp), %r10
movq 0x30(%r10), %r10
leaq 0x60(%rbx), %r11
testb $0x40, %al
je 0xc573
movq (%r11), %r11
subq $0x8, %rsp
pushq %r11
callq *%r10
popq %rax
popq %rcx
pushq $0x7
jmp 0xc756
movq -0x30(%rbp), %rcx
movq 0x30(%rcx), %rax
testb $0x1, 0x28(%rcx)
movq %rbx, %rdi
je 0xc599
movq (%rbx), %rdi
callq *%rax
pushq $0x1
jmp 0xc756
movq -0x30(%rbp), %rax
movl 0x28(%rax), %eax
movq %rbx, %rdi
testb $0x1, %al
je 0xc5b3
movq (%rbx), %rdi
leaq 0x10(%rbx), %rsi
testb $0x2, %al
je 0xc5be
movq (%rsi), %rsi
leaq 0x20(%rbx), %rdx
testb $0x4, %al
je 0xc5c9
movq (%rdx), %rdx
leaq 0x30(%rbx), %rcx
testb $0x8, %al
je 0xc5d4
movq (%rcx), %rcx
movq -0x30(%rbp), %r8
movq 0x30(%r8), %r9
leaq 0x40(%rbx), %r8
testb $0x10, %al
je 0xc5e7
movq (%r8), %r8
callq *%r9
pushq $0x5
jmp 0xc756
movq -0x30(%rbp), %rax
movl 0x28(%rax), %eax
movq %rbx, %rdi
testb $0x1, %al
je 0xc602
movq (%rbx), %rdi
leaq 0x10(%rbx), %rsi
testb $0x2, %al
je 0xc60d
movq (%rsi), %rsi
leaq 0x20(%rbx), %rdx
testb $0x4, %al
je 0xc618
movq (%rdx), %rdx
leaq 0x30(%rbx), %rcx
testb $0x8, %al
je 0xc623
movq (%rcx), %rcx
leaq 0x40(%rbx), %r8
testb $0x10, %al
je 0xc62e
movq (%r8), %r8
movq -0x30(%rbp), %r9
movq 0x30(%r9), %r10
leaq 0x50(%rbx), %r9
testb $0x20, %al
je 0xc641
movq (%r9), %r9
callq *%r10
pushq $0x6
jmp 0xc756
movq -0x30(%rbp), %rax
movl 0x28(%rax), %eax
movq %rbx, %rdi
testb $0x1, %al
je 0xc65c
movq (%rbx), %rdi
leaq 0x10(%rbx), %rsi
testb $0x2, %al
je 0xc667
movq (%rsi), %rsi
leaq 0x20(%rbx), %rdx
testb $0x4, %al
je 0xc672
movq (%rdx), %rdx
leaq 0x30(%rbx), %rcx
testb $0x8, %al
je 0xc67d
movq (%rcx), %rcx
leaq 0x40(%rbx), %r8
testb $0x10, %al
je 0xc688
movq (%r8), %r8
leaq 0x50(%rbx), %r9
testb $0x20, %al
je 0xc693
movq (%r9), %r9
leaq 0x60(%rbx), %r10
testb $0x40, %al
je 0xc69e
movq (%r10), %r10
leaq 0x70(%rbx), %r11
testb %al, %al
jns 0xc6a9
movq (%r11), %r11
leaq 0x80(%rbx), %r14
btl $0x8, %eax
jae 0xc6b9
movq (%r14), %r14
movq -0x30(%rbp), %r15
movq 0x30(%r15), %r15
leaq 0x90(%rbx), %r12
btl $0x9, %eax
jae 0xc6d2
movq (%r12), %r12
pushq %r12
pushq %r14
pushq %r11
pushq %r10
callq *%r15
addq $0x20, %rsp
pushq $0xa
jmp 0xc756
movq -0x30(%rbp), %rax
movl 0x28(%rax), %eax
movq %rbx, %rdi
testb $0x1, %al
je 0xc6f6
movq (%rbx), %rdi
leaq 0x10(%rbx), %rsi
testb $0x2, %al
je 0xc701
movq (%rsi), %rsi
leaq 0x20(%rbx), %rdx
testb $0x4, %al
je 0xc70c
movq (%rdx), %rdx
leaq 0x30(%rbx), %rcx
testb $0x8, %al
je 0xc717
movq (%rcx), %rcx
leaq 0x40(%rbx), %r8
testb $0x10, %al
je 0xc722
movq (%r8), %r8
leaq 0x50(%rbx), %r9
testb $0x20, %al
je 0xc72d
movq (%r9), %r9
leaq 0x60(%rbx), %r10
testb $0x40, %al
je 0xc738
movq (%r10), %r10
movq -0x30(%rbp), %r11
movq 0x30(%r11), %r11
leaq 0x70(%rbx), %r14
testb %al, %al
jns 0xc74b
movq (%r14), %r14
pushq %r14
pushq %r10
callq *%r11
popq %rax
popq %rcx
pushq $0x8
popq %r12
xorl %r14d, %r14d
testl %r12d, %r12d
cmovgl %r12d, %r14d
movq %rbx, %r15
subq $0x1, %r14
jb 0xc779
movq %r15, %rdi
callq 0x3745
addq $0x10, %r15
jmp 0xc765
movslq %r12d, %r14
movslq -0x34(%rbp), %r15
movq %r14, %rax
shlq $0x4, %rax
addq %rax, %rbx
cmpq %r15, %r14
jge 0xc7a0
movq %rbx, %rdi
callq 0x3745
incq %r14
addq $0x10, %rbx
jmp 0xc78a
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x80(%rbp), %rdi
callq 0x36e0
jmp 0xc7cb
jmp 0xc7bf
movq %rax, %rbx
leaq -0x60(%rbp), %rdi
callq 0xd228
movq %rbx, %rdi
callq 0x23c0