// File: /workspace/github_c_makefile_star2_O0/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
movq %rsp, %rbp
subq $0x470, %rsp            # imm = 0x470
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x420(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x428(%rbp)
movl $0x3fe, -0x42c(%rbp)    # imm = 0x3FE
movl -0x8(%rbp), %edi
movq -0x10(%rbp), %rsi
leaq 0x30ed(%rip), %rdx      # 0xa7c0
callq 0x20a0
movl %eax, -0x14(%rbp)
cmpl $-0x1, %eax
je 0x77db
movl -0x14(%rbp), %eax
addl $-0x3f, %eax
movl %eax, %ecx
movq %rcx, -0x450(%rbp)
subl $0x37, %eax
ja 0x77cc
movq -0x450(%rbp), %rax
leaq 0x2fd6(%rip), %rcx      # 0xa6e0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
callq 0x9300
xorl %edi, %edi
callq 0x22a0
movq 0x6892(%rip), %rax      # 0xdfb8
movq (%rax), %rax
movq %rax, -0x458(%rbp)
callq 0x9340
movq -0x458(%rbp), %rdi
movq %rax, %rdx
leaq 0x3082(%rip), %rsi      # 0xa7c8
movb $0x0, %al
callq 0x2300
xorl %edi, %edi
callq 0x22a0
movq 0x686d(%rip), %rax      # 0xdfc8
movq (%rax), %rax
movq %rax, 0x6b4b(%rip)      # 0xe2b0
jmp 0x77d6
movq 0x685a(%rip), %rax      # 0xdfc8
movq (%rax), %rdi
callq 0x8230
cmpl $0x0, %eax
jne 0x77a7
movq 0x6856(%rip), %rax      # 0xdfd8
movq (%rax), %rdi
movq 0x683c(%rip), %rax      # 0xdfc8
movq (%rax), %rdx
leaq 0x304c(%rip), %rsi      # 0xa7e2
movb $0x0, %al
callq 0x2300
movl $0x1, %edi
callq 0x22a0
movq 0x681a(%rip), %rax      # 0xdfc8
movq (%rax), %rdi
callq 0x2310
movl %eax, 0x6afc(%rip)      # 0xe2b8
jmp 0x77d6
movl $0x1, 0x6bd8(%rip)      # 0xe3a0
jmp 0x77d6
jmp 0x77cc
movl $0x1, %edi
callq 0x22a0
jmp 0x76c5
movq 0x67fe(%rip), %rax      # 0xdfe0
movl (%rax), %eax
cmpl -0x8(%rbp), %eax
jge 0x7812
movq -0x10(%rbp), %rax
movq 0x67ec(%rip), %rcx      # 0xdfe0
movl (%rcx), %ecx
movl %ecx, %esi
addl $0x1, %esi
movq 0x67de(%rip), %rdx      # 0xdfe0
movl %esi, (%rdx)
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movq %rax, 0x6b96(%rip)      # 0xe3a8
movq 0x67c7(%rip), %rax      # 0xdfe0
movl (%rax), %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %ecx
xorl %eax, %eax
cmpl -0x8(%rbp), %ecx
movb %al, -0x459(%rbp)
jge 0x783e
cmpl $0x4, 0x6b7b(%rip)      # 0xe3b0
setl %al
movb %al, -0x459(%rbp)
movb -0x459(%rbp), %al
testb $0x1, %al
jne 0x784a
jmp 0x7880
movq -0x10(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
movl 0x6b54(%rip), %eax      # 0xe3b0
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, 0x6b49(%rip)      # 0xe3b0
movslq %eax, %rcx
leaq 0x6b4f(%rip), %rax      # 0xe3c0
movq %rdx, (%rax,%rcx,8)
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x781e
cmpq $0x0, 0x6b20(%rip)      # 0xe3a8
jne 0x78ac
movq 0x6747(%rip), %rax      # 0xdfd8
movq (%rax), %rdi
leaq 0x2f5e(%rip), %rsi      # 0xa7f9
movb $0x0, %al
callq 0x2300
movl $0x1, %edi
callq 0x22a0
cmpl $0x0, 0x6a05(%rip)      # 0xe2b8
jg 0x78d7
movq 0x671c(%rip), %rax      # 0xdfd8
movq (%rax), %rdi
leaq 0x2f3f(%rip), %rsi      # 0xa805
movb $0x0, %al
callq 0x2300
movl $0x1, %edi
callq 0x22a0
movq 0x69d2(%rip), %rdi      # 0xe2b0
leaq 0x6afb(%rip), %rsi      # 0xe3e0
leaq 0x3647(%rip), %rdx      # 0xaf33
callq 0x3770
cmpl $0x0, %eax
je 0x7918
movq 0x66db(%rip), %rax      # 0xdfd8
movq (%rax), %rdi
leaq 0x2f0f(%rip), %rsi      # 0xa816
movb $0x0, %al
callq 0x2300
movl $0x1, %edi
callq 0x22a0
movq 0x6a89(%rip), %rdi      # 0xe3a8
leaq 0x2f06(%rip), %rsi      # 0xa82c
callq 0x2250
cmpl $0x0, %eax
jne 0x7a7d
cmpl $0x2, 0x6a75(%rip)      # 0xe3b0
jge 0x795f
movq 0x6694(%rip), %rax      # 0xdfd8
movq (%rax), %rdi
leaq 0x2ee2(%rip), %rsi      # 0xa830
movb $0x0, %al
callq 0x2300
movl $0x1, %edi
callq 0x22a0
cmpl $0x2, 0x6a4a(%rip)      # 0xe3b0
jle 0x79b6
movl $0x2, -0x18(%rbp)
movl -0x18(%rbp), %eax
cmpl 0x6a38(%rip), %eax      # 0xe3b0
jge 0x79ac
movq 0x6657(%rip), %rax      # 0xdfd8
movq (%rax), %rdi
movslq -0x18(%rbp), %rcx
leaq 0x6a31(%rip), %rax      # 0xe3c0
movq (%rax,%rcx,8), %rdx
leaq 0x2ea9(%rip), %rsi      # 0xa843
movb $0x0, %al
callq 0x2300
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x796f
movl $0x1, %edi
callq 0x22a0
jmp 0x79b8
movq 0x6a01(%rip), %rdi      # 0xe3c0
leaq 0x2e98(%rip), %rsi      # 0xa85e
callq 0x22f0
cmpl $0x0, %eax
je 0x7a11
movq 0x69e9(%rip), %rdi      # 0xe3c0
leaq 0x2e7d(%rip), %rsi      # 0xa85b
callq 0x22f0
cmpl $0x0, %eax
je 0x7a11
movq 0x65e9(%rip), %rax      # 0xdfd8
movq (%rax), %rdi
movq 0x69c7(%rip), %rdx      # 0xe3c0
leaq 0x2e60(%rip), %rsi      # 0xa860
movb $0x0, %al
callq 0x2300
movl $0x1, %edi
callq 0x22a0
movq -0x428(%rbp), %rdi
movslq -0x42c(%rbp), %rsi
movq 0x699a(%rip), %rcx      # 0xe3c0
movq 0x699b(%rip), %r8       # 0xe3c8
leaq 0x2e6a(%rip), %rdx      # 0xa89e
movb $0x0, %al
callq 0x2320
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
jle 0x7a4f
movl -0x1c(%rbp), %eax
cmpl -0x42c(%rbp), %eax
jl 0x7a78
movq 0x6582(%rip), %rax      # 0xdfd8
movq (%rax), %rdi
movq 0x6968(%rip), %rdx      # 0xe3c8
leaq 0x2e47(%rip), %rsi      # 0xa8ae
movb $0x0, %al
callq 0x2300
movl $0x1, %edi
callq 0x22a0
jmp 0x81da
movq 0x6924(%rip), %rdi      # 0xe3a8
leaq 0x2e3a(%rip), %rsi      # 0xa8c5
callq 0x2250
cmpl $0x0, %eax
jne 0x7bca
leaq 0x35e3(%rip), %rax      # 0xb083
movq %rax, -0x438(%rbp)
movl $0x0, -0x43c(%rbp)
movl $0x0, -0x440(%rbp)
cmpl $0x4, 0x68ee(%rip)      # 0xe3b0
jle 0x7b12
movl $0x4, -0x18(%rbp)
movl -0x18(%rbp), %eax
cmpl 0x68dc(%rip), %eax      # 0xe3b0
jge 0x7b08
movq 0x64fb(%rip), %rax      # 0xdfd8
movq (%rax), %rdi
movslq -0x18(%rbp), %rcx
leaq 0x68d5(%rip), %rax      # 0xe3c0
movq (%rax,%rcx,8), %rdx
leaq 0x2d4d(%rip), %rsi      # 0xa843
movb $0x0, %al
callq 0x2300
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x7acb
movl $0x1, %edi
callq 0x22a0
cmpl $0x0, 0x6897(%rip)      # 0xe3b0
jle 0x7b29
movq 0x689e(%rip), %rax      # 0xe3c0
movq %rax, -0x438(%rbp)
cmpl $0x1, 0x6880(%rip)      # 0xe3b0
jle 0x7b44
movq 0x688f(%rip), %rdi      # 0xe3c8
callq 0x2310
movl %eax, -0x43c(%rbp)
cmpl $0x2, 0x6865(%rip)      # 0xe3b0
jle 0x7b5f
movq 0x687c(%rip), %rdi      # 0xe3d0
callq 0x2310
movl %eax, -0x440(%rbp)
movq -0x428(%rbp), %rdi
movslq -0x42c(%rbp), %rsi
movq -0x438(%rbp), %rcx
movl -0x43c(%rbp), %r8d
movl -0x440(%rbp), %r9d
leaq 0x2d41(%rip), %rdx      # 0xa8ca
movb $0x0, %al
callq 0x2320
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
jle 0x7ba6
movl -0x1c(%rbp), %eax
cmpl -0x42c(%rbp), %eax
jge 0x7ba6
jmp 0x7bc5
leaq 0x2d2d(%rip), %rdi      # 0xa8da
leaq 0x2d3b(%rip), %rsi      # 0xa8ef
movl $0x1e4, %edx            # imm = 0x1E4
leaq 0x2d45(%rip), %rcx      # 0xa905
callq 0x2150
jmp 0x81d8
movq 0x67d7(%rip), %rdi      # 0xe3a8
leaq 0x2d44(%rip), %rsi      # 0xa91c
callq 0x2250
cmpl $0x0, %eax
jne 0x7dcc
cmpl $0x3, 0x67c3(%rip)      # 0xe3b0
jge 0x7c11
movq 0x63e2(%rip), %rax      # 0xdfd8
movq (%rax), %rdi
leaq 0x2c30(%rip), %rsi      # 0xa830
movb $0x0, %al
callq 0x2300
movl $0x1, %edi
callq 0x22a0
cmpl $0x4, 0x6798(%rip)      # 0xe3b0
jle 0x7c68
movl $0x4, -0x18(%rbp)
movl -0x18(%rbp), %eax
cmpl 0x6786(%rip), %eax      # 0xe3b0
jge 0x7c5e
movq 0x63a5(%rip), %rax      # 0xdfd8
movq (%rax), %rdi
movslq -0x18(%rbp), %rcx
leaq 0x677f(%rip), %rax      # 0xe3c0
movq (%rax,%rcx,8), %rdx
leaq 0x2bf7(%rip), %rsi      # 0xa843
movb $0x0, %al
callq 0x2300
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x7c21
movl $0x1, %edi
callq 0x22a0
jmp 0x7c6a
movq 0x6757(%rip), %rdi      # 0xe3c8
leaq 0x2be6(%rip), %rsi      # 0xa85e
callq 0x22f0
cmpl $0x0, %eax
je 0x7cc3
movq 0x673f(%rip), %rdi      # 0xe3c8
leaq 0x2bcb(%rip), %rsi      # 0xa85b
callq 0x22f0
cmpl $0x0, %eax
je 0x7cc3
movq 0x6337(%rip), %rax      # 0xdfd8
movq (%rax), %rdi
movq 0x671d(%rip), %rdx      # 0xe3c8
leaq 0x2c6e(%rip), %rsi      # 0xa920
movb $0x0, %al
callq 0x2300
movl $0x1, %edi
callq 0x22a0
cmpl $0x4, 0x66e6(%rip)      # 0xe3b0
jne 0x7d08
movq 0x6705(%rip), %rdi      # 0xe3d8
callq 0x8230
cmpl $0x0, %eax
jne 0x7d06
movq 0x62f4(%rip), %rax      # 0xdfd8
movq (%rax), %rdi
movq 0x66ea(%rip), %rdx      # 0xe3d8
leaq 0x2c68(%rip), %rsi      # 0xa95d
movb $0x0, %al
callq 0x2300
movl $0x1, %edi
callq 0x22a0
jmp 0x7d08
cmpl $0x4, 0x66a1(%rip)      # 0xe3b0
jne 0x7d52
movq -0x428(%rbp), %rdi
movslq -0x42c(%rbp), %rsi
movq 0x669a(%rip), %rcx      # 0xe3c0
movq 0x669b(%rip), %r8       # 0xe3c8
movq 0x669c(%rip), %r9       # 0xe3d0
movq 0x669d(%rip), %rax      # 0xe3d8
leaq 0x2c2e(%rip), %rdx      # 0xa970
movq %rax, (%rsp)
movb $0x0, %al
callq 0x2320
movl %eax, -0x1c(%rbp)
jmp 0x7d86
movq -0x428(%rbp), %rdi
movslq -0x42c(%rbp), %rsi
movq 0x6659(%rip), %rcx      # 0xe3c0
movq 0x665a(%rip), %r8       # 0xe3c8
movq 0x665b(%rip), %r9       # 0xe3d0
leaq 0x2c05(%rip), %rdx      # 0xa981
movb $0x0, %al
callq 0x2320
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
jle 0x7d97
movl -0x1c(%rbp), %eax
cmpl -0x42c(%rbp), %eax
jl 0x7dc7
movq 0x623a(%rip), %rax      # 0xdfd8
movq (%rax), %rdi
movq 0x6618(%rip), %rdx      # 0xe3c0
movq 0x6621(%rip), %rcx      # 0xe3d0
leaq 0x2bd9(%rip), %rsi      # 0xa98f
movb $0x0, %al
callq 0x2300
movl $0x1, %edi
callq 0x22a0
jmp 0x81d6
movq 0x65d5(%rip), %rdi      # 0xe3a8
leaq 0x2bd5(%rip), %rsi      # 0xa9af
callq 0x2250
cmpl $0x0, %eax
jne 0x7f31
cmpl $0x2, 0x65c1(%rip)      # 0xe3b0
jge 0x7e13
movq 0x61e0(%rip), %rax      # 0xdfd8
movq (%rax), %rdi
leaq 0x2a2e(%rip), %rsi      # 0xa830
movb $0x0, %al
callq 0x2300
movl $0x1, %edi
callq 0x22a0
cmpl $0x2, 0x6596(%rip)      # 0xe3b0
jle 0x7e6a
movl $0x2, -0x18(%rbp)
movl -0x18(%rbp), %eax
cmpl 0x6584(%rip), %eax      # 0xe3b0
jge 0x7e60
movq 0x61a3(%rip), %rax      # 0xdfd8
movq (%rax), %rdi
movslq -0x18(%rbp), %rcx
leaq 0x657d(%rip), %rax      # 0xe3c0
movq (%rax,%rcx,8), %rdx
leaq 0x29f5(%rip), %rsi      # 0xa843
movb $0x0, %al
callq 0x2300
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x7e23
movl $0x1, %edi
callq 0x22a0
jmp 0x7e6c
movq 0x654d(%rip), %rdi      # 0xe3c0
leaq 0x29e4(%rip), %rsi      # 0xa85e
callq 0x2250
cmpl $0x0, %eax
je 0x7ec5
movq 0x6535(%rip), %rdi      # 0xe3c0
leaq 0x29c9(%rip), %rsi      # 0xa85b
callq 0x2250
cmpl $0x0, %eax
je 0x7ec5
movq 0x6135(%rip), %rax      # 0xdfd8
movq (%rax), %rdi
movq 0x6513(%rip), %rdx      # 0xe3c0
leaq 0x29ac(%rip), %rsi      # 0xa860
movb $0x0, %al
callq 0x2300
movl $0x1, %edi
callq 0x22a0
movq -0x428(%rbp), %rdi
movslq -0x42c(%rbp), %rsi
movq 0x64e6(%rip), %rcx      # 0xe3c0
movq 0x64e7(%rip), %r8       # 0xe3c8
leaq 0x2ace(%rip), %rdx      # 0xa9b6
movb $0x0, %al
callq 0x2320
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
jle 0x7f03
movl -0x1c(%rbp), %eax
cmpl -0x42c(%rbp), %eax
jl 0x7f2c
movq 0x60ce(%rip), %rax      # 0xdfd8
movq (%rax), %rdi
movq 0x64b4(%rip), %rdx      # 0xe3c8
leaq 0x2993(%rip), %rsi      # 0xa8ae
movb $0x0, %al
callq 0x2300
movl $0x1, %edi
callq 0x22a0
jmp 0x81d4
movq 0x6470(%rip), %rdi      # 0xe3a8
leaq 0x2a8a(%rip), %rsi      # 0xa9c9
callq 0x2250
cmpl $0x0, %eax
jne 0x8036
cmpl $0x1, 0x645c(%rip)      # 0xe3b0
jge 0x7f78
movq 0x607b(%rip), %rax      # 0xdfd8
movq (%rax), %rdi
leaq 0x28c9(%rip), %rsi      # 0xa830
movb $0x0, %al
callq 0x2300
movl $0x1, %edi
callq 0x22a0
cmpl $0x1, 0x6431(%rip)      # 0xe3b0
jle 0x7fcf
movl $0x1, -0x18(%rbp)
movl -0x18(%rbp), %eax
cmpl 0x641f(%rip), %eax      # 0xe3b0
jge 0x7fc5
movq 0x603e(%rip), %rax      # 0xdfd8
movq (%rax), %rdi
movslq -0x18(%rbp), %rcx
leaq 0x6418(%rip), %rax      # 0xe3c0
movq (%rax,%rcx,8), %rdx
leaq 0x2890(%rip), %rsi      # 0xa843
movb $0x0, %al
callq 0x2300
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x7f88
movl $0x1, %edi
callq 0x22a0
jmp 0x7fd1
movq -0x428(%rbp), %rdi
movslq -0x42c(%rbp), %rsi
movq 0x63da(%rip), %rcx      # 0xe3c0
leaq 0x29e1(%rip), %rdx      # 0xa9ce
movb $0x0, %al
callq 0x2320
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
jle 0x8008
movl -0x1c(%rbp), %eax
cmpl -0x42c(%rbp), %eax
jl 0x8031
movq 0x5fc9(%rip), %rax      # 0xdfd8
movq (%rax), %rdi
movq 0x63a7(%rip), %rdx      # 0xe3c0
leaq 0x29b8(%rip), %rsi      # 0xa9d8
movb $0x0, %al
callq 0x2300
movl $0x1, %edi
callq 0x22a0
jmp 0x81d2
movq 0x636b(%rip), %rdi      # 0xe3a8
leaq 0x29ad(%rip), %rsi      # 0xa9f1
callq 0x2250
cmpl $0x0, %eax
jne 0x81a7
leaq 0x302a(%rip), %rax      # 0xb083
movq %rax, -0x448(%rbp)
cmpl $0x1, 0x6349(%rip)      # 0xe3b0
jge 0x808b
movq 0x5f68(%rip), %rax      # 0xdfd8
movq (%rax), %rdi
leaq 0x27b6(%rip), %rsi      # 0xa830
movb $0x0, %al
callq 0x2300
movl $0x1, %edi
callq 0x22a0
cmpl $0x2, 0x631e(%rip)      # 0xe3b0
jle 0x80e2
movl $0x2, -0x18(%rbp)
movl -0x18(%rbp), %eax
cmpl 0x630c(%rip), %eax      # 0xe3b0
jge 0x80d8
movq 0x5f2b(%rip), %rax      # 0xdfd8
movq (%rax), %rdi
movslq -0x18(%rbp), %rcx
leaq 0x6305(%rip), %rax      # 0xe3c0
movq (%rax,%rcx,8), %rdx
leaq 0x277d(%rip), %rsi      # 0xa843
movb $0x0, %al
callq 0x2300
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x809b
movl $0x1, %edi
callq 0x22a0
jmp 0x80e4
cmpl $0x1, 0x62c5(%rip)      # 0xe3b0
jle 0x813e
movq 0x62d4(%rip), %rdi      # 0xe3c8
leaq 0x28fb(%rip), %rsi      # 0xa9f6
callq 0x2250
cmpl $0x0, %eax
je 0x812e
movq 0x5ecc(%rip), %rax      # 0xdfd8
movq (%rax), %rdi
movq 0x62b2(%rip), %rdx      # 0xe3c8
leaq 0x28e2(%rip), %rsi      # 0xa9ff
movb $0x0, %al
callq 0x2300
movl $0x1, %edi
callq 0x22a0
movq 0x6293(%rip), %rax      # 0xe3c8
movq %rax, -0x448(%rbp)
jmp 0x813e
movq -0x428(%rbp), %rdi
movslq -0x42c(%rbp), %rsi
movq 0x626d(%rip), %rcx      # 0xe3c0
movq -0x448(%rbp), %r8
leaq 0x28c9(%rip), %rdx      # 0xaa2a
movb $0x0, %al
callq 0x2320
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
jle 0x817c
movl -0x1c(%rbp), %eax
cmpl -0x42c(%rbp), %eax
jl 0x81a5
movq 0x5e55(%rip), %rax      # 0xdfd8
movq (%rax), %rdi
movq 0x6233(%rip), %rdx      # 0xe3c0
leaq 0x2844(%rip), %rsi      # 0xa9d8
movb $0x0, %al
callq 0x2300
movl $0x1, %edi
callq 0x22a0
jmp 0x81d0
movq 0x5e2a(%rip), %rax      # 0xdfd8
movq (%rax), %rdi
movq 0x61f0(%rip), %rdx      # 0xe3a8
leaq 0x287a(%rip), %rsi      # 0xaa39
movb $0x0, %al
callq 0x2300
movl $0x1, %edi
callq 0x22a0
jmp 0x81d2
jmp 0x81d4
jmp 0x81d6
jmp 0x81d8
jmp 0x81da
cmpl $0x0, 0x61bf(%rip)      # 0xe3a0
je 0x81f7
movq -0x428(%rbp), %rdi
movl -0x1c(%rbp), %esi
callq 0x82a0
movl %eax, -0x20(%rbp)
jmp 0x8209
movq -0x428(%rbp), %rdi
movl -0x1c(%rbp), %esi
callq 0x8c10
movl %eax, -0x20(%rbp)
jmp 0x820b
xorl %eax, %eax
testb $0x1, %al
jne 0x8213
jmp 0x8215
jmp 0x820b
movl -0x20(%rbp), %eax
addq $0x470, %rsp            # imm = 0x470
popq %rbp
retq
nopw %cs:(%rax,%rax)