// File: /workspace/github_cpp_makefile_star2_O1/lega911[P]ijson/src/server.cpp
// Function: Loop::client_request(ISlice, Connect*)
int Loop::client_request(ISlice name, Connect *client) {
    stat_call++;
    QueueLine *ql = server->get_queue(name);
    if(!ql) {
        if(server->log & 4) std::cout << ltime() << "404 no method " << name.as_string() << std::endl;
        client->send.status("404 Not Found")->done(-32601);
        return -1;
    }

    Connect *worker = NULL;
    Queue *q;

    LOCK _l(ql->mutex);
    int rloop = _nloop;
    for(int index=-1;index<server->threads;index++) {
        if(index == _nloop) continue;
        if(index >= 0) rloop = index;
        q = &ql->queue[rloop];

        auto it=q->workers.begin();
        while (it != q->workers.end()) {
            worker = *it;
            if(client->required_worker) {
                if(client->required_worker != worker->connection_id) {
                    worker = NULL;
                    it++;
                    continue;
                }
            }
            it = q->workers.erase(it);
            worker->unlink();

            if(worker->is_closed()) {
                if(server->log & 8) std::cout << ltime() << "worker closed " << worker << std::endl;
                worker = NULL;
                continue;
            }

            bool busy = true;
            if(worker->status == Status::worker_wait_job) {
                worker->mutex.lock();
                if(worker->status == Status::worker_wait_job) {
                    worker->status = Status::busy;
                    busy = false;
                }
                worker->mutex.unlock();
            }

            if(busy) {
                if(server->log & 8) std::cout << "worker is not ready " << worker << std::endl;
                worker = NULL;
                continue;
            }
            break;
        };

        if(worker) break;
    }

    if(worker) {
        if(client->no_response) {
            if(worker->worker_mode) worker->status = Status::worker_mode_async;
            else worker->status = Status::net;
            worker->send.status("200 OK")->header("Name", name)->header("Async", Slice("true"))->done(client->body);
            client->send.status("200 OK")->done(1);
        } else if(worker->noid) {
            worker->client = client;
            client->link();
            client->status = Status::client_wait_result;
            worker->status = Status::worker_wait_result;
            worker->send.status("200 OK")->header("Name", name)->done(client->body);
        } else {
            Slice id(client->id);
            if(id.empty()) {
                try {
                    while(client->json.scan()) {
                        if(client->json.key == "id") {
                            id = client->json.value;
                            client->id.set(client->json.value);
                            break;
                        }
                    }
                } catch (const error::InvalidData &e) {
                    worker->link();
                    worker->status = Status::worker_wait_job;
                    ql->queue[worker->nloop].workers.push_front(worker);
                    client->send.status("400 No Id")->done(-1);
                    if(server->log & 4) std::cout << ltime() << "400 no id " << name.as_string() << std::endl;
                    return -3;
                }
            }
            if(id.empty()) {
                generate_id(client->id);
                id.set(client->id);
            }
            std::string sid = id.as_string();

            server->wait_lock.lock();
            bool busy = server->wait_response.find(sid) != server->wait_response.end();
            server->wait_lock.unlock();
            if(busy) {
                worker->link();
                worker->status = Status::worker_wait_job;
                ql->queue[worker->nloop].workers.push_front(worker);
                client->send.status("400 Collision Id")->done(-1);
                if(server->log & 4) std::cout << ltime() << "400 collision id " << name.as_string() << std::endl;
                return -3;
            }
            if(worker->fail_on_disconnect) {
                worker->client = client;
                client->link();
            }
            worker->send.status("200 OK")->header("Id", id)->header("Name", name)->done(client->body);
            server->wait_lock.lock();
            server->wait_response[sid] = client;
            server->wait_lock.unlock();
            client->link();
            client->status = Status::client_wait_result;
            worker->status = Status::net;
        }
        if(server->log & 32) worker->start_time = get_time();
    } else {
        if(client->header_option == "if present" && !ql->workers.head) {
            client->send.status("204 No Content")->done(1);
            return 0;
        }
        bool inserted = false;
        auto *clients = &ql->queue[_nloop].clients;

        Message *msg = new Message();
        msg->priority = client->priority;
        msg->required_worker.move(&client->required_worker);
        if(client->no_response) {
            msg->name.set(name);
            msg->attach_buffer(&client->body);
        } else {
            client->name.set(name);
            msg->attach_client(client);
        }
        for(auto it=clients->crbegin(); it!=clients->crend(); it++) {
            if(msg->priority <= (*it)->priority) {
                clients->insert(it.base(), msg);
                inserted = true;
                break;
            }
        }
        if(!inserted) clients->push_front(msg);
        if(client->no_response) {
            client->send.status("200 OK")->done(1);
        } else {
            client->status = Status::client_wait_result;
        }
    };

    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb8, %rsp
movq %rdi, %r13
movq %rsi, -0x78(%rbp)
movl %edx, -0x70(%rbp)
incq 0x80(%rdi)
movq %rcx, %r12
movq 0x18(%rdi), %rbx
leaq 0x200c8(%rbx), %rdi
callq 0xebbe
testw %ax, %ax
je 0x10dc3
movzwl %ax, %eax
decl %eax
movq 0x20110(%rbx), %rcx
movq (%rcx,%rax,8), %rbx
jmp 0x10dc5
xorl %ebx, %ebx
testq %rbx, %rbx
je 0x11172
movq $0x0, -0x30(%rbp)
leaq 0x18(%rbx), %rdi
movq %rdi, -0xb8(%rbp)
callq 0x83f0
testl %eax, %eax
jne 0x1192a
movq 0x18(%r13), %rax
cmpl $0x0, 0x28(%rax)
movq %r12, -0xa8(%rbp)
js 0x110c3
movl 0x4(%r13), %ecx
leaq 0x110(%r12), %rax
movq %rax, -0xc0(%rbp)
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movq %r13, -0xa0(%rbp)
movq %rbx, -0x68(%rbp)
cmpl 0x4(%r13), %edx
je 0x1109d
testl %edx, %edx
movl %edx, -0xac(%rbp)
cmovnsl %edx, %ecx
movq 0x40(%rbx), %r13
movl %ecx, -0xb0(%rbp)
movslq %ecx, %rax
leaq (%rax,%rax,4), %rax
shlq $0x5, %rax
movq 0x10(%r13,%rax), %r15
cmpq 0x30(%r13,%rax), %r15
je 0x11078
addq %rax, %r13
movq 0x20(%r13), %r14
movq 0x28(%r13), %r12
movq (%r15), %rsi
movq %rsi, -0x30(%rbp)
movq -0xa8(%rbp), %rax
cmpl $0x0, 0x118(%rax)
je 0x10ec3
addq $0x100, %rsi            # imm = 0x100
movq -0xc0(%rbp), %rdi
callq 0xca80
testl %eax, %eax
je 0x10ec3
movq $0x0, -0x30(%rbp)
addq $0x8, %r15
cmpq %r14, %r15
jne 0x1106e
movq 0x8(%r12), %r15
addq $0x8, %r12
leaq 0x200(%r15), %r14
jmp 0x1106e
movq %r15, -0x50(%rbp)
movq (%r12), %rax
movq %rax, -0x48(%rbp)
addq $0x200, %rax            # imm = 0x200
movq %rax, -0x40(%rbp)
movq %r12, -0x38(%rbp)
leaq -0x98(%rbp), %rdi
movq %r13, %rsi
leaq -0x50(%rbp), %rdx
callq 0x149e8
movq -0x98(%rbp), %r15
movq -0x88(%rbp), %r14
movq -0x80(%rbp), %r12
movq -0x30(%rbp), %rdi
callq 0x898c
movq -0x30(%rbp), %rdi
cmpl $-0x1, (%rdi)
je 0x10fb8
cmpl $0x1, 0xcc(%rdi)
jne 0x10f4c
addq $0x50, %rdi
callq 0x83f0
testl %eax, %eax
jne 0x11923
movq -0x30(%rbp), %rdi
cmpl $0x1, 0xcc(%rdi)
je 0x110ae
addq $0x50, %rdi
callq 0x8240
movq -0xa0(%rbp), %rax
movq 0x18(%rax), %rax
testb $0x8, 0x20(%rax)
je 0x11066
movl $0x14, %edx
movq 0xd063(%rip), %rdi      # 0x1dfd0
leaq 0x764a(%rip), %rsi      # 0x185be
callq 0x8350
movq -0x30(%rbp), %rsi
movq 0xd04c(%rip), %rdi      # 0x1dfd0
callq 0x8250
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x82f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x8040
movq %rax, %rdi
callq 0x81f0
jmp 0x11066
movq -0xa0(%rbp), %rax
movq 0x18(%rax), %rax
testb $0x8, 0x20(%rax)
je 0x11066
callq 0x16531
movq %rax, %rbx
testq %rax, %rax
je 0x10ff6
movq %rbx, %rdi
callq 0x8130
movq 0xcfe7(%rip), %rdi      # 0x1dfd0
movq %rbx, %rsi
movq %rax, %rdx
callq 0x8350
jmp 0x11014
movq 0xcfd3(%rip), %rcx      # 0x1dfd0
movq (%rcx), %rax
movq -0x18(%rax), %rax
leaq (%rcx,%rax), %rdi
movl 0x20(%rcx,%rax), %esi
orl $0x1, %esi
callq 0x8470
movl $0xe, %edx
movq 0xcfb0(%rip), %rdi      # 0x1dfd0
leaq 0x7588(%rip), %rsi      # 0x185af
callq 0x8350
movq -0x30(%rbp), %rsi
movq 0xcf99(%rip), %rdi      # 0x1dfd0
callq 0x8250
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x82f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x8040
movq %rax, %rdi
callq 0x81f0
movq $0x0, -0x30(%rbp)
cmpq 0x30(%r13), %r15
jne 0x10e6b
cmpq $0x0, -0x30(%rbp)
movq -0xa8(%rbp), %r12
movq -0xa0(%rbp), %r13
movq -0x68(%rbp), %rbx
movl -0xb0(%rbp), %ecx
movl -0xac(%rbp), %edx
jne 0x110c3
incl %edx
movq 0x18(%r13), %rax
cmpl 0x28(%rax), %edx
jl 0x10e26
jmp 0x110c3
movl $0x5, 0xcc(%rdi)
addq $0x50, %rdi
callq 0x8240
jmp 0x11078
movq -0x30(%rbp), %rdi
testq %rdi, %rdi
je 0x111b0
cmpb $0x1, 0xf2(%r12)
jne 0x112c2
xorl %eax, %eax
cmpb $0x0, 0xf3(%rdi)
movl $0x6, %ecx
cmovel %eax, %ecx
movl %ecx, 0xcc(%rdi)
addq $0x18, %rdi
leaq 0x6138(%rip), %rsi      # 0x17239
callq 0x9ee0
leaq 0x7497(%rip), %rsi      # 0x185a4
leaq -0x78(%rbp), %rdx
movq %rax, %rdi
callq 0xbbd6
leaq 0x6a2c(%rip), %rcx      # 0x17b4c
leaq -0x50(%rbp), %rdx
movq %rcx, (%rdx)
movl $0x4, 0x8(%rdx)
leaq 0x7474(%rip), %rsi      # 0x185a9
movq %rax, %rdi
callq 0xbbd6
leaq 0xd0(%r12), %rsi
movq %rax, %rdi
callq 0xa704
addq $0x18, %r12
leaq 0x60e1(%rip), %rsi      # 0x17239
movq %r12, %rdi
callq 0x9ee0
movq %rax, %rdi
movl $0x1, %esi
callq 0x9f54
jmp 0x118e5
movq 0x18(%r13), %rax
testb $0x4, 0x20(%rax)
je 0x1158e
callq 0x16531
testq %rax, %rax
je 0x114ee
movq %rax, %rbx
movq %rax, %rdi
callq 0x8130
movq 0xce30(%rip), %rdi      # 0x1dfd0
movq %rbx, %rsi
movq %rax, %rdx
callq 0x8350
jmp 0x1150c
movl 0xb0(%r12), %eax
movq 0xa8(%r12), %rcx
xorl %edx, %edx
testl %eax, %eax
movl $0x0, %esi
cmovgl %eax, %esi
movb $0x69, %r8b
leaq 0x740f(%rip), %rdi      # 0x185e5
cmpq %rdx, %rsi
je 0x11202
cmpb (%rcx,%rdx), %r8b
jne 0x11202
movb 0x1(%rdx,%rdi), %r8b
incq %rdx
cmpq $0xa, %rdx
jne 0x111d6
cmpl $0xa, %eax
jne 0x11202
cmpq $0x0, 0x80(%rbx)
je 0x117eb
movq 0x40(%rbx), %rbx
movslq 0x4(%r13), %r14
movl $0x38, %edi
callq 0xee48
xorps %xmm0, %xmm0
movups %xmm0, 0x20(%rax)
movups %xmm0, 0x10(%rax)
movups %xmm0, (%rax)
movq $0x0, 0x30(%rax)
movq %rax, -0x98(%rbp)
movl 0xf4(%r12), %ecx
movl %ecx, (%rax)
movl 0x14(%rax), %ecx
movl 0x11c(%r12), %edx
movl %edx, 0x14(%rax)
movl %ecx, 0x11c(%r12)
movq 0x8(%rax), %rcx
movq 0x110(%r12), %rdx
movq %rdx, 0x8(%rax)
movq %rcx, 0x110(%r12)
movl 0x118(%r12), %ecx
movl %ecx, 0x10(%rax)
movl $0x0, 0x118(%r12)
movq -0x78(%rbp), %rsi
movl -0x70(%rbp), %edx
cmpb $0x1, 0xf2(%r12)
jne 0x1132b
movq %rax, %rdi
addq $0x28, %rdi
movl $0x0, 0x30(%rax)
callq 0xc0a8
movq -0x98(%rbp), %rdi
leaq 0xd0(%r12), %rsi
callq 0x12bba
jmp 0x11354
cmpb $0x1, 0xf1(%rdi)
jne 0x113eb
movq %r12, 0x120(%rdi)
incl 0x8(%r12)
movl $0x4, 0xcc(%r12)
movl $0x2, 0xcc(%rdi)
addq $0x18, %rdi
leaq 0x5f3d(%rip), %rsi      # 0x17239
callq 0x9ee0
leaq 0x729c(%rip), %rsi      # 0x185a4
leaq -0x78(%rbp), %rdx
movq %rax, %rdi
callq 0xbbd6
addq $0xd0, %r12
movq %rax, %rdi
movq %r12, %rsi
callq 0xa704
jmp 0x118e5
leaq 0xb8(%r12), %rdi
movl $0x0, 0xc0(%r12)
callq 0xc0a8
movq -0x98(%rbp), %rax
movq %r12, 0x18(%rax)
incl 0x8(%r12)
leaq (%r14,%r14,4), %rax
shlq $0x5, %rax
leaq (%rbx,%rax), %rsi
addq $0x50, %rsi
movq 0x10(%rsi), %rax
movq 0x30(%rsi), %rdi
cmpq %rax, %rdi
je 0x113c8
movq 0x48(%rsi), %rcx
movq 0x38(%rsi), %r8
movq 0x40(%rsi), %r10
movq -0x98(%rbp), %rdx
movl (%rdx), %edx
movl $0x200, %r9d            # imm = 0x200
movq %rdi, %r11
cmpq %r8, %rdi
jne 0x1139b
movq -0x8(%rcx), %r11
addq %r9, %r11
movq -0x8(%r11), %r11
cmpl (%r11), %edx
jle 0x115b9
cmpq %r8, %rdi
jne 0x113bf
movq -0x8(%rcx), %r8
addq $-0x8, %rcx
leaq 0x200(%r8), %rdi
movq %rdi, %r10
addq $-0x8, %rdi
cmpq %rax, %rdi
jne 0x1138c
movq 0x10(%rsi), %rax
cmpq 0x18(%rsi), %rax
je 0x115e1
movq -0x98(%rbp), %rcx
movq %rcx, -0x8(%rax)
addq $-0x8, 0x10(%rsi)
jmp 0x115f3
movq %rbx, -0x68(%rbp)
leaq 0xe0(%r12), %rbx
movq $0x0, -0x60(%rbp)
movl $0x0, -0x58(%rbp)
movq 0xe0(%r12), %rax
movl 0xe8(%r12), %ecx
movq %rax, -0x60(%rbp)
movl %ecx, -0x58(%rbp)
testl %ecx, %ecx
je 0x11634
cmpl $0x0, -0x58(%rbp)
jne 0x1144a
movq %rbx, %rdi
callq 0x168a1
movq 0xe0(%r12), %rax
movl 0xe8(%r12), %ecx
movq %rax, -0x60(%rbp)
movl %ecx, -0x58(%rbp)
leaq -0x50(%rbp), %rdi
leaq -0x60(%rbp), %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0xc468
movl $0x20158, %edi          # imm = 0x20158
addq 0x18(%r13), %rdi
callq 0x83f0
testl %eax, %eax
jne 0x11931
movl $0x20128, %edi          # imm = 0x20128
addq 0x18(%r13), %rdi
leaq -0x50(%rbp), %rsi
callq 0x14586
movq %rax, %rbx
movq 0x18(%r13), %rdi
leaq 0x20130(%rdi), %r15
addq $0x20158, %rdi          # imm = 0x20158
callq 0x8240
movq -0x30(%rbp), %rdi
cmpq %r15, %rbx
je 0x116d0
incl 0x8(%rdi)
movl $0x1, 0xcc(%rdi)
movq -0x68(%rbp), %rax
movq 0x40(%rax), %rdx
movslq 0x38(%rdi), %rax
leaq (%rax,%rax,4), %rsi
shlq $0x5, %rsi
leaq (%rdx,%rsi), %rax
movq 0x10(%rdx,%rsi), %rcx
cmpq 0x18(%rdx,%rsi), %rcx
je 0x11788
movq %rdi, -0x8(%rcx)
addq $-0x8, 0x10(%rax)
jmp 0x11794
movq 0xcadb(%rip), %rax      # 0x1dfd0
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x20(%rax,%rcx), %esi
orl $0x1, %esi
callq 0x8470
movq 0xcabd(%rip), %rbx      # 0x1dfd0
leaq 0x6191(%rip), %rsi      # 0x176ab
movl $0xe, %edx
movq %rbx, %rdi
callq 0x8350
leaq -0x50(%rbp), %r15
leaq -0x78(%rbp), %rsi
movq %r15, %rdi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0xc468
movq (%r15), %rsi
movq 0x8(%r15), %rdx
movq %rbx, %rdi
callq 0x8350
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x82f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x8040
movq %rax, %rdi
callq 0x81f0
leaq -0x40(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1158e
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x8320
addq $0x18, %r12
leaq 0x6121(%rip), %rsi      # 0x176ba
movq %r12, %rdi
callq 0x9ee0
movq %rax, %rdi
movl $0xffff80a7, %esi       # imm = 0xFFFF80A7
callq 0x9f54
movl $0xffffffff, %r14d      # imm = 0xFFFFFFFF
jmp 0x1190e
leaq -0xe0(%rbp), %rdx
movq %rdi, (%rdx)
movq %r8, 0x8(%rdx)
movq %r10, 0x10(%rdx)
movq %rcx, 0x18(%rdx)
leaq -0x50(%rbp), %rdi
leaq -0x98(%rbp), %rcx
callq 0x1366c
jmp 0x115f3
leaq -0x98(%rbp), %rax
movq %rsi, %rdi
movq %rax, %rsi
callq 0x15c4e
cmpb $0x1, 0xf2(%r12)
jne 0x11620
addq $0x18, %r12
leaq 0x5c30(%rip), %rsi      # 0x17239
movq %r12, %rdi
callq 0x9ee0
movq %rax, %rdi
movl $0x1, %esi
callq 0x9f54
jmp 0x1162c
movl $0x4, 0xcc(%r12)
xorl %r14d, %r14d
jmp 0x11902
leaq 0x128(%r12), %r15
leaq 0x5d09(%rip), %r14      # 0x1734c
movq %r15, %rdi
callq 0xd606
testb %al, %al
je 0x11425
movl 0x130(%r12), %eax
movq 0x128(%r12), %rcx
testl %eax, %eax
movl $0x0, %edx
cmovgl %eax, %edx
movb $0x69, %dil
xorl %esi, %esi
cmpq %rsi, %rdx
je 0x11643
cmpb (%rcx,%rsi), %dil
jne 0x11643
movb 0x1(%rsi,%r14), %dil
incq %rsi
cmpq $0x2, %rsi
jne 0x11672
cmpl $0x2, %eax
jne 0x11643
movl 0x140(%r12), %eax
movl %eax, -0x58(%rbp)
movq 0x138(%r12), %rax
movq %rax, -0x60(%rbp)
movq 0x138(%r12), %rsi
movl 0x140(%r12), %edx
movl $0x0, 0xe8(%r12)
movq %rbx, %rdi
callq 0xc0a8
jmp 0x11425
cmpb $0x1, 0xf0(%rdi)
jne 0x116e5
movq %r12, 0x120(%rdi)
incl 0x8(%r12)
addq $0x18, %rdi
leaq 0x5b49(%rip), %rsi      # 0x17239
callq 0x9ee0
leaq 0x6ea5(%rip), %rsi      # 0x185a1
leaq -0x60(%rbp), %rdx
movq %rax, %rdi
callq 0xbbd6
leaq 0x6e95(%rip), %rsi      # 0x185a4
leaq -0x78(%rbp), %rdx
movq %rax, %rdi
callq 0xbbd6
leaq 0xd0(%r12), %rsi
movq %rax, %rdi
callq 0xa704
movl $0x20158, %edi          # imm = 0x20158
addq 0x18(%r13), %rdi
callq 0x83f0
testl %eax, %eax
jne 0x11938
movl $0x20128, %edi          # imm = 0x20128
addq 0x18(%r13), %rdi
leaq -0x50(%rbp), %rsi
callq 0x135ec
movq %r12, (%rax)
movl $0x20158, %edi          # imm = 0x20158
addq 0x18(%r13), %rdi
callq 0x8240
incl 0x8(%r12)
movl $0x4, 0xcc(%r12)
movq -0x30(%rbp), %rax
movl $0x0, 0xcc(%rax)
jmp 0x118c1
leaq -0x30(%rbp), %rsi
movq %rax, %rdi
callq 0x1543a
addq $0x18, %r12
leaq 0x6df4(%rip), %rsi      # 0x18593
movq %r12, %rdi
callq 0x9ee0
movq %rax, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x9f54
movq 0x18(%r13), %rax
testb $0x4, 0x20(%rax)
je 0x118c1
callq 0x16531
movq %rax, %r14
testq %rax, %rax
je 0x11813
movq %r14, %rdi
callq 0x8130
movq 0xc7f2(%rip), %rdi      # 0x1dfd0
movq %r14, %rsi
movq %rax, %rdx
callq 0x8350
jmp 0x11831
addq $0x18, %r12
leaq 0x6dfa(%rip), %rsi      # 0x185f0
movq %r12, %rdi
callq 0x9ee0
xorl %r14d, %r14d
movq %rax, %rdi
movl $0x1, %esi
callq 0x9f54
jmp 0x11902
movq 0xc7b6(%rip), %rax      # 0x1dfd0
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x20(%rax,%rcx), %esi
orl $0x1, %esi
callq 0x8470
movq 0xc798(%rip), %rdi      # 0x1dfd0
leaq 0x6d94(%rip), %rsi      # 0x185d3
movl $0x11, %edx
callq 0x8350
leaq -0x98(%rbp), %rdi
leaq -0x78(%rbp), %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0xc468
movq -0x98(%rbp), %rsi
movq -0x90(%rbp), %rdx
movq 0xc75d(%rip), %rdi      # 0x1dfd0
callq 0x8350
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x82f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x8040
movq %rax, %rdi
callq 0x81f0
leaq -0x88(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x118c1
movq -0x88(%rbp), %rsi
incq %rsi
callq 0x8320
leaq -0x40(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x118da
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x8320
movl $0xfffffffd, %r14d      # imm = 0xFFFFFFFD
cmpq %r15, %rbx
jne 0x11902
movq 0x18(%r13), %rax
xorl %r14d, %r14d
testb $0x20, 0x20(%rax)
je 0x11902
callq 0x164e8
movq -0x30(%rbp), %rcx
movq %rax, 0x1e0(%rcx)
movq -0xb8(%rbp), %rdi
callq 0x8240
movl %r14d, %eax
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl %eax, %edi
callq 0x81d0
movl %eax, %edi
callq 0x81d0
movl %eax, %edi
callq 0x81d0
movl %eax, %edi
callq 0x81d0
jmp 0x119d1
jmp 0x11982
jmp 0x11b16
jmp 0x11b16
jmp 0x11982
jmp 0x11982
jmp 0x11b16
movq %rax, %rbx
leaq -0x88(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11985
movq -0x88(%rbp), %rsi
incq %rsi
callq 0x8320
jmp 0x11985
jmp 0x11b16
movq %rax, %rbx
leaq -0x40(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11b19
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x8320
jmp 0x11b19
movq %rax, %rbx
leaq -0x40(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11b25
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x8320
jmp 0x11b25
jmp 0x11b16
movq %rax, %rbx
cmpl $0x1, %edx
jne 0x11b19
movq %rbx, %rdi
callq 0x8120
movq -0x30(%rbp), %rax
incl 0x8(%rax)
movl $0x1, 0xcc(%rax)
movq -0x68(%rbp), %rcx
movq 0x40(%rcx), %rdx
movslq 0x38(%rax), %rcx
leaq (%rcx,%rcx,4), %rsi
shlq $0x5, %rsi
leaq (%rdx,%rsi), %rdi
movq 0x10(%rdx,%rsi), %rcx
cmpq 0x18(%rdx,%rsi), %rcx
je 0x11a25
movq %rax, -0x8(%rcx)
addq $-0x8, 0x10(%rdi)
jmp 0x11a2e
leaq -0x30(%rbp), %rsi
callq 0x1543a
movq -0xa8(%rbp), %rdi
addq $0x18, %rdi
leaq 0x6b30(%rip), %rsi      # 0x18570
callq 0x9ee0
movq %rax, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x9f54
movq 0x18(%r13), %rax
testb $0x4, 0x20(%rax)
je 0x11aca
callq 0x16531
movq 0xc568(%rip), %rdi      # 0x1dfd0
movq %rax, %rsi
callq 0x8300
movq %rax, %rbx
leaq 0x6b00(%rip), %rsi      # 0x1857a
movl $0xa, %edx
movq %rax, %rdi
callq 0x8350
leaq -0x50(%rbp), %rdi
leaq -0x78(%rbp), %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0xc468
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq %rbx, %rdi
callq 0x8350
movq %rax, %rdi
callq 0x8160
leaq -0x40(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11aca
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x8320
callq 0x8450
movl $0xfffffffd, %r14d      # imm = 0xFFFFFFFD
jmp 0x11902
jmp 0x11afc
jmp 0x11b16
movq %rax, %rbx
leaq -0x40(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11aff
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x8320
jmp 0x11aff
movq %rax, %rbx
callq 0x8450
jmp 0x11b19
movq %rax, %rdi
callq 0xc171
jmp 0x11b16
jmp 0x11b16
jmp 0x11b16
jmp 0x11b16
movq %rax, %rbx
movq -0xb8(%rbp), %rdi
callq 0x8240
movq %rbx, %rdi
callq 0x84a0
nop