// File: /workspace/github_cpp_makefile_star2_O1/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 $0x1618, %rsp           # imm = 0x1618
movq %rdx, 0x250(%rsp)
movq %rsi, 0x248(%rsp)
movq %rdi, %r14
movaps 0x272e9(%rip), %xmm0    # 0x2f390
movaps %xmm0, 0x120(%rsp)
movb $0x0, 0x130(%rsp)
movb 0x3b7c3(%rip), %al      # 0x43880
testb %al, %al
je 0x95b7
leaq 0x120(%rsp), %r12
movq %r12, %rdi
callq 0x51a0
leaq (%rax,%r12), %rbx
decq %rbx
movabsq $0x200000005, %r13      # imm = 0x200000005
leaq 0x272c3(%rip), %r15     # 0x2f3b0
imulq $0xbc8f, 0x3b780(%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, 0x3b756(%rip)     # 0x43878
movq %rbx, %rdx
xorl %ecx, %ecx
movl %eax, %esi
shrl %cl, %esi
andl $0x1f, %esi
movb (%rsi,%r15), %sil
movb %sil, (%rdx)
addq $0x5, %rcx
decq %rdx
cmpq $0x1e, %rcx
jne 0x8127
movq %r12, %rdi
movl $0x1c0, %esi            # imm = 0x1C0
callq 0x51b0
cmpl $-0x1, %eax
jne 0x8169
movl %eax, %ebp
callq 0x5070
cmpl $0x11, (%rax)
je 0x80ed
cmpl $-0x1, %ebp
je 0x8a43
movq (%r14), %rax
movq 0x8(%r14), %rcx
movq %rax, 0x168(%rsp)
leaq (%rax,%rcx), %rdx
movq %rdx, 0x170(%rsp)
testq %rcx, %rcx
sete %cl
testq %rax, %rax
setne %al
orb %cl, %al
je 0x95b2
movq %r14, %r15
movq %r14, %rdi
movl $0x2f, %esi
movq $-0x1, %rdx
callq 0x57b0
cmpq $-0x1, %rax
movq 0x250(%rsp), %r14
je 0x81dc
incq %rax
leaq 0x168(%rsp), %r12
movq %r12, %rdi
movq %rax, %rsi
callq 0x9bd2
movq %rax, (%r12)
movq %rdx, 0x8(%r12)
movq 0x168(%rsp), %rsi
movq 0x170(%rsp), %rdx
leaq 0x2a0(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x290(%rsp), %rdi
callq 0x79aa
leaq 0x271c5(%rip), %rsi     # 0x2f3d1
leaq 0x290(%rsp), %rdi
callq 0x5790
leaq 0x1c8(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8249
movq %rdx, 0x1b8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x1c8(%rsp)
jmp 0x824f
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x1c0(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x290(%rsp), %rdi
cmpq %rbp, %rdi
je 0x8287
movq 0x2a0(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x168(%rsp), %rsi
movq 0x170(%rsp), %rdx
leaq 0x290(%rsp), %rdi
movq %rbp, (%rdi)
callq 0x79aa
leaq 0x28465(%rip), %rsi     # 0x30713
leaq 0x290(%rsp), %rdi
callq 0x5790
leaq 0x188(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x82eb
movq %rdx, 0x178(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x188(%rsp)
jmp 0x82f1
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x180(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x290(%rsp), %rdi
cmpq %rbp, %rdi
je 0x8329
movq 0x2a0(%rsp), %rsi
incq %rsi
callq 0x5380
leaq 0x1e8(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x120(%rsp), %r12
movq %r12, %rdi
callq 0x51a0
leaq (%rsp,%rax), %rdx
addq $0x120, %rdx            # imm = 0x120
leaq 0x1d8(%rsp), %rdi
movq %r12, %rsi
callq 0x79aa
leaq 0x1d8(%rsp), %rdi
movq 0x8(%rdi), %rsi
movl $0x1, %ecx
xorl %edx, %edx
movl $0x2f, %r8d
callq 0x5740
movq %rbp, 0x290(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x83aa
movq %rdx, 0x290(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x2a0(%rsp)
jmp 0x83b1
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
movq 0x8(%rax), %rdx
leaq 0x290(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x1b8(%rsp), %rsi
movq 0x1c0(%rsp), %rdx
callq 0x5110
leaq 0x238(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8415
movq %rdx, 0x228(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x238(%rsp)
jmp 0x841b
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x230(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x290(%rsp), %rdi
cmpq %rbp, %rdi
je 0x8453
movq 0x2a0(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x1d8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x8470
movq 0x1e8(%rsp), %rsi
incq %rsi
callq 0x5380
leaq 0x1d8(%rsp), %r13
movq %rbx, (%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 0x79aa
leaq 0x1d8(%rsp), %rdi
movq 0x8(%rdi), %rsi
movl $0x1, %ecx
xorl %edx, %edx
movl $0x2f, %r8d
callq 0x5740
movq %rbp, 0x290(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x84ec
movq %rdx, 0x290(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x2a0(%rsp)
jmp 0x84f3
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
movq 0x8(%rax), %rdx
leaq 0x290(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x178(%rsp), %rsi
movq 0x180(%rsp), %rdx
callq 0x5110
leaq 0x1a8(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8557
movq %rdx, 0x198(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x1a8(%rsp)
jmp 0x855d
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x1a0(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x290(%rsp), %rdi
cmpq %rbp, %rdi
je 0x8595
movq 0x2a0(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x1d8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x85b2
movq 0x1e8(%rsp), %rsi
incq %rsi
callq 0x5380
leaq 0x26e1d(%rip), %rax     # 0x2f3d6
leaq 0x290(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x26e11(%rip), %rax     # 0x2f3dc
movq %rax, 0x8(%rsi)
leaq 0x26e0e(%rip), %rax     # 0x2f3e4
movq %rax, 0x10(%rsi)
leaq 0x26e08(%rip), %rax     # 0x2f3e9
movq %rax, 0x18(%rsi)
movq %r12, 0x20(%rsi)
leaq 0x26dfc(%rip), %rax     # 0x2f3ec
movq %rax, 0x28(%rsi)
movq 0x178(%rsp), %rax
movq %rax, 0x30(%rsi)
movq (%r15), %rax
movq %rax, 0x38(%rsi)
leaq 0xe8(%rsp), %rdi
leaq 0x1d8(%rsp), %rcx
movl $0x8, %edx
callq 0x9b8c
leaq 0x26dc7(%rip), %rdi     # 0x2f3ef
callq 0x5440
testq %rax, %rax
je 0x863d
movq 0xe8(%rsp), %rcx
movq %rax, (%rcx)
movq 0x40(%r14), %rbx
movq 0x48(%r14), %r13
cmpq %r13, %rbx
je 0x8693
leaq 0x26a44(%rip), %rbp     # 0x2f095
leaq 0xe8(%rsp), %r15
leaq 0x290(%rsp), %r12
movq %rbp, 0x290(%rsp)
movq %r15, %rdi
movq %r12, %rsi
callq 0x17448
movq (%rbx), %rax
movq %rax, 0x290(%rsp)
movq %r15, %rdi
movq %r12, %rsi
callq 0x17448
addq $0x20, %rbx
cmpq %r13, %rbx
jne 0x8661
cmpq $0x0, 0x8(%r14)
je 0x86d4
leaq 0x26a1c(%rip), %rax     # 0x2f0bd
leaq 0x290(%rsp), %rsi
movq %rax, (%rsi)
leaq 0xe8(%rsp), %rdi
callq 0x17448
movq (%r14), %rax
leaq 0x290(%rsp), %rsi
movq %rax, (%rsi)
leaq 0xe8(%rsp), %rdi
callq 0x17448
cmpq $0x0, 0x28(%r14)
je 0x8716
leaq 0x26a05(%rip), %rax     # 0x2f0e7
leaq 0x290(%rsp), %rsi
movq %rax, (%rsi)
leaq 0xe8(%rsp), %rdi
callq 0x17448
movq 0x20(%r14), %rax
leaq 0x290(%rsp), %rsi
movq %rax, (%rsi)
leaq 0xe8(%rsp), %rdi
callq 0x17448
movq 0x58(%r14), %rbx
movq 0x60(%r14), %r12
cmpq %r12, %rbx
je 0x8752
leaq 0xe8(%rsp), %r14
leaq 0x290(%rsp), %r15
movq (%rbx), %rax
movq %rax, 0x290(%rsp)
movq %r14, %rdi
movq %r15, %rsi
callq 0x17448
addq $0x20, %rbx
cmpq %r12, %rbx
jne 0x8733
leaq 0x290(%rsp), %rsi
movq $0x0, (%rsi)
leaq 0xe8(%rsp), %rdi
callq 0x17448
movq 0xe8(%rsp), %r14
leaq 0x1d8(%rsp), %rdi
callq 0x5460
cmpl $-0x1, %eax
je 0x8a67
leaq 0x290(%rsp), %rdi
callq 0x5650
cmpl $-0x1, %eax
je 0x8a5a
movq (%r14), %rsi
movq 0x3a80c(%rip), %rax     # 0x42fb8
movq (%rax), %r9
leaq 0x70(%rsp), %rdi
leaq 0x1d8(%rsp), %rdx
leaq 0x290(%rsp), %rcx
movq %r14, %r8
callq 0x5700
cmpl $-0x1, %eax
je 0x8a4d
movl 0x70(%rsp), %edi
leaq 0x10(%rsp), %rsi
xorl %edx, %edx
callq 0x52e0
movl %eax, %r14d
movl $0xff7f, %ebx           # imm = 0xFF7F
andl 0x10(%rsp), %ebx
leaq 0x290(%rsp), %rdi
callq 0x5040
leaq 0x1d8(%rsp), %rdi
callq 0x5520
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
cmpl $-0x1, %r14d
je 0x8a6c
testl %ebx, %ebx
jne 0x8a6c
leaq 0x3a327(%rip), %rax     # 0x42b50
movq %rax, 0x258(%rsp)
leaq 0x228(%rsp), %rax
movq %rax, 0x260(%rsp)
leaq 0x198(%rsp), %rcx
movq %rcx, 0x268(%rsp)
movb $0x1, 0x270(%rsp)
movq (%rax), %rdx
leaq 0x278(%rsp), %rdi
movq 0x248(%rsp), %rbx
movq %rbx, %rsi
movl $0x74, %ecx
xorl %r8d, %r8d
callq 0x21aa6
leaq 0x278(%rsp), %rdi
callq 0x20cc2
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
testb %al, %al
je 0x95a0
leaq 0x26b39(%rip), %rsi     # 0x2f3d6
movq %rbx, %rdi
callq 0x1bc36
movq %rax, 0x8(%rsp)
testq %rax, %rax
je 0x8b3e
leaq 0x8(%rsp), %rdi
callq 0x1c01e
movq %rax, 0x70(%rsp)
testq %rax, %rax
je 0x8a31
cmpq 0x8(%rsp), %rax
je 0x8a31
leaq 0x1d8(%rsp), %rbx
leaq 0x290(%rsp), %r14
leaq 0x70(%rsp), %r15
movq %rax, 0x1d8(%rsp)
movq %rbx, %rdi
callq 0x1bce8
movq %rax, %rbp
leaq 0x27a2e(%rip), %rax     # 0x30333
movq %rax, 0x290(%rsp)
movq %r14, %rdi
movq $-0x1, %rsi
callq 0x76fa
movq %rax, %r12
movq %rdx, %r13
movq %rbp, 0x290(%rsp)
movq %r14, %rdi
movq $-0x1, %rsi
callq 0x76fa
movq %rdx, %rcx
subq %rax, %rdx
subq %r12, %r13
cmpq %r13, %rdx
jne 0x8963
cmpq %rax, %rcx
je 0x8b4d
movq %rax, %rdi
movq %r12, %rsi
callq 0x53a0
testl %eax, %eax
je 0x8b4d
movq %r15, %rdi
callq 0x1c01e
movq %rax, 0x290(%rsp)
movq %r14, %rdi
callq 0x1bb86
testq %rax, %rax
je 0x898d
movq %r15, %rdi
callq 0x1c01e
jmp 0x8a17
movq %r15, %rdi
callq 0x1be04
movq %rax, 0x290(%rsp)
movq %r14, %rdi
callq 0x1bb86
testq %rax, %rax
je 0x89b4
movq %r15, %rdi
callq 0x1be04
jmp 0x8a17
movq %r15, %rdi
callq 0x1be04
movq %rax, 0x290(%rsp)
movq %r14, %rdi
callq 0x1bb9a
testb %al, %al
je 0x8a03
movq 0x70(%rsp), %rax
cmpq 0x8(%rsp), %rax
je 0x8a03
movq %r15, %rdi
callq 0x1bf62
movq %rax, 0x70(%rsp)
movq %r15, %rdi
callq 0x1be04
movq %rax, 0x290(%rsp)
movq %r14, %rdi
callq 0x1bb9a
jmp 0x89cc
movq 0x70(%rsp), %rax
cmpq 0x8(%rsp), %rax
je 0x8a1c
movq %r15, %rdi
callq 0x1be04
movq %rax, 0x70(%rsp)
movq 0x70(%rsp), %rax
testq %rax, %rax
je 0x8a31
cmpq 0x8(%rsp), %rax
jne 0x88eb
leaq 0x290(%rsp), %rdi
callq 0x1bb7a
jmp 0x8b5a
movl $0x1, %ebp
jmp 0x8b2a
leaq 0x290(%rsp), %rdi
callq 0x5040
leaq 0x1d8(%rsp), %rdi
callq 0x5520
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movq 0xe8(%rsp), %rdi
testq %rdi, %rdi
je 0x8a89
movq 0xf8(%rsp), %rsi
subq %rdi, %rsi
callq 0x5380
movq 0x198(%rsp), %rdi
leaq 0x1a8(%rsp), %rax
cmpq %rax, %rdi
je 0x8aae
movq 0x1a8(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x228(%rsp), %rdi
leaq 0x238(%rsp), %rax
cmpq %rax, %rdi
je 0x8ad3
movq 0x238(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x178(%rsp), %rdi
leaq 0x188(%rsp), %rax
cmpq %rax, %rdi
je 0x8af8
movq 0x188(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x1b8(%rsp), %rdi
leaq 0x1c8(%rsp), %rax
cmpq %rax, %rdi
je 0x8b1d
movq 0x1c8(%rsp), %rsi
incq %rsi
callq 0x5380
leaq 0x120(%rsp), %rdi
callq 0x5180
movl %ebp, %eax
addq $0x1618, %rsp           # imm = 0x1618
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x290(%rsp), %rdi
callq 0x1bb7a
jmp 0x8b5a
movq 0x70(%rsp), %rax
movq %rax, 0x290(%rsp)
leaq 0x290(%rsp), %rdi
movq (%rdi), %rax
movq %rax, (%rdi)
callq 0x1bb86
testq %rax, %rax
jne 0x959e
leaq 0x290(%rsp), %rdi
leaq 0x198(%rsp), %rsi
movl $0x8, %edx
callq 0x5620
leaq 0x1e0(%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 0x2683e(%rip), %rsi     # 0x2f3f5
leaq 0x8(%rsp), %rdi
callq 0x1bc36
leaq 0x50(%rsp), %rdi
movq %rax, (%rdi)
leaq 0x26828(%rip), %rsi     # 0x2f3f8
callq 0x1bc36
leaq 0x10(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x26822(%rip), %rdx     # 0x2f406
leaq 0x70(%rsp), %rdi
callq 0x1bbf6
movq 0x80(%rsp), %rax
leaq 0x50(%rsp), %r14
movq %rax, 0x10(%r14)
movups 0x70(%rsp), %xmm0
movaps %xmm0, (%r14)
movq 0x98(%rsp), %rax
leaq 0xc0(%rsp), %r15
movq %rax, 0x10(%r15)
movups 0x88(%rsp), %xmm0
movaps %xmm0, (%r15)
leaq 0x30(%rsp), %r13
leaq 0x10(%rsp), %rbp
leaq 0x100(%rsp), %rbx
leaq 0x1d8(%rsp), %r12
movq %r14, %rdi
movq %r15, %rsi
callq 0x20b60
testb %al, %al
je 0x8cb7
movq %r14, %rdi
callq 0x20b76
movq (%rax), %rax
movq %rax, 0x30(%rsp)
movq %r13, %rdi
leaq 0x267a2(%rip), %rsi     # 0x2f40d
callq 0x1bfe0
movq %rbp, %rdi
movq %rax, %rsi
movq %rbx, %rdx
callq 0x762e
movq %r12, %rdi
movq %rbp, %rsi
callq 0x9c02
movq 0x30(%rsp), %rcx
movq %rcx, (%rax)
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x8cad
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x5380
movq %r14, %rdi
callq 0x20bca
jmp 0x8c42
leaq 0x26737(%rip), %rsi     # 0x2f3f5
leaq 0x8(%rsp), %rdi
callq 0x1bc36
leaq 0x50(%rsp), %rdi
movq %rax, (%rdi)
leaq 0x2673e(%rip), %rsi     # 0x2f415
callq 0x1bc36
leaq 0x10(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x2671b(%rip), %rdx     # 0x2f406
leaq 0x70(%rsp), %rdi
callq 0x1bbf6
movq 0x80(%rsp), %rax
leaq 0x50(%rsp), %r14
movq %rax, 0x10(%r14)
movups 0x70(%rsp), %xmm0
movaps %xmm0, (%r14)
movq 0x98(%rsp), %rax
leaq 0xc0(%rsp), %r15
movq %rax, 0x10(%r15)
movups 0x88(%rsp), %xmm0
movaps %xmm0, (%r15)
leaq 0x30(%rsp), %r13
leaq 0x10(%rsp), %rbp
leaq 0x100(%rsp), %rbx
leaq 0x1d8(%rsp), %r12
movq %r14, %rdi
movq %r15, %rsi
callq 0x20b60
testb %al, %al
je 0x8dbe
movq %r14, %rdi
callq 0x20b76
movq (%rax), %rax
movq %rax, 0x30(%rsp)
movq %r13, %rdi
leaq 0x2669b(%rip), %rsi     # 0x2f40d
callq 0x1bfe0
movq %rbp, %rdi
movq %rax, %rsi
movq %rbx, %rdx
callq 0x762e
movq %r12, %rdi
movq %rbp, %rsi
callq 0x9c02
movq 0x30(%rsp), %rcx
movq %rcx, (%rax)
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x8db4
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x5380
movq %r14, %rdi
callq 0x20bca
jmp 0x8d49
leaq 0x80(%rsp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x60(%rsp), %r15
leaq 0xd0(%rsp), %r14
leaq 0x40(%rsp), %r12
leaq 0x10(%rsp), %r13
movq $0x0, 0x78(%rsp)
movq 0x70(%rsp), %rax
movb $0x0, (%rax)
movq 0x290(%rsp), %rax
movq -0x18(%rax), %rdi
leaq 0x290(%rsp), %rbx
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5350
movsbl %al, %edx
movq %rbx, %rdi
leaq 0x70(%rsp), %rsi
callq 0x5710
movb 0x3aa14(%rip), %al      # 0x43848
testb %al, %al
je 0x94aa
movb 0x3aa2e(%rip), %al      # 0x43870
testb %al, %al
je 0x9501
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movaps %xmm0, 0x10(%rsp)
movq 0x70(%rsp), %rdi
movq 0x78(%rsp), %rsi
addq %rdi, %rsi
movq %r13, %rdx
leaq 0x3a9ba(%rip), %rcx     # 0x43828
xorl %r8d, %r8d
callq 0x152a3
testb %al, %al
je 0x8f03
movq %r15, 0x50(%rsp)
xorl %edx, %edx
movq %rdx, 0x58(%rsp)
movb %dl, 0x60(%rsp)
movq %r14, 0xc0(%rsp)
movq %rdx, 0xc8(%rsp)
movb %dl, 0xd0(%rsp)
movq 0x10(%rsp), %rcx
movq 0x18(%rsp), %rax
cmpq %rax, %rcx
je 0x8ed7
movq %rax, %rdx
subq %rcx, %rdx
sarq $0x3, %rdx
movabsq $-0x5555555555555555, %rsi # imm = 0xAAAAAAAAAAAAAAAB
imulq %rsi, %rdx
addq $-0x5, %rdx
cmpq $-0x2, %rdx
setb %dl
addq $0x18, %rcx
addq $-0x48, %rax
testb %dl, %dl
cmovneq %rcx, %rax
cmpb $0x1, 0x10(%rax)
jne 0x8f65
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %r12, 0x30(%rsp)
leaq 0x30(%rsp), %rdi
callq 0x17220
jmp 0x8f78
movq 0x70(%rsp), %rdi
movq 0x78(%rsp), %rsi
addq %rdi, %rsi
movq %r13, %rdx
leaq 0x3a936(%rip), %rcx     # 0x43850
xorl %r8d, %r8d
callq 0x152a3
testb %al, %al
je 0x9472
movq 0x10(%rsp), %rcx
movq 0x18(%rsp), %rax
cmpq %rax, %rcx
je 0x8feb
movq %rax, %rdx
subq %rcx, %rdx
sarq $0x3, %rdx
movabsq $-0x5555555555555555, %rsi # imm = 0xAAAAAAAAAAAAAAAB
imulq %rsi, %rdx
addq $-0x5, %rdx
cmpq $-0x2, %rdx
setb %dl
jmp 0x8fed
movq %r12, 0x30(%rsp)
movq $0x0, 0x38(%rsp)
movb $0x0, 0x40(%rsp)
movq 0x30(%rsp), %rsi
movq 0x38(%rsp), %rdx
testq %rdx, %rdx
sete %al
testq %rsi, %rsi
setne %cl
orb %al, %cl
je 0x95b2
addq %rsi, %rdx
leaq 0x50(%rsp), %rdi
callq 0x9a6a
movl %eax, %ebp
testb %al, %al
je 0x8fe4
movq 0x10(%rsp), %rcx
movq 0x18(%rsp), %rax
cmpq %rax, %rcx
je 0x915f
movq %rax, %rdx
subq %rcx, %rdx
sarq $0x3, %rdx
movabsq $-0x5555555555555555, %rsi # imm = 0xAAAAAAAAAAAAAAAB
imulq %rsi, %rdx
addq $-0x6, %rdx
cmpq $-0x3, %rdx
setb %dl
jmp 0x9161
xorl %ebx, %ebx
jmp 0x91f5
xorl %edx, %edx
addq $0x18, %rcx
addq $-0x48, %rax
testb %dl, %dl
cmovneq %rcx, %rax
cmpb $0x1, 0x10(%rax)
jne 0x9019
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %r15, 0x50(%rsp)
leaq 0x50(%rsp), %rdi
callq 0x17220
jmp 0x902c
movq %r15, 0x50(%rsp)
movq $0x0, 0x58(%rsp)
movb $0x0, 0x60(%rsp)
movq %r14, 0xc0(%rsp)
xorl %edx, %edx
movq %rdx, 0xc8(%rsp)
movb %dl, 0xd0(%rsp)
movq %r12, 0x30(%rsp)
movq %rdx, 0x38(%rsp)
movb %dl, 0x40(%rsp)
movq 0x10(%rsp), %rcx
movq 0x18(%rsp), %rax
cmpq %rax, %rcx
je 0x9085
movq %rax, %rdx
subq %rcx, %rdx
sarq $0x3, %rdx
movabsq $-0x5555555555555555, %rsi # imm = 0xAAAAAAAAAAAAAAAB
imulq %rsi, %rdx
addq $-0x6, %rdx
cmpq $-0x3, %rdx
setb %dl
addq $0x30, %rcx
addq $-0x48, %rax
testb %dl, %dl
cmovneq %rcx, %rax
cmpb $0x1, 0x10(%rax)
jne 0x90bf
movq (%rax), %rsi
movq 0x8(%rax), %rdx
leaq 0xb0(%rsp), %rax
movq %rax, 0xa0(%rsp)
leaq 0xa0(%rsp), %rdi
callq 0x17220
jmp 0x90e3
leaq 0xb0(%rsp), %rax
movq %rax, 0xa0(%rsp)
movq $0x0, 0xa8(%rsp)
movb $0x0, 0xb0(%rsp)
movq 0xa0(%rsp), %rsi
movq 0xa8(%rsp), %rdx
testq %rdx, %rdx
sete %al
testq %rsi, %rsi
setne %cl
orb %al, %cl
je 0x95b2
addq %rsi, %rdx
leaq 0xc0(%rsp), %rdi
callq 0x9a6a
movl %eax, %ebp
testb %al, %al
je 0x9158
movq 0x10(%rsp), %rcx
movq 0x18(%rsp), %rax
cmpq %rax, %rcx
je 0x92ab
movq %rax, %rdx
subq %rcx, %rdx
sarq $0x3, %rdx
movabsq $-0x5555555555555555, %rsi # imm = 0xAAAAAAAAAAAAAAAB
imulq %rsi, %rdx
addq $-0x7, %rdx
cmpq $-0x4, %rdx
setb %dl
jmp 0x92ad
xorl %ebx, %ebx
jmp 0x933e
xorl %edx, %edx
addq $0x30, %rcx
addq $-0x48, %rax
testb %dl, %dl
cmovneq %rcx, %rax
cmpb $0x1, 0x10(%rax)
jne 0x919b
movq (%rax), %rsi
movq 0x8(%rax), %rdx
leaq 0x110(%rsp), %rax
movq %rax, 0x100(%rsp)
leaq 0x100(%rsp), %rdi
callq 0x17220
jmp 0x91bf
leaq 0x110(%rsp), %rax
movq %rax, 0x100(%rsp)
movq $0x0, 0x108(%rsp)
movb $0x0, 0x110(%rsp)
movq 0x100(%rsp), %rsi
movq 0x108(%rsp), %rdx
testq %rdx, %rdx
sete %al
testq %rsi, %rsi
setne %cl
orb %al, %cl
je 0x95b2
addq %rsi, %rdx
leaq 0xc0(%rsp), %rdi
callq 0x9a6a
movl %eax, %ebx
testb %bpl, %bpl
je 0x921f
movq 0x100(%rsp), %rdi
leaq 0x110(%rsp), %rax
cmpq %rax, %rdi
je 0x921f
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x30(%rsp), %rdi
cmpq %r12, %rdi
je 0x9236
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x5380
testb %bl, %bl
je 0x943e
leaq 0x8(%rsp), %rdi
leaq 0x270e9(%rip), %rsi     # 0x30333
callq 0x1d012
movq %rax, 0x30(%rsp)
leaq 0x30(%rsp), %rdi
leaq 0x26262(%rip), %rsi     # 0x2f4c2
callq 0x1c0fc
movq %rax, 0xa0(%rsp)
movq 0x50(%rsp), %rsi
leaq 0xa0(%rsp), %rdi
callq 0x1b3d4
leaq 0x30(%rsp), %rdi
callq 0x1bf90
movq %rax, 0xa0(%rsp)
movq 0xc0(%rsp), %rsi
leaq 0xa0(%rsp), %rdi
callq 0x205a8
jmp 0x943e
xorl %edx, %edx
addq $0x48, %rcx
addq $-0x48, %rax
testb %dl, %dl
cmovneq %rcx, %rax
cmpb $0x1, 0x10(%rax)
jne 0x92e7
movq (%rax), %rsi
movq 0x8(%rax), %rdx
leaq 0x158(%rsp), %rax
movq %rax, 0x148(%rsp)
leaq 0x148(%rsp), %rdi
callq 0x17220
jmp 0x930b
leaq 0x158(%rsp), %rax
movq %rax, 0x148(%rsp)
movq $0x0, 0x150(%rsp)
movb $0x0, 0x158(%rsp)
movq 0x148(%rsp), %rsi
movq 0x150(%rsp), %rdx
testq %rdx, %rdx
sete %al
testq %rsi, %rsi
setne %cl
orb %al, %cl
je 0x95b2
addq %rsi, %rdx
leaq 0x30(%rsp), %rdi
callq 0x9a6a
movl %eax, %ebx
testb %bpl, %bpl
je 0x9368
movq 0x148(%rsp), %rdi
leaq 0x158(%rsp), %rax
cmpq %rax, %rdi
je 0x9368
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0xa0(%rsp), %rdi
leaq 0xb0(%rsp), %rax
cmpq %rax, %rdi
je 0x938d
movq 0xb0(%rsp), %rsi
incq %rsi
callq 0x5380
testb %bl, %bl
je 0x9427
leaq 0x1d8(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x17294
leaq 0x1e0(%rsp), %rcx
cmpq %rcx, %rax
je 0x9427
addq $0x40, %rax
movq %rax, %rdi
leaq 0x26f71(%rip), %rsi     # 0x30333
callq 0x1d012
movq %rax, 0xa0(%rsp)
leaq 0xa0(%rsp), %rdi
leaq 0x260e4(%rip), %rsi     # 0x2f4c2
callq 0x1c0fc
movq %rax, 0x140(%rsp)
movq 0xc0(%rsp), %rsi
leaq 0x140(%rsp), %rdi
callq 0x1b3d4
leaq 0xa0(%rsp), %rdi
callq 0x1bf90
movq %rax, 0x140(%rsp)
movq 0x30(%rsp), %rsi
leaq 0x140(%rsp), %rdi
callq 0x205a8
movq 0x30(%rsp), %rdi
cmpq %r12, %rdi
je 0x943e
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0xc0(%rsp), %rdi
cmpq %r14, %rdi
je 0x945b
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x50(%rsp), %rdi
cmpq %r15, %rdi
je 0x9472
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x9489
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x5380
movq 0x290(%rsp), %rax
movq -0x18(%rax), %rax
movl 0x2b0(%rsp,%rax), %ebx
testb $0x5, %bl
je 0x8dec
jmp 0x9558
leaq 0x3a397(%rip), %rdi     # 0x43848
callq 0x56f0
testl %eax, %eax
je 0x8e3c
leaq 0x3a363(%rip), %rdi     # 0x43828
leaq 0x25f58(%rip), %rsi     # 0x2f424
movl $0x10, %edx
callq 0x9c7e
leaq 0x809(%rip), %rdi       # 0x9ce6
leaq 0x3a344(%rip), %rsi     # 0x43828
leaq 0x39f0d(%rip), %rdx     # 0x433f8
callq 0x5320
leaq 0x3a351(%rip), %rdi     # 0x43848
callq 0x5250
jmp 0x8e3c
leaq 0x3a368(%rip), %rdi     # 0x43870
callq 0x56f0
testl %eax, %eax
je 0x8e4a
leaq 0x3a334(%rip), %rdi     # 0x43850
leaq 0x25f3d(%rip), %rsi     # 0x2f460
movl $0x10, %edx
callq 0x9c7e
leaq 0x7b2(%rip), %rdi       # 0x9ce6
leaq 0x3a315(%rip), %rsi     # 0x43850
leaq 0x39eb6(%rip), %rdx     # 0x433f8
callq 0x5320
leaq 0x3a322(%rip), %rdi     # 0x43870
callq 0x5250
jmp 0x8e4a
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x957a
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x5380
leaq 0x1d8(%rsp), %rdi
callq 0x172da
leaq 0x290(%rsp), %rdi
callq 0x50d0
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
testb $0x1, %bl
jne 0x95a0
xorl %ebp, %ebp
leaq 0x258(%rsp), %rdi
callq 0x9a3c
jmp 0x8a6c
callq 0x50e0
leaq 0x3a2c2(%rip), %rdi     # 0x43880
callq 0x56f0
testl %eax, %eax
je 0x80c5
leaq 0x290(%rsp), %rdi
callq 0x17328
leaq 0x290(%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, 0x3a268(%rip)     # 0x43878
leaq 0x290(%rsp), %rdi
callq 0x5340
leaq 0x3a25c(%rip), %rdi     # 0x43880
callq 0x5250
jmp 0x80c5
jmp 0x9720
movq %rax, %r13
leaq 0x290(%rsp), %rdi
callq 0x5340
jmp 0x964d
jmp 0x9720
movq %rax, %r13
leaq 0x3a22c(%rip), %rdi     # 0x43880
callq 0x5240
jmp 0x9a33
movq %rax, %r13
leaq 0x3a208(%rip), %rdi     # 0x43870
jmp 0x9674
movq %rax, %r13
leaq 0x3a1d4(%rip), %rdi     # 0x43848
callq 0x5240
jmp 0x991e
jmp 0x96f2
jmp 0x972a
jmp 0x9916
jmp 0x9916
jmp 0x972a
jmp 0x972a
movq %rax, %r13
movq 0x148(%rsp), %rdi
leaq 0x158(%rsp), %rax
cmpq %rax, %rdi
je 0x96f5
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x5380
jmp 0x96f5
jmp 0x972a
jmp 0x98f8
jmp 0x972a
jmp 0x972a
movq %rax, %r13
movq 0x100(%rsp), %rdi
leaq 0x110(%rsp), %rax
cmpq %rax, %rdi
je 0x972d
movq 0x110(%rsp), %rsi
jmp 0x9712
jmp 0x9746
movq %rax, %r13
movq 0xa0(%rsp), %rdi
leaq 0xb0(%rsp), %rax
cmpq %rax, %rdi
je 0x972d
movq 0xb0(%rsp), %rsi
incq %rsi
callq 0x5380
jmp 0x972d
jmp 0x9746
jmp 0x9786
movq %rax, %rdi
callq 0x75c6
jmp 0x9746
movq %rax, %r13
movq 0x30(%rsp), %rdi
cmpq %r12, %rdi
je 0x9749
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x5380
jmp 0x9749
movq %rax, %r13
movq 0xc0(%rsp), %rdi
cmpq %r14, %rdi
je 0x9766
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x50(%rsp), %rdi
cmpq %r15, %rdi
je 0x98fb
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x5380
jmp 0x98fb
movq %rax, %r13
leaq 0x290(%rsp), %rdi
callq 0x5040
leaq 0x1d8(%rsp), %rdi
callq 0x5520
jmp 0x9975
jmp 0x9969
jmp 0x9972
jmp 0x9972
jmp 0x9972
jmp 0x9972
jmp 0x97d2
jmp 0x9916
jmp 0x9916
jmp 0x9916
movq %rax, %r13
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x9940
movq 0x20(%rsp), %rsi
jmp 0x9938
jmp 0x9916
jmp 0x9916
jmp 0x9916
jmp 0x9972
movq %rax, %r13
jmp 0x9992
movq %rax, %r13
movq 0x290(%rsp), %rdi
cmpq %rbp, %rdi
je 0x9833
movq 0x2a0(%rsp), %rsi
incq %rsi
callq 0x5380
jmp 0x9833
movq %rax, %r13
movq 0x1d8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x99b7
movq 0x1e8(%rsp), %rsi
jmp 0x99af
movq %rax, %r13
jmp 0x99b7
movq %rax, %r13
movq 0x290(%rsp), %rdi
cmpq %rbp, %rdi
je 0x987e
movq 0x2a0(%rsp), %rsi
incq %rsi
callq 0x5380
jmp 0x987e
movq %rax, %r13
movq 0x1d8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x99dc
movq 0x1e8(%rsp), %rsi
jmp 0x99d4
movq %rax, %r13
jmp 0x99dc
movq %rax, %r13
movq 0x290(%rsp), %rdi
cmpq %rbp, %rdi
je 0x9a01
movq 0x2a0(%rsp), %rsi
jmp 0x99f9
movq %rax, %r13
jmp 0x9a01
movq %rax, %r13
movq 0x290(%rsp), %rdi
cmpq %rbp, %rdi
je 0x9a26
movq 0x2a0(%rsp), %rsi
jmp 0x9a1e
movq %rax, %r13
jmp 0x9a26
jmp 0x9969
movq %rax, %r13
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x991e
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x5380
jmp 0x991e
jmp 0x9916
movq %rax, %r13
jmp 0x9940
movq %rax, %r13
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x9940
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x5380
leaq 0x1d8(%rsp), %rdi
callq 0x172da
leaq 0x290(%rsp), %rdi
callq 0x50d0
leaq 0x258(%rsp), %rdi
callq 0x9a3c
jmp 0x9975
movq %rax, %r13
jmp 0x995a
jmp 0x9972
jmp 0x9972
movq %rax, %r13
movq 0xe8(%rsp), %rdi
testq %rdi, %rdi
je 0x9992
movq 0xf8(%rsp), %rsi
subq %rdi, %rsi
callq 0x5380
movq 0x198(%rsp), %rdi
leaq 0x1a8(%rsp), %rax
cmpq %rax, %rdi
je 0x99b7
movq 0x1a8(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x228(%rsp), %rdi
leaq 0x238(%rsp), %rax
cmpq %rax, %rdi
je 0x99dc
movq 0x238(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x178(%rsp), %rdi
leaq 0x188(%rsp), %rax
cmpq %rax, %rdi
je 0x9a01
movq 0x188(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x1b8(%rsp), %rdi
leaq 0x1c8(%rsp), %rax
cmpq %rax, %rdi
je 0x9a26
movq 0x1c8(%rsp), %rsi
incq %rsi
callq 0x5380
leaq 0x120(%rsp), %rdi
callq 0x5180
movq %r13, %rdi
callq 0x56d0
nop