// File: /workspace/github_c_makefile_star2_O1/Tarsnap[P]spiped/spiped/main.c
// Function: main
int
main(int argc, char * argv[])
{
	/* Command-line parameters. */
	const char * opt_b = NULL;
	int opt_d = 0;
	int opt_D = 0;
	int opt_e = 0;
	int opt_f = 0;
	int opt_g = 0;
	int opt_F = 0;
	int opt_j = 0;
	const char * opt_k = NULL;
	int opt_n_set = 0;
	size_t opt_n = 0;
	int opt_o_set = 0;
	double opt_o = 0.0;
	const char * opt_p = NULL;
	int opt_r_set = 0;
	double opt_r = 0.0;
	int opt_R = 0;
	int opt_syslog = 0;
	const char * opt_s = NULL;
	const char * opt_t = NULL;
	const char * opt_u = NULL;

	/* Working variables. */
	struct sock_addr * sa_s;
	struct sock_addr * sa_b = NULL;
	struct sock_addr ** sas_t;
	struct proto_secret * K;
	const char * ch;
	char * pidfilename = NULL;
	int s;
	void * dispatch_cookie = NULL;
	int conndone = 0;

	WARNP_INIT;

	/* Parse the command line. */
	while ((ch = GETOPT(argc, argv)) != NULL) {
		GETOPT_SWITCH(ch) {
		GETOPT_OPTARG("-b"):
			if (opt_b)
				usage();
			opt_b = optarg;
			break;
		GETOPT_OPT("-d"):
			if (opt_d || opt_e)
				usage();
			opt_d = 1;
			break;
		GETOPT_OPT("-D"):
			if (opt_D)
				usage();
			opt_D = 1;
			break;
		GETOPT_OPT("-e"):
			if (opt_d || opt_e)
				usage();
			opt_e = 1;
			break;
		GETOPT_OPT("-f"):
			if (opt_f)
				usage();
			opt_f = 1;
			break;
		GETOPT_OPT("-F"):
			if (opt_F)
				usage();
			opt_F = 1;
			break;
		GETOPT_OPT("-g"):
			if (opt_g)
				usage();
			opt_g = 1;
			break;
		GETOPT_OPT("-j"):
			if (opt_j)
				usage();
			opt_j = 1;
			break;
		GETOPT_OPTARG("-k"):
			if (opt_k)
				usage();
			opt_k = optarg;
			break;
		GETOPT_OPTARG("-n"):
			if (opt_n_set)
				usage();
			opt_n_set = 1;
			if (PARSENUM(&opt_n, optarg))
				OPT_EPARSE(ch, optarg);
			if (opt_n == 0)
				opt_n = SIZE_MAX;
			break;
		GETOPT_OPTARG("-o"):
			if (opt_o_set)
				usage();
			opt_o_set = 1;
			if (PARSENUM(&opt_o, optarg, 0, INFINITY))
				OPT_EPARSE(ch, optarg);
			break;
		GETOPT_OPTARG("-p"):
			if (opt_p)
				usage();
			opt_p = optarg;
			break;
		GETOPT_OPTARG("-r"):
			if (opt_r_set)
				usage();
			opt_r_set = 1;
			if (PARSENUM(&opt_r, optarg, 0, INFINITY))
				OPT_EPARSE(ch, optarg);
			break;
		GETOPT_OPT("-R"):
			if (opt_R)
				usage();
			opt_R = 1;
			break;
		GETOPT_OPTARG("-s"):
			if (opt_s)
				usage();
			opt_s = optarg;
			break;
		GETOPT_OPT("--syslog"):
			if (opt_syslog)
				usage();
			opt_syslog = 1;
			break;
		GETOPT_OPTARG("-t"):
			if (opt_t)
				usage();
			opt_t = optarg;
			break;
		GETOPT_OPTARG("-u"):
			if (opt_u != NULL)
				usage();
			opt_u = optarg;
			break;
		GETOPT_OPT("-v"):
			fprintf(stderr, "spiped @VERSION@\n");
			exit(0);
		GETOPT_MISSING_ARG:
			warn0("Missing argument to %s", ch);
			usage();
		GETOPT_DEFAULT:
			warn0("illegal option -- %s", ch);
			usage();
		}
	}
	argc -= optind;
	argv += optind;

	/* We should have processed all the arguments. */
	if (argc != 0)
		usage();
	(void)argv; /* argv is not used beyond this point. */

	/* Set defaults. */
	if (!opt_n_set)
		opt_n = 100;
	if (opt_o == 0.0)
		opt_o = 5.0;
	if (opt_r == 0.0)
		opt_r = 60.0;

	/* Sanity-check options. */
	if (!opt_d && !opt_e)
		usage();
	if (opt_f && opt_g)
		usage();
	if (opt_k == NULL)
		usage();
	if (!(opt_o > 0.0))
		usage();
	if ((opt_r != 60.0) && opt_R)
		usage();
	if ((opt_s == NULL) || sock_addr_validate(opt_s))
		usage();
	if ((opt_t == NULL) || sock_addr_validate(opt_t))
		usage();
	if (opt_b && sock_addr_validate(opt_b))
		usage();

	/*
	 * A limit of SIZE_MAX connections is equivalent to any larger limit;
	 * we'll be unable to allocate memory for socket bookkeeping before we
	 * reach either.
	 */
	if (opt_n > SIZE_MAX)
		opt_n = SIZE_MAX;

	/* Figure out where our pid should be written. */
	if (asprintf(&pidfilename, (opt_p != NULL) ? "%s" : "%s.pid",
	    (opt_p != NULL) ? opt_p : opt_s) == -1) {
		warnp("asprintf");
		goto err0;
	}

	/* Check whether we are running as init (e.g., inside a container). */
	if (getpid() == 1) {
		/* https://github.com/docker/docker/issues/7086 */
		warn0("WARNING: Applying workaround for Docker signal-handling bug");

		/* Bind an explicit signal handler for SIGINT. */
		if (signal(SIGINT, diediedie_handler) == SIG_ERR) {
			warnp("Failed to bind SIGINT signal handler");
		}
	}

	/* Daemonize early if we're going to wait for DNS to be ready. */
	if (opt_D && !opt_F) {
		if (daemonize(pidfilename)) {
			warnp("Failed to daemonize");
			goto err1;
		}

		/* Send to syslog (if applicable). */
		if (opt_syslog)
			warnp_syslog(1);
	}

	/* Resolve source address. */
	while ((sa_s = sock_resolve_one(opt_s, 0)) == NULL) {
		if (!opt_D) {
			warnp("Error resolving socket address: %s", opt_s);
			goto err1;
		}
		sleep(1);
	}

	/* Resolve target address. */
	while ((sas_t = sock_resolve(opt_t)) == NULL) {
		if (!opt_D) {
			warnp("Error resolving socket address: %s", opt_t);
			goto err2;
		}
		sleep(1);
	}
	if (sas_t[0] == NULL) {
		warn0("No addresses found for %s", opt_t);
		goto err3;
	}

	/* Resolve bind address (if applicable). */
	if (opt_b) {
		while ((sa_b = sock_resolve_one(opt_b, 1)) == NULL) {
			if (!opt_D) {
				warnp("Error resolving socket address: %s",
				    opt_b);
				goto err3;
			}
			sleep(1);
		}
	}

	/* Load the keying data. */
	if ((K = proto_crypt_secret(opt_k)) == NULL) {
		warnp("Error reading shared secret");
		goto err4;
	}

	/* Create and bind a socket, and mark it as listening. */
	if ((s = sock_listener(sa_s)) == -1)
		goto err5;

	/* Daemonize and write pid. */
	if (!opt_D && !opt_F) {
		if (daemonize(pidfilename)) {
			warnp("Failed to daemonize");
			goto err6;
		}
		/* Send to syslog (if applicable). */
		if (opt_syslog)
			warnp_syslog(1);
	}

	/* Drop privileges (if applicable). */
	if (opt_u && setuidgid(opt_u, SETUIDGID_SGROUP_LEAVE_WARN)) {
		warnp("Failed to drop privileges");
		goto err7;
	}

	/* Start accepting connections. */
	if ((dispatch_cookie = dispatch_accept(s, opt_t, opt_R ? 0.0 : opt_r,
	    sas_t, sa_b, opt_d, opt_f, opt_g, opt_j, K, opt_n, opt_o,
	    &conndone)) == NULL) {
		warnp("Failed to initialize connection acceptor");
		goto err7;
	}

	/* dispatch is now maintaining sas_t and s. */
	sas_t = NULL;
	s = -1;

	/* Register a handler for SIGTERM. */
	if (graceful_shutdown_initialize(&callback_graceful_shutdown,
	    dispatch_cookie)) {
		warn0("Failed to start graceful_shutdown timer");
		goto err7;
	}

	/*
	 * Loop until an error occurs, or a connection closes if the
	 * command-line argument -1 was given.
	 */
	if (events_spin(&conndone)) {
		warnp("Error running event loop");
		goto err7;
	}

	/* Stop accepting connections and shut down the dispatcher. */
	dispatch_shutdown(dispatch_cookie);

	/* Free the protocol secret structure. */
	proto_crypt_secret_free(K);

	/* Free arrays of resolved addresses. */
	sock_addr_free(sa_s);
	sock_addr_free(sa_b);

	/* Free pid filename. */
	free(pidfilename);

	/* Success! */
	exit(0);

err7:
	dispatch_shutdown(dispatch_cookie);
err6:
	if ((s != -1) && close(s))
		warnp("close");
err5:
	proto_crypt_secret_free(K);
err4:
	sock_addr_free(sa_b);
err3:
	sock_addr_freelist(sas_t);
err2:
	sock_addr_free(sa_s);
err1:
	free(pidfilename);
err0:
	/* Failure! */
	exit(1);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xf8, %rsp
movq %rsi, %r12
movl %edi, %ebp
movq $0x0, 0x78(%rsp)
movl $0x0, 0x94(%rsp)
movq (%rsi), %rdi
testq %rdi, %rdi
je 0x3c53
callq 0x8c98
movl %ebp, %edi
movq %r12, %rsi
callq 0x6b9c
testq %rax, %rax
jne 0x3e59
movb $0x1, %bl
xorpd %xmm0, %xmm0
movapd %xmm0, 0xe0(%rsp)
movl $0x64, %eax
movq %rax, 0x60(%rsp)
movq $0x0, 0x40(%rsp)
xorl %eax, %eax
movl $0x0, 0x24(%rsp)
xorl %r14d, %r14d
xorl %r12d, %r12d
movq $0x0, 0x98(%rsp)
movq $0x0, 0x18(%rsp)
movq $0x0, 0x48(%rsp)
movapd %xmm0, 0xd0(%rsp)
xorl %r13d, %r13d
movq $0x0, 0x38(%rsp)
xorl %r15d, %r15d
movq $0x0, 0x70(%rsp)
movl $0x0, 0x14(%rsp)
movq $0x0, 0x30(%rsp)
leaq 0x14909(%rip), %rcx     # 0x185f8
cmpl %ebp, (%rcx)
jne 0x4798
cmpl $0x0, 0x14(%rsp)
setne %cl
orb %al, %cl
testb $0x1, %cl
je 0x4798
cmpl $0x0, 0x24(%rsp)
setne %al
testl %r14d, %r14d
setne %cl
andb %al, %cl
cmpb $0x1, %cl
je 0x4798
cmpq $0x0, 0x18(%rsp)
je 0x4798
xorpd %xmm3, %xmm3
movapd 0xe0(%rsp), %xmm1
movapd %xmm1, %xmm2
cmpeqsd %xmm3, %xmm2
movsd 0xd2bb(%rip), %xmm0     # 0x11008
andpd %xmm2, %xmm0
andnpd %xmm1, %xmm2
orpd %xmm0, %xmm2
xorpd %xmm0, %xmm0
ucomisd %xmm0, %xmm2
jbe 0x4798
movapd 0xd0(%rsp), %xmm1
cmpeqsd %xmm1, %xmm3
movsd 0xd293(%rip), %xmm0     # 0x11010
andpd %xmm3, %xmm0
andnpd %xmm1, %xmm3
orpd %xmm0, %xmm3
ucomisd 0xd27f(%rip), %xmm3     # 0x11010
setp %al
setne %cl
orb %al, %cl
andb %r13b, %cl
cmpb $0x1, %cl
je 0x4798
movapd %xmm3, 0xb0(%rsp)
movapd %xmm2, 0xa0(%rsp)
movq 0x38(%rsp), %rbp
testq %rbp, %rbp
je 0x4798
movq %rbp, %rdi
callq 0x8c32
testl %eax, %eax
jne 0x4798
testq %r15, %r15
je 0x4798
movq %r15, %rdi
callq 0x8c32
testl %eax, %eax
jne 0x4798
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x3e05
callq 0x8c32
testl %eax, %eax
jne 0x4798
movq 0x48(%rsp), %rdx
testq %rdx, %rdx
leaq 0xd2d4(%rip), %rax      # 0x110e8
leaq 0xd2ca(%rip), %rsi      # 0x110e5
cmoveq %rax, %rsi
cmoveq %rbp, %rdx
leaq 0x78(%rsp), %rdi
xorl %eax, %eax
callq 0x68a8
cmpl $-0x1, %eax
jne 0x48fe
callq 0x3480
cmpl $0x0, (%rax)
jne 0x4954
leaq 0xd2a2(%rip), %rdi      # 0x110ef
xorl %eax, %eax
callq 0x8e37
jmp 0x47b8
movq %rax, %r14
movq $0x0, 0x30(%rsp)
leaq 0x24974(%rip), %r15     # 0x287e0
leaq 0xd1da(%rip), %r13      # 0x1104d
leaq 0x2495e(%rip), %rbx     # 0x287d8
xorpd %xmm0, %xmm0
movapd %xmm0, 0xd0(%rsp)
movapd %xmm0, 0xe0(%rsp)
movl $0x0, 0x14(%rsp)
movl $0x0, %eax
movq %rax, 0x70(%rsp)
movl $0x0, %eax
movq %rax, 0x28(%rsp)
movl $0x0, %eax
movq %rax, 0x38(%rsp)
movl $0x0, 0xb0(%rsp)
movl $0x0, 0x58(%rsp)
movl $0x0, 0x8c(%rsp)
movl $0x0, %eax
movq %rax, 0x48(%rsp)
movl $0x0, 0x88(%rsp)
movq $0x0, 0x60(%rsp)
movl $0x0, 0x54(%rsp)
movq $0x0, 0x18(%rsp)
movq $0x0, 0x98(%rsp)
movl $0x0, 0x5c(%rsp)
movq $0x0, 0x68(%rsp)
movl $0x0, 0x24(%rsp)
movl $0x0, 0xa0(%rsp)
movq $0x0, 0x40(%rsp)
movq $0x6a, 0x8(%rsp)
movq 0x8(%rsp), %rax
decq %rax
movq %rax, 0xc8(%rsp)
movl $0x0, 0x90(%rsp)
cmpl $0x0, (%r15)
je 0x3f75
movq %r14, %rdi
callq 0x6ec7
addq 0x8(%rsp), %rax
jmp 0x3f89
movq 0xc8(%rsp), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0xc8(%rsp)
cmpq $0xa0, %rax
jle 0x3fed
cmpq $0xbd, %rax
jle 0x408d
cmpq $0xcc, %rax
jg 0x40dd
cmpq $0xbe, %rax
je 0x4314
cmpq $0xc3, %rax
je 0x4217
cmpq $0xc8, %rax
jne 0x4343
cmpl $0x0, (%r15)
jne 0x446d
movl $0xc8, %esi
subq 0x8(%rsp), %rsi
leaq 0xd0bc(%rip), %rdi      # 0x110a4
jmp 0x42e8
cmpq $0x83, %rax
jg 0x403d
cmpq $0x74, %rax
jle 0x4113
cmpq $0x75, %rax
je 0x4273
cmpq $0x7a, %rax
je 0x41b7
cmpq $0x7f, %rax
jne 0x4343
cmpl $0x0, (%r15)
jne 0x4605
movl $0x7f, %esi
subq 0x8(%rsp), %rsi
leaq 0xd021(%rip), %rdi      # 0x11059
jmp 0x432f
cmpq $0x8d, %rax
jle 0x4147
cmpq $0x8e, %rax
je 0x4293
cmpq $0x93, %rax
je 0x41d7
cmpq $0x98, %rax
jne 0x4343
cmpl $0x0, (%r15)
jne 0x4661
movl $0x98, %esi
subq 0x8(%rsp), %rsi
leaq 0xcfe0(%rip), %rdi      # 0x11068
jmp 0x42e8
cmpq $0xac, %rax
jle 0x417f
cmpq $0xad, %rax
je 0x42cd
cmpq $0xb4, %rax
je 0x41f7
cmpq $0xb9, %rax
jne 0x4343
cmpl $0x0, (%r15)
jne 0x463f
movl $0xb9, %esi
subq 0x8(%rsp), %rsi
leaq 0xcfbd(%rip), %rdi      # 0x11095
jmp 0x42e8
cmpq $0xcd, %rax
je 0x42f7
cmpq $0xd0, %rax
jne 0x433b
cmpl $0x0, (%r15)
jne 0x474c
movl $0xd0, %edi
subq 0x8(%rsp), %rdi
callq 0x709b
jmp 0x3f60
cmpq $0x6b, %rax
je 0x4237
cmpq $0x70, %rax
jne 0x4343
cmpl $0x0, (%r15)
jne 0x45c5
movl $0x70, %esi
subq 0x8(%rsp), %rsi
leaq 0xcf0e(%rip), %rdi      # 0x11050
jmp 0x432f
cmpq $0x84, %rax
je 0x4253
cmpq $0x89, %rax
jne 0x4343
cmpl $0x0, (%r15)
jne 0x448f
movl $0x89, %esi
subq 0x8(%rsp), %rsi
leaq 0xcee5(%rip), %rdi      # 0x1105f
jmp 0x432f
cmpq $0xa1, %rax
je 0x42b0
cmpq $0xa8, %rax
jne 0x4343
cmpl $0x0, (%r15)
jne 0x4386
movl $0xa8, %esi
subq 0x8(%rsp), %rsi
leaq 0xceda(%rip), %rdi      # 0x1108c
jmp 0x42e8
cmpl $0x0, (%r15)
jne 0x4519
movl $0x7a, %esi
subq 0x8(%rsp), %rsi
leaq 0xce84(%rip), %rdi      # 0x11056
jmp 0x432f
cmpl $0x0, (%r15)
jne 0x461d
movl $0x93, %esi
subq 0x8(%rsp), %rsi
leaq 0xce73(%rip), %rdi      # 0x11065
jmp 0x42e8
cmpl $0x0, (%r15)
jne 0x4455
movl $0xb4, %esi
subq 0x8(%rsp), %rsi
leaq 0xce80(%rip), %rdi      # 0x11092
jmp 0x432f
cmpl $0x0, (%r15)
jne 0x4433
movl $0xc3, %esi
subq 0x8(%rsp), %rsi
leaq 0xce6f(%rip), %rdi      # 0x110a1
jmp 0x42e8
cmpl $0x0, (%r15)
jne 0x45e3
movl $0x6b, %esi
subq 0x8(%rsp), %rsi
movq %r13, %rdi
jmp 0x42e8
cmpl $0x0, (%r15)
jne 0x44a9
movl $0x84, %esi
subq 0x8(%rsp), %rsi
leaq 0xcdee(%rip), %rdi      # 0x1105c
jmp 0x432f
cmpl $0x0, (%r15)
jne 0x44df
movl $0x75, %esi
subq 0x8(%rsp), %rsi
leaq 0xcdc5(%rip), %rdi      # 0x11053
jmp 0x432f
cmpl $0x0, (%r15)
jne 0x44f9
movl $0x8e, %esi
subq 0x8(%rsp), %rsi
leaq 0xcdb4(%rip), %rdi      # 0x11062
jmp 0x432f
cmpl $0x0, (%r15)
jne 0x43a8
movl $0xa1, %esi
subq 0x8(%rsp), %rsi
leaq 0xcdbe(%rip), %rdi      # 0x11089
jmp 0x42e8
cmpl $0x0, (%r15)
jne 0x453a
movl $0xad, %esi
subq 0x8(%rsp), %rsi
leaq 0xcda7(%rip), %rdi      # 0x1108f
movl $0x1, %edx
callq 0x6f84
jmp 0x3f60
cmpl $0x0, (%r15)
jne 0x4755
movl $0xcd, %esi
subq 0x8(%rsp), %rsi
leaq 0xcd95(%rip), %rdi      # 0x110a7
jmp 0x432f
cmpl $0x0, (%r15)
jne 0x44c1
movl $0xbe, %esi
subq 0x8(%rsp), %rsi
leaq 0xcd69(%rip), %rdi      # 0x11098
xorl %edx, %edx
callq 0x6f84
jmp 0x3f60
cmpq $0xd3, %rax
je 0x437a
cmpl $0x0, (%r15)
jne 0x477c
cmpl $0x0, 0x90(%rsp)
jne 0x3f60
movl $0xd3, %edi
subq 0x8(%rsp), %rdi
callq 0x70db
movl $0x1, 0x90(%rsp)
jmp 0x3f60
movl $0x1, (%r15)
jmp 0x46e7
movq (%rbx), %rax
testq %rax, %rax
je 0x47e7
cmpq $0x0, 0x48(%rsp)
movq %rax, 0x48(%rsp)
je 0x46e7
jmp 0x4798
movq (%rbx), %rbx
testq %rbx, %rbx
je 0x48a1
cmpl $0x0, 0x88(%rsp)
jne 0x4798
callq 0x3480
movq %rax, %r13
movl $0x0, (%rax)
movq %rbx, %rdi
leaq 0x80(%rsp), %rsi
callq 0x3690
movapd %xmm0, 0xe0(%rsp)
movq 0x80(%rsp), %rcx
movl $0x16, %eax
cmpq %rbx, %rcx
je 0x4414
cmpb $0x0, (%rcx)
jne 0x4414
movl $0x22, %eax
xorpd %xmm0, %xmm0
ucomisd 0xe0(%rsp), %xmm0
jbe 0x4418
movl %eax, (%r13)
cmpl $0x0, (%r13)
jne 0x47c2
movl $0x1, 0x88(%rsp)
jmp 0x46d9
movq (%rbx), %rax
testq %rax, %rax
je 0x4806
cmpq $0x0, 0x28(%rsp)
movq %rax, 0x28(%rsp)
je 0x46e7
jmp 0x4798
cmpl $0x0, 0x58(%rsp)
movl $0x1, 0x58(%rsp)
je 0x46e7
jmp 0x4798
movq (%rbx), %rax
testq %rax, %rax
je 0x4825
cmpq $0x0, 0x70(%rsp)
movq %rax, 0x70(%rsp)
je 0x46e7
jmp 0x4798
cmpl $0x0, 0x68(%rsp)
movl $0x1, %eax
movq %rax, 0x68(%rsp)
je 0x46e7
jmp 0x4798
cmpl $0x0, 0x5c(%rsp)
movl $0x1, 0x5c(%rsp)
je 0x46e7
jmp 0x4798
cmpl $0x0, 0xb0(%rsp)
movl $0x1, 0xb0(%rsp)
je 0x46e7
jmp 0x4798
cmpl $0x0, 0x40(%rsp)
movl $0x1, %eax
movq %rax, 0x40(%rsp)
je 0x46e7
jmp 0x4798
cmpl $0x0, 0x98(%rsp)
movl $0x1, %eax
movq %rax, 0x98(%rsp)
je 0x46e7
jmp 0x4798
movl 0xa0(%rsp), %eax
orl 0x14(%rsp), %eax
movl $0x1, 0xa0(%rsp)
je 0x46e7
jmp 0x4798
movq (%rbx), %rbx
testq %rbx, %rbx
je 0x48c0
cmpl $0x0, 0x8c(%rsp)
jne 0x4798
callq 0x3480
movq %rax, %r13
movl $0x0, (%rax)
movq %rbx, %rdi
leaq 0x80(%rsp), %rsi
callq 0x3690
movapd %xmm0, 0xd0(%rsp)
movq 0x80(%rsp), %rcx
movl $0x16, %eax
cmpq %rbx, %rcx
je 0x45a6
cmpb $0x0, (%rcx)
jne 0x45a6
movl $0x22, %eax
xorpd %xmm0, %xmm0
ucomisd 0xd0(%rsp), %xmm0
jbe 0x45aa
movl %eax, (%r13)
cmpl $0x0, (%r13)
jne 0x47c2
movl $0x1, 0x8c(%rsp)
jmp 0x46d9
movl 0xa0(%rsp), %eax
orl %eax, 0x14(%rsp)
movl $0x1, 0x14(%rsp)
je 0x46e7
jmp 0x4798
movq (%rbx), %rax
testq %rax, %rax
je 0x4844
cmpq $0x0, 0x30(%rsp)
movq %rax, 0x30(%rsp)
je 0x46e7
jmp 0x4798
cmpl $0x0, 0x24(%rsp)
movl $0x1, 0x24(%rsp)
je 0x46e7
jmp 0x4798
movq (%rbx), %rax
testq %rax, %rax
je 0x4863
cmpq $0x0, 0x18(%rsp)
movq %rax, 0x18(%rsp)
je 0x46e7
jmp 0x4798
movq (%rbx), %rax
testq %rax, %rax
je 0x4882
cmpq $0x0, 0x38(%rsp)
movq %rax, 0x38(%rsp)
je 0x46e7
jmp 0x4798
movq (%rbx), %rbx
testq %rbx, %rbx
je 0x48df
cmpl $0x0, 0x54(%rsp)
jne 0x4798
callq 0x3480
movq %rax, %r13
movl $0x0, (%rax)
movq %rbx, %rdi
leaq 0x80(%rsp), %rsi
xorl %edx, %edx
callq 0x3040
movq 0x80(%rsp), %rcx
cmpq %rbx, %rcx
je 0x46aa
cmpb $0x0, (%rcx)
je 0x46b2
movl $0x16, (%r13)
cmpl $0x0, (%r13)
jne 0x47c2
cmpq $0x1, %rax
movl $0x0, %ecx
sbbq %rcx, %rcx
orq %rax, %rcx
movq %rcx, 0x60(%rsp)
movl $0x1, 0x54(%rsp)
leaq 0x240f8(%rip), %rbx     # 0x287d8
leaq 0xc966(%rip), %r13      # 0x1104d
movl %ebp, %edi
movq %r12, %rsi
callq 0x6b9c
movq %rax, %r14
testq %rax, %rax
jne 0x3f3c
cmpl $0x0, 0x54(%rsp)
movl $0x64, %eax
movq 0x60(%rsp), %rcx
cmoveq %rax, %rcx
movq %rcx, 0x60(%rsp)
cmpl $0x0, 0xa0(%rsp)
setne %al
cmpl $0x0, 0x58(%rsp)
setne %r13b
cmpl $0x0, 0x5c(%rsp)
setne %r12b
cmpl $0x0, 0xb0(%rsp)
sete %bl
movq 0x68(%rsp), %r14
movq 0x28(%rsp), %r15
jmp 0x3ce8
leaq 0xc969(%rip), %rdi      # 0x110bc
jmp 0x4783
movq 0x13894(%rip), %rax     # 0x17ff0
movq (%rax), %rcx
leaq 0xc944(%rip), %rdi      # 0x110aa
movl $0x11, %esi
movl $0x1, %edx
callq 0x3570
xorl %edi, %edi
callq 0x3140
leaq 0xc950(%rip), %rdi      # 0x110d3
movq %r14, %rsi
xorl %eax, %eax
callq 0x8e37
callq 0x3480
movl $0x0, (%rax)
movq 0x13851(%rip), %rax     # 0x17ff0
movq (%rax), %rcx
leaq 0xcaa1(%rip), %rdi      # 0x1124a
movl $0x124, %esi            # imm = 0x124
movl $0x1, %edx
callq 0x3570
movl $0x1, %edi
callq 0x3140
leaq 0x2400f(%rip), %rax     # 0x287d8
movq (%rax), %rdx
leaq 0xc898(%rip), %rdi      # 0x1106b
movq %r14, %rsi
xorl %eax, %eax
callq 0x8d18
movl $0x0, (%r13)
jmp 0x47b8
leaq 0xc832(%rip), %rdi      # 0x11020
leaq 0xc83a(%rip), %rsi      # 0x1102f
leaq 0xc83a(%rip), %rcx      # 0x11036
movl $0xa8, %edx
callq 0x3150
leaq 0xc813(%rip), %rdi      # 0x11020
leaq 0xc81b(%rip), %rsi      # 0x1102f
leaq 0xc81b(%rip), %rcx      # 0x11036
movl $0xc3, %edx
callq 0x3150
leaq 0xc7f4(%rip), %rdi      # 0x11020
leaq 0xc7fc(%rip), %rsi      # 0x1102f
leaq 0xc7fc(%rip), %rcx      # 0x11036
movl $0xc8, %edx
callq 0x3150
leaq 0xc7d5(%rip), %rdi      # 0x11020
leaq 0xc7dd(%rip), %rsi      # 0x1102f
leaq 0xc7dd(%rip), %rcx      # 0x11036
movl $0x6b, %edx
callq 0x3150
leaq 0xc7b6(%rip), %rdi      # 0x11020
leaq 0xc7be(%rip), %rsi      # 0x1102f
leaq 0xc7be(%rip), %rcx      # 0x11036
movl $0x93, %edx
callq 0x3150
leaq 0xc797(%rip), %rdi      # 0x11020
leaq 0xc79f(%rip), %rsi      # 0x1102f
leaq 0xc79f(%rip), %rcx      # 0x11036
movl $0xb9, %edx
callq 0x3150
leaq 0xc778(%rip), %rdi      # 0x11020
leaq 0xc780(%rip), %rsi      # 0x1102f
leaq 0xc780(%rip), %rcx      # 0x11036
movl $0xa1, %edx
callq 0x3150
leaq 0xc759(%rip), %rdi      # 0x11020
leaq 0xc761(%rip), %rsi      # 0x1102f
leaq 0xc761(%rip), %rcx      # 0x11036
movl $0xad, %edx
callq 0x3150
leaq 0xc73a(%rip), %rdi      # 0x11020
leaq 0xc742(%rip), %rsi      # 0x1102f
leaq 0xc742(%rip), %rcx      # 0x11036
movl $0x98, %edx
callq 0x3150
movb %bl, 0x48(%rsp)
callq 0x3220
cmpl $0x1, %eax
jne 0x4989
leaq 0xc7e5(%rip), %rdi      # 0x110f8
xorl %eax, %eax
callq 0x8e37
callq 0x3480
movq %rax, %rbx
movl $0x0, (%rax)
leaq 0x57c(%rip), %rsi       # 0x4eab
movl $0x2, %edi
callq 0x3050
cmpq $-0x1, %rax
jne 0x4989
cmpl $0x0, (%rbx)
jne 0x4970
leaq 0xc7e9(%rip), %rdi      # 0x11134
xorl %eax, %eax
callq 0x8e37
jmp 0x4984
movq %rax, %rbx
leaq 0xc791(%rip), %rdi      # 0x110ef
xorl %eax, %eax
callq 0x8d18
movl $0x0, (%rbx)
jmp 0x47b8
leaq 0xc7bd(%rip), %rdi      # 0x11134
xorl %eax, %eax
callq 0x8d18
movl $0x0, (%rbx)
movq 0x38(%rsp), %rbp
cmpl $0x0, 0x40(%rsp)
sete %al
orb %r12b, %al
testb $0x1, %al
je 0x49dd
movq %rbp, %rdi
xorl %esi, %esi
callq 0x820f
testq %rax, %rax
movq %r14, 0x68(%rsp)
jne 0x4a3d
cmpl $0x0, 0x40(%rsp)
jne 0x4a1f
callq 0x3480
cmpl $0x0, (%rax)
jne 0x4b2f
leaq 0xc7a1(%rip), %rdi      # 0x1116d
movq 0x38(%rsp), %rsi
xorl %eax, %eax
callq 0x8e37
jmp 0x4e5b
movq 0x78(%rsp), %rdi
callq 0x69ac
testl %eax, %eax
jne 0x49fe
cmpb $0x0, 0x48(%rsp)
jne 0x4998
movl $0x1, %edi
callq 0x8f38
jmp 0x4998
callq 0x3480
cmpl $0x0, (%rax)
jne 0x4ad7
leaq 0xc746(%rip), %rdi      # 0x11159
xorl %eax, %eax
callq 0x8e37
jmp 0x4e5b
movq 0x38(%rsp), %r14
movl $0x1, %edi
callq 0x3320
movq %r14, %rdi
xorl %esi, %esi
callq 0x820f
testq %rax, %rax
je 0x4a24
movq %rax, %rbx
movq %r15, 0x28(%rsp)
movq %r15, %rdi
callq 0x7c70
testq %rax, %rax
jne 0x4a9b
cmpl $0x0, 0x40(%rsp)
jne 0x4a7f
callq 0x3480
cmpl $0x0, (%rax)
jne 0x4b50
leaq 0xc6ff(%rip), %rdi      # 0x1116d
movq 0x28(%rsp), %rsi
xorl %eax, %eax
callq 0x8e37
jmp 0x4e53
movq 0x28(%rsp), %r15
movl $0x1, %edi
callq 0x3320
movq %r15, %rdi
callq 0x7c70
testq %rax, %rax
je 0x4a84
movq %rax, %r14
cmpq $0x0, (%rax)
jne 0x4ac7
leaq 0xc6e5(%rip), %rdi      # 0x11190
movq 0x28(%rsp), %rsi
xorl %eax, %eax
callq 0x8e37
callq 0x3480
movl $0x0, (%rax)
jmp 0x4e4b
cmpq $0x0, 0x30(%rsp)
jne 0x4aea
xorl %r15d, %r15d
jmp 0x4b96
movq %rax, %rbx
leaq 0xc678(%rip), %rdi      # 0x11159
xorl %eax, %eax
callq 0x8d18
jmp 0x4b45
movq 0x30(%rsp), %rdi
movl $0x1, %esi
callq 0x820f
testq %rax, %rax
jne 0x4b93
cmpl $0x0, 0x40(%rsp)
jne 0x4b72
callq 0x3480
cmpl $0x0, (%rax)
jne 0x4cc9
leaq 0xc64f(%rip), %rdi      # 0x1116d
movq 0x30(%rsp), %rsi
xorl %eax, %eax
callq 0x8e37
jmp 0x4e4b
movq %rax, %rbx
leaq 0xc634(%rip), %rdi      # 0x1116d
movq 0x38(%rsp), %rsi
xorl %eax, %eax
callq 0x8d18
movl $0x0, (%rbx)
jmp 0x4e5b
movq %rax, %r14
leaq 0xc613(%rip), %rdi      # 0x1116d
movq 0x28(%rsp), %rsi
xorl %eax, %eax
callq 0x8d18
movl $0x0, (%r14)
jmp 0x4e53
movq 0x30(%rsp), %rbp
movl $0x1, %edi
callq 0x3320
movq %rbp, %rdi
movl $0x1, %esi
callq 0x820f
testq %rax, %rax
je 0x4b77
movq %rax, %r15
movq 0x18(%rsp), %rdi
callq 0x9d08
testq %rax, %rax
jne 0x4bc6
callq 0x3480
cmpl $0x0, (%rax)
jne 0x4cab
leaq 0xc5f0(%rip), %rdi      # 0x111aa
xorl %eax, %eax
callq 0x8e37
jmp 0x4e43
movq %rax, %rbp
movq %rbx, %rdi
callq 0x83cb
movl %eax, 0x18(%rsp)
cmpl $-0x1, %eax
je 0x4e3b
cmpl $0x0, 0x40(%rsp)
setne %al
orb %r12b, %al
testb $0x1, %al
jne 0x4c10
movq 0x78(%rsp), %rdi
callq 0x69ac
testl %eax, %eax
jne 0x4d49
cmpb $0x0, 0x48(%rsp)
jne 0x4c10
movl $0x1, %edi
callq 0x8f38
cmpq $0x0, 0x70(%rsp)
je 0x4c2f
movq 0x70(%rsp), %rdi
movl $0x1, %esi
callq 0x77f8
testl %eax, %eax
jne 0x4d66
xorpd %xmm0, %xmm0
testb %r13b, %r13b
jne 0x4c41
movapd 0xb0(%rsp), %xmm0
subq $0x8, %rsp
leaq 0x9c(%rsp), %rax
movl 0x20(%rsp), %edi
movq 0x30(%rsp), %rsi
movq %r14, %rdx
movq %r15, %rcx
movl 0x1c(%rsp), %r8d
movl 0x2c(%rsp), %r9d
movapd 0xa8(%rsp), %xmm1
pushq %rax
pushq 0x70(%rsp)
pushq %rbp
pushq 0xb8(%rsp)
pushq 0x90(%rsp)
callq 0x4ec0
addq $0x30, %rsp
testq %rax, %rax
jne 0x4ceb
callq 0x3480
cmpl $0x0, (%rax)
jne 0x4d83
leaq 0xc53a(%rip), %rdi      # 0x111e0
jmp 0x4d77
movq %rax, %r12
leaq 0xc4f5(%rip), %rdi      # 0x111aa
xorl %eax, %eax
callq 0x8d18
movl $0x0, (%r12)
jmp 0x4e43
movq %rax, %r15
leaq 0xc49a(%rip), %rdi      # 0x1116d
movq 0x30(%rsp), %rsi
xorl %eax, %eax
callq 0x8d18
movl $0x0, (%r15)
jmp 0x4e4b
movq %rax, %r12
leaq 0x1be(%rip), %rdi       # 0x4eb3
movq %rax, %rsi
callq 0xab9c
testl %eax, %eax
jne 0x4d8f
leaq 0x94(%rsp), %rdi
callq 0x5661
testl %eax, %eax
jne 0x4e6a
movq %r12, %rdi
callq 0x507d
movq %rbp, %rdi
callq 0x9f46
movq %rbx, %rdi
callq 0x836b
movq %r15, %rdi
callq 0x836b
movq 0x78(%rsp), %rdi
callq 0x32b0
jmp 0x4775
callq 0x3480
cmpl $0x0, (%rax)
jne 0x4db5
leaq 0xc3ff(%rip), %rdi      # 0x11159
xorl %eax, %eax
callq 0x8e37
jmp 0x4df4
callq 0x3480
cmpl $0x0, (%rax)
jne 0x4dd0
leaq 0xc44f(%rip), %rdi      # 0x111c6
xorl %r12d, %r12d
xorl %eax, %eax
callq 0x8e37
jmp 0x4dec
movq %rax, %r13
leaq 0xc453(%rip), %rdi      # 0x111e0
jmp 0x4dda
leaq 0xc473(%rip), %rdi      # 0x11209
xorl %r14d, %r14d
xorl %eax, %eax
callq 0x8e37
callq 0x3480
movl $0x0, (%rax)
movl $0xffffffff, 0x18(%rsp) # imm = 0xFFFFFFFF
jmp 0x4dec
movq %rax, %r13
leaq 0xc39a(%rip), %rdi      # 0x11159
xorl %eax, %eax
callq 0x8d18
movl $0x0, (%r13)
jmp 0x4df4
movq %rax, %r13
leaq 0xc3ec(%rip), %rdi      # 0x111c6
xorl %r12d, %r12d
xorl %eax, %eax
callq 0x8d18
movl $0x0, (%r13)
movq %r12, %rdi
callq 0x507d
cmpl $-0x1, 0x18(%rsp)
je 0x4e3b
movl 0x18(%rsp), %edi
callq 0x30d0
testl %eax, %eax
je 0x4e3b
callq 0x3480
cmpl $0x0, (%rax)
jne 0x4e22
leaq 0xc8b4(%rip), %rdi      # 0x116cd
xorl %eax, %eax
callq 0x8e37
jmp 0x4e3b
movq %rax, %r13
leaq 0xc8a1(%rip), %rdi      # 0x116cd
xorl %eax, %eax
callq 0x8d18
movl $0x0, (%r13)
movq %rbp, %rdi
callq 0x9f46
movq %r15, %rdi
callq 0x836b
movq %r14, %rdi
callq 0x8387
movq %rbx, %rdi
callq 0x836b
movq 0x78(%rsp), %rdi
callq 0x32b0
jmp 0x47b8
callq 0x3480
cmpl $0x0, (%rax)
jne 0x4e8a
leaq 0xc3b6(%rip), %rdi      # 0x11231
xorl %r14d, %r14d
xorl %eax, %eax
callq 0x8e37
jmp 0x4dab
movq %rax, %r13
leaq 0xc39d(%rip), %rdi      # 0x11231
xorl %r14d, %r14d
xorl %eax, %eax
callq 0x8d18
movl $0x0, (%r13)
jmp 0x4dab