// File: /workspace/github_cpp_makefile_star2_O3/aayush-jaiswal[P]covid-in/src/main.cpp
// Function: main
int main(int argc, char *argv[]) {
    std::string app_name = argv[0];
    
    try {
        cxxopts::Options options(app_name, "A command line app to get covid-19 update.");
        options.add_options()
            ("h, help", "Print help/usage")
            ("s, state", "Choose state(s) to display stats", cxxopts::value<std::vector<std::string>>(), "statecode")
            ("t, tested", "Show tested data")
            ("a, all", "Show data of all states in tabular form")
            ("statecodes", "Display state codes");

        auto result = options.parse(argc, argv);

        if (result.count("help")) {
            std::cout << options.help() << '\n';
            exit(0);
        }

        if (result.count("statecodes")) {
            std::cout << "The state codes are: \n\n";
            for (auto &s : abbr::india_states) {
                std::cout << s.second << ": " << s.first << '\n';
            } 
            exit(0);
        }

        std::cout << "Fetching data...\n\n";
        const char *covid_india_api = "https://api.covid19india.org/data.json";
        json all_data = json::parse(get_api_data(covid_india_api));
        
        if (result.count("all")) {
            print_formatted_all(all_data["statewise"]);
        }

        if (result.count("state")) {
            auto states = result["state"].as<std::vector<std::string>>();
            for (auto &s :  states) {
                std::transform(s.begin(), s.end(), s.begin(), ::toupper);
                for (auto &x : all_data["statewise"]) {
                    if (x["statecode"] == s) {
                        print_formatted_output(x);
                    }
                }
            }
        }

        if (result.count("all") == 0) {
            print_formatted_output(all_data["statewise"][0]);
        }
        
        if (result.count("tested")) {
            print_formatted_tested(all_data["tested"].back());
        }
    }

    catch (const cxxopts::OptionException& e) {
        std::cerr << "Error parsing options! Try again with valid options.\n";
        std::cerr << "Use " << app_name << " -h for help\n"; 
        return 1;
    }

    return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x538, %rsp            # imm = 0x538
movl %edi, 0x9c(%rsp)
movq %rsi, 0x298(%rsp)
movq (%rsi), %rsi
leaq 0x200(%rsp), %rdi
leaq 0x418(%rsp), %rdx
callq 0xc686
leaq 0x310(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x200(%rsp), %rsi
movq 0x208(%rsp), %rdx
addq %rsi, %rdx
leaq 0x300(%rsp), %rdi
callq 0x8f20
leaq 0x2f0(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x241b1(%rip), %rsi     # 0x2f2f4
leaq 0x241d4(%rip), %rdx     # 0x2f31e
leaq 0x2e0(%rsp), %rdi
callq 0x8fb6
leaq 0x418(%rsp), %rbx
leaq 0x300(%rsp), %rsi
leaq 0x2e0(%rsp), %rdx
movq %rbx, %rdi
callq 0xcf6c
movq 0x2e0(%rsp), %rdi
cmpq %r15, %rdi
je 0xb194
movq 0x2f0(%rsp), %rsi
incq %rsi
callq 0x60b0
movq 0x300(%rsp), %rdi
cmpq %r14, %rdi
je 0xb1b1
movq 0x310(%rsp), %rsi
incq %rsi
callq 0x60b0
leaq 0xd0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x24228(%rip), %rdx     # 0x2f3ec
leaq 0xc0(%rsp), %rdi
movq %rdx, %rsi
callq 0x8fb6
leaq 0x18(%rsp), %rax
movq 0xc0(%rsp), %rcx
cmpq %r14, %rcx
je 0xb1f5
movq 0xd0(%rsp), %rdx
movq %rdx, 0x18(%rsp)
jmp 0xb1ff
movups (%r14), %xmm0
movups %xmm0, (%rax)
movq %rax, %rcx
movq 0xc8(%rsp), %rdx
movq %r14, 0xc0(%rsp)
movq $0x0, 0xc8(%rsp)
movb $0x0, 0xd0(%rsp)
leaq 0x370(%rsp), %rsi
movq %rbx, -0x18(%rsi)
movq %rsi, -0x10(%rsi)
cmpq %rax, %rcx
je 0xb24f
movq %rcx, 0x360(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x370(%rsp)
jmp 0xb255
movups (%rax), %xmm0
movups %xmm0, (%rsi)
movq %rdx, 0x368(%rsp)
leaq 0x18(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x240b2(%rip), %rsi     # 0x2f31f
leaq 0x240b2(%rip), %rdx     # 0x2f326
leaq 0x8(%rsp), %rdi
callq 0x8fb6
leaq 0x40(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x24099(%rip), %rsi     # 0x2f327
leaq 0x240a2(%rip), %rdx     # 0x2f337
leaq 0x30(%rsp), %rdi
callq 0x8fb6
leaq 0x70(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x21338
movaps 0x70(%rsp), %xmm0
movaps %xmm0, 0x260(%rsp)
leaq 0x1f0(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2411e(%rip), %rdx     # 0x2f3ec
leaq 0x1e0(%rsp), %rdi
movq %rdx, %rsi
callq 0x8fb6
leaq 0x358(%rsp), %rdi
leaq 0x8(%rsp), %rsi
leaq 0x30(%rsp), %rdx
leaq 0x260(%rsp), %rcx
leaq 0x1e0(%rsp), %r8
callq 0xd192
movq %rax, %rbx
leaq 0x80(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2401d(%rip), %rsi     # 0x2f338
leaq 0x2401e(%rip), %rdx     # 0x2f340
leaq 0x70(%rsp), %rdi
callq 0x8fb6
leaq 0x60(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x24005(%rip), %rsi     # 0x2f341
leaq 0x2401e(%rip), %rdx     # 0x2f361
leaq 0x50(%rsp), %rdi
callq 0x8fb6
leaq 0xa0(%rsp), %rdi
leaq 0x140(%rsp), %rsi
callq 0x23df6
movaps 0xa0(%rsp), %xmm0
movaps %xmm0, 0x250(%rsp)
leaq 0x1d0(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x23fdd(%rip), %rsi     # 0x2f362
leaq 0x23fdf(%rip), %rdx     # 0x2f36b
leaq 0x1c0(%rsp), %rdi
callq 0x8fb6
leaq 0x70(%rsp), %rsi
leaq 0x50(%rsp), %rdx
leaq 0x250(%rsp), %rcx
leaq 0x1c0(%rsp), %r8
movq %rbx, %rdi
callq 0xd192
movq %rax, %rbx
leaq 0xb0(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x23f9b(%rip), %rsi     # 0x2f36c
leaq 0x23f9d(%rip), %rdx     # 0x2f375
leaq 0xa0(%rsp), %rdi
callq 0x8fb6
leaq 0x150(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x23f7e(%rip), %rsi     # 0x2f376
leaq 0x23f87(%rip), %rdx     # 0x2f386
leaq 0x140(%rsp), %rdi
callq 0x8fb6
leaq 0x180(%rsp), %rdi
leaq 0x120(%rsp), %rsi
callq 0x21338
movaps 0x180(%rsp), %xmm0
movaps %xmm0, 0x240(%rsp)
leaq 0x1b0(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x23fa8(%rip), %rdx     # 0x2f3ec
leaq 0x1a0(%rsp), %rdi
movq %rdx, %rsi
callq 0x8fb6
leaq 0xa0(%rsp), %rsi
leaq 0x140(%rsp), %rdx
leaq 0x240(%rsp), %rcx
leaq 0x1a0(%rsp), %r8
movq %rbx, %rdi
callq 0xd192
movq %rax, %rbx
leaq 0x190(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x23ef5(%rip), %rsi     # 0x2f387
leaq 0x23ef4(%rip), %rdx     # 0x2f38d
leaq 0x180(%rsp), %rdi
callq 0x8fb6
leaq 0x130(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x23ed5(%rip), %rsi     # 0x2f38e
leaq 0x23ef5(%rip), %rdx     # 0x2f3b5
leaq 0x120(%rsp), %rdi
callq 0x8fb6
leaq 0x160(%rsp), %rdi
leaq 0x278(%rsp), %rsi
callq 0x21338
movaps 0x160(%rsp), %xmm0
movaps %xmm0, 0x230(%rsp)
leaq 0x2d0(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x23ee7(%rip), %rdx     # 0x2f3ec
leaq 0x2c0(%rsp), %rdi
movq %rdx, %rsi
callq 0x8fb6
leaq 0x180(%rsp), %rsi
leaq 0x120(%rsp), %rdx
leaq 0x230(%rsp), %rcx
leaq 0x2c0(%rsp), %r8
movq %rbx, %rdi
callq 0xd192
movq %rax, %rbx
leaq 0x170(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x23e62(%rip), %rsi     # 0x2f3b6
leaq 0x23e65(%rip), %rdx     # 0x2f3c0
leaq 0x160(%rsp), %rdi
callq 0x8fb6
leaq 0x288(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x23e46(%rip), %rsi     # 0x2f3c1
leaq 0x23e52(%rip), %rdx     # 0x2f3d4
leaq 0x278(%rsp), %rdi
callq 0x8fb6
leaq 0x340(%rsp), %rdi
leaq 0x2f(%rsp), %rsi
callq 0x21338
movaps 0x340(%rsp), %xmm0
movaps %xmm0, 0x220(%rsp)
leaq 0x2b0(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x23e28(%rip), %rdx     # 0x2f3ec
leaq 0x2a0(%rsp), %rdi
movq %rdx, %rsi
callq 0x8fb6
leaq 0x160(%rsp), %rsi
leaq 0x278(%rsp), %rdx
leaq 0x220(%rsp), %rcx
leaq 0x2a0(%rsp), %r8
movq %rbx, %rdi
callq 0xd192
movq 0x2a0(%rsp), %rdi
cmpq %rbp, %rdi
je 0xb619
movq 0x2b0(%rsp), %rsi
incq %rsi
callq 0x60b0
movq 0x228(%rsp), %rdi
testq %rdi, %rdi
leaq 0x18(%rsp), %rbp
je 0xb630
callq 0xe05a
movq 0x278(%rsp), %rdi
cmpq %r15, %rdi
je 0xb64d
movq 0x288(%rsp), %rsi
incq %rsi
callq 0x60b0
movq 0x160(%rsp), %rdi
cmpq %r12, %rdi
je 0xb66a
movq 0x170(%rsp), %rsi
incq %rsi
callq 0x60b0
movq 0x2c0(%rsp), %rdi
cmpq %r13, %rdi
je 0xb687
movq 0x2d0(%rsp), %rsi
incq %rsi
callq 0x60b0
movq 0x238(%rsp), %rdi
testq %rdi, %rdi
je 0xb699
callq 0xe05a
movq 0x120(%rsp), %rdi
leaq 0x130(%rsp), %rax
cmpq %rax, %rdi
je 0xb6be
movq 0x130(%rsp), %rsi
incq %rsi
callq 0x60b0
movq 0x180(%rsp), %rdi
cmpq %r14, %rdi
je 0xb6db
movq 0x190(%rsp), %rsi
incq %rsi
callq 0x60b0
movq 0x1a0(%rsp), %rdi
leaq 0x1b0(%rsp), %rax
cmpq %rax, %rdi
je 0xb700
movq 0x1b0(%rsp), %rsi
incq %rsi
callq 0x60b0
movq 0x248(%rsp), %rdi
testq %rdi, %rdi
je 0xb712
callq 0xe05a
movq 0x140(%rsp), %rdi
leaq 0x150(%rsp), %rax
cmpq %rax, %rdi
je 0xb737
movq 0x150(%rsp), %rsi
incq %rsi
callq 0x60b0
movq 0xa0(%rsp), %rdi
leaq 0xb0(%rsp), %rax
cmpq %rax, %rdi
je 0xb75c
movq 0xb0(%rsp), %rsi
incq %rsi
callq 0x60b0
movq 0x1c0(%rsp), %rdi
leaq 0x1d0(%rsp), %rax
cmpq %rax, %rdi
je 0xb781
movq 0x1d0(%rsp), %rsi
incq %rsi
callq 0x60b0
movq 0x258(%rsp), %rdi
testq %rdi, %rdi
je 0xb793
callq 0xe05a
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0xb7af
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x60b0
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0xb7d1
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x60b0
movq 0x1e0(%rsp), %rdi
leaq 0x1f0(%rsp), %rax
cmpq %rax, %rdi
je 0xb7f6
movq 0x1f0(%rsp), %rsi
incq %rsi
callq 0x60b0
movq 0x268(%rsp), %rdi
testq %rdi, %rdi
je 0xb808
callq 0xe05a
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0xb824
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x60b0
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0xb83b
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x60b0
movq 0x360(%rsp), %rdi
leaq 0x370(%rsp), %rax
cmpq %rax, %rdi
je 0xb860
movq 0x370(%rsp), %rsi
incq %rsi
callq 0x60b0
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0xb885
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x60b0
movq 0x4a0(%rsp), %rcx
movq 0x4a8(%rsp), %rax
movq %rcx, 0x30(%rsp)
movq %rax, 0x38(%rsp)
testq %rax, %rax
je 0xb8b9
movq 0x376f5(%rip), %rcx     # 0x42fa0
cmpb $0x0, (%rcx)
je 0xb8b5
incl 0x8(%rax)
jmp 0xb8b9
lock
incl 0x8(%rax)
leaq 0x4b0(%rsp), %rsi
leaq 0x8(%rsp), %rdi
callq 0xdb00
movzbl 0x499(%rsp), %ecx
leaq 0x358(%rsp), %rdi
leaq 0x30(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x9c(%rsp), %r8
leaq 0x298(%rsp), %r9
callq 0x11e42
leaq 0x8(%rsp), %rdi
callq 0xd856
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0xb913
callq 0xe05a
leaq 0x8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x23a00(%rip), %rsi     # 0x2f322
leaq 0x239fd(%rip), %rdx     # 0x2f326
callq 0x8fb6
leaq 0x358(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xd514
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0xb95a
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x60b0
testq %rbx, %rbx
jne 0xbefe
leaq 0x8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x23a44(%rip), %rsi     # 0x2f3b6
leaq 0x23a47(%rip), %rdx     # 0x2f3c0
callq 0x8fb6
leaq 0x358(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xd514
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0xb9aa
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x60b0
testq %rbx, %rbx
jne 0xbf5c
movq 0x375be(%rip), %rdi     # 0x42f78
leaq 0x23a2c(%rip), %rsi     # 0x2f3ed
movl $0x12, %edx
callq 0x64f0
leaq 0x23a2e(%rip), %rsi     # 0x2f400
leaq 0x8(%rsp), %rdi
callq 0x723a
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
addq %rsi, %rdx
leaq 0x30(%rsp), %rdi
callq 0x2ce70
xorps %xmm0, %xmm0
leaq 0x320(%rsp), %rdx
movaps %xmm0, 0x10(%rdx)
movaps %xmm0, (%rdx)
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
movl $0x1, %ecx
callq 0xd8b4
movq 0x330(%rsp), %rax
testq %rax, %rax
je 0xba38
leaq 0x320(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0xba47
callq 0xe05a
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0xba5e
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x60b0
leaq 0x8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x2391d(%rip), %rsi     # 0x2f38a
leaq 0x23919(%rip), %rdx     # 0x2f38d
callq 0x8fb6
leaq 0x358(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xd514
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0xbaa5
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x60b0
testq %rbx, %rbx
je 0xbaf6
leaq 0x23976(%rip), %rsi     # 0x2f427
leaq 0x50(%rsp), %rdi
callq 0x894c
leaq 0x110(%rsp), %rdi
movq %rax, %rsi
callq 0xaa98
leaq 0x110(%rsp), %rdi
callq 0x7fdf
leaq 0x110(%rsp), %rdi
callq 0x904c
leaq 0x118(%rsp), %rdi
movzbl -0x8(%rdi), %esi
callq 0x9b94
leaq 0x8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x23836(%rip), %rsi     # 0x2f33b
leaq 0x23834(%rip), %rdx     # 0x2f340
callq 0x8fb6
leaq 0x358(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xd514
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0xbb3d
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x60b0
testq %rbx, %rbx
je 0xbd1b
leaq 0x8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x237e6(%rip), %rsi     # 0x2f33b
leaq 0x237e4(%rip), %rdx     # 0x2f340
callq 0x8fb6
leaq 0x358(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xda00
movq %rax, %rdi
callq 0xda78
leaq 0x70(%rsp), %rdi
movq %rax, %rsi
callq 0xdb00
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0xbb9f
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x60b0
movq 0x70(%rsp), %rbx
movq 0x78(%rsp), %rax
movq %rax, (%rsp)
cmpq %rax, %rbx
je 0xbd0c
leaq 0x8(%rsp), %rbp
leaq 0xa0(%rsp), %r15
movq 0x8(%rbx), %r12
testq %r12, %r12
je 0xbbea
movq (%rbx), %r13
xorl %r14d, %r14d
movsbl (%r13,%r14), %edi
callq 0x6110
movb %al, (%r13,%r14)
incq %r14
cmpq %r14, %r12
jne 0xbbd2
leaq 0x50(%rsp), %rdi
leaq 0x23831(%rip), %rsi     # 0x2f427
callq 0x894c
movq %rax, %r12
movq %rax, 0x8(%rsp)
leaq 0x10(%rsp), %rax
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movabsq $-0x8000000000000000, %r14 # imm = 0x8000000000000000
movq %r14, 0x20(%rsp)
movq %rbp, %rdi
callq 0xa402
movq %r12, 0x30(%rsp)
leaq 0x38(%rsp), %rax
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq %r14, 0x48(%rsp)
leaq 0x30(%rsp), %rdi
callq 0xa466
leaq 0xa8(%rsp), %r14
movq %rbp, %rdi
leaq 0x30(%rsp), %rsi
callq 0xa4be
testb %al, %al
jne 0xbcfe
movq %rbp, %rdi
callq 0x8b16
movq %rax, %r13
movq %rax, %rdi
leaq 0x236ec(%rip), %rsi     # 0x2f362
callq 0x894c
movq %rax, %r12
movq %r15, %rdi
movq %rbx, %rsi
callq 0xdd5c
movq %r12, %rdi
movq %r15, %rsi
callq 0xdb8a
movl %eax, %r12d
movq %r15, %rdi
callq 0x904c
movzbl 0xa0(%rsp), %esi
movq %r14, %rdi
callq 0x9b94
testb %r12b, %r12b
je 0xbcf1
leaq 0x100(%rsp), %rdi
movq %r13, %rsi
callq 0xaa98
leaq 0x100(%rsp), %r12
movq %r12, %rdi
callq 0x732c
movq %r12, %rdi
callq 0x904c
movzbl 0x100(%rsp), %esi
leaq 0x108(%rsp), %rdi
callq 0x9b94
movq %rbp, %rdi
callq 0x8cd2
jmp 0xbc4c
addq $0x20, %rbx
cmpq (%rsp), %rbx
jne 0xbbc3
leaq 0x70(%rsp), %rdi
callq 0xd856
leaq 0x18(%rsp), %rbp
leaq 0x8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x23660(%rip), %rsi     # 0x2f38a
leaq 0x2365c(%rip), %rdx     # 0x2f38d
callq 0x8fb6
leaq 0x358(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xd514
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0xbd62
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x60b0
testq %rbx, %rbx
jne 0xbdbd
leaq 0x236b9(%rip), %rsi     # 0x2f427
leaq 0x50(%rsp), %rdi
callq 0x894c
movq %rax, %rdi
xorl %esi, %esi
callq 0x8d2a
leaq 0xf0(%rsp), %rdi
movq %rax, %rsi
callq 0xaa98
leaq 0xf0(%rsp), %rdi
callq 0x732c
leaq 0xf0(%rsp), %rdi
callq 0x904c
leaq 0xf8(%rsp), %rdi
movzbl -0x8(%rdi), %esi
callq 0x9b94
leaq 0x8(%rsp), %rdi
movq %rbp, (%rdi)
leaq 0x235a3(%rip), %rsi     # 0x2f36f
leaq 0x235a2(%rip), %rdx     # 0x2f375
callq 0x8fb6
leaq 0x358(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xd514
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0xbe04
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x60b0
testq %rbx, %rbx
je 0xbe5d
leaq 0x2355f(%rip), %rsi     # 0x2f36f
leaq 0x50(%rsp), %rdi
callq 0x894c
movq %rax, %rdi
callq 0xdd88
leaq 0xe0(%rsp), %rdi
movq %rax, %rsi
callq 0xaa98
leaq 0xe0(%rsp), %rdi
callq 0x7bb6
leaq 0xe0(%rsp), %rdi
callq 0x904c
leaq 0xe8(%rsp), %rdi
movzbl -0x8(%rdi), %esi
callq 0x9b94
leaq 0x50(%rsp), %rdi
callq 0x904c
leaq 0x58(%rsp), %rdi
movzbl -0x8(%rdi), %esi
callq 0x9b94
leaq 0x400(%rsp), %rdi
callq 0x12cb2
leaq 0x3c0(%rsp), %rdi
callq 0x1461a
leaq 0x388(%rsp), %rdi
callq 0x146b8
leaq 0x368(%rsp), %rbx
movq %rbx, %rdi
callq 0xd856
movq -0x8(%rbx), %rdi
testq %rdi, %rdi
je 0xbeba
callq 0xe05a
leaq 0x418(%rsp), %rdi
callq 0xde02
xorl %ebx, %ebx
leaq 0x210(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xbeea
movq 0x210(%rsp), %rsi
incq %rsi
callq 0x60b0
movl %ebx, %eax
addq $0x538, %rsp            # imm = 0x538
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorps %xmm0, %xmm0
leaq 0x30(%rsp), %rdx
movaps %xmm0, (%rdx)
movq $0x0, 0x10(%rdx)
leaq 0x8(%rsp), %rdi
leaq 0x418(%rsp), %rsi
callq 0xd542
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x37044(%rip), %rdi     # 0x42f78
callq 0x64f0
movq %rax, %rdi
movl $0xa, %esi
callq 0x6320
leaq 0x8(%rsp), %rdi
callq 0x6618
leaq 0x30(%rsp), %rdi
callq 0xd856
jmp 0xbf87
movq 0x37015(%rip), %rdi     # 0x42f78
leaq 0x2346b(%rip), %rsi     # 0x2f3d5
movl $0x17, %edx
callq 0x64f0
movq 0x378c5(%rip), %rbx     # 0x43840
leaq 0x378ae(%rip), %rbp     # 0x43830
cmpq %rbp, %rbx
jne 0xbf8e
xorl %edi, %edi
callq 0x6340
movq 0x36fe3(%rip), %r14     # 0x42f78
leaq 0x22103(%rip), %r15     # 0x2e09f
leaq 0x8(%rsp), %r12
movq 0x40(%rbx), %rsi
movq 0x48(%rbx), %rdx
movq %r14, %rdi
callq 0x64f0
movq %rax, %r13
movl $0x2, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x64f0
movq 0x20(%rbx), %rsi
movq 0x28(%rbx), %rdx
movq %r13, %rdi
callq 0x64f0
movb $0xa, 0x8(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x64f0
movq %rbx, %rdi
callq 0x64e0
movq %rax, %rbx
cmpq %rbp, %rax
jne 0xbfa1
jmp 0xbf87
jmp 0xc54a
movq %rdx, %r14
movq %rax, %rbx
leaq 0xf0(%rsp), %rdi
jmp 0xc06c
movq %rdx, %r14
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0xc03a
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x60b0
jmp 0xc03a
movq %rdx, %r14
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0xd856
jmp 0xc5ae
movq %rdx, %r14
movq %rax, %rbx
leaq 0xe0(%rsp), %rdi
jmp 0xc06c
jmp 0xc571
movq %rdx, %r14
movq %rax, %rbx
leaq 0x110(%rsp), %rdi
callq 0x9b7a
jmp 0xc5a4
movq %rax, %rdi
callq 0x8f15
jmp 0xc552
jmp 0xc571
jmp 0xc552
jmp 0xc571
jmp 0xc552
jmp 0xc571
jmp 0xc552
jmp 0xc571
movq %rdx, %r14
movq %rax, %rbx
movq 0x330(%rsp), %rax
testq %rax, %rax
je 0xc0cb
leaq 0x320(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0xc0e4
callq 0xe05a
jmp 0xc0e4
jmp 0xc076
movq %rdx, %r14
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
jne 0xc118
jmp 0xc5ae
jmp 0xc54a
jmp 0xc104
jmp 0xc54a
movq %rdx, %r14
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0xc5ae
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x60b0
jmp 0xc5ae
jmp 0xc54a
movq %rdx, %r14
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0xd856
jmp 0xc147
movq %rdx, %r14
movq %rax, %rbx
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0xc5bb
callq 0xe05a
jmp 0xc5bb
movq %rdx, (%rsp)
movq %rax, %rbx
movq 0x2a0(%rsp), %rdi
cmpq %rbp, %rdi
je 0xc18c
movq 0x2b0(%rsp), %rsi
incq %rsi
callq 0x60b0
jmp 0xc18c
movq %rdx, (%rsp)
movq %rax, %rbx
movq 0x228(%rsp), %rdi
testq %rdi, %rdi
je 0xc1a7
callq 0xe05a
jmp 0xc1a7
movq %rdx, (%rsp)
movq %rax, %rbx
movq 0x278(%rsp), %rdi
cmpq %r15, %rdi
je 0xc1cd
movq 0x288(%rsp), %rsi
incq %rsi
callq 0x60b0
jmp 0xc1cd
movq %rdx, (%rsp)
movq %rax, %rbx
movq 0x160(%rsp), %rdi
cmpq %r12, %rdi
je 0xc1f5
movq 0x170(%rsp), %rsi
incq %rsi
callq 0x60b0
jmp 0xc1f5
jmp 0xc1ee
movq %rdx, (%rsp)
movq %rax, %rbx
movq 0x2c0(%rsp), %rdi
cmpq %r13, %rdi
je 0xc21b
movq 0x2d0(%rsp), %rsi
incq %rsi
callq 0x60b0
jmp 0xc21b
movq %rdx, (%rsp)
movq %rax, %rbx
movq 0x238(%rsp), %rdi
testq %rdi, %rdi
je 0xc22d
callq 0xe05a
movq 0x120(%rsp), %rdi
leaq 0x130(%rsp), %rax
cmpq %rax, %rdi
je 0xc252
movq 0x130(%rsp), %rsi
incq %rsi
callq 0x60b0
movq 0x180(%rsp), %rdi
cmpq %r14, %rdi
je 0xc28c
movq 0x190(%rsp), %rsi
incq %rsi
callq 0x60b0
jmp 0xc28c
movq %rdx, (%rsp)
movq %rax, %rbx
jmp 0xc22d
movq %rdx, (%rsp)
movq %rax, %rbx
jmp 0xc252
jmp 0xc285
movq %rdx, (%rsp)
movq %rax, %rbx
movq 0x1a0(%rsp), %rdi
leaq 0x1b0(%rsp), %rax
cmpq %rax, %rdi
je 0xc2b1
movq 0x1b0(%rsp), %rsi
incq %rsi
callq 0x60b0
movq 0x248(%rsp), %rdi
testq %rdi, %rdi
je 0xc2c3
callq 0xe05a
movq 0x140(%rsp), %rdi
leaq 0x150(%rsp), %rax
cmpq %rax, %rdi
je 0xc2e8
movq 0x150(%rsp), %rsi
incq %rsi
callq 0x60b0
movq 0xa0(%rsp), %rdi
leaq 0xb0(%rsp), %rax
cmpq %rax, %rdi
je 0xc30d
movq 0xb0(%rsp), %rsi
incq %rsi
callq 0x60b0
movq 0x1c0(%rsp), %rdi
leaq 0x1d0(%rsp), %rax
cmpq %rax, %rdi
je 0xc332
movq 0x1d0(%rsp), %rsi
incq %rsi
callq 0x60b0
movq 0x258(%rsp), %rdi
testq %rdi, %rdi
je 0xc344
callq 0xe05a
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0xc360
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x60b0
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0xc382
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x60b0
movq 0x1e0(%rsp), %rdi
leaq 0x1f0(%rsp), %rax
cmpq %rax, %rdi
je 0xc3a7
movq 0x1f0(%rsp), %rsi
incq %rsi
callq 0x60b0
movq 0x268(%rsp), %rdi
testq %rdi, %rdi
je 0xc3b9
callq 0xe05a
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0xc3d5
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x60b0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0xc3f1
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x60b0
movq 0x360(%rsp), %rdi
leaq 0x370(%rsp), %rax
cmpq %rax, %rdi
je 0xc416
movq 0x370(%rsp), %rsi
incq %rsi
callq 0x60b0
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0xc43b
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x60b0
movq (%rsp), %r14
jmp 0xc5bb
movq %rdx, (%rsp)
movq %rax, %rbx
jmp 0xc2b1
movq %rdx, (%rsp)
movq %rax, %rbx
jmp 0xc2c3
movq %rdx, (%rsp)
movq %rax, %rbx
jmp 0xc2e8
jmp 0xc46a
movq %rdx, (%rsp)
movq %rax, %rbx
jmp 0xc30d
movq %rdx, (%rsp)
movq %rax, %rbx
jmp 0xc332
movq %rdx, (%rsp)
movq %rax, %rbx
jmp 0xc344
movq %rdx, (%rsp)
movq %rax, %rbx
jmp 0xc360
jmp 0xc49c
movq %rdx, (%rsp)
movq %rax, %rbx
jmp 0xc382
movq %rdx, (%rsp)
movq %rax, %rbx
jmp 0xc3a7
movq %rdx, (%rsp)
movq %rax, %rbx
jmp 0xc3b9
movq %rdx, (%rsp)
movq %rax, %rbx
jmp 0xc3d5
movq %rdx, (%rsp)
movq %rax, %rbx
jmp 0xc3f1
movq %rdx, (%rsp)
movq %rax, %rbx
jmp 0xc43b
movq %rdx, %r12
movq %rax, %rbx
movq 0x2e0(%rsp), %rdi
cmpq %r15, %rdi
je 0xc50f
movq 0x2f0(%rsp), %rsi
incq %rsi
callq 0x60b0
jmp 0xc50f
movq %rdx, %r12
movq %rax, %rbx
movq 0x300(%rsp), %rdi
cmpq %r14, %rdi
je 0xc52c
movq 0x310(%rsp), %rsi
incq %rsi
callq 0x60b0
movq %r12, %r14
jmp 0xc5c8
movq %rdx, %r14
movq %rax, %rbx
jmp 0xc5c8
movq %rax, %rbx
movq %rbx, %rdi
callq 0x6310
movq %rdx, %r14
movq %rax, %rbx
jmp 0xc5ae
movq %rdx, %r14
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0xc5a4
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x60b0
jmp 0xc5a4
movq %rdx, %r14
movq %rax, %rbx
jmp 0xc5a4
jmp 0xc594
movq %rdx, %r14
movq %rax, %rbx
leaq 0x100(%rsp), %rdi
callq 0x9b7a
jmp 0xc59a
jmp 0xc594
jmp 0xc594
movq %rdx, %r14
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0xd856
leaq 0x50(%rsp), %rdi
callq 0x9b7a
leaq 0x358(%rsp), %rdi
callq 0xddc6
leaq 0x418(%rsp), %rdi
callq 0xde02
cmpl $0x1, %r14d
jne 0xc656
movq %rbx, %rdi
callq 0x6050
movq 0x369ef(%rip), %rdi     # 0x42fd0
leaq 0x22e49(%rip), %rsi     # 0x2f431
movl $0x35, %edx
callq 0x64f0
movq 0x369d7(%rip), %rdi     # 0x42fd0
leaq 0x22e67(%rip), %rsi     # 0x2f467
movl $0x4, %edx
callq 0x64f0
movq 0x200(%rsp), %rsi
movq 0x208(%rsp), %rdx
movq 0x369af(%rip), %rdi     # 0x42fd0
callq 0x64f0
leaq 0x22e3f(%rip), %rsi     # 0x2f46c
movl $0xd, %edx
movq %rax, %rdi
callq 0x64f0
movl $0x1, %ebx
callq 0x63e0
jmp 0xbec9
movq %rax, %rbx
jmp 0xc656
movq %rax, %rbx
callq 0x63e0
leaq 0x210(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc542
movq 0x210(%rsp), %rsi
incq %rsi
callq 0x60b0
jmp 0xc542
jmp 0xc076
nop