// File: /workspace/github_c_makefile_star2_O0/sszllzss[P]webSocket_Libevent_ThreadPool/ev_httpd.cpp
// Function: resqonse(httpChilent_t*)
int resqonse(struct httpChilent_t *client)
{
    struct evbuffer * evbuff = evbuffer_new();
    HeadParameterMap::iterator v;
    if(evbuff == NULL)
    {
        return -1;
    }
    pthread_mutex_lock(&client->lock);
    gettimeofday(&client->final_optime, NULL);
    do{
        if(client->resqonse.resqonseCode == 0)
        {
            pthread_mutex_unlock(&client->lock);
            return -1;
        }
        if(client->request.http_version == NULL)
        {
            client->request.http_version = (char *)malloc(strlen("HTTP/1.1"));
            if(client->request.http_version == NULL)
            {
                pthread_mutex_unlock(&client->lock);
                return -1;
            }
            strcpy(client->request.http_version,"HTTP/1.1");
        }
        if(client->resqonse.resqonseCode ==  HTTP_OK )
        {
            evbuffer_add_printf(evbuff, "%s %d %s\r\n", client->request.http_version, HTTP_OK, HTTP_OK_VALUE);
        }
        else if(client->resqonse.resqonseCode == HTTP_SWITCHING_PROTOCOLS)
        {
            evbuffer_add_printf(evbuff, "%s %d %s\r\n", client->request.http_version, HTTP_SWITCHING_PROTOCOLS, HTTP_SWITCHING_PROTOCOLS_VALUE);
            evbuffer_add_printf(evbuff, "Upgrade: websocket\r\n");
            evbuffer_add_printf(evbuff, "Connection: Upgrade\r\n");
            v = client->resqonse.HeadParameter->find("Sec-WebSocket-Accept");
            if(v == client->resqonse.HeadParameter->end())
            {
                evbuffer_free(evbuff);
                return -1;
            }
            evbuffer_add_printf(evbuff, "%s: %s\r\n", v->first.c_str(),v->second.c_str());
            client->resqonse.HeadParameter->erase(v);
            time_t now;
            struct tm *tm_now;
            char timeStr[50] = {0};
            time(&now);
            tm_now = localtime(&now);
            strftime(timeStr, sizeof(timeStr), "%a, %d %b %Y %T %Z", tm_now);
            evbuffer_add_printf(evbuff, "Date: %s\r\n", timeStr);
            evbuffer_add_printf(evbuff, "\r\n");
            client->stat = HTTP_WS_DATA;
            WebddSocket_Thread_Cb_arg_t * cb_arg = (WebddSocket_Thread_Cb_arg_t *)malloc(sizeof(WebddSocket_Thread_Cb_arg_t));
            cb_arg->client = client;
            cb_arg->type = Ws_Cb_Type_connect;
            threadpool_add(evbase_threadpool_get_threadpool(client->httpServer->evb_thpool), webSocke_thread_cb, cb_arg);
            break;
        }
        else
        {
            switch(client->resqonse.resqonseCode)
            {
            case HTTP_NOCONTENT:
                evbuffer_add_printf(evbuff, "%s %d %s\r\n", client->request.http_version,
                                    HTTP_NOCONTENT, HTTP_NOCONTENT_VALUE);
                if(client->resqonse.resqonse_data == NULL)
                {
                    evbuffer_add_printf(evbuff, "Content-Type: text/html\r\n");
                    evbuffer_add_printf(evbuff, "Content-Length: %d\r\n", (int)strlen(HTTP_NOCONTENT_CONTENT));
                    evbuffer_add_printf(evbuff, "%s: %s\r\n", "Server", SERVER_STRING);
                    evbuffer_add_printf(evbuff, "\r\n");
                    evbuffer_add_printf(evbuff, HTTP_NOCONTENT_CONTENT);
                }
                break;
            case HTTP_MOVEPERM:
                evbuffer_add_printf(evbuff, "%s %d %s\r\n", client->request.http_version,
                                    HTTP_MOVEPERM, HTTP_MOVEPERM_VALUE);
                if(client->resqonse.resqonse_data == NULL)
                {
                    evbuffer_add_printf(evbuff, "Content-Type: text/html\r\n");
                    evbuffer_add_printf(evbuff, "Content-Length: %d\r\n", (int)strlen(HTTP_MOVEPERM_CONTENT));
                    evbuffer_add_printf(evbuff, "%s: %s\r\n", "Server", SERVER_STRING);
                    evbuffer_add_printf(evbuff, "\r\n");
                    evbuffer_add_printf(evbuff, HTTP_MOVEPERM_CONTENT);
                }
                break;
            case HTTP_MOVETEMP:
                evbuffer_add_printf(evbuff, "%s %d %s\r\n", client->request.http_version,
                                    HTTP_MOVETEMP, HTTP_MOVETEMP_VALUE);
                if(client->resqonse.resqonse_data == NULL)
                {
                    evbuffer_add_printf(evbuff, "Content-Type: text/html\r\n");
                    evbuffer_add_printf(evbuff, "Content-Length: %d\r\n", (int)strlen(HTTP_MOVETEMP_CONTENT));
                    evbuffer_add_printf(evbuff, "%s: %s\r\n", "Server", SERVER_STRING);
                    evbuffer_add_printf(evbuff, "\r\n");
                    evbuffer_add_printf(evbuff, HTTP_MOVETEMP_CONTENT);
                }
                break;
            case HTTP_NOTMODIFIED:
                evbuffer_add_printf(evbuff, "%s %d %s\r\n", client->request.http_version,
                                    HTTP_NOTMODIFIED, HTTP_NOTMODIFIED_VALUE);
                if(client->resqonse.resqonse_data == NULL)
                {
                    evbuffer_add_printf(evbuff, "%s: %s\r\n", "Server", SERVER_STRING);
                    evbuffer_add_printf(evbuff, "\r\n");
                }
                break;
            case HTTP_BADREQUEST:
                evbuffer_add_printf(evbuff, "%s %d %s\r\n", client->request.http_version,
                                    HTTP_BADREQUEST, HTTP_BADREQUEST_VALUE);
                if(client->resqonse.resqonse_data == NULL)
                {
                    evbuffer_add_printf(evbuff, "Content-Type: text/html\r\n");
                    evbuffer_add_printf(evbuff, "Content-Length: %d\r\n", (int)strlen(HTTP_BADREQUEST_CONTENT));
                    evbuffer_add_printf(evbuff, "%s: %s\r\n", "Server", SERVER_STRING);
                    evbuffer_add_printf(evbuff, "\r\n");
                    evbuffer_add_printf(evbuff, HTTP_BADREQUEST_CONTENT);
                }
                break;
            case HTTP_NOTFOUND:
                evbuffer_add_printf(evbuff, "%s %d %s\r\n", client->request.http_version,
                                    HTTP_NOTFOUND, HTTP_NOTFOUND_VALUE);
                if(client->resqonse.resqonse_data == NULL)
                {
                    evbuffer_add_printf(evbuff, "Content-Type: text/html\r\n");
                    evbuffer_add_printf(evbuff, "Content-Length: %d\r\n", (int)strlen(HTTP_NOTFOUND_CONTENT));
                    evbuffer_add_printf(evbuff, "%s: %s\r\n", "Server", SERVER_STRING);
                    evbuffer_add_printf(evbuff, "\r\n");
                    evbuffer_add_printf(evbuff, HTTP_NOTFOUND_CONTENT);
                }
                break;
            case HTTP_BADMETHOD:
                evbuffer_add_printf(evbuff, "%s %d %s\r\n", client->request.http_version,
                                    HTTP_BADMETHOD, HTTP_BADMETHOD_VALUE);
                if(client->resqonse.resqonse_data == NULL)
                {
                    evbuffer_add_printf(evbuff, "Content-Type: text/html\r\n");
                    evbuffer_add_printf(evbuff, "Content-Length: %d\r\n", (int)strlen(HTTP_BADMETHOD_CONTENT));
                    evbuffer_add_printf(evbuff, "%s: %s\r\n", "Server", SERVER_STRING);
                    evbuffer_add_printf(evbuff, "\r\n");
                    evbuffer_add_printf(evbuff, HTTP_BADMETHOD_CONTENT);
                }
                break;
            case HTTP_ENTITYTOOLARGE:
                evbuffer_add_printf(evbuff, "%s %d %s\r\n", client->request.http_version,
                                    HTTP_ENTITYTOOLARGE, HTTP_ENTITYTOOLARGE_VALUE);
                if(client->resqonse.resqonse_data == NULL)
                {
                    evbuffer_add_printf(evbuff, "Content-Type: text/html\r\n");
                    evbuffer_add_printf(evbuff, "Content-Length: %d\r\n", (int)strlen(HTTP_ENTITYTOOLARGE_CONTENT));
                    evbuffer_add_printf(evbuff, "%s: %s\r\n", "Server", SERVER_STRING);
                    evbuffer_add_printf(evbuff, "\r\n");
                    evbuffer_add_printf(evbuff, HTTP_ENTITYTOOLARGE_CONTENT);
                }
                break;
            case HTTP_EXPECTATIONFAILED:
                evbuffer_add_printf(evbuff, "%s %d %s\r\n", client->request.http_version,
                                    HTTP_EXPECTATIONFAILED, HTTP_EXPECTATIONFAILED_VALUE);
                if(client->resqonse.resqonse_data == NULL)
                {
                    evbuffer_add_printf(evbuff, "Content-Type: text/html\r\n");
                    evbuffer_add_printf(evbuff, "Content-Length: %d\r\n", (int)strlen(HTTP_EXPECTATIONFAILED_CONTENT));
                    evbuffer_add_printf(evbuff, "%s: %s\r\n", "Server", SERVER_STRING);
                    evbuffer_add_printf(evbuff, "\r\n");
                    evbuffer_add_printf(evbuff, HTTP_EXPECTATIONFAILED_CONTENT);
                }
                break;
            case HTTP_INTERNAL:
                evbuffer_add_printf(evbuff, "%s %d %s\r\n", client->request.http_version,
                                    HTTP_INTERNAL, HTTP_INTERNAL_VALUE);
                if(client->resqonse.resqonse_data == NULL)
                {
                    evbuffer_add_printf(evbuff, "Content-Type: text/html\r\n");
                    evbuffer_add_printf(evbuff, "Content-Length: %d\r\n", (int)strlen(HTTP_INTERNAL_CONTENT));
                    evbuffer_add_printf(evbuff, "%s: %s\r\n", "Server", SERVER_STRING);
                    evbuffer_add_printf(evbuff, "\r\n");
                    evbuffer_add_printf(evbuff, HTTP_INTERNAL_CONTENT);
                }
                break;
            case HTTP_NOTIMPLEMENTED:
                evbuffer_add_printf(evbuff, "%s %d %s\r\n", client->request.http_version,
                                    HTTP_NOTIMPLEMENTED, HTTP_NOTIMPLEMENTED_VALUE);
                if(client->resqonse.resqonse_data == NULL)
                {
                    evbuffer_add_printf(evbuff, "Content-Type: text/html\r\n");
                    evbuffer_add_printf(evbuff, "Content-Length: %d\r\n", (int)strlen(HTTP_NOTFOUND_CONTENT));
                    evbuffer_add_printf(evbuff, "%s: %s\r\n", "Server", SERVER_STRING);
                    evbuffer_add_printf(evbuff, "\r\n");
                    evbuffer_add_printf(evbuff, HTTP_NOTFOUND_CONTENT);
                }
                break;
            case HTTP_SERVUNAVAIL:
                evbuffer_add_printf(evbuff, "%s %d %s\r\n", client->request.http_version,
                                    HTTP_SERVUNAVAIL, HTTP_SERVUNAVAIL_VALUE);
                if(client->resqonse.resqonse_data == NULL)
                {
                    evbuffer_add_printf(evbuff, "Content-Type: text/html\r\n");
                    evbuffer_add_printf(evbuff, "Content-Length: %d\r\n", (int)strlen(HTTP_SERVUNAVAIL_CONTENT));
                    evbuffer_add_printf(evbuff, "%s: %s\r\n", "Server", SERVER_STRING);
                    evbuffer_add_printf(evbuff, "\r\n");
                    evbuffer_add_printf(evbuff, HTTP_SERVUNAVAIL_CONTENT);
                }
                break;
            }
        }
        if(client->resqonse.HeadParameter == NULL)
        {
            evbuffer_add_printf(evbuff, "%s: %s\r\n", "Server", SERVER_STRING);
        }
        else
        {
            v  =  client->resqonse.HeadParameter->find("Server");
            if(v != client->resqonse.HeadParameter->end())
            {
                evbuffer_add_printf(evbuff, "%s: %s\r\n", v->first.c_str(), v->second.c_str());
                client->resqonse.HeadParameter->erase(v);
            }
            else
            {
                evbuffer_add_printf(evbuff, "%s: %s\r\n", "Server", SERVER_STRING);
            }
            v = client->resqonse.HeadParameter->begin();
            while(v != client->resqonse.HeadParameter->end())
            {
                evbuffer_add_printf(evbuff, "%s: %s\r\n", v->first.c_str(), v->second.c_str());
                v++;
            }
        }
        evbuffer_add_printf(evbuff, "\r\n");

        if(client->resqonse.resqonse_data != NULL)
        {
            unsigned add_len = 0;
            while((evbuffer_add(evbuff, client->resqonse.resqonse_data + add_len, 1)) == 0)
            {
                add_len++;
                if((add_len % HTTPSERVER_RECEIVE_BUFF_CHUNK_SIZE ) == 0)
                    gettimeofday(&client->final_optime, NULL);
                if(add_len >= client->resqonse.Resqonse_data_len)
                    break;
            }
                
        }
    }while(0);
    if(client->stat != HTTP_WS_DATA)
        client->stat = HTTP_RESQONSE;
    bufferevent_lock(client->bev);
    evbuffer_add_buffer(bufferevent_get_output(client->bev), evbuff);
    bufferevent_unlock(client->bev);

    pthread_mutex_unlock(&client->lock);
    evbuffer_free(evbuff);
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1a0, %rsp            # imm = 0x1A0
movq %rdi, -0x10(%rbp)
callq 0x4060
movq %rax, -0x18(%rbp)
leaq -0x20(%rbp), %rdi
callq 0xad30
cmpq $0x0, -0x18(%rbp)
jne 0x6ca4
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7c41
movq -0x10(%rbp), %rdi
callq 0x4720
movq -0x10(%rbp), %rdi
addq $0xb8, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x4780
movq -0x10(%rbp), %rax
cmpl $0x0, 0x78(%rax)
jne 0x6ce0
movq -0x10(%rbp), %rdi
callq 0x4390
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7c41
movq -0x10(%rbp), %rax
cmpq $0x0, 0x58(%rax)
jne 0x6d34
movl $0x8, %edi
callq 0x46a0
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x58(%rax)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x58(%rax)
jne 0x6d20
movq -0x10(%rbp), %rdi
callq 0x4390
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7c41
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rdi
leaq 0xd809(%rip), %rsi      # 0x14538
callq 0x4490
movq -0x10(%rbp), %rax
cmpl $0xc8, 0x78(%rax)
jne 0x6d6c
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rdx
leaq 0xd7ed(%rip), %rsi      # 0x14541
movl $0xc8, %ecx
leaq 0xd7ec(%rip), %r8       # 0x1454c
movb $0x0, %al
callq 0x4300
jmp 0x78a9
movq -0x10(%rbp), %rax
cmpl $0x65, 0x78(%rax)
jne 0x7009
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rdx
leaq 0xd7b4(%rip), %rsi      # 0x14541
leaq 0xd7bb(%rip), %r8       # 0x1454f
xorl %eax, %eax
movb %al, -0x141(%rbp)
movl $0x65, %ecx
callq 0x4300
movb -0x141(%rbp), %al
movq -0x18(%rbp), %rdi
leaq 0xd7ac(%rip), %rsi      # 0x14563
callq 0x4300
movb -0x141(%rbp), %al
movq -0x18(%rbp), %rdi
leaq 0xd7ab(%rip), %rsi      # 0x14578
callq 0x4300
movq -0x10(%rbp), %rax
movq 0x80(%rax), %rax
movq %rax, -0x140(%rbp)
leaq -0x49(%rbp), %rdi
movq %rdi, -0x138(%rbp)
callq 0x4850
movq -0x138(%rbp), %rdx
leaq 0xd78c(%rip), %rsi      # 0x1458e
leaq -0x48(%rbp), %rdi
callq 0xad80
jmp 0x6e0d
movq -0x140(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0xad50
movq %rax, -0x150(%rbp)
jmp 0x6e26
movq -0x150(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x20(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x42f0
leaq -0x49(%rbp), %rdi
callq 0x4560
movq -0x10(%rbp), %rax
movq 0x80(%rax), %rdi
callq 0xae60
movq %rax, -0x68(%rbp)
leaq -0x20(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0xae30
testb $0x1, %al
jne 0x6e72
jmp 0x6eb8
movq -0x18(%rbp), %rdi
callq 0x41c0
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7c41
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x6eaa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x42f0
leaq -0x49(%rbp), %rdi
callq 0x4560
jmp 0x7c4d
movq -0x18(%rbp), %rax
movq %rax, -0x160(%rbp)
leaq -0x20(%rbp), %rdi
callq 0xae90
movq %rax, %rdi
callq 0x4200
movq %rax, -0x158(%rbp)
leaq -0x20(%rbp), %rdi
callq 0xae90
movq %rax, %rdi
addq $0x20, %rdi
callq 0x4200
movq -0x160(%rbp), %rdi
movq -0x158(%rbp), %rdx
movq %rax, %rcx
leaq 0xd69b(%rip), %rsi      # 0x145a3
movb $0x0, %al
callq 0x4300
movq -0x10(%rbp), %rax
movq 0x80(%rax), %rdi
movq -0x20(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rsi
callq 0xaeb0
movq %rax, -0x78(%rbp)
leaq -0xc0(%rbp), %rdi
xorl %esi, %esi
movl $0x32, %edx
callq 0x4290
leaq -0x80(%rbp), %rdi
callq 0x4480
leaq -0x80(%rbp), %rdi
callq 0x4380
movq %rax, -0x88(%rbp)
leaq -0xc0(%rbp), %rdi
movq -0x88(%rbp), %rcx
movl $0x32, %esi
leaq 0xd2ba(%rip), %rdx      # 0x1422f
callq 0x43e0
movq -0x18(%rbp), %rdi
leaq -0xc0(%rbp), %rdx
leaq 0xd620(%rip), %rsi      # 0x145ac
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xed4b(%rip), %rsi      # 0x15ce9
movb $0x0, %al
callq 0x4300
movq -0x10(%rbp), %rax
movl $0x5, 0x38(%rax)
movl $0x10, %edi
callq 0x46a0
movq %rax, -0xc8(%rbp)
movq -0x10(%rbp), %rcx
movq -0xc8(%rbp), %rax
movq %rcx, (%rax)
movq -0xc8(%rbp), %rax
movl $0x2, 0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x60(%rax), %rdi
callq 0xd800
movq %rax, %rdi
movq -0xc8(%rbp), %rdx
leaq 0xc61(%rip), %rsi       # 0x7c60
callq 0xfc20
jmp 0x7be0
movq -0x10(%rbp), %rax
movl 0x78(%rax), %eax
movl %eax, -0x164(%rbp)
subl $0xcc, %eax
je 0x70f7
jmp 0x7023
movl -0x164(%rbp), %eax
subl $0x12d, %eax            # imm = 0x12D
je 0x71a0
jmp 0x7036
movl -0x164(%rbp), %eax
subl $0x12e, %eax            # imm = 0x12E
je 0x7249
jmp 0x7049
movl -0x164(%rbp), %eax
subl $0x130, %eax            # imm = 0x130
je 0x72f2
jmp 0x705c
movl -0x164(%rbp), %eax
subl $0x190, %eax            # imm = 0x190
je 0x7360
jmp 0x706f
movl -0x164(%rbp), %eax
subl $0x194, %eax            # imm = 0x194
je 0x7409
jmp 0x7082
movl -0x164(%rbp), %eax
subl $0x195, %eax            # imm = 0x195
je 0x74b2
jmp 0x7095
movl -0x164(%rbp), %eax
subl $0x19d, %eax            # imm = 0x19D
je 0x755b
jmp 0x70a8
movl -0x164(%rbp), %eax
subl $0x1a1, %eax            # imm = 0x1A1
je 0x7604
jmp 0x70bb
movl -0x164(%rbp), %eax
subl $0x1f4, %eax            # imm = 0x1F4
je 0x76ad
jmp 0x70ce
movl -0x164(%rbp), %eax
subl $0x1f5, %eax            # imm = 0x1F5
je 0x7756
jmp 0x70e1
movl -0x164(%rbp), %eax
subl $0x1f7, %eax            # imm = 0x1F7
je 0x77ff
jmp 0x78a5
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rdx
leaq 0xd437(%rip), %rsi      # 0x14541
movl $0xcc, %ecx
leaq 0xd4a1(%rip), %r8       # 0x145b7
movb $0x0, %al
callq 0x4300
movq -0x10(%rbp), %rax
cmpq $0x0, 0x88(%rax)
jne 0x719b
movq -0x18(%rbp), %rdi
leaq 0xd48c(%rip), %rsi      # 0x145c2
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xd494(%rip), %rsi      # 0x145dc
movl $0x1f1, %edx            # imm = 0x1F1
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0x16391(%rip), %rax     # 0x1d4f0
movq (%rax), %rcx
leaq 0xd43a(%rip), %rsi      # 0x145a3
leaq 0xd0eb(%rip), %rdx      # 0x1425b
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xeb67(%rip), %rsi      # 0x15ce9
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xd45d(%rip), %rsi      # 0x145f1
movb $0x0, %al
callq 0x4300
jmp 0x78a5
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rdx
leaq 0xd38e(%rip), %rsi      # 0x14541
movl $0x12d, %ecx            # imm = 0x12D
leaq 0xd624(%rip), %r8       # 0x147e3
movb $0x0, %al
callq 0x4300
movq -0x10(%rbp), %rax
cmpq $0x0, 0x88(%rax)
jne 0x7244
movq -0x18(%rbp), %rdi
leaq 0xd3e3(%rip), %rsi      # 0x145c2
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xd3eb(%rip), %rsi      # 0x145dc
movl $0x22d, %edx            # imm = 0x22D
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0x162e8(%rip), %rax     # 0x1d4f0
movq (%rax), %rcx
leaq 0xd391(%rip), %rsi      # 0x145a3
leaq 0xd042(%rip), %rdx      # 0x1425b
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xeabe(%rip), %rsi      # 0x15ce9
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xd5b8(%rip), %rsi      # 0x147f5
movb $0x0, %al
callq 0x4300
jmp 0x78a5
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rdx
leaq 0xd2e5(%rip), %rsi      # 0x14541
movl $0x12e, %ecx            # imm = 0x12E
leaq 0xdbca(%rip), %r8       # 0x14e32
movb $0x0, %al
callq 0x4300
movq -0x10(%rbp), %rax
cmpq $0x0, 0x88(%rax)
jne 0x72ed
movq -0x18(%rbp), %rdi
leaq 0xd33a(%rip), %rsi      # 0x145c2
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xd342(%rip), %rsi      # 0x145dc
movl $0x1fd, %edx            # imm = 0x1FD
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0x1623f(%rip), %rax     # 0x1d4f0
movq (%rax), %rcx
leaq 0xd2e8(%rip), %rsi      # 0x145a3
leaq 0xcf99(%rip), %rdx      # 0x1425b
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xea15(%rip), %rsi      # 0x15ce9
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xd73d(%rip), %rsi      # 0x14a23
movb $0x0, %al
callq 0x4300
jmp 0x78a5
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rdx
leaq 0xd23c(%rip), %rsi      # 0x14541
movl $0x130, %ecx            # imm = 0x130
leaq 0xd910(%rip), %r8       # 0x14c21
movb $0x0, %al
callq 0x4300
movq -0x10(%rbp), %rax
cmpq $0x0, 0x88(%rax)
jne 0x735b
movq -0x18(%rbp), %rdi
leaq 0x161bf(%rip), %rax     # 0x1d4f0
movq (%rax), %rcx
leaq 0xd268(%rip), %rsi      # 0x145a3
leaq 0xcf19(%rip), %rdx      # 0x1425b
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xe995(%rip), %rsi      # 0x15ce9
movb $0x0, %al
callq 0x4300
jmp 0x78a5
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rdx
leaq 0xd1ce(%rip), %rsi      # 0x14541
movl $0x190, %ecx            # imm = 0x190
leaq 0xd8af(%rip), %r8       # 0x14c2e
movb $0x0, %al
callq 0x4300
movq -0x10(%rbp), %rax
cmpq $0x0, 0x88(%rax)
jne 0x7404
movq -0x18(%rbp), %rdi
leaq 0xd223(%rip), %rsi      # 0x145c2
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xd22b(%rip), %rsi      # 0x145dc
movl $0x1f3, %edx            # imm = 0x1F3
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0x16128(%rip), %rax     # 0x1d4f0
movq (%rax), %rcx
leaq 0xd1d1(%rip), %rsi      # 0x145a3
leaq 0xce82(%rip), %rdx      # 0x1425b
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xe8fe(%rip), %rsi      # 0x15ce9
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xd83d(%rip), %rsi      # 0x14c3a
movb $0x0, %al
callq 0x4300
jmp 0x78a5
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rdx
leaq 0xd125(%rip), %rsi      # 0x14541
movl $0x194, %ecx            # imm = 0x194
leaq 0xda06(%rip), %r8       # 0x14e2e
movb $0x0, %al
callq 0x4300
movq -0x10(%rbp), %rax
cmpq $0x0, 0x88(%rax)
jne 0x74ad
movq -0x18(%rbp), %rdi
leaq 0xd17a(%rip), %rsi      # 0x145c2
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xd182(%rip), %rsi      # 0x145dc
movl $0x1fa, %edx            # imm = 0x1FA
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0x1607f(%rip), %rax     # 0x1d4f0
movq (%rax), %rcx
leaq 0xd128(%rip), %rsi      # 0x145a3
leaq 0xcdd9(%rip), %rdx      # 0x1425b
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xe855(%rip), %rsi      # 0x15ce9
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xd992(%rip), %rsi      # 0x14e38
movb $0x0, %al
callq 0x4300
jmp 0x78a5
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rdx
leaq 0xd07c(%rip), %rsi      # 0x14541
movl $0x195, %ecx            # imm = 0x195
leaq 0xdb62(%rip), %r8       # 0x15033
movb $0x0, %al
callq 0x4300
movq -0x10(%rbp), %rax
cmpq $0x0, 0x88(%rax)
jne 0x7556
movq -0x18(%rbp), %rdi
leaq 0xd0d1(%rip), %rsi      # 0x145c2
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xd0d9(%rip), %rsi      # 0x145dc
movl $0x1e5, %edx            # imm = 0x1E5
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0x15fd6(%rip), %rax     # 0x1d4f0
movq (%rax), %rcx
leaq 0xd07f(%rip), %rsi      # 0x145a3
leaq 0xcd30(%rip), %rdx      # 0x1425b
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xe7ac(%rip), %rsi      # 0x15ce9
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xdaf7(%rip), %rsi      # 0x15046
movb $0x0, %al
callq 0x4300
jmp 0x78a5
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rdx
leaq 0xcfd3(%rip), %rsi      # 0x14541
movl $0x19d, %ecx            # imm = 0x19D
leaq 0xdcb2(%rip), %r8       # 0x1522c
movb $0x0, %al
callq 0x4300
movq -0x10(%rbp), %rax
cmpq $0x0, 0x88(%rax)
jne 0x75ff
movq -0x18(%rbp), %rdi
leaq 0xd028(%rip), %rsi      # 0x145c2
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xd030(%rip), %rsi      # 0x145dc
movl $0x1f1, %edx            # imm = 0x1F1
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0x15f2d(%rip), %rax     # 0x1d4f0
movq (%rax), %rcx
leaq 0xcfd6(%rip), %rsi      # 0x145a3
leaq 0xcc87(%rip), %rdx      # 0x1425b
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xe703(%rip), %rsi      # 0x15ce9
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xdc4d(%rip), %rsi      # 0x15245
movb $0x0, %al
callq 0x4300
jmp 0x78a5
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rdx
leaq 0xcf2a(%rip), %rsi      # 0x14541
movl $0x1a1, %ecx            # imm = 0x1A1
leaq 0xde14(%rip), %r8       # 0x15437
movb $0x0, %al
callq 0x4300
movq -0x10(%rbp), %rax
cmpq $0x0, 0x88(%rax)
jne 0x76a8
movq -0x18(%rbp), %rdi
leaq 0xcf7f(%rip), %rsi      # 0x145c2
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xcf87(%rip), %rsi      # 0x145dc
movl $0x1f1, %edx            # imm = 0x1F1
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0x15e84(%rip), %rax     # 0x1d4f0
movq (%rax), %rcx
leaq 0xcf2d(%rip), %rsi      # 0x145a3
leaq 0xcbde(%rip), %rdx      # 0x1425b
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xe65a(%rip), %rsi      # 0x15ce9
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xdda9(%rip), %rsi      # 0x1544a
movb $0x0, %al
callq 0x4300
jmp 0x78a5
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rdx
leaq 0xce81(%rip), %rsi      # 0x14541
movl $0x1f4, %ecx            # imm = 0x1F4
leaq 0xdf70(%rip), %r8       # 0x1563c
movb $0x0, %al
callq 0x4300
movq -0x10(%rbp), %rax
cmpq $0x0, 0x88(%rax)
jne 0x7751
movq -0x18(%rbp), %rdi
leaq 0xced6(%rip), %rsi      # 0x145c2
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xcede(%rip), %rsi      # 0x145dc
movl $0x1f7, %edx            # imm = 0x1F7
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0x15ddb(%rip), %rax     # 0x1d4f0
movq (%rax), %rcx
leaq 0xce84(%rip), %rsi      # 0x145a3
leaq 0xcb35(%rip), %rdx      # 0x1425b
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xe5b1(%rip), %rsi      # 0x15ce9
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xdf08(%rip), %rsi      # 0x15652
movb $0x0, %al
callq 0x4300
jmp 0x78a5
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rdx
leaq 0xcdd8(%rip), %rsi      # 0x14541
movl $0x1f5, %ecx            # imm = 0x1F5
leaq 0xe0d5(%rip), %r8       # 0x1584a
movb $0x0, %al
callq 0x4300
movq -0x10(%rbp), %rax
cmpq $0x0, 0x88(%rax)
jne 0x77fa
movq -0x18(%rbp), %rdi
leaq 0xce2d(%rip), %rsi      # 0x145c2
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xce35(%rip), %rsi      # 0x145dc
movl $0x1fa, %edx            # imm = 0x1FA
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0x15d32(%rip), %rax     # 0x1d4f0
movq (%rax), %rcx
leaq 0xcddb(%rip), %rsi      # 0x145a3
leaq 0xca8c(%rip), %rdx      # 0x1425b
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xe508(%rip), %rsi      # 0x15ce9
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xd645(%rip), %rsi      # 0x14e38
movb $0x0, %al
callq 0x4300
jmp 0x78a5
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rdx
leaq 0xcd2f(%rip), %rsi      # 0x14541
movl $0x1f7, %ecx            # imm = 0x1F7
leaq 0xe03c(%rip), %r8       # 0x1585a
movb $0x0, %al
callq 0x4300
movq -0x10(%rbp), %rax
cmpq $0x0, 0x88(%rax)
jne 0x78a3
movq -0x18(%rbp), %rdi
leaq 0xcd84(%rip), %rsi      # 0x145c2
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xcd8c(%rip), %rsi      # 0x145dc
movl $0x1f8, %edx            # imm = 0x1F8
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0x15c89(%rip), %rax     # 0x1d4f0
movq (%rax), %rcx
leaq 0xcd32(%rip), %rsi      # 0x145a3
leaq 0xc9e3(%rip), %rdx      # 0x1425b
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xe45f(%rip), %rsi      # 0x15ce9
movb $0x0, %al
callq 0x4300
movq -0x18(%rbp), %rdi
leaq 0xdfd2(%rip), %rsi      # 0x1586e
movb $0x0, %al
callq 0x4300
jmp 0x78a5
jmp 0x78a7
jmp 0x78a9
movq -0x10(%rbp), %rax
cmpq $0x0, 0x80(%rax)
jne 0x78df
movq -0x18(%rbp), %rdi
leaq 0x15c2e(%rip), %rax     # 0x1d4f0
movq (%rax), %rcx
leaq 0xccd7(%rip), %rsi      # 0x145a3
leaq 0xc988(%rip), %rdx      # 0x1425b
movb $0x0, %al
callq 0x4300
jmp 0x7b38
movq -0x10(%rbp), %rax
movq 0x80(%rax), %rax
movq %rax, -0x178(%rbp)
leaq -0xf1(%rbp), %rdi
movq %rdi, -0x170(%rbp)
callq 0x4850
movq -0x170(%rbp), %rdx
leaq 0xc949(%rip), %rsi      # 0x1425b
leaq -0xf0(%rbp), %rdi
callq 0xad80
jmp 0x7920
movq -0x178(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0xad50
movq %rax, -0x180(%rbp)
jmp 0x793c
movq -0x180(%rbp), %rax
movq %rax, -0xd0(%rbp)
movq -0xd0(%rbp), %rax
movq %rax, -0x20(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x42f0
leaq -0xf1(%rbp), %rdi
callq 0x4560
movq -0x10(%rbp), %rax
movq 0x80(%rax), %rdi
callq 0xae60
movq %rax, -0x100(%rbp)
leaq -0x20(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0xaef0
testb $0x1, %al
jne 0x799d
jmp 0x7a56
movq -0x18(%rbp), %rax
movq %rax, -0x190(%rbp)
leaq -0x20(%rbp), %rdi
callq 0xae90
movq %rax, %rdi
callq 0x4200
movq %rax, -0x188(%rbp)
leaq -0x20(%rbp), %rdi
callq 0xae90
movq %rax, %rdi
addq $0x20, %rdi
callq 0x4200
movq -0x190(%rbp), %rdi
movq -0x188(%rbp), %rdx
movq %rax, %rcx
leaq 0xcbb6(%rip), %rsi      # 0x145a3
movb $0x0, %al
callq 0x4300
movq -0x10(%rbp), %rax
movq 0x80(%rax), %rdi
movq -0x20(%rbp), %rax
movq %rax, -0x108(%rbp)
movq -0x108(%rbp), %rsi
callq 0xaeb0
movq %rax, -0x110(%rbp)
jmp 0x7a79
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x7a45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x42f0
leaq -0xf1(%rbp), %rdi
callq 0x4560
jmp 0x7c4d
movq -0x18(%rbp), %rdi
leaq 0x15a8f(%rip), %rax     # 0x1d4f0
movq (%rax), %rcx
leaq 0xcb38(%rip), %rsi      # 0x145a3
leaq 0xc7e9(%rip), %rdx      # 0x1425b
movb $0x0, %al
callq 0x4300
movq -0x10(%rbp), %rax
movq 0x80(%rax), %rdi
callq 0xaf20
movq %rax, -0x118(%rbp)
movq -0x118(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq 0x80(%rax), %rdi
callq 0xae60
movq %rax, -0x120(%rbp)
leaq -0x20(%rbp), %rdi
leaq -0x120(%rbp), %rsi
callq 0xaef0
testb $0x1, %al
jne 0x7ac8
jmp 0x7b36
movq -0x18(%rbp), %rax
movq %rax, -0x1a0(%rbp)
leaq -0x20(%rbp), %rdi
callq 0xae90
movq %rax, %rdi
callq 0x4200
movq %rax, -0x198(%rbp)
leaq -0x20(%rbp), %rdi
callq 0xae90
movq %rax, %rdi
addq $0x20, %rdi
callq 0x4200
movq -0x1a0(%rbp), %rdi
movq -0x198(%rbp), %rdx
movq %rax, %rcx
leaq 0xca8b(%rip), %rsi      # 0x145a3
movb $0x0, %al
callq 0x4300
leaq -0x20(%rbp), %rdi
xorl %esi, %esi
callq 0xaf50
movq %rax, -0x128(%rbp)
jmp 0x7a9b
jmp 0x7b38
movq -0x18(%rbp), %rdi
leaq 0xe1a6(%rip), %rsi      # 0x15ce9
movb $0x0, %al
callq 0x4300
movq -0x10(%rbp), %rax
cmpq $0x0, 0x88(%rax)
je 0x7bde
movl $0x0, -0x12c(%rbp)
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x88(%rax), %rsi
movl -0x12c(%rbp), %eax
addq %rax, %rsi
movl $0x1, %edx
callq 0x44d0
cmpl $0x0, %eax
jne 0x7bdc
movl -0x12c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x12c(%rbp)
movl -0x12c(%rbp), %eax
leaq 0x15933(%rip), %rcx     # 0x1d4dc
xorl %edx, %edx
divl (%rcx)
cmpl $0x0, %edx
jne 0x7bc6
movq -0x10(%rbp), %rdi
addq $0xb8, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x4780
movl -0x12c(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x90(%rcx), %eax
jb 0x7bda
jmp 0x7bdc
jmp 0x7b66
jmp 0x7bde
jmp 0x7be0
movq -0x10(%rbp), %rax
cmpl $0x5, 0x38(%rax)
je 0x7bf5
movq -0x10(%rbp), %rax
movl $0x4, 0x38(%rax)
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x4710
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x41b0
movq %rax, %rdi
movq -0x18(%rbp), %rsi
callq 0x48d0
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x47d0
movq -0x10(%rbp), %rdi
callq 0x4390
movq -0x18(%rbp), %rdi
callq 0x41c0
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x1a0, %rsp            # imm = 0x1A0
popq %rbp
retq
movq -0x58(%rbp), %rdi
callq 0x4830
nopw %cs:(%rax,%rax)