// File: 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
subq $0x1c0, %rsp            # imm = 0x1C0
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x120(%rbp)
movq 0x30(%rax), %rcx
movq 0x78(%rcx), %rdx
addq $0x1, %rdx
movq %rdx, 0x78(%rcx)
cmpl $0xb, 0x80(%rax)
sete %cl
andb $0x1, %cl
movb %cl, 0x10(%rax)
movq 0x48(%rax), %rax
movl 0x20(%rax), %eax
andl $0x20, %eax
cmpl $0x0, %eax
je 0x1ad2d
leaq -0x18(%rbp), %rdi
movl $0xfa, %esi
callq 0x1f190
movq -0x120(%rbp), %rax
cmpq $0x0, 0x1e0(%rax)
je 0x1aab2
callq 0x36910
movq %rax, -0x128(%rbp)
jmp 0x1a9fe
movq -0x120(%rbp), %rcx
movq -0x128(%rbp), %rax
subq 0x1e0(%rcx), %rax
movl $0x3e8, %ecx            # imm = 0x3E8
xorl %edx, %edx
divq %rcx
movq %rax, -0x20(%rbp)
cmpq $0x2710, -0x20(%rbp)    # imm = 0x2710
jl 0x1aa7d
movq -0x20(%rbp), %rax
movabsq $0x20c49ba5e353f7cf, %rcx # imm = 0x20C49BA5E353F7CF
imulq %rcx
movq %rdx, %rsi
movq %rsi, %rdx
shrq $0x3f, %rdx
sarq $0x7, %rsi
addq %rdx, %rsi
leaq -0x18(%rbp), %rdi
callq 0x1f1d0
jmp 0x1aa58
leaq 0x1d7ba(%rip), %rsi     # 0x38219
leaq -0x18(%rbp), %rdi
callq 0x1f2c0
jmp 0x1aa6a
jmp 0x1aaa0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x1ad1f
movq -0x20(%rbp), %rsi
leaq -0x18(%rbp), %rdi
callq 0x1f1d0
jmp 0x1aa8c
leaq 0x1d78b(%rip), %rsi     # 0x3821e
leaq -0x18(%rbp), %rdi
callq 0x1f2c0
jmp 0x1aa9e
jmp 0x1aaa0
movq -0x120(%rbp), %rax
movq $0x0, 0x1e0(%rax)
movq -0x120(%rbp), %rdi
addq $0xd0, %rdi
callq 0x1e6d0
movl %eax, -0x12c(%rbp)
jmp 0x1aacd
movl -0x12c(%rbp), %eax
cmpl $0x96, %eax
jle 0x1ab21
movq -0x120(%rbp), %rdi
addq $0xd0, %rdi
callq 0x1e6f0
movq %rax, -0x138(%rbp)
jmp 0x1aaf6
movq -0x138(%rbp), %rsi
leaq -0x18(%rbp), %rdi
movl $0x93, %edx
callq 0x1e8b0
jmp 0x1ab0d
leaq 0x1d70e(%rip), %rsi     # 0x38222
leaq -0x18(%rbp), %rdi
callq 0x1f2c0
jmp 0x1ab1f
jmp 0x1ab64
movq -0x120(%rbp), %rdi
addq $0xd0, %rdi
callq 0x1e6d0
movl %eax, -0x13c(%rbp)
jmp 0x1ab3c
movl -0x13c(%rbp), %eax
cmpl $0x0, %eax
je 0x1ab62
movq -0x120(%rbp), %rsi
addq $0xd0, %rsi
leaq -0x18(%rbp), %rdi
callq 0x1ea60
jmp 0x1ab60
jmp 0x1ab62
jmp 0x1ab64
movl $0x0, -0x30(%rbp)
movl -0x30(%rbp), %eax
movl %eax, -0x144(%rbp)
leaq -0x18(%rbp), %rdi
callq 0x1e6d0
movl %eax, -0x140(%rbp)
jmp 0x1ab85
movl -0x144(%rbp), %eax
movl -0x140(%rbp), %ecx
cmpl %ecx, %eax
jge 0x1abe9
leaq -0x18(%rbp), %rdi
callq 0x1e6f0
movq %rax, -0x150(%rbp)
jmp 0x1aba7
movq -0x150(%rbp), %rax
movslq -0x30(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x20, %eax
jge 0x1abdc
leaq -0x18(%rbp), %rdi
callq 0x1e6f0
movq %rax, -0x158(%rbp)
jmp 0x1abcd
movq -0x158(%rbp), %rax
movslq -0x30(%rbp), %rcx
movb $0x2e, (%rax,%rcx)
jmp 0x1abde
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0x1ab6b
leaq 0x1daaa(%rip), %rsi     # 0x3869a
leaq -0x18(%rbp), %rdi
movl $0x2, %edx
callq 0x1e8b0
jmp 0x1ac00
callq 0x36960
movq %rax, -0x160(%rbp)
jmp 0x1ac0e
movq -0x160(%rbp), %rsi
movq 0x2c3b4(%rip), %rdi     # 0x46fd0
callq 0x192e0
movq %rax, -0x168(%rbp)
jmp 0x1ac2a
movq -0x120(%rbp), %rsi
addq $0x98, %rsi
leaq -0x50(%rbp), %rdi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x1f340
jmp 0x1ac48
movq -0x168(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x19290
movq %rax, -0x170(%rbp)
jmp 0x1ac61
movq -0x170(%rbp), %rdi
leaq 0x1da35(%rip), %rsi     # 0x386a4
callq 0x192e0
movq %rax, -0x178(%rbp)
jmp 0x1ac7d
movq -0x120(%rbp), %rdi
addq $0xd0, %rdi
callq 0x1e6d0
movl %eax, -0x17c(%rbp)
jmp 0x1ac98
movl -0x17c(%rbp), %esi
movq -0x178(%rbp), %rdi
callq 0x19490
movq %rax, -0x188(%rbp)
jmp 0x1acb3
movq -0x188(%rbp), %rdi
leaq 0x1d565(%rip), %rsi     # 0x38226
callq 0x192e0
movq %rax, -0x190(%rbp)
jmp 0x1accf
leaq -0x18(%rbp), %rdi
callq 0x1e6f0
movq %rax, -0x198(%rbp)
jmp 0x1ace1
movq -0x198(%rbp), %rsi
movq -0x190(%rbp), %rdi
callq 0x192e0
jmp 0x1acf6
leaq -0x50(%rbp), %rdi
callq 0x191e0
leaq -0x18(%rbp), %rdi
callq 0x1f460
jmp 0x1ad2d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x191e0
leaq -0x18(%rbp), %rdi
callq 0x1f460
jmp 0x1b6bf
movq -0x120(%rbp), %rdi
addq $0x98, %rdi
leaq 0x1d4e7(%rip), %rsi     # 0x38229
callq 0x1ee30
testb $0x1, %al
jne 0x1ad4d
jmp 0x1ad85
leaq -0x60(%rbp), %rdi
leaq 0x1d4d6(%rip), %rsi     # 0x3822e
callq 0x1f4b0
movq -0x120(%rbp), %rdi
addq $0x18, %rdi
leaq 0x1d4c2(%rip), %rsi     # 0x38231
callq 0x1b6d0
movq %rax, %rdi
leaq -0x60(%rbp), %rsi
callq 0x1be40
jmp 0x1b6b6
movq -0x120(%rbp), %rdi
addq $0x98, %rdi
leaq 0x1d49e(%rip), %rsi     # 0x38238
callq 0x1ee30
testb $0x1, %al
jne 0x1ada5
jmp 0x1adfe
movq -0x120(%rbp), %rdi
addq $0x18, %rdi
leaq 0x1d47a(%rip), %rsi     # 0x38231
callq 0x1b6d0
movq %rax, %rdi
callq 0x1bf70
movq -0x120(%rbp), %rcx
movl 0x38(%rcx), %eax
addl $0x1, %eax
movl %eax, 0x3c(%rcx)
movl 0x3c(%rcx), %eax
movq 0x48(%rcx), %rcx
cmpl 0x28(%rcx), %eax
jl 0x1adee
movq -0x120(%rbp), %rax
movl $0x0, 0x3c(%rax)
movq -0x120(%rbp), %rax
movb $0x1, 0x40(%rax)
jmp 0x1b6b6
movq -0x120(%rbp), %rdi
addq $0x98, %rdi
leaq 0x1d431(%rip), %rsi     # 0x38244
callq 0x1ee30
testb $0x1, %al
jne 0x1ae21
jmp 0x1aed8
leaq -0x70(%rbp), %rdi
movq %rdi, -0x1a0(%rbp)
movl $0x20, %esi
callq 0x1f190
movq -0x1a0(%rbp), %rdi
leaq 0x1d406(%rip), %rsi     # 0x3824a
callq 0x1f2c0
jmp 0x1ae4b
callq 0x27150
movl %eax, -0x1a4(%rbp)
jmp 0x1ae58
movl -0x1a4(%rbp), %eax
movslq %eax, %rsi
leaq -0x70(%rbp), %rdi
callq 0x1f1d0
jmp 0x1ae6c
leaq 0x1d827(%rip), %rsi     # 0x3869a
leaq -0x70(%rbp), %rdi
callq 0x1f2c0
jmp 0x1ae7e
movq -0x120(%rbp), %rdi
addq $0x18, %rdi
leaq 0x1d3a1(%rip), %rsi     # 0x38231
callq 0x1b6d0
movq %rax, -0x1b0(%rbp)
jmp 0x1ae9e
movq -0x1b0(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x1be40
jmp 0x1aeb0
leaq -0x70(%rbp), %rdi
callq 0x1f460
jmp 0x1b6b6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x1f460
jmp 0x1b6bf
movq -0x120(%rbp), %rax
testb $0x1, 0xf3(%rax)
je 0x1afa2
movq -0x120(%rbp), %rax
cmpl $0x6, 0xcc(%rax)
je 0x1af0c
movq -0x120(%rbp), %rsi
movq 0x30(%rsi), %rdi
callq 0x2c970
movq -0x120(%rbp), %rdi
addq $0xa8, %rdi
leaq 0x1d33c(%rip), %rsi     # 0x3825d
callq 0x1ee30
testb $0x1, %al
jne 0x1af2c
jmp 0x1af91
movq -0x120(%rbp), %rax
cmpq $0x0, 0x178(%rax)
je 0x1af50
movq -0x120(%rbp), %rax
movq 0x178(%rax), %rdi
callq 0x37930
movq -0x120(%rbp), %rdi
movb $0x0, 0xf3(%rdi)
addq $0x18, %rdi
leaq 0x1d2c8(%rip), %rsi     # 0x38231
callq 0x1b6d0
movq %rax, %rdi
movl $0x1, %esi
callq 0x1b770
movq -0x120(%rbp), %rax
movl $0x0, 0xcc(%rax)
jmp 0x1b6b6
movq -0x120(%rbp), %rdi
callq 0x1c030
jmp 0x1b6b6
movq -0x120(%rbp), %rax
testb $0x1, 0xf1(%rax)
je 0x1b0c9
movq -0x120(%rbp), %rdi
addq $0x98, %rdi
leaq 0x1d297(%rip), %rsi     # 0x38262
callq 0x1f500
testb $0x1, %al
jne 0x1afd6
jmp 0x1b00f
movq -0x120(%rbp), %rax
cmpl $0x6, 0xc8(%rax)
je 0x1b00f
movq -0x120(%rbp), %rdi
addq $0x18, %rdi
leaq 0x1d275(%rip), %rsi     # 0x3826d
callq 0x1b6d0
movq %rax, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x1b770
jmp 0x1b6b6
movq -0x120(%rbp), %rsi
movq 0x30(%rsi), %rdi
callq 0x2c970
movl %eax, -0x74(%rbp)
cmpl $0x0, -0x74(%rbp)
jne 0x1b04e
movq -0x120(%rbp), %rdi
addq $0x18, %rdi
leaq 0x1d1f7(%rip), %rsi     # 0x38231
callq 0x1b6d0
movq %rax, %rdi
movl $0x1, %esi
callq 0x1b770
jmp 0x1b0b3
cmpl $-0x2, -0x74(%rbp)
jne 0x1b0b1
movq -0x120(%rbp), %rax
movq 0x48(%rax), %rax
movl 0x20(%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x1b08d
callq 0x36960
movq %rax, %rsi
movq 0x2bf57(%rip), %rdi     # 0x46fd0
callq 0x192e0
movq %rax, %rdi
leaq 0x1d1f9(%rip), %rsi     # 0x38281
callq 0x192e0
movq -0x120(%rbp), %rdi
addq $0x18, %rdi
leaq 0x1d1f6(%rip), %rsi     # 0x38295
callq 0x1b6d0
movq %rax, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x1b770
jmp 0x1b0b3
movq -0x120(%rbp), %rax
movl $0x0, 0xcc(%rax)
jmp 0x1b6b6
leaq -0x88(%rbp), %rdi
callq 0x1e9d0
movq -0x120(%rbp), %rsi
addq $0xe0, %rsi
leaq -0x98(%rbp), %rdi
callq 0x1e9f0
movq -0x120(%rbp), %rax
movq %rax, %rdi
addq $0x128, %rdi            # imm = 0x128
movq 0xd0(%rax), %rcx
movq %rcx, -0xa8(%rbp)
movq 0xd8(%rax), %rax
movq %rax, -0xa0(%rbp)
movq -0xa8(%rbp), %rsi
movl -0xa0(%rbp), %edx
xorl %ecx, %ecx
callq 0x1f530
movq -0x120(%rbp), %rax
cmpl $0x0, 0xc8(%rax)
je 0x1b32e
movq -0x120(%rbp), %rsi
movq %rsi, %rdi
addq $0xb8, %rdi
addq $0x98, %rsi
callq 0x1ed20
movq -0x120(%rbp), %rax
movl 0xc8(%rax), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x1b8(%rbp)
subl $0x7, %eax
ja 0x1b305
movq -0x1b8(%rbp), %rax
leaq 0x1ce74(%rip), %rcx     # 0x38004
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x120(%rbp), %rcx
movb $0x1, 0xf2(%rcx)
movq 0x30(%rcx), %rdi
movq 0xb8(%rcx), %rax
movq %rax, -0xb8(%rbp)
movq 0xc0(%rcx), %rax
movq %rax, -0xb0(%rbp)
movq -0xb8(%rbp), %rsi
movl -0xb0(%rbp), %edx
callq 0x29e30
jmp 0x1b329
movq -0x120(%rbp), %rax
movb $0x1, 0xf1(%rax)
movb $0x1, 0xf0(%rax)
movq -0x120(%rbp), %rdi
callq 0x1c030
jmp 0x1b329
movq -0x120(%rbp), %rdi
movb $0x1, 0xf3(%rdi)
callq 0x1c030
jmp 0x1b329
movq -0x120(%rbp), %rdi
movq %rdi, %rsi
addq $0xb8, %rsi
callq 0x1c270
jmp 0x1b329
leaq -0x98(%rbp), %rdi
callq 0x1eb40
testb $0x1, %al
jne 0x1b249
jmp 0x1b283
movq -0x120(%rbp), %rdi
addq $0x98, %rdi
leaq 0x1d042(%rip), %rsi     # 0x382a0
callq 0x1f500
testb $0x1, %al
jne 0x1b269
jmp 0x1b283
movq -0x120(%rbp), %rsi
addq $0x98, %rsi
leaq -0x98(%rbp), %rdi
callq 0x1f580
movq -0x120(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x1c6b0
jmp 0x1b329
movq -0x120(%rbp), %rsi
addq $0x98, %rsi
leaq -0xc8(%rbp), %rdi
callq 0x1e9f0
movq -0x120(%rbp), %rdi
movq -0xc8(%rbp), %rsi
movl -0xc0(%rbp), %edx
callq 0x1c8e0
jmp 0x1b329
movq -0x120(%rbp), %rsi
addq $0x98, %rsi
leaq -0xd8(%rbp), %rdi
callq 0x1e9f0
movq -0x120(%rbp), %rdi
movq -0xd8(%rbp), %rsi
movl -0xd0(%rbp), %edx
callq 0x1c9a0
jmp 0x1b329
movq -0x120(%rbp), %rdi
addq $0x18, %rdi
leaq 0x1cf8b(%rip), %rsi     # 0x382a2
callq 0x1b6d0
movq %rax, %rdi
movl $0xffff80a6, %esi       # imm = 0xFFFF80A6
callq 0x1b770
jmp 0x1b6b6
movq -0x120(%rbp), %rdi
addq $0x98, %rdi
leaq 0x1cf6e(%rip), %rsi     # 0x382b1
callq 0x1ee30
testb $0x1, %al
jne 0x1b351
jmp 0x1b531
leaq -0xe8(%rbp), %rdi
callq 0x1e9d0
movq -0x120(%rbp), %rdi
addq $0x128, %rdi            # imm = 0x128
callq 0x236d0
testb $0x1, %al
jne 0x1b379
jmp 0x1b46e
movq -0x120(%rbp), %rdi
addq $0x128, %rdi            # imm = 0x128
leaq 0x1cf3a(%rip), %rsi     # 0x382c8
callq 0x1ee30
testb $0x1, %al
jne 0x1b399
jmp 0x1b3bc
movq -0x120(%rbp), %rax
movq 0x138(%rax), %rcx
movq %rcx, -0x88(%rbp)
movl 0x140(%rax), %eax
movl %eax, -0x80(%rbp)
jmp 0x1b469
movq -0x120(%rbp), %rdi
addq $0x128, %rdi            # imm = 0x128
leaq 0x1cf73(%rip), %rsi     # 0x38344
callq 0x1ee30
testb $0x1, %al
jne 0x1b3dc
jmp 0x1b424
leaq -0x98(%rbp), %rdi
callq 0x1eb40
testb $0x1, %al
jne 0x1b3ee
jmp 0x1b424
movq -0x120(%rbp), %rdi
movq 0x138(%rdi), %rax
movq %rax, -0x98(%rbp)
movl 0x140(%rdi), %eax
movl %eax, -0x90(%rbp)
addq $0xe0, %rdi
leaq -0x98(%rbp), %rsi
callq 0x1ed20
jmp 0x1b467
movq -0x120(%rbp), %rdi
addq $0x128, %rdi            # imm = 0x128
leaq 0x1ce81(%rip), %rsi     # 0x382ba
callq 0x1ee30
testb $0x1, %al
jne 0x1b444
jmp 0x1b465
movq -0x120(%rbp), %rax
movq 0x138(%rax), %rcx
movq %rcx, -0xe8(%rbp)
movl 0x140(%rax), %eax
movl %eax, -0xe0(%rbp)
jmp 0x1b467
jmp 0x1b469
jmp 0x1b35d
leaq -0xe8(%rbp), %rdi
callq 0x1eb40
testb $0x1, %al
jne 0x1b4bf
movq -0x120(%rbp), %rdi
addq $0x128, %rdi            # imm = 0x128
movq -0xe8(%rbp), %rax
movq %rax, -0xf8(%rbp)
movq -0xe0(%rbp), %rax
movq %rax, -0xf0(%rbp)
movq -0xf8(%rbp), %rsi
movl -0xf0(%rbp), %edx
movl $0x1, %ecx
callq 0x1f530
leaq -0x88(%rbp), %rdi
callq 0x1eb40
testb $0x1, %al
jne 0x1b4f4
leaq -0x88(%rbp), %rdi
callq 0x1e6f0
movsbl (%rax), %eax
cmpl $0x2f, %eax
jne 0x1b4f4
leaq -0x88(%rbp), %rdi
movl $0x1, %esi
callq 0x1ef50
leaq -0x88(%rbp), %rdi
callq 0x1eb40
testb $0x1, %al
jne 0x1b506
jmp 0x1b52f
movq -0x120(%rbp), %rdi
addq $0x18, %rdi
leaq 0x1cda9(%rip), %rsi     # 0x382c1
callq 0x1b6d0
movq %rax, %rdi
movl $0xffff80a7, %esi       # imm = 0xFFFF80A7
callq 0x1b770
jmp 0x1b6b6
jmp 0x1b562
movq -0x120(%rbp), %rsi
addq $0x98, %rsi
leaq -0x108(%rbp), %rdi
callq 0x1e9f0
movq -0x108(%rbp), %rax
movq %rax, -0x88(%rbp)
movl -0x100(%rbp), %eax
movl %eax, -0x80(%rbp)
leaq -0x88(%rbp), %rdi
leaq 0x1cd5f(%rip), %rsi     # 0x382cf
callq 0x1ee30
testb $0x1, %al
jne 0x1b57b
jmp 0x1b593
movq -0x120(%rbp), %rdi
movb $0x1, 0xf3(%rdi)
callq 0x1c030
jmp 0x1b6b6
leaq -0x88(%rbp), %rdi
leaq 0x1cd39(%rip), %rsi     # 0x382da
callq 0x1ee30
testb $0x1, %al
jne 0x1b5ac
jmp 0x1b5bd
movq -0x120(%rbp), %rdi
callq 0x1c030
jmp 0x1b6b6
leaq -0x88(%rbp), %rdi
leaq 0x1cc97(%rip), %rsi     # 0x38262
callq 0x1ee30
testb $0x1, %al
jne 0x1b5d6
jmp 0x1b5ee
movq -0x120(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x1c6b0
jmp 0x1b6b6
leaq -0x88(%rbp), %rdi
leaq 0x1cce6(%rip), %rsi     # 0x382e2
callq 0x1ee30
testb $0x1, %al
jne 0x1b607
jmp 0x1b618
movq -0x120(%rbp), %rdi
callq 0x1ca60
jmp 0x1b6b6
leaq -0x88(%rbp), %rdi
leaq 0x1cc7a(%rip), %rsi     # 0x382a0
callq 0x1ee30
testb $0x1, %al
jne 0x1b648
leaq -0x88(%rbp), %rdi
leaq 0x1ccb1(%rip), %rsi     # 0x382ee
callq 0x1ee30
testb $0x1, %al
jne 0x1b648
jmp 0x1b656
movq -0x120(%rbp), %rdi
callq 0x1d1e0
jmp 0x1b6b6
jmp 0x1b658
jmp 0x1b65a
jmp 0x1b65c
jmp 0x1b65e
movq -0x120(%rbp), %rdi
addq $0xa8, %rdi
leaq 0x1cb3a(%rip), %rsi     # 0x381ad
callq 0x1ee30
movq -0x120(%rbp), %rcx
andb $0x1, %al
movb %al, 0xf2(%rcx)
movq 0x30(%rcx), %rdi
movq -0x88(%rbp), %rax
movq %rax, -0x118(%rbp)
movq -0x80(%rbp), %rax
movq %rax, -0x110(%rbp)
movq -0x118(%rbp), %rsi
movl -0x110(%rbp), %edx
callq 0x29e30
addq $0x1c0, %rsp            # imm = 0x1C0
popq %rbp
retq
movq -0x28(%rbp), %rdi
callq 0x194a0
nopl (%rax,%rax)