// File: /workspace/github_c_makefile_star2_O0/coyove[P]chann/./src/main.cpp
// Function: event_handle(mg_connection*, mg_event)
static int event_handle(struct mg_connection *conn, enum mg_event ev) {
    switch(ev){
        case MG_REQUEST:
            if (conn->is_websocket) {
                websocket::poll(conn);
                return MG_TRUE;
            } 
            else if (strstr(conn->uri, "/assets/")){
                mg_send_file(conn, conn->uri + 1, "");
                return MG_MORE;
            }
            else{
                pair<int, map<string, string>> r = route::route(conn->uri);
                // for(auto i = r.second.begin(); i != r.second.end(); ++i) cout << i->first << "=" << i ->second << endl;
                
                int id;
                struct Thread *tt;

                switch(r.first){
                    case route::POST_THREAD:
                    case route::POST_REPLY:
                        if(!check_ip(conn) || configs.global().get<bool>("archive")) break;
                        actions::post::call(conn, r.first == route::POST_THREAD ? 0 : atol(r.second["no"].c_str()));
                        break;
                    case route::SUCCESS:
                        views::success::render(conn, r.second["cookie"], atol(r.second["no"].c_str()));
                        break;
                    case route::THREAD:
                    case route::DAERHT:
                        id = atol(r.second["no"].c_str());
                        views::expand::render(conn, id, r.first == route::DAERHT);
                        break;
                    case route::TIMELINE:
                        views::timeline::render(conn, false);
                        break;
                    case route::GALLERY:
                        views::gallery::render(conn);
                        break;
                    case route::LINEAR:
                        if(!check_ip(conn, true)) break;
                        views::linear::render(conn);
                        break;
                    case route::LINEAR_IP:
                        views::linear::render(conn, true, false, r.second["ip"].c_str());
                        break;
                    case route::LINEAR_ID:
                        views::linear::render(conn, false, true, r.second["id"].c_str());
                        break;
                    case route::ADMIN_PANEL:
                        views::admin::render(conn);
                        break;
                    case route::SELF_DELETE:
                        id = atol(r.second["no"].c_str());
                        if(actions::kill::call(conn, id))
                            views::info::render(conn, templates.invoke("misc").toggle("delete_okay").var("THREAD_NO", id).build_destory().c_str());
                        else
                            views::info::render(conn, templates.invoke("misc").toggle("try_to_usurp").build_destory().c_str());
                        break;
                    case route::API_THREAD:
                        tt = unq_read_thread(pDb, atol( r.second["no"].c_str() ));
                        views::each_thread(conn, tt, 0, is_admin(conn));
                        delete tt;
                        break;
                    case route::IMAGE:
                        cc_serve_image_file(conn);
                        break;
                    case route::ADMIN_ACTION:
                        actions::admin::call(conn);
                        break;
                    default:
                    if(configs.global().get<bool>("welcome")){
                        templates.invoke("site_header").pipe_to(conn).destory();
                        templates.invoke("site_welcome").pipe_to(conn).destory();
                        templates.invoke("site_footer").var("TIME", 0).pipe_to(conn).destory();
                    }else
                        views::timeline::render(conn, true);
                }

                fflush(log_file); // flush the buffer
                return MG_TRUE;
            }
        case MG_WS_CONNECT:
            websocket::connect(conn);
            return MG_FALSE;
        case MG_CLOSE:
            websocket::disconnect(conn);
            return MG_TRUE;
        case MG_AUTH:
            return MG_TRUE;
        default:
            return MG_FALSE;
    }
}

