// File: /workspace/github_cpp_makefile_star2_O1/lega911[P]ijson/src/connect.cpp
// Function: Connect::header_completed()
void Connect::header_completed() {
    this->loop->stat_request++;
    this->keep_alive = http_version == 11;

    if(server->log & 32) {
        Buffer repr(250);
        if(start_time) {
            i64 dur = (get_time() - start_time) / 1000;
            if(dur >= 10000) {
                repr.add_number(dur / 1000);
                repr.add("sec ");
            } else {
                repr.add_number(dur);
                repr.add("ms ");
            }
            start_time = 0;
        }
        if(this->body.size() > 150) {
            repr.add(this->body.ptr(), 147);
            repr.add("...");
        } else if(this->body.size()) {
            repr.add(this->body);
        }
        for(int i=0;i<repr.size();i++) {
            if(repr.ptr()[i] < 32) repr.ptr()[i] = '.';
        }
        repr.add("\n", 2);
        std::cout << ltime() << this->path.as_string() << " " << this->body.size() << "b " << repr.ptr();
    }
    
    if(this->path == "echo") {
        Slice response("ok");
        this->send.status("200 OK")->done(response);
        return;
    }


    #ifdef DEBUG
    if(this->path == "rpc/migrate") {
        this->send.status("200 OK")->done();
        this->need_loop = this->nloop + 1;
        if(this->need_loop >= server->threads) this->need_loop = 0;
        this->go_loop = true;
        return;
    }

    if(this->path == "debug") {
        Buffer r(32);
        r.add("Memory allocated: ");
        r.add_number(get_memory_allocated());
        r.add("\n");
        this->send.status("200 OK")->done(r);
        return;
    }
    #endif

    if(worker_mode) {
        if(status != Status::worker_mode_async) loop->worker_result_noid(this);
        if(header_option == "stop") {
            if(worker_item) worker_item->pop();
            worker_mode = false;
            this->send.status("200 OK")->done(1);
            status = Status::net;
            return;
        }
        //if(go_loop)  // TODO move worker
        rpc_add();
        return;
    }

    if(noid) {
        if(this->path != "rpc/result" && type != RequestType::result) {
            this->send.status("400 Result expected")->done(-1);
            return;
        };
        int r = loop->worker_result_noid(this);
        if(r == 0) {
            this->send.status("200 OK")->done(1);
        } else if(r == -2) {
            if(server->log & 4) std::cout << ltime() << "499 Client is gone\n";
            this->send.status("499 Closed")->done(-1);
        }
        status = Status::net;
        return;
    }

    Slice method;
    Slice id(this->id);
    json.load(this->body);

    if(type != RequestType::none) {
        name.set(path);
        switch(type) {
        case RequestType::async:
            no_response = true;
            loop->client_request(name, this);
            break;
        case RequestType::get_plus:
            this->noid = true;
            this->fail_on_disconnect = true;
        case RequestType::get:
            rpc_add();
            break;
        case RequestType::worker:
            worker_mode = true;
            rpc_add();
            break;
        case RequestType::pub:
            pub(name);
            break;
        case RequestType::result:
            if(id.empty() && path != "/") id.set(path);
            rpc_result(id);
            break;
        case RequestType::create:
            create_queue(path);
            break;
        case RequestType::del:
            delete_queue(path);
            break;
        default:
            this->send.status("400 Wrong type")->done(-32602);
        }
        return;
    }

    if(this->path == "rpc/call") {
        Slice params;
        while(json.scan()) {
            if(json.key == "method") method = json.value;
            else if(json.key == "id" && id.empty()) {
                id = json.value;
                this->id.set(id);
            } else if(json.key == "params") params = json.value;
        }
        if(!params.empty()) json.load(params, 1);

        if(!method.empty() && method.ptr()[0] == '/') method.remove(1);
        if(method.empty()) {
            this->send.status("400 No method")->done(-32601);
            return;
        }
    } else {
        method = this->path;
    };

    if(method == "rpc/worker") {
        worker_mode = true;
        rpc_add();
        return;
    } else if(method == "rpc/add") {
        rpc_add();
        return;
    } else if(method == "rpc/result") {
        rpc_result(id);
        return;
    } else if(method == "rpc/details") {
        send_details();
        return;
    } else if(method == "/" || method == "rpc/help") {
        send_help();
        return;
    }

    no_response = header_option == "async";
    loop->client_request(method, this);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
movq %rdi, %rbx
movq 0x30(%rdi), %rax
incq 0x78(%rax)
cmpl $0xb, 0x80(%rdi)
sete 0x10(%rdi)
movq 0x48(%rdi), %rax
testb $0x20, 0x20(%rax)
je 0x964c
xorps %xmm0, %xmm0
leaq -0x40(%rbp), %rdi
movaps %xmm0, (%rdi)
movl $0xfa, %esi
callq 0xc5a2
cmpq $0x0, 0x1e0(%rbx)
je 0x94b9
callq 0x164e8
subq 0x1e0(%rbx), %rax
cmpq $0x989680, %rax         # imm = 0x989680
jb 0x947d
movabsq $0x431bde82d7b634db, %rcx # imm = 0x431BDE82D7B634DB
mulq %rcx
shrq $0x12, %rdx
leaq -0x40(%rbp), %rdi
movq %rdx, %rsi
callq 0xc342
leaq 0xdda6(%rip), %rsi      # 0x17221
jmp 0x94a5
shrq $0x3, %rax
movabsq $0x20c49ba5e353f7cf, %rcx # imm = 0x20C49BA5E353F7CF
mulq %rcx
shrq $0x4, %rdx
leaq -0x40(%rbp), %rdi
movq %rdx, %rsi
callq 0xc342
leaq 0xdd81(%rip), %rsi      # 0x17226
leaq -0x40(%rbp), %rdi
callq 0xc41e
movq $0x0, 0x1e0(%rbx)
movl 0xd8(%rbx), %edx
cmpl $0x97, %edx
jl 0x94ee
movq 0xd0(%rbx), %rsi
leaq -0x40(%rbp), %rdi
movl $0x93, %edx
callq 0xc0a8
leaq 0xdd47(%rip), %rsi      # 0x1722a
leaq -0x40(%rbp), %rdi
callq 0xc41e
jmp 0x9502
testl %edx, %edx
je 0x9502
movq 0xd0(%rbx), %rsi
leaq -0x40(%rbp), %rdi
callq 0xc0a8
movl -0x38(%rbp), %esi
testl %esi, %esi
jle 0x9525
xorl %eax, %eax
movq -0x40(%rbp), %rcx
cmpb $0x1f, (%rcx,%rax)
jg 0x9519
movb $0x2e, (%rcx,%rax)
incq %rax
movslq -0x38(%rbp), %rsi
cmpq %rsi, %rax
jl 0x950b
addl $0x2, %esi
leaq -0x40(%rbp), %rdi
callq 0xc5a2
movq -0x40(%rbp), %rax
movslq -0x38(%rbp), %rcx
movw $0xa, (%rax,%rcx)
addl $0x2, -0x38(%rbp)
callq 0x16531
movq %rax, %r14
testq %rax, %rax
je 0x956c
movq %r14, %rdi
callq 0x8130
movq 0x14a71(%rip), %rdi     # 0x1dfd0
movq %r14, %rsi
movq %rax, %rdx
callq 0x8350
jmp 0x958a
movq 0x14a5d(%rip), %rax     # 0x1dfd0
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x20(%rax,%rcx), %esi
orl $0x1, %esi
callq 0x8470
leaq 0x98(%rbx), %rsi
leaq -0x70(%rbp), %rdi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0xc468
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
movq 0x14a22(%rip), %rdi     # 0x1dfd0
callq 0x8350
movq %rax, %r14
leaq 0xe0ec(%rip), %rsi      # 0x176a9
movl $0x1, %edx
movq %rax, %rdi
callq 0x8350
movl 0xd8(%rbx), %esi
movq %r14, %rdi
callq 0x8490
movq %rax, %r14
leaq 0xdc4c(%rip), %rsi      # 0x1722e
movl $0x2, %edx
movq %rax, %rdi
callq 0x8350
movq -0x40(%rbp), %r15
testq %r15, %r15
je 0x9610
movq %r15, %rdi
callq 0x8130
movq %r14, %rdi
movq %r15, %rsi
movq %rax, %rdx
callq 0x8350
jmp 0x962a
movq (%r14), %rax
movq -0x18(%rax), %rax
movq %r14, %rdi
addq %rax, %rdi
movl 0x20(%r14,%rax), %esi
orl $0x1, %esi
callq 0x8470
leaq -0x60(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9643
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x8320
leaq -0x40(%rbp), %rdi
callq 0xc536
leaq 0x98(%rbx), %r14
movl 0xa0(%rbx), %edx
movq 0x98(%rbx), %rsi
xorl %ecx, %ecx
testl %edx, %edx
movl $0x0, %eax
cmovgl %edx, %eax
movb $0x65, %r8b
leaq 0xdbbb(%rip), %rdi      # 0x17231
cmpq %rcx, %rax
je 0x96cd
cmpb (%rsi,%rcx), %r8b
jne 0x96cd
movb 0x1(%rcx,%rdi), %r8b
incq %rcx
cmpq $0x4, %rcx
jne 0x9676
cmpl $0x4, %edx
jne 0x96cd
leaq 0xdb9b(%rip), %rax      # 0x17236
leaq -0x70(%rbp), %r14
movq %rax, (%r14)
movl $0x2, 0x8(%r14)
addq $0x18, %rbx
leaq 0xdb84(%rip), %rsi      # 0x17239
movq %rbx, %rdi
callq 0x9ee0
movq %rbx, %rdi
movq %r14, %rsi
callq 0xa704
jmp 0x9cd9
movb $0x72, %r8b
xorl %ecx, %ecx
leaq 0xdb67(%rip), %rdi      # 0x17240
cmpq %rcx, %rax
je 0x9732
cmpb (%rsi,%rcx), %r8b
jne 0x9732
movb 0x1(%rcx,%rdi), %r8b
incq %rcx
cmpq $0xb, %rcx
jne 0x96d9
cmpl $0xb, %edx
jne 0x9732
leaq 0x18(%rbx), %r14
leaq 0xdb37(%rip), %rsi      # 0x17239
movq %r14, %rdi
callq 0x9ee0
movq %r14, %rdi
callq 0xa802
movl 0x38(%rbx), %eax
incl %eax
movl %eax, 0x3c(%rbx)
movq 0x48(%rbx), %rcx
xorl %edx, %edx
cmpl 0x28(%rcx), %eax
cmovll %eax, %edx
movl %edx, 0x3c(%rbx)
movb $0x1, 0x40(%rbx)
jmp 0x9cd9
movb $0x64, %r8b
xorl %ecx, %ecx
leaq 0xdb0e(%rip), %rdi      # 0x1724c
cmpq %rcx, %rax
je 0x97d9
cmpb (%rsi,%rcx), %r8b
jne 0x97d9
movb 0x1(%rcx,%rdi), %r8b
incq %rcx
cmpq $0x5, %rcx
jne 0x973e
cmpl $0x5, %edx
jne 0x97d9
xorps %xmm0, %xmm0
leaq -0x70(%rbp), %r14
movaps %xmm0, (%r14)
movq %r14, %rdi
movl $0x20, %esi
callq 0xc5a2
leaq 0xdacf(%rip), %rsi      # 0x17252
movq %r14, %rdi
callq 0xc41e
callq 0xee18
movslq %eax, %rsi
leaq -0x70(%rbp), %rdi
callq 0xc342
leaq 0xdefc(%rip), %rsi      # 0x1769f
leaq -0x70(%rbp), %rdi
callq 0xc41e
addq $0x18, %rbx
leaq 0xda82(%rip), %rsi      # 0x17239
movq %rbx, %rdi
callq 0x9ee0
leaq -0x70(%rbp), %rsi
movq %rbx, %rdi
callq 0xa704
leaq -0x70(%rbp), %rdi
callq 0xc536
jmp 0x9cd9
cmpb $0x1, 0xf3(%rbx)
jne 0x9880
cmpl $0x6, 0xcc(%rbx)
je 0x97fb
movq 0x30(%rbx), %rdi
movq %rbx, %rsi
callq 0x12ed4
movl 0xb0(%rbx), %eax
movq 0xa8(%rbx), %rcx
xorl %edx, %edx
testl %eax, %eax
movl $0x0, %esi
cmovgl %eax, %esi
movb $0x73, %r8b
leaq 0xda47(%rip), %rdi      # 0x17265
cmpq %rdx, %rsi
je 0x9cd1
cmpb (%rcx,%rdx), %r8b
jne 0x9cd1
movb 0x1(%rdx,%rdi), %r8b
incq %rdx
cmpq $0x4, %rdx
jne 0x981e
cmpl $0x4, %eax
jne 0x9cd1
movq 0x178(%rbx), %rdi
testq %rdi, %rdi
je 0x9859
callq 0x16bbc
movb $0x0, 0xf3(%rbx)
leaq 0x18(%rbx), %r14
leaq 0xd9ce(%rip), %rsi      # 0x17239
movq %r14, %rdi
callq 0x9ee0
movq %r14, %rdi
movl $0x1, %esi
jmp 0x9bbb
cmpb $0x1, 0xf1(%rbx)
jne 0x98c1
movb $0x72, %r8b
xorl %ecx, %ecx
leaq 0xd9d5(%rip), %rdi      # 0x1726a
cmpq %rcx, %rax
je 0x997e
cmpb (%rsi,%rcx), %r8b
jne 0x997e
movb 0x1(%rcx,%rdi), %r8b
incq %rcx
cmpq $0xa, %rcx
jne 0x9895
cmpl $0xa, %edx
sete %al
jmp 0x9980
xorl %eax, %eax
movq %rax, -0x70(%rbp)
movl %eax, -0x68(%rbp)
movq 0xe0(%rbx), %rcx
movl 0xe8(%rbx), %r12d
movq %rcx, -0x70(%rbp)
movl %r12d, -0x68(%rbp)
movq 0xd0(%rbx), %rcx
movl 0xd8(%rbx), %edi
movq %rax, 0x128(%rbx)
movl %eax, 0x130(%rbx)
movq %rax, 0x138(%rbx)
movl %eax, 0x140(%rbx)
movl %eax, 0x160(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x14c(%rbx)
movq %rcx, 0x150(%rbx)
movl %edi, 0x158(%rbx)
movl %eax, 0x148(%rbx)
cmpl %eax, 0xc8(%rbx)
je 0x9a17
leaq 0xb8(%rbx), %r15
movl $0x0, 0xc0(%rbx)
movq %r15, %rdi
callq 0xc0a8
movl 0xc8(%rbx), %eax
decl %eax
cmpl $0x7, %eax
ja 0x9e80
leaq 0xd6b9(%rip), %rcx      # 0x17020
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movw $0x101, 0xf0(%rbx)      # imm = 0x101
jmp 0x9cd1
xorl %eax, %eax
testb %al, %al
jne 0x99b2
cmpl $0x6, 0xc8(%rbx)
je 0x99b2
addq $0x18, %rbx
leaq 0xd8dd(%rip), %rsi      # 0x17275
movq %rbx, %rdi
callq 0x9ee0
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x9f54
jmp 0x9cd9
movq 0x30(%rbx), %rdi
movq %rbx, %rsi
callq 0x12ed4
testl %eax, %eax
je 0x9b99
cmpl $-0x2, %eax
jne 0x9bc0
movq 0x48(%rbx), %rax
movl $0xffffffff, %r14d      # imm = 0xFFFFFFFF
leaq 0xd8bd(%rip), %r15      # 0x1729d
testb $0x4, 0x20(%rax)
je 0x9ba6
callq 0x16531
movq 0x145da(%rip), %rdi     # 0x1dfd0
movq %rax, %rsi
callq 0x8300
leaq 0xd884(%rip), %rsi      # 0x17289
movl $0x13, %edx
movq %rax, %rdi
callq 0x8350
jmp 0x9ba6
leaq 0xd89b(%rip), %rsi      # 0x172b9
movq %r14, %rdi
callq 0xc1fa
testb %al, %al
je 0x9b86
leaq 0x128(%rbx), %rdi
movq %rdi, -0x98(%rbp)
callq 0xd606
testb %al, %al
je 0x9bcf
leaq 0xe0(%rbx), %rax
movq %rax, -0x90(%rbp)
leaq 0x138(%rbx), %rax
movq %rax, -0x88(%rbp)
movq $0x0, -0x80(%rbp)
leaq 0xd84e(%rip), %r13      # 0x172c2
leaq 0xd8d1(%rip), %r14      # 0x1734c
leaq 0xd84e(%rip), %r12      # 0x172d0
xorl %r15d, %r15d
movl $0x0, -0x44(%rbp)
movq $0x0, -0x78(%rbp)
movl 0x130(%rbx), %eax
movq 0x128(%rbx), %rcx
testl %eax, %eax
movl $0x0, %edx
cmovgl %eax, %edx
movb $0x6d, %dil
xorl %esi, %esi
cmpq %rsi, %rdx
je 0x9ae4
cmpb (%rcx,%rsi), %dil
jne 0x9ae4
movb 0x1(%rsi,%r12), %dil
incq %rsi
cmpq $0x6, %rsi
jne 0x9ab0
cmpl $0x6, %eax
jne 0x9ae4
movq 0x138(%rbx), %r15
movl 0x140(%rbx), %eax
movq %rax, -0x80(%rbp)
jmp 0x9b70
movb $0x69, %dil
xorl %esi, %esi
cmpq %rsi, %rdx
je 0x9b39
cmpb (%rcx,%rsi), %dil
jne 0x9b39
movb 0x1(%rsi,%r14), %dil
incq %rsi
cmpq $0x2, %rsi
jne 0x9ae9
cmpl $0x2, %eax
jne 0x9b39
cmpl $0x0, -0x68(%rbp)
jne 0x9b39
movq -0x88(%rbp), %rax
movq (%rax), %rsi
movq %rsi, -0x70(%rbp)
movl 0x8(%rax), %edx
movl %edx, -0x68(%rbp)
movl $0x0, 0xe8(%rbx)
movq -0x90(%rbp), %rdi
callq 0xc0a8
jmp 0x9b70
movb $0x70, %dil
xorl %esi, %esi
cmpq %rsi, %rdx
je 0x9b70
cmpb (%rcx,%rsi), %dil
jne 0x9b70
movb 0x1(%rsi,%r13), %dil
incq %rsi
cmpq $0x6, %rsi
jne 0x9b3e
cmpl $0x6, %eax
jne 0x9b70
movq 0x138(%rbx), %rax
movq %rax, -0x78(%rbp)
movl 0x140(%rbx), %eax
movl %eax, -0x44(%rbp)
movq -0x98(%rbp), %rdi
callq 0xd606
testb %al, %al
jne 0x9a94
jmp 0x9be9
movq 0x98(%rbx), %r15
movl 0xa0(%rbx), %r14d
jmp 0x9c66
movl $0x1, %r14d
leaq 0xd693(%rip), %r15      # 0x17239
leaq 0x18(%rbx), %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0x9ee0
movq %r12, %rdi
movl %r14d, %esi
callq 0x9f54
movl $0x0, 0xcc(%rbx)
jmp 0x9cd9
movq $0x0, -0x78(%rbp)
movl $0x0, -0x44(%rbp)
xorl %r15d, %r15d
movq $0x0, -0x80(%rbp)
movl -0x44(%rbp), %edx
testl %edx, %edx
je 0x9c3a
leaq 0x14c(%rbx), %rax
xorl %ecx, %ecx
movq %rcx, 0x128(%rbx)
movl %ecx, 0x130(%rbx)
movq %rcx, 0x138(%rbx)
movl %ecx, 0x140(%rbx)
movl %ecx, 0x160(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq -0x78(%rbp), %rax
movq %rax, 0x150(%rbx)
movl %edx, 0x158(%rbx)
movl $0x1, 0x148(%rbx)
movq -0x80(%rbp), %r14
testl %r14d, %r14d
je 0x9c5d
cmpb $0x2f, (%r15)
jne 0x9c5d
testl %r14d, %r14d
movl $0x1, %eax
cmovlel %r14d, %eax
cltq
addq %rax, %r15
subl %eax, %r14d
testl %r14d, %r14d
je 0x9dba
xorl %ecx, %ecx
testl %r14d, %r14d
movl $0x0, %eax
cmovgl %r14d, %eax
movb $0x72, %sil
leaq 0xd659(%rip), %rdx      # 0x172d7
cmpq %rcx, %rax
je 0x9ca6
cmpb (%r15,%rcx), %sil
jne 0x9ca6
movb 0x1(%rcx,%rdx), %sil
incq %rcx
cmpq $0xa, %rcx
jne 0x9c7e
cmpl $0xa, %r14d
jne 0x9ca6
movb $0x1, 0xf3(%rbx)
jmp 0x9cd1
movb $0x72, %sil
xorl %ecx, %ecx
leaq 0xd630(%rip), %rdx      # 0x172e2
cmpq %rcx, %rax
je 0x9ce8
cmpb (%r15,%rcx), %sil
jne 0x9ce8
movb 0x1(%rcx,%rdx), %sil
incq %rcx
cmpq $0x7, %rcx
jne 0x9cb2
cmpl $0x7, %r14d
jne 0x9ce8
movq %rbx, %rdi
callq 0xa8ac
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movb $0x72, %sil
xorl %ecx, %ecx
leaq 0xd576(%rip), %rdx      # 0x1726a
cmpq %rcx, %rax
je 0x9d17
cmpb (%r15,%rcx), %sil
jne 0x9d17
movb 0x1(%rcx,%rdx), %sil
incq %rcx
cmpq $0xa, %rcx
jne 0x9cf4
cmpl $0xa, %r14d
je 0x9e55
movb $0x72, %sil
xorl %ecx, %ecx
leaq 0xd5c7(%rip), %rdx      # 0x172ea
cmpq %rcx, %rax
je 0x9d4c
cmpb (%r15,%rcx), %sil
jne 0x9d4c
movb 0x1(%rcx,%rdx), %sil
incq %rcx
cmpq $0xb, %rcx
jne 0x9d23
cmpl $0xb, %r14d
jne 0x9d4c
movq %rbx, %rdi
callq 0xb2be
jmp 0x9cd9
testl %r14d, %r14d
jle 0x9d5d
cmpb $0x2f, (%r15)
jne 0x9d5d
cmpl $0x1, %r14d
je 0x9d88
movb $0x72, %sil
xorl %ecx, %ecx
leaq 0xd58d(%rip), %rdx      # 0x172f6
cmpq %rcx, %rax
je 0x9d95
cmpb (%r15,%rcx), %sil
jne 0x9d95
movb 0x1(%rcx,%rdx), %sil
incq %rcx
cmpq $0x8, %rcx
jne 0x9d69
cmpl $0x8, %r14d
jne 0x9d95
movq %rbx, %rdi
callq 0xb822
jmp 0x9cd9
leaq 0xa8(%rbx), %rdi
leaq 0xd412(%rip), %rsi      # 0x171b5
callq 0xc1fa
movb %al, 0xf2(%rbx)
movq 0x30(%rbx), %rdi
movq %r15, %rsi
movl %r14d, %edx
jmp 0x9e02
addq $0x18, %rbx
leaq 0xd504(%rip), %rsi      # 0x172c9
movq %rbx, %rdi
callq 0x9ee0
movq %rbx, %rdi
movl $0xffff80a7, %esi       # imm = 0xFFFF80A7
jmp 0x99a8
movq %rbx, %rdi
movq %r15, %rsi
callq 0xab90
jmp 0x9cd9
movb $0x1, 0xf2(%rbx)
movq 0x30(%rbx), %rdi
movq 0xb8(%rbx), %rsi
movl 0xc0(%rbx), %edx
movq %rbx, %rcx
callq 0x10d74
jmp 0x9cd9
movq 0x98(%rbx), %rsi
movl 0xa0(%rbx), %edx
movq %rbx, %rdi
callq 0xb25a
jmp 0x9cd9
testl %r12d, %r12d
jne 0x9e55
leaq 0xd473(%rip), %rsi      # 0x172a8
movq %r14, %rdi
callq 0xc562
testb %al, %al
je 0x9e55
movq 0x98(%rbx), %rax
movl 0xa0(%rbx), %ecx
movq %rax, -0x70(%rbp)
movl %ecx, -0x68(%rbp)
leaq -0x70(%rbp), %rsi
movq %rbx, %rdi
callq 0xaf76
jmp 0x9cd9
movq 0x98(%rbx), %rsi
movl 0xa0(%rbx), %edx
movq %rbx, %rdi
callq 0xb1f0
jmp 0x9cd9
addq $0x18, %rbx
leaq 0xd41f(%rip), %rsi      # 0x172aa
movq %rbx, %rdi
callq 0x9ee0
movq %rbx, %rdi
movl $0xffff80a6, %esi       # imm = 0xFFFF80A6
jmp 0x99a8
jmp 0x9ead
movq %rax, %rbx
leaq -0x70(%rbp), %rdi
jmp 0x9ed2
jmp 0x9ead
movq %rax, %rbx
jmp 0x9ece
movq %rax, %rbx
leaq -0x60(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9ece
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x8320
leaq -0x40(%rbp), %rdi
callq 0xc536
movq %rbx, %rdi
callq 0x84a0
nop