// File: /workspace/github_c_makefile_star2_O3/coyove[P]chann/./src/views/list/expand.cpp
// Function: views::expand::render(mg_connection*, int, bool)
void render(mg_connection* conn, int id, bool reverse){
            ConfigManager configs;
            // int id = cc_extract_uri_num(conn);

            int limit, count;
            auto r = unq_read_thread_sp(pDb, 0); // get the root thread
            count = r.get()->childCount;
            limit = count - configs.global().get<int>("user::viewable_threads");
            // delete r;

            if (id < 0 || (id < limit && limit != 0) || id > count){
                views::info::render(conn, templates.invoke("misc").toggle("invalid_thread_no").build_destory().c_str());
                return;
            }

            r = unq_read_thread_sp(pDb, id); // get the root thread
            int pid = unq_thread_parent(pDb, r.get());
            
            if ((pid == -1) && !is_admin(conn)){
                views::info::render(conn, templates.invoke("misc").toggle("invalid_thread_no").build_destory().c_str());
                // delete r;
                return;
            }
            
            templates.invoke("site_header").toggle("thread_page").toggle("is_admin", is_admin(conn)) \
                .var("THREAD_NO", id).var("THREAD_TITLE", r.get()->author).pipe_to(conn).destory();

            templates.invoke("single_thread_header").toggle("homepage", !pid).var("THREAD_NO", id) \
                .var("PARENT_NO", pid).toggle("thread", strstr(conn->uri, "/thread/")).pipe_to(conn).destory();
            
            clock_t startc = clock();

            // bool reverse = strstr(conn->uri, "/daerht/");
            bool admin_view = is_admin(conn);
            string username = cck_verify_ssid(conn);

            views::each_thread(conn, r.get(), 0, admin_view);
            mg_printf_data(conn, "<hr>");

            char iid[10];
            strcpy(iid, r.get()->ssid);

            if(!configs.global().get<bool>("archive"))
                templates.invoke("post_form") \
                    .var("THREAD_NO", to_string(id)).toggle("reply_to_thread"). \
                    toggle("is_admin", admin_view || !is_assist(conn).empty()).pipe_to(conn).destory();
                
            if (r.get()->childThread) {
                // int r_childThread = r->childThread;
                // delete r;

                int limit = configs.global().get<int>("user::collapse_image");

                r = unq_read_thread_sp(pDb, r.get()->childThread); // beginning of the circle
                int rid = r.get()->threadID; //the ID
                bool too_many_replies = (r.get()->childCount > limit);

                int di = 1;

                if(reverse)
                {
                    int n_rid = r.get()->prevThread;
                    // delete r;
                    r = unq_read_thread_sp(pDb, r.get()->prevThread);

                    views::each_thread(conn, r.get(), SEND_IS_REPLY + SEND_SHOW_REPLY_LINK, admin_view, iid, username.c_str());

                    while (r.get()->prevThread != n_rid){
                        di++;
                        // int r_prevThread = r->prevThread;

                        // delete r;
                        r = unq_read_thread_sp(pDb, r.get()->prevThread);

                        if(too_many_replies && (di > limit))
                            views::each_thread(conn, r.get(), SEND_IS_REPLY + SEND_SHOW_REPLY_LINK + SEND_CUT_IMAGE, admin_view, iid, username.c_str());
                        else
                            views::each_thread(conn, r.get(), SEND_IS_REPLY + SEND_SHOW_REPLY_LINK, admin_view, iid, username.c_str());
                    }
                }
                else
                {
                    views::each_thread(conn, r.get(), SEND_IS_REPLY + SEND_SHOW_REPLY_LINK, admin_view, iid, username.c_str());

                    while (r.get()->nextThread != rid){
                        // int r_nextThread = r->nextThread;
                        // delete r;

                        r = unq_read_thread_sp(pDb, r.get()->nextThread);
                        di++;

                        //views::each_thread(conn, r, true, true, false, too_many_replies && (di > 20), admin_view, iid);
                        if(too_many_replies && (di > limit))
                            views::each_thread(conn, r.get(), SEND_IS_REPLY + SEND_SHOW_REPLY_LINK + SEND_CUT_IMAGE, admin_view, iid, username.c_str());
                        else
                            views::each_thread(conn, r.get(), SEND_IS_REPLY + SEND_SHOW_REPLY_LINK, admin_view, iid, username.c_str());
                    }

                    // if(r) delete r;
                } 
            }

            clock_t endc = clock();

            // site_footer(conn, (float)(endc-startc)/CLOCKS_PER_SEC);
            templates.invoke("site_footer").var("TIME", (int)((endc-startc) * 1000 / CLOCKS_PER_SEC)).pipe_to(conn).destory();
        }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1c8, %rsp            # imm = 0x1C8
