// File: /workspace/github_cpp_makefile_star2_O3/Falldog[P]dcinja/src/dcinja.cpp
// Function: execute(cxxopts::ParseResult&)
int execute(cxxopts::ParseResult& result) {
    json data;
    std::string content;

    // 0. change current working dir
    if (result.count("cwd")) {
        auto cwd = result["cwd"].as<std::string>();
        if (chdir(cwd.c_str()) != 0) {
            std::cout << "cwd fail, please make sure your dir path exists" << std::endl;
            exit(1);
        }
    }

    // 1. prepare json data & extra envs
    //    priority: envs(-e) >> json(-j) >> json-file(-f)
    if (result.count("json-file")) {
        auto& json_files = result["json-file"].as<std::vector<std::string>>();
        for (size_t i=0 ; i<json_files.size() ; ++i) {
            std::string json_content;
            read_source(json_files[i], json_content);
            data.merge_patch(
                json::parse(json_content.begin(), json_content.end())
            );
        }
    }
    if (result.count("json")) {
        auto& jsons = result["json"].as<std::vector<std::string>>();
        for (size_t i=0 ; i<jsons.size() ; ++i) {
            data.merge_patch(
                json::parse(jsons[i])
            );
        }
    }
    if (result.count("envs")) {
        auto& envs = result["envs"].as<std::vector<std::string>>();
        for (size_t i=0 ; i<envs.size() ; ++i) {
            auto idx = envs[i].find_first_of("=");
            if (idx == std::string::npos) {
                char * _env = std::getenv(envs[i].c_str());
                if (_env) {
                    std::string value = _env;
                    data[envs[i]] = value;
                }
            }
            else {
                std::string key = envs[i].substr(0, idx);
                std::string value = envs[i].substr(idx+1);
                data[key] = value;
            }
        }
    }
    if (result.count("force-system-envs")) {
        for (json::iterator it = data.begin(); it != data.end(); ++it) {
            char * _env = std::getenv(it.key().c_str());
            if (_env) {
                std::string value = _env;
                data[it.key()] = value;
            }
        }
    }
    if (result.count("verbose")) {
        std::cerr << "<<< JSON content: >>>" << std::endl;
        std::cerr << data.dump(4) << std::endl;
    }

    // 2. read source content
    if (result.count("src")) {
        auto src = result["src"].as<std::string>();
        read_source(src, content);
    } else {
        read_source("", content);
    }

    // 3. convert content -> template
    std::pair<std::string, std::string> x_delims = parse_delimiters(result["expression"].as<std::string>());
    std::pair<std::string, std::string> t_delims = parse_delimiters(result["statement"].as<std::string>());
    std::pair<std::string, std::string> c_delims = parse_delimiters(result["comment"].as<std::string>());

    inja::Environment env;
    env.set_expression(x_delims.first, x_delims.second);
    env.set_statement(t_delims.first, t_delims.second);
    env.set_comment(c_delims.first, c_delims.second);

    inja::Template tmpl = env.parse(content);

    // 4. render output from template
    if (result.count("dest")) {
        auto dest = result["dest"].as<std::string>();
        std::ofstream ofs;
        ofs.open(dest, std::ofstream::out | std::ofstream::trunc);
        env.render_to(ofs, tmpl, data);
        ofs.close();
    } else {
        env.render_to(std::cout, tmpl, data);
    }
    return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x698, %rsp            # imm = 0x698
movq %rdi, %r15
xorl %ebx, %ebx
leaq 0x30(%rsp), %r14
movb %bl, (%r14)
movq %rbx, 0x8(%r14)
movq %r14, %rdi
callq 0x24080
movq %r14, %rdi
callq 0x24080
leaq 0x18(%rsp), %rax
movq %rax, -0x10(%rax)
movq %rbx, -0x8(%rax)
movb %bl, (%rax)
leaq 0x88(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x48b9f(%rip), %rsi     # 0x5554b
leaq 0x48b9b(%rip), %rdx     # 0x5554e
leaq 0x78(%rsp), %rdi
callq 0x126d8
leaq 0x78(%rsp), %rsi
movq %r15, %rdi
callq 0xe59a
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xc9ef
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
testq %rbx, %rbx
je 0xcaa7
leaq 0x460(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x48b40(%rip), %rsi     # 0x5554b
leaq 0x48b3c(%rip), %rdx     # 0x5554e
leaq 0x450(%rsp), %rdi
callq 0x126d8
leaq 0x450(%rsp), %rsi
movq %r15, %rdi
callq 0xea64
movq %rax, %rdi
callq 0xeadc
leaq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rcx
movq %rcx, (%rdi)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
callq 0x3bed8
movq 0x450(%rsp), %rdi
cmpq %r14, %rdi
je 0xca73
movq 0x460(%rsp), %rsi
incq %rsi
callq 0x93c0
movq 0x78(%rsp), %rdi
callq 0x9650
testl %eax, %eax
jne 0xdaee
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xcaa7
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
movq %rax, (%rdi)
leaq 0x48bd7(%rip), %rsi     # 0x55695
leaq 0x48bd9(%rip), %rdx     # 0x5569e
callq 0x126d8
leaq 0x78(%rsp), %rsi
movq %r15, %rdi
callq 0xe59a
movq %rax, %rbx
movq %r15, 0x28(%rsp)
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xcb01
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
testq %rbx, %rbx
je 0xccc9
leaq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
movq %rax, (%rdi)
leaq 0x48b74(%rip), %rsi     # 0x55695
leaq 0x48b76(%rip), %rdx     # 0x5569e
callq 0x126d8
leaq 0x78(%rsp), %rsi
movq 0x28(%rsp), %rdi
callq 0xea64
movq %rax, %rdi
callq 0xeb64
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xcb69
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
movq 0x8(%rbx), %rax
cmpq (%rbx), %rax
je 0xccc9
movl $0x8, %r14d
xorl %r12d, %r12d
leaq 0x2d0(%rsp), %r15
leaq 0x450(%rsp), %r13
leaq 0x370(%rsp), %rbp
leaq 0x88(%rsp), %rax
movq %rax, 0x78(%rsp)
movq $0x0, 0x80(%rsp)
movb $0x0, 0x88(%rsp)
movq (%rbx), %rax
leaq 0x2e0(%rsp), %rcx
movq %rcx, 0x2d0(%rsp)
movq -0x8(%rax,%r14), %rsi
movq (%rax,%r14), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0x3bed8
movq %r15, %rdi
leaq 0x78(%rsp), %rsi
callq 0xa41c
movq 0x2d0(%rsp), %rdi
leaq 0x2e0(%rsp), %rax
cmpq %rax, %rdi
je 0xcc11
movq 0x2e0(%rsp), %rsi
incq %rsi
callq 0x93c0
movq 0x78(%rsp), %rsi
movq 0x80(%rsp), %rdx
addq %rsi, %rdx
xorps %xmm0, %xmm0
movaps %xmm0, 0x370(%rsp)
movaps %xmm0, 0x380(%rsp)
movq %r13, %rdi
movq %rbp, %rcx
movl $0x1, %r8d
xorl %r9d, %r9d
callq 0xedb0
leaq 0x30(%rsp), %rdi
movq %r13, %rsi
callq 0xebec
movq %r13, %rdi
callq 0x24080
movzbl 0x450(%rsp), %esi
leaq 0x458(%rsp), %rdi
callq 0x3bf6e
movq 0x380(%rsp), %rax
testq %rax, %rax
je 0xcc8c
movq %rbp, %rdi
movq %rbp, %rsi
movl $0x3, %edx
callq *%rax
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xccae
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
movq 0x8(%rbx), %rax
subq (%rbx), %rax
incq %r12
sarq $0x5, %rax
addq $0x20, %r14
cmpq %rax, %r12
jb 0xcb97
leaq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
movq %rax, (%rdi)
leaq 0x48981(%rip), %rsi     # 0x55661
leaq 0x4897e(%rip), %rdx     # 0x55665
callq 0x126d8
leaq 0x78(%rsp), %rsi
movq 0x28(%rsp), %rdi
callq 0xe59a
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xcd20
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
testq %rbx, %rbx
je 0xce32
leaq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
movq %rax, (%rdi)
leaq 0x48921(%rip), %rsi     # 0x55661
leaq 0x4891e(%rip), %rdx     # 0x55665
callq 0x126d8
leaq 0x78(%rsp), %rsi
movq 0x28(%rsp), %rdi
callq 0xea64
movq %rax, %rdi
callq 0xeb64
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xcd88
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
movq (%rbx), %rsi
cmpq %rsi, 0x8(%rbx)
je 0xce32
xorl %ebp, %ebp
leaq 0x78(%rsp), %r15
leaq 0x350(%rsp), %r12
leaq 0x30(%rsp), %r13
xorl %r14d, %r14d
addq %rbp, %rsi
xorps %xmm0, %xmm0
movaps %xmm0, 0x350(%rsp)
movaps %xmm0, 0x360(%rsp)
movq %r15, %rdi
movq %r12, %rdx
movl $0x1, %ecx
xorl %r8d, %r8d
callq 0xeed8
movq %r13, %rdi
movq %r15, %rsi
callq 0xebec
movq %r15, %rdi
callq 0x24080
movzbl 0x78(%rsp), %esi
leaq 0x80(%rsp), %rdi
callq 0x3bf6e
movq 0x360(%rsp), %rax
testq %rax, %rax
je 0xce14
movq %r12, %rdi
movq %r12, %rsi
movl $0x3, %edx
callq *%rax
incq %r14
movq (%rbx), %rsi
movq 0x8(%rbx), %rax
subq %rsi, %rax
sarq $0x5, %rax
addq $0x20, %rbp
cmpq %rax, %r14
jb 0xcdac
leaq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
movq %rax, (%rdi)
leaq 0x48762(%rip), %rsi     # 0x555ab
leaq 0x4875f(%rip), %rdx     # 0x555af
callq 0x126d8
leaq 0x78(%rsp), %rsi
movq 0x28(%rsp), %rdi
callq 0xe59a
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xce89
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
testq %rbx, %rbx
je 0xd13b
leaq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
movq %rax, (%rdi)
leaq 0x48702(%rip), %rsi     # 0x555ab
leaq 0x486ff(%rip), %rdx     # 0x555af
callq 0x126d8
leaq 0x78(%rsp), %rsi
movq 0x28(%rsp), %rdi
callq 0xea64
movq %rax, %rdi
callq 0xeb64
movq %rax, %r15
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xcef1
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
movq (%r15), %rdi
cmpq %rdi, 0x8(%r15)
je 0xd13b
xorl %ebp, %ebp
leaq 0x78(%rsp), %r13
leaq 0x450(%rsp), %rbx
xorl %r14d, %r14d
movq %r15, 0x40(%rsp)
addq %rbp, %rdi
movl $0x1, %ecx
leaq 0x48a7e(%rip), %rsi     # 0x559a2
xorl %edx, %edx
callq 0x9680
cmpq $-0x1, %rax
je 0xd030
movq %rax, %r12
movq 0x40(%rsp), %r15
movq (%r15), %rsi
addq %rbp, %rsi
movq %r13, %rdi
xorl %edx, %edx
movq %rax, %rcx
callq 0x9410
movq (%r15), %rsi
addq %rbp, %rsi
incq %r12
movq %rbx, %rdi
movq %r12, %rdx
movq $-0x1, %rcx
callq 0x9410
movq %r13, %r15
leaq 0x48(%rsp), %rdi
movq %rbx, %rsi
callq 0xeff0
movq %rbx, %r13
leaq 0x30(%rsp), %rdi
movq %r15, %rsi
callq 0xf01c
movq %rax, %r12
leaq 0x48(%rsp), %rbx
movq %rbx, %rdi
callq 0x24080
movb (%r12), %al
movb 0x48(%rsp), %cl
movb %cl, (%r12)
movb %al, 0x48(%rsp)
movq 0x8(%r12), %rax
movq 0x50(%rsp), %rcx
movq %rcx, 0x8(%r12)
movq %rax, 0x50(%rsp)
movq %r12, %rdi
callq 0x24080
movq %rbx, %rdi
callq 0x24080
movzbl 0x48(%rsp), %esi
leaq 0x50(%rsp), %rdi
callq 0x3bf6e
movq 0x450(%rsp), %rdi
leaq 0x460(%rsp), %rax
cmpq %rax, %rdi
je 0xd003
movq 0x460(%rsp), %rsi
incq %rsi
callq 0x93c0
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
movq %r13, %rbx
je 0xd028
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
movq %r15, %r13
jmp 0xd118
movq 0x40(%rsp), %rax
movq (%rax), %rax
movq (%rax,%rbp), %rdi
callq 0x94e0
testq %rax, %rax
je 0xd118
movq %rax, %r12
leaq 0x88(%rsp), %rax
movq %rax, 0x78(%rsp)
movq %r12, %rdi
callq 0x91b0
movq %r12, %rdx
addq %rax, %rdx
movq %r13, %rdi
movq %r12, %rsi
callq 0x126d8
leaq 0x58(%rsp), %rdi
movq %r13, %rsi
callq 0xeff0
movq 0x40(%rsp), %rax
movq %r13, %rbx
movq (%rax), %rsi
addq %rbp, %rsi
leaq 0x30(%rsp), %rdi
callq 0xf01c
movq %rax, %r12
leaq 0x58(%rsp), %r13
movq %r13, %rdi
callq 0x24080
movb (%r12), %al
movb 0x58(%rsp), %cl
movb %cl, (%r12)
movb %al, 0x58(%rsp)
movq 0x8(%r12), %rax
movq 0x60(%rsp), %rcx
movq %rcx, 0x8(%r12)
movq %rax, 0x60(%rsp)
movq %r12, %rdi
callq 0x24080
movq %r13, %rdi
callq 0x24080
movzbl 0x58(%rsp), %esi
leaq 0x60(%rsp), %rdi
callq 0x3bf6e
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xd10d
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
movq %rbx, %r13
leaq 0x450(%rsp), %rbx
incq %r14
movq 0x40(%rsp), %r15
movq (%r15), %rdi
movq 0x8(%r15), %rax
subq %rdi, %rax
sarq $0x5, %rax
addq $0x20, %rbp
cmpq %rax, %r14
jb 0xcf15
leaq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
movq %rax, (%rdi)
leaq 0x484cd(%rip), %rsi     # 0x5561f
leaq 0x484d7(%rip), %rdx     # 0x55630
callq 0x126d8
leaq 0x78(%rsp), %rsi
movq 0x28(%rsp), %r13
movq %r13, %rdi
callq 0xe59a
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xd195
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
testq %rbx, %rbx
je 0xd2fe
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
leaq 0x78(%rsp), %rbx
leaq 0x30(%rsp), %rax
movq %rax, (%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rbx)
movq %rcx, 0x18(%rbx)
movq %rbx, %rdi
callq 0x3e542
leaq 0x458(%rsp), %r14
leaq 0x460(%rsp), %rbp
leaq 0x450(%rsp), %r15
leaq 0x68(%rsp), %r12
leaq 0x30(%rsp), %rax
movq %rax, 0x450(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, (%r14)
movabsq $-0x8000000000000000, %rax # imm = 0x8000000000000000
movq %rax, 0x468(%rsp)
movq %r15, %rdi
callq 0x3e5a6
movq %rbx, %rdi
movq %r15, %rsi
callq 0x3b148
testb %al, %al
jne 0xd2fe
movq %rbx, %rdi
callq 0xf16e
movq (%rax), %rdi
callq 0x94e0
testq %rax, %rax
je 0xd2ec
movq %rax, %r13
movq %rbp, 0x450(%rsp)
movq %rax, %rdi
callq 0x91b0
movq %r13, %rdx
addq %rax, %rdx
movq %r15, %rdi
movq %r13, %rsi
callq 0x126d8
movq %r12, %rdi
movq %r15, %rsi
callq 0xeff0
movq %rbx, %rdi
callq 0xf16e
leaq 0x30(%rsp), %rdi
movq %rax, %rsi
callq 0xf01c
movq %rax, %r13
movq %r12, %rdi
callq 0x24080
movb (%r13), %al
movb 0x68(%rsp), %cl
movb %cl, (%r13)
movb %al, 0x68(%rsp)
movq 0x8(%r13), %rax
movq 0x70(%rsp), %rcx
movq %rcx, 0x8(%r13)
movq %rax, 0x70(%rsp)
movq %r13, %rdi
callq 0x24080
movq %r12, %rdi
callq 0x24080
movzbl 0x68(%rsp), %esi
leaq 0x70(%rsp), %rdi
callq 0x3bf6e
movq 0x450(%rsp), %rdi
cmpq %rbp, %rdi
je 0xd2ec
movq 0x460(%rsp), %rsi
incq %rsi
callq 0x93c0
movq %rbx, %rdi
callq 0xf246
movq 0x28(%rsp), %r13
jmp 0xd1e5
leaq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
movq %rax, (%rdi)
leaq 0x48467(%rip), %rsi     # 0x5577c
leaq 0x48467(%rip), %rdx     # 0x55783
callq 0x126d8
leaq 0x78(%rsp), %rsi
movq %r13, %rdi
callq 0xe59a
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xd353
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
testq %rbx, %rbx
je 0xd426
movq 0x6ac7d(%rip), %rbx     # 0x77fe0
leaq 0x4846f(%rip), %rsi     # 0x557d9
movl $0x15, %edx
movq %rbx, %rdi
callq 0x9490
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x9390
movsbl %al, %esi
movq 0x6ac4b(%rip), %rdi     # 0x77fe0
callq 0x9040
movq %rax, %rdi
callq 0x92b0
leaq 0x78(%rsp), %rdi
leaq 0x30(%rsp), %rsi
movl $0x4, %edx
movl $0x20, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0xf29e
movq 0x78(%rsp), %rsi
movq 0x80(%rsp), %rdx
movq 0x6ac0b(%rip), %rdi     # 0x77fe0
callq 0x9490
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x9390
movsbl %al, %esi
movq %rbx, %rdi
callq 0x9040
movq %rax, %rdi
callq 0x92b0
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xd426
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
movq %rax, (%rdi)
leaq 0x4812f(%rip), %rsi     # 0x5556c
leaq 0x4812b(%rip), %rdx     # 0x5556f
callq 0x126d8
leaq 0x78(%rsp), %rsi
movq %r13, %rdi
callq 0xe59a
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xd47b
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
testq %rbx, %rbx
je 0xd573
leaq 0x460(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x480d5(%rip), %rsi     # 0x5556c
leaq 0x480d1(%rip), %rdx     # 0x5556f
leaq 0x450(%rsp), %rdi
callq 0x126d8
leaq 0x450(%rsp), %rsi
movq %r13, %rdi
callq 0xea64
movq %rax, %rdi
callq 0xeadc
leaq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rcx
movq %rcx, (%rdi)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
callq 0x3bed8
movq 0x450(%rsp), %rdi
cmpq %r14, %rdi
je 0xd4ff
movq 0x460(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x340(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x78(%rsp), %rsi
movq 0x80(%rsp), %rdx
addq %rsi, %rdx
leaq 0x330(%rsp), %rdi
callq 0x3bed8
leaq 0x330(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xa41c
movq 0x330(%rsp), %rdi
cmpq %r14, %rdi
je 0xd557
movq 0x340(%rsp), %rsi
incq %rsi
callq 0x93c0
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xd5c5
movq 0x88(%rsp), %rsi
jmp 0xd5bd
leaq 0x320(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x483ed(%rip), %rdx     # 0x55973
leaq 0x310(%rsp), %rdi
movq %rdx, %rsi
callq 0x126d8
leaq 0x310(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xa41c
movq 0x310(%rsp), %rdi
cmpq %r14, %rdi
je 0xd5c5
movq 0x320(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
movq %rax, (%rdi)
leaq 0x4bdba(%rip), %rsi     # 0x59396
leaq 0x4bdbd(%rip), %rdx     # 0x593a0
callq 0x126d8
leaq 0x78(%rsp), %rsi
movq %r13, %rdi
callq 0xea64
movq %rax, %rdi
callq 0xeadc
leaq 0x410(%rsp), %rdi
movq %rax, %rsi
callq 0xa5d7
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xd62f
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
movq %rax, (%rdi)
leaq 0x480ce(%rip), %rsi     # 0x55714
leaq 0x480d0(%rip), %rdx     # 0x5571d
callq 0x126d8
leaq 0x78(%rsp), %rsi
movq %r13, %rdi
callq 0xea64
movq %rax, %rdi
callq 0xeadc
leaq 0x3d0(%rsp), %rdi
movq %rax, %rsi
callq 0xa5d7
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xd699
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
movq %rax, (%rdi)
leaq 0x4809a(%rip), %rsi     # 0x5574a
leaq 0x4809a(%rip), %rdx     # 0x55751
callq 0x126d8
leaq 0x78(%rsp), %rsi
movq %r13, %rdi
callq 0xea64
movq %rax, %rdi
callq 0xeadc
leaq 0x390(%rsp), %rdi
movq %rax, %rsi
callq 0xa5d7
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xd703
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x78(%rsp), %rdi
callq 0xf3fe
leaq 0x430(%rsp), %rdx
leaq 0x78(%rsp), %rdi
leaq 0x410(%rsp), %rsi
callq 0xf474
leaq 0x3f0(%rsp), %rdx
leaq 0x78(%rsp), %rdi
leaq 0x3d0(%rsp), %rsi
callq 0xf572
leaq 0x1f8(%rsp), %rdi
leaq 0x390(%rsp), %rsi
callq 0x9220
leaq 0x3b0(%rsp), %rsi
leaq 0x218(%rsp), %rdi
callq 0x9220
leaq 0xb8(%rsp), %r14
movq %r14, %rdi
callq 0x1a92c
movq 0x8(%rsp), %rcx
movq 0x10(%rsp), %rdx
leaq 0x650(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0xf6d6
leaq 0x460(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x47de1(%rip), %rsi     # 0x5558c
leaq 0x47dde(%rip), %rdx     # 0x55590
leaq 0x450(%rsp), %rdi
callq 0x126d8
leaq 0x450(%rsp), %rsi
movq %r13, %rdi
callq 0xe59a
movq %rax, %rbx
movq 0x450(%rsp), %rdi
cmpq %r12, %rdi
je 0xd7ef
movq 0x460(%rsp), %rsi
incq %rsi
callq 0x93c0
testq %rbx, %rbx
je 0xd918
leaq 0x450(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x47d82(%rip), %rsi     # 0x5558c
leaq 0x47d7f(%rip), %rdx     # 0x55590
callq 0x126d8
leaq 0x450(%rsp), %rsi
movq %r13, %rdi
callq 0xea64
movq %rax, %rdi
callq 0xeadc
leaq 0x300(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x2f0(%rsp), %rdi
callq 0x3bed8
movq 0x450(%rsp), %rdi
cmpq %r12, %rdi
je 0xd86e
movq 0x460(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x450(%rsp), %rdi
callq 0x9740
leaq 0x450(%rsp), %rdi
leaq 0x2f0(%rsp), %rsi
movl $0x30, %edx
callq 0x91d0
leaq 0x78(%rsp), %rdi
leaq 0x450(%rsp), %rsi
leaq 0x650(%rsp), %rdx
leaq 0x30(%rsp), %rcx
callq 0xf78c
leaq 0x450(%rsp), %rdi
callq 0x9600
movq 0x6a6a0(%rip), %rax     # 0x77f68
movq (%rax), %rcx
movq 0x18(%rax), %rax
leaq 0x458(%rsp), %rdi
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, 0x450(%rsp,%rcx)
callq 0x9330
leaq 0x548(%rsp), %rdi
callq 0x9120
movq 0x2f0(%rsp), %rdi
cmpq %r15, %rdi
je 0xd936
movq 0x300(%rsp), %rsi
incq %rsi
callq 0x93c0
jmp 0xd936
movq 0x6a671(%rip), %rsi     # 0x77f90
leaq 0x78(%rsp), %rdi
leaq 0x650(%rsp), %rdx
leaq 0x30(%rsp), %rcx
callq 0xf78c
leaq 0x688(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xd957
movq 0x688(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x6925a(%rip), %rax     # 0x76bb8
leaq 0x660(%rsp), %rdi
movq %rax, -0x10(%rdi)
callq 0x1c37c
leaq 0x2a0(%rsp), %rdi
callq 0x3be7c
leaq 0x270(%rsp), %rbx
movq %rbx, %rdi
callq 0x1a546
movq %r14, %rdi
callq 0x1a24a
movq -0x1d8(%rbx), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0xd9b8
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x93c0
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xd9da
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x3c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xd9fb
movq 0x3c0(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x3a0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xda1c
movq 0x3a0(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x400(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xda3d
movq 0x400(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x3e0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xda5e
movq 0x3e0(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x440(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xda7f
movq 0x440(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x420(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xdaa0
movq 0x420(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x38(%rsp), %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0xdac1
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x30(%rsp), %r14
movq %r14, %rdi
callq 0x24080
movzbl (%r14), %esi
movq %rbx, %rdi
callq 0x3bf6e
xorl %eax, %eax
addq $0x698, %rsp            # imm = 0x698
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x6a49b(%rip), %rdi     # 0x77f90
leaq 0x47cad(%rip), %rsi     # 0x557a9
movl $0x2f, %edx
callq 0x9490
movq 0x6a483(%rip), %rdi     # 0x77f90
callq 0x91e0
movl $0x1, %edi
callq 0x94d0
jmp 0xdb9c
movq %rax, %rbx
movq 0x310(%rsp), %rdi
cmpq %r14, %rdi
je 0xde83
movq 0x320(%rsp), %rsi
jmp 0xde7b
jmp 0xde54
jmp 0xdd94
movq %rax, %rbx
jmp 0xdc2b
jmp 0xdb9c
movq %rax, %rbx
movq 0x330(%rsp), %rdi
cmpq %r14, %rdi
je 0xddf7
movq 0x340(%rsp), %rsi
jmp 0xddb9
jmp 0xdd94
jmp 0xde54
jmp 0xde54
jmp 0xde54
jmp 0xde54
jmp 0xde54
jmp 0xde54
jmp 0xdc42
movq %rax, %rbx
jmp 0xdc62
jmp 0xdd08
movq %rax, %rbx
jmp 0xdd15
movq %rax, %rbx
jmp 0xdd22
movq %rax, %rbx
jmp 0xdd2f
jmp 0xde54
jmp 0xdd94
jmp 0xde54
jmp 0xdd94
jmp 0xde54
jmp 0xdd94
jmp 0xde54
jmp 0xdd94
jmp 0xde54
jmp 0xdd94
jmp 0xde54
jmp 0xdd94
jmp 0xde54
jmp 0xdd94
jmp 0xde54
jmp 0xdd94
jmp 0xdd94
jmp 0xdd94
movq %rax, %rbx
leaq 0x450(%rsp), %rdi
callq 0x9660
movq 0x2f0(%rsp), %rdi
cmpq %r15, %rdi
je 0xdc62
movq 0x300(%rsp), %rsi
jmp 0xdc5a
movq %rax, %rbx
movq 0x450(%rsp), %rdi
cmpq %r12, %rdi
je 0xdc62
movq 0x460(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x650(%rsp), %rdi
callq 0xf880
jmp 0xdd0b
jmp 0xdc76
movq %rax, %rbx
movq 0x450(%rsp), %rdi
cmpq %r14, %rdi
jne 0xde73
jmp 0xde83
jmp 0xdd94
jmp 0xde54
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0xeebe
jmp 0xddf7
jmp 0xdd94
jmp 0xde54
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xdd22
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
jmp 0xdd22
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xdd2f
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
jmp 0xdd2f
jmp 0xdd94
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
callq 0xf8b4
leaq 0x390(%rsp), %rdi
callq 0xf90c
leaq 0x3d0(%rsp), %rdi
callq 0xf90c
leaq 0x410(%rsp), %rdi
callq 0xf90c
jmp 0xde83
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0xeebe
jmp 0xdd5a
jmp 0xde54
jmp 0xdd94
movq %rax, %rbx
movq 0x450(%rsp), %rdi
leaq 0x460(%rsp), %rax
cmpq %rax, %rdi
je 0xddf7
movq 0x460(%rsp), %rsi
jmp 0xddb9
jmp 0xde48
jmp 0xde48
jmp 0xde54
movq %rax, %rbx
jmp 0xde66
movq %rax, %rbx
jmp 0xddf7
movq %rax, %rbx
movq 0x2d0(%rsp), %rdi
leaq 0x2e0(%rsp), %rax
cmpq %rax, %rdi
je 0xddf7
movq 0x2e0(%rsp), %rsi
incq %rsi
callq 0x93c0
jmp 0xddf7
movq %rax, %rbx
jmp 0xddd8
movq %rax, %rbx
leaq 0x450(%rsp), %rdi
callq 0xeebe
movq 0x380(%rsp), %rax
testq %rax, %rax
je 0xddf7
leaq 0x370(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xde83
movq 0x88(%rsp), %rsi
jmp 0xde7b
jmp 0xde48
movq %rax, %rbx
jmp 0xde27
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
callq 0xeebe
movq 0x360(%rsp), %rax
testq %rax, %rax
je 0xde83
leaq 0x350(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0xde83
movq %rax, %rdi
callq 0xea59
jmp 0xde54
jmp 0xde54
movq %rax, %rbx
jmp 0xde83
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0xeebe
movq 0x450(%rsp), %rdi
cmpq %rbp, %rdi
je 0xde83
movq 0x460(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x18(%rsp), %rax
movq 0x8(%rsp), %rdi
cmpq %rax, %rdi
je 0xde9f
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x30(%rsp), %rdi
callq 0xeebe
movq %rbx, %rdi
callq 0x9790