// File: /workspace/github_cpp_makefile_star2_O1/jpcima[P]faustmd/metadata.cpp
// Function: dump_widgets(std::ostream&, std::vector<Metadata::Widget, std::allocator<Metadata::Widget>> const&, bool)
static void dump_widgets(std::ostream &o, const std::vector<Metadata::Widget> &widgets, bool is_active)
{
    const char *separator;
    const char *prefix = is_active ? "active" : "passive";

    o << "\t" "FMSTATIC constexpr " << prefix << "_type_t " << prefix << "_type[] = {";
    separator = "";
    for (const Metadata::Widget &w : widgets)
        { o << separator << "" << prefix << "_type_t::" << w.type; separator = ", "; }
    o << "};" "\n";

    o << "\t" "FMSTATIC constexpr int " << prefix << "_id[] = {";
    separator = "";
    for (const Metadata::Widget &w : widgets)
        { o << separator << w.id; separator = ", "; }
    o << "};" "\n";

    o << "\t" "FMSTATIC const char *const " << prefix << "_label[] = {";
    separator = "";
    for (const Metadata::Widget &w : widgets)
        { o << separator << cstrlit(w.label); separator = ", "; }
    o << "};" "\n";

    o << "\t" "FMSTATIC const char *const " << prefix << "_symbol[] = {";
    separator = "";
    for (const Metadata::Widget &w : widgets)
        { o << separator << cstrlit(w.symbol); separator = ", "; }
    o << "};" "\n";

    o << "\t" "FMSTATIC const std::size_t " << prefix << "_offsets[] = {";
    separator = "";
    for (const Metadata::Widget &w : widgets)
        { o << separator << "(size_t)&((FAUSTCLASS *)0)->" << w.var; separator = ", "; }
    o << "};" "\n";

    o << "\t" "FMSTATIC constexpr FAUSTFLOAT " << prefix << "_init[] = {";
    separator = "";
    for (const Metadata::Widget &w : widgets)
        { o << separator << w.init; separator = ", "; }
    o << "};" "\n";

    o << "\t" "FMSTATIC constexpr FAUSTFLOAT " << prefix << "_min[] = {";
    separator = "";
    for (const Metadata::Widget &w : widgets)
        { o << separator << w.min; separator = ", "; }
    o << "};" "\n";

    o << "\t" "FMSTATIC constexpr FAUSTFLOAT " << prefix << "_max[] = {";
    separator = "";
    for (const Metadata::Widget &w : widgets)
        { o << separator << w.max; separator = ", "; }
    o << "};" "\n";

    o << "\t" "FMSTATIC constexpr FAUSTFLOAT " << prefix << "_step[] = {";
    separator = "";
    for (const Metadata::Widget &w : widgets)
        { o << separator << w.step; separator = ", "; }
    o << "};" "\n";

    o << "\n";

    o << "\t" "FMSTATIC const char *const " << prefix << "_unit[] = {";
    separator = "";
    for (const Metadata::Widget &w : widgets)
        { o << separator << cstrlit(w.unit); separator = ", "; }
    o << "};" "\n";

    o << "\t" "FMSTATIC constexpr scale_t " << prefix << "_scale[] = {";
    separator = "";
    for (const Metadata::Widget &w : widgets)
        { o << separator << "scale_t::" << w.scale; separator = ", "; }
    o << "};" "\n";

    o << "\t" "FMSTATIC const char *const " << prefix << "_tooltip[] = {";
    separator = "";
    for (const Metadata::Widget &w : widgets)
        { o << separator << cstrlit(w.tooltip); separator = ", "; }
    o << "};" "\n";

    o << "\n";

    bool have_metadata = false;
    for (size_t i = 0, n = widgets.size(); i < n; ++i) {
        const Metadata::Widget &w = widgets[i];
        if (w.metadata.empty())
            continue;
        o << "\t" "FMSTATIC const metadata_t " << prefix << "_metadata_" << i << "[] = {";
        separator = "";
        for (const std::pair<std::string, std::string> &md : w.metadata) {
            o << separator << "{" << cstrlit(md.first) << ", " << cstrlit(md.second) << "}";
            separator = ", ";
        }
        o << "};\n";
        have_metadata = true;
    }

    if (have_metadata)
        o << "\n";

    o << "\t" "FMSTATIC const metadata_t *const " << prefix << "_metadata[] = {";
    separator = "";
    for (size_t i = 0, n = widgets.size(); i < n; ++i) {
        const Metadata::Widget &w = widgets[i];
        if (w.metadata.empty())
            o << separator << "nullptr";
        else
            o << separator << prefix << "_metadata_" << i;
        separator = ", ";
    }
    o << "};" "\n";

    o << "\t" "FMSTATIC constexpr std::size_t " << prefix << "_metadata_size[] = {";
    separator = "";
    for (const Metadata::Widget &w : widgets)
        { o << separator << w.metadata.size(); separator = ", "; }
    o << "};" "\n";

    o << "\n";

    if (is_active) {
        o << "\t" "FMSTATIC inline void " << prefix << "_set(FAUSTCLASS &x, unsigned idx, FAUSTFLOAT v) {"
          << " *(FAUSTFLOAT *)((char *)&x + " << prefix << "_offsets[idx]) = v; "
          << "}" "\n";
    }
    o << "\t" "FMSTATIC inline FAUSTFLOAT " << prefix << "_get(const FAUSTCLASS &x, unsigned idx) {"
      << " return *(const FAUSTFLOAT *)((const char *)&x + " << prefix << "_offsets[idx]); "
      << "}" "\n";

    o << "\n";

    if (is_active) {
        for (const Metadata::Widget &w : widgets) {
            o << "\t" << "FMSTATIC inline void " << mangle("set_" + w.symbol) << "(FAUSTCLASS &x, FAUSTFLOAT v) {"
              << " x." << w.var << " = v; "
              << "}" "\n";
        }
    }
    for (const Metadata::Widget &w : widgets) {
        o << "\t" << "FMSTATIC inline FAUSTFLOAT " << mangle("get_" + w.symbol) << "(const FAUSTCLASS &x) {"
          << " return x." << w.var << "; "
          << "}" "\n";
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
movl %edx, %ebp
movq %rsi, %r13
movq %rdi, %rbx
leaq 0x1750f(%rip), %rax     # 0x307fe
leaq 0x1750f(%rip), %r15     # 0x30805
testl %edx, %edx
cmovneq %rax, %r15
leaq 0x1750a(%rip), %rsi     # 0x3080d
movl $0x14, %edx
callq 0x53f0
movl %ebp, 0x6c(%rsp)
movl %ebp, %r14d
xorq $0x7, %r14
movq %rbx, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x53f0
leaq 0x174f5(%rip), %rsi     # 0x30822
movl $0x8, %edx
movq %rbx, %rdi
callq 0x53f0
movq %rbx, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x53f0
leaq 0x174dc(%rip), %rsi     # 0x3082b
movl $0xb, %edx
movq %rbx, %rdi
callq 0x53f0
movq (%r13), %r12
movq %r13, 0x8(%rsp)
movq 0x8(%r13), %rbp
cmpq %rbp, %r12
je 0x193dd
leaq 0x177ad(%rip), %r13     # 0x30b22
movq %r13, %rdi
callq 0x51a0
movq %rbx, %rdi
movq %r13, %rsi
movq %rax, %rdx
callq 0x53f0
movq %rbx, %rdi
leaq 0x1778d(%rip), %rsi     # 0x30b22
xorl %edx, %edx
callq 0x53f0
movq %rbx, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x53f0
movl $0x9, %edx
movq %rbx, %rdi
leaq 0x1747e(%rip), %rsi     # 0x30837
callq 0x53f0
movl (%r12), %esi
movq %rbx, %rdi
callq 0x1a89c
addq $0xd8, %r12
leaq 0x172c5(%rip), %r13     # 0x3069d
cmpq %rbp, %r12
jne 0x19375
leaq 0x1705b(%rip), %rsi     # 0x3043f
movl $0x3, %edx
movq %rbx, %rdi
callq 0x53f0
leaq 0x17449(%rip), %rsi     # 0x30841
movl $0x18, %edx
movq %rbx, %rdi
callq 0x53f0
movq %rbx, %rdi
movq %r15, 0x10(%rsp)
movq %r15, %rsi
movq %r14, %rdx
callq 0x53f0
leaq 0x1743b(%rip), %rsi     # 0x3085a
movl $0x9, %edx
movq %rbx, %rdi
callq 0x53f0
movq 0x8(%rsp), %rax
movq (%rax), %r15
movq 0x8(%rax), %r12
cmpq %r12, %r15
movq %r14, %rbp
je 0x1947f
leaq 0x176db(%rip), %r14     # 0x30b22
leaq 0x1724f(%rip), %r13     # 0x3069d
movq %r14, %rdi
callq 0x51a0
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x53f0
movl 0x4(%r15), %esi
movq %rbx, %rdi
callq 0x56b0
addq $0xd8, %r15
movq %r13, %r14
cmpq %r12, %r15
jne 0x1944e
leaq 0x16fb9(%rip), %rsi     # 0x3043f
movl $0x3, %edx
movq %rbx, %rdi
callq 0x53f0
leaq 0x173ca(%rip), %rsi     # 0x30864
movl $0x1c, %edx
movq %rbx, %rdi
callq 0x53f0
movq %rbx, %rdi
movq 0x10(%rsp), %rsi
movq %rbp, 0x38(%rsp)
movq %rbp, %rdx
callq 0x53f0
leaq 0x173be(%rip), %rsi     # 0x30881
movl $0xc, %edx
movq %rbx, %rdi
callq 0x53f0
movq 0x8(%rsp), %rax
movq (%rax), %r13
movq 0x8(%rax), %rbp
cmpq %rbp, %r13
je 0x19572
leaq 0x17636(%rip), %r15     # 0x30b22
leaq 0x18(%rsp), %r14
leaq 0x171a5(%rip), %r12     # 0x3069d
movq %r15, %rdi
callq 0x51a0
movq %rbx, %rdi
movq %r15, %rsi
movq %rax, %rdx
callq 0x53f0
movq 0x8(%r13), %rsi
movq 0x10(%r13), %rdx
testq %rdx, %rdx
sete %al
testq %rsi, %rsi
setne %cl
orb %al, %cl
je 0x1a52e
addq %rsi, %rdx
movq %r14, %rdi
callq 0x1916e
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rdx
movq %rbx, %rdi
callq 0x53f0
movq 0x18(%rsp), %rdi
leaq 0x28(%rsp), %rax
cmpq %rax, %rdi
je 0x19563
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x5380
addq $0xd8, %r13
movq %r12, %r15
cmpq %rbp, %r13
jne 0x194f8
leaq 0x16ec6(%rip), %rsi     # 0x3043f
movl $0x3, %edx
movq %rbx, %rdi
callq 0x53f0
leaq 0x172d7(%rip), %rsi     # 0x30864
movl $0x1c, %edx
movq %rbx, %rdi
callq 0x53f0
movq %rbx, %rdi
movq 0x10(%rsp), %rsi
movq 0x38(%rsp), %rdx
callq 0x53f0
leaq 0x172db(%rip), %rsi     # 0x3088e
movl $0xd, %edx
movq %rbx, %rdi
callq 0x53f0
movq 0x8(%rsp), %rax
movq (%rax), %r13
movq 0x8(%rax), %rbp
cmpq %rbp, %r13
je 0x19662
leaq 0x17546(%rip), %r15     # 0x30b22
leaq 0x18(%rsp), %r14
leaq 0x170b5(%rip), %r12     # 0x3069d
movq %r15, %rdi
callq 0x51a0
movq %rbx, %rdi
movq %r15, %rsi
movq %rax, %rdx
callq 0x53f0
movq 0x48(%r13), %rsi
movq 0x50(%r13), %rdx
testq %rdx, %rdx
sete %al
testq %rsi, %rsi
setne %cl
orb %al, %cl
je 0x1a52e
addq %rsi, %rdx
movq %r14, %rdi
callq 0x1916e
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rdx
movq %rbx, %rdi
callq 0x53f0
movq 0x18(%rsp), %rdi
leaq 0x28(%rsp), %rax
cmpq %rax, %rdi
je 0x19653
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x5380
addq $0xd8, %r13
movq %r12, %r15
cmpq %rbp, %r13
jne 0x195e8
leaq 0x16dd6(%rip), %rsi     # 0x3043f
movl $0x3, %edx
movq %rbx, %rdi
callq 0x53f0
leaq 0x1721f(%rip), %rsi     # 0x3089c
movl $0x1c, %edx
movq %rbx, %rdi
callq 0x53f0
movq %rbx, %rdi
movq 0x10(%rsp), %rsi
movq 0x38(%rsp), %rdx
callq 0x53f0
leaq 0x17216(%rip), %rsi     # 0x308b9
movl $0xe, %edx
movq %rbx, %rdi
callq 0x53f0
movq 0x8(%rsp), %rax
movq (%rax), %r12
movq 0x8(%rax), %r13
cmpq %r13, %r12
je 0x1971d
leaq 0x1745a(%rip), %r15     # 0x30b22
leaq 0x171f9(%rip), %r14     # 0x308c8
leaq 0x16fc7(%rip), %rbp     # 0x3069d
movq %r15, %rdi
callq 0x51a0
movq %rbx, %rdi
movq %r15, %rsi
movq %rax, %rdx
callq 0x53f0
movl $0x1c, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x53f0
movq 0x28(%r12), %rsi
movq 0x30(%r12), %rdx
movq %rbx, %rdi
callq 0x53f0
addq $0xd8, %r12
movq %rbp, %r15
cmpq %r13, %r12
jne 0x196d6
leaq 0x16d1b(%rip), %rsi     # 0x3043f
movl $0x3, %edx
movq %rbx, %rdi
callq 0x53f0
leaq 0x171ad(%rip), %rsi     # 0x308e5
movl $0x1f, %edx
movq %rbx, %rdi
callq 0x53f0
movq %rbx, %rdi
movq 0x10(%rsp), %rsi
movq 0x38(%rsp), %rbp
movq %rbp, %rdx
callq 0x53f0
leaq 0x171a4(%rip), %rsi     # 0x30905
movl $0xb, %edx
movq %rbx, %rdi
callq 0x53f0
movq 0x8(%rsp), %rax
movq (%rax), %r15
movq 0x8(%rax), %r12
cmpq %r12, %r15
je 0x197c3
leaq 0x1739c(%rip), %r14     # 0x30b22
leaq 0x16f10(%rip), %r13     # 0x3069d
movq %r14, %rdi
callq 0x51a0
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x53f0
xorps %xmm0, %xmm0
cvtss2sd 0x68(%r15), %xmm0
movq %rbx, %rdi
callq 0x5610
addq $0xd8, %r15
movq %r13, %r14
cmpq %r12, %r15
jne 0x1978d
leaq 0x16c75(%rip), %rsi     # 0x3043f
movl $0x3, %edx
movq %rbx, %rdi
callq 0x53f0
leaq 0x17107(%rip), %rsi     # 0x308e5
movl $0x1f, %edx
movq %rbx, %rdi
callq 0x53f0
movq %rbx, %rdi
movq 0x10(%rsp), %rsi
movq %rbp, %rdx
callq 0x53f0
leaq 0x1710f(%rip), %rsi     # 0x30911
movl $0xa, %edx
movq %rbx, %rdi
callq 0x53f0
movq 0x8(%rsp), %rax
movq (%rax), %r15
movq 0x8(%rax), %r12
cmpq %r12, %r15
je 0x19864
leaq 0x172fb(%rip), %r14     # 0x30b22
leaq 0x16e6f(%rip), %r13     # 0x3069d
movq %r14, %rdi
callq 0x51a0
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x53f0
xorps %xmm0, %xmm0
cvtss2sd 0x6c(%r15), %xmm0
movq %rbx, %rdi
callq 0x5610
addq $0xd8, %r15
movq %r13, %r14
cmpq %r12, %r15
jne 0x1982e
leaq 0x16bd4(%rip), %rsi     # 0x3043f
movl $0x3, %edx
movq %rbx, %rdi
callq 0x53f0
leaq 0x17066(%rip), %rsi     # 0x308e5
movl $0x1f, %edx
movq %rbx, %rdi
callq 0x53f0
movq %rbx, %rdi
movq 0x10(%rsp), %rsi
movq %rbp, %rdx
callq 0x53f0
leaq 0x17079(%rip), %rsi     # 0x3091c
movl $0xa, %edx
movq %rbx, %rdi
callq 0x53f0
movq 0x8(%rsp), %rax
movq (%rax), %r15
movq 0x8(%rax), %r12
cmpq %r12, %r15
je 0x19905
leaq 0x1725a(%rip), %r14     # 0x30b22
leaq 0x16dce(%rip), %r13     # 0x3069d
movq %r14, %rdi
callq 0x51a0
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x53f0
xorps %xmm0, %xmm0
cvtss2sd 0x70(%r15), %xmm0
movq %rbx, %rdi
callq 0x5610
addq $0xd8, %r15
movq %r13, %r14
cmpq %r12, %r15
jne 0x198cf
leaq 0x16b33(%rip), %rsi     # 0x3043f
movl $0x3, %edx
movq %rbx, %rdi
callq 0x53f0
leaq 0x16fc5(%rip), %rsi     # 0x308e5
movl $0x1f, %edx
movq %rbx, %rdi
callq 0x53f0
movq %rbx, %rdi
movq 0x10(%rsp), %rsi
movq %rbp, %rdx
callq 0x53f0
leaq 0x16fe3(%rip), %rsi     # 0x30927
movl $0xb, %edx
movq %rbx, %rdi
callq 0x53f0
movq 0x8(%rsp), %rax
movq (%rax), %r15
movq 0x8(%rax), %r12
cmpq %r12, %r15
je 0x199a6
leaq 0x171b9(%rip), %r14     # 0x30b22
leaq 0x16d2d(%rip), %r13     # 0x3069d
movq %r14, %rdi
callq 0x51a0
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x53f0
xorps %xmm0, %xmm0
cvtss2sd 0x74(%r15), %xmm0
movq %rbx, %rdi
callq 0x5610
addq $0xd8, %r15
movq %r13, %r14
cmpq %r12, %r15
jne 0x19970
leaq 0x16a92(%rip), %rsi     # 0x3043f
movl $0x3, %edx
movq %rbx, %rdi
callq 0x53f0
leaq 0x15b4a(%rip), %rsi     # 0x2f50b
movl $0x1, %edx
movq %rbx, %rdi
callq 0x53f0
leaq 0x16e8f(%rip), %rsi     # 0x30864
movl $0x1c, %edx
movq %rbx, %rdi
callq 0x53f0
movq %rbx, %rdi
movq 0x10(%rsp), %rsi
movq %rbp, %rdx
callq 0x53f0
leaq 0x16f3a(%rip), %rsi     # 0x30933
movl $0xb, %edx
movq %rbx, %rdi
callq 0x53f0
movq 0x8(%rsp), %rax
movq (%rax), %r13
movq 0x8(%rax), %rbp
cmpq %rbp, %r13
je 0x19aae
leaq 0x17100(%rip), %r15     # 0x30b22
leaq 0x18(%rsp), %r14
leaq 0x16c6f(%rip), %r12     # 0x3069d
movq %r15, %rdi
callq 0x51a0
movq %rbx, %rdi
movq %r15, %rsi
movq %rax, %rdx
callq 0x53f0
movq 0x90(%r13), %rsi
movq 0x98(%r13), %rdx
testq %rdx, %rdx
sete %al
testq %rsi, %rsi
setne %cl
orb %al, %cl
je 0x1a52e
addq %rsi, %rdx
movq %r14, %rdi
callq 0x1916e
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rdx
movq %rbx, %rdi
callq 0x53f0
movq 0x18(%rsp), %rdi
leaq 0x28(%rsp), %rax
cmpq %rax, %rdi
je 0x19a9f
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x5380
addq $0xd8, %r13
movq %r12, %r15
cmpq %rbp, %r13
jne 0x19a2e
leaq 0x1698a(%rip), %rsi     # 0x3043f
movl $0x3, %edx
movq %rbx, %rdi
callq 0x53f0
leaq 0x16e76(%rip), %rsi     # 0x3093f
movl $0x1c, %edx
movq %rbx, %rdi
callq 0x53f0
movq %rbx, %rdi
movq 0x10(%rsp), %rsi
movq 0x38(%rsp), %rdx
callq 0x53f0
leaq 0x16e6d(%rip), %rsi     # 0x3095c
movl $0xc, %edx
movq %rbx, %rdi
callq 0x53f0
movq 0x8(%rsp), %rax
movq (%rax), %r12
movq 0x8(%rax), %r13
cmpq %r13, %r12
je 0x19b67
leaq 0x1700e(%rip), %r15     # 0x30b22
leaq 0x16e4e(%rip), %r14     # 0x30969
leaq 0x16b7b(%rip), %rbp     # 0x3069d
movq %r15, %rdi
callq 0x51a0
movq %rbx, %rdi
movq %r15, %rsi
movq %rax, %rdx
callq 0x53f0
movl $0x9, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x53f0
movl 0xb0(%r12), %esi
movq %rbx, %rdi
callq 0x1a934
addq $0xd8, %r12
movq %rbp, %r15
cmpq %r13, %r12
jne 0x19b22
leaq 0x168d1(%rip), %rsi     # 0x3043f
movl $0x3, %edx
movq %rbx, %rdi
callq 0x53f0
leaq 0x16ce2(%rip), %rsi     # 0x30864
movl $0x1c, %edx
movq %rbx, %rdi
callq 0x53f0
movq %rbx, %rdi
movq 0x10(%rsp), %rsi
movq 0x38(%rsp), %rdx
callq 0x53f0
leaq 0x16dcb(%rip), %rsi     # 0x30973
movl $0xe, %edx
movq %rbx, %rdi
callq 0x53f0
movq 0x8(%rsp), %rax
movq (%rax), %r12
movq 0x8(%rax), %r13
cmpq %r13, %r12
je 0x19c63
leaq 0x16f51(%rip), %r15     # 0x30b22
leaq 0x18(%rsp), %r14
leaq 0x16ac0(%rip), %rbp     # 0x3069d
movq %r15, %rdi
callq 0x51a0
movq %rbx, %rdi
movq %r15, %rsi
movq %rax, %rdx
callq 0x53f0
movq 0xb8(%r12), %rsi
movq 0xc0(%r12), %rdx
testq %rdx, %rdx
sete %al
testq %rsi, %rsi
setne %cl
orb %al, %cl
je 0x1a52e
addq %rsi, %rdx
movq %r14, %rdi
callq 0x1916e
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rdx
movq %rbx, %rdi
callq 0x53f0
movq 0x18(%rsp), %rdi
leaq 0x28(%rsp), %rax
cmpq %rax, %rdi
je 0x19c50
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x5380
addq $0xd8, %r12
movq %rbp, %r15
cmpq %r13, %r12
jne 0x19bdd
leaq 0x167d5(%rip), %rsi     # 0x3043f
movl $0x3, %edx
movq %rbx, %rdi
callq 0x53f0
leaq 0x1588d(%rip), %rsi     # 0x2f50b
movl $0x1, %edx
movq %rbx, %rdi
callq 0x53f0
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rdi
movzbl 0x6c(%rsp), %r14d
movabsq $-0x7b425ed097b425ed, %r12 # imm = 0x84BDA12F684BDA13
subq (%rax), %rdi
movq 0x10(%rsp), %r15
je 0x19edb
sarq $0x3, %rdi
imulq %r12, %rdi
movq %r14, 0x40(%rsp)
xorq $0x7, %r14
movq %r14, 0x38(%rsp)
cmpq $0x1, %rdi
adcq $0x0, %rdi
xorl %eax, %eax
leaq 0x169c4(%rip), %r14     # 0x3069d
xorl %ebp, %ebp
movq %rdi, 0x70(%rsp)
movq 0x8(%rsp), %rcx
movq (%rcx), %rcx
imulq $0xd8, %rbp, %rdx
movq 0x78(%rcx,%rdx), %rsi
cmpq 0x80(%rcx,%rdx), %rsi
je 0x19ea8
leaq (%rcx,%rdx), %r12
addq $0x78, %r12
movl $0x1b, %edx
movq %rbx, %rdi
leaq 0x16c69(%rip), %rsi     # 0x30982
callq 0x53f0
movq %rbx, %rdi
movq %r15, %rsi
movq 0x38(%rsp), %rdx
callq 0x53f0
movl $0xa, %edx
movq %rbx, %rdi
leaq 0x16c61(%rip), %rsi     # 0x3099e
callq 0x53f0
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x5270
movl $0x6, %edx
movq %rax, %rdi
leaq 0x1693a(%rip), %rsi     # 0x30696
callq 0x53f0
movq (%r12), %r15
movq 0x8(%r12), %r13
cmpq %r13, %r15
je 0x19e88
leaq 0x16da8(%rip), %r12     # 0x30b22
movq %r12, %rdi
callq 0x51a0
movq %rbx, %rdi
movq %r12, %rsi
movq %rax, %rdx
callq 0x53f0
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x16da7(%rip), %rsi     # 0x30b46
callq 0x53f0
movq (%r15), %rsi
movq 0x8(%r15), %rdx
testq %rdx, %rdx
sete %al
testq %rsi, %rsi
setne %cl
orb %al, %cl
je 0x1a52e
addq %rsi, %rdx
leaq 0x18(%rsp), %rdi
callq 0x1916e
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rdx
movq %rbx, %rdi
callq 0x53f0
movq %rax, %r12
movl $0x2, %edx
movq %rax, %rdi
movq %r14, %rsi
callq 0x53f0
movq 0x20(%r15), %rsi
movq 0x28(%r15), %rdx
testq %rdx, %rdx
sete %al
testq %rsi, %rsi
setne %cl
orb %al, %cl
je 0x1a52e
addq %rsi, %rdx
leaq 0x48(%rsp), %rdi
callq 0x1916e
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
movq %r12, %rdi
callq 0x53f0
movl $0x1, %edx
movq %rax, %rdi
leaq 0x16865(%rip), %rsi     # 0x306a0
callq 0x53f0
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x19e5c
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x18(%rsp), %rdi
leaq 0x28(%rsp), %rax
cmpq %rax, %rdi
je 0x19e78
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x5380
addq $0x40, %r15
movq %r14, %r12
cmpq %r13, %r15
jne 0x19d7a
movl $0x3, %edx
movq %rbx, %rdi
leaq 0x165a8(%rip), %rsi     # 0x3043f
callq 0x53f0
movb $0x1, %al
movq 0x10(%rsp), %r15
movq 0x70(%rsp), %rdi
incq %rbp
cmpq %rdi, %rbp
jne 0x19ce0
testb $0x1, %al
movq 0x40(%rsp), %r14
movabsq $-0x7b425ed097b425ed, %r12 # imm = 0x84BDA12F684BDA13
je 0x19edb
leaq 0x1563d(%rip), %rsi     # 0x2f50b
movl $0x1, %edx
movq %rbx, %rdi
callq 0x53f0
leaq 0x16ac7(%rip), %rsi     # 0x309a9
movl $0x22, %edx
movq %rbx, %rdi
callq 0x53f0
xorq $0x7, %r14
movq %rbx, %rdi
movq %r15, %rsi
movq %r14, 0x40(%rsp)
movq %r14, %rdx
callq 0x53f0
leaq 0x16abf(%rip), %rsi     # 0x309cc
movl $0xf, %edx
movq %rbx, %rdi
callq 0x53f0
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rcx
subq (%rax), %rcx
je 0x19fe3
movq %rcx, %rax
sarq $0x3, %rax
imulq %r12, %rax
cmpq $0x1, %rax
adcq $0x0, %rax
movq %rax, 0x38(%rsp)
leaq 0x16bd7(%rip), %r13     # 0x30b22
movl $0x80, %r15d
xorl %r14d, %r14d
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq -0x8(%rax,%r15), %r12
movq (%rax,%r15), %rbp
movq %r13, %rdi
callq 0x51a0
movq %rbx, %rdi
movq %r13, %rsi
movq %rax, %rdx
callq 0x53f0
cmpq %rbp, %r12
je 0x19fb3
movq %rbx, %rdi
movq 0x10(%rsp), %rsi
movq 0x40(%rsp), %rdx
callq 0x53f0
movl $0xa, %edx
movq %rbx, %rdi
leaq 0x169fd(%rip), %rsi     # 0x3099e
callq 0x53f0
movq %rbx, %rdi
movq %r14, %rsi
callq 0x5270
jmp 0x19fc7
movl $0x7, %edx
movq %rbx, %rdi
leaq 0x16a1a(%rip), %rsi     # 0x309dc
callq 0x53f0
incq %r14
addq $0xd8, %r15
leaq 0x166c5(%rip), %r13     # 0x3069d
cmpq %r14, 0x38(%rsp)
jne 0x19f54
leaq 0x16455(%rip), %rsi     # 0x3043f
movl $0x3, %edx
movq %rbx, %rdi
callq 0x53f0
leaq 0x169e6(%rip), %rsi     # 0x309e4
movl $0x20, %edx
movq %rbx, %rdi
callq 0x53f0
movq %rbx, %rdi
movq 0x10(%rsp), %rsi
movq 0x40(%rsp), %rdx
callq 0x53f0
leaq 0x169e1(%rip), %rsi     # 0x30a05
movl $0x14, %edx
movq %rbx, %rdi
callq 0x53f0
movq 0x8(%rsp), %rax
movq (%rax), %r15
movq 0x8(%rax), %r12
cmpq %r12, %r15
je 0x1a08c
leaq 0x16ad9(%rip), %r14     # 0x30b22
leaq 0x1664d(%rip), %r13     # 0x3069d
movq %r14, %rdi
callq 0x51a0
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x53f0
movq 0x80(%r15), %rsi
subq 0x78(%r15), %rsi
sarq $0x6, %rsi
movq %rbx, %rdi
callq 0x5270
addq $0xd8, %r15
movq %r13, %r14
cmpq %r12, %r15
jne 0x1a050
leaq 0x163ac(%rip), %rsi     # 0x3043f
movl $0x3, %edx
movq %rbx, %rdi
callq 0x53f0
leaq 0x15464(%rip), %rsi     # 0x2f50b
movl $0x1, %edx
movq %rbx, %rdi
callq 0x53f0
cmpb $0x0, 0x6c(%rsp)
je 0x1a331
leaq 0x16954(%rip), %rsi     # 0x30a1a
movl $0x16, %edx
movq %rbx, %rdi
callq 0x53f0
movq %rbx, %rdi
movq 0x10(%rsp), %r15
movq %r15, %rsi
movq 0x40(%rsp), %r12
movq %r12, %rdx
callq 0x53f0
leaq 0x1693f(%rip), %rsi     # 0x30a31
movl $0x31, %edx
movq %rbx, %rdi
callq 0x53f0
leaq 0x1695d(%rip), %rsi     # 0x30a63
movl $0x1e, %edx
movq %rbx, %rdi
callq 0x53f0
movq %rbx, %rdi
movq %r15, %rsi
movq %r12, %rdx
callq 0x53f0
leaq 0x1695a(%rip), %rsi     # 0x30a82
movl $0x14, %edx
movq %rbx, %rdi
callq 0x53f0
leaq 0x16566(%rip), %r14     # 0x306a2
movl $0x2, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x53f0
leaq 0x16944(%rip), %rsi     # 0x30a97
movl $0x1c, %edx
movq %rbx, %rdi
callq 0x53f0
movq %rbx, %rdi
movq %r15, %rsi
movq %r12, %rdx
callq 0x53f0
leaq 0x1693f(%rip), %rsi     # 0x30ab4
movl $0x29, %edx
movq %rbx, %rdi
callq 0x53f0
leaq 0x16955(%rip), %rsi     # 0x30ade
movl $0x31, %edx
movq %rbx, %rdi
callq 0x53f0
movq %rbx, %rdi
movq %r15, %rsi
movq %r12, %rdx
callq 0x53f0
leaq 0x16965(%rip), %rsi     # 0x30b10
movl $0x10, %edx
movq %rbx, %rdi
callq 0x53f0
movl $0x2, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x53f0
leaq 0x1533c(%rip), %rsi     # 0x2f50b
movl $0x1, %edx
movq %rbx, %rdi
callq 0x53f0
movq 0x8(%rsp), %rax
movq (%rax), %r14
movq 0x8(%rax), %r13
cmpq %r13, %r14
je 0x1a3cf
addq $0x48, %r14
leaq 0x16894(%rip), %rbp     # 0x30a90
leaq 0x1649f(%rip), %r15     # 0x306a2
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x1690f(%rip), %rsi     # 0x30b21
callq 0x53f0
movl $0x15, %edx
movq %rbx, %rdi
leaq 0x167f5(%rip), %rsi     # 0x30a1b
callq 0x53f0
leaq 0x48(%rsp), %rdi
leaq 0x168ec(%rip), %rsi     # 0x30b23
movq %r14, %rdx
callq 0x1aea6
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
testq %rdx, %rdx
sete %al
testq %rsi, %rsi
setne %cl
orb %al, %cl
je 0x1a52e
addq %rsi, %rdx
leaq 0x18(%rsp), %rdi
callq 0x1a995
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rdx
movq %rbx, %rdi
callq 0x53f0
movq %rax, %r12
movl $0x1f, %edx
movq %rax, %rdi
leaq 0x1689a(%rip), %rsi     # 0x30b28
callq 0x53f0
movl $0x3, %edx
movq %r12, %rdi
leaq 0x168ca(%rip), %rsi     # 0x30b6c
callq 0x53f0
movq -0x20(%r14), %rsi
movq -0x18(%r14), %rdx
movq %r12, %rdi
callq 0x53f0
movq %rax, %r12
movl $0x6, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53f0
movl $0x2, %edx
movq %r12, %rdi
movq %r15, %rsi
callq 0x53f0
movq 0x18(%rsp), %rdi
leaq 0x28(%rsp), %rax
cmpq %rax, %rdi
je 0x1a2f6
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x1a312
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x5380
leaq 0xd8(%r14), %rax
addq $0x90, %r14
cmpq %r13, %r14
movq %rax, %r14
jne 0x1a203
jmp 0x1a3cf
leaq 0x1675f(%rip), %rsi     # 0x30a97
movl $0x1c, %edx
movq %rbx, %rdi
callq 0x53f0
movq %rbx, %rdi
movq 0x10(%rsp), %r14
movq %r14, %rsi
movq 0x40(%rsp), %r15
movq %r15, %rdx
callq 0x53f0
leaq 0x16750(%rip), %rsi     # 0x30ab4
movl $0x29, %edx
movq %rbx, %rdi
callq 0x53f0
leaq 0x16766(%rip), %rsi     # 0x30ade
movl $0x31, %edx
movq %rbx, %rdi
callq 0x53f0
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x53f0
leaq 0x16776(%rip), %rsi     # 0x30b10
movl $0x10, %edx
movq %rbx, %rdi
callq 0x53f0
leaq 0x162f4(%rip), %rsi     # 0x306a2
movl $0x2, %edx
movq %rbx, %rdi
callq 0x53f0
leaq 0x15149(%rip), %rsi     # 0x2f50b
movl $0x1, %edx
movq %rbx, %rdi
callq 0x53f0
movq 0x8(%rsp), %rax
movq (%rax), %r14
movq 0x8(%rax), %r13
cmpq %r13, %r14
je 0x1a51f
addq $0x48, %r14
leaq 0x1672f(%rip), %rbp     # 0x30b1e
leaq 0x162ac(%rip), %r15     # 0x306a2
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x1671c(%rip), %rsi     # 0x30b21
callq 0x53f0
movl $0x1b, %edx
movq %rbx, %rdi
leaq 0x1667f(%rip), %rsi     # 0x30a98
callq 0x53f0
leaq 0x48(%rsp), %rdi
leaq 0x1671e(%rip), %rsi     # 0x30b48
movq %r14, %rdx
callq 0x1aea6
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
testq %rdx, %rdx
sete %al
testq %rsi, %rsi
setne %cl
orb %al, %cl
je 0x1a52e
addq %rsi, %rdx
leaq 0x18(%rsp), %rdi
callq 0x1a995
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rdx
movq %rbx, %rdi
callq 0x53f0
movq %rax, %r12
movl $0x17, %edx
movq %rax, %rdi
leaq 0x166cc(%rip), %rsi     # 0x30b4d
callq 0x53f0
movl $0xa, %edx
movq %r12, %rdi
leaq 0x166d0(%rip), %rsi     # 0x30b65
callq 0x53f0
movq -0x20(%r14), %rsi
movq -0x18(%r14), %rdx
movq %r12, %rdi
callq 0x53f0
movq %rax, %r12
movl $0x2, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x53f0
movl $0x2, %edx
movq %r12, %rdi
movq %r15, %rsi
callq 0x53f0
movq 0x18(%rsp), %rdi
leaq 0x28(%rsp), %rax
cmpq %rax, %rdi
je 0x1a4e9
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x1a505
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x5380
leaq 0xd8(%r14), %rax
addq $0x90, %r14
cmpq %r13, %r14
movq %rax, %r14
jne 0x1a3f6
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x50e0
jmp 0x1a535
movq %rax, %rbx
jmp 0x1a563
jmp 0x1a57b
jmp 0x1a57b
jmp 0x1a57b
jmp 0x1a57b
jmp 0x1a544
movq %rax, %rbx
movq 0x18(%rsp), %rdi
leaq 0x28(%rsp), %rax
cmpq %rax, %rdi
je 0x1a563
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x1a5bb
movq 0x58(%rsp), %rsi
jmp 0x1a5b3
jmp 0x1a57b
movq %rax, %rbx
jmp 0x1a59f
movq %rax, %rbx
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x1a59f
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x5380
movq 0x18(%rsp), %rdi
leaq 0x28(%rsp), %rax
cmpq %rax, %rdi
je 0x1a5bb
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x5380
movq %rbx, %rdi
callq 0x56d0
nop