// File: /workspace/github_c_makefile_star2_O3/GangZhuo[P]dohclient/src/main.c
// Function: do_loop
static int do_loop()
{
	fd_set readset, writeset, errorset;
	sock_t max_fd, fd;
	int i, r;
	time_t now;

	dlitem_t* cur, * nxt;
	peer_t* peer;
	listen_t* listen;

	int is_local_sending;
	int is_closing;

	struct timeval timeout;

	running = 1;
	while (running) {

		FD_ZERO(&readset);
		FD_ZERO(&writeset);
		FD_ZERO(&errorset);

		max_fd = 0;

		for (i = 0; i < listen_num; i++) {
			listen = listens + i;

			if (!running) break;

			if (listen->sock) {
				max_fd = MAX(max_fd, listen->sock);
				FD_SET(listen->sock, &readset);
				FD_SET(listen->sock, &errorset);
			}

			if (listen->usock) {
				max_fd = MAX(max_fd, listen->usock);
				FD_SET(listen->usock, &readset);
				FD_SET(listen->usock, &errorset);
			}
		}

		dllist_foreach(&peers, cur, nxt, peer_t, peer, conn.entry) {

			if (!running) break;

			max_fd = MAX(max_fd, peer->conn.sock);
			is_local_sending = stream_rsize(&peer->conn.ws) > 0;
			is_closing = peer->conn.status == cs_closing ||
				peer->conn.status == cs_rsp_closing;
			if (is_local_sending)
				FD_SET(peer->conn.sock, &writeset);
			/* read when request header is not complete,
			   or remote connection established and not sending data */
			else if (!is_closing)
				FD_SET(peer->conn.sock, &readset);
			FD_SET(peer->conn.sock, &errorset);
		}

		if (!running) break;

		fd = cache->fdset(cache, &readset, &writeset, &errorset);
		if (fd < 0) {
			return -1;
		}

		max_fd = MAX(max_fd, fd);

		for (i = 0; i < channel_num; i++) {
			fd = channels[i]->fdset(channels[i], &readset, &writeset, &errorset);
			if (fd < 0) {
				return -1;
			}
			max_fd = MAX(max_fd, fd);
		}

		timeout.tv_sec = 0;
		timeout.tv_usec = 50 * 1000;

		if (select(max_fd + 1, &readset, &writeset, &errorset, &timeout) == -1) {
			if (errno == EINTR) {
				logd("select(): errno=%d, %s \n", errno, strerror(errno));
				if (!running)
					break;
				continue;
			}
			else {
				loge("select() error: errno=%d, %s \n",
					errno, strerror(errno));
				return -1;
			}
		}

		if (!running) break;

		now = time(NULL);

		for (i = 0; i < listen_num; i++) {
			listen = listens + i;

			if (!running) break;

			if (listen->sock) {
				if (FD_ISSET(listen->sock, &errorset)) {
					loge("listen.sock error\n");
					return -1;
				}

				if (FD_ISSET(listen->sock, &readset)) {
					r = peer_accept(i);
				}
			}

			if (listen->usock) {
				if (FD_ISSET(listen->usock, &errorset)) {
					loge("listen.usock error\n");
					return -1;
				}

				if (FD_ISSET(listen->usock, &readset)) {
					r = server_udp_recv(i);
				}
			}
		}

		dllist_foreach(&peers, cur, nxt, peer_t, peer, conn.entry) {

			if (!running) break;

			if (FD_ISSET(peer->conn.sock, &errorset)) {
				int err = getsockerr(peer->conn.sock);
				loge("peer.conn.sock error: errno=%d, %s \n",
					err, strerror(err));
				r = -1;
			}
			else if (FD_ISSET(peer->conn.sock, &readset)) {
				r = peer_recv(peer);
			}
			else if (FD_ISSET(peer->conn.sock, &writeset)) {
				r = peer_write(peer);
			}
			else {
				r = 0;
			}

			if (!running) break;

			if (!r &&
#if DOHCLIENT_CACHE_API
					!peer->keep_alive &&
#endif
					is_expired(&peer->conn, now)) {
				loge("peer timeout - %s\n", get_sockname(peer->conn.sock));
				r = -1;
			}

			if (r) {
				peer_close(peer);
				continue;
			}
		}

		req_check_expire(now);

		r = cache->step(cache, &readset, &writeset, &errorset);
		if (r) {
			return -1;
		}

		for (i = 0; i < channel_num; i++) {
			r = channels[i]->step(channels[i], &readset, &writeset, &errorset);
			if (r) {
				return -1;
			}
		}
	}

	return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x648, %rsp            # imm = 0x648
movb $0x1, 0xfc32(%rip)      # 0x2ea28
xorps %xmm0, %xmm0
leaq 0xf7a0(%rip), %r15      # 0x2e5a0
leaq 0xe8c9(%rip), %r13      # 0x2d6d0
leaq 0xc0(%rsp), %r12
movaps %xmm0, 0x130(%rsp)
movaps %xmm0, 0x120(%rsp)
movaps %xmm0, 0x110(%rsp)
movaps %xmm0, 0x100(%rsp)
movaps %xmm0, 0xf0(%rsp)
movaps %xmm0, 0xe0(%rsp)
movaps %xmm0, 0xd0(%rsp)
movaps %xmm0, 0xc0(%rsp)
movaps %xmm0, 0x140(%rsp)
movaps %xmm0, 0x150(%rsp)
movaps %xmm0, 0x160(%rsp)
movaps %xmm0, 0x170(%rsp)
movaps %xmm0, 0x180(%rsp)
movaps %xmm0, 0x190(%rsp)
movaps %xmm0, 0x1a0(%rsp)
movaps %xmm0, 0x1b0(%rsp)
movaps %xmm0, 0x40(%rsp)
movaps %xmm0, 0x50(%rsp)
movaps %xmm0, 0x60(%rsp)
movaps %xmm0, 0x70(%rsp)
movaps %xmm0, 0x80(%rsp)
movaps %xmm0, 0x90(%rsp)
movaps %xmm0, 0xa0(%rsp)
movaps %xmm0, 0xb0(%rsp)
movslq 0xfb56(%rip), %rax      # 0x2ea20
movl $0x0, %ebp
testq %rax, %rax
jle 0x1ef6a
shlq $0x4, %rax
leaq (%rax,%rax,8), %rax
xorl %edx, %edx
xorl %ebp, %ebp
movl 0x88(%rdx,%r15), %ecx
testl %ecx, %ecx
je 0x1ef1f
cmpl %ecx, %ebp
cmovlel %ecx, %ebp
leal 0x3f(%rcx), %esi
testl %ecx, %ecx
cmovnsl %ecx, %esi
movl %esi, %edi
andl $-0x40, %edi
subl %edi, %ecx
movl $0x1, %edi
shlq %cl, %rdi
sarl $0x6, %esi
movslq %esi, %rcx
orq %rdi, 0xc0(%rsp,%rcx,8)
orq %rdi, 0x40(%rsp,%rcx,8)
movl 0x8c(%rdx,%r15), %ecx
testl %ecx, %ecx
je 0x1ef5a
cmpl %ecx, %ebp
cmovlel %ecx, %ebp
leal 0x3f(%rcx), %esi
testl %ecx, %ecx
cmovnsl %ecx, %esi
movl %esi, %edi
andl $-0x40, %edi
subl %edi, %ecx
movl $0x1, %edi
shlq %cl, %rdi
sarl $0x6, %esi
movslq %esi, %rcx
orq %rdi, 0xc0(%rsp,%rcx,8)
orq %rdi, 0x40(%rsp,%rcx,8)
addq $0x90, %rdx
cmpq %rdx, %rax
jne 0x1eee4
movq 0xe75f(%rip), %rdx      # 0x2d6d0
cmpq %r13, %rdx
je 0x1effa
movq (%rdx), %rax
movl -0x40(%rdx), %ecx
movl -0x18(%rdx), %esi
cmpl %ecx, %ebp
cmovlel %ecx, %ebp
cmpl -0x14(%rdx), %esi
jle 0x1efb7
leal 0x3f(%rcx), %esi
testl %ecx, %ecx
cmovnsl %ecx, %esi
movl %esi, %edx
andl $-0x40, %edx
subl %edx, %ecx
movl $0x1, %edx
shlq %cl, %rdx
sarl $0x6, %esi
movslq %esi, %rcx
leaq (%rsp,%rcx,8), %rsi
addq $0x140, %rsi            # imm = 0x140
jmp 0x1efea
movl -0x8(%rdx), %esi
addl $-0x3, %esi
leal 0x3f(%rcx), %edi
testl %ecx, %ecx
cmovnsl %ecx, %edi
movl %edi, %edx
andl $-0x40, %edx
subl %edx, %ecx
movl $0x1, %edx
shlq %cl, %rdx
sarl $0x6, %edi
movslq %edi, %rcx
cmpl $0x2, %esi
jb 0x1efed
leaq (%rsp,%rcx,8), %rsi
addq $0xc0, %rsi
orq %rdx, (%rsi)
orq %rdx, 0x40(%rsp,%rcx,8)
movq %rax, %rdx
cmpq %r13, %rax
jne 0x1ef7a
movq 0xf57f(%rip), %rdi      # 0x2e580
movq %r12, %rsi
leaq 0x140(%rsp), %rdx
leaq 0x40(%rsp), %rcx
callq *0x30(%rdi)
testl %eax, %eax
js 0x1fa33
movl %eax, %ebx
cmpl %eax, %ebp
cmovgl %ebp, %ebx
cmpl $0x0, 0xf55e(%rip)      # 0x2e588
jle 0x1f06e
xorl %r14d, %r14d
leaq 0x140(%rsp), %rbp
movq 0xf552(%rip), %rax      # 0x2e590
movq (%rax,%r14,8), %rdi
movq %r12, %rsi
movq %rbp, %rdx
leaq 0x40(%rsp), %rcx
callq *0x30(%rdi)
testl %eax, %eax
js 0x1fa33
cmpl %eax, %ebx
cmovlel %eax, %ebx
incq %r14
movslq 0xf521(%rip), %rax      # 0x2e588
cmpq %rax, %r14
jl 0x1f037
jmp 0x1f076
leaq 0x140(%rsp), %rbp
movq $0x0, 0x30(%rsp)
movq $0xc350, 0x38(%rsp)     # imm = 0xC350
incl %ebx
movl %ebx, %edi
movq %r12, %rsi
movq %rbp, %rdx
leaq 0x40(%rsp), %rcx
leaq 0x30(%rsp), %r8
callq 0x3340
cmpl $-0x1, %eax
je 0x1f969
xorl %eax, %eax
cmpb $0x1, 0xf975(%rip)      # 0x2ea28
jne 0x1fa38
xorl %edi, %edi
callq 0x3310
movq %rax, 0x28(%rsp)
cmpl $0x0, 0xf954(%rip)      # 0x2ea20
xorps %xmm0, %xmm0
jle 0x1f49f
leaq 0xf550(%rip), %r12      # 0x2e62c
xorl %ebx, %ebx
cmpb $0x1, 0xf943(%rip)      # 0x2ea28
jne 0x1f49f
movl -0x4(%r12), %r14d
testl %r14d, %r14d
je 0x1f290
leal 0x3f(%r14), %edx
testl %r14d, %r14d
cmovnsl %r14d, %edx
movl %edx, %eax
sarl $0x6, %eax
cltq
movq 0x40(%rsp,%rax,8), %rsi
andl $-0x40, %edx
movl %r14d, %ecx
subl %edx, %ecx
movl $0x1, %edx
shlq %cl, %rdx
btq %rcx, %rsi
jb 0x1f9d4
testq %rdx, 0xc0(%rsp,%rax,8)
je 0x1f290
movl $0x88, %edx
leaq 0x240(%rsp), %rbp
movq %rbp, %rdi
xorl %esi, %esi
callq 0x31e0
movl $0x80, 0x2c0(%rsp)
movl %r14d, %edi
movq %rbp, %rsi
leaq 0x2c0(%rsp), %rdx
callq 0x3110
movl %eax, %ebp
xorl %eax, %eax
callq 0x176e5
movl (%rax), %eax
cmpl $-0x1, %ebp
je 0x1f1f7
cmpl $0x8, %eax
jl 0x1f1b8
leaq 0x240(%rsp), %rdi
callq 0x17e75
movl $0x8, %edi
leaq 0x6239(%rip), %rsi      # 0x253d4
leaq 0x6fec(%rip), %rdx      # 0x2618e
movl $0x2b1, %ecx            # imm = 0x2B1
leaq 0x700b(%rip), %r8       # 0x261b9
movq %rax, %r9
xorl %eax, %eax
callq 0x1771e
movl %ebp, %edi
callq 0x17c6b
testl %eax, %eax
je 0x1f23d
xorl %eax, %eax
callq 0x176e5
cmpl $0x3, (%rax)
jl 0x1f27e
movl $0x3, %edi
leaq 0x61f5(%rip), %rsi      # 0x253d4
leaq 0x6fa8(%rip), %rdx      # 0x2618e
movl $0x2b4, %ecx            # imm = 0x2B4
leaq 0x55c3(%rip), %r8       # 0x247b5
jmp 0x1f277
cmpl $0x3, %eax
jl 0x1f285
callq 0x3040
movl (%rax), %ebp
movl %ebp, %edi
callq 0x3140
movq %rax, (%rsp)
movl $0x3, %edi
leaq 0x61b6(%rip), %rsi      # 0x253d4
leaq 0x6f69(%rip), %rdx      # 0x2618e
movl $0x2ae, %ecx            # imm = 0x2AE
leaq 0x6f69(%rip), %r8       # 0x2619a
movl %ebp, %r9d
xorl %eax, %eax
callq 0x1771e
jmp 0x1f285
movl %ebp, %edi
callq 0x17d96
testl %eax, %eax
je 0x1f44c
xorl %eax, %eax
callq 0x176e5
cmpl $0x3, (%rax)
jl 0x1f27e
movl $0x3, %edi
leaq 0x6170(%rip), %rsi      # 0x253d4
leaq 0x6f23(%rip), %rdx      # 0x2618e
movl $0x2ba, %ecx            # imm = 0x2BA
leaq 0x6f57(%rip), %r8       # 0x261ce
xorl %eax, %eax
callq 0x1771e
movl %ebp, %edi
callq 0x3670
xorps %xmm0, %xmm0
leaq 0x140(%rsp), %rbp
movl (%r12), %edi
testl %edi, %edi
je 0x1f349
leal 0x3f(%rdi), %edx
testl %edi, %edi
cmovnsl %edi, %edx
movl %edx, %eax
sarl $0x6, %eax
cltq
movq 0x40(%rsp,%rax,8), %rsi
andl $-0x40, %edx
movl %edi, %ecx
subl %edx, %ecx
movl $0x1, %edx
shlq %cl, %rdx
btq %rcx, %rsi
jb 0x1fa01
testq %rdx, 0xc0(%rsp,%rax,8)
je 0x1f349
movaps %xmm0, 0x230(%rsp)
movaps %xmm0, 0x220(%rsp)
movaps %xmm0, 0x210(%rsp)
movaps %xmm0, 0x200(%rsp)
movaps %xmm0, 0x1f0(%rsp)
movaps %xmm0, 0x1e0(%rsp)
movaps %xmm0, 0x1d0(%rsp)
movaps %xmm0, 0x1c0(%rsp)
movl $0x80, 0x1c(%rsp)
leaq 0x240(%rsp), %rsi
movl $0x401, %edx            # imm = 0x401
leaq 0x1c0(%rsp), %rcx
leaq 0x1c(%rsp), %r8
callq 0x19042
movl %eax, %r14d
leal 0x1(%r14), %eax
cmpl $0x2, %eax
jae 0x1f368
xorps %xmm0, %xmm0
incq %rbx
movslq 0xf6cd(%rip), %rax      # 0x2ea20
addq $0x90, %r12
cmpq %rax, %rbx
jl 0x1f0de
jmp 0x1f49f
xorl %eax, %eax
callq 0x176e5
cmpl $0x8, (%rax)
jl 0x1f3ae
leaq 0x1c0(%rsp), %rdi
callq 0x17e75
movq %rax, (%rsp)
movl $0x8, %edi
leaq 0x6043(%rip), %rsi      # 0x253d4
leaq 0x6e4f(%rip), %rdx      # 0x261e7
movl $0x28d, %ecx            # imm = 0x28D
leaq 0x6e53(%rip), %r8       # 0x261f7
movl %r14d, %r9d
xorl %eax, %eax
callq 0x1771e
xorl %eax, %eax
callq 0x176e5
cmpl $0x8, (%rax)
jl 0x1f3d6
xorl %eax, %eax
callq 0x176e5
cmpl $0x7, (%rax)
jl 0x1f3d6
leaq 0x240(%rsp), %rdi
movl %r14d, %esi
callq 0x1d5ca
cmpl $0x401, %r14d           # imm = 0x401
jl 0x1f41a
xorl %eax, %eax
callq 0x176e5
cmpl $0x3, (%rax)
jl 0x1f346
movl $0x3, %edi
leaq 0x5fd9(%rip), %rsi      # 0x253d4
leaq 0x6de5(%rip), %rdx      # 0x261e7
movl $0x294, %ecx            # imm = 0x294
leaq 0x6e10(%rip), %r8       # 0x2621e
xorl %eax, %eax
callq 0x1771e
jmp 0x1f346
movslq %r14d, %rax
movb $0x0, 0x240(%rsp,%rax)
movl 0x1c(%rsp), %r8d
leaq 0x240(%rsp), %rdi
movl %r14d, %esi
movl %ebx, %edx
leaq 0x1c0(%rsp), %rcx
xorl %r9d, %r9d
callq 0x1fba9
jmp 0x1f346
movl %ebp, %edi
movl %ebx, %esi
callq 0x1925b
testq %rax, %rax
je 0x1f27e
movq %rax, %r14
addq $0x40, %rax
movq %r13, 0x40(%r14)
movq 0xe268(%rip), %rcx      # 0x2d6d8
movq %rcx, 0x48(%r14)
movq %rax, (%rcx)
movq %rax, 0xe25a(%rip)      # 0x2d6d8
movslq 0xe233(%rip), %r13      # 0x2d6b8
xorl %edi, %edi
callq 0x3310
addq %r13, %rax
leaq 0xe23a(%rip), %r13      # 0x2d6d0
movq %rax, 0x50(%r14)
jmp 0x1f285
movq 0xe22a(%rip), %r12      # 0x2d6d0
cmpq %r13, %r12
je 0x1f8e5
testb $0x1, 0xf572(%rip)      # 0x2ea28
je 0x1f8e5
leaq -0x40(%r12), %rax
movq %rax, 0x20(%rsp)
movq (%r12), %r14
movl -0x40(%r12), %r13d
leal 0x3f(%r13), %edx
testl %r13d, %r13d
cmovnsl %r13d, %edx
movl %edx, %eax
sarl $0x6, %eax
cltq
movq 0x40(%rsp,%rax,8), %rsi
andl $-0x40, %edx
movl %r13d, %ecx
subl %edx, %ecx
movl $0x1, %edx
shlq %cl, %rdx
btq %rcx, %rsi
jae 0x1f553
movl %r13d, %edi
callq 0x17e19
movl %eax, %ebp
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x176e5
cmpl $0x3, (%rax)
jl 0x1f85a
movl %ebp, %edi
callq 0x3140
movq %rax, (%rsp)
xorl %ebx, %ebx
movl $0x3, %edi
leaq 0x5ea3(%rip), %rsi      # 0x253d4
leaq 0x6bb7(%rip), %rdx      # 0x260ef
movl $0x3df, %ecx            # imm = 0x3DF
leaq 0x6c12(%rip), %r8       # 0x26156
movl %ebp, %r9d
xorl %eax, %eax
callq 0x1771e
jmp 0x1f85a
testq %rdx, 0xc0(%rsp,%rax,8)
je 0x1f5a8
leaq -0x38(%r12), %rbp
movl -0x30(%r12), %esi
movl -0x28(%r12), %edx
subl %esi, %edx
cmpl $0x402, %edx            # imm = 0x402
jg 0x1f636
addl $0x403, %esi            # imm = 0x403
movq %rbp, %rdi
callq 0x1cf07
testl %eax, %eax
jne 0x1f77b
movq %r14, 0x10(%rsp)
movl -0x30(%r12), %esi
movl %esi, %edx
notl %edx
addl -0x28(%r12), %edx
jmp 0x1f63b
movb $0x1, %bl
testq %rdx, 0x140(%rsp,%rax,8)
je 0x1f85a
leaq -0x20(%r12), %rsi
movl %r13d, %edi
callq 0x18d8e
cmpl $-0x1, %eax
je 0x1f77b
testl %eax, %eax
je 0x1f85a
cltq
addq %rax, 0x20(%r12)
xorl %eax, %eax
callq 0x176e5
cmpl $0x8, (%rax)
jl 0x1f61a
movl %r13d, %edi
callq 0x17f1b
movl $0x8, %edi
leaq 0x5dd7(%rip), %rsi      # 0x253d4
leaq 0x6d82(%rip), %rdx      # 0x26386
movl $0x33d, %ecx            # imm = 0x33D
leaq 0x6d81(%rip), %r8       # 0x26391
movq %rax, %r9
xorl %eax, %eax
callq 0x1771e
cmpl $0x4, -0x8(%r12)
jne 0x1f789
xorl %edi, %edi
callq 0x3310
addq $0x3, %rax
jmp 0x1f7a0
movq %r14, 0x10(%rsp)
movslq %esi, %r14
addq (%rbp), %r14
movl %r13d, %edi
movq %r14, %rsi
callq 0x18ebc
cmpl $-0x1, %eax
je 0x1f782
movl %eax, %r13d
testl %eax, %eax
je 0x1f853
movslq -0x30(%r12), %rax
movslq %r13d, %rcx
addq %rcx, %rax
movl %eax, -0x30(%r12)
movq -0x38(%r12), %rdx
movb $0x0, (%rdx,%rax)
addq %rcx, 0x18(%r12)
xorl %eax, %eax
callq 0x176e5
cmpl $0x8, (%rax)
jl 0x1f6c4
movq 0x20(%rsp), %rax
movl (%rax), %edi
callq 0x17f1b
movq %rax, (%rsp)
movl $0x8, %edi
leaq 0x5d2d(%rip), %rsi      # 0x253d4
leaq 0x6c96(%rip), %rdx      # 0x26344
movl $0x31e, %ecx            # imm = 0x31E
leaq 0x6c94(%rip), %r8       # 0x2634e
movl %r13d, %r9d
xorl %eax, %eax
callq 0x1771e
xorl %eax, %eax
callq 0x176e5
cmpl $0x8, (%rax)
jl 0x1f6e7
xorl %eax, %eax
callq 0x176e5
cmpl $0x7, (%rax)
jl 0x1f6e7
movq %r14, %rdi
movl %r13d, %esi
callq 0x1d5ca
movl -0x30(%r12), %ebx
movl -0x2c(%r12), %r14d
subl %r14d, %ebx
cmpl $0x6, %ebx
jl 0x1f7ef
movq %rbp, %rdi
movl %r14d, %esi
movl $0x2, %edx
callq 0x1d262
movl %eax, %r13d
cmpl $0x401, %eax            # imm = 0x401
jge 0x1f7aa
movl %r13d, %r14d
addl $0x2, %r14d
cmpl %r14d, %ebx
jl 0x1f7ea
movq -0x38(%r12), %rax
movslq -0x2c(%r12), %rcx
leaq (%rax,%rcx), %rdi
addq $0x2, %rdi
movl 0x28(%r12), %edx
xorl %ebx, %ebx
movl %r13d, %esi
movq 0x20(%rsp), %rcx
xorl %r8d, %r8d
movl $0x1, %r9d
callq 0x1fba9
testl %eax, %eax
jne 0x1f855
addl -0x2c(%r12), %r14d
movl %r14d, -0x2c(%r12)
movl -0x30(%r12), %ebx
subl %r14d, %ebx
cmpl $0x5, %ebx
jg 0x1f6fd
jmp 0x1f7ef
xorl %ebx, %ebx
jmp 0x1f85a
xorl %ebx, %ebx
jmp 0x1f855
movq %r14, %r13
movslq 0xdf25(%rip), %r14      # 0x2d6b8
xorl %edi, %edi
callq 0x3310
addq %r14, %rax
movq %r13, %r14
movq %rax, 0x10(%r12)
jmp 0x1f85a
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x176e5
cmpl $0x3, (%rax)
movq 0x10(%rsp), %r14
jl 0x1f85a
xorl %ebx, %ebx
movl $0x3, %edi
leaq 0x5c05(%rip), %rsi      # 0x253d4
leaq 0x6b9f(%rip), %rdx      # 0x26375
movl $0x2e1, %ecx            # imm = 0x2E1
leaq 0x3dc1(%rip), %r8       # 0x235a3
movl %r13d, %r9d
jmp 0x1f547
movl -0x2c(%r12), %r14d
testl %r14d, %r14d
jle 0x1f83d
movq %rbp, %rdi
callq 0x1cecd
testl %eax, %eax
je 0x1f83d
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x176e5
cmpl $0x3, (%rax)
movq 0x10(%rsp), %r14
jl 0x1f85a
xorl %ebx, %ebx
movl $0x3, %edi
leaq 0x5bb3(%rip), %rsi      # 0x253d4
leaq 0x6b4d(%rip), %rdx      # 0x26375
movl $0x2f4, %ecx            # imm = 0x2F4
leaq 0x3d96(%rip), %r8       # 0x235ca
xorl %eax, %eax
callq 0x1771e
jmp 0x1f85a
movslq 0xde74(%rip), %rbx      # 0x2d6b8
xorl %edi, %edi
callq 0x3310
addq %rbx, %rax
movq %rax, 0x10(%r12)
movb $0x1, %bl
movq 0x10(%rsp), %r14
cmpb $0x1, 0xf1c7(%rip)      # 0x2ea28
leaq 0xde68(%rip), %r13      # 0x2d6d0
leaq 0x140(%rsp), %rbp
jne 0x1f8e5
testb %bl, %bl
je 0x1f8c5
movb $0x1, %al
movq 0x28(%rsp), %rcx
cmpq %rcx, 0x10(%r12)
jg 0x1f8d5
xorl %eax, %eax
callq 0x176e5
cmpl $0x3, (%rax)
jl 0x1f8c5
movq 0x20(%rsp), %rax
movl (%rax), %edi
callq 0x17f1b
movl $0x3, %edi
leaq 0x5b2c(%rip), %rsi      # 0x253d4
leaq 0x6840(%rip), %rdx      # 0x260ef
movl $0x3f3, %ecx            # imm = 0x3F3
leaq 0x68c0(%rip), %r8       # 0x2617b
movq %rax, %r9
xorl %eax, %eax
callq 0x1771e
movq 0x20(%rsp), %rdi
callq 0x1fa87
movb 0xf153(%rip), %al       # 0x2ea28
cmpq %r13, %r14
je 0x1f8e5
movq %r14, %r12
testb $0x1, %al
jne 0x1f4bc
movq 0x28(%rsp), %rdi
callq 0x1facc
movq 0xec8a(%rip), %rdi      # 0x2e580
leaq 0xc0(%rsp), %r12
movq %r12, %rsi
movq %rbp, %rdx
leaq 0x40(%rsp), %rcx
callq *0x38(%rdi)
testl %eax, %eax
jne 0x1fa33
cmpl $0x0, 0xec6d(%rip)      # 0x2e588
jle 0x1f94f
xorl %ebx, %ebx
movq 0xec6a(%rip), %rax      # 0x2e590
movq (%rax,%rbx,8), %rdi
movq %r12, %rsi
movq %rbp, %rdx
leaq 0x40(%rsp), %rcx
callq *0x38(%rdi)
testl %eax, %eax
jne 0x1fa33
incq %rbx
movslq 0xec3e(%rip), %rax      # 0x2e588
cmpq %rax, %rbx
jl 0x1f91f
cmpb $0x1, 0xf0d2(%rip)      # 0x2ea28
xorps %xmm0, %xmm0
movl $0x0, %eax
je 0x1ee0f
jmp 0x1fa38
callq 0x3040
movq %rax, %rbx
movl (%rax), %ebp
xorl %eax, %eax
callq 0x176e5
movl (%rax), %eax
cmpl $0x4, %ebp
jne 0x1fa4a
cmpl $0x7, %eax
jl 0x1f9c0
movl (%rbx), %ebx
movl %ebx, %edi
callq 0x3140
movq %rax, (%rsp)
movl $0x7, %edi
leaq 0x5a31(%rip), %rsi      # 0x253d4
leaq 0x6745(%rip), %rdx      # 0x260ef
movl $0x3ac, %ecx            # imm = 0x3AC
leaq 0x6741(%rip), %r8       # 0x260f7
movl %ebx, %r9d
xorl %eax, %eax
callq 0x1771e
cmpb $0x0, 0xf061(%rip)      # 0x2ea28
xorps %xmm0, %xmm0
jne 0x1ee0f
xorl %eax, %eax
jmp 0x1fa38
xorl %eax, %eax
callq 0x176e5
cmpl $0x3, (%rax)
jl 0x1fa33
leaq 0x59ed(%rip), %rsi      # 0x253d4
leaq 0x6701(%rip), %rdx      # 0x260ef
leaq 0x673a(%rip), %r8       # 0x2612f
movl $0x3, %edi
movl $0x3c3, %ecx            # imm = 0x3C3
jmp 0x1fa2c
xorl %eax, %eax
callq 0x176e5
cmpl $0x3, (%rax)
jl 0x1fa33
leaq 0x59c0(%rip), %rsi      # 0x253d4
leaq 0x66d4(%rip), %rdx      # 0x260ef
leaq 0x6720(%rip), %r8       # 0x26142
movl $0x3, %edi
movl $0x3ce, %ecx            # imm = 0x3CE
xorl %eax, %eax
callq 0x1771e
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
addq $0x648, %rsp            # imm = 0x648
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpl $0x3, %eax
jl 0x1fa33
movl (%rbx), %ebx
movl %ebx, %edi
callq 0x3140
movq %rax, (%rsp)
leaq 0x5971(%rip), %rsi      # 0x253d4
leaq 0x6685(%rip), %rdx      # 0x260ef
leaq 0x669f(%rip), %r8       # 0x26110
movl $0x3, %edi
movl $0x3b3, %ecx            # imm = 0x3B3
movl %ebx, %r9d
xorl %eax, %eax
callq 0x1771e
jmp 0x1fa33