// File: /workspace/github_c_makefile_star2_O1/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 $0x638, %rsp            # imm = 0x638
movb $0x1, 0xf4bf(%rip)      # 0x2ea28
xorps %xmm0, %xmm0
leaq 0xf02d(%rip), %r15      # 0x2e5a0
leaq 0xe156(%rip), %r12      # 0x2d6d0
leaq 0x130(%rsp), %r13
leaq 0xb0(%rsp), %r14
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, 0xb0(%rsp)
movaps %xmm0, 0x130(%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, 0x30(%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)
movslq 0xf3de(%rip), %rcx      # 0x2ea20
movl $0x0, %ebp
testq %rcx, %rcx
jle 0x1f6fc
movb 0xf3d2(%rip), %al       # 0x2ea28
shlq $0x4, %rcx
leaq (%rcx,%rcx,8), %rdx
xorl %esi, %esi
xorl %ebp, %ebp
testb $0x1, %al
je 0x1f6fa
movl 0x88(%rsi,%r15), %ecx
testl %ecx, %ecx
je 0x1f6a9
cmpl %ecx, %ebp
cmovlel %ecx, %ebp
leal 0x3f(%rcx), %edi
testl %ecx, %ecx
cmovnsl %ecx, %edi
movl %edi, %r8d
andl $-0x40, %r8d
subl %r8d, %ecx
movl $0x1, %r8d
shlq %cl, %r8
sarl $0x6, %edi
movslq %edi, %rcx
orq %r8, 0xb0(%rsp,%rcx,8)
orq %r8, 0x30(%rsp,%rcx,8)
movl 0x8c(%rsi,%r15), %ecx
testl %ecx, %ecx
je 0x1f6e8
cmpl %ecx, %ebp
cmovlel %ecx, %ebp
leal 0x3f(%rcx), %edi
testl %ecx, %ecx
cmovnsl %ecx, %edi
movl %edi, %r8d
andl $-0x40, %r8d
subl %r8d, %ecx
movl $0x1, %r8d
shlq %cl, %r8
sarl $0x6, %edi
movslq %edi, %rcx
orq %r8, 0xb0(%rsp,%rcx,8)
orq %r8, 0x30(%rsp,%rcx,8)
addq $0x90, %rsi
cmpq %rsi, %rdx
jne 0x1f662
jmp 0x1f6fc
xorl %ebp, %ebp
movq 0xdfcd(%rip), %rcx      # 0x2d6d0
movb 0xf31f(%rip), %dl       # 0x2ea28
cmpq %r12, %rcx
setne %al
andb %dl, %al
cmpb $0x1, %al
jne 0x1f79f
movq (%rcx), %rsi
movl -0x40(%rcx), %eax
cmpl %eax, %ebp
cmovlel %eax, %ebp
movl -0x18(%rcx), %r8d
movq %r13, %rdi
cmpl -0x14(%rcx), %r8d
jg 0x1f73f
movl -0x8(%rcx), %ecx
addl $-0x3, %ecx
movq %r14, %rdi
cmpl $0x2, %ecx
jb 0x1f769
leal 0x3f(%rax), %r8d
testl %eax, %eax
cmovnsl %eax, %r8d
movl %r8d, %r9d
andl $-0x40, %r9d
movl %eax, %ecx
subl %r9d, %ecx
movl $0x1, %r9d
shlq %cl, %r9
sarl $0x6, %r8d
movslq %r8d, %rcx
orq %r9, (%rdi,%rcx,8)
leal 0x3f(%rax), %edi
testl %eax, %eax
cmovnsl %eax, %edi
movl %edi, %ecx
andl $-0x40, %ecx
subl %ecx, %eax
movl $0x1, %r8d
movl %eax, %ecx
shlq %cl, %r8
sarl $0x6, %edi
movslq %edi, %rax
orq %r8, 0x30(%rsp,%rax,8)
cmpq %r12, %rsi
setne %al
movq %rsi, %rcx
testb %dl, %al
jne 0x1f719
xorl %eax, %eax
testb $0x1, %dl
je 0x201d6
movq 0xedcf(%rip), %rdi      # 0x2e580
movq %r14, %rsi
movq %r13, %rdx
leaq 0x30(%rsp), %rcx
callq *0x30(%rdi)
testl %eax, %eax
js 0x201d1
movl %eax, %ebx
cmpl %eax, %ebp
cmovgl %ebp, %ebx
cmpl $0x0, 0xedb3(%rip)      # 0x2e588
jle 0x1f819
xorl %r14d, %r14d
leaq 0x30(%rsp), %rbp
movq 0xedaa(%rip), %rax      # 0x2e590
movq (%rax,%r14,8), %rdi
leaq 0xb0(%rsp), %rsi
movq %r13, %rdx
movq %rbp, %rcx
callq *0x30(%rdi)
testl %eax, %eax
js 0x201d1
cmpl %eax, %ebx
cmovlel %eax, %ebx
incq %r14
movslq 0xed76(%rip), %rax      # 0x2e588
cmpq %rax, %r14
jl 0x1f7df
jmp 0x1f81e
leaq 0x30(%rsp), %rbp
movq $0x0, 0x20(%rsp)
movq $0xc350, 0x28(%rsp)     # imm = 0xC350
incl %ebx
movl %ebx, %edi
leaq 0xb0(%rsp), %r14
movq %r14, %rsi
movq %r13, %rdx
movq %rbp, %rcx
leaq 0x20(%rsp), %r8
callq 0x3340
cmpl $-0x1, %eax
je 0x20104
cmpb $0x1, 0xf1c9(%rip)      # 0x2ea28
jne 0x201e8
xorl %edi, %edi
callq 0x3310
movq %rax, 0x18(%rsp)
cmpl $0x0, 0xf1a8(%rip)      # 0x2ea20
xorps %xmm0, %xmm0
leaq 0x230(%rsp), %r14
jle 0x1fc5b
leaq 0xed9c(%rip), %r15      # 0x2e62c
xorl %ebx, %ebx
cmpb $0x1, 0xf18f(%rip)      # 0x2ea28
jne 0x1fc5b
movl -0x4(%r15), %ecx
testl %ecx, %ecx
je 0x1fa2d
leal 0x3f(%rcx), %edx
testl %ecx, %ecx
cmovnsl %ecx, %edx
movl %edx, %eax
sarl $0x6, %eax
cltq
movq 0x30(%rsp,%rax,8), %rsi
andl $-0x40, %edx
subl %edx, %ecx
movl $0x1, %edx
shlq %cl, %rdx
btq %rcx, %rsi
jb 0x20172
testq %rdx, 0xb0(%rsp,%rax,8)
je 0x1fa2d
movl $0x88, %edx
movq %r14, %rdi
xorl %esi, %esi
callq 0x31e0
movl $0x80, 0x2b0(%rsp)
movl -0x4(%r15), %edi
movq %r14, %rsi
leaq 0x2b0(%rsp), %rdx
callq 0x3110
movl %eax, %ebp
xorl %eax, %eax
callq 0x17d59
movl (%rax), %eax
cmpl $-0x1, %ebp
je 0x1f997
cmpl $0x8, %eax
jl 0x1f958
movq %r14, %rdi
callq 0x184d9
movl $0x8, %edi
leaq 0x5a57(%rip), %rsi      # 0x25392
leaq 0x680a(%rip), %rdx      # 0x2614c
movl $0x2b1, %ecx            # imm = 0x2B1
leaq 0x6829(%rip), %r8       # 0x26177
movq %rax, %r9
xorl %eax, %eax
callq 0x17d92
movl %ebp, %edi
callq 0x182cf
testl %eax, %eax
je 0x1f9dd
xorl %eax, %eax
callq 0x17d59
cmpl $0x3, (%rax)
jl 0x1fa1e
movl $0x3, %edi
leaq 0x5a13(%rip), %rsi      # 0x25392
leaq 0x67c6(%rip), %rdx      # 0x2614c
movl $0x2b4, %ecx            # imm = 0x2B4
leaq 0x4e13(%rip), %r8       # 0x247a5
jmp 0x1fa17
cmpl $0x3, %eax
jl 0x1fa25
callq 0x3040
movl (%rax), %ebp
movl %ebp, %edi
callq 0x3140
movq %rax, (%rsp)
movl $0x3, %edi
leaq 0x59d4(%rip), %rsi      # 0x25392
leaq 0x6787(%rip), %rdx      # 0x2614c
movl $0x2ae, %ecx            # imm = 0x2AE
leaq 0x6787(%rip), %r8       # 0x26158
movl %ebp, %r9d
xorl %eax, %eax
callq 0x17d92
jmp 0x1fa25
movl %ebp, %edi
callq 0x183fa
testl %eax, %eax
je 0x1fbe2
xorl %eax, %eax
callq 0x17d59
cmpl $0x3, (%rax)
jl 0x1fa1e
movl $0x3, %edi
leaq 0x598e(%rip), %rsi      # 0x25392
leaq 0x6741(%rip), %rdx      # 0x2614c
movl $0x2ba, %ecx            # imm = 0x2BA
leaq 0x6775(%rip), %r8       # 0x2618c
xorl %eax, %eax
callq 0x17d92
movl %ebp, %edi
callq 0x3670
xorps %xmm0, %xmm0
leaq 0x30(%rsp), %rbp
movl (%r15), %ecx
testl %ecx, %ecx
je 0x1fae9
leal 0x3f(%rcx), %edx
testl %ecx, %ecx
cmovnsl %ecx, %edx
movl %edx, %eax
sarl $0x6, %eax
cltq
movq 0x30(%rsp,%rax,8), %rsi
andl $-0x40, %edx
subl %edx, %ecx
movl $0x1, %edx
shlq %cl, %rdx
btq %rcx, %rsi
jb 0x2019f
testq %rdx, 0xb0(%rsp,%rax,8)
je 0x1fae9
movl (%r15), %edi
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)
movaps %xmm0, 0x1b0(%rsp)
movl $0x80, 0xc(%rsp)
movq %r14, %rsi
movl $0x401, %edx            # imm = 0x401
leaq 0x1b0(%rsp), %rcx
leaq 0xc(%rsp), %r8
callq 0x196bb
movl %eax, %r12d
leal 0x1(%r12), %eax
cmpl $0x2, %eax
jae 0x1fb08
xorps %xmm0, %xmm0
leaq 0xdbe7(%rip), %r12      # 0x2d6d0
incq %rbx
movslq 0xef2d(%rip), %rax      # 0x2ea20
addq $0x90, %r15
cmpq %rax, %rbx
jl 0x1f892
jmp 0x1fc5b
xorl %eax, %eax
callq 0x17d59
cmpl $0x8, (%rax)
jl 0x1fb4e
leaq 0x1b0(%rsp), %rdi
callq 0x184d9
movq %rax, (%rsp)
movl $0x8, %edi
leaq 0x5861(%rip), %rsi      # 0x25392
leaq 0x666d(%rip), %rdx      # 0x261a5
movl $0x28d, %ecx            # imm = 0x28D
leaq 0x6671(%rip), %r8       # 0x261b5
movl %r12d, %r9d
xorl %eax, %eax
callq 0x17d92
xorl %eax, %eax
callq 0x17d59
cmpl $0x8, (%rax)
jl 0x1fb71
xorl %eax, %eax
callq 0x17d59
cmpl $0x7, (%rax)
jl 0x1fb71
movq %r14, %rdi
movl %r12d, %esi
callq 0x1ddbd
cmpl $0x401, %r12d           # imm = 0x401
jl 0x1fbb5
xorl %eax, %eax
callq 0x17d59
cmpl $0x3, (%rax)
jl 0x1fadf
movl $0x3, %edi
leaq 0x57fc(%rip), %rsi      # 0x25392
leaq 0x6608(%rip), %rdx      # 0x261a5
movl $0x294, %ecx            # imm = 0x294
leaq 0x6633(%rip), %r8       # 0x261dc
xorl %eax, %eax
callq 0x17d92
jmp 0x1fadf
movslq %r12d, %rax
movb $0x0, 0x230(%rsp,%rax)
movl 0xc(%rsp), %r8d
movq %r14, %rdi
movl %r12d, %esi
movl %ebx, %edx
leaq 0x1b0(%rsp), %rcx
xorl %r9d, %r9d
callq 0x2034f
jmp 0x1fadf
movl %ebp, %edi
movl %ebx, %esi
callq 0x198d4
testq %rax, %rax
je 0x1fc48
movq %rax, %r12
addq $0x40, %rax
leaq 0xdad2(%rip), %rcx      # 0x2d6d0
movq %r13, %rbp
movq %rcx, %r13
movq %rcx, 0x40(%r12)
movq 0xdac8(%rip), %rcx      # 0x2d6d8
movq %rcx, 0x48(%r12)
movq %rax, (%rcx)
movq %rax, 0xdab9(%rip)      # 0x2d6d8
movslq 0xda92(%rip), %r14      # 0x2d6b8
xorl %edi, %edi
callq 0x3310
addq %r14, %rax
leaq 0x230(%rsp), %r14
movq %rax, 0x50(%r12)
movq %r13, %r12
movq %rbp, %r13
jmp 0x1fa25
movl %ebp, %edi
callq 0x3670
leaq 0xda7a(%rip), %r12      # 0x2d6d0
jmp 0x1fa25
movq 0xda6e(%rip), %r15      # 0x2d6d0
cmpq %r12, %r15
je 0x2007d
testb $0x1, 0xedb6(%rip)      # 0x2ea28
je 0x2007d
leaq -0x40(%r15), %rax
movq %rax, 0x10(%rsp)
movq (%r15), %rbx
movl -0x40(%r15), %r13d
leal 0x3f(%r13), %edx
testl %r13d, %r13d
cmovnsl %r13d, %edx
movl %edx, %eax
sarl $0x6, %eax
cltq
movq 0x30(%rsp,%rax,8), %rsi
andl $-0x40, %edx
movl %r13d, %ecx
subl %edx, %ecx
movl $0x1, %edx
shlq %cl, %rdx
btq %rcx, %rsi
jae 0x1fd0e
movl %r13d, %edi
callq 0x1847d
movl %eax, %ebp
xorl %r14d, %r14d
xorl %eax, %eax
callq 0x17d59
cmpl $0x3, (%rax)
jl 0x1ffad
movl %ebp, %edi
callq 0x3140
movq %rax, (%rsp)
xorl %r14d, %r14d
movl $0x3, %edi
leaq 0x56a6(%rip), %rsi      # 0x25392
leaq 0x63ba(%rip), %rdx      # 0x260ad
movl $0x3df, %ecx            # imm = 0x3DF
leaq 0x6415(%rip), %r8       # 0x26114
movl %ebp, %r9d
xorl %eax, %eax
callq 0x17d92
jmp 0x1ffad
testq %rdx, 0xb0(%rsp,%rax,8)
je 0x1fd7d
leaq -0x38(%r15), %rbp
movl -0x30(%r15), %esi
movl -0x28(%r15), %edx
subl %esi, %edx
cmpl $0x402, %edx            # imm = 0x402
jg 0x1fd4e
addl $0x403, %esi            # imm = 0x403
movq %rbp, %rdi
callq 0x1d737
testl %eax, %eax
jne 0x1fe05
movl -0x30(%r15), %edx
notl %edx
addl -0x28(%r15), %edx
movslq -0x30(%r15), %r12
addq -0x38(%r15), %r12
movl %r13d, %edi
movq %r12, %rsi
callq 0x19530
cmpl $-0x1, %eax
je 0x1fe0d
movl %eax, %r13d
testl %eax, %eax
jne 0x1fe1c
movb $0x1, %r14b
jmp 0x1fe10
movb $0x1, %r14b
testq %rdx, 0x130(%rsp,%rax,8)
je 0x1ffad
leaq -0x20(%r15), %rsi
movl %r13d, %edi
callq 0x19402
cmpl $-0x1, %eax
je 0x1fe05
testl %eax, %eax
je 0x1ffad
cltq
addq %rax, 0x20(%r15)
xorl %eax, %eax
callq 0x17d59
cmpl $0x8, (%rax)
jl 0x1fdea
movl %r13d, %edi
callq 0x1857f
movl $0x8, %edi
leaq 0x55c5(%rip), %rsi      # 0x25392
leaq 0x6570(%rip), %rdx      # 0x26344
movl $0x33d, %ecx            # imm = 0x33D
leaq 0x656f(%rip), %r8       # 0x2634f
movq %rax, %r9
xorl %eax, %eax
callq 0x17d92
cmpl $0x4, -0x8(%r15)
jne 0x1ff91
xorl %edi, %edi
callq 0x3310
addq $0x3, %rax
jmp 0x1ffa9
xorl %r14d, %r14d
jmp 0x1ffad
xorl %r14d, %r14d
leaq 0xd8b9(%rip), %r12      # 0x2d6d0
jmp 0x1ffad
movslq -0x30(%r15), %rax
movslq %r13d, %rcx
addq %rcx, %rax
movl %eax, -0x30(%r15)
movq -0x38(%r15), %rdx
movb $0x0, (%rdx,%rax)
addq %rcx, 0x18(%r15)
xorl %eax, %eax
callq 0x17d59
cmpl $0x8, (%rax)
jl 0x1fe7b
movq 0x10(%rsp), %rax
movl (%rax), %edi
callq 0x1857f
movq %rax, (%rsp)
movl $0x8, %edi
leaq 0x5534(%rip), %rsi      # 0x25392
leaq 0x649d(%rip), %rdx      # 0x26302
movl $0x31e, %ecx            # imm = 0x31E
leaq 0x649b(%rip), %r8       # 0x2630c
movl %r13d, %r9d
xorl %eax, %eax
callq 0x17d92
xorl %eax, %eax
callq 0x17d59
cmpl $0x8, (%rax)
jl 0x1fe9e
xorl %eax, %eax
callq 0x17d59
cmpl $0x7, (%rax)
jl 0x1fe9e
movq %r12, %rdi
movl %r13d, %esi
callq 0x1ddbd
movl -0x30(%r15), %r14d
movl -0x2c(%r15), %r12d
subl %r12d, %r14d
cmpl $0x6, %r14d
jl 0x1ff23
movq %rbp, %rdi
movl %r12d, %esi
movl $0x2, %edx
callq 0x1da55
movl %eax, %r13d
cmpl $0x401, %eax            # imm = 0x401
jge 0x20039
movl %r13d, %r12d
addl $0x2, %r12d
cmpl %r12d, %r14d
jl 0x1ff23
movq -0x38(%r15), %rax
movslq -0x2c(%r15), %rcx
leaq (%rax,%rcx), %rdi
addq $0x2, %rdi
movl 0x28(%r15), %edx
xorl %r14d, %r14d
movl %r13d, %esi
movq 0x10(%rsp), %rcx
xorl %r8d, %r8d
movl $0x1, %r9d
callq 0x2034f
testl %eax, %eax
jne 0x1fe10
addl -0x2c(%r15), %r12d
movl %r12d, -0x2c(%r15)
movl -0x30(%r15), %r14d
subl %r12d, %r14d
cmpl $0x5, %r14d
jg 0x1feaf
cmpl $0x0, -0x2c(%r15)
leaq 0xd7a1(%rip), %r12      # 0x2d6d0
jle 0x1ff77
movq %rbp, %rdi
callq 0x1d6fd
testl %eax, %eax
je 0x1ff77
xorl %r14d, %r14d
xorl %eax, %eax
callq 0x17d59
cmpl $0x3, (%rax)
jl 0x1ffad
xorl %r14d, %r14d
movl $0x3, %edi
leaq 0x5437(%rip), %rsi      # 0x25392
leaq 0x63d1(%rip), %rdx      # 0x26333
movl $0x2f4, %ecx            # imm = 0x2F4
leaq 0x364c(%rip), %r8       # 0x235ba
xorl %eax, %eax
callq 0x17d92
jmp 0x1ffad
movslq 0xd73a(%rip), %r14      # 0x2d6b8
xorl %edi, %edi
callq 0x3310
addq %r14, %rax
movq %rax, 0x10(%r15)
movb $0x1, %r14b
jmp 0x1ffad
movslq 0xd720(%rip), %r12      # 0x2d6b8
xorl %edi, %edi
callq 0x3310
addq %r12, %rax
leaq 0xd727(%rip), %r12      # 0x2d6d0
movq %rax, 0x10(%r15)
cmpb $0x1, 0xea74(%rip)      # 0x2ea28
leaq 0x130(%rsp), %r13
leaq 0x30(%rsp), %rbp
jne 0x2007d
testb %r14b, %r14b
je 0x20018
movq 0x18(%rsp), %rax
cmpq %rax, 0x10(%r15)
jg 0x20022
xorl %eax, %eax
callq 0x17d59
cmpl $0x3, (%rax)
jl 0x20018
movq 0x10(%rsp), %rax
movl (%rax), %edi
callq 0x1857f
movl $0x3, %edi
leaq 0x5397(%rip), %rsi      # 0x25392
leaq 0x60ab(%rip), %rdx      # 0x260ad
movl $0x3f3, %ecx            # imm = 0x3F3
leaq 0x612b(%rip), %r8       # 0x26139
movq %rax, %r9
xorl %eax, %eax
callq 0x17d92
movq 0x10(%rsp), %rdi
callq 0x20229
cmpq %r12, %rbx
je 0x2007d
testb $0x1, 0xe9fa(%rip)      # 0x2ea28
movq %rbx, %r15
jne 0x1fc78
jmp 0x2007d
xorl %r14d, %r14d
xorl %eax, %eax
callq 0x17d59
cmpl $0x3, (%rax)
leaq 0xd683(%rip), %r12      # 0x2d6d0
jl 0x1ffad
xorl %r14d, %r14d
movl $0x3, %edi
leaq 0x5330(%rip), %rsi      # 0x25392
leaq 0x62ca(%rip), %rdx      # 0x26333
movl $0x2e1, %ecx            # imm = 0x2E1
leaq 0x351e(%rip), %r8       # 0x23593
movl %r13d, %r9d
jmp 0x1fd02
movq 0x18(%rsp), %rdi
callq 0x20272
movq 0xe4f2(%rip), %rdi      # 0x2e580
leaq 0xb0(%rsp), %r14
movq %r14, %rsi
movq %r13, %rdx
movq %rbp, %rcx
callq *0x38(%rdi)
testl %eax, %eax
jne 0x201d1
cmpl $0x0, 0xe4d7(%rip)      # 0x2e588
leaq 0xe4e8(%rip), %r15      # 0x2e5a0
jle 0x200ea
xorl %ebx, %ebx
movq 0xe4cd(%rip), %rax      # 0x2e590
movq (%rax,%rbx,8), %rdi
movq %r14, %rsi
movq %r13, %rdx
movq %rbp, %rcx
callq *0x38(%rdi)
testl %eax, %eax
jne 0x201d1
incq %rbx
movslq 0xe4a3(%rip), %rax      # 0x2e588
cmpq %rax, %rbx
jl 0x200bc
cmpb $0x1, 0xe937(%rip)      # 0x2ea28
xorps %xmm0, %xmm0
movl $0x0, %eax
je 0x1f58a
jmp 0x201d6
callq 0x3040
movq %rax, %rbx
movl (%rax), %ebp
xorl %eax, %eax
callq 0x17d59
movl (%rax), %eax
cmpl $0x4, %ebp
jne 0x201ec
cmpl $0x7, %eax
jl 0x2015b
movl (%rbx), %ebx
movl %ebx, %edi
callq 0x3140
movq %rax, (%rsp)
movl $0x7, %edi
leaq 0x5254(%rip), %rsi      # 0x25392
leaq 0x5f68(%rip), %rdx      # 0x260ad
movl $0x3ac, %ecx            # imm = 0x3AC
leaq 0x5f64(%rip), %r8       # 0x260b5
movl %ebx, %r9d
xorl %eax, %eax
callq 0x17d92
cmpb $0x0, 0xe8c6(%rip)      # 0x2ea28
xorps %xmm0, %xmm0
movl $0x0, %eax
jne 0x1f58a
jmp 0x201d6
xorl %eax, %eax
callq 0x17d59
cmpl $0x3, (%rax)
jl 0x201d1
leaq 0x520d(%rip), %rsi      # 0x25392
leaq 0x5f21(%rip), %rdx      # 0x260ad
leaq 0x5f5a(%rip), %r8       # 0x260ed
movl $0x3, %edi
movl $0x3c3, %ecx            # imm = 0x3C3
jmp 0x201ca
xorl %eax, %eax
callq 0x17d59
cmpl $0x3, (%rax)
jl 0x201d1
leaq 0x51e0(%rip), %rsi      # 0x25392
leaq 0x5ef4(%rip), %rdx      # 0x260ad
leaq 0x5f40(%rip), %r8       # 0x26100
movl $0x3, %edi
movl $0x3ce, %ecx            # imm = 0x3CE
xorl %eax, %eax
callq 0x17d92
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
addq $0x638, %rsp            # imm = 0x638
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorl %eax, %eax
jmp 0x201d6
cmpl $0x3, %eax
jl 0x201d1
movl (%rbx), %ebx
movl %ebx, %edi
callq 0x3140
movq %rax, (%rsp)
leaq 0x518d(%rip), %rsi      # 0x25392
leaq 0x5ea1(%rip), %rdx      # 0x260ad
leaq 0x5ebb(%rip), %r8       # 0x260ce
movl $0x3, %edi
movl $0x3b3, %ecx            # imm = 0x3B3
movl %ebx, %r9d
xorl %eax, %eax
callq 0x17d92
jmp 0x201d1