// File: /workspace/github_c_makefile_star2_O0/wtarreau[P]httpterm/httpterm.c
// Function: srv_return_page
static inline void srv_return_page(struct session *t) {
    int hlen;
    struct server *srv;

    srv = t->srv;

    if (t->req_code < 0)
	t->req_code = srv->resp_code;

    if (t->req_cache < 0)
	t->req_cache = srv->resp_cache;

    if (srv->resp_size < 0)
	srv->resp_size = 0;

    if (t->req_size < 0)
	t->req_size = srv->resp_size;

    if (t->req_time < 0)
	t->req_time = srv->resp_time;

    if (srv->resp_data) {
	t->rep->data = srv->resp_data;
	t->rep->l = srv->resp_size;
	t->rep->r = srv->resp_data + t->rep->l;
	t->rep->h = t->rep->lr = t->rep->w = t->rep->data;
	t->to_write = 0;
    }
    else {
	hlen  = 0;

	//hlen += snprintf(t->rep->data + hlen, BUFSIZE - hlen, "HTTP/1.1 %03d\r\n", t->req_code);
	memcpy(t->rep->data + hlen, "HTTP/1.1 000\r\n", 14);
	if (!(t->ka & 4)) // HTTP/1.0
	    t->rep->data[hlen+ 7] = '0';
	t->rep->data[hlen+ 9] = ((t->req_code / 100) % 10) + '0';
	t->rep->data[hlen+10] = ((t->req_code /  10) % 10) + '0';
	t->rep->data[hlen+11] = ((t->req_code /   1) % 10) + '0';
	hlen += 14;

	if ((t->ka & 5) == 1) { // HTTP/1.0 + KA
	    memcpy(t->rep->data + hlen, "Connection: keep-alive\r\n", 24);
	    hlen += 24;
	} else if ((t->ka & 5) == 4) { // HTTP/1.1 + close
	    memcpy(t->rep->data + hlen, "Connection: close\r\n", 19);
	    hlen += 19;
	}

	if (t->req_chunked) {
	    memcpy(t->rep->data + hlen, "Transfer-Encoding: chunked\r\n", 28);
	    hlen += 28;
	}
	else if (t->req_bodylen || (t->ka & 1)) {
	    memcpy(t->rep->data + hlen, "Content-length: ", 16); hlen += 16;
	    hlen += ulltoa((t->req_bodylen > 0) ? t->req_bodylen : t->req_size, t->rep->data + hlen, BUFSIZE - hlen);
	    memcpy(t->rep->data + hlen, "\r\n", 2); hlen += 2;
	}

	if (!t->req_cache) {
	    memcpy(t->rep->data + hlen, "Cache-Control: no-cache\r\n", 25);
	    hlen += 25;
	}

	if (t->etag) {
	    memcpy(t->rep->data + hlen, "Etag: ", 6); hlen += 6;
	    hlen += ulltox(t->etag, t->rep->data + hlen, BUFSIZE - hlen);
	    memcpy(t->rep->data + hlen, "\r\n", 2); hlen += 2;
	}

	if (t->req_verbose) {
	    memcpy(t->rep->data + hlen, "X-req: size=", 12); hlen += 12;
	    hlen += ulltoa(t->req->total, t->rep->data + hlen, BUFSIZE - hlen);

	    memcpy(t->rep->data + hlen, ", time=", 7); hlen += 7;
	    hlen += ulltoa(t->logs.t_request, t->rep->data + hlen, BUFSIZE - hlen);

	    memcpy(t->rep->data + hlen, "\r\nX-rsp: id=", 12); hlen += 12;
	    hlen += strlcpy2(t->rep->data + hlen, srv->id, BUFSIZE - hlen);

	    memcpy(t->rep->data + hlen, ", code=", 7); hlen += 7;
	    hlen += ulltoa(t->req_code, t->rep->data + hlen, BUFSIZE - hlen);

	    memcpy(t->rep->data + hlen, ", cache=", 8); hlen += 8;
	    t->rep->data[hlen++] = '0' + !!t->req_cache;

	    if (t->req_chunked) {
		memcpy(t->rep->data + hlen, ", chunked", 9); hlen += 9;
	    }

	    memcpy(t->rep->data + hlen, ", size=", 7); hlen += 7;
	    hlen += ulltoa(t->req_size, t->rep->data + hlen, BUFSIZE - hlen);

	    memcpy(t->rep->data + hlen, ", time=", 7); hlen += 7;
	    hlen += ulltoa(t->req_time, t->rep->data + hlen, BUFSIZE - hlen);

	    memcpy(t->rep->data + hlen, " ms (", 5); hlen += 5;
	    hlen += ulltoa(t->logs.t_queue - t->logs.t_request, t->rep->data + hlen, BUFSIZE - hlen);

	    memcpy(t->rep->data + hlen, " real)\r\n", 8); hlen += 8;
	}
	/* final CRLF */
	memcpy(t->rep->data + hlen, "\r\n", 2); hlen += 2;

	//hlen += snprintf(t->rep->data + hlen, BUFSIZE - hlen,
	//		 "X-req: size=%ld, time=%ld ms\r\n"
	//		 "X-rsp: id=%s, code=%d, cache=%d,%s size=%lld, time=%d ms (%ld real)\r\n"
	//		 "\r\n",
	//		 (long)t->req->total, t->logs.t_request,
	//		 srv->id, t->req_code, t->req_cache,
	//		 t->req_chunked ? " chunked," : "",
	//		 t->req_size, t->req_time,
	//		 t->logs.t_queue - t->logs.t_request);
	t->to_write = t->req_size;
	t->rep->l = hlen;
	t->rep->r = t->rep->h = t->rep->lr = t->rep->w = t->rep->data;
	t->rep->r += hlen;
    }

    if (event_cli_write(t->cli_fd) < 0)
	my_fd_set(t->cli_fd, StaticWriteEvent);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0xf0(%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x148(%rax)
jge 0x7b89
movq -0x18(%rbp), %rax
movl 0x2c(%rax), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x148(%rax)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x14c(%rax)
jge 0x7ba7
movq -0x18(%rbp), %rax
movl 0x34(%rax), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x14c(%rax)
movq -0x18(%rbp), %rax
cmpl $0x0, 0x30(%rax)
jge 0x7bbc
movq -0x18(%rbp), %rax
movl $0x0, 0x30(%rax)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x128(%rax)
jge 0x7bdd
movq -0x18(%rbp), %rax
movslq 0x30(%rax), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x128(%rax)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x150(%rax)
jge 0x7bfb
movq -0x18(%rbp), %rax
movl 0x28(%rax), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x150(%rax)
movq -0x18(%rbp), %rax
cmpq $0x0, 0x38(%rax)
je 0x7c91
movq -0x18(%rbp), %rax
movq 0x38(%rax), %rcx
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq %rcx, 0x30(%rax)
movq -0x18(%rbp), %rax
movl 0x30(%rax), %ecx
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movl %ecx, (%rax)
movq -0x18(%rbp), %rax
movq 0x38(%rax), %rcx
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movl (%rax), %eax
addq %rax, %rcx
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq %rcx, 0x8(%rax)
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rcx
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq %rcx, 0x20(%rax)
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq %rcx, 0x18(%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x68(%rax)
jmp 0x8492
movl $0x0, -0xc(%rbp)
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rax
movslq -0xc(%rbp), %rcx
movq 0x748d(%rip), %rdx      # 0xf13c
movq %rdx, (%rax,%rcx)
movl 0x748b(%rip), %edx      # 0xf144
movl %edx, 0x8(%rax,%rcx)
movw 0x7484(%rip), %dx       # 0xf148
movw %dx, 0xc(%rax,%rcx)
movq -0x8(%rbp), %rax
movl 0x54(%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
jne 0x7cf1
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rax
movl -0xc(%rbp), %ecx
addl $0x7, %ecx
movslq %ecx, %rcx
movb $0x30, (%rax,%rcx)
movq -0x8(%rbp), %rax
movl 0x148(%rax), %eax
movl $0x64, %ecx
cltd
idivl %ecx
movl $0xa, %ecx
cltd
idivl %ecx
addl $0x30, %edx
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rax
movl -0xc(%rbp), %ecx
addl $0x9, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movq -0x8(%rbp), %rax
movl 0x148(%rax), %eax
movl $0xa, %ecx
cltd
idivl %ecx
movl $0xa, %ecx
cltd
idivl %ecx
addl $0x30, %edx
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rax
movl -0xc(%rbp), %ecx
addl $0xa, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movq -0x8(%rbp), %rax
movl 0x148(%rax), %eax
movl $0x1, %ecx
cltd
idivl %ecx
movl $0xa, %ecx
cltd
idivl %ecx
addl $0x30, %edx
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rax
movl -0xc(%rbp), %ecx
addl $0xb, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl -0xc(%rbp), %eax
addl $0xe, %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rax
movl 0x54(%rax), %eax
andl $0x5, %eax
cmpl $0x1, %eax
jne 0x7de6
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rax
movslq -0xc(%rbp), %rcx
movq 0x738c(%rip), %rdx      # 0xf14b
movq %rdx, (%rax,%rcx)
movq 0x7389(%rip), %rdx      # 0xf153
movq %rdx, 0x8(%rax,%rcx)
movq 0x7385(%rip), %rdx      # 0xf15b
movq %rdx, 0x10(%rax,%rcx)
movl -0xc(%rbp), %eax
addl $0x18, %eax
movl %eax, -0xc(%rbp)
jmp 0x7e3d
movq -0x8(%rbp), %rax
movl 0x54(%rax), %eax
andl $0x5, %eax
cmpl $0x4, %eax
jne 0x7e3b
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rax
movslq -0xc(%rbp), %rcx
movq 0x7358(%rip), %rdx      # 0xf164
movq %rdx, (%rax,%rcx)
movq 0x7355(%rip), %rdx      # 0xf16c
movq %rdx, 0x8(%rax,%rcx)
movw 0x7351(%rip), %dx       # 0xf174
movw %dx, 0x10(%rax,%rcx)
movb 0x7348(%rip), %dl       # 0xf176
movb %dl, 0x12(%rax,%rcx)
movl -0xc(%rbp), %eax
addl $0x13, %eax
movl %eax, -0xc(%rbp)
jmp 0x7e3d
movq -0x8(%rbp), %rax
cmpl $0x0, 0x15c(%rax)
je 0x7e95
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rax
movslq -0xc(%rbp), %rcx
movq 0x7317(%rip), %rdx      # 0xf178
movq %rdx, (%rax,%rcx)
movq 0x7314(%rip), %rdx      # 0xf180
movq %rdx, 0x8(%rax,%rcx)
movq 0x7310(%rip), %rdx      # 0xf188
movq %rdx, 0x10(%rax,%rcx)
movl 0x730d(%rip), %edx      # 0xf190
movl %edx, 0x18(%rax,%rcx)
movl -0xc(%rbp), %eax
addl $0x1c, %eax
movl %eax, -0xc(%rbp)
jmp 0x7f67
movq -0x8(%rbp), %rax
cmpq $0x0, 0x140(%rax)
jne 0x7eb6
movq -0x8(%rbp), %rax
movl 0x54(%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x7f65
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rax
movslq -0xc(%rbp), %rcx
movq 0x72c8(%rip), %rdx      # 0xf195
movq %rdx, (%rax,%rcx)
movq 0x72c5(%rip), %rdx      # 0xf19d
movq %rdx, 0x8(%rax,%rcx)
movl -0xc(%rbp), %eax
addl $0x10, %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x140(%rax)
jle 0x7f05
movq -0x8(%rbp), %rax
movq 0x140(%rax), %rax
movq %rax, -0x20(%rbp)
jmp 0x7f14
movq -0x8(%rbp), %rax
movq 0x128(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rsi
movslq -0xc(%rbp), %rax
addq %rax, %rsi
movl $0x1000, %eax           # imm = 0x1000
subl -0xc(%rbp), %eax
movslq %eax, %rdx
callq 0x2580
addl -0xc(%rbp), %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rax
movslq -0xc(%rbp), %rcx
movw 0x63e8(%rip), %dx       # 0xe340
movw %dx, (%rax,%rcx)
movl -0xc(%rbp), %eax
addl $0x2, %eax
movl %eax, -0xc(%rbp)
jmp 0x7f67
movq -0x8(%rbp), %rax
cmpl $0x0, 0x14c(%rax)
jne 0x7fba
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rax
movslq -0xc(%rbp), %rcx
movq 0x6ae7(%rip), %rdx      # 0xea72
movq %rdx, (%rax,%rcx)
movq 0x6ae4(%rip), %rdx      # 0xea7a
movq %rdx, 0x8(%rax,%rcx)
movq 0x6ae0(%rip), %rdx      # 0xea82
movq %rdx, 0x10(%rax,%rcx)
movb 0x6add(%rip), %dl       # 0xea8a
movb %dl, 0x18(%rax,%rcx)
movl -0xc(%rbp), %eax
addl $0x19, %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x11c(%rax)
je 0x8052
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rax
movslq -0xc(%rbp), %rcx
movl 0x71c5(%rip), %edx      # 0xf1a6
movl %edx, (%rax,%rcx)
movw 0x71bf(%rip), %dx       # 0xf1aa
movw %dx, 0x4(%rax,%rcx)
movl -0xc(%rbp), %eax
addl $0x6, %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rax
movl 0x11c(%rax), %eax
movl %eax, %edi
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rsi
movslq -0xc(%rbp), %rax
addq %rax, %rsi
movl $0x1000, %eax           # imm = 0x1000
subl -0xc(%rbp), %eax
movslq %eax, %rdx
callq 0x2930
addl -0xc(%rbp), %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rax
movslq -0xc(%rbp), %rcx
movw 0x62fb(%rip), %dx       # 0xe340
movw %dx, (%rax,%rcx)
movl -0xc(%rbp), %eax
addl $0x2, %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x170(%rax)
je 0x83f9
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rax
movslq -0xc(%rbp), %rcx
movq 0x7133(%rip), %rdx      # 0xf1ad
movq %rdx, (%rax,%rcx)
movl 0x7131(%rip), %edx      # 0xf1b5
movl %edx, 0x8(%rax,%rcx)
movl -0xc(%rbp), %eax
addl $0xc, %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movq 0x28(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rsi
movslq -0xc(%rbp), %rax
addq %rax, %rsi
movl $0x1000, %eax           # imm = 0x1000
subl -0xc(%rbp), %eax
movslq %eax, %rdx
callq 0x2580
addl -0xc(%rbp), %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rax
movslq -0xc(%rbp), %rcx
movl 0x70de(%rip), %edx      # 0xf1ba
movl %edx, (%rax,%rcx)
movw 0x70d8(%rip), %dx       # 0xf1be
movw %dx, 0x4(%rax,%rcx)
movb 0x70cf(%rip), %dl       # 0xf1c0
movb %dl, 0x6(%rax,%rcx)
movl -0xc(%rbp), %eax
addl $0x7, %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rax
movq 0x108(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rsi
movslq -0xc(%rbp), %rax
addq %rax, %rsi
movl $0x1000, %eax           # imm = 0x1000
subl -0xc(%rbp), %eax
movslq %eax, %rdx
callq 0x2580
addl -0xc(%rbp), %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rax
movslq -0xc(%rbp), %rcx
movq 0x7079(%rip), %rdx      # 0xf1c2
movq %rdx, (%rax,%rcx)
movl 0x7077(%rip), %edx      # 0xf1ca
movl %edx, 0x8(%rax,%rcx)
movl -0xc(%rbp), %eax
addl $0xc, %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rdi
movslq -0xc(%rbp), %rax
addq %rax, %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rsi
movl $0x1000, %edx           # imm = 0x1000
subl -0xc(%rbp), %edx
callq 0x2c40
addl -0xc(%rbp), %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rax
movslq -0xc(%rbp), %rcx
movl 0x702b(%rip), %edx      # 0xf1cf
movl %edx, (%rax,%rcx)
movw 0x7025(%rip), %dx       # 0xf1d3
movw %dx, 0x4(%rax,%rcx)
movb 0x701c(%rip), %dl       # 0xf1d5
movb %dl, 0x6(%rax,%rcx)
movl -0xc(%rbp), %eax
addl $0x7, %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rax
movslq 0x148(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rsi
movslq -0xc(%rbp), %rax
addq %rax, %rsi
movl $0x1000, %eax           # imm = 0x1000
subl -0xc(%rbp), %eax
movslq %eax, %rdx
callq 0x2580
addl -0xc(%rbp), %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rax
movslq -0xc(%rbp), %rcx
movq 0x6fc6(%rip), %rdx      # 0xf1d7
movq %rdx, (%rax,%rcx)
movl -0xc(%rbp), %eax
addl $0x8, %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x14c(%rax)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %eax
addl $0x30, %eax
movb %al, %dl
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rax
movl -0xc(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0xc(%rbp)
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x15c(%rax)
je 0x8292
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rax
movslq -0xc(%rbp), %rcx
movq 0x6f65(%rip), %rdx      # 0xf1e0
movq %rdx, (%rax,%rcx)
movb 0x6f63(%rip), %dl       # 0xf1e8
movb %dl, 0x8(%rax,%rcx)
movl -0xc(%rbp), %eax
addl $0x9, %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rax
movslq -0xc(%rbp), %rcx
movl 0x6f42(%rip), %edx      # 0xf1ea
movl %edx, (%rax,%rcx)
movw 0x6f3c(%rip), %dx       # 0xf1ee
movw %dx, 0x4(%rax,%rcx)
movb 0x6f33(%rip), %dl       # 0xf1f0
movb %dl, 0x6(%rax,%rcx)
movl -0xc(%rbp), %eax
addl $0x7, %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rax
movq 0x128(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rsi
movslq -0xc(%rbp), %rax
addq %rax, %rsi
movl $0x1000, %eax           # imm = 0x1000
subl -0xc(%rbp), %eax
movslq %eax, %rdx
callq 0x2580
addl -0xc(%rbp), %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rax
movslq -0xc(%rbp), %rcx
movl 0x6ea6(%rip), %edx      # 0xf1ba
movl %edx, (%rax,%rcx)
movw 0x6ea0(%rip), %dx       # 0xf1be
movw %dx, 0x4(%rax,%rcx)
movb 0x6e97(%rip), %dl       # 0xf1c0
movb %dl, 0x6(%rax,%rcx)
movl -0xc(%rbp), %eax
addl $0x7, %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rax
movslq 0x150(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rsi
movslq -0xc(%rbp), %rax
addq %rax, %rsi
movl $0x1000, %eax           # imm = 0x1000
subl -0xc(%rbp), %eax
movslq %eax, %rdx
callq 0x2580
addl -0xc(%rbp), %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rax
movslq -0xc(%rbp), %rcx
movl 0x6e72(%rip), %edx      # 0xf1f2
movl %edx, (%rax,%rcx)
movb 0x6e6d(%rip), %dl       # 0xf1f6
movb %dl, 0x4(%rax,%rcx)
movl -0xc(%rbp), %eax
addl $0x5, %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rax
movq 0x110(%rax), %rdi
movq -0x8(%rbp), %rax
subq 0x108(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rsi
movslq -0xc(%rbp), %rax
addq %rax, %rsi
movl $0x1000, %eax           # imm = 0x1000
subl -0xc(%rbp), %eax
movslq %eax, %rdx
callq 0x2580
addl -0xc(%rbp), %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rax
movslq -0xc(%rbp), %rcx
movq 0x6e0c(%rip), %rdx      # 0xf1f8
movq %rdx, (%rax,%rcx)
movl -0xc(%rbp), %eax
addl $0x8, %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rax
movslq -0xc(%rbp), %rcx
movw 0x5f30(%rip), %dx       # 0xe340
movw %dx, (%rax,%rcx)
movl -0xc(%rbp), %eax
addl $0x2, %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rax
movq 0x128(%rax), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x68(%rax)
movl -0xc(%rbp), %ecx
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movl %ecx, (%rax)
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x30(%rax), %rcx
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq %rcx, 0x20(%rax)
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq %rcx, 0x18(%rax)
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq %rcx, 0x8(%rax)
movl -0xc(%rbp), %edx
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rax
movq 0x8(%rax), %rcx
movslq %edx, %rdx
addq %rdx, %rcx
movq %rcx, 0x8(%rax)
movq -0x8(%rbp), %rax
movl 0x48(%rax), %edi
callq 0x4160
cmpl $0x0, %eax
jge 0x84b6
movq -0x8(%rbp), %rax
movl 0x48(%rax), %edi
movq 0x28f7f(%rip), %rsi     # 0x31430
callq 0x4810
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)