// File: /workspace/github_c_makefile_star2_O2/coyove[P]chann/./src/main.cpp
// Function: main
int main(int argc, char *argv[]){
    string conf_path = "./chann.conf";
    log_file = stdout;

    for (int i = 0; i < argc; ++i){
        if((strcmp(argv[i], "--load") == 0 || strcmp(argv[i], "-l") == 0)){
            conf_path = string(argv[++i]);
            continue;
        }      
    }

    configs.global().load(conf_path);
    logLog("Load configuration: %s", conf_path.c_str());

    string db_path = configs.global().get("database"); 

    int rc = unqlite_open(&pDb, db_path.c_str(), UNQLITE_OPEN_CREATE + UNQLITE_OPEN_MMAP);
    if (rc != UNQLITE_OK) database_fatal("Out of memory");
    logLog("Load database: %s", db_path.c_str());

    unqlite_int64 nBytes = 4;
    int dummy = 0;

    if (unqlite_kv_fetch(pDb, "global_counter", -1, &dummy, &nBytes) != UNQLITE_OK) unq_reset(pDb);

    //generate a random admin password
    admin_password  = cc_random_chars(10);
    admin_cookie    = admin_password;
    configs.global().set("security::admin::cookie", admin_password);

    for(auto &x : cc_split(configs.global().get("security::assist::list"), ","))
        assist_cookie[x] = cc_random_chars(10);

    templates.use_lang(configs.global().get("lang"));
    logLog("Load %d templates", templates.load_templates());

    string homepage = configs.global().get<bool>("welcome") ? "/page/1" : "/";
    templates.add_template("site_header").var("SITE_TITLE", configs.global().get("title")).var("HOMEPAGE", homepage);
    templates.add_template("single_thread_header").var("HOMEPAGE", homepage);
    templates.add_template("info_page").var("HOMEPAGE", homepage);
    templates.add_template("site_footer").var("BUILD_DATE", to_string(BUILD_DATE));


    bool use_captcha = configs.global().get<bool>("security::captcha");
    #ifndef GOOGLE_RECAPTCHA
    use_captcha = false;
    #endif

    templates.add_template("post_form").toggle("use_captcha", use_captcha) \
        .var("LANG", configs.global().get("lang")).var("PUBLIC", configs.global().get("security::captcha::public_key"));

    cc_load_file_to_set(configs.global().get("file::ban::ip_based"), IPBanList);
    cc_load_file_to_set(configs.global().get("file::ban::id_based"), IDBanList);
    logLog("Load banlist with %d/%d records", IPBanList.size(), IDBanList.size());    

    server = mg_create_server(NULL, event_handle);
    mg_set_option(server, "listening_port", to_string(configs.global().get<int>("listen")).c_str());
    logLog("Start listening on port %s", mg_get_option(server, "listening_port"));

    fflush(log_file);

    time(&gStartupTime);

    signal(SIGTERM, signal_handle);
    signal(SIGINT, signal_handle);

    route::init();
    route::add("/thread/:no",               route::THREAD);
    route::add("/daerht/:no",               route::DAERHT);
    route::add("/page/:page",               route::TIMELINE);
    route::add("/gallery/:page",            route::GALLERY);
    route::add("/list",                     route::LINEAR);
    route::add("/list/ip/:ip",              route::LINEAR_IP);
    route::add("/list/id/:id",              route::LINEAR_ID);
    route::add("/admin",                    route::ADMIN_PANEL);
    route::add("/del/:no",                  route::SELF_DELETE);
    route::add("/api/:no",                  route::API_THREAD);
    route::add("/images/:path",             route::IMAGE);
    route::add("/success/:cookie/to/:no",   route::SUCCESS);
    route::add("/admin_action",             route::ADMIN_ACTION);
    route::add("/post_thread",              route::POST_THREAD);
    route::add("/post_reply/:no",           route::POST_REPLY);

    #ifdef GOOGLE_RECAPTCHA
    curl_global_init(CURL_GLOBAL_ALL);
    #endif

    while (s_signal_received == 0) {
        mg_poll_server(server, 1000);
    }

    #ifdef GOOGLE_RECAPTCHA
    curl_global_cleanup();
    #endif

    mg_destroy_server(&server);
    unqlite_close(pDb);

    return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x368, %rsp            # imm = 0x368
movq %rsi, %rbx
movl %edi, %ebp
leaq 0x4e49a(%rip), %rsi     # 0x619f9
leaq 0x100(%rsp), %rdi
leaq 0xe0(%rsp), %r15
movq %r15, %rdx
callq 0xcb10
movq 0x73a2a(%rip), %rax     # 0x86fa8
movq (%rax), %rax
movq %rax, 0x74710(%rip)     # 0x87c98
xorl %r13d, %r13d
cmpl %ebp, %r13d
jge 0x135f0
movslq %r13d, %r12
movq (%rbx,%r12,8), %r14
movq %r14, %rdi
leaq 0x4e465(%rip), %rsi     # 0x61a06
callq 0xc970
testl %eax, %eax
je 0x135be
cmpb $0x2d, (%r14)
jne 0x135eb
cmpb $0x6c, 0x1(%r14)
jne 0x135eb
cmpb $0x0, 0x2(%r14)
jne 0x135eb
movq 0x8(%rbx,%r12,8), %rsi
movq %r15, %rdi
leaq 0x58(%rsp), %rdx
callq 0xcb10
incl %r13d
leaq 0x100(%rsp), %rdi
movq %r15, %rsi
callq 0xc5f0
movq %r15, %rdi
callq 0xcd88
incl %r13d
jmp 0x1358b
leaq 0x74579(%rip), %rdi     # 0x87b70
callq 0x1008c
movq %rax, %rbx
leaq 0x348(%rsp), %rdi
leaq 0x100(%rsp), %rsi
callq 0xc640
leaq 0x348(%rsp), %rsi
movq %rbx, %rdi
callq 0x155d8
leaq 0x348(%rsp), %rdi
callq 0xcd88
movq 0x100(%rsp), %rsi
leaq 0x4e3cd(%rip), %rdi     # 0x61a0d
xorl %eax, %eax
callq 0xeb8f
leaq 0x74522(%rip), %rdi     # 0x87b70
callq 0x1008c
movq %rax, %rbx
leaq 0x50947(%rip), %rsi     # 0x63fa4
leaq 0x58(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0xcb10
leaq 0x58(%rsp), %rsi
movq %rbx, %rdi
callq 0x104e4
leaq 0xe0(%rsp), %rdi
movq %rax, %rsi
callq 0xc640
leaq 0x58(%rsp), %rdi
callq 0xcd88
movq 0xe0(%rsp), %rsi
leaq 0x74576(%rip), %rdi     # 0x87c18
movl $0x104, %edx            # imm = 0x104
callq 0x272fc
testl %eax, %eax
je 0x136bc
leaq 0x4e36d(%rip), %rdi     # 0x61a24
callq 0xec91
movq 0xe0(%rsp), %rsi
leaq 0x4e367(%rip), %rdi     # 0x61a32
xorl %eax, %eax
callq 0xeb8f
leaq 0x340(%rsp), %r8
movq $0x4, (%r8)
leaq 0xbc(%rsp), %rcx
andl $0x0, (%rcx)
movq 0x74525(%rip), %rdi     # 0x87c18
leaq 0x4d938(%rip), %rsi     # 0x61032
pushq $-0x1
popq %rdx
callq 0x2aa1d
testl %eax, %eax
je 0x13712
movq 0x7450b(%rip), %rdi     # 0x87c18
callq 0xd3b1
leaq 0x58(%rsp), %rdi
pushq $0xa
popq %rsi
callq 0xea19
leaq 0x74502(%rip), %rbx     # 0x87c28
leaq 0x58(%rsp), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0xc5f0
movq %r14, %rdi
callq 0xcd88
leaq 0x74503(%rip), %rdi     # 0x87c48
movq %rbx, %rsi
callq 0xcc70
leaq 0x7441c(%rip), %rdi     # 0x87b70
callq 0x1008c
movq %rax, %rbx
leaq 0x4e2e1(%rip), %rsi     # 0x61a44
leaq 0x58(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0xcb10
leaq 0x744af(%rip), %rdx     # 0x87c28
leaq 0x58(%rsp), %rsi
movq %rbx, %rdi
callq 0x15b3a
leaq 0x58(%rsp), %rdi
callq 0xcd88
leaq 0x743d9(%rip), %rdi     # 0x87b70
callq 0x1008c
movq %rax, %rbx
leaq 0x4e2b6(%rip), %rsi     # 0x61a5c
leaq 0x58(%rsp), %rdi
leaq 0x78(%rsp), %rdx
callq 0xcb10
leaq 0x58(%rsp), %rsi
movq %rbx, %rdi
callq 0x104e4
movq %rax, %rbx
leaq 0x4e153(%rip), %rsi     # 0x6191f
leaq 0x10(%rsp), %rdi
leaq 0x98(%rsp), %rdx
callq 0xcb10
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rdx
movq %rbx, %rsi
callq 0xe782
leaq 0x10(%rsp), %rdi
callq 0xcd88
leaq 0x58(%rsp), %rbx
movq %rbx, %rdi
callq 0xcd88
movq 0x30(%rsp), %r14
movq 0x38(%rsp), %r12
pushq $0xa
popq %rbp
leaq 0x7444d(%rip), %r15     # 0x87c68
cmpq %r12, %r14
je 0x1384e
movq %rbx, %rdi
movl %ebp, %esi
callq 0xea19
movq %r15, %rdi
movq %r14, %rsi
callq 0x14e40
movq %rax, %rdi
movq %rbx, %rsi
callq 0xc5f0
movq %rbx, %rdi
callq 0xcd88
addq $0x20, %r14
jmp 0x1381b
leaq 0x30(%rsp), %rdi
callq 0x10156
leaq 0x74311(%rip), %rdi     # 0x87b70
callq 0x1008c
movq %rax, %rbx
leaq 0x4e205(%rip), %rsi     # 0x61a73
leaq 0x58(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0xcb10
leaq 0x58(%rsp), %rsi
movq %rbx, %rdi
callq 0x104e4
leaq 0x320(%rsp), %rdi
movq %rax, %rsi
callq 0xc640
leaq 0x744d7(%rip), %rdi     # 0x87d78
leaq 0x320(%rsp), %rsi
callq 0xcc70
leaq 0x320(%rsp), %rdi
callq 0xcd88
leaq 0x58(%rsp), %rdi
callq 0xcd88
leaq 0x7447c(%rip), %rdi     # 0x87d48
callq 0x15b60
leaq 0x4e1a0(%rip), %rdi     # 0x61a78
movl %eax, %esi
xorl %eax, %eax
callq 0xeb8f
leaq 0x74288(%rip), %rdi     # 0x87b70
callq 0x1008c
movq %rax, %rbx
leaq 0x4e488(%rip), %rsi     # 0x61d7f
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0xcb10
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x14efa
leaq 0x4e170(%rip), %rcx     # 0x61a8a
leaq 0x55c6b(%rip), %rsi     # 0x6958c
testb %al, %al
cmovneq %rcx, %rsi
leaq 0x58(%rsp), %rdi
leaq 0x78(%rsp), %rdx
callq 0xcb10
leaq 0x10(%rsp), %rdi
callq 0xcd88
leaq 0x4e026(%rip), %rsi     # 0x6196d
leaq 0x10(%rsp), %rdi
leaq 0xc0(%rsp), %rdx
callq 0xcb10
leaq 0x743e8(%rip), %rdi     # 0x87d48
leaq 0x10(%rsp), %rsi
callq 0x15d18
movq %rax, %rbx
leaq 0x4e11e(%rip), %rsi     # 0x61a92
leaq 0x30(%rsp), %rdi
leaq 0x120(%rsp), %rdx
callq 0xcb10
leaq 0x741e3(%rip), %rdi     # 0x87b70
callq 0x1008c
movq %rax, %r14
leaq 0x4e101(%rip), %rsi     # 0x61a9d
leaq 0x78(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0xcb10
leaq 0x78(%rsp), %rsi
movq %r14, %rdi
callq 0x104e4
leaq 0x30(%rsp), %rsi
movq %rbx, %rdi
movq %rax, %rdx
callq 0x1505c
movq %rax, %rbx
leaq 0x4e0d1(%rip), %rsi     # 0x61aa3
leaq 0x98(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0xcb10
leaq 0x98(%rsp), %rsi
leaq 0x58(%rsp), %rdx
movq %rbx, %rdi
callq 0x1505c
leaq 0x98(%rsp), %rdi
callq 0xcd88
leaq 0x78(%rsp), %rdi
callq 0xcd88
leaq 0x30(%rsp), %rdi
callq 0xcd88
leaq 0x10(%rsp), %rdi
callq 0xcd88
leaq 0x4e081(%rip), %rsi     # 0x61aac
leaq 0x10(%rsp), %rdi
leaq 0x78(%rsp), %rdx
callq 0xcb10
leaq 0x74307(%rip), %rdi     # 0x87d48
leaq 0x10(%rsp), %rsi
callq 0x15d18
movq %rax, %rbx
leaq 0x4e04e(%rip), %rsi     # 0x61aa3
leaq 0x30(%rsp), %rdi
leaq 0x98(%rsp), %rdx
callq 0xcb10
leaq 0x30(%rsp), %rsi
leaq 0x58(%rsp), %rdx
movq %rbx, %rdi
callq 0x1505c
leaq 0x30(%rsp), %rdi
callq 0xcd88
leaq 0x10(%rsp), %rdi
callq 0xcd88
leaq 0x4e02d(%rip), %rsi     # 0x61ac1
leaq 0x10(%rsp), %rdi
leaq 0x78(%rsp), %rdx
callq 0xcb10
leaq 0x7429e(%rip), %rdi     # 0x87d48
leaq 0x10(%rsp), %rsi
callq 0x15d18
movq %rax, %rbx
leaq 0x4dfe5(%rip), %rsi     # 0x61aa3
leaq 0x30(%rsp), %rdi
leaq 0x98(%rsp), %rdx
callq 0xcb10
leaq 0x30(%rsp), %rsi
leaq 0x58(%rsp), %rdx
movq %rbx, %rdi
callq 0x1505c
leaq 0x30(%rsp), %rdi
callq 0xcd88
leaq 0x10(%rsp), %rdi
callq 0xcd88
leaq 0x4def0(%rip), %rsi     # 0x619ed
leaq 0x10(%rsp), %rdi
leaq 0x98(%rsp), %rdx
callq 0xcb10
leaq 0x74232(%rip), %rdi     # 0x87d48
leaq 0x10(%rsp), %rsi
callq 0x15d18
movq %rax, %rbx
leaq 0x4dfa1(%rip), %rsi     # 0x61acb
leaq 0x30(%rsp), %rdi
leaq 0xc0(%rsp), %rdx
callq 0xcb10
leaq 0x78(%rsp), %rdi
movabsq $0x3a65a0d39d, %rsi     # imm = 0x3A65A0D39D
callq 0x15e84
leaq 0x30(%rsp), %rsi
leaq 0x78(%rsp), %rdx
movq %rbx, %rdi
callq 0x1505c
leaq 0x78(%rsp), %rdi
callq 0xcd88
leaq 0x30(%rsp), %rdi
callq 0xcd88
leaq 0x10(%rsp), %rdi
callq 0xcd88
leaq 0x73fe9(%rip), %rdi     # 0x87b70
callq 0x1008c
movq %rax, %rbx
leaq 0x4df40(%rip), %rsi     # 0x61ad6
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0xcb10
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x14efa
leaq 0x10(%rsp), %rdi
callq 0xcd88
leaq 0x4df25(%rip), %rsi     # 0x61ae8
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0xcb10
leaq 0x7416f(%rip), %rdi     # 0x87d48
leaq 0x10(%rsp), %rsi
callq 0x15d18
movq %rax, %rbx
leaq 0x4df05(%rip), %rsi     # 0x61af2
leaq 0x30(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0xcb10
leaq 0x1c8(%rbx), %rdi
leaq 0x30(%rsp), %rsi
callq 0x189cc
movb $0x0, (%rax)
leaq 0x4dee7(%rip), %rsi     # 0x61afe
leaq 0x78(%rsp), %rdi
leaq 0x57(%rsp), %rdx
callq 0xcb10
leaq 0x73f43(%rip), %rdi     # 0x87b70
callq 0x1008c
movq %rax, %r14
leaq 0x4de37(%rip), %rsi     # 0x61a73
leaq 0x98(%rsp), %rdi
leaq 0x56(%rsp), %rdx
callq 0xcb10
leaq 0x98(%rsp), %rsi
movq %r14, %rdi
callq 0x104e4
leaq 0x78(%rsp), %rsi
movq %rbx, %rdi
movq %rax, %rdx
callq 0x1505c
movq %rax, %rbx
leaq 0x4de8b(%rip), %rsi     # 0x61b03
leaq 0xc0(%rsp), %rdi
leaq 0x55(%rsp), %rdx
callq 0xcb10
leaq 0x73edf(%rip), %rdi     # 0x87b70
callq 0x1008c
movq %rax, %r14
leaq 0x4de6a(%rip), %rsi     # 0x61b0a
leaq 0x120(%rsp), %rdi
leaq 0x54(%rsp), %rdx
callq 0xcb10
leaq 0x120(%rsp), %rsi
movq %r14, %rdi
callq 0x104e4
leaq 0xc0(%rsp), %rsi
movq %rbx, %rdi
movq %rax, %rdx
callq 0x1505c
leaq 0x120(%rsp), %rdi
callq 0xcd88
leaq 0xc0(%rsp), %rdi
callq 0xcd88
leaq 0x98(%rsp), %rdi
callq 0xcd88
leaq 0x78(%rsp), %rdi
callq 0xcd88
leaq 0x30(%rsp), %rdi
callq 0xcd88
leaq 0x10(%rsp), %rdi
callq 0xcd88
leaq 0x73e4f(%rip), %rdi     # 0x87b70
callq 0x1008c
movq %rax, %rbx
leaq 0x4db98(%rip), %rsi     # 0x618c8
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0xcb10
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x104e4
leaq 0x73f85(%rip), %rsi     # 0x87cd8
movq %rax, %rdi
callq 0xfed7
leaq 0x10(%rsp), %rdi
callq 0xcd88
leaq 0x73e04(%rip), %rdi     # 0x87b70
callq 0x1008c
movq %rax, %rbx
leaq 0x4db61(%rip), %rsi     # 0x618dc
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0xcb10
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x104e4
leaq 0x73f02(%rip), %rsi     # 0x87ca0
movq %rax, %rdi
callq 0xfed7
leaq 0x10(%rsp), %rdi
callq 0xcd88
movq 0x73f39(%rip), %rsi     # 0x87cf0
movq 0x73efa(%rip), %rdx     # 0x87cb8
leaq 0x4dd63(%rip), %rdi     # 0x61b28
xorl %eax, %eax
callq 0xeb8f
leaq 0x781(%rip), %rsi       # 0x14554
xorl %edi, %edi
callq 0x5cb56
movq %rax, %rbx
movq %rax, 0x73f5c(%rip)     # 0x87d40
leaq 0x73d85(%rip), %rdi     # 0x87b70
callq 0x1008c
movq %rax, %r14
leaq 0x4dd5d(%rip), %rsi     # 0x61b57
leaq 0x30(%rsp), %rdi
leaq 0x78(%rsp), %rdx
callq 0xcb10
leaq 0x30(%rsp), %rsi
movq %r14, %rdi
callq 0x100e4
leaq 0x10(%rsp), %rdi
movl %eax, %esi
callq 0x10273
movq 0x10(%rsp), %rdx
leaq 0x4dd1a(%rip), %rsi     # 0x61b48
movq %rbx, %rdi
callq 0x5c5e2
leaq 0x10(%rsp), %rdi
callq 0xcd88
leaq 0x30(%rsp), %rdi
callq 0xcd88
movq 0x73eef(%rip), %rdi     # 0x87d40
leaq 0x4dcf0(%rip), %rsi     # 0x61b48
callq 0x5cb20
leaq 0x4dcfa(%rip), %rdi     # 0x61b5e
movq %rax, %rsi
xorl %eax, %eax
callq 0xeb8f
movq 0x73e23(%rip), %rdi     # 0x87c98
callq 0xc5c0
leaq 0x73d9f(%rip), %rdi     # 0x87c20
callq 0xc850
leaq 0xf0a(%rip), %rbx       # 0x14d97
pushq $0xf
popq %rdi
movq %rbx, %rsi
callq 0xc3f0
pushq $0x2
popq %rdi
movq %rbx, %rsi
callq 0xc3f0
callq 0x113e0
leaq 0x4dcca(%rip), %rsi     # 0x61b79
leaq 0x300(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0xcb10
leaq 0x300(%rsp), %rdi
pushq $0x1
popq %rsi
callq 0x11418
leaq 0x300(%rsp), %rdi
callq 0xcd88
leaq 0x4dca0(%rip), %rsi     # 0x61b85
leaq 0x2e0(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0xcb10
leaq 0x2e0(%rsp), %rdi
pushq $0x2
popq %rsi
callq 0x11418
leaq 0x2e0(%rsp), %rdi
callq 0xcd88
leaq 0x4dc76(%rip), %rsi     # 0x61b91
leaq 0x2c0(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0xcb10
leaq 0x2c0(%rsp), %rdi
pushq $0x64
popq %rsi
callq 0x11418
leaq 0x2c0(%rsp), %rdi
callq 0xcd88
leaq 0x4dc4c(%rip), %rsi     # 0x61b9d
leaq 0x2a0(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0xcb10
leaq 0x2a0(%rsp), %rdi
pushq $0x65
popq %rsi
callq 0x11418
leaq 0x2a0(%rsp), %rdi
callq 0xcd88
leaq 0x4dc25(%rip), %rsi     # 0x61bac
leaq 0x280(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0xcb10
leaq 0x280(%rsp), %rdi
pushq $0x66
popq %rsi
callq 0x11418
leaq 0x280(%rsp), %rdi
callq 0xcd88
leaq 0x4dbf5(%rip), %rsi     # 0x61bb2
leaq 0x260(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0xcb10
leaq 0x260(%rsp), %rdi
pushq $0x67
popq %rsi
callq 0x11418
leaq 0x260(%rsp), %rdi
callq 0xcd88
leaq 0x4dbcc(%rip), %rsi     # 0x61bbf
leaq 0x240(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0xcb10
leaq 0x240(%rsp), %rdi
pushq $0x68
popq %rsi
callq 0x11418
leaq 0x240(%rsp), %rdi
callq 0xcd88
leaq 0x4dba3(%rip), %rsi     # 0x61bcc
leaq 0x220(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0xcb10
leaq 0x220(%rsp), %rdi
movl $0xc8, %esi
callq 0x11418
leaq 0x220(%rsp), %rdi
callq 0xcd88
leaq 0x4db72(%rip), %rsi     # 0x61bd3
leaq 0x200(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0xcb10
leaq 0x200(%rsp), %rdi
movl $0x1f5, %esi            # imm = 0x1F5
callq 0x11418
leaq 0x200(%rsp), %rdi
callq 0xcd88
leaq 0x4db43(%rip), %rsi     # 0x61bdc
leaq 0x1e0(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0xcb10
leaq 0x1e0(%rsp), %rdi
movl $0x1f6, %esi            # imm = 0x1F6
callq 0x11418
leaq 0x1e0(%rsp), %rdi
callq 0xcd88
leaq 0x4db14(%rip), %rsi     # 0x61be5
leaq 0x1c0(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0xcb10
leaq 0x1c0(%rsp), %rdi
pushq $0x3
popq %rsi
callq 0x11418
leaq 0x1c0(%rsp), %rdi
callq 0xcd88
leaq 0x4daec(%rip), %rsi     # 0x61bf3
leaq 0x1a0(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0xcb10
leaq 0x1a0(%rsp), %rdi
pushq $0x4
popq %rsi
callq 0x11418
leaq 0x1a0(%rsp), %rdi
callq 0xcd88
leaq 0x4dace(%rip), %rsi     # 0x61c0b
leaq 0x180(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0xcb10
leaq 0x180(%rsp), %rdi
movl $0x1f7, %esi            # imm = 0x1F7
callq 0x11418
leaq 0x180(%rsp), %rdi
callq 0xcd88
leaq 0x4daa4(%rip), %rsi     # 0x61c19
leaq 0x160(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0xcb10
leaq 0x160(%rsp), %rdi
movl $0x1f8, %esi            # imm = 0x1F8
callq 0x11418
leaq 0x160(%rsp), %rdi
callq 0xcd88
leaq 0x4da79(%rip), %rsi     # 0x61c26
leaq 0x140(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0xcb10
leaq 0x140(%rsp), %rdi
movl $0x1f9, %esi            # imm = 0x1F9
callq 0x11418
leaq 0x140(%rsp), %rdi
callq 0xcd88
cmpl $0x0, 0x73bb3(%rip)     # 0x87d98
jne 0x141fa
movq 0x73b52(%rip), %rdi     # 0x87d40
movl $0x3e8, %esi            # imm = 0x3E8
callq 0x5c087
jmp 0x141de
leaq 0x73b3f(%rip), %rdi     # 0x87d40
callq 0x5c091
movq 0x73a0b(%rip), %rdi     # 0x87c18
callq 0x27f67
leaq 0x58(%rsp), %rdi
callq 0xcd88
leaq 0xe0(%rsp), %rdi
callq 0xcd88
leaq 0x100(%rsp), %rdi
callq 0xcd88
xorl %eax, %eax
addq $0x368, %rsp            # imm = 0x368
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x140(%rsp), %rdi
jmp 0x144e4
jmp 0x14507
movq %rax, %rbx
leaq 0x160(%rsp), %rdi
jmp 0x144e4
jmp 0x14507
movq %rax, %rbx
leaq 0x180(%rsp), %rdi
jmp 0x144e4
jmp 0x14507
movq %rax, %rbx
leaq 0x1a0(%rsp), %rdi
jmp 0x144e4
jmp 0x14507
movq %rax, %rbx
leaq 0x1c0(%rsp), %rdi
jmp 0x144e4
jmp 0x14507
movq %rax, %rbx
leaq 0x1e0(%rsp), %rdi
jmp 0x144e4
jmp 0x14507
movq %rax, %rbx
leaq 0x200(%rsp), %rdi
jmp 0x144e4
jmp 0x14507
movq %rax, %rbx
leaq 0x220(%rsp), %rdi
jmp 0x144e4
jmp 0x14507
movq %rax, %rbx
leaq 0x240(%rsp), %rdi
jmp 0x144e4
jmp 0x14507
movq %rax, %rbx
leaq 0x260(%rsp), %rdi
jmp 0x144e4
jmp 0x14507
movq %rax, %rbx
leaq 0x280(%rsp), %rdi
jmp 0x144e4
jmp 0x14507
movq %rax, %rbx
leaq 0x2a0(%rsp), %rdi
jmp 0x144e4
jmp 0x14507
movq %rax, %rbx
leaq 0x2c0(%rsp), %rdi
jmp 0x144e4
jmp 0x14507
movq %rax, %rbx
leaq 0x2e0(%rsp), %rdi
jmp 0x144e4
jmp 0x14507
movq %rax, %rbx
leaq 0x300(%rsp), %rdi
jmp 0x144e4
jmp 0x14507
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0xcd88
jmp 0x14489
jmp 0x14507
jmp 0x14507
jmp 0x14507
movq %rax, %rbx
jmp 0x144a7
jmp 0x144b6
jmp 0x144c8
jmp 0x14417
jmp 0x14417
jmp 0x14492
jmp 0x14492
jmp 0x14507
jmp 0x14492
jmp 0x14507
jmp 0x144c8
jmp 0x14417
jmp 0x14492
jmp 0x14492
jmp 0x14507
jmp 0x14417
jmp 0x14492
jmp 0x14492
jmp 0x14507
jmp 0x14417
jmp 0x14492
jmp 0x14492
jmp 0x14507
jmp 0x144b6
jmp 0x144c8
movq %rax, %rbx
jmp 0x144d5
jmp 0x14492
jmp 0x14492
jmp 0x14507
jmp 0x1442a
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
jmp 0x1450f
jmp 0x144fb
movq %rax, %rbx
leaq 0x320(%rsp), %rdi
jmp 0x144e4
jmp 0x144fb
jmp 0x14492
jmp 0x14507
jmp 0x14507
jmp 0x144fb
jmp 0x14507
jmp 0x144fb
jmp 0x144fb
jmp 0x14502
movq %rax, %rbx
leaq 0x348(%rsp), %rdi
jmp 0x1453a
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
jmp 0x144e4
jmp 0x14492
movq %rax, %rbx
jmp 0x144df
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
callq 0xcd88
leaq 0xc0(%rsp), %rdi
callq 0xcd88
jmp 0x144b9
movq %rax, %rbx
leaq 0x98(%rsp), %rdi
callq 0xcd88
jmp 0x144cb
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
callq 0xcd88
leaq 0x30(%rsp), %rdi
callq 0xcd88
leaq 0x10(%rsp), %rdi
callq 0xcd88
jmp 0x1450a
jmp 0x14507
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
jmp 0x1453a
jmp 0x14502
jmp 0x144fb
movq %rax, %rbx
jmp 0x14532
jmp 0x14507
movq %rax, %rbx
jmp 0x1453f
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0xcd88
jmp 0x14532
movq %rax, %rbx
jmp 0x14528
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0xcd88
leaq 0x30(%rsp), %rdi
callq 0x10156
leaq 0xe0(%rsp), %rdi
callq 0xcd88
leaq 0x100(%rsp), %rdi
callq 0xcd88
movq %rbx, %rdi
callq 0xc790