// File: /workspace/github_c_makefile_star2_O3/coyove[P]chann/./src/views/single.cpp
// Function: views::each_thread(mg_connection*, Thread*, char, bool, char const*, char const*)
void each_thread(mg_connection* conn, struct Thread* r, char display_state, bool admin_view, 
        const char* iid,
        const char* uid){
        time_t now = time(NULL);

        string thread_post_time = cc_timestamp_to_time(r->date);
        int diff_day = cc_timestamp_diff_day(now, r->date);

        const char* content = unq_read_string(pDb, r->content);
        string thread_content(content);
        delete [] content;

        if((display_state & SEND_CUT_LONG_COMMENT) && thread_content.size() > 1024) 
            thread_content = thread_content.substr(0, 1024) + templates.invoke("misc").toggle("more_contents").build_destory();
            //+ "<font color='red'><b>&#128065;" + STRING_MORE + "</b></font>";

        HTMLTemplate *ht = templates.invoke_pointer("single_thread");

        map<string, bool> stats;
        map<string, string> vars;

        ConfigManager c;

        stats["reply"]                      = display_state & SEND_IS_REPLY;
        stats["show_reply"]                 = display_state & SEND_SHOW_REPLY_LINK;
        stats["archive"]                    = c.global().get<bool>("archive");
        stats["normal_display"]             = r->state & NORMAL_DISPLAY || admin_view;
        stats["thread_poster_is_admin"]     = (strcmp(r->ssid, "Admin") == 0);
        stats["thread_poster_is_sameone"]   = (strcmp(r->ssid, iid) == 0);
        stats["is_sameone"]                 = (strcmp(r->ssid, uid) == 0);
        stats["sage"]                       = (r->state & SAGE_THREAD && !stats["reply"]);
        stats["lock"]                       = (r->state & LOCKED_THREAD);
        stats["delete"]                     = !(r->state & NORMAL_DISPLAY);
        stats["show_admin"]                 = admin_view;
        if (strlen(r->imgSrc) >= 4){
            string fname(r->imgSrc);
            vars["THREAD_IMAGE"]            = fname;

            if (!cc_valid_image_ext(fname).empty()){
                stats["image_attached"]     = true;
                if(display_state & SEND_CUT_IMAGE){
                    struct stat st;
                    stat(("images/" + fname).c_str(), &st);
                    stats["show_size_only"] = true;
                    vars["THREAD_IMAGE_SIZE"] = to_string((int)(st.st_size / 1024));
                }
                else{
                    stats["show_full_image"] = true;
                    vars["THREAD_THUMB_PREFIX"] = c.global().get("image::thumb_prefix");
                }
            }else{
                stats["file_attached"]      = true;
            }
        }
        if(r->childThread && !(display_state & SEND_CUT_REPLY_COUNT)){
            struct Thread* c = unq_read_thread(pDb, r->childThread);
            const char *first_reply = unq_read_string(pDb, c->content);
            string display_reply = (c->state & NORMAL_DISPLAY) ? string(first_reply) : "";

            stats["show_num_replies"]       = true;
            vars["NUM_REPLIES"]             = to_string(c->childCount);
            vars["FIRST_REPLY"]             = cc_smart_shorten(display_reply);// display_reply.substr(0, display_reply.find_first_of("<")).substr(0,15);

            delete c;
            delete[] first_reply;
        }

        vars["THREAD_POSTER"]               = string(r->ssid);
        vars["THREAD_NO"]                   = to_string(r->threadID);
        vars["THREAD_CONTENT"]              = thread_content;

        // stats["show_title"]					= !stats["reply"] || strcmp(r->author, STRING_UNTITLED) != 0;
        vars["THREAD_TITLE"]                = string(r->author);

        vars["THREAD_IP"]                   = string(r->email);
        vars["THREAD_POST_TIME"]            = thread_post_time;
        vars["THREAD_STATE"]                = to_string(r->state);

        if(diff_day >= 0 && diff_day <= 2){
            stats["show_easy_date"]         = true;
            vars["THREAD_POST_DATE"]        = to_string(diff_day);
        }else{
            char timetmp[64];
            struct tm post_date;
            localtime_r(&(r->date), &post_date);

            strftime(timetmp, 64, "%Y-%m-%d", &post_date);
            vars["THREAD_POST_DATE"]        = string(timetmp);
        }

        map<string, queue<string>> loops; //nothing

        mg_printf_data(conn, "%s", ht->build(vars, stats, loops).c_str());

        // if(content) delete [] content;
        delete ht;
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2c8, %rsp            # imm = 0x2C8
movq %r9, 0x198(%rsp)
movq %r8, %rbx
movl %ecx, 0xf8(%rsp)
movl %edx, %r12d
movq %rsi, %r14
movq %rdi, 0x190(%rsp)
xorl %edi, %edi
callq 0xc820
movq %rax, %r13
movq 0xa0(%r14), %rsi
leaq 0x2a8(%rsp), %rdi
callq 0xfc5f
movq 0xa0(%r14), %rsi
movq %r13, %rdi
callq 0xfcd1
movl %eax, 0x134(%rsp)
leaq 0x71bc4(%rip), %rax     # 0x94bf8
movq (%rax), %rdi
leaq 0x1(%r14), %rsi
callq 0xeb44
movq %rax, %r13
leaq 0x1a0(%rsp), %rdi
leaq 0x200(%rsp), %rdx
movq %rax, %rsi
callq 0xcae0
testq %r13, %r13
je 0x23068
movq %r13, %rdi
callq 0xc400
testb $0x4, %r12b
movq %r14, 0x38(%rsp)
je 0x2324f
cmpq $0x401, 0x1a8(%rsp) # imm = 0x401
jb 0x2324f
leaq 0x60(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
movl $0x400, %ecx            # imm = 0x400
xorl %edx, %edx
callq 0xcb00
leaq 0x110(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x50805(%rip), %rsi     # 0x738ba
leaq 0x50802(%rip), %rdx     # 0x738be
leaq 0x100(%rsp), %rdi
callq 0xedf0
leaq 0x71c58(%rip), %rdi     # 0x94d28
leaq 0x100(%rsp), %rsi
callq 0x181be
movq %rax, %r13
leaq 0x148(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x4ed67(%rip), %rsi     # 0x71e5a
leaq 0x4ed6d(%rip), %rdx     # 0x71e67
leaq 0x138(%rsp), %rdi
callq 0xedf0
leaq 0x1c8(%r13), %rdi
leaq 0x138(%rsp), %rsi
callq 0x1c4c8
movb $0x1, (%rax)
movq %rsp, %rdi
movq %r13, %rsi
callq 0x18208
leaq 0x70(%rsp), %r14
movq -0x10(%r14), %rcx
movq -0x8(%r14), %r8
movq 0x8(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r14, %rcx
je 0x2314e
movq 0x70(%rsp), %rdi
movq (%rsp), %rsi
cmpq %rdi, %rax
jbe 0x23170
leaq 0x10(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0x2316b
movq 0x10(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x2317c
leaq 0x60(%rsp), %rdi
callq 0xc830
jmp 0x23188
movq %rsp, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0xc200
leaq 0x210(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x231b5
movq %rsi, 0x200(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x210(%rsp)
jmp 0x231bb
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x208(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x1a0(%rsp), %rdi
leaq 0x200(%rsp), %r13
movq %r13, %rsi
callq 0xc5e0
movq (%r13), %rdi
leaq 0x210(%rsp), %rax
cmpq %rax, %rdi
je 0x23209
callq 0xc640
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2321c
callq 0xc640
movq 0x138(%rsp), %rdi
cmpq %rbp, %rdi
je 0x2322e
callq 0xc640
movq 0x100(%rsp), %rdi
cmpq %r15, %rdi
je 0x23240
callq 0xc640
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0x2324f
callq 0xc640
leaq 0x210(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x4ec06(%rip), %rsi     # 0x71e68
leaq 0x4ec0c(%rip), %rdx     # 0x71e75
leaq 0x200(%rsp), %rdi
callq 0xedf0
leaq 0x71aab(%rip), %rdi     # 0x94d28
leaq 0x200(%rsp), %rsi
callq 0x24744
movq %rax, %rbp
movq 0x200(%rsp), %rdi
cmpq %r14, %rdi
je 0x2329f
callq 0xc640
leaq 0x108(%rsp), %rax
xorl %ecx, %ecx
movl %ecx, (%rax)
movq %rcx, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
movq %rcx, 0x20(%rax)
leaq 0x140(%rsp), %rax
movl %ecx, (%rax)
movq %rcx, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
movq %rcx, 0x20(%rax)
leaq 0x230(%rsp), %rax
movq %rax, -0x30(%rax)
movl $0x1, %ecx
movq %rcx, -0x28(%rax)
xorps %xmm0, %xmm0
movups %xmm0, -0x20(%rax)
movl $0x3f800000, %edx       # imm = 0x3F800000
movl %edx, -0x10(%rax)
movups %xmm0, -0x8(%rax)
leaq 0x268(%rsp), %rax
movq %rax, -0x30(%rax)
movq %rcx, -0x28(%rax)
movups %xmm0, -0x20(%rax)
movl %edx, -0x10(%rax)
movups %xmm0, -0x8(%rax)
leaq 0x2a0(%rsp), %rax
movq %rax, -0x30(%rax)
movq %rcx, -0x28(%rax)
movups %xmm0, -0x20(%rax)
movl %edx, -0x10(%rax)
movups %xmm0, -0x8(%rax)
leaq 0x70(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x4eb38(%rip), %rsi     # 0x71e7b
leaq 0x4eb36(%rip), %rdx     # 0x71e80
leaq 0x60(%rsp), %rdi
callq 0xedf0
leaq 0x100(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1cd24
movl %r12d, %ecx
andb $0x1, %cl
movb %cl, (%rax)
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0x2337d
callq 0xc640
leaq 0x60(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x4eaea(%rip), %rsi     # 0x71e76
leaq 0x4eaed(%rip), %rdx     # 0x71e80
callq 0xedf0
leaq 0x100(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1cd24
movl %r12d, %ecx
shrb %cl
andb $0x1, %cl
movb %cl, (%rax)
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0x233c3
callq 0xc640
leaq 0x200(%rsp), %rdi
callq 0x11bec
movq %rax, %r13
leaq 0x60(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x542a6(%rip), %rsi     # 0x77688
leaq 0x542a6(%rip), %rdx     # 0x7768f
callq 0xedf0
movq %rbp, 0x168(%rsp)
leaq 0x60(%rsp), %rsi
movq %r13, %rdi
callq 0x180f2
movl %eax, %r13d
leaq 0x10(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x54272(%rip), %rsi     # 0x77688
leaq 0x54272(%rip), %rdx     # 0x7768f
movq %rsp, %rdi
callq 0xedf0
leaq 0x100(%rsp), %rdi
movq %rsp, %rsi
callq 0x1cd24
movb %r13b, (%rax)
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x23446
callq 0xc640
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
movq 0x38(%rsp), %r13
je 0x2345a
callq 0xc640
movb (%r13), %bpl
orb 0xf8(%rsp), %bpl
leaq 0x60(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x4ea0c(%rip), %rsi     # 0x71e81
leaq 0x4ea13(%rip), %rdx     # 0x71e8f
callq 0xedf0
leaq 0x100(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1cd24
andb $0x1, %bpl
movb %bpl, (%rax)
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0x234a9
callq 0xc640
movq 0x38(%rsp), %rax
leaq 0x91(%rax), %r13
leaq 0x4e9d4(%rip), %rsi     # 0x71e90
movq %r13, %rdi
callq 0xc950
movl %eax, %ebp
leaq 0x60(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x4e9c1(%rip), %rsi     # 0x71e96
leaq 0x4e9d0(%rip), %rdx     # 0x71eac
callq 0xedf0
leaq 0x100(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1cd24
testl %ebp, %ebp
sete (%rax)
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0x23507
callq 0xc640
movq %r13, %rdi
movq %rbx, %rsi
callq 0xc950
movl %eax, %ebp
leaq 0x60(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x4e98a(%rip), %rsi     # 0x71ead
leaq 0x4e99b(%rip), %rdx     # 0x71ec5
callq 0xedf0
leaq 0x100(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1cd24
testl %ebp, %ebp
sete (%rax)
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0x23555
callq 0xc640
movq %r13, %rdi
movq 0x198(%rsp), %rsi
callq 0xc950
movl %eax, %ebp
leaq 0x60(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x4e945(%rip), %rsi     # 0x71ebb
leaq 0x4e948(%rip), %rdx     # 0x71ec5
callq 0xedf0
leaq 0x100(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1cd24
testl %ebp, %ebp
sete (%rax)
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0x235a8
callq 0xc640
movq 0x38(%rsp), %rax
movb (%rax), %bpl
testb $0x10, %bpl
jne 0x235bb
xorl %r15d, %r15d
jmp 0x235fe
leaq 0x1f0(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x4e8ad(%rip), %rsi     # 0x71e7b
leaq 0x4e8ab(%rip), %rdx     # 0x71e80
leaq 0x1e0(%rsp), %rdi
callq 0xedf0
leaq 0x100(%rsp), %rdi
leaq 0x1e0(%rsp), %rsi
callq 0x1cd24
movb (%rax), %r15b
xorb $0x1, %r15b
leaq 0x60(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x4ed1f(%rip), %rsi     # 0x7232c
leaq 0x4ed1c(%rip), %rdx     # 0x72330
callq 0xedf0
leaq 0x100(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1cd24
movb %r15b, (%rax)
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0x2363d
callq 0xc640
testb $0x10, %bpl
movq 0x38(%rsp), %r15
je 0x2365e
leaq 0x1f0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2365e
callq 0xc640
movb (%r15), %bpl
leaq 0x60(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x504a9(%rip), %rsi     # 0x73b19
leaq 0x504a6(%rip), %rdx     # 0x73b1d
callq 0xedf0
leaq 0x100(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1cd24
shrb $0x7, %bpl
movb %bpl, (%rax)
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0x236a4
callq 0xc640
movq 0x38(%rsp), %rax
movb (%rax), %bpl
leaq 0x60(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x50858(%rip), %rsi     # 0x73f13
leaq 0x50857(%rip), %rdx     # 0x73f19
callq 0xedf0
leaq 0x100(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1cd24
andb $0x1, %bpl
xorb $0x1, %bpl
movb %bpl, (%rax)
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0x236f3
callq 0xc640
leaq 0x60(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x4e7c4(%rip), %rsi     # 0x71ec6
leaq 0x4e7c7(%rip), %rdx     # 0x71ed0
callq 0xedf0
leaq 0x10(%rsp), %rbp
leaq 0x100(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1cd24
movl 0xf8(%rsp), %ecx
movb %cl, (%rax)
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0x2373d
callq 0xc640
movq 0x38(%rsp), %rax
leaq 0xa8(%rax), %rbx
movq %rbx, %rdi
callq 0xc460
cmpq $0x4, %rax
jb 0x2397f
movq %rsp, %r15
movq %rbp, (%r15)
movq %rbx, %rdi
callq 0xc460
leaq (%rax,%rbx), %rdx
movq %r15, %rdi
movq %rbx, %rsi
callq 0xedf0
leaq 0x60(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x4e74a(%rip), %rsi     # 0x71ed1
leaq 0x4e74f(%rip), %rdx     # 0x71edd
callq 0xedf0
leaq 0x138(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1ce6c
movq %rsp, %rsi
movq %rax, %rdi
callq 0xcc40
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0x237bf
callq 0xc640
leaq 0x1d0(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
addq %rsi, %rdx
leaq 0x1c0(%rsp), %rdi
callq 0x12380
leaq 0x60(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
callq 0xfa20
movq 0x60(%rsp), %rdi
movq 0x68(%rsp), %rbx
cmpq %r14, %rdi
je 0x2380a
callq 0xc640
movq 0x1c0(%rsp), %rdi
cmpq %r15, %rdi
je 0x2381c
callq 0xc640
leaq 0x60(%rsp), %rdi
testq %rbx, %rbx
je 0x23937
movq %r14, (%rdi)
leaq 0x4e6aa(%rip), %rsi     # 0x71ede
leaq 0x4e6b1(%rip), %rdx     # 0x71eec
callq 0xedf0
leaq 0x100(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1cd24
movb $0x1, (%rax)
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0x23864
callq 0xc640
testb $0x8, %r12b
jne 0x23aa0
leaq 0x60(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x4e691(%rip), %rsi     # 0x71f0e
leaq 0x4e699(%rip), %rdx     # 0x71f1d
callq 0xedf0
leaq 0x100(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1cd24
movb $0x1, (%rax)
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0x238ad
callq 0xc640
leaq 0x200(%rsp), %rdi
callq 0x11bec
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x4e652(%rip), %rsi     # 0x71f1e
leaq 0x4e65e(%rip), %rdx     # 0x71f31
callq 0xedf0
leaq 0x60(%rsp), %rsi
movq %rbx, %rdi
callq 0x11edc
movq %rax, %rbx
leaq 0x50(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4e63a(%rip), %rsi     # 0x71f32
leaq 0x4e646(%rip), %rdx     # 0x71f45
leaq 0x40(%rsp), %rdi
callq 0xedf0
leaq 0x138(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x1ce6c
movq %rax, %rdi
movq %rbx, %rsi
callq 0xcc40
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x23962
callq 0xc640
jmp 0x23962
movq %r14, (%rdi)
leaq 0x4e605(%rip), %rsi     # 0x71f46
leaq 0x4e60b(%rip), %rdx     # 0x71f53
callq 0xedf0
leaq 0x100(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1cd24
movb $0x1, (%rax)
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0x23971
callq 0xc640
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x2397f
callq 0xc640
movzbl %r12b, %eax
movq 0x38(%rsp), %rcx
movl 0xc4(%rcx), %esi
testl %esi, %esi
sete %cl
andl $0x10, %eax
shrl $0x4, %eax
orb %cl, %al
jne 0x23cbd
leaq 0x71250(%rip), %r15     # 0x94bf8
movq (%r15), %rdi
callq 0xe181
movq %rax, %rbx
movq (%r15), %rdi
leaq 0x1(%rax), %rsi
callq 0xeb44
movq %rax, %r15
testb $0x1, (%rbx)
jne 0x239e0
leaq 0x60(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x53c9c(%rip), %rdx     # 0x77672
movq %rdx, %rsi
callq 0xedf0
jmp 0x239f0
leaq 0x60(%rsp), %rdi
movq %rsp, %rdx
movq %r15, %rsi
callq 0xcae0
movq %rsp, %rdi
movq %rbp, (%rdi)
leaq 0x4e557(%rip), %rsi     # 0x71f54
leaq 0x4e560(%rip), %rdx     # 0x71f64
callq 0xedf0
leaq 0x100(%rsp), %rdi
movq %rsp, %rsi
callq 0x1cd24
movq %r15, 0xf8(%rsp)
movb $0x1, (%rax)
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x23a32
callq 0xc640
movl 0xcc(%rbx), %r12d
movl %r12d, %ebp
negl %ebp
cmovsl %r12d, %ebp
movl $0x1, %r15d
cmpl $0xa, %ebp
jb 0x23b9c
movl $0x4, %r15d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %ebp, %ecx
cmpl $0x63, %ecx
jbe 0x23b93
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x23b99
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x23b9c
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r15d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x23a5e
addl $-0x3, %r15d
jmp 0x23b9c
leaq 0x4da0a(%rip), %rsi     # 0x714b1
leaq 0x40(%rsp), %rdi
movq %rsp, %rdx
callq 0x11c73
leaq 0x50(%rsp), %r15
movq -0x10(%r15), %rdi
leaq 0x60(%rsp), %rsi
callq 0xc110
movq -0x10(%r15), %rdi
cmpq %r15, %rdi
je 0x23ad5
callq 0xc640
leaq 0x40(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x4e409(%rip), %rsi     # 0x71eed
leaq 0x4e410(%rip), %rdx     # 0x71efb
callq 0xedf0
leaq 0x100(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x1cd24
movb $0x1, (%rax)
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x23b14
callq 0xc640
movq 0x90(%rsp), %rax
leaq 0x3ff(%rax), %rbp
testq %rax, %rax
cmovnsq %rax, %rbp
shrq $0xa, %rbp
movl %ebp, %ebx
negl %ebx
cmovsl %ebp, %ebx
movl $0x1, %r15d
cmpl $0xa, %ebx
jb 0x242fa
movl $0x4, %r15d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %ebx, %ecx
cmpl $0x63, %ecx
jbe 0x242f1
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x242f7
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x242fa
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r15d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x23b51
addl $-0x3, %r15d
jmp 0x242fa
addl $-0x2, %r15d
jmp 0x23b9c
decl %r15d
shrl $0x1f, %r12d
leal (%r15,%r12), %esi
movq %rsp, %rdi
leaq 0x10(%rsp), %rax
movq %rax, (%rdi)
movl $0x2d, %edx
callq 0xc6d0
addq (%rsp), %r12
movq %r12, %rdi
movl %r15d, %esi
movl %ebp, %edx
callq 0x12313
leaq 0x50(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4e38b(%rip), %rsi     # 0x71f65
leaq 0x4e38f(%rip), %rdx     # 0x71f70
leaq 0x40(%rsp), %rdi
callq 0xedf0
leaq 0x138(%rsp), %rdi
leaq 0x40(%rsp), %rsi
leaq 0x10(%rsp), %rbp
callq 0x1ce6c
movq %rsp, %rsi
movq %rax, %rdi
callq 0xc5e0
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x23c1c
callq 0xc640
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x23c2a
callq 0xc640
movq %rsp, %rdi
leaq 0x60(%rsp), %rsi
movl $0x24, %edx
callq 0xfeda
leaq 0x40(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x4e326(%rip), %rsi     # 0x71f71
leaq 0x4e32a(%rip), %rdx     # 0x71f7c
callq 0xedf0
leaq 0x138(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x1ce6c
movq %rsp, %rsi
movq %rax, %rdi
callq 0xc5e0
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x23c83
callq 0xc640
movq (%rsp), %rdi
cmpq %rbp, %rdi
movq 0xf8(%rsp), %r15
je 0x23c99
callq 0xc640
movq %rbx, %rdi
callq 0xc640
testq %r15, %r15
je 0x23cae
movq %r15, %rdi
callq 0xc400
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0x23cbd
callq 0xc640
leaq 0x60(%rsp), %rbx
movq %r14, (%rbx)
movq %r13, %rdi
callq 0xc460
leaq (%rax,%r13), %rdx
movq %rbx, %rdi
movq %r13, %rsi
callq 0xedf0
movq %rsp, %rdi
movq %rbp, (%rdi)
leaq 0x4e294(%rip), %rsi     # 0x71f7d
leaq 0x4e29a(%rip), %rdx     # 0x71f8a
callq 0xedf0
leaq 0x138(%rsp), %rdi
movq %rsp, %rsi
callq 0x1ce6c
leaq 0x60(%rsp), %rsi
movq %rax, %rdi
callq 0xc5e0
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x23d20
callq 0xc640
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
movq 0x38(%rsp), %rbx
je 0x23d34
callq 0xc640
movl 0xb8(%rbx), %ebx
movl %ebx, %ebp
negl %ebp
cmovsl %ebx, %ebp
movl $0x1, %r15d
cmpl $0xa, %ebp
jb 0x23d95
movl $0x4, %r15d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %ebp, %ecx
cmpl $0x63, %ecx
jbe 0x23d8c
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x23d92
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x23d95
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r15d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x23d59
addl $-0x3, %r15d
jmp 0x23d95
addl $-0x2, %r15d
jmp 0x23d95
decl %r15d
shrl $0x1f, %ebx
leal (%r15,%rbx), %esi
leaq 0x60(%rsp), %rdi
movq %r14, (%rdi)
movl $0x2d, %edx
callq 0xc6d0
addq 0x60(%rsp), %rbx
movq %rbx, %rdi
movl %r15d, %esi
movl %ebp, %edx
callq 0x12313
movq %rsp, %rdi
leaq 0x10(%rsp), %r13
movq %r13, (%rdi)
leaq 0x4dfa4(%rip), %rsi     # 0x71d76
leaq 0x4dfa6(%rip), %rdx     # 0x71d7f
callq 0xedf0
leaq 0x138(%rsp), %rdi
movq %rsp, %rsi
callq 0x1ce6c
movq 0x38(%rsp), %rbp
leaq 0x60(%rsp), %rsi
movq %rax, %rdi
callq 0xc5e0
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x23e0e
callq 0xc640
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0x23e1d
callq 0xc640
leaq 0x60(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x4e15f(%rip), %rsi     # 0x71f8b
leaq 0x4e166(%rip), %rdx     # 0x71f99
callq 0xedf0
leaq 0x138(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1ce6c
leaq 0x1a0(%rsp), %rsi
movq %rax, %rdi
callq 0xcc40
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0x23e69
callq 0xc640
leaq 0x11(%rbp), %rbx
leaq 0x60(%rsp), %r15
movq %r14, (%r15)
movq %rbx, %rdi
callq 0xc460
leaq (%rax,%rbp), %rdx
addq $0x11, %rdx
movq %r15, %rdi
movq %rbx, %rsi
callq 0xedf0
movq %rsp, %rdi
movq %r13, (%rdi)
leaq 0x4e0fd(%rip), %rsi     # 0x71f9a
leaq 0x4e102(%rip), %rdx     # 0x71fa6
callq 0xedf0
leaq 0x138(%rsp), %rdi
movq %rsp, %rsi
callq 0x1ce6c
leaq 0x60(%rsp), %rsi
movq %rax, %rdi
callq 0xc5e0
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x23ed4
callq 0xc640
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0x23ee3
callq 0xc640
leaq 0x51(%rbp), %rbx
leaq 0x60(%rsp), %r15
movq %r14, (%r15)
movq %rbx, %rdi
callq 0xc460
leaq (%rax,%rbp), %rdx
addq $0x51, %rdx
movq %r15, %rdi
movq %rbx, %rsi
callq 0xedf0
movq %rsp, %rdi
movq %r13, (%rdi)
leaq 0x4e090(%rip), %rsi     # 0x71fa7
leaq 0x4e092(%rip), %rdx     # 0x71fb0
callq 0xedf0
leaq 0x138(%rsp), %rdi
movq %rsp, %rsi
callq 0x1ce6c
leaq 0x60(%rsp), %rsi
movq %rax, %rdi
callq 0xc5e0
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x23f4e
callq 0xc640
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0x23f5d
callq 0xc640
leaq 0x60(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x4e045(%rip), %rsi     # 0x71fb1
leaq 0x4e04e(%rip), %rdx     # 0x71fc1
callq 0xedf0
leaq 0x138(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1ce6c
leaq 0x2a8(%rsp), %rsi
movq %rax, %rdi
callq 0xcc40
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0x23fa9
callq 0xc640
movsbl (%rbp), %r12d
movl %r12d, %ebx
negl %ebx
cmovsl %r12d, %ebx
cmpl $0x64, %ebx
movl $0x3, %eax
sbbl $0x0, %eax
cmpl $0xa, %ebx
movl $0x1, %r15d
cmovael %eax, %r15d
shrl $0x1f, %r12d
leal (%r15,%r12), %esi
leaq 0x60(%rsp), %rdi
movq %r14, (%rdi)
movl $0x2d, %edx
callq 0xc6d0
movl %r12d, %edi
addq 0x60(%rsp), %rdi
movl %r15d, %esi
movl %ebx, %edx
callq 0x12313
movq %rsp, %rdi
movq %r13, (%rdi)
leaq 0x4dfba(%rip), %rsi     # 0x71fc2
leaq 0x4dfbf(%rip), %rdx     # 0x71fce
callq 0xedf0
leaq 0x138(%rsp), %rdi
movq %rsp, %rsi
callq 0x1ce6c
movl 0x134(%rsp), %ebx
leaq 0x60(%rsp), %rsi
movq %rax, %rdi
callq 0xc5e0
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x24046
callq 0xc640
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0x24055
callq 0xc640
cmpl $0x2, %ebx
ja 0x24124
leaq 0x60(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x4df62(%rip), %rsi     # 0x71fcf
leaq 0x4df69(%rip), %rdx     # 0x71fdd
callq 0xedf0
leaq 0x100(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1cd24
movq 0x168(%rsp), %r12
movb $0x1, (%rax)
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0x240a5
callq 0xc640
leaq 0x60(%rsp), %rdi
movq %r14, (%rdi)
movl $0x1, %esi
movl $0x2d, %edx
callq 0xc6d0
movq 0x60(%rsp), %rdi
movl $0x1, %esi
movl %ebx, %edx
callq 0x12313
movq %rsp, %rdi
movq %r13, (%rdi)
leaq 0x4df04(%rip), %rsi     # 0x71fde
leaq 0x4df0d(%rip), %rdx     # 0x71fee
callq 0xedf0
leaq 0x138(%rsp), %rdi
movq %rsp, %rsi
callq 0x1ce6c
leaq 0x60(%rsp), %rsi
movq %rax, %rdi
callq 0xc5e0
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x24111
callq 0xc640
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
jne 0x241e8
jmp 0x241ed
addq $0xa0, %rbp
movq %rsp, %rbx
movq %rbp, %rdi
movq %rbx, %rsi
callq 0xc1e0
leaq 0x4deaf(%rip), %rdx     # 0x71fef
leaq 0x60(%rsp), %r14
movl $0x40, %esi
movq %r14, %rdi
movq %rbx, %rcx
callq 0xc9d0
leaq 0x50(%rsp), %r15
movq %r15, -0x10(%r15)
movq %r14, %rdi
callq 0xc460
leaq (%rsp,%rax), %rdx
addq $0x60, %rdx
leaq 0x40(%rsp), %rdi
movq %r14, %rsi
callq 0xedf0
leaq 0x180(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x4de50(%rip), %rsi     # 0x71fde
leaq 0x4de59(%rip), %rdx     # 0x71fee
leaq 0x170(%rsp), %rdi
callq 0xedf0
movq 0x168(%rsp), %r12
leaq 0x138(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x1ce6c
leaq 0x40(%rsp), %rsi
movq %rax, %rdi
callq 0xc5e0
movq 0x170(%rsp), %rdi
cmpq %r14, %rdi
je 0x241de
callq 0xc640
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x241ed
callq 0xc640
leaq 0x68(%rsp), %rax
movl $0x0, (%rax)
xorl %ecx, %ecx
movq %rcx, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
movq %rcx, 0x20(%rax)
movq %rsp, %rdi
leaq 0x138(%rsp), %rdx
leaq 0x100(%rsp), %rcx
leaq 0x60(%rsp), %r8
movq %r12, %rsi
callq 0x1c8a0
movq (%rsp), %rdx
leaq 0x5211a(%rip), %rsi     # 0x7634f
movq 0x190(%rsp), %rdi
xorl %eax, %eax
callq 0x68533
leaq 0x238(%rsp), %rbx
leaq 0x270(%rsp), %r14
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x24262
callq 0xc640
movq %r12, %rdi
callq 0x19de2
movq %r12, %rdi
callq 0xc640
leaq 0x60(%rsp), %rdi
callq 0x19eb6
movq %r14, %rdi
callq 0x11cf4
movq %rbx, %rdi
callq 0x11d8a
leaq 0x200(%rsp), %rdi
callq 0x11e20
leaq 0x138(%rsp), %rdi
callq 0x19c46
leaq 0x100(%rsp), %rdi
callq 0x1a08c
leaq 0x1b0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x242c9
callq 0xc640
leaq 0x2b8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x242df
callq 0xc640
addq $0x2c8, %rsp            # imm = 0x2C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
addl $-0x2, %r15d
jmp 0x242fa
decl %r15d
shrl $0x1f, %ebp
leal (%r15,%rbp), %esi
leaq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
movq %rax, (%rdi)
movl $0x2d, %edx
callq 0xc6d0
movl %ebp, %edi
addq 0x40(%rsp), %rdi
movl %r15d, %esi
movl %ebx, %edx
callq 0x12313
leaq 0x180(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4dbc0(%rip), %rsi     # 0x71efc
leaq 0x4dbca(%rip), %rdx     # 0x71f0d
leaq 0x170(%rsp), %rdi
callq 0xedf0
leaq 0x138(%rsp), %rdi
leaq 0x170(%rsp), %rsi
leaq 0x10(%rsp), %rbp
callq 0x1ce6c
leaq 0x40(%rsp), %rsi
movq %rax, %rdi
callq 0xc5e0
movq 0x170(%rsp), %rdi
cmpq %r15, %rdi
je 0x24389
callq 0xc640
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
jne 0x2396c
jmp 0x23971
movq %rax, %rbx
movq 0x170(%rsp), %rdi
cmpq %r15, %rdi
je 0x243bb
callq 0xc640
jmp 0x243bb
movq %rax, %rbx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
jne 0x245d5
jmp 0x245da
jmp 0x245c8
jmp 0x244f7
jmp 0x245c8
movq %rax, %rbx
movq 0x40(%rsp), %rdi
jmp 0x244e7
jmp 0x244f7
jmp 0x244f7
jmp 0x245c8
jmp 0x244f7
jmp 0x244f7
jmp 0x245c8
jmp 0x244f7
jmp 0x24673
jmp 0x24673
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x245cb
callq 0xc640
jmp 0x245cb
jmp 0x245c8
jmp 0x244f7
jmp 0x2459a
jmp 0x246d6
movq %rax, %rbx
movq 0x170(%rsp), %rdi
cmpq %r14, %rdi
je 0x2446a
callq 0xc640
jmp 0x2446a
jmp 0x24673
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
jne 0x246e3
jmp 0x246e8
jmp 0x246d6
jmp 0x24673
jmp 0x24673
jmp 0x24495
jmp 0x244a9
jmp 0x246d6
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x244ac
callq 0xc640
jmp 0x244ac
movq %rax, %rbx
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
jne 0x24660
jmp 0x246d9
jmp 0x246d6
jmp 0x24654
jmp 0x246d6
jmp 0x24673
jmp 0x24673
movq %rax, %rbx
movq 0x1c0(%rsp), %rdi
cmpq %r15, %rdi
jne 0x245d5
jmp 0x245da
jmp 0x244f7
movq %rax, %rbx
jmp 0x245da
jmp 0x24673
movq %rax, %rbx
jmp 0x2461e
jmp 0x24673
movq %rax, %rbx
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2467b
callq 0xc640
jmp 0x2467b
jmp 0x24532
movq %rax, %rbx
jmp 0x2468d
movq %rax, %rbx
jmp 0x2469f
jmp 0x246c6
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x2455d
callq 0xc640
jmp 0x2455d
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x19eb6
jmp 0x246e8
jmp 0x2459a
jmp 0x246d6
jmp 0x24673
jmp 0x24673
jmp 0x2459a
jmp 0x246d6
jmp 0x24673
jmp 0x2459a
jmp 0x246d6
jmp 0x24673
jmp 0x24673
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r13, %rdi
jne 0x24660
jmp 0x246d9
jmp 0x246d6
jmp 0x24673
jmp 0x24654
jmp 0x246d6
jmp 0x24673
movq %rax, %rbx
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0x245da
callq 0xc640
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
jmp 0x2462a
jmp 0x246d6
jmp 0x24673
jmp 0x246d6
jmp 0x24673
jmp 0x246d6
jmp 0x24673
movq %rax, %rbx
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0x24614
callq 0xc640
jmp 0x24614
movq %rax, %rbx
testb $0x10, %bpl
je 0x246e8
leaq 0x1f0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
jne 0x246e3
jmp 0x246e8
jmp 0x246d6
jmp 0x24673
jmp 0x246d6
jmp 0x24673
jmp 0x246d6
jmp 0x24673
jmp 0x246d6
jmp 0x24673
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x246d9
callq 0xc640
jmp 0x246d9
jmp 0x246d6
jmp 0x246d6
jmp 0x24673
jmp 0x246d6
jmp 0x24673
jmp 0x246d6
movq %rax, %rbx
jmp 0x246e8
movq %rax, %rbx
movq 0x138(%rsp), %rdi
cmpq %rbp, %rdi
je 0x2468d
callq 0xc640
movq 0x100(%rsp), %rdi
cmpq %r15, %rdi
je 0x2469f
callq 0xc640
leaq 0x70(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
jne 0x246bf
jmp 0x2470f
movq %rax, %rbx
movq 0x200(%rsp), %rdi
cmpq %r14, %rdi
je 0x2470f
callq 0xc640
jmp 0x2470f
movq %rax, %rbx
jmp 0x2470f
jmp 0x246cf
jmp 0x246cf
movq %rax, %rbx
jmp 0x24725
jmp 0x246d6
movq %rax, %rbx
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0x246e8
callq 0xc640
leaq 0x200(%rsp), %rdi
callq 0x11c0a
leaq 0x138(%rsp), %rdi
callq 0x19c46
leaq 0x100(%rsp), %rdi
callq 0x1a08c
leaq 0x1b0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x24725
callq 0xc640
leaq 0x2b8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2473b
callq 0xc640
movq %rbx, %rdi
callq 0xc760
nop