// File: /workspace/github_cpp_makefile_star2_O3/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 $0x15e8, %rsp           # imm = 0x15E8
movq %rdx, %rbx
movq %rsi, 0x220(%rsp)
movq %rdi, %r15
movaps 0x262fa(%rip), %xmm0    # 0x2e390
movaps %xmm0, 0x120(%rsp)
movb $0x0, 0x130(%rsp)
movb 0x3a7d4(%rip), %al      # 0x42880
testb %al, %al
je 0x951f
leaq 0x120(%rsp), %r12
movq %r12, %rdi
callq 0x51a0
leaq (%rax,%r12), %r14
decq %r14
movabsq $0x200000005, %r13      # imm = 0x200000005
leaq 0x262d4(%rip), %rbp     # 0x2e3b0
imulq $0xbc8f, 0x3a791(%rip), %rcx # imm = 0xBC8F
movq %rcx, %rax
mulq %r13
movq %rcx, %rax
subq %rdx, %rax
shrq %rax
addq %rdx, %rax
shrq $0x1e, %rax
movq %rax, %rdx
shlq $0x1f, %rdx
subq %rdx, %rax
addq %rcx, %rax
movq %rax, 0x3a767(%rip)     # 0x42878
movq %r14, %rdx
xorl %ecx, %ecx
movl %eax, %esi
shrl %cl, %esi
andl $0x1f, %esi
movb (%rsi,%rbp), %sil
movb %sil, (%rdx)
addq $0x5, %rcx
decq %rdx
cmpq $0x1e, %rcx
jne 0x8116
movq %r12, %rdi
movl $0x1c0, %esi            # imm = 0x1C0
callq 0x51b0
cmpl $-0x1, %eax
jne 0x8158
callq 0x5070
cmpl $0x11, (%rax)
je 0x80dc
movl $0x1, %r14d
jmp 0x8ad7
movq (%r15), %rax
movq 0x8(%r15), %rcx
movq %rax, 0x190(%rsp)
leaq (%rax,%rcx), %rdx
movq %rdx, 0x198(%rsp)
testq %rcx, %rcx
sete %cl
testq %rax, %rax
setne %al
orb %cl, %al
je 0x9596
movq %r15, %rdi
movl $0x2f, %esi
movq $-0x1, %rdx
callq 0x57b0
cmpq $-0x1, %rax
je 0x81c5
incq %rax
leaq 0x190(%rsp), %r12
movq %r12, %rdi
movq %rax, %rsi
callq 0x9ada
movq %rax, %rsi
movq %rax, (%r12)
movq %rdx, 0x8(%r12)
jmp 0x81d5
movq 0x190(%rsp), %rsi
movq 0x198(%rsp), %rdx
leaq 0x270(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x260(%rsp), %rdi
callq 0x79ae
leaq 0x261dc(%rip), %rsi     # 0x2e3d1
leaq 0x260(%rsp), %rdi
callq 0x5790
leaq 0x1f0(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8232
movq %rdx, 0x1e0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x1f0(%rsp)
jmp 0x8238
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x1e8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x260(%rsp), %rdi
cmpq %rbp, %rdi
je 0x8270
movq 0x270(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x190(%rsp), %rsi
movq 0x198(%rsp), %rdx
leaq 0x260(%rsp), %rdi
movq %rbp, (%rdi)
callq 0x79ae
leaq 0x2748c(%rip), %rsi     # 0x2f723
leaq 0x260(%rsp), %rdi
callq 0x5790
leaq 0x1b0(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x82d4
movq %rdx, 0x1a0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x1b0(%rsp)
jmp 0x82da
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x1a8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x260(%rsp), %rdi
cmpq %rbp, %rdi
je 0x8312
movq 0x270(%rsp), %rsi
incq %rsi
callq 0x5380
leaq 0x150(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x120(%rsp), %r12
movq %r12, %rdi
callq 0x51a0
leaq (%rsp,%rax), %rdx
addq $0x120, %rdx            # imm = 0x120
leaq 0x140(%rsp), %rdi
movq %r12, %rsi
callq 0x79ae
leaq 0x140(%rsp), %rdi
movq 0x8(%rdi), %rsi
movl $0x1, %ecx
xorl %edx, %edx
movl $0x2f, %r8d
callq 0x5740
movq %rbp, 0x260(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8393
movq %rdx, 0x260(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x270(%rsp)
jmp 0x839a
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
movq 0x8(%rax), %rdx
leaq 0x260(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x1e0(%rsp), %rsi
movq 0x1e8(%rsp), %rdx
callq 0x5110
leaq 0x210(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x83fe
movq %rdx, 0x200(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x210(%rsp)
jmp 0x8404
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x208(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x260(%rsp), %rdi
cmpq %rbp, %rdi
je 0x843c
movq 0x270(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x140(%rsp), %rdi
cmpq %r14, %rdi
je 0x8459
movq 0x150(%rsp), %rsi
incq %rsi
callq 0x5380
leaq 0x140(%rsp), %r13
movq %r14, (%r13)
leaq 0x120(%rsp), %r12
movq %r12, %rdi
callq 0x51a0
leaq (%rsp,%rax), %rdx
addq $0x120, %rdx            # imm = 0x120
movq %r13, %rdi
movq %r12, %rsi
callq 0x79ae
leaq 0x140(%rsp), %rdi
movq 0x8(%rdi), %rsi
movl $0x1, %ecx
xorl %edx, %edx
movl $0x2f, %r8d
callq 0x5740
movq %rbp, 0x260(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x84d5
movq %rdx, 0x260(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x270(%rsp)
jmp 0x84dc
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
movq 0x8(%rax), %rdx
leaq 0x260(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x1a0(%rsp), %rsi
movq 0x1a8(%rsp), %rdx
callq 0x5110
leaq 0x1d0(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8540
movq %rdx, 0x1c0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x1d0(%rsp)
jmp 0x8546
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x1c8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x260(%rsp), %rdi
cmpq %rbp, %rdi
je 0x857e
movq 0x270(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x140(%rsp), %rdi
cmpq %r14, %rdi
je 0x859b
movq 0x150(%rsp), %rsi
incq %rsi
callq 0x5380
leaq 0x25e34(%rip), %rax     # 0x2e3d6
leaq 0x260(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x25e28(%rip), %rax     # 0x2e3dc
movq %rax, 0x8(%rsi)
leaq 0x25e25(%rip), %rax     # 0x2e3e4
movq %rax, 0x10(%rsi)
leaq 0x25e1f(%rip), %rax     # 0x2e3e9
movq %rax, 0x18(%rsi)
movq %r12, 0x20(%rsi)
leaq 0x25e13(%rip), %rax     # 0x2e3ec
movq %rax, 0x28(%rsi)
movq 0x1a0(%rsp), %rax
movq %rax, 0x30(%rsi)
movq (%r15), %rax
movq %rax, 0x38(%rsi)
leaq 0xd8(%rsp), %rdi
leaq 0x140(%rsp), %rcx
movl $0x8, %edx
callq 0x9a94
leaq 0x25dde(%rip), %rdi     # 0x2e3ef
callq 0x5440
testq %rax, %rax
je 0x8626
movq 0xd8(%rsp), %rcx
movq %rax, (%rcx)
movq 0x40(%rbx), %r14
movq 0x48(%rbx), %r13
cmpq %r13, %r14
je 0x867c
leaq 0x25a5b(%rip), %rbp     # 0x2e095
leaq 0xd8(%rsp), %r15
leaq 0x260(%rsp), %r12
movq %rbp, 0x260(%rsp)
movq %r15, %rdi
movq %r12, %rsi
callq 0x17364
movq (%r14), %rax
movq %rax, 0x260(%rsp)
movq %r15, %rdi
movq %r12, %rsi
callq 0x17364
addq $0x20, %r14
cmpq %r13, %r14
jne 0x864a
cmpq $0x0, 0x8(%rbx)
je 0x86bd
leaq 0x25a33(%rip), %rax     # 0x2e0bd
leaq 0x260(%rsp), %rsi
movq %rax, (%rsi)
leaq 0xd8(%rsp), %rdi
callq 0x17364
movq (%rbx), %rax
leaq 0x260(%rsp), %rsi
movq %rax, (%rsi)
leaq 0xd8(%rsp), %rdi
callq 0x17364
cmpq $0x0, 0x28(%rbx)
je 0x86ff
leaq 0x25a1c(%rip), %rax     # 0x2e0e7
leaq 0x260(%rsp), %rsi
movq %rax, (%rsi)
leaq 0xd8(%rsp), %rdi
callq 0x17364
movq 0x20(%rbx), %rax
leaq 0x260(%rsp), %rsi
movq %rax, (%rsi)
leaq 0xd8(%rsp), %rdi
callq 0x17364
movq 0x58(%rbx), %r14
movq 0x60(%rbx), %r12
cmpq %r12, %r14
je 0x873b
leaq 0xd8(%rsp), %rbx
leaq 0x260(%rsp), %r15
movq (%r14), %rax
movq %rax, 0x260(%rsp)
movq %rbx, %rdi
movq %r15, %rsi
callq 0x17364
addq $0x20, %r14
cmpq %r12, %r14
jne 0x871c
leaq 0x260(%rsp), %rsi
movq $0x0, (%rsi)
leaq 0xd8(%rsp), %rdi
callq 0x17364
movq 0xd8(%rsp), %rbx
leaq 0x140(%rsp), %rdi
callq 0x5460
cmpl $-0x1, %eax
je 0x8a13
leaq 0x260(%rsp), %rdi
callq 0x5650
cmpl $-0x1, %eax
je 0x8a06
movq (%rbx), %rsi
movq 0x39823(%rip), %rax     # 0x41fb8
movq (%rax), %r9
leaq 0xf0(%rsp), %rdi
leaq 0x140(%rsp), %rdx
leaq 0x260(%rsp), %rcx
movq %rbx, %r8
callq 0x5700
cmpl $-0x1, %eax
je 0x89f9
movl 0xf0(%rsp), %edi
leaq 0x30(%rsp), %rsi
xorl %edx, %edx
callq 0x52e0
movl %eax, %ebx
movl $0xff7f, %ebp           # imm = 0xFF7F
andl 0x30(%rsp), %ebp
leaq 0x260(%rsp), %rdi
callq 0x5040
leaq 0x140(%rsp), %rdi
callq 0x5520
movl $0xffffffff, %r14d      # imm = 0xFFFFFFFF
cmpl $-0x1, %ebx
je 0x8a19
testl %ebp, %ebp
jne 0x8a19
leaq 0x39339(%rip), %rax     # 0x41b50
movq %rax, 0x228(%rsp)
leaq 0x200(%rsp), %rax
movq %rax, 0x230(%rsp)
leaq 0x1c0(%rsp), %rcx
movq %rcx, 0x238(%rsp)
movb $0x1, 0x240(%rsp)
movq (%rax), %rdx
leaq 0x248(%rsp), %rdi
movq 0x220(%rsp), %rbx
movq %rbx, %rsi
movl $0x74, %ecx
xorl %r8d, %r8d
callq 0x213bc
leaq 0x248(%rsp), %rdi
callq 0x20692
movl $0xffffffff, %r14d      # imm = 0xFFFFFFFF
testb %al, %al
je 0x94f8
leaq 0x25b4a(%rip), %rsi     # 0x2e3d6
movq %rbx, %rdi
callq 0x1b994
movq %rax, 0x28(%rsp)
testq %rax, %rax
je 0x8aec
leaq 0x28(%rsp), %rdi
callq 0x1bd78
movq %rax, 0x140(%rsp)
testq %rax, %rax
je 0x89e7
cmpq 0x28(%rsp), %rax
je 0x89e7
leaq 0x260(%rsp), %r14
leaq 0x140(%rsp), %r15
movq %rax, 0x260(%rsp)
movq %r14, %rdi
callq 0x1ba44
testq %rax, %rax
je 0x8912
xorl %ecx, %ecx
cmpb $0x0, (%rax,%rcx)
je 0x8900
incq %rcx
cmpq $-0x1, %rcx
jne 0x88ef
jmp 0x8912
cmpq $0x4, %rcx
jne 0x8912
cmpl $0x6174656d, (%rax)     # imm = 0x6174656D
je 0x950a
movq %r15, %rdi
callq 0x1bd78
movq %rax, 0x260(%rsp)
movq %r14, %rdi
callq 0x1b8e4
testq %rax, %rax
je 0x893c
movq %r15, %rdi
callq 0x1bd78
jmp 0x89cf
movq %r15, %rdi
callq 0x1bb5c
movq %rax, 0x260(%rsp)
movq %r14, %rdi
callq 0x1b8e4
testq %rax, %rax
je 0x8963
movq %r15, %rdi
callq 0x1bb5c
jmp 0x89cf
movq %r15, %rdi
callq 0x1bb5c
movq %rax, 0x260(%rsp)
movq %r14, %rdi
callq 0x1b8f8
testb %al, %al
je 0x89b8
movq 0x140(%rsp), %rax
cmpq 0x28(%rsp), %rax
je 0x89d7
movq %r15, %rdi
callq 0x1bcbc
movq %rax, 0x140(%rsp)
movq %r15, %rdi
callq 0x1bb5c
movq %rax, 0x260(%rsp)
movq %r14, %rdi
callq 0x1b8f8
jmp 0x897b
movq 0x140(%rsp), %rax
cmpq 0x28(%rsp), %rax
je 0x89d7
movq %r15, %rdi
callq 0x1bb5c
movq %rax, 0x140(%rsp)
testq %rax, %rax
je 0x89e7
cmpq 0x28(%rsp), %rax
jne 0x88d8
leaq 0x260(%rsp), %rdi
callq 0x1b8d8
jmp 0x8af9
leaq 0x260(%rsp), %rdi
callq 0x5040
leaq 0x140(%rsp), %rdi
callq 0x5520
movl $0xffffffff, %r14d      # imm = 0xFFFFFFFF
movq 0xd8(%rsp), %rdi
testq %rdi, %rdi
je 0x8a36
movq 0xe8(%rsp), %rsi
subq %rdi, %rsi
callq 0x5380
movq 0x1c0(%rsp), %rdi
leaq 0x1d0(%rsp), %rax
cmpq %rax, %rdi
je 0x8a5b
movq 0x1d0(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x200(%rsp), %rdi
leaq 0x210(%rsp), %rax
cmpq %rax, %rdi
je 0x8a80
movq 0x210(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x1a0(%rsp), %rdi
leaq 0x1b0(%rsp), %rax
cmpq %rax, %rdi
je 0x8aa5
movq 0x1b0(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x1e0(%rsp), %rdi
leaq 0x1f0(%rsp), %rax
cmpq %rax, %rdi
je 0x8aca
movq 0x1f0(%rsp), %rsi
incq %rsi
callq 0x5380
leaq 0x120(%rsp), %rdi
callq 0x5180
movl %r14d, %eax
addq $0x15e8, %rsp           # imm = 0x15E8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x260(%rsp), %rdi
callq 0x1b8d8
leaq 0x260(%rsp), %rdi
movq (%rdi), %rax
movq %rax, (%rdi)
callq 0x1b8e4
testq %rax, %rax
jne 0x94f5
leaq 0x260(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
movl $0x8, %edx
callq 0x5620
leaq 0x148(%rsp), %rcx
movl $0x0, (%rcx)
xorl %eax, %eax
movq %rax, 0x8(%rcx)
movq %rcx, 0x10(%rcx)
movq %rcx, 0x18(%rcx)
movq %rax, 0x20(%rcx)
leaq 0x2589f(%rip), %rsi     # 0x2e3f5
leaq 0x28(%rsp), %rdi
callq 0x1b994
leaq 0x70(%rsp), %rdi
movq %rax, (%rdi)
leaq 0x25889(%rip), %rsi     # 0x2e3f8
callq 0x1b994
leaq 0x30(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x25883(%rip), %rdx     # 0x2e406
leaq 0xf0(%rsp), %rdi
callq 0x1b954
movq 0x100(%rsp), %rax
leaq 0x70(%rsp), %r15
movq %rax, 0x10(%r15)
movups 0xf0(%rsp), %xmm0
movaps %xmm0, (%r15)
movq 0x118(%rsp), %rax
leaq 0x90(%rsp), %r12
movq %rax, 0x10(%r12)
movups 0x108(%rsp), %xmm0
movaps %xmm0, (%r12)
leaq 0x50(%rsp), %rbp
leaq 0x30(%rsp), %r14
leaq 0x8(%rsp), %rbx
leaq 0x140(%rsp), %r13
movq %r15, %rdi
movq %r12, %rsi
callq 0x20522
testb %al, %al
je 0x8c5b
movq %r15, %rdi
callq 0x20542
movq (%rax), %rax
movq %rax, 0x50(%rsp)
movq %rbp, %rdi
leaq 0x257fe(%rip), %rsi     # 0x2e40d
callq 0x1bd3a
movq %r14, %rdi
movq %rax, %rsi
movq %rbx, %rdx
callq 0x76b4
movq %r13, %rdi
movq %r14, %rsi
callq 0x9b0a
movq 0x50(%rsp), %rcx
movq %rcx, (%rax)
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x8c51
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x5380
movq %r15, %rdi
callq 0x20596
jmp 0x8be6
leaq 0x25793(%rip), %rsi     # 0x2e3f5
leaq 0x28(%rsp), %rdi
callq 0x1b994
leaq 0x70(%rsp), %rdi
movq %rax, (%rdi)
leaq 0x2579a(%rip), %rsi     # 0x2e415
callq 0x1b994
leaq 0x30(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x25777(%rip), %rdx     # 0x2e406
leaq 0xf0(%rsp), %rdi
callq 0x1b954
movq 0x100(%rsp), %rax
leaq 0x70(%rsp), %r15
movq %rax, 0x10(%r15)
movups 0xf0(%rsp), %xmm0
movaps %xmm0, (%r15)
movq 0x118(%rsp), %rax
leaq 0x90(%rsp), %r12
movq %rax, 0x10(%r12)
movups 0x108(%rsp), %xmm0
movaps %xmm0, (%r12)
leaq 0x50(%rsp), %rbp
leaq 0x30(%rsp), %r14
leaq 0x8(%rsp), %rbx
leaq 0x140(%rsp), %r13
movq %r15, %rdi
movq %r12, %rsi
callq 0x20522
testb %al, %al
je 0x8d67
movq %r15, %rdi
callq 0x20542
movq (%rax), %rax
movq %rax, 0x50(%rsp)
movq %rbp, %rdi
leaq 0x256f2(%rip), %rsi     # 0x2e40d
callq 0x1bd3a
movq %r14, %rdi
movq %rax, %rsi
movq %rbx, %rdx
callq 0x76b4
movq %r13, %rdi
movq %r14, %rsi
callq 0x9b0a
movq 0x50(%rsp), %rcx
movq %rcx, (%rax)
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x8d5d
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x5380
movq %r15, %rdi
callq 0x20596
jmp 0x8cf2
leaq 0x100(%rsp), %rax
movq %rax, -0x10(%rax)
movb $0x0, (%rax)
leaq 0x80(%rsp), %r14
leaq 0xa0(%rsp), %rbp
leaq 0x60(%rsp), %r15
movq 0x260(%rsp), %rax
leaq 0x30(%rsp), %r12
xorl %r13d, %r13d
movq $0x0, 0xf8(%rsp)
movq 0xf0(%rsp), %rcx
movb $0x0, (%rcx)
movq -0x18(%rax), %rdi
leaq 0x260(%rsp), %rbx
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5350
movsbl %al, %edx
movq %rbx, %rdi
leaq 0xf0(%rsp), %rsi
callq 0x5710
movb 0x39a64(%rip), %al      # 0x42848
testb %al, %al
je 0x93fd
movb 0x39a7e(%rip), %al      # 0x42870
testb %al, %al
je 0x9454
xorps %xmm0, %xmm0
movaps %xmm0, 0x40(%rsp)
movaps %xmm0, 0x30(%rsp)
movq 0xf0(%rsp), %rdi
movq 0xf8(%rsp), %rsi
addq %rdi, %rsi
movq %r12, %rdx
leaq 0x39a04(%rip), %rcx     # 0x42828
xorl %r8d, %r8d
callq 0x151b5
testb %al, %al
je 0x8e92
movq %r14, 0x70(%rsp)
movq %r13, 0x78(%rsp)
movb %r13b, 0x80(%rsp)
movq %rbp, 0x90(%rsp)
movq %r13, 0x98(%rsp)
movb %r13b, 0xa0(%rsp)
movq 0x30(%rsp), %rax
movq 0x38(%rsp), %rcx
subq %rax, %rcx
je 0x8f01
movq %rcx, %rdx
sarq $0x3, %rdx
movabsq $-0x5555555555555555, %rsi # imm = 0xAAAAAAAAAAAAAAAB
imulq %rsi, %rdx
addq $-0x5, %rdx
cmpq $-0x3, %rdx
ja 0x8f01
addq $0x18, %rax
jmp 0x8f08
movq 0xf0(%rsp), %rdi
movq 0xf8(%rsp), %rsi
addq %rdi, %rsi
movq %r12, %rdx
leaq 0x399a1(%rip), %rcx     # 0x42850
xorl %r8d, %r8d
callq 0x151b5
testb %al, %al
je 0x93c5
movq 0x30(%rsp), %rax
movq 0x38(%rsp), %rdx
movq %rdx, %rcx
subq %rax, %rcx
je 0x8fa7
movq %rcx, %rsi
sarq $0x3, %rsi
movabsq $-0x5555555555555555, %rdi # imm = 0xAAAAAAAAAAAAAAAB
imulq %rdi, %rsi
addq $-0x5, %rsi
cmpq $-0x3, %rsi
ja 0x8fa7
leaq 0x18(%rax), %rdi
jmp 0x8faf
addq %rcx, %rax
addq $-0x48, %rax
cmpb $0x1, 0x10(%rax)
jne 0x8f43
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %r15, 0x50(%rsp)
leaq 0x50(%rsp), %rdi
callq 0x17142
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
testq %rdx, %rdx
sete %al
testq %rsi, %rsi
setne %cl
orb %al, %cl
jne 0x8f5b
jmp 0x9596
movq %r15, 0x50(%rsp)
movq $0x0, 0x58(%rsp)
movb $0x0, 0x60(%rsp)
movq %r15, %rsi
xorl %edx, %edx
addq %rsi, %rdx
leaq 0x70(%rsp), %rdi
callq 0x99a2
testb %al, %al
je 0x8fa0
movq 0x30(%rsp), %rax
movq 0x38(%rsp), %rcx
subq %rax, %rcx
je 0x8fdd
movq %rcx, %rdx
sarq $0x3, %rdx
movabsq $-0x5555555555555555, %rsi # imm = 0xAAAAAAAAAAAAAAAB
imulq %rsi, %rdx
addq $-0x6, %rdx
cmpq $-0x4, %rdx
ja 0x8fdd
addq $0x30, %rax
jmp 0x8fe4
xorl %ebx, %ebx
jmp 0x9193
leaq (%rax,%rcx), %rdi
addq $-0x48, %rdi
cmpb $0x1, 0x10(%rdi)
jne 0x902c
movq (%rdi), %rsi
movq 0x8(%rdi), %rdx
movq %r14, 0x70(%rsp)
leaq 0x70(%rsp), %rdi
callq 0x17142
movq 0x30(%rsp), %rax
movq 0x38(%rsp), %rdx
movq %rdx, %rcx
subq %rax, %rcx
jmp 0x9042
addq %rcx, %rax
addq $-0x48, %rax
cmpb $0x1, 0x10(%rax)
jne 0x914b
movq (%rax), %rsi
movq 0x8(%rax), %rdx
leaq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
leaq 0x8(%rsp), %rdi
callq 0x17142
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
testq %rdx, %rdx
sete %al
testq %rsi, %rsi
setne %cl
orb %al, %cl
jne 0x9165
jmp 0x9596
movq %r14, 0x70(%rsp)
movq $0x0, 0x78(%rsp)
movb $0x0, 0x80(%rsp)
movq %rbp, 0x90(%rsp)
movq %r13, 0x98(%rsp)
movb %r13b, 0xa0(%rsp)
movq %r15, 0x50(%rsp)
movq %r13, 0x58(%rsp)
movb %r13b, 0x60(%rsp)
cmpq %rdx, %rax
je 0x9093
movq %rcx, %rdx
sarq $0x3, %rdx
movabsq $-0x5555555555555555, %rsi # imm = 0xAAAAAAAAAAAAAAAB
imulq %rsi, %rdx
addq $-0x6, %rdx
cmpq $-0x4, %rdx
ja 0x9093
addq $0x30, %rax
jmp 0x909a
addq %rcx, %rax
addq $-0x48, %rax
cmpb $0x1, 0x10(%rax)
jne 0x90da
movq (%rax), %rsi
movq 0x8(%rax), %rdx
leaq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
leaq 0x8(%rsp), %rdi
callq 0x17142
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
testq %rdx, %rdx
sete %al
testq %rsi, %rsi
setne %cl
orb %al, %cl
jne 0x90f4
jmp 0x9596
leaq 0x18(%rsp), %rsi
movq %rsi, 0x8(%rsp)
movq $0x0, 0x10(%rsp)
movb $0x0, 0x18(%rsp)
xorl %edx, %edx
addq %rsi, %rdx
leaq 0x90(%rsp), %rdi
callq 0x99a2
testb %al, %al
je 0x9213
movq 0x30(%rsp), %rax
movq 0x38(%rsp), %rcx
subq %rax, %rcx
je 0x921a
movq %rcx, %rdx
sarq $0x3, %rdx
movabsq $-0x5555555555555555, %rsi # imm = 0xAAAAAAAAAAAAAAAB
imulq %rsi, %rdx
addq $-0x7, %rdx
cmpq $-0x5, %rdx
ja 0x921a
addq $0x48, %rax
jmp 0x9221
leaq 0x18(%rsp), %rsi
movq %rsi, 0x8(%rsp)
movq $0x0, 0x10(%rsp)
movb $0x0, 0x18(%rsp)
xorl %edx, %edx
addq %rsi, %rdx
leaq 0x90(%rsp), %rdi
callq 0x99a2
movl %eax, %ebx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x9193
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x50(%rsp), %rdi
cmpq %r15, %rdi
je 0x91aa
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x5380
testb %bl, %bl
je 0x938e
leaq 0x28(%rsp), %rdi
leaq 0x26185(%rip), %rsi     # 0x2f343
callq 0x1cc02
movq %rax, 0x50(%rsp)
leaq 0x50(%rsp), %rdi
leaq 0x252ee(%rip), %rsi     # 0x2e4c2
callq 0x1be52
movq %rax, 0x8(%rsp)
movq 0x70(%rsp), %rsi
leaq 0x8(%rsp), %rdi
callq 0x1b128
leaq 0x50(%rsp), %rdi
callq 0x1bcea
movq %rax, 0x8(%rsp)
movq 0x90(%rsp), %rsi
leaq 0x8(%rsp), %rdi
callq 0x1ff40
jmp 0x938e
xorl %ebx, %ebx
jmp 0x92ca
addq %rcx, %rax
addq $-0x48, %rax
cmpb $0x1, 0x10(%rax)
jne 0x9270
movq (%rax), %rsi
movq 0x8(%rax), %rdx
leaq 0xc8(%rsp), %rax
movq %rax, 0xb8(%rsp)
leaq 0xb8(%rsp), %rdi
callq 0x17142
movq 0xb8(%rsp), %rsi
movq 0xc0(%rsp), %rdx
testq %rdx, %rdx
sete %al
testq %rsi, %rsi
setne %cl
orb %al, %cl
jne 0x9296
jmp 0x9596
leaq 0xc8(%rsp), %rsi
movq %rsi, 0xb8(%rsp)
movq $0x0, 0xc0(%rsp)
movb $0x0, 0xc8(%rsp)
xorl %edx, %edx
addq %rsi, %rdx
leaq 0x50(%rsp), %rdi
callq 0x99a2
movl %eax, %ebx
movq 0xb8(%rsp), %rdi
leaq 0xc8(%rsp), %rax
cmpq %rax, %rdi
je 0x92ca
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x92e6
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5380
testb %bl, %bl
je 0x9377
leaq 0x140(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x171bc
leaq 0x148(%rsp), %rcx
cmpq %rcx, %rax
je 0x9377
addq $0x40, %rax
movq %rax, %rdi
leaq 0x26028(%rip), %rsi     # 0x2f343
callq 0x1cc02
movq %rax, 0x8(%rsp)
leaq 0x8(%rsp), %rdi
leaq 0x25191(%rip), %rsi     # 0x2e4c2
callq 0x1be52
movq %rax, 0xb8(%rsp)
movq 0x90(%rsp), %rsi
leaq 0xb8(%rsp), %rdi
callq 0x1b128
leaq 0x8(%rsp), %rdi
callq 0x1bcea
movq %rax, 0xb8(%rsp)
movq 0x50(%rsp), %rsi
leaq 0xb8(%rsp), %rdi
callq 0x1ff40
movq 0x50(%rsp), %rdi
cmpq %r15, %rdi
je 0x938e
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x90(%rsp), %rdi
cmpq %rbp, %rdi
je 0x93ab
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x70(%rsp), %rdi
cmpq %r14, %rdi
je 0x93c5
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x93dc
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x5380
movq 0x260(%rsp), %rax
movq -0x18(%rax), %rcx
movl 0x280(%rsp,%rcx), %ebx
testb $0x5, %bl
je 0x8d9b
jmp 0x94ab
leaq 0x39444(%rip), %rdi     # 0x42848
callq 0x56f0
testl %eax, %eax
je 0x8dec
leaq 0x39410(%rip), %rdi     # 0x42828
leaq 0x25005(%rip), %rsi     # 0x2e424
movl $0x10, %edx
callq 0x9b86
leaq 0x7be(%rip), %rdi       # 0x9bee
leaq 0x393f1(%rip), %rsi     # 0x42828
leaq 0x38fba(%rip), %rdx     # 0x423f8
callq 0x5320
leaq 0x393fe(%rip), %rdi     # 0x42848
callq 0x5250
jmp 0x8dec
leaq 0x39415(%rip), %rdi     # 0x42870
callq 0x56f0
testl %eax, %eax
je 0x8dfa
leaq 0x393e1(%rip), %rdi     # 0x42850
leaq 0x24fea(%rip), %rsi     # 0x2e460
movl $0x10, %edx
callq 0x9b86
leaq 0x767(%rip), %rdi       # 0x9bee
leaq 0x393c2(%rip), %rsi     # 0x42850
leaq 0x38f63(%rip), %rdx     # 0x423f8
callq 0x5320
leaq 0x393cf(%rip), %rdi     # 0x42870
callq 0x5250
jmp 0x8dfa
movq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0x94d0
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x5380
leaq 0x140(%rsp), %rdi
callq 0x17202
leaq 0x260(%rsp), %rdi
callq 0x50d0
testb $0x1, %bl
movl $0xffffffff, %r14d      # imm = 0xFFFFFFFF
jne 0x94f8
xorl %r14d, %r14d
leaq 0x228(%rsp), %rdi
callq 0x9974
jmp 0x8a19
movq 0x140(%rsp), %rax
movq %rax, 0x260(%rsp)
jmp 0x8af9
leaq 0x3935a(%rip), %rdi     # 0x42880
callq 0x56f0
testl %eax, %eax
je 0x80b4
leaq 0x260(%rsp), %rdi
callq 0x17250
leaq 0x260(%rsp), %rdi
callq 0x5510
movl %eax, %ecx
leaq (%rcx,%rcx,2), %rcx
shrq $0x20, %rcx
movl %eax, %edx
subl %ecx, %edx
shrl %edx
addl %ecx, %edx
shrl $0x1e, %edx
movl %edx, %ecx
shll $0x1f, %ecx
orl %edx, %ecx
leal (%rax,%rcx), %edx
cmpl $0x1, %edx
adcl %eax, %ecx
movq %rcx, 0x39300(%rip)     # 0x42878
leaq 0x260(%rsp), %rdi
callq 0x5340
leaq 0x392f4(%rip), %rdi     # 0x42880
callq 0x5250
jmp 0x80b4
callq 0x50e0
jmp 0x95af
movq %rax, %rbx
leaq 0x260(%rsp), %rdi
callq 0x5340
jmp 0x95ba
movq %rax, %rdi
callq 0x764a
movq %rax, %rbx
leaq 0x392bf(%rip), %rdi     # 0x42880
callq 0x5240
jmp 0x996c
movq %rax, %rbx
leaq 0x3929b(%rip), %rdi     # 0x42870
jmp 0x95e1
movq %rax, %rbx
leaq 0x39267(%rip), %rdi     # 0x42848
callq 0x5240
jmp 0x9852
jmp 0x9636
jmp 0x9662
jmp 0x984a
jmp 0x984a
jmp 0x9662
movq %rax, %rbx
movq 0xb8(%rsp), %rdi
leaq 0xc8(%rsp), %rax
cmpq %rax, %rdi
je 0x9639
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0x5380
jmp 0x9639
jmp 0x9662
jmp 0x982c
jmp 0x9662
jmp 0x9662
jmp 0x9662
jmp 0x965d
jmp 0x9636
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x9665
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5380
jmp 0x9665
jmp 0x965d
jmp 0x96bc
jmp 0x965d
movq %rax, %rbx
jmp 0x967c
movq %rax, %rbx
movq 0x50(%rsp), %rdi
cmpq %r15, %rdi
je 0x967c
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x90(%rsp), %rdi
cmpq %rbp, %rdi
je 0x9699
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x70(%rsp), %rdi
cmpq %r14, %rdi
je 0x982f
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x5380
jmp 0x982f
movq %rax, %rbx
leaq 0x260(%rsp), %rdi
callq 0x5040
leaq 0x140(%rsp), %rdi
callq 0x5520
jmp 0x98ae
jmp 0x9895
jmp 0x98ab
jmp 0x98ab
jmp 0x98ab
jmp 0x98ab
jmp 0x9708
jmp 0x984a
jmp 0x984a
jmp 0x984a
movq %rax, %rbx
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x9877
movq 0x40(%rsp), %rsi
jmp 0x986f
jmp 0x984a
jmp 0x984a
jmp 0x984a
jmp 0x98ab
movq %rax, %rbx
jmp 0x98cb
movq %rax, %rbx
movq 0x260(%rsp), %rdi
cmpq %rbp, %rdi
je 0x9769
movq 0x270(%rsp), %rsi
incq %rsi
callq 0x5380
jmp 0x9769
movq %rax, %rbx
movq 0x140(%rsp), %rdi
cmpq %r14, %rdi
je 0x98f0
movq 0x150(%rsp), %rsi
jmp 0x98e8
movq %rax, %rbx
jmp 0x98f0
movq %rax, %rbx
movq 0x260(%rsp), %rdi
cmpq %rbp, %rdi
je 0x97b4
movq 0x270(%rsp), %rsi
incq %rsi
callq 0x5380
jmp 0x97b4
movq %rax, %rbx
movq 0x140(%rsp), %rdi
cmpq %r14, %rdi
je 0x9915
movq 0x150(%rsp), %rsi
jmp 0x990d
movq %rax, %rbx
jmp 0x9915
movq %rax, %rbx
movq 0x260(%rsp), %rdi
cmpq %rbp, %rdi
je 0x993a
movq 0x270(%rsp), %rsi
jmp 0x9932
movq %rax, %rbx
jmp 0x993a
movq %rax, %rbx
movq 0x260(%rsp), %rdi
cmpq %rbp, %rdi
je 0x995f
movq 0x270(%rsp), %rsi
jmp 0x9957
movq %rax, %rbx
jmp 0x995f
movq %rax, %rbx
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x9852
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x5380
jmp 0x9852
jmp 0x984a
movq %rax, %rbx
jmp 0x9877
movq %rax, %rbx
movq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0x9877
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x5380
leaq 0x140(%rsp), %rdi
callq 0x17202
leaq 0x260(%rsp), %rdi
callq 0x50d0
jmp 0x9898
jmp 0x9895
movq %rax, %rbx
leaq 0x228(%rsp), %rdi
callq 0x9974
jmp 0x98ae
jmp 0x98ab
jmp 0x98ab
movq %rax, %rbx
movq 0xd8(%rsp), %rdi
testq %rdi, %rdi
je 0x98cb
movq 0xe8(%rsp), %rsi
subq %rdi, %rsi
callq 0x5380
movq 0x1c0(%rsp), %rdi
leaq 0x1d0(%rsp), %rax
cmpq %rax, %rdi
je 0x98f0
movq 0x1d0(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x200(%rsp), %rdi
leaq 0x210(%rsp), %rax
cmpq %rax, %rdi
je 0x9915
movq 0x210(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x1a0(%rsp), %rdi
leaq 0x1b0(%rsp), %rax
cmpq %rax, %rdi
je 0x993a
movq 0x1b0(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x1e0(%rsp), %rdi
leaq 0x1f0(%rsp), %rax
cmpq %rax, %rdi
je 0x995f
movq 0x1f0(%rsp), %rsi
incq %rsi
callq 0x5380
leaq 0x120(%rsp), %rdi
callq 0x5180
movq %rbx, %rdi
callq 0x56d0