// File: jpcima[P]faustmd/call_faust.cpp
// Function: apply_workarounds(pugi::xml_document&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
static int apply_workarounds(pugi::xml_document &docmd, const std::string &cppfile)
{
    pugi::xml_node root = docmd.child("faust");

    bool has_meta = root.find_node(
        [](pugi::xml_node node) -> bool { return node.name() == gsl::cstring_span("meta"); });

    if (!has_meta) {
        // workaround: extract the metadata from source file
        std::ifstream in(cppfile);

        //
        std::map<std::string, pugi::xml_node> widget_nodes;
        for (pugi::xml_node node : root.child("ui").child("activewidgets").children("widget"))
            widget_nodes[node.child_value("varname")] = node;
        for (pugi::xml_node node : root.child("ui").child("passivewidgets").children("widget"))
            widget_nodes[node.child_value("varname")] = node;

        //
        std::string line;
        do {
            line.clear();
            std::getline(in, line);

            #define RE_STRLIT "\"(?:\\\\.|[^\"\\\\])*\""
            #define RE_IDENT  "[a-zA-Z_][0-9a-zA-Z_]*"

            static const std::regex re_global(
                "^\\s*m->declare\\((" RE_STRLIT "), (" RE_STRLIT ")\\);");
            static const std::regex re_control(
                "^\\s*ui_interface->declare\\(&(" RE_IDENT "), "
                "(" RE_STRLIT "), (" RE_STRLIT ")\\);");

            #undef RE_STRLIT
            #undef RE_IDENT

            std::smatch match;

            if (std::regex_match(line, match, re_global)) {
                std::string key;
                std::string value;
                if (parse_cstrlit(key, match[1].str()) &&
                    parse_cstrlit(value, match[2].str()))
                {
                    pugi::xml_node meta = root.append_child("meta");
                    meta.append_attribute("key").set_value(key.c_str());
                    meta.text().set(value.c_str());
                }
            }
            else if (std::regex_match(line, match, re_control)) {
                std::string varname = match[1].str();
                std::string key;
                std::string value;
                if (parse_cstrlit(key, match[2].str()) &&
                    parse_cstrlit(value, match[3].str()))
                {
                    auto it = widget_nodes.find(varname);
                    if (it != widget_nodes.end()) {
                        pugi::xml_node meta = it->second.append_child("meta");
                        meta.append_attribute("key").set_value(key.c_str());
                        meta.text().set(value.c_str());
                    }
                }
            }
        } while (in);

        if (in.bad())
            return -1;
    }

    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x6e0, %rsp            # imm = 0x6E0
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rdi
leaq 0x5a258(%rip), %rsi     # 0x66616
callq 0x3eeb0
movq %rax, -0x20(%rbp)
leaq -0x20(%rbp), %rdi
callq 0xd150
movq %rax, -0x30(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x3ec10
cmpq $0x0, %rax
setne %al
andb $0x1, %al
movb %al, -0x21(%rbp)
testb $0x1, -0x21(%rbp)
jne 0xd08e
movq -0x18(%rbp), %rsi
leaq -0x240(%rbp), %rdi
movl $0x8, %edx
callq 0x7900
leaq -0x270(%rbp), %rdi
callq 0xddf0
leaq 0x5a21a(%rip), %rsi     # 0x66635
leaq -0x20(%rbp), %rdi
callq 0x3eeb0
movq %rax, -0x5d0(%rbp)
jmp 0xc42d
movq -0x5d0(%rbp), %rax
movq %rax, -0x2b8(%rbp)
leaq 0x5a1f6(%rip), %rsi     # 0x66638
leaq -0x2b8(%rbp), %rdi
callq 0x3eeb0
movq %rax, -0x5d8(%rbp)
jmp 0xc457
movq -0x5d8(%rbp), %rax
movq %rax, -0x2b0(%rbp)
leaq 0x5a1da(%rip), %rdx     # 0x66646
leaq -0x2a8(%rbp), %rdi
leaq -0x2b0(%rbp), %rsi
callq 0x3edf0
jmp 0xc481
leaq -0x2a8(%rbp), %rax
movq %rax, -0x278(%rbp)
movq -0x278(%rbp), %rsi
leaq -0x2e0(%rbp), %rdi
callq 0xde10
jmp 0xc4a4
movq -0x278(%rbp), %rsi
leaq -0x2f8(%rbp), %rdi
callq 0xde40
jmp 0xc4b9
jmp 0xc4bb
leaq -0x2e0(%rbp), %rdi
leaq -0x2f8(%rbp), %rsi
callq 0x44270
movb %al, -0x5d9(%rbp)
jmp 0xc4d6
movb -0x5d9(%rbp), %al
testb $0x1, %al
jne 0xc4e5
jmp 0xc608
leaq -0x2e0(%rbp), %rdi
callq 0x442c0
movq %rax, -0x5e8(%rbp)
jmp 0xc4fa
movq -0x5e8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x300(%rbp)
leaq 0x5a13b(%rip), %rsi     # 0x6664d
leaq -0x300(%rbp), %rdi
callq 0x3f910
movq %rax, -0x5f0(%rbp)
jmp 0xc527
leaq -0x321(%rbp), %rdi
movq %rdi, -0x5f8(%rbp)
callq 0x7a30
movq -0x5f0(%rbp), %rsi
movq -0x5f8(%rbp), %rdx
leaq -0x320(%rbp), %rdi
callq 0x8cf0
jmp 0xc556
leaq -0x270(%rbp), %rdi
leaq -0x320(%rbp), %rsi
callq 0xde70
movq %rax, -0x600(%rbp)
jmp 0xc572
movq -0x600(%rbp), %rax
movq -0x300(%rbp), %rcx
movq %rcx, (%rax)
leaq -0x320(%rbp), %rdi
callq 0x7380
leaq -0x321(%rbp), %rdi
callq 0x75c0
leaq -0x2e0(%rbp), %rdi
callq 0x44360
jmp 0xc5a9
jmp 0xc4bb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
jmp 0xd074
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
jmp 0xc5f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
leaq -0x320(%rbp), %rdi
callq 0x7380
leaq -0x321(%rbp), %rdi
callq 0x75c0
jmp 0xd074
leaq 0x5a026(%rip), %rsi     # 0x66635
leaq -0x20(%rbp), %rdi
callq 0x3eeb0
movq %rax, -0x608(%rbp)
jmp 0xc621
movq -0x608(%rbp), %rax
movq %rax, -0x370(%rbp)
leaq 0x5a01f(%rip), %rsi     # 0x66655
leaq -0x370(%rbp), %rdi
callq 0x3eeb0
movq %rax, -0x610(%rbp)
jmp 0xc64b
movq -0x610(%rbp), %rax
movq %rax, -0x368(%rbp)
leaq 0x59fe6(%rip), %rdx     # 0x66646
leaq -0x360(%rbp), %rdi
leaq -0x368(%rbp), %rsi
callq 0x3edf0
jmp 0xc675
leaq -0x360(%rbp), %rax
movq %rax, -0x330(%rbp)
movq -0x330(%rbp), %rsi
leaq -0x388(%rbp), %rdi
callq 0xde10
jmp 0xc698
movq -0x330(%rbp), %rsi
leaq -0x3a0(%rbp), %rdi
callq 0xde40
jmp 0xc6ad
jmp 0xc6af
leaq -0x388(%rbp), %rdi
leaq -0x3a0(%rbp), %rsi
callq 0x44270
movb %al, -0x611(%rbp)
jmp 0xc6ca
movb -0x611(%rbp), %al
testb $0x1, %al
jne 0xc6d9
jmp 0xc7e5
leaq -0x388(%rbp), %rdi
callq 0x442c0
movq %rax, -0x620(%rbp)
jmp 0xc6ee
movq -0x620(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x3a8(%rbp)
leaq 0x59f47(%rip), %rsi     # 0x6664d
leaq -0x3a8(%rbp), %rdi
callq 0x3f910
movq %rax, -0x628(%rbp)
jmp 0xc71b
leaq -0x3c9(%rbp), %rdi
movq %rdi, -0x630(%rbp)
callq 0x7a30
movq -0x628(%rbp), %rsi
movq -0x630(%rbp), %rdx
leaq -0x3c8(%rbp), %rdi
callq 0x8cf0
jmp 0xc74a
leaq -0x270(%rbp), %rdi
leaq -0x3c8(%rbp), %rsi
callq 0xde70
movq %rax, -0x638(%rbp)
jmp 0xc766
movq -0x638(%rbp), %rax
movq -0x3a8(%rbp), %rcx
movq %rcx, (%rax)
leaq -0x3c8(%rbp), %rdi
callq 0x7380
leaq -0x3c9(%rbp), %rdi
callq 0x75c0
leaq -0x388(%rbp), %rdi
callq 0x44360
jmp 0xc79d
jmp 0xc6af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
jmp 0xc7d4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
leaq -0x3c8(%rbp), %rdi
callq 0x7380
leaq -0x3c9(%rbp), %rdi
callq 0x75c0
jmp 0xd074
leaq -0x3f0(%rbp), %rdi
callq 0x77f0
leaq -0x3f0(%rbp), %rdi
movq %rdi, -0x640(%rbp)
callq 0x7770
movq -0x640(%rbp), %rsi
leaq -0x240(%rbp), %rdi
callq 0x70f0
jmp 0xc819
cmpb $0x0, 0x83208(%rip)     # 0x8fa28
jne 0xc873
leaq 0x831ff(%rip), %rdi     # 0x8fa28
callq 0x7a70
cmpl $0x0, %eax
je 0xc873
leaq 0x831ce(%rip), %rdi     # 0x8fa08
leaq 0x59e23(%rip), %rsi     # 0x66664
movl $0x10, %edx
callq 0xdf50
jmp 0xc84d
leaq 0x179c(%rip), %rdi      # 0xdff0
leaq 0x831ad(%rip), %rsi     # 0x8fa08
leaq 0x82d76(%rip), %rdx     # 0x8f5d8
callq 0x74f0
leaq 0x831ba(%rip), %rdi     # 0x8fa28
callq 0x73c0
cmpb $0x0, 0x831d6(%rip)     # 0x8fa50
jne 0xc8cd
leaq 0x831cd(%rip), %rdi     # 0x8fa50
callq 0x7a70
cmpl $0x0, %eax
je 0xc8cd
leaq 0x8319c(%rip), %rdi     # 0x8fa30
leaq 0x59e05(%rip), %rsi     # 0x666a0
movl $0x10, %edx
callq 0xdf50
jmp 0xc8a7
leaq 0x1742(%rip), %rdi      # 0xdff0
leaq 0x8317b(%rip), %rsi     # 0x8fa30
leaq 0x82d1c(%rip), %rdx     # 0x8f5d8
callq 0x74f0
leaq 0x83188(%rip), %rdi     # 0x8fa50
callq 0x73c0
leaq -0x410(%rbp), %rdi
callq 0xe020
jmp 0xc8db
leaq 0x83126(%rip), %rdx     # 0x8fa08
leaq -0x3f0(%rbp), %rdi
leaq -0x410(%rbp), %rsi
xorl %ecx, %ecx
callq 0xe060
movb %al, -0x641(%rbp)
jmp 0xc8ff
movb -0x641(%rbp), %al
testb $0x1, %al
jne 0xc90e
jmp 0xcc23
leaq -0x430(%rbp), %rdi
callq 0x77f0
leaq -0x450(%rbp), %rdi
callq 0x77f0
movb $0x0, -0x4b1(%rbp)
leaq -0x410(%rbp), %rdi
movl $0x1, %esi
callq 0xe0c0
movq %rax, -0x650(%rbp)
jmp 0xc947
movq -0x650(%rbp), %rsi
leaq -0x480(%rbp), %rdi
callq 0xe130
jmp 0xc95c
leaq -0x460(%rbp), %rdi
leaq -0x480(%rbp), %rsi
callq 0xd840
jmp 0xc971
movq -0x460(%rbp), %rsi
movq -0x458(%rbp), %rdx
leaq -0x430(%rbp), %rdi
callq 0xd2e0
movb %al, -0x651(%rbp)
jmp 0xc993
movb -0x651(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x652(%rbp)
jne 0xc9a8
jmp 0xca23
leaq -0x410(%rbp), %rdi
movl $0x2, %esi
callq 0xe0c0
movq %rax, -0x660(%rbp)
jmp 0xc9c2
movq -0x660(%rbp), %rsi
leaq -0x4b0(%rbp), %rdi
callq 0xe130
jmp 0xc9d7
movb $0x1, -0x4b1(%rbp)
leaq -0x490(%rbp), %rdi
leaq -0x4b0(%rbp), %rsi
callq 0xd840
jmp 0xc9f3
movq -0x490(%rbp), %rsi
movq -0x488(%rbp), %rdx
leaq -0x450(%rbp), %rdi
callq 0xd2e0
movb %al, -0x661(%rbp)
jmp 0xca15
movb -0x661(%rbp), %al
movb %al, -0x652(%rbp)
jmp 0xca23
movb -0x652(%rbp), %al
movb %al, -0x662(%rbp)
testb $0x1, -0x4b1(%rbp)
jne 0xca3a
jmp 0xca46
leaq -0x4b0(%rbp), %rdi
callq 0x7380
leaq -0x480(%rbp), %rdi
callq 0x7380
movb -0x662(%rbp), %al
testb $0x1, %al
jne 0xca61
jmp 0xcbe9
leaq 0x5ac33(%rip), %rsi     # 0x6769b
leaq -0x20(%rbp), %rdi
callq 0x40d50
movq %rax, -0x670(%rbp)
jmp 0xca7a
movq -0x670(%rbp), %rax
movq %rax, -0x4c0(%rbp)
leaq 0x59c73(%rip), %rsi     # 0x66702
leaq -0x4c0(%rbp), %rdi
callq 0x3fc10
movq %rax, -0x678(%rbp)
jmp 0xcaa4
movq -0x678(%rbp), %rax
movq %rax, -0x4c8(%rbp)
leaq -0x430(%rbp), %rdi
callq 0x71f0
movq %rax, %rsi
leaq -0x4c8(%rbp), %rdi
callq 0x3e110
jmp 0xcacf
leaq -0x4c0(%rbp), %rdi
callq 0x3f7e0
movq %rax, -0x680(%rbp)
jmp 0xcae4
movq -0x680(%rbp), %rax
movq %rax, -0x4d0(%rbp)
leaq -0x450(%rbp), %rdi
callq 0x71f0
movq %rax, %rsi
leaq -0x4d0(%rbp), %rdi
callq 0x43540
jmp 0xcb0f
jmp 0xcbe9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
jmp 0xd068
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
leaq 0x82ee4(%rip), %rdi     # 0x8fa28
callq 0x73b0
jmp 0xd068
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
leaq 0x82ee9(%rip), %rdi     # 0x8fa50
callq 0x73b0
jmp 0xd068
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
jmp 0xd01c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
jmp 0xcc06
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
jmp 0xcbdb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
testb $0x1, -0x4b1(%rbp)
jne 0xcbcd
jmp 0xcbd9
leaq -0x4b0(%rbp), %rdi
callq 0x7380
jmp 0xcbdb
leaq -0x480(%rbp), %rdi
callq 0x7380
jmp 0xcc06
leaq -0x450(%rbp), %rdi
callq 0x7380
leaq -0x430(%rbp), %rdi
callq 0x7380
jmp 0xcfa1
leaq -0x450(%rbp), %rdi
callq 0x7380
leaq -0x430(%rbp), %rdi
callq 0x7380
jmp 0xd01c
leaq 0x82e06(%rip), %rdx     # 0x8fa30
leaq -0x3f0(%rbp), %rdi
leaq -0x410(%rbp), %rsi
xorl %ecx, %ecx
callq 0xe060
movb %al, -0x681(%rbp)
jmp 0xcc47
movb -0x681(%rbp), %al
testb $0x1, %al
jne 0xcc56
jmp 0xcf9f
leaq -0x410(%rbp), %rdi
movl $0x1, %esi
callq 0xe0c0
movq %rax, -0x690(%rbp)
jmp 0xcc70
movq -0x690(%rbp), %rsi
leaq -0x4f0(%rbp), %rdi
callq 0xe130
jmp 0xcc85
leaq -0x510(%rbp), %rdi
callq 0x77f0
leaq -0x530(%rbp), %rdi
callq 0x77f0
movb $0x0, -0x591(%rbp)
leaq -0x410(%rbp), %rdi
movl $0x2, %esi
callq 0xe0c0
movq %rax, -0x698(%rbp)
jmp 0xccbe
movq -0x698(%rbp), %rsi
leaq -0x560(%rbp), %rdi
callq 0xe130
jmp 0xccd3
leaq -0x540(%rbp), %rdi
leaq -0x560(%rbp), %rsi
callq 0xd840
jmp 0xcce8
movq -0x540(%rbp), %rsi
movq -0x538(%rbp), %rdx
leaq -0x510(%rbp), %rdi
callq 0xd2e0
movb %al, -0x699(%rbp)
jmp 0xcd0a
movb -0x699(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x69a(%rbp)
jne 0xcd1f
jmp 0xcd9a
leaq -0x410(%rbp), %rdi
movl $0x3, %esi
callq 0xe0c0
movq %rax, -0x6a8(%rbp)
jmp 0xcd39
movq -0x6a8(%rbp), %rsi
leaq -0x590(%rbp), %rdi
callq 0xe130
jmp 0xcd4e
movb $0x1, -0x591(%rbp)
leaq -0x570(%rbp), %rdi
leaq -0x590(%rbp), %rsi
callq 0xd840
jmp 0xcd6a
movq -0x570(%rbp), %rsi
movq -0x568(%rbp), %rdx
leaq -0x530(%rbp), %rdi
callq 0xd2e0
movb %al, -0x6a9(%rbp)
jmp 0xcd8c
movb -0x6a9(%rbp), %al
movb %al, -0x69a(%rbp)
jmp 0xcd9a
movb -0x69a(%rbp), %al
movb %al, -0x6aa(%rbp)
testb $0x1, -0x591(%rbp)
jne 0xcdb1
jmp 0xcdbd
leaq -0x590(%rbp), %rdi
callq 0x7380
leaq -0x560(%rbp), %rdi
callq 0x7380
movb -0x6aa(%rbp), %al
testb $0x1, %al
jne 0xcdd8
jmp 0xcf53
leaq -0x270(%rbp), %rdi
leaq -0x4f0(%rbp), %rsi
callq 0xe1f0
movq %rax, -0x6b8(%rbp)
jmp 0xcdf4
movq -0x6b8(%rbp), %rax
movq %rax, -0x5a0(%rbp)
leaq -0x270(%rbp), %rdi
callq 0xe250
movq %rax, -0x5a8(%rbp)
leaq -0x5a0(%rbp), %rdi
leaq -0x5a8(%rbp), %rsi
callq 0xe220
testb $0x1, %al
jne 0xce31
jmp 0xcf51
leaq -0x5a0(%rbp), %rdi
callq 0xe280
movq %rax, %rdi
addq $0x20, %rdi
leaq 0x5a850(%rip), %rsi     # 0x6769b
callq 0x40d50
movq %rax, -0x6c0(%rbp)
jmp 0xce59
movq -0x6c0(%rbp), %rax
movq %rax, -0x5b0(%rbp)
leaq 0x59894(%rip), %rsi     # 0x66702
leaq -0x5b0(%rbp), %rdi
callq 0x3fc10
movq %rax, -0x6c8(%rbp)
jmp 0xce83
movq -0x6c8(%rbp), %rax
movq %rax, -0x5b8(%rbp)
leaq -0x510(%rbp), %rdi
callq 0x71f0
movq %rax, %rsi
leaq -0x5b8(%rbp), %rdi
callq 0x3e110
jmp 0xceae
leaq -0x5b0(%rbp), %rdi
callq 0x3f7e0
movq %rax, -0x6d0(%rbp)
jmp 0xcec3
movq -0x6d0(%rbp), %rax
movq %rax, -0x5c0(%rbp)
leaq -0x530(%rbp), %rdi
callq 0x71f0
movq %rax, %rsi
leaq -0x5c0(%rbp), %rdi
callq 0x43540
jmp 0xceee
jmp 0xcf51
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
jmp 0xcf79
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
jmp 0xcf43
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
testb $0x1, -0x591(%rbp)
jne 0xcf35
jmp 0xcf41
leaq -0x590(%rbp), %rdi
callq 0x7380
jmp 0xcf43
leaq -0x560(%rbp), %rdi
callq 0x7380
jmp 0xcf79
jmp 0xcf53
leaq -0x530(%rbp), %rdi
callq 0x7380
leaq -0x510(%rbp), %rdi
callq 0x7380
leaq -0x4f0(%rbp), %rdi
callq 0x7380
jmp 0xcf9f
leaq -0x530(%rbp), %rdi
callq 0x7380
leaq -0x510(%rbp), %rdi
callq 0x7380
leaq -0x4f0(%rbp), %rdi
callq 0x7380
jmp 0xd01c
jmp 0xcfa1
leaq -0x410(%rbp), %rdi
callq 0xe2a0
movq -0x240(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x240(%rbp,%rax), %rdi
callq 0x76f0
movb %al, -0x6d1(%rbp)
jmp 0xcfcd
movb -0x6d1(%rbp), %al
testb $0x1, %al
jne 0xc7f1
jmp 0xcfdd
movq -0x240(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x240(%rbp,%rax), %rdi
callq 0x7a60
movb %al, -0x6d2(%rbp)
jmp 0xcffd
movb -0x6d2(%rbp), %al
testb $0x1, %al
jne 0xd009
jmp 0xd02a
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
movl $0x1, -0x5c4(%rbp)
jmp 0xd034
leaq -0x410(%rbp), %rdi
callq 0xe2a0
jmp 0xd068
movl $0x0, -0x5c4(%rbp)
leaq -0x3f0(%rbp), %rdi
callq 0x7380
leaq -0x270(%rbp), %rdi
callq 0xe2c0
leaq -0x240(%rbp), %rdi
callq 0x7140
movl -0x5c4(%rbp), %eax
testl %eax, %eax
je 0xd066
jmp 0xd064
jmp 0xd095
jmp 0xd08e
leaq -0x3f0(%rbp), %rdi
callq 0x7380
leaq -0x270(%rbp), %rdi
callq 0xe2c0
leaq -0x240(%rbp), %rdi
callq 0x7140
jmp 0xd0a1
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x6e0, %rsp            # imm = 0x6E0
popq %rbp
retq
movq -0x2c0(%rbp), %rdi
callq 0x7a20
nopl (%rax)