// File: /workspace/github_cpp_makefile_star2_O2/jpcima[P]faustmd/call_faust.cpp
// Function: call_faust(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, pugi::xml_document&, Faust_Args const&)
int call_faust(const std::string &dspfile, pugi::xml_document &docmd, const Faust_Args &faustargs)
{
    char workdir[] = P_tmpdir "/faustXXXXXX";
    if (mktempdir(workdir) == -1)
        return 1;
    auto workdir_cleanup = gsl::finally([&]() { rmdir(workdir); });

    gsl::cstring_span dspfilebase = dspfile;
    {
        size_t index = dspfile.rfind('/');
        if (index != std::string::npos)
            dspfilebase = dspfilebase.subspan(index + 1);
    }

    const std::string xmlfilebase = gsl::to_string(dspfilebase) + ".xml";
    const std::string cppfilebase = gsl::to_string(dspfilebase) + ".cpp";
    const std::string xmlfile = std::string(workdir) + '/' + xmlfilebase;
    const std::string cppfile = std::string(workdir) + '/' + cppfilebase;

    std::vector<char *> fargv {
        (char *)"faust",
        (char *)"-double",
        (char *)"-xml",
        (char *)"-O",
        (char *)workdir,
        (char *)"-o",
        (char *)cppfilebase.c_str(),
        (char *)dspfile.c_str(),
    };

    if (const char *program = getenv("FAUST"))
        fargv[0] = (char *)program;

    for (const std::string &dir : faustargs.incdirs) {
        fargv.push_back((char *)"-I");
        fargv.push_back((char *)dir.c_str());
    }

    if (!faustargs.classname.empty()) {
        fargv.push_back((char *)"-cn");
        fargv.push_back((char *)faustargs.classname.c_str());
    }
    if (!faustargs.processname.empty()) {
        fargv.push_back((char *)"-pn");
        fargv.push_back((char *)faustargs.processname.c_str());
    }

    for (const std::string &arg : faustargs.miscargs)
        fargv.push_back((char *)arg.c_str());

    fargv.push_back(nullptr);
    if (execute(fargv.data()) == -1)
        return -1;

    auto xml_cleanup =
        gsl::finally([&]() { unlink(xmlfile.c_str()); unlink(cppfile.c_str()); });

    pugi::xml_parse_result xmlret = docmd.load_file(xmlfile.c_str());
    if (!xmlret)
        return -1;

    if (apply_workarounds(docmd, cppfile) == -1)
        return -1;

    return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1648, %rsp           # imm = 0x1648
movq %rdx, %r15
movq %rsi, 0x100(%rsp)
movq %rdi, 0x108(%rsp)
movaps 0x229e1(%rip), %xmm0    # 0x2a460
movaps %xmm0, 0xe0(%rsp)
movb $0x0, 0xf0(%rsp)
movb 0x3ae1b(%rip), %al      # 0x428b0
testb %al, %al
je 0x8952
leaq 0xe0(%rsp), %rbx
movq %rbx, %rdi
callq 0x61b0
leaq (%rax,%rbx), %r14
decq %r14
movl $0x7fffffff, %r12d      # imm = 0x7FFFFFFF
leaq 0x229bf(%rip), %r13     # 0x2a480
imulq $0xbc8f, 0x3addc(%rip), %rax # imm = 0xBC8F
xorl %edx, %edx
divq %r12
movq %rdx, 0x3add0(%rip)     # 0x428a8
xorl %ecx, %ecx
movq %r14, %rax
cmpq $0x1e, %rcx
je 0x7afa
movl %edx, %esi
shrl %cl, %esi
andl $0x1f, %esi
movb (%rsi,%r13), %sil
movb %sil, (%rax)
decq %rax
addq $0x5, %rcx
jmp 0x7add
movq %rbx, %rdi
movl $0x1c0, %esi            # imm = 0x1C0
callq 0x61e0
cmpl $-0x1, %eax
jne 0x7b21
movl %eax, %ebp
callq 0x6070
cmpl $0x11, (%rax)
jne 0x8118
cmpl $-0x1, %ebp
je 0x7ac1
leaq 0x39fe8(%rip), %rax     # 0x41b10
movq %rax, 0x1b0(%rsp)
movq %rbx, 0x1b8(%rsp)
movb $0x1, 0x1c0(%rsp)
leaq 0x110(%rsp), %rdi
movq 0x108(%rsp), %r12
movq %r12, %rsi
callq 0x8e0e
pushq $0x2f
popq %rsi
pushq $-0x1
popq %rdx
movq %r12, %rdi
callq 0x6810
cmpq $-0x1, %rax
je 0x7b89
incq %rax
leaq 0x110(%rsp), %rbx
movq %rbx, %rdi
movq %rax, %rsi
callq 0x8eec
movq %rax, (%rbx)
movq %rdx, 0x8(%rbx)
leaq 0x2c0(%rsp), %rdi
leaq 0x110(%rsp), %rsi
callq 0x8e56
leaq 0x228fc(%rip), %rdx     # 0x2a4a1
leaq 0x288(%rsp), %rdi
leaq 0x2c0(%rsp), %rsi
callq 0x8e37
leaq 0x2c0(%rsp), %rdi
callq 0x61d0
leaq 0x2c0(%rsp), %rdi
leaq 0x110(%rsp), %rsi
callq 0x8e56
leaq 0x23c0c(%rip), %rdx     # 0x2b7ef
leaq 0x268(%rsp), %rdi
leaq 0x2c0(%rsp), %rsi
callq 0x8e37
leaq 0x2c0(%rsp), %rdi
callq 0x61d0
leaq 0x120(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
leaq 0x58(%rsp), %rdx
callq 0x70be
leaq 0x2c0(%rsp), %rdi
leaq 0x120(%rsp), %rsi
pushq $0x2f
popq %rdx
callq 0x8e94
leaq 0x248(%rsp), %rdi
leaq 0x2c0(%rsp), %rsi
leaq 0x288(%rsp), %rdx
callq 0x8e75
leaq 0x2c0(%rsp), %rdi
callq 0x61d0
leaq 0x120(%rsp), %rdi
callq 0x61d0
leaq 0x120(%rsp), %rdi
leaq 0xe0(%rsp), %rbx
leaq 0x58(%rsp), %rdx
movq %rbx, %rsi
callq 0x70be
leaq 0x2c0(%rsp), %rdi
leaq 0x120(%rsp), %rsi
pushq $0x2f
popq %rdx
callq 0x8e94
leaq 0x228(%rsp), %rdi
leaq 0x2c0(%rsp), %rsi
leaq 0x268(%rsp), %rdx
callq 0x8e75
leaq 0x2c0(%rsp), %r14
movq %r14, %rdi
callq 0x61d0
leaq 0x120(%rsp), %rdi
callq 0x61d0
leaq 0x227c2(%rip), %rax     # 0x2a4a6
movq %rax, (%r14)
leaq 0x227be(%rip), %rax     # 0x2a4ac
movq %rax, 0x8(%r14)
leaq 0x227bb(%rip), %rax     # 0x2a4b4
movq %rax, 0x10(%r14)
leaq 0x227b5(%rip), %rax     # 0x2a4b9
movq %rax, 0x18(%r14)
movq %rbx, 0x20(%r14)
leaq 0x227a9(%rip), %rax     # 0x2a4bc
movq %rax, 0x28(%r14)
movq 0x268(%rsp), %rax
movq %rax, 0x30(%r14)
movq (%r12), %rax
movq %rax, 0x38(%r14)
leaq 0x88(%rsp), %rdi
leaq 0x2c0(%rsp), %rsi
pushq $0x8
popq %rdx
leaq 0x120(%rsp), %rcx
callq 0x8eb6
leaq 0x2276d(%rip), %rdi     # 0x2a4bf
callq 0x64b0
testq %rax, %rax
je 0x7d67
movq 0x88(%rsp), %rcx
movq %rax, (%rcx)
movq 0x40(%r15), %r14
movq 0x48(%r15), %r12
leaq 0x2231f(%rip), %rbp     # 0x2a095
leaq 0x88(%rsp), %rbx
leaq 0x2c0(%rsp), %r13
cmpq %r12, %r14
je 0x7dba
movq %rbp, 0x2c0(%rsp)
movq %rbx, %rdi
movq %r13, %rsi
callq 0x14cd6
movq (%r14), %rax
movq %rax, 0x2c0(%rsp)
movq %rbx, %rdi
movq %r13, %rsi
callq 0x14cd6
addq $0x20, %r14
jmp 0x7d86
cmpq $0x0, 0x8(%r15)
je 0x7dfb
leaq 0x222f5(%rip), %rax     # 0x2a0bd
leaq 0x2c0(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x88(%rsp), %rdi
callq 0x14cd6
movq (%r15), %rax
leaq 0x2c0(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x88(%rsp), %rdi
callq 0x14cd6
cmpq $0x0, 0x28(%r15)
je 0x7e3d
leaq 0x222de(%rip), %rax     # 0x2a0e7
leaq 0x2c0(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x88(%rsp), %rdi
callq 0x14cd6
movq 0x20(%r15), %rax
leaq 0x2c0(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x88(%rsp), %rdi
callq 0x14cd6
movq 0x58(%r15), %r14
movq 0x60(%r15), %r12
leaq 0x88(%rsp), %rbx
leaq 0x2c0(%rsp), %r15
cmpq %r12, %r14
je 0x7e76
movq (%r14), %rax
movq %rax, 0x2c0(%rsp)
movq %rbx, %rdi
movq %r15, %rsi
callq 0x14cd6
addq $0x20, %r14
jmp 0x7e55
leaq 0x2c0(%rsp), %rsi
andq $0x0, (%rsi)
leaq 0x88(%rsp), %rdi
callq 0x14cd6
movq 0x88(%rsp), %rbx
leaq 0x120(%rsp), %r15
movq %r15, %rdi
callq 0x64d0
pushq $-0x1
popq %r14
cmpl $-0x1, %eax
je 0x812f
leaq 0x39bf5(%rip), %rax     # 0x41ab0
movq %rax, 0x58(%rsp)
movq %r15, 0x60(%rsp)
movb $0x1, 0x68(%rsp)
leaq 0x2c0(%rsp), %r15
movq %r15, %rdi
callq 0x66a0
cmpl $-0x1, %eax
je 0x8125
leaq 0x39bf6(%rip), %rax     # 0x41ae0
movq %rax, (%rsp)
movq %r15, 0x8(%rsp)
movb $0x1, 0x10(%rsp)
movq (%rbx), %rsi
movq 0x3a0ae(%rip), %rax     # 0x41fb0
movq (%rax), %r9
leaq 0xc0(%rsp), %rdi
leaq 0x120(%rsp), %rdx
movq %r15, %rcx
movq %rbx, %r8
callq 0x6760
cmpl $-0x1, %eax
je 0x811d
movl 0xc0(%rsp), %edi
leaq 0x30(%rsp), %rsi
xorl %edx, %edx
callq 0x6340
movl %eax, %ebx
movl $0xff7f, %ebp           # imm = 0xFF7F
andl 0x30(%rsp), %ebp
movq %rsp, %rdi
callq 0x8d82
leaq 0x58(%rsp), %rdi
callq 0x8d9c
cmpl $-0x1, %ebx
je 0x812f
testl %ebp, %ebp
movl %r14d, %ebx
jne 0x8132
leaq 0x39bcc(%rip), %rax     # 0x41b40
movq %rax, 0x1c8(%rsp)
leaq 0x248(%rsp), %rax
movq %rax, 0x1d0(%rsp)
leaq 0x228(%rsp), %rax
movq %rax, 0x1d8(%rsp)
movb $0x1, 0x1e0(%rsp)
movq 0x248(%rsp), %rdx
leaq 0x2a8(%rsp), %rdi
pushq $0x74
popq %rcx
movq 0x100(%rsp), %r14
movq %r14, %rsi
xorl %r8d, %r8d
callq 0x1d090
leaq 0x2a8(%rsp), %rdi
callq 0x1c444
pushq $-0x1
popq %rbx
testb %al, %al
je 0x8940
leaq 0x224bd(%rip), %rsi     # 0x2a4a6
movq %r14, %rdi
callq 0x184a2
movq %rax, 0x28(%rsp)
testq %rax, %rax
je 0x8194
leaq 0x28(%rsp), %rdi
callq 0x188a2
movq %rsp, %r14
movq %rax, (%r14)
leaq 0x120(%rsp), %r15
leaq 0x233f1(%rip), %r12     # 0x2b40f
leaq 0x2c0(%rsp), %r13
leaq 0x58(%rsp), %rbp
testq %rax, %rax
je 0x81a3
cmpq 0x28(%rsp), %rax
je 0x81a3
movq %rax, 0x120(%rsp)
movq %r15, %rdi
callq 0x1854e
movq %rax, 0x58(%rsp)
movq %r13, %rdi
movq %r12, %rsi
callq 0x721c
movq %rbp, %rdi
movq %r13, %rsi
callq 0x9060
testb %al, %al
jne 0x81b2
movq %r14, %rdi
callq 0x188a2
movq %rax, 0x2c0(%rsp)
movq %r13, %rdi
callq 0x183f8
testq %rax, %rax
je 0x8099
movq %r14, %rdi
callq 0x188a2
jmp 0x80be
movq %r14, %rdi
callq 0x1865e
movq %rax, 0x2c0(%rsp)
movq %r13, %rdi
callq 0x183f8
testq %rax, %rax
je 0x80d3
movq %r14, %rdi
callq 0x1865e
movq %rax, (%rsp)
jmp 0x802b
movq %r14, %rdi
callq 0x187aa
movq %rax, (%rsp)
movq %r14, %rdi
callq 0x1865e
movq %rax, 0x2c0(%rsp)
movq %r13, %rdi
callq 0x1840c
testb %al, %al
je 0x80ff
movq (%rsp), %rax
cmpq 0x28(%rsp), %rax
jne 0x80c7
jmp 0x802b
movq (%rsp), %rax
cmpq 0x28(%rsp), %rax
je 0x802b
movq %r14, %rdi
callq 0x1865e
jmp 0x80be
pushq $0x1
popq %rbx
jmp 0x8180
movq %rsp, %rdi
callq 0x8d82
leaq 0x58(%rsp), %rdi
callq 0x8d9c
movl %r14d, %ebx
leaq 0x88(%rsp), %rdi
callq 0x14c4c
leaq 0x228(%rsp), %rdi
callq 0x61d0
leaq 0x248(%rsp), %rdi
callq 0x61d0
leaq 0x268(%rsp), %rdi
callq 0x61d0
leaq 0x288(%rsp), %rdi
callq 0x61d0
leaq 0x1b0(%rsp), %rdi
callq 0x8c5c
movl %ebx, %eax
addq $0x1648, %rsp           # imm = 0x1648
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x2c0(%rsp), %rdi
callq 0x183ee
jmp 0x81be
leaq 0x2c0(%rsp), %rdi
callq 0x183ee
jmp 0x81be
movq (%rsp), %rax
movq %rax, 0x2c0(%rsp)
leaq 0x2c0(%rsp), %rdi
movq (%rdi), %rax
movq %rax, (%rdi)
callq 0x183f8
testq %rax, %rax
jne 0x893e
leaq 0x2c0(%rsp), %rdi
leaq 0x228(%rsp), %rsi
pushq $0x8
popq %rdx
callq 0x6670
leaq 0x128(%rsp), %rax
andl $0x0, (%rax)
andq $0x0, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
andq $0x0, 0x20(%rax)
leaq 0x222af(%rip), %rsi     # 0x2a4c5
leaq 0x28(%rsp), %rdi
callq 0x184a2
leaq 0xc0(%rsp), %rdi
movq %rax, (%rdi)
leaq 0x22296(%rip), %rsi     # 0x2a4c8
callq 0x184a2
movq %rsp, %rsi
movq %rax, (%rsi)
leaq 0x22292(%rip), %rdx     # 0x2a4d6
leaq 0x58(%rsp), %rdi
callq 0x18464
movq 0x68(%rsp), %rax
leaq 0xc0(%rsp), %r14
movq %rax, 0x10(%r14)
movups 0x58(%rsp), %xmm0
movaps %xmm0, (%r14)
movq 0x80(%rsp), %rax
leaq 0x30(%rsp), %r15
movq %rax, 0x10(%r15)
movups 0x70(%rsp), %xmm0
movaps %xmm0, (%r15)
leaq 0xa0(%rsp), %r13
movq %rsp, %rbp
leaq 0x170(%rsp), %rbx
leaq 0x120(%rsp), %r12
movq %r14, %rdi
movq %r15, %rsi
callq 0x1c2de
testb %al, %al
je 0x8304
movq %r14, %rdi
callq 0x1c2fe
movq (%rax), %rax
movq %rax, 0xa0(%rsp)
movq %r13, %rdi
leaq 0x22214(%rip), %rsi     # 0x2a4dd
callq 0x18864
movq %rbp, %rdi
movq %rax, %rsi
movq %rbx, %rdx
callq 0x70be
movq %r12, %rdi
movq %rbp, %rsi
callq 0x8f24
movq 0xa0(%rsp), %rcx
movq %rcx, (%rax)
movq %rbp, %rdi
callq 0x61d0
movq %r14, %rdi
callq 0x1c352
jmp 0x829d
leaq 0x221ba(%rip), %rsi     # 0x2a4c5
leaq 0x28(%rsp), %rdi
callq 0x184a2
leaq 0xc0(%rsp), %rdi
movq %rax, (%rdi)
leaq 0x221be(%rip), %rsi     # 0x2a4e5
callq 0x184a2
movq %rsp, %rsi
movq %rax, (%rsi)
leaq 0x2219d(%rip), %rdx     # 0x2a4d6
leaq 0x58(%rsp), %rdi
callq 0x18464
movq 0x68(%rsp), %rax
leaq 0xc0(%rsp), %r14
movq %rax, 0x10(%r14)
movups 0x58(%rsp), %xmm0
movaps %xmm0, (%r14)
movq 0x80(%rsp), %rax
leaq 0x30(%rsp), %r15
movq %rax, 0x10(%r15)
movups 0x70(%rsp), %xmm0
movaps %xmm0, (%r15)
leaq 0xa0(%rsp), %r13
movq %rsp, %rbp
leaq 0x170(%rsp), %rbx
leaq 0x120(%rsp), %r12
movq %r14, %rdi
movq %r15, %rsi
callq 0x1c2de
testb %al, %al
je 0x83f9
movq %r14, %rdi
callq 0x1c2fe
movq (%rax), %rax
movq %rax, 0xa0(%rsp)
movq %r13, %rdi
leaq 0x2211f(%rip), %rsi     # 0x2a4dd
callq 0x18864
movq %rbp, %rdi
movq %rax, %rsi
movq %rbx, %rdx
callq 0x70be
movq %r12, %rdi
movq %rbp, %rsi
callq 0x8f24
movq 0xa0(%rsp), %rcx
movq %rcx, (%rax)
movq %rbp, %rdi
callq 0x61d0
movq %r14, %rdi
callq 0x1c352
jmp 0x8392
leaq 0x68(%rsp), %rax
movq %rax, -0x10(%rax)
movb $0x0, (%rax)
leaq 0x58(%rsp), %r15
movq %rsp, %rbp
leaq 0xa0(%rsp), %r12
leaq 0xc0(%rsp), %r14
leaq 0x170(%rsp), %r13
andq $0x0, 0x60(%rsp)
movq 0x58(%rsp), %rax
movb $0x0, (%rax)
leaq 0x2c0(%rsp), %rdi
movq %r15, %rsi
callq 0x60d0
movb 0x3a42f(%rip), %al      # 0x42878
testb %al, %al
je 0x8868
movb 0x3a449(%rip), %al      # 0x428a0
testb %al, %al
je 0x88bd
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
movaps %xmm0, (%rsp)
movq %r15, %rdi
movq %rbp, %rsi
leaq 0x3a3e0(%rip), %rdx     # 0x42858
xorl %ecx, %ecx
callq 0x900a
testb %al, %al
je 0x84e2
leaq 0xd0(%rsp), %rax
movq %rax, 0xc0(%rsp)
andq $0x0, 0xc8(%rsp)
xorl %ecx, %ecx
movb %cl, 0xd0(%rsp)
leaq 0x40(%rsp), %rax
movq %rax, 0x30(%rsp)
andq $0x0, 0x38(%rsp)
movb %cl, 0x40(%rsp)
movq (%rsp), %rsi
movq 0x8(%rsp), %rcx
subq %rsi, %rcx
je 0x852b
movq %rcx, %rax
cqto
pushq $0x18
popq %rdi
idivq %rdi
addq $-0x5, %rax
cmpq $-0x3, %rax
ja 0x852b
addq $0x18, %rsi
jmp 0x8532
movq %r15, %rdi
movq %rbp, %rsi
leaq 0x3a391(%rip), %rdx     # 0x42880
xorl %ecx, %ecx
callq 0x900a
testb %al, %al
je 0x883f
movq (%rsp), %rsi
movq 0x8(%rsp), %rcx
subq %rsi, %rcx
je 0x859e
movq %rcx, %rax
cqto
pushq $0x18
popq %rdi
idivq %rdi
addq $-0x5, %rax
cmpq $-0x3, %rax
ja 0x859e
addq $0x18, %rsi
jmp 0x85a5
addq %rcx, %rsi
addq $-0x48, %rsi
movq %r12, %rdi
callq 0x9026
leaq 0x218(%rsp), %rdi
movq %r12, %rsi
callq 0x8e0e
movq 0x218(%rsp), %rsi
movq 0x220(%rsp), %rdx
movq %r14, %rdi
callq 0x8c76
testb %al, %al
je 0x8825
movq (%rsp), %rsi
movq 0x8(%rsp), %rcx
subq %rsi, %rcx
je 0x8689
movq %rcx, %rax
cqto
pushq $0x18
popq %rdi
idivq %rdi
addq $-0x6, %rax
cmpq $-0x4, %rax
ja 0x8689
addq $0x30, %rsi
jmp 0x8690
addq %rcx, %rsi
addq $-0x48, %rsi
leaq 0x190(%rsp), %rbx
movq %r14, %rdi
callq 0x9026
leaq 0x40(%rsp), %rax
movq %rax, 0x30(%rsp)
andq $0x0, 0x38(%rsp)
xorl %ecx, %ecx
movb %cl, 0x40(%rsp)
leaq 0xb0(%rsp), %rax
movq %rax, 0xa0(%rsp)
andq $0x0, 0xa8(%rsp)
movb %cl, 0xb0(%rsp)
movq (%rsp), %rsi
movq 0x8(%rsp), %rcx
subq %rsi, %rcx
je 0x8614
movq %rcx, %rax
cqto
pushq $0x18
popq %rdi
idivq %rdi
addq $-0x6, %rax
cmpq $-0x4, %rax
ja 0x8614
addq $0x30, %rsi
jmp 0x861b
addq %rcx, %rsi
addq $-0x48, %rsi
movq %r13, %rdi
callq 0x9026
leaq 0x1f8(%rsp), %rdi
movq %r13, %rsi
callq 0x8e0e
movq 0x1f8(%rsp), %rsi
movq 0x200(%rsp), %rdx
leaq 0x30(%rsp), %rdi
callq 0x8c76
testb %al, %al
je 0x873e
movq (%rsp), %rsi
movq 0x8(%rsp), %rcx
subq %rsi, %rcx
je 0x874b
movq %rcx, %rax
cqto
pushq $0x18
popq %rdi
idivq %rdi
addq $-0x7, %rax
cmpq $-0x5, %rax
ja 0x874b
addq $0x48, %rsi
jmp 0x8752
addq %rcx, %rsi
addq $-0x48, %rsi
movq %r13, %rdi
callq 0x9026
leaq 0x208(%rsp), %rdi
movq %r13, %rsi
callq 0x8e0e
movq 0x208(%rsp), %rsi
movq 0x210(%rsp), %rdx
leaq 0x30(%rsp), %rdi
callq 0x8c76
movl %eax, %ebx
movq %r13, %rdi
callq 0x61d0
movq %r12, %rdi
callq 0x61d0
testb %bl, %bl
je 0x882d
leaq 0x28(%rsp), %rdi
leaq 0x22d27(%rip), %rsi     # 0x2b40f
callq 0x19220
movq %rax, 0xa0(%rsp)
movq %r12, %rdi
leaq 0x21e93(%rip), %rsi     # 0x2a592
callq 0x1897a
movq %rax, 0x170(%rsp)
movq 0xc0(%rsp), %rsi
movq %r13, %rdi
callq 0x17d88
movq %r12, %rdi
callq 0x18810
movq %rax, 0x170(%rsp)
movq 0x30(%rsp), %rsi
movq %r13, %rdi
callq 0x1bd80
jmp 0x882d
movq %r13, %rdi
callq 0x61d0
jmp 0x8825
addq %rcx, %rsi
addq $-0x48, %rsi
movq %rbx, %rdi
callq 0x9026
leaq 0x1e8(%rsp), %rdi
movq %rbx, %rsi
callq 0x8e0e
movq 0x1e8(%rsp), %rsi
movq 0x1f0(%rsp), %rdx
movq %r12, %rdi
callq 0x8c76
movl %eax, %ebx
leaq 0x190(%rsp), %rdi
callq 0x61d0
movq %r13, %rdi
callq 0x61d0
testb %bl, %bl
je 0x8825
leaq 0x120(%rsp), %rdi
movq %r14, %rsi
callq 0x14b02
leaq 0x128(%rsp), %rcx
cmpq %rcx, %rax
je 0x8825
addq $0x40, %rax
movq %rax, %rdi
leaq 0x22c43(%rip), %rsi     # 0x2b40f
callq 0x19220
movq %rax, 0x170(%rsp)
movq %r13, %rdi
leaq 0x21daf(%rip), %rsi     # 0x2a592
callq 0x1897a
leaq 0x190(%rsp), %rbx
movq %rax, 0x190(%rsp)
movq 0x30(%rsp), %rsi
movq %rbx, %rdi
callq 0x17d88
movq %r13, %rdi
callq 0x18810
movq %rax, 0x190(%rsp)
movq 0xa0(%rsp), %rsi
movq %rbx, %rdi
callq 0x1bd80
movq %r12, %rdi
callq 0x61d0
leaq 0x30(%rsp), %rdi
callq 0x61d0
movq %r14, %rdi
callq 0x61d0
movq %rbp, %rdi
callq 0x12f6e
movq 0x2c0(%rsp), %rax
movq -0x18(%rax), %rax
movl 0x2e0(%rsp,%rax), %ebx
testb $0x5, %bl
je 0x8425
jmp 0x8912
leaq 0x3a009(%rip), %rdi     # 0x42878
callq 0x6750
testl %eax, %eax
je 0x8451
leaq 0x39fd5(%rip), %rdi     # 0x42858
leaq 0x21c6a(%rip), %rsi     # 0x2a4f4
pushq $0x10
popq %rdx
callq 0x8f8a
leaq 0x757(%rip), %rdi       # 0x8ff0
leaq 0x39fb8(%rip), %rsi     # 0x42858
leaq 0x39b81(%rip), %rdx     # 0x42428
callq 0x6380
leaq 0x39fc5(%rip), %rdi     # 0x42878
callq 0x62a0
jmp 0x8451
leaq 0x39fdc(%rip), %rdi     # 0x428a0
callq 0x6750
testl %eax, %eax
je 0x845f
leaq 0x39fa8(%rip), %rdi     # 0x42880
leaq 0x21c51(%rip), %rsi     # 0x2a530
pushq $0x10
popq %rdx
callq 0x8f8a
leaq 0x702(%rip), %rdi       # 0x8ff0
leaq 0x39f8b(%rip), %rsi     # 0x42880
leaq 0x39b2c(%rip), %rdx     # 0x42428
callq 0x6380
leaq 0x39f98(%rip), %rdi     # 0x428a0
callq 0x62a0
jmp 0x845f
leaq 0x58(%rsp), %rdi
callq 0x61d0
leaq 0x120(%rsp), %rdi
callq 0x14b40
leaq 0x2c0(%rsp), %rdi
callq 0x6100
testb $0x1, %bl
pushq $-0x1
popq %rbx
jne 0x8940
xorl %ebx, %ebx
leaq 0x1c8(%rsp), %rdi
callq 0x8c2e
jmp 0x8132
leaq 0x39f57(%rip), %rdi     # 0x428b0
callq 0x6750
testl %eax, %eax
je 0x7a9d
leaq 0x2c0(%rsp), %rdi
callq 0x14b8a
leaq 0x2c0(%rsp), %rdi
callq 0x65a0
movl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
xorl %edx, %edx
divl %ecx
cmpl $0x1, %edx
adcl $0x0, %edx
movq %rdx, 0x39f12(%rip)     # 0x428a8
leaq 0x2c0(%rsp), %rdi
callq 0x14be0
leaq 0x39f06(%rip), %rdi     # 0x428b0
callq 0x62a0
jmp 0x7a9d
movq %rax, %rbx
leaq 0x2c0(%rsp), %rdi
callq 0x14be0
jmp 0x89c9
movq %rax, %rbx
leaq 0x39ee0(%rip), %rdi     # 0x428b0
callq 0x6290
jmp 0x8c25
movq %rax, %rbx
leaq 0x39ebc(%rip), %rdi     # 0x428a0
jmp 0x89f0
movq %rax, %rbx
leaq 0x39e88(%rip), %rdi     # 0x42878
callq 0x6290
jmp 0x8b8f
jmp 0x8ac5
jmp 0x8ac5
jmp 0x8ac5
jmp 0x8ac5
jmp 0x8b9d
jmp 0x8b9d
jmp 0x8a4d
jmp 0x8a43
jmp 0x8ac5
movq %rax, %rbx
leaq 0x190(%rsp), %rdi
callq 0x61d0
jmp 0x8a50
jmp 0x8a43
jmp 0x8ac5
jmp 0x8a43
jmp 0x8b84
jmp 0x8a5f
movq %rax, %rbx
jmp 0x8ad5
jmp 0x8a4d
movq %rax, %rbx
leaq 0x170(%rsp), %rdi
callq 0x61d0
jmp 0x8ac8
movq %rax, %rbx
movq %rsp, %rdi
callq 0x8d82
leaq 0x58(%rsp), %rdi
callq 0x8d9c
jmp 0x8bd7
jmp 0x8bbe
jmp 0x8bd4
jmp 0x8bd4
jmp 0x8bd4
jmp 0x8bd4
jmp 0x8aa8
jmp 0x8b9d
jmp 0x8b9d
jmp 0x8b9d
jmp 0x8b9d
movq %rax, %rbx
movq %rsp, %rdi
jmp 0x8b94
jmp 0x8b9d
jmp 0x8b9d
movq %rax, %rbx
jmp 0x8b8f
movq %rax, %rbx
leaq 0xa0(%rsp), %rdi
callq 0x61d0
leaq 0x30(%rsp), %rdi
callq 0x61d0
leaq 0xc0(%rsp), %rdi
callq 0x61d0
jmp 0x8b87
jmp 0x8bd4
movq %rax, %rbx
jmp 0x8be4
movq %rax, %rbx
leaq 0x2c0(%rsp), %rdi
callq 0x61d0
jmp 0x8b13
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
jmp 0x8bec
movq %rax, %rbx
jmp 0x8bf1
movq %rax, %rbx
leaq 0x2c0(%rsp), %rdi
callq 0x61d0
jmp 0x8b3d
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
jmp 0x8bf9
movq %rax, %rbx
jmp 0x8bfe
movq %rax, %rbx
leaq 0x2c0(%rsp), %rdi
jmp 0x8c06
movq %rax, %rbx
jmp 0x8c0b
movq %rax, %rbx
leaq 0x2c0(%rsp), %rdi
jmp 0x8c13
jmp 0x8b7c
movq %rax, %rbx
jmp 0x8c18
movq %rax, %rbx
movq %rsp, %rdi
callq 0x12f6e
leaq 0x58(%rsp), %rdi
callq 0x61d0
jmp 0x8ba0
jmp 0x8b9d
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
callq 0x14b40
leaq 0x2c0(%rsp), %rdi
callq 0x6100
jmp 0x8bc1
jmp 0x8bbe
movq %rax, %rbx
leaq 0x1c8(%rsp), %rdi
callq 0x8c2e
jmp 0x8bd7
jmp 0x8bd4
jmp 0x8bd4
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0x14c4c
leaq 0x228(%rsp), %rdi
callq 0x61d0
leaq 0x248(%rsp), %rdi
callq 0x61d0
leaq 0x268(%rsp), %rdi
callq 0x61d0
leaq 0x288(%rsp), %rdi
callq 0x61d0
leaq 0x1b0(%rsp), %rdi
callq 0x8c5c
movq %rbx, %rdi
callq 0x6730
nop