// File: /workspace/github_c_makefile_star2_O2/GangZhuo[P]dohclient/src/dohclient-cache.c
// Function: main
int main(int argc, char **argv)
{
	int ch, i, n, r;
	char buf[1024];
	char *pkg = buf + 2; /* 2 bytes length for TCP */
	int pkgsize = sizeof(buf) - 2;

#ifdef WINDOWS
	win_init();
#endif

	while ((ch = getopt(argc, argv, "s:t:Tvh")) != -1) {
		switch (ch) {
		case 'h':
			usage();
			exit(0);
			break;
		case 'v':
			fprintf(stdout, DOHCLIENT_NAME "-cache v" DOHCLIENT_VERSION "%s\n", git_version());
			exit(0);
			break;
		case 's':
			host = optarg;
			break;
		case 't':
			if (!is_digitstr(optarg)) {
				fprintf(stderr, "Invalid timeout -- %s\n", optarg);
				exit(1);
			}
			timeout = atoi(optarg);
			break;
		case 'T':
			tcp_mode = TRUE;
			break;
		case '?':
		default:
			exit(1);
			break;
		}
	}

	if (optind < argc)
		cmd = argv[optind++];

	for (i = optind; i < argc && cmd_arg_len < MAX_CMD_ARGS; i++) {
		cmd_args[cmd_arg_len++] = argv[i];
	}

	if (!cmd) {
		fprintf(stderr, "No command\n");
		exit(1);
	}

	if (timeout <= 0) {
		fprintf(stderr, "Invalid timeout\n");
		exit(1);
	}

	if (str2addr(host, server_addr, "5354")) {
		fprintf(stderr, "Invalid host address\n");
		exit(1);
	}

	if (strcasecmp(cmd, "GET") == 0) {
		if (cmd_arg_len < 2) {
			fprintf(stderr, "Missing arguments\n");
			exit(1);
		}
		else if (cmd_arg_len > 2) {
			for (i = 2; i < cmd_arg_len; i++) {
				fprintf(stderr, "Invalid argument -- %s\n", cmd_args[i]);
			}
			exit(1);
		}
		if (strcmp(cmd_args[0], "A") && strcmp(cmd_args[0], "AAAA")) {
			fprintf(stderr,
					"Invalid qtype -- %s\n"
					"Available value should be \"A\" or \"AAAA\".\n",
					cmd_args[0]);
			exit(1);
		}
		n = snprintf(pkg, pkgsize,
				"GET '%s IN %s.'", cmd_args[0], cmd_args[1]);
		if (n <= 0 || n >= pkgsize) {
			fprintf(stderr, "Domain too long -- %s\n", cmd_args[1]);
			exit(1);
		}
	}
	else if (strcasecmp(cmd, "LIST") == 0) {
		const char *keyword = "";
		int offset = 0, limit = 0;
		if (cmd_arg_len > 4) {
			for (i = 4; i < cmd_arg_len; i++) {
				fprintf(stderr, "Invalid argument -- %s\n", cmd_args[i]);
			}
			exit(1);
		}
		if (cmd_arg_len > 0)
			keyword = cmd_args[0];
		if (cmd_arg_len > 1)
			offset = atoi(cmd_args[1]);
		if (cmd_arg_len > 2)
			limit = atoi(cmd_args[2]);
		n = snprintf(pkg, pkgsize, "LIST '%s' %d %d", keyword, offset, limit);
		assert(n > 0 && n < pkgsize);
	}
	else if (strcasecmp(cmd, "PUT") == 0) {
		if (cmd_arg_len < 3) {
			fprintf(stderr, "Missing arguments\n");
			exit(1);
		}
		else if (cmd_arg_len > 4) {
			for (i = 4; i < cmd_arg_len; i++) {
				fprintf(stderr, "Invalid argument -- %s\n", cmd_args[i]);
			}
			exit(1);
		}
		if (strcmp(cmd_args[1], "A") && strcmp(cmd_args[1], "AAAA")) {
			fprintf(stderr,
					"Invalid type -- %s\n"
					"Available value should be \"A\" or \"AAAA\".\n",
					cmd_args[1]);
			exit(1);
		}
		if (cmd_arg_len == 4) {
			if (!is_digitstr(cmd_args[3])) {
				fprintf(stderr, "Invalid TTL -- %s\n", cmd_args[3]);
				exit(1);
			}
		}
		if (cmd_arg_len == 4) {
			n = snprintf(pkg, pkgsize,
					"PUT %s. %s %s %s",
					cmd_args[0], cmd_args[1], cmd_args[2], cmd_args[3]);
		}
		else {
			n = snprintf(pkg, pkgsize,
					"PUT %s. %s %s",
					cmd_args[0], cmd_args[1], cmd_args[2]);
		}
		if (n <= 0 || n >= pkgsize) {
			fprintf(stderr, "Domain or IP too long -- %s %s\n", cmd_args[0], cmd_args[2]);
			exit(1);
		}
	}
	else if (strcasecmp(cmd, "DELETE") == 0) {
		if (cmd_arg_len < 2) {
			fprintf(stderr, "Missing arguments\n");
			exit(1);
		}
		else if (cmd_arg_len > 2) {
			for (i = 2; i < cmd_arg_len; i++) {
				fprintf(stderr, "Invalid argument -- %s\n", cmd_args[i]);
			}
			exit(1);
		}
		if (strcasecmp(cmd_args[0], "A") && strcasecmp(cmd_args[0], "AAAA")) {
			fprintf(stderr,
					"Invalid qtype -- %s\n"
					"Available value should be \"A\" or \"AAAA\".\n",
					cmd_args[0]);
			exit(1);
		}
		n = snprintf(pkg, pkgsize,
				"DELETE '%s IN %s.'", cmd_args[0], cmd_args[1]);
		if (n <= 0 || n >= pkgsize) {
			fprintf(stderr, "Domain too long -- %s\n", cmd_args[1]);
			exit(1);
		}
	}
	else if (strcasecmp(cmd, "SAVE") == 0) {
		if (cmd_arg_len < 1) {
			fprintf(stderr, "Missing arguments\n");
			exit(1);
		}
		else if (cmd_arg_len > 1) {
			for (i = 1; i < cmd_arg_len; i++) {
				fprintf(stderr, "Invalid argument -- %s\n", cmd_args[i]);
			}
			exit(1);
		}
		n = snprintf(pkg, pkgsize,
				"SAVE \"%s\"", cmd_args[0]);
		if (n <= 0 || n >= pkgsize) {
			fprintf(stderr, "Filename too long -- %s\n", cmd_args[0]);
			exit(1);
		}
	}
	else if (strcasecmp(cmd, "LOAD") == 0) {
		const char *override = "";
		if (cmd_arg_len < 1) {
			fprintf(stderr, "Missing arguments\n");
			exit(1);
		}
		else if (cmd_arg_len > 2) {
			for (i = 2; i < cmd_arg_len; i++) {
				fprintf(stderr, "Invalid argument -- %s\n", cmd_args[i]);
			}
			exit(1);
		}
		if (cmd_arg_len > 1) {
			if (strcasecmp(cmd_args[1], "override")) {
				fprintf(stderr,
						"Unknown argument -- %s\n"
						"May be \"override\"?\n",
						cmd_args[1]);
				exit(1);
			}
			else {
				override = cmd_args[1];
			}
		}
		n = snprintf(pkg, pkgsize,
				"LOAD \"%s\" \"%s\"", cmd_args[0], override);
		if (n <= 0 || n >= pkgsize) {
			fprintf(stderr, "Filename too long -- %s\n", cmd_args[0]);
			exit(1);
		}
	}
	else {
		fprintf(stderr, "Invalid command -- %s\n", cmd);
		exit(1);
	}

	/*fprintf(stdout, "%s\n", pkg);*/

	if (tcp_mode)
		r = send_by_tcp(pkg, n);
	else
		r = send_by_udp(pkg, n);

	print_leak();

	return r;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x648, %rsp            # imm = 0x648
movq %rsi, %rbx
movl %edi, %ebp
leaq 0x21e3(%rip), %r14      # 0x7700
movq 0x5aa4(%rip), %r12      # 0xafc8
movl %ebp, %edi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x2090
cmpl $0x54, %eax
je 0x5564
cmpl $0x73, %eax
je 0x556d
cmpl $0x74, %eax
jne 0x557a
movq (%r12), %r15
movq %r15, %rdi
callq 0x644f
testl %eax, %eax
je 0x622d
movq %r15, %rdi
callq 0x2320
movl %eax, 0x5cb6(%rip)      # 0xb218
jmp 0x5524
movb $0x1, 0x5d95(%rip)      # 0xb300
jmp 0x5524
movq (%r12), %rax
movq %rax, 0x5c98(%rip)      # 0xb210
jmp 0x5524
cmpl $-0x1, %eax
jne 0x621c
movq 0x5a56(%rip), %rax      # 0xafe0
movl (%rax), %ecx
cmpl %ebp, %ecx
jge 0x55a2
movslq %ecx, %rdx
incl %ecx
movl %ecx, (%rax)
movq (%rbx,%rdx,8), %rax
movq %rax, 0x5d66(%rip)      # 0xb308
movl 0x5d68(%rip), %eax      # 0xb310
movslq %ecx, %rcx
movslq %ebp, %rdx
leaq 0x5d6b(%rip), %r14      # 0xb320
leaq (%r14,%rax,8), %rsi
cmpq %rdx, %rcx
jge 0x55db
cmpl $0x3, %eax
jg 0x55db
movq (%rbx,%rcx,8), %rdi
incl %eax
movl %eax, 0x5d41(%rip)      # 0xb310
movq %rdi, (%rsi)
incq %rcx
addq $0x8, %rsi
jmp 0x55b9
cmpq $0x0, 0x5d25(%rip)      # 0xb308
je 0x6276
cmpl $0x0, 0x5c28(%rip)      # 0xb218
jle 0x628b
movq 0x5c13(%rip), %rdi      # 0xb210
leaq 0x5d3c(%rip), %rsi      # 0xb340
leaq 0x2868(%rip), %rdx      # 0x7e73
callq 0x2f1c
testl %eax, %eax
jne 0x62a0
movq 0x5ce9(%rip), %rbx      # 0xb308
leaq 0x2146(%rip), %rsi      # 0x776c
movq %rbx, %rdi
callq 0x2240
testl %eax, %eax
je 0x56d5
leaq 0x21c8(%rip), %rsi      # 0x7805
movq %rbx, %rdi
callq 0x2240
testl %eax, %eax
je 0x576a
leaq 0x2208(%rip), %rsi      # 0x785c
movq %rbx, %rdi
callq 0x2240
testl %eax, %eax
je 0x577f
leaq 0x2284(%rip), %rsi      # 0x78ef
movq %rbx, %rdi
callq 0x2240
testl %eax, %eax
je 0x587f
leaq 0x2287(%rip), %rsi      # 0x7909
movq %rbx, %rdi
callq 0x2240
testl %eax, %eax
je 0x5944
leaq 0x2298(%rip), %rsi      # 0x7931
movq %rbx, %rdi
callq 0x2240
testl %eax, %eax
jne 0x6359
movl 0x5c61(%rip), %eax      # 0xb310
testl %eax, %eax
jle 0x62b5
cmpl $0x3, %eax
jae 0x636f
cmpl $0x1, %eax
jne 0x597f
leaq 0x28f3(%rip), %rbx      # 0x7fc3
jmp 0x599d
movl 0x5c35(%rip), %eax      # 0xb310
cmpl $0x1, %eax
jle 0x62b5
cmpl $0x2, %eax
jne 0x62d6
movq 0x5c2c(%rip), %rbx      # 0xb320
cmpb $0x41, (%rbx)
jne 0x56ff
cmpb $0x0, 0x1(%rbx)
je 0x5716
leaq 0x2095(%rip), %rsi      # 0x779b
movq %rbx, %rdi
callq 0x2300
testl %eax, %eax
jne 0x6310
movq 0x5c0b(%rip), %r8       # 0xb328
leaq 0x20ba(%rip), %rdx      # 0x77de
movl $0x3fe, %esi            # imm = 0x3FE
leaq 0x242(%rsp), %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2330
movl %eax, %ebx
movl $0xfffffc02, %eax       # imm = 0xFFFFFC02
leal (%rbx,%rax), %ecx
cmpl %eax, %ecx
ja 0x59d4
movq 0x5884(%rip), %rax      # 0xafd8
movq (%rax), %rdi
movq 0x5bca(%rip), %rdx      # 0xb328
leaq 0x2089(%rip), %rsi      # 0x77ee
jmp 0x6241
movl 0x5b9f(%rip), %r15d     # 0xb310
testl %r15d, %r15d
jle 0x57f5
movq 0x5ba3(%rip), %rbx      # 0xb320
jmp 0x57fc
movl 0x5b8b(%rip), %ebp      # 0xb310
cmpl $0x2, %ebp
jle 0x62b5
movq 0x5b93(%rip), %rbx      # 0xb328
cmpb $0x41, (%rbx)
jne 0x57a0
cmpb $0x0, 0x1(%rbx)
je 0x57b7
leaq 0x1ff4(%rip), %rsi      # 0x779b
movq %rbx, %rdi
callq 0x2300
testl %eax, %eax
jne 0x6343
cmpl $0x4, %ebp
jne 0x58db
movq 0x5b71(%rip), %r14      # 0xb338
movq %r14, %rdi
callq 0x644f
testl %eax, %eax
je 0x63e3
movq 0x5b42(%rip), %rcx      # 0xb320
movq 0x5b4b(%rip), %r9       # 0xb330
movq %r14, (%rsp)
leaq 0x20c0(%rip), %rdx      # 0x78b0
jmp 0x58f0
leaq 0x27c7(%rip), %rbx      # 0x7fc3
xorl %ebp, %ebp
cmpl $0x2, %r15d
jl 0x5829
movq 0x5b1d(%rip), %rdi      # 0xb328
callq 0x2320
movl %eax, %r14d
cmpl $0x2, %r15d
je 0x582c
movq 0x5b10(%rip), %rdi      # 0xb330
callq 0x2320
movl %eax, %ebp
jmp 0x582c
xorl %r14d, %r14d
leaq 0x1fd7(%rip), %rdx      # 0x780a
movl $0x3fe, %esi            # imm = 0x3FE
leaq 0x242(%rsp), %rdi
movq %rbx, %rcx
movl %r14d, %r8d
movl %ebp, %r9d
xorl %eax, %eax
callq 0x2330
movl %eax, %ebx
leal -0x1(%rbx), %eax
cmpl $0x3fd, %eax            # imm = 0x3FD
jb 0x59d4
leaq 0x1fb3(%rip), %rdi      # 0x781a
leaq 0x1fc1(%rip), %rsi      # 0x782f
leaq 0x1fd0(%rip), %rcx      # 0x7845
movl $0x1e4, %edx            # imm = 0x1E4
callq 0x2140
movl 0x5a8b(%rip), %eax      # 0xb310
cmpl $0x1, %eax
jle 0x62b5
cmpl $0x2, %eax
jne 0x63a9
movq 0x5a82(%rip), %rbx      # 0xb320
leaq 0x1ef9(%rip), %rsi      # 0x779e
movq %rbx, %rdi
callq 0x2240
testl %eax, %eax
je 0x58c8
leaq 0x1ee3(%rip), %rsi      # 0x779b
movq %rbx, %rdi
callq 0x2240
testl %eax, %eax
jne 0x6310
movq 0x5a59(%rip), %r8       # 0xb328
leaq 0x2020(%rip), %rdx      # 0x78f6
jmp 0x5724
movq 0x5a3e(%rip), %rcx      # 0xb320
movq 0x5a47(%rip), %r9       # 0xb330
leaq 0x1fd1(%rip), %rdx      # 0x78c1
movl $0x3fe, %esi            # imm = 0x3FE
leaq 0x242(%rsp), %rdi
movq %rbx, %r8
xorl %eax, %eax
callq 0x2330
movl %eax, %ebx
movl $0xfffffc02, %eax       # imm = 0xFFFFFC02
leal (%rbx,%rax), %ecx
cmpl %eax, %ecx
ja 0x59d4
movq 0x56b8(%rip), %rax      # 0xafd8
movq (%rax), %rdi
movq 0x59f6(%rip), %rdx      # 0xb320
movq 0x59ff(%rip), %rcx      # 0xb330
leaq 0x1f97(%rip), %rsi      # 0x78cf
xorl %eax, %eax
callq 0x2310
jmp 0x6248
movl 0x59c6(%rip), %eax      # 0xb310
testl %eax, %eax
jle 0x62b5
cmpl $0x1, %eax
jne 0x63fc
movq 0x59be(%rip), %rcx      # 0xb320
leaq 0x1fa5(%rip), %rdx      # 0x790e
movl $0x3fe, %esi            # imm = 0x3FE
leaq 0x242(%rsp), %rdi
xorl %eax, %eax
callq 0x2330
jmp 0x59c2
movq 0x59a2(%rip), %rbx      # 0xb328
leaq 0x1fa9(%rip), %rsi      # 0x7936
movq %rbx, %rdi
callq 0x2240
testl %eax, %eax
jne 0x6436
movq 0x597c(%rip), %rcx      # 0xb320
leaq 0x1fbf(%rip), %rdx      # 0x796a
movl $0x3fe, %esi            # imm = 0x3FE
leaq 0x242(%rsp), %rdi
movq %rbx, %r8
xorl %eax, %eax
callq 0x2330
movl %eax, %ebx
movl $0xfffffc02, %eax       # imm = 0xFFFFFC02
leal (%rbx,%rax), %ecx
cmpl %eax, %ecx
jbe 0x6326
cmpb $0x1, 0x5925(%rip)      # 0xb300
pushq $0x40
popq %r15
jne 0x5caa
leaq 0x40(%rsp), %rdi
andq $0x0, 0x10(%rdi)
leaq 0x240(%rsp), %rax
movq %rax, (%rdi)
andl $0x0, 0xc(%rdi)
movl 0x59bc(%rip), %ebp      # 0xb3c0
leal 0x2(%rbx), %eax
movl %eax, 0x8(%rdi)
movl %eax, 0x10(%rdi)
pushq $0x2
popq %rcx
xorl %esi, %esi
movl %ebx, %edx
callq 0x4510
movzwl 0x5920(%rip), %edi      # 0xb340
pushq $0x1
popq %rsi
pushq $0x6
popq %rdx
callq 0x20a0
cmpl $-0x1, %eax
je 0x5f15
movl %eax, %r13d
movl %eax, %r14d
movl %r13d, %edi
callq 0x2a89
testl %eax, %eax
jne 0x5fcf
movl %r14d, %edi
callq 0x2b25
testl %eax, %eax
jne 0x6017
movl %r14d, %edi
callq 0x2b9c
testl %eax, %eax
jne 0x605f
leaq 0x58cf(%rip), %rsi      # 0xb340
movl %r14d, 0xc(%rsp)
movl %r14d, %edi
movl %ebp, %edx
callq 0x21b0
testl %eax, %eax
je 0x5a99
callq 0x2030
movl (%rax), %ebx
cmpl $0xb, %ebx
je 0x5a99
cmpl $0x73, %ebx
jne 0x61b2
xorl %r14d, %r14d
xorl %edi, %edi
callq 0x21e0
movq %rax, 0x10(%rsp)
movl 0xc(%rsp), %ebx
movl %ebx, %eax
cltd
idivl %r15d
movslq %eax, %r15
shll $0x6, %eax
movl %r13d, %ecx
subl %eax, %ecx
pushq $0x1
popq %r12
shlq %cl, %r12
incl %r13d
movl %r13d, 0x18(%rsp)
pushq $-0x1
popq %rbp
xorl %r13d, %r13d
xorl %eax, %eax
cmpq $0x10, %rax
je 0x5ae8
andq $0x0, 0x1c0(%rsp,%rax,8)
incq %rax
jmp 0x5ad4
xorl %eax, %eax
cmpq $0x10, %rax
je 0x5afe
andq $0x0, 0x140(%rsp,%rax,8)
incq %rax
jmp 0x5aea
xorl %eax, %eax
cmpq $0x10, %rax
je 0x5b14
andq $0x0, 0xc0(%rsp,%rax,8)
incq %rax
jmp 0x5b00
testl %r13d, %r13d
leaq 0x1c0(%rsp), %rsi
movq %rsi, %rax
leaq 0x140(%rsp), %rdx
cmoveq %rdx, %rax
orq %r12, (%rax,%r15,8)
orq %r12, 0xc0(%rsp,%r15,8)
andq $0x0, 0x20(%rsp)
movq $0xc350, 0x28(%rsp)     # imm = 0xC350
movl 0x18(%rsp), %edi
leaq 0xc0(%rsp), %rcx
leaq 0x20(%rsp), %r8
callq 0x21f0
cmpl $-0x1, %eax
je 0x5f81
testq %r12, 0xc0(%rsp,%r15,8)
jne 0x5fa8
testq %r12, 0x1c0(%rsp,%r15,8)
je 0x5c33
movslq 0x48(%rsp), %rdx
movq %rdx, %rsi
addq 0x40(%rsp), %rsi
notl %edx
addl 0x50(%rsp), %edx
movl %ebx, %edi
callq 0x3be6
testl %eax, %eax
jle 0x5bd6
movl %eax, %ebx
movq 0x40(%rsp), %rax
movslq 0x48(%rsp), %rcx
movslq %ebx, %rdx
addq %rcx, %rdx
movb $0x0, (%rax,%rdx)
cmpl $-0x1, %ebp
je 0x5be1
movq 0x53f4(%rip), %rax      # 0xafb8
movq (%rax), %rsi
movq 0x40(%rsp), %rdi
callq 0x2260
addl %ebx, %r14d
jmp 0x5c26
movl 0xc(%rsp), %ebx
jns 0x5c33
jmp 0x5efd
addl 0x48(%rsp), %ebx
movl %ebx, 0x48(%rsp)
pushq $-0x1
popq %rbp
cmpl $0x2, %ebx
jl 0x5c26
leaq 0x40(%rsp), %rdi
pushq $0x2
popq %rsi
callq 0x47e9
movl %eax, %ebp
movl 0x48(%rsp), %r14d
andl $0x0, 0x48(%rsp)
addl $-0x2, %r14d
movq 0x53a3(%rip), %rax      # 0xafb8
movq (%rax), %rsi
movq 0x40(%rsp), %rdi
addq $0x2, %rdi
callq 0x2260
cmpl %ebp, %r14d
movl 0xc(%rsp), %ebx
jge 0x5edd
testq %r12, 0x140(%rsp,%r15,8)
je 0x5c70
movl %ebx, %edi
leaq 0x40(%rsp), %rsi
callq 0x3ac6
cmpl $-0x1, %eax
je 0x610a
leaq 0x5777(%rip), %rax      # 0xb3d0
movq %rax, 0x40(%rsp)
andq $0x0, 0x48(%rsp)
movl $0x200000, 0x50(%rsp)   # imm = 0x200000
pushq $0x1
popq %r13
xorl %edi, %edi
callq 0x21e0
subl 0x10(%rsp), %eax
cmpl %eax, 0x5597(%rip)      # 0xb218
jge 0x5ad2
movq 0x534a(%rip), %rax      # 0xafd8
movq (%rax), %rcx
leaq 0x23cc(%rip), %rdi      # 0x8064
pushq $0x1d
popq %rsi
pushq $0x1
popq %rdx
callq 0x23a0
movl %ebx, %edi
jmp 0x6196
pushq $-0x1
popq %rbp
movl 0x570d(%rip), %eax      # 0xb3c0
movl %eax, 0xc(%rsp)
movzwl 0x5682(%rip), %edi      # 0xb340
pushq $0x2
popq %rsi
pushq $0x11
popq %rdx
callq 0x20a0
cmpl $-0x1, %eax
je 0x5f48
movl %eax, %r14d
movl %eax, %edi
callq 0x2a89
testl %eax, %eax
jne 0x5ff3
movl %r14d, %edi
callq 0x2b25
testl %eax, %eax
jne 0x603b
xorl %r12d, %r12d
xorl %edi, %edi
callq 0x21e0
movq %rax, 0x18(%rsp)
movl %r14d, %eax
cltd
idivl %r15d
movslq %eax, %r15
shll $0x6, %eax
movl %r14d, %ecx
subl %eax, %ecx
pushq $0x1
popq %r13
shlq %cl, %r13
movl %r14d, 0x10(%rsp)
incl %r14d
movl %ebx, %eax
movq %rax, 0x30(%rsp)
leaq 0x140(%rsp), %rbx
leaq 0x1c0(%rsp), %rbp
xorl %eax, %eax
cmpq $0x10, %rax
je 0x5d51
andq $0x0, 0x1c0(%rsp,%rax,8)
incq %rax
jmp 0x5d3d
xorl %eax, %eax
cmpq $0x10, %rax
je 0x5d67
andq $0x0, 0x140(%rsp,%rax,8)
incq %rax
jmp 0x5d53
xorl %eax, %eax
cmpq $0x10, %rax
je 0x5d7d
andq $0x0, 0xc0(%rsp,%rax,8)
incq %rax
jmp 0x5d69
testl %r12d, %r12d
movq %rbp, %rax
cmoveq %rbx, %rax
orq %r13, (%rax,%r15,8)
orq %r13, 0xc0(%rsp,%r15,8)
andq $0x0, 0x20(%rsp)
movq $0xc350, 0x28(%rsp)     # imm = 0xC350
movl %r14d, %edi
movq %rbp, %rsi
movq %rbx, %rdx
leaq 0xc0(%rsp), %rcx
leaq 0x20(%rsp), %r8
callq 0x21f0
cmpl $-0x1, %eax
je 0x6080
testq %r13, 0xc0(%rsp,%r15,8)
jne 0x60a1
testq %r13, 0x1c0(%rsp,%r15,8)
jne 0x5e53
testq %r13, 0x140(%rsp,%r15,8)
je 0x5e1b
movl 0x10(%rsp), %edi
leaq 0x242(%rsp), %rsi
movq 0x30(%rsp), %rdx
xorl %ecx, %ecx
leaq 0x553e(%rip), %r8       # 0xb340
movl 0xc(%rsp), %r9d
callq 0x2050
pushq $0x1
popq %rcx
movl %ecx, %r12d
cmpl $-0x1, %eax
je 0x6152
xorl %edi, %edi
callq 0x21e0
subl 0x18(%rsp), %eax
cmpl %eax, 0x53ec(%rip)      # 0xb218
jge 0x5d3b
movq 0x519f(%rip), %rax      # 0xafd8
movq (%rax), %rcx
leaq 0x2395(%rip), %rdi      # 0x81d8
pushq $0x1d
popq %rsi
pushq $0x1
popq %rdx
callq 0x23a0
jmp 0x6192
xorps %xmm0, %xmm0
leaq 0x40(%rsp), %r8
movaps %xmm0, 0x70(%r8)
movaps %xmm0, 0x60(%r8)
movaps %xmm0, 0x50(%r8)
movaps %xmm0, 0x40(%r8)
movaps %xmm0, 0x30(%r8)
movaps %xmm0, 0x20(%r8)
movaps %xmm0, 0x10(%r8)
movaps %xmm0, (%r8)
leaq 0x3c(%rsp), %r9
movl $0x80, (%r9)
leaq 0x553b(%rip), %rbx      # 0xb3d0
movl $0x1fffff, %edx         # imm = 0x1FFFFF
movl 0x10(%rsp), %r14d
movl %r14d, %edi
movq %rbx, %rsi
xorl %ecx, %ecx
callq 0x2180
testl %eax, %eax
jle 0x60d4
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
movb $0x0, (%rax,%rbx)
movq 0x50f4(%rip), %rax      # 0xafb8
movq (%rax), %rdi
leaq 0x1adb(%rip), %rsi      # 0x79a9
movq %rbx, %rdx
xorl %eax, %eax
callq 0x2310
movl %r14d, %edi
jmp 0x5ef1
movq 0x50d4(%rip), %rax      # 0xafb8
movq (%rax), %rsi
pushq $0xa
popq %rdi
callq 0x22b0
movl %ebx, %edi
callq 0x23b0
xorl %ebx, %ebx
jmp 0x619e
callq 0x2030
movl (%rax), %ebx
testl %ebx, %ebx
jne 0x61f0
movl 0xc(%rsp), %edi
jmp 0x6196
movq 0x50bc(%rip), %rax      # 0xafd8
movq (%rax), %rbx
callq 0x2030
movl (%rax), %ebp
movl %ebp, %edi
callq 0x20c0
leaq 0x1f44(%rip), %rsi      # 0x7e78
movq %rbx, %rdi
movl %ebp, %edx
movq %rax, %rcx
xorl %eax, %eax
callq 0x2310
jmp 0x619b
movq 0x5089(%rip), %rax      # 0xafd8
movq (%rax), %rbx
callq 0x2030
movl %ebp, %r14d
movl (%rax), %ebp
movl %ebp, %edi
callq 0x20c0
leaq 0x2118(%rip), %rsi      # 0x8082
movq %rbx, %rdi
movl %ebp, %edx
movl %r14d, %ebx
movq %rax, %rcx
xorl %eax, %eax
callq 0x2310
jmp 0x619e
movq 0x5050(%rip), %rax      # 0xafd8
movl %ebx, %r14d
movq (%rax), %rbx
callq 0x2030
movl (%rax), %ebp
movl %ebp, %edi
callq 0x20c0
leaq 0x1fed(%rip), %rsi      # 0x7f90
jmp 0x60f3
movq 0x5029(%rip), %rax      # 0xafd8
movl %ebx, %r14d
movq (%rax), %rbx
callq 0x2030
movl (%rax), %ebp
movl %ebp, %edi
callq 0x20c0
leaq 0x1ffa(%rip), %rsi      # 0x7fc4
jmp 0x60f3
movq 0x5002(%rip), %rax      # 0xafd8
movq (%rax), %rbx
callq 0x2030
movl (%rax), %ebp
movl %ebp, %edi
callq 0x20c0
leaq 0x1ec2(%rip), %rsi      # 0x7eb0
jmp 0x60f3
movq 0x4fde(%rip), %rax      # 0xafd8
movq (%rax), %rbx
callq 0x2030
movl (%rax), %ebp
movl %ebp, %edi
callq 0x20c0
leaq 0x20a8(%rip), %rsi      # 0x80ba
jmp 0x60f3
movq 0x4fba(%rip), %rax      # 0xafd8
movq (%rax), %rbx
callq 0x2030
movl (%rax), %ebp
movl %ebp, %edi
callq 0x20c0
leaq 0x1eb8(%rip), %rsi      # 0x7eee
jmp 0x60f3
movq 0x4f96(%rip), %rax      # 0xafd8
movq (%rax), %rbx
callq 0x2030
movl (%rax), %ebp
movl %ebp, %edi
callq 0x20c0
leaq 0x209e(%rip), %rsi      # 0x80f8
jmp 0x60f3
movq 0x4f72(%rip), %rax      # 0xafd8
movq (%rax), %rbx
callq 0x2030
movl (%rax), %ebp
movl %ebp, %edi
callq 0x20c0
leaq 0x1eb2(%rip), %rsi      # 0x7f30
jmp 0x60f3
movq 0x4f51(%rip), %rax      # 0xafd8
movq (%rax), %rbx
callq 0x2030
movl (%rax), %ebp
movl %ebp, %edi
callq 0x20c0
leaq 0x1f06(%rip), %rsi      # 0x7fa5
jmp 0x60c0
movq 0x4f30(%rip), %rax      # 0xafd8
movq (%rax), %rbx
callq 0x2030
movl (%rax), %ebp
movl %ebp, %edi
callq 0x20c0
leaq 0x207a(%rip), %rsi      # 0x813a
movq %rbx, %rdi
movl %ebp, %edx
movq %rax, %rcx
xorl %eax, %eax
callq 0x2310
jmp 0x6192
movq 0x4efd(%rip), %rax      # 0xafd8
movq (%rax), %rbx
callq 0x2030
movl (%rax), %ebp
movl %ebp, %edi
callq 0x20c0
leaq 0x2076(%rip), %rsi      # 0x8169
movq %rbx, %rdi
movl %ebp, %edx
movq %rax, %rcx
xorl %eax, %eax
callq 0x2310
movl %r14d, %edi
jmp 0x6196
movq 0x4ec7(%rip), %rax      # 0xafd8
movl %ebx, %r15d
movq (%rax), %rbx
leaq 0x5222(%rip), %rdi      # 0xb340
callq 0x2c66
movq %rax, %r14
callq 0x2030
movl (%rax), %ebp
movl %ebp, %edi
callq 0x20c0
leaq 0x1eed(%rip), %rsi      # 0x8028
movq %rbx, %rdi
movq %r14, %rdx
movl %ebp, %ecx
movq %rax, %r8
xorl %eax, %eax
callq 0x2310
movl %r15d, %edi
jmp 0x6196
movq 0x4e7f(%rip), %rax      # 0xafd8
movq (%rax), %rbx
leaq 0x51dd(%rip), %rdi      # 0xb340
callq 0x2c66
movq %rax, %r14
callq 0x2030
movl (%rax), %ebp
movl %ebp, %edi
callq 0x20c0
leaq 0x201e(%rip), %rsi      # 0x819e
movq %rbx, %rdi
movq %r14, %rdx
movl %ebp, %ecx
movq %rax, %r8
xorl %eax, %eax
callq 0x2310
movl 0x10(%rsp), %edi
callq 0x23b0
pushq $-0x1
popq %rbx
movl %ebx, %eax
addq $0x648, %rsp            # imm = 0x648
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x4e1f(%rip), %rax      # 0xafd8
movq (%rax), %r14
movl %ebx, %edi
callq 0x20c0
movq %rax, %r15
leaq 0x5173(%rip), %rdi      # 0xb340
callq 0x2c66
leaq 0x1d93(%rip), %rsi      # 0x7f6c
movq %r14, %rdi
movl %ebx, %edx
movq %r15, %rcx
movq %rax, %r8
xorl %eax, %eax
callq 0x2310
jmp 0x5f0c
movq 0x4de1(%rip), %rax      # 0xafd8
movq (%rax), %r14
movl %ebx, %edi
callq 0x20c0
leaq 0x1deb(%rip), %rsi      # 0x7ff3
movq %r14, %rdi
movl %ebx, %edx
movq %rax, %rcx
xorl %eax, %eax
callq 0x2310
jmp 0x5f0c
cmpl $0x76, %eax
je 0x6250
cmpl $0x68, %eax
jne 0x6248
callq 0x6480
jmp 0x626f
movq 0x4da4(%rip), %rax      # 0xafd8
movq (%rax), %rdi
leaq 0x14e4(%rip), %rsi      # 0x7722
movq %r15, %rdx
xorl %eax, %eax
callq 0x2310
pushq $0x1
popq %rdi
callq 0x22a0
movq 0x4d61(%rip), %rax      # 0xafb8
movq (%rax), %rdi
leaq 0x14a7(%rip), %rsi      # 0x7708
leaq 0x1bf8(%rip), %rdx      # 0x7e60
xorl %eax, %eax
callq 0x2310
xorl %edi, %edi
callq 0x22a0
movq 0x4d5b(%rip), %rax      # 0xafd8
movq (%rax), %rcx
leaq 0x14b2(%rip), %rdi      # 0x7739
pushq $0xb
jmp 0x62c8
movq 0x4d46(%rip), %rax      # 0xafd8
movq (%rax), %rcx
leaq 0x14a9(%rip), %rdi      # 0x7745
pushq $0x10
jmp 0x62c8
movq 0x4d31(%rip), %rax      # 0xafd8
movq (%rax), %rcx
leaq 0x14a5(%rip), %rdi      # 0x7756
pushq $0x15
jmp 0x62c8
movq 0x4d1c(%rip), %rax      # 0xafd8
movq (%rax), %rcx
leaq 0x14aa(%rip), %rdi      # 0x7770
pushq $0x12
popq %rsi
pushq $0x1
popq %rdx
callq 0x23a0
jmp 0x6248
pushq $0x2
popq %r15
movq 0x4cf7(%rip), %r12      # 0xafd8
leaq 0x149b(%rip), %rbx      # 0x7783
cltq
cmpq %rax, %r15
jge 0x6248
movq (%r12), %rdi
movq (%r14,%r15,8), %rdx
movq %rbx, %rsi
xorl %eax, %eax
callq 0x2310
incq %r15
movl 0x5002(%rip), %eax      # 0xb310
jmp 0x62e8
movq 0x4cc1(%rip), %rax      # 0xafd8
movq (%rax), %rdi
leaq 0x147f(%rip), %rsi      # 0x77a0
jmp 0x6447
movq 0x4cab(%rip), %rax      # 0xafd8
movq (%rax), %rdi
movq 0x4fe9(%rip), %rdx      # 0xb320
leaq 0x15da(%rip), %rsi      # 0x7918
jmp 0x6241
movq 0x4c8e(%rip), %rax      # 0xafd8
movq (%rax), %rdi
leaq 0x150c(%rip), %rsi      # 0x7860
jmp 0x6447
movq 0x4c78(%rip), %rax      # 0xafd8
movq (%rax), %rdi
leaq 0x160f(%rip), %rsi      # 0x7979
jmp 0x6447
pushq $0x2
popq %r15
movq 0x4c5e(%rip), %r12      # 0xafd8
leaq 0x1402(%rip), %rbx      # 0x7783
cltq
cmpq %rax, %r15
jge 0x6248
movq (%r12), %rdi
movq (%r14,%r15,8), %rdx
movq %rbx, %rsi
xorl %eax, %eax
callq 0x2310
incq %r15
movl 0x4f69(%rip), %eax      # 0xb310
jmp 0x6381
pushq $0x2
popq %r15
movq 0x4c24(%rip), %r12      # 0xafd8
leaq 0x13c8(%rip), %rbx      # 0x7783
cltq
cmpq %rax, %r15
jge 0x6248
movq (%r12), %rdi
movq (%r14,%r15,8), %rdx
movq %rbx, %rsi
xorl %eax, %eax
callq 0x2310
incq %r15
movl 0x4f2f(%rip), %eax      # 0xb310
jmp 0x63bb
movq 0x4bee(%rip), %rax      # 0xafd8
movq (%rax), %rdi
leaq 0x14a9(%rip), %rsi      # 0x789d
movq %r14, %rdx
jmp 0x6241
pushq $0x1
popq %r15
movq 0x4bd1(%rip), %r12      # 0xafd8
leaq 0x1375(%rip), %rbx      # 0x7783
cltq
cmpq %rax, %r15
jge 0x6248
movq (%r12), %rdi
movq (%r14,%r15,8), %rdx
movq %rbx, %rsi
xorl %eax, %eax
callq 0x2310
incq %r15
movl 0x4edc(%rip), %eax      # 0xb310
jmp 0x640e
movq 0x4b9b(%rip), %rax      # 0xafd8
movq (%rax), %rdi
leaq 0x14f8(%rip), %rsi      # 0x793f
movq %rbx, %rdx
jmp 0x6241