// Assembly:
subq $0x618, %rsp            # imm = 0x618
movq %rdi, 0x608(%rsp)
movl %esi, 0x604(%rsp)
movl 0x604(%rsp), %eax
addl $-0x66, %eax
movl %eax, %ecx
movq %rcx, 0x228(%rsp)
subl $0x6, %eax
ja 0x23576
movq 0x228(%rsp), %rax
leaq 0x9d7de(%rip), %rcx     # 0xbf6a0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x608(%rsp), %rax
cmpl $0x0, 0x278(%rax)
je 0x21ef9
movq 0x608(%rsp), %rdi
callq 0x4dd70
movl $0x1, 0x614(%rsp)
jmp 0x23581
movq 0x608(%rsp), %rax
movq 0x8(%rax), %rdi
leaq 0x9de1d(%rip), %rsi     # 0xbfd29
callq 0xd660
cmpq $0x0, %rax
je 0x21f4b
movq 0x608(%rsp), %rdi
movq 0x608(%rsp), %rax
movq 0x8(%rax), %rsi
addq $0x1, %rsi
leaq 0xa3c15(%rip), %rdx     # 0xc5b4b
callq 0xb4c90
movl $0x2, 0x614(%rsp)
jmp 0x23581
movq 0x608(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x218(%rsp)
leaq 0x5a7(%rsp), %rdi
movq %rdi, 0x220(%rsp)
callq 0xdc30
movq 0x218(%rsp), %rsi
movq 0x220(%rsp), %rdx
leaq 0x5a8(%rsp), %rdi
callq 0xdad0
jmp 0x21f93
leaq 0x5c8(%rsp), %rdi
leaq 0x5a8(%rsp), %rsi
callq 0x1b1d0
jmp 0x21faa
leaq 0x5a8(%rsp), %rdi
callq 0xdf50
leaq 0x5a7(%rsp), %rdi
callq 0xdf30
movl 0x5c8(%rsp), %eax
movl %eax, 0x214(%rsp)
decl %eax
subl $0x2, %eax
jb 0x2261e
jmp 0x21fdf
movl 0x214(%rsp), %eax
subl $0x3, %eax
je 0x230e6
jmp 0x21ff1
movl 0x214(%rsp), %eax
subl $0x4, %eax
je 0x22423
jmp 0x22003
movl 0x214(%rsp), %eax
subl $0x64, %eax
je 0x2272a
jmp 0x22015
movl 0x214(%rsp), %eax
subl $0x65, %eax
je 0x22740
jmp 0x22027
movl 0x214(%rsp), %eax
subl $0x66, %eax
je 0x22754
jmp 0x22039
movl 0x214(%rsp), %eax
subl $0x67, %eax
je 0x227a0
jmp 0x2204b
movl 0x214(%rsp), %eax
subl $0x68, %eax
je 0x228a0
jmp 0x2205d
movl 0x214(%rsp), %eax
subl $0xc8, %eax
je 0x229a0
jmp 0x22071
movl 0x214(%rsp), %eax
subl $0x1f5, %eax            # imm = 0x1F5
je 0x229b4
jmp 0x22085
movl 0x214(%rsp), %eax
subl $0x1f6, %eax            # imm = 0x1F6
je 0x22f5a
jmp 0x22099
movl 0x214(%rsp), %eax
subl $0x1f7, %eax            # imm = 0x1F7
je 0x230fa
jmp 0x220ad
movl 0x214(%rsp), %eax
addl $0xfffffe08, %eax       # imm = 0xFFFFFE08
subl $0x2, %eax
jb 0x2210c
jmp 0x2310e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
jmp 0x220fa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
leaq 0x5a8(%rsp), %rdi
callq 0xdf50
leaq 0x5a7(%rsp), %rdi
callq 0xdf30
jmp 0x23590
movq 0x608(%rsp), %rdi
movb $0x0, 0x566(%rsp)
movb $0x0, 0x565(%rsp)
xorl %esi, %esi
callq 0x1b740
movb %al, 0x213(%rsp)
jmp 0x22134
movb 0x213(%rsp), %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, 0x212(%rsp)
jne 0x2214e
jmp 0x221d3
leaq 0xccdf3(%rip), %rdi     # 0xeef48
callq 0x146c0
movq %rax, 0x200(%rsp)
leaq 0x567(%rsp), %rdi
movq %rdi, 0x208(%rsp)
callq 0xdc30
movq 0x208(%rsp), %rdx
movb $0x1, 0x566(%rsp)
leaq 0xa39d3(%rip), %rsi     # 0xc5b61
leaq 0x568(%rsp), %rdi
callq 0xdad0
jmp 0x2219d
movq 0x200(%rsp), %rdi
movb $0x1, 0x565(%rsp)
leaq 0x568(%rsp), %rsi
callq 0x23990
movb %al, 0x1ff(%rsp)
jmp 0x221c3
movb 0x1ff(%rsp), %al
movb %al, 0x212(%rsp)
jmp 0x221d3
movb 0x212(%rsp), %al
movb %al, 0x1fe(%rsp)
testb $0x1, 0x565(%rsp)
jne 0x221ed
jmp 0x221fa
leaq 0x568(%rsp), %rdi
callq 0xdf50
testb $0x1, 0x566(%rsp)
jne 0x22206
jmp 0x22213
leaq 0x567(%rsp), %rdi
callq 0xdf30
movb 0x1fe(%rsp), %al
testb $0x1, %al
jne 0x22223
jmp 0x222a4
jmp 0x234fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
jmp 0x23526
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
jmp 0x22286
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
testb $0x1, 0x565(%rsp)
jne 0x22277
jmp 0x22284
leaq 0x568(%rsp), %rdi
callq 0xdf50
jmp 0x22286
testb $0x1, 0x566(%rsp)
jne 0x22292
jmp 0x2229f
leaq 0x567(%rsp), %rdi
callq 0xdf30
jmp 0x23526
movq 0x608(%rsp), %rax
movq %rax, 0x1f0(%rsp)
movl 0x5c8(%rsp), %eax
movb $0x0, 0x53e(%rsp)
movb $0x0, 0x53d(%rsp)
cmpl $0x1f8, %eax            # imm = 0x1F8
jne 0x222e1
xorl %eax, %eax
movq %rax, 0x1e8(%rsp)
jmp 0x22370
leaq 0x5d0(%rsp), %rax
movq %rax, 0x1d8(%rsp)
leaq 0x53f(%rsp), %rdi
movq %rdi, 0x1e0(%rsp)
callq 0xdc30
movq 0x1e0(%rsp), %rdx
movb $0x1, 0x53e(%rsp)
leaq 0x9d830(%rip), %rsi     # 0xbfb4d
leaq 0x540(%rsp), %rdi
callq 0xdad0
jmp 0x2232c
movq 0x1d8(%rsp), %rdi
movb $0x1, 0x53d(%rsp)
leaq 0x540(%rsp), %rsi
callq 0x30a50
movq %rax, 0x1d0(%rsp)
jmp 0x22353
movq 0x1d0(%rsp), %rdi
callq 0xd190
movq %rax, %rdi
callq 0xd840
movq %rax, 0x1e8(%rsp)
movq 0x1f0(%rsp), %rdi
movq 0x1e8(%rsp), %rax
movl %eax, %esi
callq 0x4fac0
jmp 0x22389
testb $0x1, 0x53d(%rsp)
jne 0x22395
jmp 0x223a2
leaq 0x540(%rsp), %rdi
callq 0xdf50
testb $0x1, 0x53e(%rsp)
jne 0x223ae
jmp 0x223bb
leaq 0x53f(%rsp), %rdi
callq 0xdf30
jmp 0x234fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
jmp 0x22405
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
testb $0x1, 0x53d(%rsp)
jne 0x223f6
jmp 0x22403
leaq 0x540(%rsp), %rdi
callq 0xdf50
jmp 0x22405
testb $0x1, 0x53e(%rsp)
jne 0x22411
jmp 0x2241e
leaq 0x53f(%rsp), %rdi
callq 0xdf30
jmp 0x23526
movq 0x608(%rsp), %rax
movq %rax, 0x1b8(%rsp)
leaq 0x5d0(%rsp), %rax
movq %rax, 0x1c0(%rsp)
leaq 0x4f7(%rsp), %rdi
movq %rdi, 0x1c8(%rsp)
callq 0xdc30
movq 0x1c8(%rsp), %rdx
leaq 0x9d5b9(%rip), %rsi     # 0xbfa20
leaq 0x4f8(%rsp), %rdi
callq 0xdad0
jmp 0x22476
movq 0x1c0(%rsp), %rdi
leaq 0x4f8(%rsp), %rsi
callq 0x30a50
movq %rax, 0x1b0(%rsp)
jmp 0x22495
movq 0x1b0(%rsp), %rsi
leaq 0x518(%rsp), %rdi
callq 0xd1b0
jmp 0x224ac
leaq 0x5d0(%rsp), %rax
movq %rax, 0x1a0(%rsp)
leaq 0x4cf(%rsp), %rdi
movq %rdi, 0x1a8(%rsp)
callq 0xdc30
movq 0x1a8(%rsp), %rdx
leaq 0x9d66d(%rip), %rsi     # 0xbfb4d
leaq 0x4d0(%rsp), %rdi
callq 0xdad0
jmp 0x224ef
movq 0x1a0(%rsp), %rdi
leaq 0x4d0(%rsp), %rsi
callq 0x30a50
movq %rax, 0x198(%rsp)
jmp 0x2250e
movq 0x198(%rsp), %rdi
callq 0xd190
movq %rax, %rdi
callq 0xd840
movq 0x1b8(%rsp), %rdi
movl %eax, %edx
leaq 0x518(%rsp), %rsi
callq 0x429b0
jmp 0x2253c
leaq 0x4d0(%rsp), %rdi
callq 0xdf50
leaq 0x4cf(%rsp), %rdi
callq 0xdf30
leaq 0x518(%rsp), %rdi
callq 0xdf50
leaq 0x4f8(%rsp), %rdi
callq 0xdf50
leaq 0x4f7(%rsp), %rdi
callq 0xdf30
jmp 0x234fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
jmp 0x2260c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
jmp 0x225ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
jmp 0x225e5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
leaq 0x4d0(%rsp), %rdi
callq 0xdf50
leaq 0x4cf(%rsp), %rdi
callq 0xdf30
leaq 0x518(%rsp), %rdi
callq 0xdf50
leaq 0x4f8(%rsp), %rdi
callq 0xdf50
leaq 0x4f7(%rsp), %rdi
callq 0xdf30
jmp 0x23526
leaq 0x5d0(%rsp), %rax
movq %rax, 0x188(%rsp)
leaq 0x4a7(%rsp), %rdi
movq %rdi, 0x190(%rsp)
callq 0xdc30
movq 0x190(%rsp), %rdx
leaq 0x9d4fb(%rip), %rsi     # 0xbfb4d
leaq 0x4a8(%rsp), %rdi
callq 0xdad0
jmp 0x22661
movq 0x188(%rsp), %rdi
leaq 0x4a8(%rsp), %rsi
callq 0x30a50
movq %rax, 0x180(%rsp)
jmp 0x22680
movq 0x180(%rsp), %rdi
callq 0xd190
movq %rax, %rdi
callq 0xd840
movl %eax, 0x590(%rsp)
leaq 0x4a8(%rsp), %rdi
callq 0xdf50
leaq 0x4a7(%rsp), %rdi
callq 0xdf30
movq 0x608(%rsp), %rdi
movl 0x590(%rsp), %esi
movl 0x5c8(%rsp), %eax
subl $0x2, %eax
sete %al
movzbl %al, %edx
callq 0x42fd0
jmp 0x226dc
jmp 0x234fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
jmp 0x22718
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
leaq 0x4a8(%rsp), %rdi
callq 0xdf50
leaq 0x4a7(%rsp), %rdi
callq 0xdf30
jmp 0x23526
movq 0x608(%rsp), %rdi
xorl %esi, %esi
callq 0x4b770
jmp 0x2273b
jmp 0x234fe
movq 0x608(%rsp), %rdi
callq 0x450e0
jmp 0x2274f
jmp 0x234fe
movq 0x608(%rsp), %rdi
movl $0x1, %esi
callq 0x1b740
movb %al, 0x17f(%rsp)
jmp 0x2276f
movb 0x17f(%rsp), %al
testb $0x1, %al
jne 0x22781
jmp 0x2277c
jmp 0x234fe
movq 0x608(%rsp), %rdi
leaq 0xa33bb(%rip), %rcx     # 0xc5b4b
xorl %edx, %edx
movl %edx, %esi
callq 0x49ec0
jmp 0x2279b
jmp 0x234fe
movq 0x608(%rsp), %rax
movq %rax, 0x160(%rsp)
leaq 0x5d0(%rsp), %rax
movq %rax, 0x168(%rsp)
leaq 0x47f(%rsp), %rdi
movq %rdi, 0x170(%rsp)
callq 0xdc30
movq 0x170(%rsp), %rdx
leaq 0x9d3a3(%rip), %rsi     # 0xbfb87
leaq 0x480(%rsp), %rdi
callq 0xdad0
jmp 0x227f3
movq 0x168(%rsp), %rdi
leaq 0x480(%rsp), %rsi
callq 0x30a50
movq %rax, 0x158(%rsp)
jmp 0x22812
movq 0x158(%rsp), %rdi
callq 0xd190
movq 0x160(%rsp), %rdi
movq %rax, %rcx
movl $0x1, %esi
xorl %edx, %edx
callq 0x49ec0
jmp 0x22838
leaq 0x480(%rsp), %rdi
callq 0xdf50
leaq 0x47f(%rsp), %rdi
callq 0xdf30
jmp 0x234fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
jmp 0x2288e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
leaq 0x480(%rsp), %rdi
callq 0xdf50
leaq 0x47f(%rsp), %rdi
callq 0xdf30
jmp 0x23526
movq 0x608(%rsp), %rax
movq %rax, 0x140(%rsp)
leaq 0x5d0(%rsp), %rax
movq %rax, 0x148(%rsp)
leaq 0x457(%rsp), %rdi
movq %rdi, 0x150(%rsp)
callq 0xdc30
movq 0x150(%rsp), %rdx
leaq 0x9d2b0(%rip), %rsi     # 0xbfb94
leaq 0x458(%rsp), %rdi
callq 0xdad0
jmp 0x228f3
movq 0x148(%rsp), %rdi
leaq 0x458(%rsp), %rsi
callq 0x30a50
movq %rax, 0x138(%rsp)
jmp 0x22912
movq 0x138(%rsp), %rdi
callq 0xd190
movq 0x140(%rsp), %rdi
movq %rax, %rcx
xorl %esi, %esi
movl $0x1, %edx
callq 0x49ec0
jmp 0x22938
leaq 0x458(%rsp), %rdi
callq 0xdf50
leaq 0x457(%rsp), %rdi
callq 0xdf30
jmp 0x234fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
jmp 0x2298e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
leaq 0x458(%rsp), %rdi
callq 0xdf50
leaq 0x457(%rsp), %rdi
callq 0xdf30
jmp 0x23526
movq 0x608(%rsp), %rdi
callq 0x1ea60
jmp 0x229af
jmp 0x234fe
leaq 0x5d0(%rsp), %rax
movq %rax, 0x128(%rsp)
leaq 0x42f(%rsp), %rdi
movq %rdi, 0x130(%rsp)
callq 0xdc30
movq 0x130(%rsp), %rdx
leaq 0x9d165(%rip), %rsi     # 0xbfb4d
leaq 0x430(%rsp), %rdi
callq 0xdad0
jmp 0x229f7
movq 0x128(%rsp), %rdi
leaq 0x430(%rsp), %rsi
callq 0x30a50
movq %rax, 0x120(%rsp)
jmp 0x22a16
movq 0x120(%rsp), %rdi
callq 0xd190
movq %rax, %rdi
callq 0xd840
movl %eax, 0x590(%rsp)
leaq 0x430(%rsp), %rdi
callq 0xdf50
leaq 0x42f(%rsp), %rdi
callq 0xdf30
movq 0x608(%rsp), %rdi
movl 0x590(%rsp), %esi
xorl %edx, %edx
callq 0x4f980
movb %al, 0x11f(%rsp)
jmp 0x22a6b
movb 0x11f(%rsp), %al
testb $0x1, %al
jne 0x22a7b
jmp 0x22d6c
movq 0x608(%rsp), %rax
movq %rax, 0x108(%rsp)
leaq 0x3e7(%rsp), %rdi
movq %rdi, 0x110(%rsp)
callq 0xdc30
movq 0x110(%rsp), %rdx
leaq 0x9f2dc(%rip), %rsi     # 0xc1d8b
leaq 0x3e8(%rsp), %rdi
callq 0xdad0
jmp 0x22abe
leaq 0xcc65b(%rip), %rdi     # 0xef120
leaq 0x3e8(%rsp), %rsi
callq 0x23b70
movq %rax, 0x100(%rsp)
jmp 0x22adc
leaq 0x3bf(%rsp), %rdi
movq %rdi, 0xf8(%rsp)
callq 0xdc30
movq 0xf8(%rsp), %rdx
leaq 0x9d232(%rip), %rsi     # 0xbfd32
leaq 0x3c0(%rsp), %rdi
callq 0xdad0
jmp 0x22b0f
movq 0x100(%rsp), %rdi
leaq 0x3c0(%rsp), %rsi
movl $0x1, %edx
callq 0x23bf0
movq %rax, 0xf0(%rsp)
jmp 0x22b33
leaq 0x397(%rsp), %rdi
movq %rdi, 0xe8(%rsp)
callq 0xdc30
movq 0xe8(%rsp), %rdx
leaq 0x9d1e7(%rip), %rsi     # 0xbfd3e
leaq 0x398(%rsp), %rdi
callq 0xdad0
jmp 0x22b66
movq 0xf0(%rsp), %rdi
movl 0x590(%rsp), %edx
leaq 0x398(%rsp), %rsi
callq 0x24100
movq %rax, 0xe0(%rsp)
jmp 0x22b8c
movq 0xe0(%rsp), %rsi
leaq 0x408(%rsp), %rdi
callq 0x23c40
jmp 0x22ba3
leaq 0x408(%rsp), %rdi
callq 0xd190
movq 0x108(%rsp), %rdi
movq %rax, %rsi
callq 0x3f960
jmp 0x22bc2
leaq 0x408(%rsp), %rdi
callq 0xdf50
leaq 0x398(%rsp), %rdi
callq 0xdf50
leaq 0x397(%rsp), %rdi
callq 0xdf30
leaq 0x3c0(%rsp), %rdi
callq 0xdf50
leaq 0x3bf(%rsp), %rdi
callq 0xdf30
leaq 0x3e8(%rsp), %rdi
callq 0xdf50
leaq 0x3e7(%rsp), %rdi
callq 0xdf30
jmp 0x22f55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
jmp 0x22c59
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
leaq 0x430(%rsp), %rdi
callq 0xdf50
leaq 0x42f(%rsp), %rdi
callq 0xdf30
jmp 0x23526
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
jmp 0x22d5a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
jmp 0x22d4d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
jmp 0x22d40
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
jmp 0x22d33
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
jmp 0x22d26
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
jmp 0x22d19
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
leaq 0x408(%rsp), %rdi
callq 0xdf50
leaq 0x398(%rsp), %rdi
callq 0xdf50
leaq 0x397(%rsp), %rdi
callq 0xdf30
leaq 0x3c0(%rsp), %rdi
callq 0xdf50
leaq 0x3bf(%rsp), %rdi
callq 0xdf30
leaq 0x3e8(%rsp), %rdi
callq 0xdf50
leaq 0x3e7(%rsp), %rdi
callq 0xdf30
jmp 0x23526
movq 0x608(%rsp), %rax
movq %rax, 0xd0(%rsp)
leaq 0x34f(%rsp), %rdi
movq %rdi, 0xd8(%rsp)
callq 0xdc30
movq 0xd8(%rsp), %rdx
leaq 0x9efeb(%rip), %rsi     # 0xc1d8b
leaq 0x350(%rsp), %rdi
callq 0xdad0
jmp 0x22daf
leaq 0xcc36a(%rip), %rdi     # 0xef120
leaq 0x350(%rsp), %rsi
callq 0x23b70
movq %rax, 0xc8(%rsp)
jmp 0x22dcd
leaq 0x327(%rsp), %rdi
movq %rdi, 0xc0(%rsp)
callq 0xdc30
movq 0xc0(%rsp), %rdx
leaq 0x9ca15(%rip), %rsi     # 0xbf806
leaq 0x328(%rsp), %rdi
callq 0xdad0
jmp 0x22e00
movq 0xc8(%rsp), %rdi
leaq 0x328(%rsp), %rsi
movl $0x1, %edx
callq 0x23bf0
movq %rax, 0xb8(%rsp)
jmp 0x22e24
movq 0xb8(%rsp), %rsi
leaq 0x370(%rsp), %rdi
callq 0x23c40
jmp 0x22e3b
leaq 0x370(%rsp), %rdi
callq 0xd190
movq 0xd0(%rsp), %rdi
movq %rax, %rsi
callq 0x3f960
jmp 0x22e5a
leaq 0x370(%rsp), %rdi
callq 0xdf50
leaq 0x328(%rsp), %rdi
callq 0xdf50
leaq 0x327(%rsp), %rdi
callq 0xdf30
leaq 0x350(%rsp), %rdi
callq 0xdf50
leaq 0x34f(%rsp), %rdi
callq 0xdf30
jmp 0x22f55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
jmp 0x22f43
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
jmp 0x22f36
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
jmp 0x22f29
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
jmp 0x22f1c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
leaq 0x370(%rsp), %rdi
callq 0xdf50
leaq 0x328(%rsp), %rdi
callq 0xdf50
leaq 0x327(%rsp), %rdi
callq 0xdf30
leaq 0x350(%rsp), %rdi
callq 0xdf50
leaq 0x34f(%rsp), %rdi
callq 0xdf30
jmp 0x23526
jmp 0x234fe
movq 0xcc08f(%rip), %rax     # 0xeeff0
movq %rax, 0xa0(%rsp)
leaq 0x5d0(%rsp), %rax
movq %rax, 0xa8(%rsp)
leaq 0x2ff(%rsp), %rdi
movq %rdi, 0xb0(%rsp)
callq 0xdc30
movq 0xb0(%rsp), %rdx
leaq 0x9cbb0(%rip), %rsi     # 0xbfb4d
leaq 0x300(%rsp), %rdi
callq 0xdad0
jmp 0x22fac
movq 0xa8(%rsp), %rdi
leaq 0x300(%rsp), %rsi
callq 0x30a50
movq %rax, 0x98(%rsp)
jmp 0x22fcb
movq 0x98(%rsp), %rdi
callq 0xd190
movq %rax, %rdi
callq 0xd840
movq 0xa0(%rsp), %rdi
movl %eax, %esi
callq 0xea50
movq %rax, 0x90(%rsp)
jmp 0x22ff9
movq 0x90(%rsp), %rax
movq %rax, 0x588(%rsp)
leaq 0x300(%rsp), %rdi
callq 0xdf50
leaq 0x2ff(%rsp), %rdi
callq 0xdf30
movq 0x608(%rsp), %rdi
movq %rdi, 0x78(%rsp)
movq 0x588(%rsp), %rax
movq %rax, 0x80(%rsp)
callq 0x101d0
movb %al, 0x8f(%rsp)
jmp 0x2304e
movq 0x80(%rsp), %rsi
movq 0x78(%rsp), %rdi
movb 0x8f(%rsp), %al
movzbl %al, %ecx
andl $0x1, %ecx
leaq 0xa2adc(%rip), %r9      # 0xc5b4b
xorl %edx, %edx
movq %r9, %r8
callq 0x3fe90
jmp 0x2307b
movq 0x588(%rsp), %rax
movq %rax, 0x70(%rsp)
cmpq $0x0, %rax
je 0x23098
movq 0x70(%rsp), %rdi
callq 0xd760
jmp 0x234fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
jmp 0x230d4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
leaq 0x300(%rsp), %rdi
callq 0xdf50
leaq 0x2ff(%rsp), %rdi
callq 0xdf30
jmp 0x23526
movq 0x608(%rsp), %rdi
callq 0x13ad0
jmp 0x230f5
jmp 0x234fe
movq 0x608(%rsp), %rdi
callq 0x1c110
jmp 0x23109
jmp 0x234fe
leaq 0xcbe33(%rip), %rdi     # 0xeef48
callq 0x146c0
movq %rax, 0x60(%rsp)
leaq 0x2d7(%rsp), %rdi
movq %rdi, 0x68(%rsp)
callq 0xdc30
movq 0x68(%rsp), %rdx
leaq 0x9cc10(%rip), %rsi     # 0xbfd4d
leaq 0x2d8(%rsp), %rdi
callq 0xdad0
jmp 0x2314c
movq 0x60(%rsp), %rdi
leaq 0x2d8(%rsp), %rsi
callq 0x23990
movb %al, 0x5f(%rsp)
jmp 0x23164
leaq 0x2d8(%rsp), %rdi
callq 0xdf50
leaq 0x2d7(%rsp), %rdi
callq 0xdf30
movb 0x5f(%rsp), %al
testb $0x1, %al
jne 0x2318b
jmp 0x234e6
leaq 0x2af(%rsp), %rdi
movq %rdi, 0x50(%rsp)
callq 0xdc30
movq 0x50(%rsp), %rdx
leaq 0x9c78c(%rip), %rsi     # 0xbf935
leaq 0x2b0(%rsp), %rdi
callq 0xdad0
jmp 0x231b8
leaq 0xcbf61(%rip), %rdi     # 0xef120
leaq 0x2b0(%rsp), %rsi
callq 0x23b70
movq %rax, 0x48(%rsp)
jmp 0x231d3
movq 0x48(%rsp), %rdi
movq 0x608(%rsp), %rsi
callq 0x24010
movq %rax, 0x40(%rsp)
jmp 0x231ec
movq 0x40(%rsp), %rdi
callq 0x240c0
leaq 0x2b0(%rsp), %rdi
callq 0xdf50
leaq 0x2af(%rsp), %rdi
callq 0xdf30
leaq 0x287(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0xdc30
movq 0x38(%rsp), %rdx
leaq 0x9cb1a(%rip), %rsi     # 0xbfd48
leaq 0x288(%rsp), %rdi
callq 0xdad0
jmp 0x2323d
leaq 0xcbedc(%rip), %rdi     # 0xef120
leaq 0x288(%rsp), %rsi
callq 0x23b70
movq %rax, 0x30(%rsp)
jmp 0x23258
movq 0x30(%rsp), %rdi
movq 0x608(%rsp), %rsi
callq 0x24010
movq %rax, 0x28(%rsp)
jmp 0x23271
movq 0x28(%rsp), %rdi
callq 0x240c0
leaq 0x288(%rsp), %rdi
callq 0xdf50
leaq 0x287(%rsp), %rdi
callq 0xdf30
leaq 0x25f(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0xdc30
movq 0x20(%rsp), %rdx
leaq 0x9c702(%rip), %rsi     # 0xbf9b5
leaq 0x260(%rsp), %rdi
callq 0xdad0
jmp 0x232c2
leaq 0xcbe57(%rip), %rdi     # 0xef120
leaq 0x260(%rsp), %rsi
callq 0x23b70
movq %rax, 0x18(%rsp)
jmp 0x232dd
leaq 0x237(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0xdc30
movq 0x10(%rsp), %rdx
leaq 0x9c681(%rip), %rsi     # 0xbf97c
leaq 0x238(%rsp), %rdi
callq 0xdad0
jmp 0x2330a
movq 0x18(%rsp), %rdi
leaq 0x238(%rsp), %rsi
xorl %edx, %edx
callq 0x24100
movq %rax, 0x8(%rsp)
jmp 0x23325
movq 0x8(%rsp), %rdi
movq 0x608(%rsp), %rsi
callq 0x24010
movq %rax, (%rsp)
jmp 0x2333d
movq (%rsp), %rdi
callq 0x240c0
leaq 0x238(%rsp), %rdi
callq 0xdf50
leaq 0x237(%rsp), %rdi
callq 0xdf30
leaq 0x260(%rsp), %rdi
callq 0xdf50
leaq 0x25f(%rsp), %rdi
callq 0xdf30
jmp 0x234fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
jmp 0x233b6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
leaq 0x2d8(%rsp), %rdi
callq 0xdf50
leaq 0x2d7(%rsp), %rdi
callq 0xdf30
jmp 0x23526
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
jmp 0x233ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
leaq 0x2b0(%rsp), %rdi
callq 0xdf50
leaq 0x2af(%rsp), %rdi
callq 0xdf30
jmp 0x23526
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
jmp 0x23448
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
leaq 0x288(%rsp), %rdi
callq 0xdf50
leaq 0x287(%rsp), %rdi
callq 0xdf30
jmp 0x23526
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
jmp 0x234d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
jmp 0x234ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
jmp 0x234bd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x598(%rsp)
movl %eax, 0x594(%rsp)
leaq 0x238(%rsp), %rdi
callq 0xdf50
leaq 0x237(%rsp), %rdi
callq 0xdf30
leaq 0x260(%rsp), %rdi
callq 0xdf50
leaq 0x25f(%rsp), %rdi
callq 0xdf30
jmp 0x23526
movq 0x608(%rsp), %rdi
movl $0x1, %esi
callq 0x4b770
jmp 0x234fa
jmp 0x234fc
jmp 0x234fe
movq 0xcbb6b(%rip), %rdi     # 0xef070
callq 0xd6c0
jmp 0x2350c
movl $0x1, 0x614(%rsp)
leaq 0x5c8(%rsp), %rdi
callq 0x3d470
jmp 0x23581
leaq 0x5c8(%rsp), %rdi
callq 0x3d470
jmp 0x23590
movq 0x608(%rsp), %rdi
callq 0x4df50
movl $0x0, 0x614(%rsp)
jmp 0x23581
movq 0x608(%rsp), %rdi
callq 0x4e2a0
movl $0x1, 0x614(%rsp)
jmp 0x23581
movl $0x1, 0x614(%rsp)
jmp 0x23581
movl $0x0, 0x614(%rsp)
movl 0x614(%rsp), %eax
addq $0x618, %rsp            # imm = 0x618
retq
movq 0x598(%rsp), %rdi
callq 0xd8a0
nopl (%rax)