// File: /workspace/github_cpp_makefile_star2_O3/ALSchwalm[P]entrospy/entrospy/entrospy.cpp
// Function: main
int main(int argc, char** argv) {
    po::options_description desc("Usage: entrospy [OPTION] PATH...", 100);

    PrintingPolicy policy;
    DataFormat format;
    std::vector<std::string> paths;

    desc.add_options()                    //
        ("help,h", "Print help messages") //
        ("paths", po::value<std::vector<std::string>>(&paths),
         "Paths to search")                  //
        ("debug", "Enable debugging output") //
        ("all,a",
         "Do not ignore hidden files and directories") //
        ("block,b", po::value<std::string>(),
         "Process each file 'block' at a time. This will show the"
         " entropy for each block rather than the total file. The provided"
         " argument will be interpreted as a byte count unless suffixed"
         " with 'K', 'M', or 'G' for kilo, mega, and giga-bytes "
         "respectively") //
        ("categorize,c",
         "Show a categorization based on entropy in addition to the score") //
        ("print,p", "Print a hex view of each block")                       //
        ("addr", po::value<AddressFormat>(&policy.addr_format)
                     ->default_value(AddressFormat::HEX, "hex"),
         "Format to use for printed addresses: 'hex' or 'dec'") //
        ("lower,l", po::value<double>(&policy.bounds.first),
         "Do not show files with entropy lower than 'lower'") //
        ("upper,u", po::value<double>(&policy.bounds.second),
         "Do not show files with entropy higher than 'upper'") //
        ("format,f", po::value<DataFormat>(&format)
                         ->default_value(DataFormat::DATA, "data"),
         "Input format: 'data','text' or 'base64'") //
        ("graph,g",
         "Output a gnuplot script to standard out") //
        ("recursive,r",
         "Run directories in PATH recursively"); //

    po::positional_options_description p;
    p.add("paths", -1);

    po::variables_map vm;

    try {
        po::store(po::command_line_parser(argc, argv)
                      .options(desc)
                      .positional(p)
                      .run(),
                  vm);

        if (vm.count("help")) {
            std::cout << desc << std::endl;
            return 0;
        }

        po::notify(vm);
    } catch (po::error& e) {
        std::cerr << "entrospy: " << e.what() << std::endl;
        return EXIT_FAILURE;
    }

    uint64_t block_size = 0;
    if (vm.count("block")) {
        block_size = parse_block_size(vm["block"].as<std::string>());
    }

    if (vm.count("print")) {
        if (!vm.count("block")) {
            std::cerr << "entrospy: cannot specify 'print' without 'block'"
                      << std::endl;
            return EXIT_FAILURE;
        } else {
            policy.print_blocks = true;
        }
    }

    if (vm.count("graph")) {
        policy.print_graph = true;
    }

    if (vm.count("categorize")) {
        policy.categorize = true;
    }

    auto title = boost::format("Entropy for %1% (bs=%2%)") %
                 boost::algorithm::join(paths, ", ") % block_size;

    EntropyGraph graph{boost::str(title), block_size, policy};
    for (const auto& path : paths) {
        if (fs::is_directory(path)) {
            if (!vm.count("recursive")) {
                std::cerr << "entrospy: " << path << ": Is a directory"
                          << std::endl;
                continue;
            } else {
                for (fs::recursive_directory_iterator iter(path), end;
                     iter != end; ++iter) {
                    if (fs::is_directory(iter->path())) {
                        if (is_hidden(iter->path()) && !vm.count("all")) {
                            iter.no_push();
                        }
                        continue;
                    }
                    if (!is_hidden(iter->path()) || vm.count("all")) {
                        shannon_file(iter->path().string(), block_size, policy,
                                     format, graph);
                    }
                }
            }
        } else {
            shannon_file(path, block_size, policy, format, graph);
        }
    }

    if (policy.print_graph) {
        std::cout << graph;
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x3a8, %rsp            # imm = 0x3A8
movq %rsi, %rbx
movl %edi, %ebp
leaq 0xa0(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xf48f(%rip), %rsi      # 0x1825d
leaq 0xf4a8(%rip), %rdx      # 0x1827d
leaq 0x90(%rsp), %rdi
callq 0x8b54
movq 0x1a19f(%rip), %rax     # 0x22f88
movl (%rax), %ecx
shrl %ecx
leaq 0x328(%rsp), %rdi
leaq 0x90(%rsp), %rsi
movl $0x64, %edx
callq 0x8530
movq 0x90(%rsp), %rdi
cmpq %r13, %rdi
je 0x8e19
callq 0x8370
movw $0x0, 0x40(%rsp)
movb $0x0, 0x42(%rsp)
movaps 0xf2b4(%rip), %xmm0     # 0x180e0
movups %xmm0, 0x48(%rsp)
movl $0x0, 0x58(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0x60(%rsp)
movq $0x0, 0x70(%rsp)
leaq 0x328(%rsp), %rdi
callq 0x8460
leaq 0x288(%rsp), %rdi
movq %rax, (%rdi)
leaq 0xf415(%rip), %rsi      # 0x1827e
leaq 0xf415(%rip), %rdx      # 0x18285
callq 0x86f0
movq %rax, %r14
leaq 0x60(%rsp), %rdi
callq 0x9d48
leaq 0xf410(%rip), %rsi      # 0x18299
leaq 0xf40f(%rip), %rcx      # 0x1829f
movq %r14, %rdi
movq %rax, %rdx
callq 0x8750
leaq 0xf40d(%rip), %rsi      # 0x182af
leaq 0xf40c(%rip), %rdx      # 0x182b5
movq %rax, %rdi
callq 0x86f0
leaq 0xf415(%rip), %rsi      # 0x182cd
leaq 0xf414(%rip), %rdx      # 0x182d3
movq %rax, %rdi
callq 0x86f0
movq %rax, %r14
xorl %edi, %edi
callq 0xd9e5
leaq 0xf426(%rip), %rsi      # 0x182fe
leaq 0xf427(%rip), %rcx      # 0x18306
movq %r14, %rdi
movq %rax, %rdx
callq 0x8750
leaq 0xf50c(%rip), %rsi      # 0x183fd
leaq 0xf512(%rip), %rdx      # 0x1840a
movq %rax, %rdi
callq 0x86f0
leaq 0xf543(%rip), %rsi      # 0x1844a
leaq 0xf544(%rip), %rdx      # 0x18452
movq %rax, %rdi
callq 0x86f0
movq %rax, %r14
leaq 0x58(%rsp), %rdi
callq 0x9dbf
movq %rax, %r15
movl $0x1, 0x250(%rsp)
leaq 0x90(%rsp), %rdi
movq %r13, (%rdi)
leaq 0xf533(%rip), %rsi      # 0x18476
leaq 0xf52f(%rip), %rdx      # 0x18479
callq 0x8b54
leaq 0x250(%rsp), %rsi
leaq 0x90(%rsp), %rdx
movq %r15, %rdi
callq 0x9e36
leaq 0xf503(%rip), %rsi      # 0x18471
leaq 0xf505(%rip), %rcx      # 0x1847a
movq %r14, %rdi
movq %rax, %rdx
callq 0x8750
movq %rax, %r14
leaq 0x48(%rsp), %rdi
callq 0x9e86
leaq 0xf51a(%rip), %rsi      # 0x184ae
leaq 0xf51b(%rip), %rcx      # 0x184b6
movq %r14, %rdi
movq %rax, %rdx
callq 0x8750
movq %rax, %r14
leaq 0x50(%rsp), %rdi
callq 0x9e86
leaq 0xf52e(%rip), %rsi      # 0x184e8
leaq 0xf52f(%rip), %rcx      # 0x184f0
movq %r14, %rdi
movq %rax, %rdx
callq 0x8750
movq %rax, %r14
leaq 0x2c(%rsp), %rdi
callq 0x9efd
movq %rax, %r12
movl $0x100, (%rsp)          # imm = 0x100
leaq 0x180(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0xf536(%rip), %rsi      # 0x1852c
leaq 0xf533(%rip), %rdx      # 0x18530
leaq 0x170(%rsp), %rdi
callq 0x8b54
movq %rsp, %r15
leaq 0x170(%rsp), %rdx
movq %r12, %rdi
movq %r15, %rsi
callq 0x9f74
leaq 0xf4fc(%rip), %rsi      # 0x18523
leaq 0xf503(%rip), %rcx      # 0x18531
movq %r14, %rdi
movq %rax, %rdx
callq 0x8750
leaq 0xf519(%rip), %rsi      # 0x18559
leaq 0xf51a(%rip), %rdx      # 0x18561
movq %rax, %rdi
callq 0x86f0
leaq 0xf533(%rip), %rsi      # 0x18589
leaq 0xf538(%rip), %rdx      # 0x18595
movq %rax, %rdi
callq 0x86f0
movq 0x170(%rsp), %rdi
leaq 0x180(%rsp), %rax
cmpq %rax, %rdi
je 0x907f
callq 0x8370
movq 0x90(%rsp), %rdi
cmpq %r13, %rdi
je 0x9091
callq 0x8370
leaq 0x250(%rsp), %rdi
callq 0x84d0
leaq 0xf1f4(%rip), %rsi      # 0x18299
leaq 0x250(%rsp), %rdi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x83d0
leaq 0x288(%rsp), %rdi
callq 0x8190
leaq 0x90(%rsp), %rdi
movl %ebp, %esi
movq %rbx, %rdx
callq 0x9fc4
leaq 0x90(%rsp), %rdi
leaq 0x328(%rsp), %rbx
movq %rbx, %rsi
callq 0x8330
leaq 0x90(%rsp), %rdi
movq %rbx, 0x70(%rdi)
leaq 0x250(%rsp), %rsi
callq 0x8640
leaq 0x170(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0xa058
leaq 0x170(%rsp), %rdi
leaq 0x288(%rsp), %rsi
xorl %edx, %edx
callq 0x8690
leaq 0x170(%rsp), %rdi
callq 0xa52a
leaq 0xe0(%rsp), %rdi
callq 0xa596
leaq 0xc0(%rsp), %rdi
callq 0xa5ce
leaq 0x90(%rsp), %rbx
movq %rbx, %rdi
callq 0xa4a4
movq %r13, (%rbx)
leaq 0xf445(%rip), %rsi      # 0x185b9
leaq 0xf442(%rip), %rdx      # 0x185bd
leaq 0x90(%rsp), %rdi
callq 0x8b54
leaq 0x298(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0x114c8
movq %rax, %r12
leaq 0x2a0(%rsp), %rbx
movq 0x90(%rsp), %rdi
cmpq %r13, %rdi
je 0x91ba
callq 0x8370
cmpq %rbx, %r12
je 0x9204
movq 0x19dea(%rip), %rdi     # 0x22fb0
leaq 0x328(%rsp), %rsi
callq 0x80a0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x8390
movsbl %al, %esi
movq %rbx, %rdi
callq 0x8030
xorl %ebx, %ebx
movq %rax, %rdi
callq 0x82c0
jmp 0x99d2
leaq 0x288(%rsp), %rdi
callq 0x8220
movq $0x0, 0x20(%rsp)
leaq 0x90(%rsp), %rdi
movq %r13, (%rdi)
leaq 0xf23f(%rip), %rsi      # 0x1846b
leaq 0xf23d(%rip), %rdx      # 0x18470
callq 0x8b54
leaq 0x90(%rsp), %rsi
leaq 0x298(%rsp), %rdi
callq 0x114c8
movq %rax, %rbx
movq 0x90(%rsp), %rdi
cmpq %r13, %rdi
je 0x9262
callq 0x8370
cmpq %r12, %rbx
je 0x92c1
leaq 0x90(%rsp), %rdi
movq %r13, (%rdi)
leaq 0xf1f2(%rip), %rsi      # 0x1846b
leaq 0xf1f0(%rip), %rdx      # 0x18470
callq 0x8b54
leaq 0x288(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0x83f0
movq %rax, %rdi
callq 0x11551
movq %rax, %rdi
callq 0x8c4a
movq %rax, 0x20(%rsp)
movq 0x90(%rsp), %rdi
cmpq %r13, %rdi
je 0x92c1
callq 0x8370
leaq 0x90(%rsp), %rdi
movq %r13, (%rdi)
leaq 0xf2f6(%rip), %rsi      # 0x185c9
leaq 0xf2f4(%rip), %rdx      # 0x185ce
callq 0x8b54
leaq 0x90(%rsp), %rsi
leaq 0x298(%rsp), %rdi
callq 0x114c8
movq %rax, %rbx
movq 0x90(%rsp), %rdi
cmpq %r13, %rdi
je 0x9309
callq 0x8370
cmpq %r12, %rbx
je 0x9364
leaq 0x90(%rsp), %rdi
movq %r13, (%rdi)
leaq 0xf14b(%rip), %rsi      # 0x1846b
leaq 0xf149(%rip), %rdx      # 0x18470
callq 0x8b54
leaq 0x90(%rsp), %rsi
leaq 0x298(%rsp), %rdi
callq 0x114c8
movq %rax, %rbx
movq 0x90(%rsp), %rdi
cmpq %r13, %rdi
je 0x9356
callq 0x8370
cmpq %r12, %rbx
je 0x9987
movb $0x1, 0x40(%rsp)
leaq 0x90(%rsp), %rdi
movq %r13, (%rdi)
leaq 0xf28a(%rip), %rsi      # 0x18600
leaq 0xf288(%rip), %rdx      # 0x18605
callq 0x8b54
leaq 0x90(%rsp), %rsi
leaq 0x298(%rsp), %rdi
callq 0x114c8
movq %rax, %rbx
movq 0x90(%rsp), %rdi
cmpq %r13, %rdi
je 0x93ac
callq 0x8370
cmpq %r12, %rbx
je 0x93b6
movb $0x1, 0x41(%rsp)
leaq 0x90(%rsp), %rdi
movq %r13, (%rdi)
leaq 0xf23e(%rip), %rsi      # 0x18606
leaq 0xf241(%rip), %rdx      # 0x18610
callq 0x8b54
leaq 0x90(%rsp), %rsi
leaq 0x298(%rsp), %rdi
callq 0x114c8
movq %rax, %rbx
movq 0x90(%rsp), %rdi
cmpq %r13, %rdi
je 0x93fe
callq 0x8370
cmpq %r12, %rbx
je 0x9408
movb $0x1, 0x42(%rsp)
leaq 0xf202(%rip), %rsi      # 0x18611
leaq 0x170(%rsp), %rdi
callq 0xa13e
movq 0x60(%rsp), %r13
movq 0x68(%rsp), %rbp
leaq 0x10(%rsp), %r14
movq %r14, -0x10(%r14)
movq $0x0, -0x8(%r14)
movb $0x0, (%r14)
cmpq %rbp, %r13
movq %r12, 0x30(%rsp)
je 0x945d
movq (%r13), %rcx
movq 0x8(%r13), %r8
movq %rsp, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x8410
addq $0x20, %r13
cmpq %rbp, %r13
je 0x94a4
leaq 0xf1c1(%rip), %rbx      # 0x1862a
movq %rsp, %r12
movq 0x8(%rsp), %rsi
movl $0x2, %r8d
movq %r12, %rdi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x8410
movq 0x8(%rsp), %rsi
movq (%r13), %rcx
movq 0x8(%r13), %r8
movq %r12, %rdi
xorl %edx, %edx
callq 0x8410
addq $0x20, %r13
cmpq %rbp, %r13
jne 0x946c
leaq 0x78(%rsp), %rsi
movq %r15, (%rsi)
leaq 0xbb62(%rip), %rax      # 0x15015
movq %rax, 0x8(%rsi)
leaq 0xbb58(%rip), %rax      # 0x15016
movq %rax, 0x10(%rsi)
leaq 0x170(%rsp), %rdi
callq 0x13fb0
leaq 0x20(%rsp), %rcx
leaq 0x78(%rsp), %rsi
movq %rcx, (%rsi)
leaq 0xbb42(%rip), %rcx      # 0x15025
movq %rcx, 0x8(%rsi)
leaq 0xbb38(%rip), %rcx      # 0x15026
movq %rcx, 0x10(%rsi)
movq %rax, %rdi
callq 0x13fb0
leaq 0x90(%rsp), %rdi
movq %rax, %rsi
callq 0xa29c
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x9518
callq 0x8370
cmpb $0x1, 0x240(%rsp)
jne 0x9536
leaq 0x248(%rsp), %rbx
movq %rbx, %rdi
callq 0x8560
movb $0x0, -0x8(%rbx)
leaq 0x1e8(%rsp), %rbx
movq %rbx, %rdi
callq 0xa606
movq -0x28(%rbx), %rdi
leaq 0x1d0(%rsp), %rax
cmpq %rax, %rdi
je 0x955c
callq 0x8370
movq 0x188(%rsp), %rdi
testq %rdi, %rdi
je 0x9596
callq 0x8370
xorl %eax, %eax
movq %rax, 0x188(%rsp)
movl %eax, 0x190(%rsp)
movq %rax, 0x198(%rsp)
movl %eax, 0x1a0(%rsp)
movq %rax, 0x1a8(%rsp)
leaq 0x170(%rsp), %rdi
callq 0xa65a
movq %rsp, %rdi
leaq 0x90(%rsp), %rsi
callq 0x15312
movq 0x20(%rsp), %rdx
leaq 0x170(%rsp), %rdi
movq %rsp, %rsi
leaq 0x40(%rsp), %rcx
callq 0x158d0
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x95db
callq 0x8370
movq 0x60(%rsp), %r15
movq 0x68(%rsp), %rbx
cmpq %rbx, %r15
je 0x98b7
movq %rsp, %r12
leaq 0x78(%rsp), %r13
movq %r14, (%rsp)
movq (%r15), %rsi
movq 0x8(%r15), %rdx
addq %rsi, %rdx
movq %r12, %rdi
callq 0xab6e
movq %r13, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x85a0
movl 0x78(%rsp), %ebp
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x962b
callq 0x8370
cmpl $0x3, %ebp
jne 0x9820
movq %r14, (%rsp)
movq %r12, %rdi
leaq 0xefeb(%rip), %rsi      # 0x1862d
leaq 0xefed(%rip), %rdx      # 0x18636
callq 0x8b54
leaq 0x298(%rsp), %rdi
movq %r12, %rsi
callq 0x114c8
movq %rax, %rbp
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x966f
callq 0x8370
cmpq 0x30(%rsp), %rbp
je 0x9840
movq %r14, (%rsp)
movq (%r15), %rsi
movq 0x8(%r15), %rdx
addq %rsi, %rdx
movq %r12, %rdi
callq 0xab6e
movq %r13, %rdi
movq %r12, %rsi
callq 0xa3fe
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x96a9
callq 0x8370
movq $0x0, 0x38(%rsp)
movq 0x78(%rsp), %rcx
testq %rcx, %rcx
je 0x9809
xorl %eax, %eax
testq %rcx, %rcx
je 0x96d1
movq 0x8(%rcx), %rdx
cmpq 0x10(%rcx), %rdx
jne 0x96e8
testq %rax, %rax
je 0x9809
movq 0x8(%rax), %rcx
cmpq 0x10(%rax), %rcx
je 0x9809
movq %r13, %rdi
callq 0x15866
movq %r12, %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0x85a0
cmpl $0x3, (%rsp)
jne 0x9770
movq %r13, %rdi
callq 0x15866
movq %rax, %rdi
callq 0x8bec
testb %al, %al
je 0x97ec
movq %r14, (%rsp)
movq %r12, %rdi
leaq 0xef1f(%rip), %rsi      # 0x18648
leaq 0xef1b(%rip), %rdx      # 0x1864b
callq 0x8b54
leaq 0x298(%rsp), %rdi
movq %r12, %rsi
callq 0x114c8
movq %rax, %rbp
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x9756
callq 0x8370
cmpq 0x30(%rsp), %rbp
jne 0x97ec
movq %r13, %rdi
movl $0x1, %esi
callq 0xacae
jmp 0x97ec
movq %r13, %rdi
callq 0x15866
movq %rax, %rdi
callq 0x8bec
testb %al, %al
je 0x97c6
movq %r14, (%rsp)
movq %r12, %rdi
leaq 0xeeb6(%rip), %rsi      # 0x18648
leaq 0xeeb2(%rip), %rdx      # 0x1864b
callq 0x8b54
leaq 0x298(%rsp), %rdi
movq %r12, %rsi
callq 0x114c8
movq %rax, %rbp
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x97bf
callq 0x8370
cmpq 0x30(%rsp), %rbp
je 0x97ec
movq %r13, %rdi
callq 0x15866
movq 0x20(%rsp), %rsi
movl 0x2c(%rsp), %ecx
movq %rax, %rdi
leaq 0x40(%rsp), %rdx
leaq 0x170(%rsp), %r8
callq 0x16f28
movq %r13, %rdi
xorl %esi, %esi
callq 0x8250
movq 0x38(%rsp), %rax
movq 0x78(%rsp), %rcx
cmpq %rax, %rcx
jne 0x96c2
leaq 0x38(%rsp), %rdi
callq 0xac04
movq %r13, %rdi
callq 0xac04
jmp 0x98aa
movq 0x20(%rsp), %rsi
movl 0x2c(%rsp), %ecx
movq %r15, %rdi
leaq 0x40(%rsp), %rdx
leaq 0x170(%rsp), %r8
callq 0x16f28
jmp 0x98aa
movl $0xa, %edx
movq 0x1979c(%rip), %rdi     # 0x22fe8
leaq 0xed6b(%rip), %rsi      # 0x185be
callq 0x8420
movq (%r15), %rsi
movq 0x8(%r15), %rdx
movq 0x19782(%rip), %rdi     # 0x22fe8
callq 0x8420
movq %rax, %rbp
movl $0x10, %edx
movq %rax, %rdi
leaq 0xedba(%rip), %rsi      # 0x18637
callq 0x8420
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x8390
movsbl %al, %esi
movq %rbp, %rdi
callq 0x8030
movq %rax, %rdi
callq 0x82c0
addq $0x20, %r15
cmpq %rbx, %r15
jne 0x95f6
cmpb $0x0, 0x41(%rsp)
je 0x98d2
movq 0x196eb(%rip), %rdi     # 0x22fb0
leaq 0x170(%rsp), %rsi
callq 0x1596a
leaq 0x1b8(%rsp), %rbx
movq %rbx, %rdi
callq 0xacf4
movq -0x48(%rbx), %rdi
leaq 0x180(%rsp), %rax
cmpq %rax, %rdi
je 0x98f8
callq 0x8370
cmpb $0x1, 0x160(%rsp)
jne 0x9916
leaq 0x168(%rsp), %rbx
movq %rbx, %rdi
callq 0x8560
movb $0x0, -0x8(%rbx)
leaq 0x108(%rsp), %rbx
movq %rbx, %rdi
callq 0xa606
movq -0x28(%rbx), %rdi
leaq 0xf0(%rsp), %rax
cmpq %rax, %rdi
je 0x993c
callq 0x8370
movq 0xa8(%rsp), %rdi
testq %rdi, %rdi
je 0x9976
callq 0x8370
xorl %eax, %eax
movq %rax, 0xa8(%rsp)
movl %eax, 0xb0(%rsp)
movq %rax, 0xb8(%rsp)
movl %eax, 0xc0(%rsp)
movq %rax, 0xc8(%rsp)
leaq 0x90(%rsp), %rdi
callq 0xa65a
xorl %ebx, %ebx
jmp 0x99d2
movq 0x1965a(%rip), %rbx     # 0x22fe8
leaq 0xec3a(%rip), %rsi      # 0x185cf
movl $0x30, %edx
movq %rbx, %rdi
callq 0x8420
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x8390
movsbl %al, %esi
movq 0x19628(%rip), %rdi     # 0x22fe8
callq 0x8030
movl $0x1, %ebx
movq %rax, %rdi
callq 0x82c0
movq 0x195e7(%rip), %rax     # 0x22fc0
addq $0x10, %rax
leaq 0x2f8(%rsp), %rdi
movq %rax, -0x70(%rdi)
callq 0xad70
leaq 0x2c8(%rsp), %rdi
callq 0xadf0
leaq 0x298(%rsp), %rdi
callq 0xae4c
leaq 0x278(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9a1e
callq 0x8370
leaq 0x250(%rsp), %rdi
callq 0xa4a4
leaq 0x60(%rsp), %rdi
callq 0xa4a4
leaq 0x390(%rsp), %r14
movq %r14, %rdi
callq 0xaf04
movq -0x28(%r14), %rdi
testq %rdi, %rdi
je 0x9a7b
callq 0x8370
xorl %eax, %eax
movq %rax, 0x368(%rsp)
movl %eax, 0x370(%rsp)
movq %rax, 0x378(%rsp)
movl %eax, 0x380(%rsp)
movq %rax, 0x388(%rsp)
leaq 0x350(%rsp), %r14
movq %r14, %rdi
callq 0xaf46
movq -0x28(%r14), %rdi
leaq 0x338(%rsp), %rax
cmpq %rax, %rdi
je 0x9aa1
callq 0x8370
movl %ebx, %eax
addq $0x3a8, %rsp            # imm = 0x3A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x9cc9
jmp 0x9c97
jmp 0x9b01
jmp 0x9af9
jmp 0x9af9
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x9cf7
callq 0x8370
jmp 0x9cf7
movq %rax, %rbx
jmp 0x9cf7
jmp 0x9af9
jmp 0x9b01
jmp 0x9af9
jmp 0x9b01
jmp 0x9af9
jmp 0x9af9
jmp 0x9b01
jmp 0x9af9
jmp 0x9b01
movq %rax, %rbx
jmp 0x9d04
movq %rax, %rbx
movq 0x90(%rsp), %rdi
cmpq %r13, %rdi
je 0x9d04
callq 0x8370
jmp 0x9d04
jmp 0x9c97
movq %rdx, %r14
movq %rax, %rbx
movq 0x90(%rsp), %rdi
cmpq %r13, %rdi
je 0x9bcc
callq 0x8370
jmp 0x9bcc
jmp 0x9bb1
movq %rdx, %r14
movq %rax, %rbx
leaq 0x170(%rsp), %rdi
callq 0xa52a
jmp 0x9bbf
jmp 0x9bb1
jmp 0x9b60
movq %rax, %rbx
jmp 0x9d11
jmp 0x9cce
jmp 0x9cb2
jmp 0x9cce
movq %rax, %rbx
movq 0x90(%rsp), %rdi
cmpq %r13, %rdi
je 0x9d35
callq 0x8370
jmp 0x9d35
movq %rax, %rbx
jmp 0x9d35
jmp 0x9c82
jmp 0x9cc9
jmp 0x9c82
jmp 0x9cc9
movq %rdx, %r14
movq %rax, %rbx
jmp 0x9bcc
movq %rdx, %r14
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xa11e
cmpl $0x1, %r14d
jne 0x9d04
movq %rbx, %rdi
callq 0x8170
movq %rax, %rbx
movq 0x19400(%rip), %rdi     # 0x22fe8
leaq 0xe9cf(%rip), %rsi      # 0x185be
movl $0xa, %edx
callq 0x8420
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x10(%rax)
movq 0x193df(%rip), %rdi     # 0x22fe8
movq %rax, %rsi
callq 0x83a0
movq %rax, %rdi
callq 0x81c0
movl $0x1, %ebx
callq 0x8620
jmp 0x99d2
jmp 0x9af9
movq %rax, %rbx
callq 0x8620
jmp 0x9d04
movq %rax, %rdi
callq 0x9d3d
jmp 0x9cd3
jmp 0x9c4e
jmp 0x9cd3
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x9cd6
callq 0x8370
jmp 0x9cd6
movq %rax, %rbx
movq 0x170(%rsp), %rdi
leaq 0x180(%rsp), %rax
cmpq %rax, %rdi
je 0x9cb5
callq 0x8370
jmp 0x9cb5
jmp 0x9cc9
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x9cea
callq 0x8370
jmp 0x9cea
jmp 0x9c97
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x9ca8
callq 0x8370
leaq 0x170(%rsp), %rdi
jmp 0x9cff
movq %rax, %rbx
movq 0x90(%rsp), %rdi
cmpq %r13, %rdi
je 0x9d1e
callq 0x8370
jmp 0x9d1e
movq %rax, %rbx
jmp 0x9cea
movq %rax, %rbx
jmp 0x9d1e
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
callq 0xac04
leaq 0x78(%rsp), %rdi
callq 0xac04
leaq 0x170(%rsp), %rdi
callq 0xa430
leaq 0x90(%rsp), %rdi
callq 0xa3a8
leaq 0x288(%rsp), %rdi
callq 0xa452
leaq 0x250(%rsp), %rdi
callq 0xa484
leaq 0x60(%rsp), %rdi
callq 0xa4a4
leaq 0x328(%rsp), %rdi
callq 0xa4ee
movq %rbx, %rdi
callq 0x86a0