movl %edx, 0xc8(%rsp)
movl %esi, %r14d
movq %rdi, 0x30(%rsp)
leaq 0x150(%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 0x188(%rsp), %rax
movq %rax, -0x30(%rax)
movq %rcx, -0x28(%rax)
movups %xmm0, -0x20(%rax)
movl %edx, -0x10(%rax)
movups %xmm0, -0x8(%rax)
leaq 0x1c0(%rsp), %rax
movq %rax, -0x30(%rax)
movq %rcx, -0x28(%rax)
movups %xmm0, -0x20(%rax)
movl %edx, -0x10(%rax)
movups %xmm0, -0x8(%rax)
leaq 0x700bf(%rip), %rax     # 0x94bf8
movq (%rax), %rsi
leaq 0x20(%rsp), %rdi
xorl %edx, %edx
callq 0xecde
movq 0x20(%rsp), %rax
movl 0xcc(%rax), %ebx
leaq 0x120(%rsp), %rdi
callq 0x11bec
movq %rax, %r15
leaq 0x70(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x4d4d8(%rip), %rsi     # 0x7204b
leaq 0x4d4e7(%rip), %rdx     # 0x72061
leaq 0x60(%rsp), %rdi
callq 0xedf0
addq $0x38, %r15
leaq 0x60(%rsp), %rsi
movq %r15, %rdi
callq 0x12416
movl (%rax), %ebp
movq 0x60(%rsp), %rdi
cmpq %r13, %rdi
je 0x24ba6
callq 0xc640
testl %r14d, %r14d
js 0x25167
cmpl %r14d, %ebx
jl 0x25167
subl %ebp, %ebx
cmpl %r14d, %ebx
jg 0x25167
leaq 0x7002e(%rip), %rax     # 0x94bf8
movq (%rax), %rsi
leaq 0x60(%rsp), %rdi
movl %r14d, %edx
callq 0xecde
movaps 0x60(%rsp), %xmm0
xorps %xmm1, %xmm1
movaps %xmm1, 0x60(%rsp)
movq 0x28(%rsp), %rdi
movaps %xmm0, 0x20(%rsp)
testq %rdi, %rdi
je 0x24c0a
callq 0xed76
movq 0x68(%rsp), %rdi
testq %rdi, %rdi
je 0x24c0a
callq 0xed76
leaq 0x6ffe7(%rip), %rax     # 0x94bf8
movq (%rax), %rdi
movq 0x20(%rsp), %rsi
callq 0xe129
movl %eax, %r15d
cmpl $-0x1, %eax
jne 0x24c38
movq 0x30(%rsp), %rdi
callq 0xef14
testb %al, %al
je 0x25264
leaq 0x60(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x4cd56(%rip), %rsi     # 0x7199d
leaq 0x4cd5a(%rip), %rdx     # 0x719a8
callq 0xedf0
leaq 0x700ce(%rip), %rdi     # 0x94d28
leaq 0x60(%rsp), %rsi
callq 0x181be
movq %rax, %r12
leaq 0x10(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x4d3fd(%rip), %rsi     # 0x72074
leaq 0x4d401(%rip), %rdx     # 0x7207f
movq %rsp, %rdi
callq 0xedf0
leaq 0x1c8(%r12), %r13
movq %rsp, %rsi
movq %r13, %rdi
callq 0x1c4c8
movb $0x1, (%rax)
leaq 0x50(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x4d1f8(%rip), %rsi     # 0x71ea4
leaq 0x4d1f9(%rip), %rdx     # 0x71eac
leaq 0x40(%rsp), %rdi
callq 0xedf0
movq 0x30(%rsp), %rdi
callq 0xef14
movl %eax, %ebp
leaq 0x40(%rsp), %rsi
movq %r13, %rdi
callq 0x1c4c8
movb %bpl, (%rax)
leaq 0x98(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x4d08a(%rip), %rsi     # 0x71d76
leaq 0x4d08c(%rip), %rdx     # 0x71d7f
leaq 0x88(%rsp), %rdi
callq 0xedf0
leaq 0x88(%rsp), %rsi
movq %r12, %rdi
movl %r14d, %edx
callq 0x18388
movq %rax, %r12
leaq 0xb8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x4d271(%rip), %rsi     # 0x71f9a
leaq 0x4d276(%rip), %rdx     # 0x71fa6
leaq 0xa8(%rsp), %rdi
callq 0xedf0
movq 0x20(%rsp), %rbx
leaq 0x11(%rbx), %r13
leaq 0xe8(%rsp), %rax
movq %rax, -0x10(%rax)
movq %r13, %rdi
callq 0xc460
leaq (%rbx,%rax), %rdx
addq $0x11, %rdx
leaq 0xd8(%rsp), %rdi
movq %r13, %rsi
callq 0xedf0
leaq 0x198(%r12), %rdi
leaq 0xa8(%rsp), %rsi
leaq 0x70(%rsp), %rbx
callq 0x18044
movq 0x30(%rsp), %r13
leaq 0xd8(%rsp), %rsi
movq %rax, %rdi
callq 0xcc40
movq %r12, %rdi
movq %r13, %rsi
callq 0x18304
movq %rax, %r12
movq %rax, %rdi
callq 0x19de2
movq %r12, %rdi
callq 0xc640
movq 0xd8(%rsp), %rdi
leaq 0xe8(%rsp), %rax
cmpq %rax, %rdi
je 0x24dd9
callq 0xc640
movq 0xa8(%rsp), %rdi
leaq 0xb8(%rsp), %rax
cmpq %rax, %rdi
je 0x24df3
callq 0xc640
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x24e0d
callq 0xc640
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x24e21
callq 0xc640
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x24e34
callq 0xc640
movq 0x60(%rsp), %rdi
cmpq %rbx, %rdi
je 0x24e43
callq 0xc640
leaq 0x60(%rsp), %rdi
movq %rbx, (%rdi)
leaq 0x4cc8a(%rip), %rsi     # 0x71adc
leaq 0x4cc97(%rip), %rdx     # 0x71af0
callq 0xedf0
leaq 0x6fec3(%rip), %rdi     # 0x94d28
leaq 0x60(%rsp), %rsi
callq 0x181be
movq %rax, %r12
movq %rsp, %rdi
leaq 0x10(%rsp), %rax
movq %rax, (%rdi)
leaq 0x4d1fc(%rip), %rsi     # 0x72080
leaq 0x4d1fd(%rip), %rdx     # 0x72088
callq 0xedf0
leaq 0x1c8(%r12), %rdi
movq %rsp, %rsi
callq 0x1c4c8
testl %r15d, %r15d
sete (%rax)
leaq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
movq %rax, (%rdi)
leaq 0x4cebc(%rip), %rsi     # 0x71d76
leaq 0x4cebe(%rip), %rdx     # 0x71d7f
callq 0xedf0
leaq 0x40(%rsp), %rsi
movq %r12, %rdi
movl %r14d, %edx
callq 0x18388
movq %rax, %r12
leaq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
movq %rax, (%rdi)
leaq 0x4d196(%rip), %rsi     # 0x72089
leaq 0x4d198(%rip), %rdx     # 0x72092
callq 0xedf0
leaq 0x88(%rsp), %rsi
movq %r12, %rdi
movl %r15d, %edx
callq 0x18388
movq %rax, %r15
leaq 0xa8(%rsp), %rdi
leaq 0xb8(%rsp), %rax
movq %rax, (%rdi)
leaq 0x4c979(%rip), %rsi     # 0x718a8
leaq 0x4c978(%rip), %rdx     # 0x718ae
callq 0xedf0
movq 0x8(%r13), %rdi
leaq 0x4d14d(%rip), %rsi     # 0x72093
callq 0xc570
movq %rax, %r12
leaq 0x1c8(%r15), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x1c4c8
testq %r12, %r12
setne (%rax)
movq %r15, %rdi
movq %r13, %rsi
callq 0x18304
movq %rax, %r15
movq %rax, %rdi
callq 0x19de2
movq %r15, %rdi
callq 0xc640
movq 0xa8(%rsp), %rdi
leaq 0xb8(%rsp), %rax
cmpq %rax, %rdi
je 0x24fa0
callq 0xc640
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x24fba
callq 0xc640
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x24fce
callq 0xc640
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x24fe1
callq 0xc640
movq 0x60(%rsp), %rdi
cmpq %rbx, %rdi
je 0x24ff0
callq 0xc640
callq 0xc050
movq %rax, %r15
movq %r13, %rdi
callq 0xef14
movq %r13, %rbx
movl %eax, %r13d
leaq 0x60(%rsp), %rdi
movq %rbx, %rsi
callq 0xf5d5
movq %r15, 0xf8(%rsp)
movq 0x20(%rsp), %rsi
movzbl %r13b, %ecx
leaq 0x52647(%rip), %r8      # 0x77672
movq %rbx, %rdi
xorl %edx, %edx
movl %ecx, 0x3c(%rsp)
movq %r8, %r9
callq 0x22fc8
leaq 0x4d059(%rip), %rsi     # 0x7209c
movq %rbx, %rdi
xorl %eax, %eax
callq 0x68533
movl $0x91, %esi
addq 0x20(%rsp), %rsi
leaq 0xce(%rsp), %rdi
callq 0xc490
leaq 0x120(%rsp), %rdi
callq 0x11bec
movq %rax, %r15
movq %rsp, %rdi
leaq 0x10(%rsp), %rax
movq %rax, (%rdi)
leaq 0x52602(%rip), %rsi     # 0x77688
leaq 0x52602(%rip), %rdx     # 0x7768f
callq 0xedf0
movq %rsp, %rsi
movq %r15, %rdi
callq 0x180f2
movl %eax, %ebp
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x250b2
callq 0xc640
testb %bpl, %bpl
jne 0x25492
movq %rsp, %rdi
leaq 0x10(%rsp), %rax
movq %rax, (%rdi)
leaq 0x4ca4b(%rip), %rsi     # 0x71b18
leaq 0x4ca4d(%rip), %rdx     # 0x71b21
callq 0xedf0
leaq 0x6fc48(%rip), %rdi     # 0x94d28
movq %rsp, %rsi
callq 0x181be
movq %rax, %r15
leaq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
movq %rax, (%rdi)
leaq 0x4cc77(%rip), %rsi     # 0x71d76
leaq 0x4cc79(%rip), %rdx     # 0x71d7f
callq 0xedf0
movl $0x1, %ebp
cmpl $0xa, %r14d
jb 0x252f3
movl $0x4, %ebp
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %r14d, %ecx
cmpl $0x63, %ecx
jbe 0x252ec
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x252f1
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x252f3
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %ebp
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x25127
addl $-0x3, %ebp
jmp 0x252f3
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4e743(%rip), %rsi     # 0x738ba
leaq 0x4e740(%rip), %rdx     # 0x738be
movq %rsp, %rdi
callq 0xedf0
leaq 0x6fb9b(%rip), %rdi     # 0x94d28
movq %rsp, %rsi
callq 0x181be
movq %rax, %r14
leaq 0x50(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x4ceb9(%rip), %rsi     # 0x72062
leaq 0x4cec3(%rip), %rdx     # 0x72073
leaq 0x40(%rsp), %rdi
callq 0xedf0
leaq 0x1c8(%r14), %rdi
leaq 0x40(%rsp), %rsi
callq 0x1c4c8
movb $0x1, (%rax)
leaq 0x60(%rsp), %rdi
movq %r14, %rsi
callq 0x18208
movq 0x60(%rsp), %rsi
movq 0x30(%rsp), %rdi
callq 0x22d28
movq 0x60(%rsp), %rdi
cmpq %r13, %rdi
je 0x251f9
callq 0xc640
movq 0x40(%rsp), %rdi
cmpq %r12, %rdi
je 0x25208
callq 0xc640
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x25216
callq 0xc640
leaq 0x158(%rsp), %rbx
leaq 0x190(%rsp), %r14
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x25235
callq 0xed76
movq %r14, %rdi
callq 0x11cf4
movq %rbx, %rdi
callq 0x11d8a
leaq 0x120(%rsp), %rdi
callq 0x11e20
addq $0x1c8, %rsp            # imm = 0x1C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4e646(%rip), %rsi     # 0x738ba
leaq 0x4e643(%rip), %rdx     # 0x738be
movq %rsp, %rdi
callq 0xedf0
leaq 0x6fa9e(%rip), %rdi     # 0x94d28
movq %rsp, %rsi
callq 0x181be
movq %rax, %r14
leaq 0x50(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x4cdbc(%rip), %rsi     # 0x72062
leaq 0x4cdc6(%rip), %rdx     # 0x72073
leaq 0x40(%rsp), %rdi
callq 0xedf0
leaq 0x1c8(%r14), %rdi
leaq 0x40(%rsp), %rsi
callq 0x1c4c8
movb $0x1, (%rax)
leaq 0x60(%rsp), %rdi
movq %r14, %rsi
callq 0x18208
movq 0x60(%rsp), %rsi
movq 0x30(%rsp), %rdi
callq 0x22d28
jmp 0x251ea
addl $-0x2, %ebp
jmp 0x252f3
decl %ebp
movl %ebp, %esi
leaq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
movq %rax, (%rdi)
movl $0x2d, %edx
callq 0xc6d0
movq 0x88(%rsp), %rdi
movl %ebp, %esi
movl %r14d, %edx
callq 0x12313
leaq 0x198(%r15), %rdi
leaq 0x40(%rsp), %rsi
callq 0x18044
leaq 0x88(%rsp), %rsi
movq %rax, %rdi
callq 0xcc40
leaq 0xa8(%rsp), %rdi
leaq 0xb8(%rsp), %rax
movq %rax, (%rdi)
leaq 0x4cd42(%rip), %rsi     # 0x720a1
leaq 0x4cd4a(%rip), %rdx     # 0x720b0
callq 0xedf0
leaq 0x1c8(%r15), %r14
leaq 0xa8(%rsp), %rsi
movq %r14, %rdi
callq 0x1c4c8
movb $0x1, (%rax)
leaq 0xd8(%rsp), %rdi
leaq 0xe8(%rsp), %rax
movq %rax, (%rdi)
leaq 0x4cb05(%rip), %rsi     # 0x71ea4
leaq 0x4cb06(%rip), %rdx     # 0x71eac
callq 0xedf0
movb $0x1, %bl
testb %r13b, %r13b
jne 0x253d0
leaq 0x100(%rsp), %rdi
movq 0x30(%rsp), %rsi
callq 0xefe4
cmpq $0x0, 0x108(%rsp)
setne %bl
leaq 0xd8(%rsp), %rsi
movq %r14, %rdi
callq 0x1c4c8
movb %bl, (%rax)
movq %r15, %rdi
movq 0x30(%rsp), %rsi
callq 0x18304
movq %rax, %r14
movq %rax, %rdi
callq 0x19de2
movq %r14, %rdi
callq 0xc640
testb %r13b, %r13b
jne 0x2541d
leaq 0x110(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2541d
callq 0xc640
movq 0xd8(%rsp), %rdi
leaq 0xe8(%rsp), %rax
cmpq %rax, %rdi
je 0x25437
callq 0xc640
movq 0xa8(%rsp), %rdi
leaq 0xb8(%rsp), %rax
cmpq %rax, %rdi
je 0x25451
callq 0xc640
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x2546b
callq 0xc640
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x2547f
callq 0xc640
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x25492
callq 0xc640
movq 0x20(%rsp), %rax
cmpl $0x0, 0xc4(%rax)
je 0x2574d
leaq 0x120(%rsp), %rdi
callq 0x11bec
movq %rax, %r14
movq %rsp, %rdi
leaq 0x10(%rsp), %rax
movq %rax, (%rdi)
leaq 0x4cbeb(%rip), %rsi     # 0x720b1
leaq 0x4cbf8(%rip), %rdx     # 0x720c5
callq 0xedf0
addq $0x38, %r14
movq %rsp, %rsi
movq %r14, %rdi
callq 0x12416
movl (%rax), %r13d
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x254f7
callq 0xc640
leaq 0x6f6fa(%rip), %rax     # 0x94bf8
movq (%rax), %rsi
movq 0x20(%rsp), %rax
movl 0xc4(%rax), %edx
movq %rsp, %rdi
callq 0xecde
movaps (%rsp), %xmm0
xorps %xmm1, %xmm1
movaps %xmm1, (%rsp)
movq 0x28(%rsp), %rdi
movaps %xmm0, 0x20(%rsp)
testq %rdi, %rdi
je 0x25542
callq 0xed76
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x25542
callq 0xed76
movq 0x20(%rsp), %rsi
movl 0xcc(%rsi), %ebx
cmpb $0x0, 0xc8(%rsp)
je 0x2567a
movl 0xc0(%rsi), %ebp
leaq 0x6f690(%rip), %rax     # 0x94bf8
movq (%rax), %rsi
movq %rsp, %rdi
movl %ebp, %edx
callq 0xecde
movaps (%rsp), %xmm0
xorps %xmm1, %xmm1
movaps %xmm1, (%rsp)
movq 0x28(%rsp), %rdi
movaps %xmm0, 0x20(%rsp)
testq %rdi, %rdi
je 0x255a3
callq 0xed76
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x255a3
callq 0xed76
movq 0x20(%rsp), %rsi
movq 0x60(%rsp), %r9
leaq 0xce(%rsp), %r8
movq 0x30(%rsp), %rdi
movl $0x3, %edx
movl 0x3c(%rsp), %ecx
callq 0x22fc8
movq 0x20(%rsp), %rax
movl 0xc0(%rax), %edx
cmpl %ebp, %edx
je 0x2574d
movl $0x1, %r12d
movq %rsp, %r14
leaq 0xce(%rsp), %r15
leaq 0x6f605(%rip), %rax     # 0x94bf8
movq (%rax), %rsi
movq %r14, %rdi
callq 0xecde
movaps (%rsp), %xmm0
xorps %xmm1, %xmm1
movaps %xmm1, (%rsp)
movq 0x28(%rsp), %rdi
movaps %xmm0, 0x20(%rsp)
testq %rdi, %rdi
je 0x2562c
callq 0xed76
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x2562c
callq 0xed76
cmpl %r13d, %ebx
setg %al
cmpl %r13d, %r12d
setge %cl
movq 0x20(%rsp), %rsi
movq 0x60(%rsp), %r9
andb %al, %cl
movzbl %cl, %eax
leal 0x3(,%rax,8), %edx
movq 0x30(%rsp), %rdi
movl 0x3c(%rsp), %ecx
movq %r15, %r8
callq 0x22fc8
movq 0x20(%rsp), %rax
movl 0xc0(%rax), %edx
incl %r12d
cmpl %ebp, %edx
jne 0x255ec
jmp 0x2574d
movl 0xb8(%rsi), %ebp
movq 0x60(%rsp), %r9
leaq 0xce(%rsp), %r8
movq 0x30(%rsp), %rdi
movl $0x3, %edx
movl 0x3c(%rsp), %ecx
callq 0x22fc8
movq 0x20(%rsp), %rax
movl 0xbc(%rax), %edx
cmpl %ebp, %edx
je 0x2574d
movl $0x1, %r12d
movq %rsp, %r14
leaq 0xce(%rsp), %r15
leaq 0x6f52d(%rip), %rax     # 0x94bf8
movq (%rax), %rsi
movq %r14, %rdi
callq 0xecde
movaps (%rsp), %xmm0
xorps %xmm1, %xmm1
movaps %xmm1, (%rsp)
movq 0x28(%rsp), %rdi
movaps %xmm0, 0x20(%rsp)
testq %rdi, %rdi
je 0x25704
callq 0xed76
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x25704
callq 0xed76
cmpl %r13d, %ebx
setg %al
cmpl %r13d, %r12d
setge %cl
movq 0x20(%rsp), %rsi
movq 0x60(%rsp), %r9
andb %al, %cl
movzbl %cl, %eax
leal 0x3(,%rax,8), %edx
movq 0x30(%rsp), %rdi
movl 0x3c(%rsp), %ecx
movq %r15, %r8
callq 0x22fc8
incl %r12d
movq 0x20(%rsp), %rax
movl 0xbc(%rax), %edx
cmpl %ebp, %edx
jne 0x256c4
callq 0xc050
movq %rax, %r14
movq %rsp, %rdi
leaq 0x10(%rsp), %rax
movq %rax, (%rdi)
leaq 0x4c2b6(%rip), %rsi     # 0x71a1d
leaq 0x4c2ba(%rip), %rdx     # 0x71a28
callq 0xedf0
leaq 0x6f5ae(%rip), %rdi     # 0x94d28
movq %rsp, %rsi
leaq 0x70(%rsp), %r12
callq 0x181be
movq 0x30(%rsp), %rbx
movq %rax, %r15
leaq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
movq %rax, (%rdi)
leaq 0x4c241(%rip), %rsi     # 0x719e4
leaq 0x4c23e(%rip), %rdx     # 0x719e8
callq 0xedf0
subq 0xf8(%rsp), %r14
movabsq $0x20c49ba5e353f7cf, %rcx # imm = 0x20C49BA5E353F7CF
movq %r14, %rax
imulq %rcx
movq %rdx, %rax
shrq $0x3f, %rax
shrq $0x7, %rdx
addl %eax, %edx
leaq 0x40(%rsp), %rsi
movq %r15, %rdi
callq 0x18388
movq %rax, %rdi
movq %rbx, %rsi
callq 0x18304
movq %rax, %rbx
movq %rax, %rdi
callq 0x19de2
movq %rbx, %rdi
callq 0xc640
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x25813
callq 0xc640
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x25826
callq 0xc640
movq 0x60(%rsp), %rdi
cmpq %r12, %rdi
jne 0x25211
jmp 0x25216
jmp 0x2591b
jmp 0x25931
jmp 0x25931
jmp 0x2598a
jmp 0x2599a
jmp 0x25a1a
jmp 0x25a1a
jmp 0x25a1a
jmp 0x25950
jmp 0x25943
jmp 0x25943
jmp 0x258fb
jmp 0x25948
jmp 0x25907
jmp 0x25907
jmp 0x25a1a
jmp 0x25a1a
jmp 0x25907
jmp 0x25a1a
jmp 0x25907
jmp 0x25907
jmp 0x25a1a
movq %rax, %rbx
testb %r13b, %r13b
jne 0x2599d
leaq 0x110(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2599d
callq 0xc640
jmp 0x2599d
jmp 0x258fb
jmp 0x25907
jmp 0x25a1a
jmp 0x2598a
jmp 0x2598a
jmp 0x258fb
jmp 0x258fb
jmp 0x25948
jmp 0x25948
jmp 0x25907
jmp 0x25907
jmp 0x25a1a
jmp 0x25a1a
jmp 0x2598a
jmp 0x25943
jmp 0x258fb
movq %rax, %rbx
jmp 0x259d1
jmp 0x25948
jmp 0x25907
movq %rax, %rbx
jmp 0x259ff
jmp 0x25a1a
jmp 0x25a1a
jmp 0x2598a
movq %rax, %rbx
movq 0x60(%rsp), %rdi
cmpq %r13, %rdi
je 0x25953
callq 0xc640
jmp 0x25953
jmp 0x25931
movq %rax, %rbx
jmp 0x25962
jmp 0x2598a
jmp 0x2598a
jmp 0x2598a
jmp 0x25948
jmp 0x25a1a
movq %rax, %rbx
jmp 0x259b7
movq %rax, %rbx
jmp 0x259eb
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r12, %rdi
je 0x25962
callq 0xc640
movq (%rsp), %rdi
cmpq %r15, %rdi
jne 0x25a2c
jmp 0x25a31
movq %rax, %rbx
movq 0x60(%rsp), %rdi
cmpq %r13, %rdi
jne 0x25a2c
jmp 0x25a31
movq %rax, %rbx
jmp 0x25a31
movq %rax, %rbx
jmp 0x25a40
movq %rax, %rbx
movq 0xd8(%rsp), %rdi
leaq 0xe8(%rsp), %rax
cmpq %rax, %rdi
je 0x259b7
callq 0xc640
movq 0xa8(%rsp), %rdi
leaq 0xb8(%rsp), %rax
cmpq %rax, %rdi
je 0x259d1
callq 0xc640
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x259eb
callq 0xc640
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x259ff
callq 0xc640
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x25a1d
callq 0xc640
jmp 0x25a1d
jmp 0x25a1a
jmp 0x25a1a
jmp 0x25a1a
movq %rax, %rbx
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x25a31
callq 0xc640
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x25a40
callq 0xed76
leaq 0x120(%rsp), %rdi
callq 0x11c0a
movq %rbx, %rdi
callq 0xc760
nopl (%rax)