// File: /workspace/github_cpp_makefile_star2_O1/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 %r14d, %r14d
leaq 0x30(%rsp), %rbx
movb %r14b, (%rbx)
movq %r14, 0x8(%rbx)
movq %rbx, %rdi
callq 0x2450a
movq %rbx, %rdi
callq 0x2450a
leaq 0x18(%rsp), %rax
movq %rax, -0x10(%rax)
movq %r14, -0x8(%rax)
movb %r14b, (%rax)
leaq 0x88(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x49e43(%rip), %rsi     # 0x56553
leaq 0x49e3f(%rip), %rdx     # 0x56556
leaq 0x78(%rsp), %rdi
callq 0x12646
leaq 0x78(%rsp), %rsi
movq %r15, %rdi
callq 0xe3e8
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xc753
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
testq %rbx, %rbx
je 0xc80b
leaq 0x460(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x49de4(%rip), %rsi     # 0x56553
leaq 0x49de0(%rip), %rdx     # 0x56556
leaq 0x450(%rsp), %rdi
callq 0x12646
leaq 0x450(%rsp), %rsi
movq %r15, %rdi
callq 0xe8c6
movq %rax, %rdi
callq 0xe954
leaq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rcx
movq %rcx, (%rdi)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
callq 0x3c29c
movq 0x450(%rsp), %rdi
cmpq %r14, %rdi
je 0xc7d7
movq 0x460(%rsp), %rsi
incq %rsi
callq 0x93c0
movq 0x78(%rsp), %rdi
callq 0x9650
testl %eax, %eax
jne 0xd803
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xc80b
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
movq %rax, (%rdi)
leaq 0x49e7b(%rip), %rsi     # 0x5669d
leaq 0x49e7d(%rip), %rdx     # 0x566a6
callq 0x12646
leaq 0x78(%rsp), %rsi
movq %r15, %rdi
callq 0xe3e8
movq %rax, %rbx
movq %r15, 0x28(%rsp)
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xc865
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
testq %rbx, %rbx
je 0xca2d
leaq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
movq %rax, (%rdi)
leaq 0x49e18(%rip), %rsi     # 0x5669d
leaq 0x49e1a(%rip), %rdx     # 0x566a6
callq 0x12646
leaq 0x78(%rsp), %rsi
movq 0x28(%rsp), %rdi
callq 0xe8c6
movq %rax, %rdi
callq 0xe9dc
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xc8cd
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
movq 0x8(%rbx), %rax
cmpq (%rbx), %rax
je 0xca2d
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 0x3c29c
movq %r15, %rdi
leaq 0x78(%rsp), %rsi
callq 0xa19c
movq 0x2d0(%rsp), %rdi
leaq 0x2e0(%rsp), %rax
cmpq %rax, %rdi
je 0xc975
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 0xebe6
leaq 0x30(%rsp), %rdi
movq %r13, %rsi
callq 0xea64
movq %r13, %rdi
callq 0x2450a
movzbl 0x450(%rsp), %esi
leaq 0x458(%rsp), %rdi
callq 0x3c32c
movq 0x380(%rsp), %rax
testq %rax, %rax
je 0xc9f0
movq %rbp, %rdi
movq %rbp, %rsi
movl $0x3, %edx
callq *%rax
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xca12
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 0xc8fb
leaq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
movq %rax, (%rdi)
leaq 0x49c25(%rip), %rsi     # 0x56669
leaq 0x49c22(%rip), %rdx     # 0x5666d
callq 0x12646
leaq 0x78(%rsp), %rsi
movq 0x28(%rsp), %rdi
callq 0xe3e8
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xca84
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
testq %rbx, %rbx
je 0xcb96
leaq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
movq %rax, (%rdi)
leaq 0x49bc5(%rip), %rsi     # 0x56669
leaq 0x49bc2(%rip), %rdx     # 0x5666d
callq 0x12646
leaq 0x78(%rsp), %rsi
movq 0x28(%rsp), %rdi
callq 0xe8c6
movq %rax, %rdi
callq 0xe9dc
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xcaec
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
movq (%rbx), %rsi
cmpq %rsi, 0x8(%rbx)
je 0xcb96
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 0xed0e
movq %r13, %rdi
movq %r15, %rsi
callq 0xea64
movq %r15, %rdi
callq 0x2450a
movzbl 0x78(%rsp), %esi
leaq 0x80(%rsp), %rdi
callq 0x3c32c
movq 0x360(%rsp), %rax
testq %rax, %rax
je 0xcb78
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 0xcb10
leaq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
movq %rax, (%rdi)
leaq 0x49a06(%rip), %rsi     # 0x565b3
leaq 0x49a03(%rip), %rdx     # 0x565b7
callq 0x12646
leaq 0x78(%rsp), %rsi
movq 0x28(%rsp), %rdi
callq 0xe3e8
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xcbed
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
testq %rbx, %rbx
je 0xce94
leaq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
movq %rax, (%rdi)
leaq 0x499a6(%rip), %rsi     # 0x565b3
leaq 0x499a3(%rip), %rdx     # 0x565b7
callq 0x12646
leaq 0x78(%rsp), %rsi
movq 0x28(%rsp), %rdi
callq 0xe8c6
movq %rax, %rdi
callq 0xe9dc
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xcc55
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
movq (%rbx), %rdi
cmpq %rdi, 0x8(%rbx)
je 0xce94
xorl %r13d, %r13d
leaq 0x78(%rsp), %rbp
leaq 0x450(%rsp), %r12
xorl %r15d, %r15d
movq %rbx, 0x40(%rsp)
addq %r13, %rdi
movl $0x1, %ecx
leaq 0x49d21(%rip), %rsi     # 0x569aa
xorl %edx, %edx
callq 0x9680
cmpq $-0x1, %rax
je 0xcd8f
movq %rax, %rbx
movq 0x40(%rsp), %r14
movq (%r14), %rsi
addq %r13, %rsi
movq %rbp, %rdi
xorl %edx, %edx
movq %rax, %rcx
callq 0x9410
movq (%r14), %rsi
addq %r13, %rsi
incq %rbx
movq %r12, %rdi
movq %rbx, %rdx
movq $-0x1, %rcx
callq 0x9410
movq %rbp, %r14
leaq 0x48(%rsp), %rdi
movq %r12, %rsi
callq 0xee26
movq %r12, %rbp
leaq 0x30(%rsp), %rdi
movq %r14, %rsi
callq 0xee52
movq %rax, %rbx
leaq 0x48(%rsp), %r12
movq %r12, %rdi
callq 0x2450a
movb (%rbx), %al
movb 0x48(%rsp), %cl
movb %cl, (%rbx)
movb %al, 0x48(%rsp)
movq 0x8(%rbx), %rax
movq 0x50(%rsp), %rcx
movq %rcx, 0x8(%rbx)
movq %rax, 0x50(%rsp)
movq %rbx, %rdi
callq 0x2450a
movq %r12, %rdi
callq 0x2450a
movzbl 0x48(%rsp), %esi
leaq 0x50(%rsp), %rdi
callq 0x3c32c
movq 0x450(%rsp), %rdi
leaq 0x460(%rsp), %rax
cmpq %rax, %rdi
je 0xcd62
movq 0x460(%rsp), %rsi
incq %rsi
callq 0x93c0
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
movq %rbp, %r12
je 0xcd87
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
movq %r14, %rbp
jmp 0xce71
movq 0x40(%rsp), %rax
movq (%rax), %rax
movq (%rax,%r13), %rdi
callq 0x94e0
testq %rax, %rax
je 0xce71
movq %rax, %rbx
leaq 0x88(%rsp), %rax
movq %rax, 0x78(%rsp)
movq %rbx, %rdi
callq 0x91b0
movq %rbx, %rdx
addq %rax, %rdx
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x12646
leaq 0x58(%rsp), %rdi
movq %rbp, %rsi
callq 0xee26
movq 0x40(%rsp), %rax
movq %rbp, %r12
movq (%rax), %rsi
addq %r13, %rsi
leaq 0x30(%rsp), %rdi
callq 0xee52
movq %rax, %rbx
leaq 0x58(%rsp), %rbp
movq %rbp, %rdi
callq 0x2450a
movb (%rbx), %al
movb 0x58(%rsp), %cl
movb %cl, (%rbx)
movb %al, 0x58(%rsp)
movq 0x8(%rbx), %rax
movq 0x60(%rsp), %rcx
movq %rcx, 0x8(%rbx)
movq %rax, 0x60(%rsp)
movq %rbx, %rdi
callq 0x2450a
movq %rbp, %rdi
callq 0x2450a
movzbl 0x58(%rsp), %esi
leaq 0x60(%rsp), %rdi
callq 0x3c32c
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xce66
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
movq %r12, %rbp
leaq 0x450(%rsp), %r12
incq %r15
movq 0x40(%rsp), %rbx
movq (%rbx), %rdi
movq 0x8(%rbx), %rax
subq %rdi, %rax
sarq $0x5, %rax
addq $0x20, %r13
cmpq %rax, %r15
jb 0xcc7a
leaq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
movq %rax, (%rdi)
leaq 0x4977c(%rip), %rsi     # 0x56627
leaq 0x49786(%rip), %rdx     # 0x56638
callq 0x12646
leaq 0x78(%rsp), %rsi
movq 0x28(%rsp), %rbp
movq %rbp, %rdi
callq 0xe3e8
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xceee
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
testq %rbx, %rbx
je 0xd013
leaq 0x78(%rsp), %rbx
leaq 0x30(%rsp), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0xef96
leaq 0x460(%rsp), %r15
leaq 0x450(%rsp), %r12
leaq 0x68(%rsp), %r13
movq %r12, %rdi
movq %r14, %rsi
callq 0xefe8
movq %rbx, %rdi
movq %r12, %rsi
callq 0x3b528
testb %al, %al
jne 0xd013
movq %rbx, %rdi
callq 0xf03a
movq (%rax), %rdi
callq 0x94e0
testq %rax, %rax
je 0xd001
movq %rax, %rbp
movq %r15, 0x450(%rsp)
movq %rax, %rdi
callq 0x91b0
movq %rbp, %rdx
addq %rax, %rdx
movq %r12, %rdi
movq %rbp, %rsi
callq 0x12646
movq %r13, %rdi
movq %r12, %rsi
callq 0xee26
movq %rbx, %rdi
callq 0xf03a
movq %r14, %rdi
movq %rax, %rsi
callq 0xee52
movq %rax, %rbp
movq %r13, %rdi
callq 0x2450a
movb (%rbp), %al
movb 0x68(%rsp), %cl
movb %cl, (%rbp)
movb %al, 0x68(%rsp)
movq 0x8(%rbp), %rax
movq 0x70(%rsp), %rcx
movq %rcx, 0x8(%rbp)
movq %rax, 0x70(%rsp)
movq %rbp, %rdi
callq 0x2450a
movq %r13, %rdi
callq 0x2450a
movzbl 0x68(%rsp), %esi
leaq 0x70(%rsp), %rdi
callq 0x3c32c
movq 0x450(%rsp), %rdi
cmpq %r15, %rdi
je 0xd001
movq 0x460(%rsp), %rsi
incq %rsi
callq 0x93c0
movq %rbx, %rdi
callq 0xf116
movq 0x28(%rsp), %rbp
jmp 0xcf21
leaq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
movq %rax, (%rdi)
leaq 0x4975a(%rip), %rsi     # 0x56784
leaq 0x4975a(%rip), %rdx     # 0x5678b
callq 0x12646
leaq 0x78(%rsp), %rsi
movq %rbp, %rdi
callq 0xe3e8
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xd068
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
testq %rbx, %rbx
je 0xd13b
movq 0x6bf70(%rip), %rbx     # 0x78fe8
leaq 0x49762(%rip), %rsi     # 0x567e1
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 0x6bf3e(%rip), %rdi     # 0x78fe8
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 0xf16e
movq 0x78(%rsp), %rsi
movq 0x80(%rsp), %rdx
movq 0x6befe(%rip), %rdi     # 0x78fe8
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 0xd13b
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
movq %rax, (%rdi)
leaq 0x49422(%rip), %rsi     # 0x56574
leaq 0x4941e(%rip), %rdx     # 0x56577
callq 0x12646
leaq 0x78(%rsp), %rsi
movq %rbp, %rdi
callq 0xe3e8
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xd190
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
testq %rbx, %rbx
je 0xd288
leaq 0x460(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x493c8(%rip), %rsi     # 0x56574
leaq 0x493c4(%rip), %rdx     # 0x56577
leaq 0x450(%rsp), %rdi
callq 0x12646
leaq 0x450(%rsp), %rsi
movq %rbp, %rdi
callq 0xe8c6
movq %rax, %rdi
callq 0xe954
leaq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rcx
movq %rcx, (%rdi)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
callq 0x3c29c
movq 0x450(%rsp), %rdi
cmpq %r14, %rdi
je 0xd214
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 0x3c29c
leaq 0x330(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xa19c
movq 0x330(%rsp), %rdi
cmpq %r14, %rdi
je 0xd26c
movq 0x340(%rsp), %rsi
incq %rsi
callq 0x93c0
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xd2da
movq 0x88(%rsp), %rsi
jmp 0xd2d2
leaq 0x320(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x496e0(%rip), %rdx     # 0x5697b
leaq 0x310(%rsp), %rdi
movq %rdx, %rsi
callq 0x12646
leaq 0x310(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xa19c
movq 0x310(%rsp), %rdi
cmpq %r14, %rdi
je 0xd2da
movq 0x320(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
movq %rax, (%rdi)
leaq 0x4d0ad(%rip), %rsi     # 0x5a39e
leaq 0x4d0b0(%rip), %rdx     # 0x5a3a8
callq 0x12646
leaq 0x78(%rsp), %rsi
movq %rbp, %rdi
callq 0xe8c6
movq %rax, %rdi
callq 0xe954
leaq 0x410(%rsp), %rdi
movq %rax, %rsi
callq 0xa357
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xd344
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
movq %rax, (%rdi)
leaq 0x493c1(%rip), %rsi     # 0x5671c
leaq 0x493c3(%rip), %rdx     # 0x56725
callq 0x12646
leaq 0x78(%rsp), %rsi
movq %rbp, %rdi
callq 0xe8c6
movq %rax, %rdi
callq 0xe954
leaq 0x3d0(%rsp), %rdi
movq %rax, %rsi
callq 0xa357
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xd3ae
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
movq %rax, (%rdi)
leaq 0x4938d(%rip), %rsi     # 0x56752
leaq 0x4938d(%rip), %rdx     # 0x56759
callq 0x12646
leaq 0x78(%rsp), %rsi
movq %rbp, %rdi
callq 0xe8c6
movq %rax, %rdi
callq 0xe954
leaq 0x390(%rsp), %rdi
movq %rax, %rsi
callq 0xa357
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xd418
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x78(%rsp), %rdi
callq 0xf2ce
leaq 0x430(%rsp), %rdx
leaq 0x78(%rsp), %rdi
leaq 0x410(%rsp), %rsi
callq 0xf344
leaq 0x3f0(%rsp), %rdx
leaq 0x78(%rsp), %rdi
leaq 0x3d0(%rsp), %rsi
callq 0xf442
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 0x1a8ea
movq 0x8(%rsp), %rcx
movq 0x10(%rsp), %rdx
leaq 0x650(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0xf5a6
leaq 0x460(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x490d4(%rip), %rsi     # 0x56594
leaq 0x490d1(%rip), %rdx     # 0x56598
leaq 0x450(%rsp), %rdi
callq 0x12646
leaq 0x450(%rsp), %rsi
movq %rbp, %rdi
callq 0xe3e8
movq %rax, %rbx
movq 0x450(%rsp), %rdi
cmpq %r12, %rdi
je 0xd504
movq 0x460(%rsp), %rsi
incq %rsi
callq 0x93c0
testq %rbx, %rbx
je 0xd62d
leaq 0x450(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x49075(%rip), %rsi     # 0x56594
leaq 0x49072(%rip), %rdx     # 0x56598
callq 0x12646
leaq 0x450(%rsp), %rsi
movq %rbp, %rdi
callq 0xe8c6
movq %rax, %rdi
callq 0xe954
leaq 0x300(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x2f0(%rsp), %rdi
callq 0x3c29c
movq 0x450(%rsp), %rdi
cmpq %r12, %rdi
je 0xd583
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 0xf65c
leaq 0x450(%rsp), %rdi
callq 0x9600
movq 0x6b993(%rip), %rax     # 0x78f70
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 0xd64b
movq 0x300(%rsp), %rsi
incq %rsi
callq 0x93c0
jmp 0xd64b
movq 0x6b964(%rip), %rsi     # 0x78f98
leaq 0x78(%rsp), %rdi
leaq 0x650(%rsp), %rdx
leaq 0x30(%rsp), %rcx
callq 0xf65c
leaq 0x688(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xd66c
movq 0x688(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x6a525(%rip), %rax     # 0x77b98
leaq 0x660(%rsp), %rdi
movq %rax, -0x10(%rdi)
callq 0x1c34a
leaq 0x2a0(%rsp), %rdi
callq 0x3c240
leaq 0x270(%rsp), %rbx
movq %rbx, %rdi
callq 0x1a506
movq %r14, %rdi
callq 0x1a202
movq -0x1d8(%rbx), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0xd6cd
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x93c0
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xd6ef
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x3c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xd710
movq 0x3c0(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x3a0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xd731
movq 0x3a0(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x400(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xd752
movq 0x400(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x3e0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xd773
movq 0x3e0(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x440(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xd794
movq 0x440(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x420(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xd7b5
movq 0x420(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x38(%rsp), %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0xd7d6
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x30(%rsp), %r14
movq %r14, %rdi
callq 0x2450a
movzbl (%r14), %esi
movq %rbx, %rdi
callq 0x3c32c
xorl %eax, %eax
addq $0x698, %rsp            # imm = 0x698
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x6b78e(%rip), %rdi     # 0x78f98
leaq 0x48fa0(%rip), %rsi     # 0x567b1
movl $0x2f, %edx
callq 0x9490
movq 0x6b776(%rip), %rdi     # 0x78f98
callq 0x91e0
movl $0x1, %edi
callq 0x94d0
jmp 0xd8b1
movq %rax, %rbx
movq 0x310(%rsp), %rdi
cmpq %r14, %rdi
je 0xdb98
movq 0x320(%rsp), %rsi
jmp 0xdb90
jmp 0xdb69
jmp 0xdaa9
movq %rax, %rbx
jmp 0xd940
jmp 0xd8b1
movq %rax, %rbx
movq 0x330(%rsp), %rdi
cmpq %r14, %rdi
je 0xdb0c
movq 0x340(%rsp), %rsi
jmp 0xdace
jmp 0xdaa9
jmp 0xdb69
jmp 0xdb69
jmp 0xdb69
jmp 0xdb69
jmp 0xdb69
jmp 0xdb69
jmp 0xd957
movq %rax, %rbx
jmp 0xd977
jmp 0xda1d
movq %rax, %rbx
jmp 0xda2a
movq %rax, %rbx
jmp 0xda37
movq %rax, %rbx
jmp 0xda44
jmp 0xdb69
jmp 0xdaa9
jmp 0xdb69
jmp 0xdaa9
jmp 0xdb69
jmp 0xdaa9
jmp 0xdb69
jmp 0xdaa9
jmp 0xdb69
jmp 0xdaa9
jmp 0xdb69
jmp 0xdaa9
jmp 0xdb69
jmp 0xdaa9
jmp 0xdb69
jmp 0xdaa9
jmp 0xdaa9
jmp 0xdaa9
movq %rax, %rbx
leaq 0x450(%rsp), %rdi
callq 0x9660
movq 0x2f0(%rsp), %rdi
cmpq %r15, %rdi
je 0xd977
movq 0x300(%rsp), %rsi
jmp 0xd96f
movq %rax, %rbx
movq 0x450(%rsp), %rdi
cmpq %r12, %rdi
je 0xd977
movq 0x460(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x650(%rsp), %rdi
callq 0xf750
jmp 0xda20
jmp 0xd98b
movq %rax, %rbx
movq 0x450(%rsp), %rdi
cmpq %r14, %rdi
jne 0xdb88
jmp 0xdb98
jmp 0xdaa9
jmp 0xdb69
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0xecf4
jmp 0xdb0c
jmp 0xdaa9
jmp 0xdb69
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xda37
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
jmp 0xda37
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xda44
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x93c0
jmp 0xda44
jmp 0xdaa9
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
callq 0xf784
leaq 0x390(%rsp), %rdi
callq 0xf7dc
leaq 0x3d0(%rsp), %rdi
callq 0xf7dc
leaq 0x410(%rsp), %rdi
callq 0xf7dc
jmp 0xdb98
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0xecf4
jmp 0xda6f
jmp 0xdb69
jmp 0xdaa9
movq %rax, %rbx
movq 0x450(%rsp), %rdi
leaq 0x460(%rsp), %rax
cmpq %rax, %rdi
je 0xdb0c
movq 0x460(%rsp), %rsi
jmp 0xdace
jmp 0xdb5d
jmp 0xdb5d
jmp 0xdb69
movq %rax, %rbx
jmp 0xdb7b
movq %rax, %rbx
jmp 0xdb0c
movq %rax, %rbx
movq 0x2d0(%rsp), %rdi
leaq 0x2e0(%rsp), %rax
cmpq %rax, %rdi
je 0xdb0c
movq 0x2e0(%rsp), %rsi
incq %rsi
callq 0x93c0
jmp 0xdb0c
movq %rax, %rbx
jmp 0xdaed
movq %rax, %rbx
leaq 0x450(%rsp), %rdi
callq 0xecf4
movq 0x380(%rsp), %rax
testq %rax, %rax
je 0xdb0c
leaq 0x370(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xdb98
movq 0x88(%rsp), %rsi
jmp 0xdb90
jmp 0xdb5d
movq %rax, %rbx
jmp 0xdb3c
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
callq 0xecf4
movq 0x360(%rsp), %rax
testq %rax, %rax
je 0xdb98
leaq 0x350(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0xdb98
movq %rax, %rdi
callq 0xe8bb
jmp 0xdb69
jmp 0xdb69
movq %rax, %rbx
jmp 0xdb98
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0xecf4
movq 0x450(%rsp), %rdi
cmpq %r15, %rdi
je 0xdb98
movq 0x460(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x18(%rsp), %rax
movq 0x8(%rsp), %rdi
cmpq %rax, %rdi
je 0xdbb4
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x93c0
leaq 0x30(%rsp), %rdi
callq 0xecf4
movq %rbx, %rdi
callq 0x9790