// File: /workspace/github_c_makefile_star2_O1/Tarsnap[P]spiped/spipe/main.c
// Function: main
int
main(int argc, char * argv[])
{
	/* Command-line parameters. */
	const char * opt_b = NULL;
	int opt_f = 0;
	int opt_g = 0;
	int opt_j = 0;
	const char * opt_k = NULL;
	int opt_o_set = 0;
	double opt_o = 0.0;
	const char * opt_t = NULL;

	/* Working variables. */
	struct events_threads ET;
	struct sock_addr * sa_b = NULL;
	struct sock_addr ** sas_t;
	struct proto_secret * K;
	const char * ch;
	int s[2];
	void * conn_cookie;
	int rc;

	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("-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("-o"):
			if (opt_o_set)
				usage();
			opt_o_set = 1;
			if (PARSENUM(&opt_o, optarg, 0, INFINITY))
				OPT_EPARSE(ch, optarg);
			break;
		GETOPT_OPTARG("-t"):
			if (opt_t)
				usage();
			opt_t = optarg;
			break;
		GETOPT_OPT("-v"):
			fprintf(stderr, "spipe @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_o == 0.0)
		opt_o = 5.0;

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

	/* Initialize the "events & threads" cookie. */
	ET.conndone = 0;
	ET.connection_error = 0;
	ET.stopped = 0;

	/* Resolve target address. */
	if ((sas_t = sock_resolve(opt_t)) == NULL) {
		warnp("Error resolving socket address: %s", opt_t);
		goto err0;
	}
	if (sas_t[0] == NULL) {
		warn0("No addresses found for %s", opt_t);
		goto err1;
	}

	/* Resolve bind address (if applicable). */
	if (opt_b && ((sa_b = sock_resolve_one(opt_b, 1)) == NULL)) {
		warnp("Failed to get bind address");
		goto err1;
	}

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

	/*
	 * Create a socket pair to push bits through.  The spiped protocol
	 * code expects to be handed a socket to read/write bits to, and our
	 * stdin/stdout might not be sockets (in fact, almost certainly aren't
	 * sockets); so we'll hand one end of the socket pair to the spiped
	 * protocol code and shuttle bits between stdin/stdout and the other
	 * end of the socket pair ourselves.
	 */
	if (socketpair(AF_UNIX, SOCK_STREAM, 0, s)) {
		warnp("socketpair");
		goto err3;
	}

	/* Set up a connection. */
	if ((conn_cookie = proto_conn_create(s[1], sas_t, sa_b, 0, opt_f,
	    opt_g, opt_j, K, opt_o, callback_conndied, &ET)) == NULL) {
		warnp("Could not set up connection");
		goto err4;
	}

	/* sas_t and s[1] are now owned by proto_conn. */
	sas_t = NULL;
	s[1] = -1;

	/* Push bits from the socket to stdout. */
	if (pushbits(s[0], STDOUT_FILENO, &ET.threads[1])) {
		warnp("Could not push bits");
		goto err5;
	}

	/* Push bits from stdin into the socket. */
	if (pushbits(STDIN_FILENO, s[0], &ET.threads[0])) {
		warnp("Could not push bits");
		goto err6;
	}

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

	/* Loop until we're done with the connection. */
	if (events_spin(&ET.conndone)) {
		warnp("Error running event loop");
		goto err5;
	}

	/* Wait for threads to finish (if necessary) */
	if (ET.stopped == 0) {
		if ((rc = pthread_join(ET.threads[0], NULL)) != 0) {
			warn0("pthread_join: %s", strerror(rc));
			goto err3;
		}
		if ((rc = pthread_join(ET.threads[1], NULL)) != 0) {
			warn0("pthread_join: %s", strerror(rc));
			goto err3;
		}
	}

	/* Clean up. */
	if (close(s[0]))
		warnp("close");
	proto_crypt_secret_free(K);
	sock_addr_free(sa_b);

	/* Handle a connection error. */
	if (ET.connection_error)
		goto err0;

	/* Success! */
	exit(0);

err7:
	if ((rc = pthread_cancel(ET.threads[0])) != 0)
		warn0("pthread_cancel: %s", strerror(rc));
	if ((rc = pthread_join(ET.threads[0], NULL)) != 0)
		warn0("pthread_join: %s", strerror(rc));
err6:
	if ((rc = pthread_cancel(ET.threads[1])) != 0)
		warn0("pthread_cancel: %s", strerror(rc));
	if ((rc = pthread_join(ET.threads[1], NULL)) != 0)
		warn0("pthread_join: %s", strerror(rc));
err5:
	proto_conn_drop(conn_cookie, PROTO_CONN_CANCELLED);
err4:
	if ((s[1] != -1) && close(s[1]))
		warnp("close");
	if (close(s[0]))
		warnp("close");
err3:
	proto_crypt_secret_free(K);
err2:
	sock_addr_free(sa_b);
err1:
	sock_addr_freelist(sas_t);
err0:
	/* Failure! */
	exit(1);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x98, %rsp
movl %edi, 0x60(%rsp)
movq %rsi, 0x70(%rsp)
movq (%rsi), %rdi
testq %rdi, %rdi
je 0x3ba3
callq 0x76e8
movl 0x60(%rsp), %edi
movq 0x70(%rsp), %rsi
callq 0x5dd0
testq %rax, %rax
jne 0x3cd8
xorpd %xmm0, %xmm0
movapd %xmm0, 0x80(%rsp)
xorl %ebp, %ebp
xorl %r12d, %r12d
movq $0x0, 0x30(%rsp)
movq $0x0, 0x20(%rsp)
movl $0x0, 0x14(%rsp)
xorl %r14d, %r14d
leaq 0x139b8(%rip), %rax     # 0x175a8
movl 0x60(%rsp), %ecx
cmpl %ecx, (%rax)
jne 0x4116
movl 0x14(%rsp), %r13d
testl %r13d, %r13d
setne %al
testl %ebp, %ebp
setne %cl
andb %al, %cl
cmpb $0x1, %cl
je 0x4116
cmpq $0x0, 0x30(%rsp)
je 0x4116
xorpd %xmm2, %xmm2
movapd 0x80(%rsp), %xmm1
cmpeqsd %xmm1, %xmm2
movsd 0xc3cb(%rip), %xmm0     # 0x10008
andpd %xmm2, %xmm0
andnpd %xmm1, %xmm2
orpd %xmm0, %xmm2
xorpd %xmm0, %xmm0
ucomisd %xmm0, %xmm2
jbe 0x4116
movapd %xmm2, 0x60(%rsp)
movq 0x20(%rsp), %rbx
testq %rbx, %rbx
je 0x4116
movq %rbx, %rdi
callq 0x7682
testl %eax, %eax
jne 0x4116
testq %r14, %r14
je 0x3c90
movq %r14, %rdi
callq 0x7682
testl %eax, %eax
jne 0x4116
movq $0x0, 0x50(%rsp)
movl $0x0, 0x58(%rsp)
movq %rbx, %rdi
callq 0x66c0
testq %rax, %rax
jne 0x41dc
callq 0x3400
cmpl $0x0, (%rax)
jne 0x4206
leaq 0xc3f1(%rip), %rdi      # 0x100b8
movq 0x20(%rsp), %rsi
xorl %eax, %eax
callq 0x7887
jmp 0x4136
movq %rax, %rbx
xorl %r15d, %r15d
leaq 0x23aab(%rip), %r13     # 0x27790
movl $0x0, 0x14(%rsp)
movq $0x0, 0x20(%rsp)
xorpd %xmm0, %xmm0
movapd %xmm0, 0x80(%rsp)
movl $0x0, 0x28(%rsp)
movq $0x0, 0x30(%rsp)
xorl %r12d, %r12d
xorl %ebp, %ebp
movq $0x9d, 0x8(%rsp)
movq 0x8(%rsp), %rax
decq %rax
movq %rax, 0x78(%rsp)
movl $0x0, 0x3c(%rsp)
leaq 0xc307(%rip), %r14      # 0x10045
cmpl $0x0, (%r13)
je 0x3d54
movq %rbx, %rdi
callq 0x60fb
addq 0x8(%rsp), %rax
jmp 0x3d62
movq 0x78(%rsp), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x78(%rsp)
cmpq $0xb6, %rax
jg 0x3dbb
cmpq $0xa7, %rax
jle 0x3dfa
cmpq $0xa8, %rax
je 0x3ec4
cmpq $0xad, %rax
je 0x3e7b
cmpq $0xb2, %rax
jne 0x3f12
cmpl $0x0, (%r13)
jne 0x404e
movl $0xb2, %esi
subq 0x8(%rsp), %rsi
leaq 0xc29b(%rip), %rdi      # 0x10051
jmp 0x3eb5
cmpq $0xc2, %rax
jle 0x3e2f
cmpq $0xc3, %rax
je 0x3ee2
cmpq $0xc6, %rax
jne 0x3f0a
cmpl $0x0, (%r13)
jne 0x40ca
movl $0xc6, %edi
subq 0x8(%rsp), %rdi
callq 0x62cf
jmp 0x3d3e
cmpq $0x9e, %rax
je 0x3e61
cmpq $0xa3, %rax
jne 0x3f12
cmpl $0x0, (%r13)
jne 0x3f51
movl $0xa3, %esi
subq 0x8(%rsp), %rsi
leaq 0xc21e(%rip), %rdi      # 0x10048
jmp 0x3efe
cmpq $0xb7, %rax
je 0x3e99
cmpq $0xbe, %rax
jne 0x3f12
cmpl $0x0, (%r13)
jne 0x3f8d
movl $0xbe, %esi
subq 0x8(%rsp), %rsi
leaq 0xc216(%rip), %rdi      # 0x10075
jmp 0x3eb5
cmpl $0x0, (%r13)
jne 0x3f6c
movl $0x9e, %esi
subq 0x8(%rsp), %rsi
movq %r14, %rdi
jmp 0x3eb5
cmpl $0x0, (%r13)
jne 0x403b
movl $0xad, %esi
subq 0x8(%rsp), %rsi
leaq 0xc1b7(%rip), %rdi      # 0x1004e
jmp 0x3efe
cmpl $0x0, (%r13)
jne 0x3fb9
movl $0xb7, %esi
subq 0x8(%rsp), %rsi
leaq 0xc19f(%rip), %rdi      # 0x10054
movl $0x1, %edx
callq 0x61b8
jmp 0x3d3e
cmpl $0x0, (%r13)
jne 0x4076
movl $0xa8, %esi
subq 0x8(%rsp), %rsi
leaq 0xc16b(%rip), %rdi      # 0x1004b
jmp 0x3efe
cmpl $0x0, (%r13)
jne 0x40d3
movl $0xc3, %esi
subq 0x8(%rsp), %rsi
leaq 0xc17a(%rip), %rdi      # 0x10078
xorl %edx, %edx
callq 0x61b8
jmp 0x3d3e
cmpq $0xc9, %rax
je 0x3f44
cmpl $0x0, (%r13)
jne 0x40fa
cmpl $0x0, 0x3c(%rsp)
jne 0x3d3e
movl $0xc9, %edi
subq 0x8(%rsp), %rdi
callq 0x630f
movl $0x1, 0x3c(%rsp)
jmp 0x3d3e
movl $0x1, (%r13)
jmp 0x40a5
movq %r15, %r14
cmpl $0x0, 0x14(%rsp)
movl $0x1, 0x14(%rsp)
je 0x40a8
jmp 0x4116
leaq 0x23815(%rip), %rax     # 0x27788
movq (%rax), %r14
testq %r14, %r14
je 0x4140
testq %r15, %r15
je 0x40a8
jmp 0x4116
leaq 0x237f4(%rip), %rax     # 0x27788
movq (%rax), %rax
testq %rax, %rax
je 0x415f
movq %r15, %r14
cmpq $0x0, 0x20(%rsp)
movq %rax, 0x20(%rsp)
je 0x40a8
jmp 0x4116
movq %rbp, %r14
movq %r12, %rbp
leaq 0x237c2(%rip), %rax     # 0x27788
movq (%rax), %r12
testq %r12, %r12
je 0x417e
cmpl $0x0, 0x28(%rsp)
jne 0x4116
callq 0x3400
movq %rax, 0x28(%rsp)
movl $0x0, (%rax)
movq %r12, %rdi
leaq 0x90(%rsp), %rsi
callq 0x35f0
movapd %xmm0, 0x80(%rsp)
movq 0x90(%rsp), %rcx
movl $0x16, %eax
cmpq %r12, %rcx
je 0x4087
cmpb $0x0, (%rcx)
movq %rbp, %r12
movq 0x28(%rsp), %rcx
jne 0x408f
movl $0x22, %eax
xorpd %xmm0, %xmm0
ucomisd 0x80(%rsp), %xmm0
ja 0x408f
jmp 0x4091
movq %r15, %r14
testl %r12d, %r12d
movl $0x1, %r12d
je 0x40a8
jmp 0x4116
leaq 0x23733(%rip), %rax     # 0x27788
movq (%rax), %rax
testq %rax, %rax
je 0x419d
movq %r15, %r14
cmpq $0x0, 0x30(%rsp)
movq %rax, 0x30(%rsp)
je 0x40a8
jmp 0x4116
movq %r15, %r14
testl %ebp, %ebp
movl $0x1, %ebp
je 0x40a8
jmp 0x4116
movq %rbp, %r12
movq 0x28(%rsp), %rcx
movl %eax, (%rcx)
cmpl $0x0, (%rcx)
jne 0x41bc
movq %r14, %rbp
movl $0x1, 0x28(%rsp)
movq %r15, %r14
movl 0x60(%rsp), %edi
movq 0x70(%rsp), %rsi
callq 0x5dd0
movq %rax, %rbx
movq %r14, %r15
testq %rax, %rax
jne 0x3d19
jmp 0x3be9
leaq 0xbfbb(%rip), %rdi      # 0x1008c
jmp 0x4101
movq 0x12f16(%rip), %rax     # 0x16ff0
movq (%rax), %rcx
leaq 0xbf97(%rip), %rdi      # 0x1007b
movl $0x10, %esi
movl $0x1, %edx
callq 0x34f0
xorl %edi, %edi
callq 0x3110
leaq 0xbfa2(%rip), %rdi      # 0x100a3
movq %rbx, %rsi
xorl %eax, %eax
callq 0x7887
callq 0x3400
movl $0x0, (%rax)
movq 0x12ed3(%rip), %rax     # 0x16ff0
movq (%rax), %rcx
leaq 0xc0a5(%rip), %rdi      # 0x101cc
movl $0x7f, %esi
movl $0x1, %edx
callq 0x34f0
movl $0x1, %edi
callq 0x3110
leaq 0xbed1(%rip), %rdi      # 0x10018
leaq 0xbed9(%rip), %rsi      # 0x10027
leaq 0xbed9(%rip), %rcx      # 0x1002e
movl $0x9e, %edx
callq 0x3120
leaq 0xbeb2(%rip), %rdi      # 0x10018
leaq 0xbeba(%rip), %rsi      # 0x10027
leaq 0xbeba(%rip), %rcx      # 0x1002e
movl $0xbe, %edx
callq 0x3120
leaq 0xbe93(%rip), %rdi      # 0x10018
leaq 0xbe9b(%rip), %rsi      # 0x10027
leaq 0xbe9b(%rip), %rcx      # 0x1002e
movl $0xb7, %edx
callq 0x3120
leaq 0xbe74(%rip), %rdi      # 0x10018
leaq 0xbe7c(%rip), %rsi      # 0x10027
leaq 0xbe7c(%rip), %rcx      # 0x1002e
movl $0xb2, %edx
callq 0x3120
leaq 0x235c5(%rip), %rax     # 0x27788
movq (%rax), %rdx
leaq 0xbe8a(%rip), %rdi      # 0x10057
movq %rbx, %rsi
xorl %eax, %eax
movq %rcx, %rbx
callq 0x7768
jmp 0x421c
movq %rax, %r15
cmpq $0x0, (%rax)
jne 0x4227
leaq 0xbeef(%rip), %rdi      # 0x100db
movq %rbx, %rsi
xorl %eax, %eax
callq 0x7887
callq 0x3400
movl $0x0, (%rax)
jmp 0x4646
movq %rax, %rbx
leaq 0xbea8(%rip), %rdi      # 0x100b8
movq 0x20(%rsp), %rsi
xorl %eax, %eax
callq 0x7768
movl $0x0, (%rbx)
jmp 0x4136
testq %r14, %r14
jne 0x4230
xorl %ebx, %ebx
jmp 0x4266
movq %r14, %rdi
movl $0x1, %esi
callq 0x6c5f
movq %rax, %rbx
testq %rax, %rax
jne 0x4266
callq 0x3400
cmpl $0x0, (%rax)
jne 0x4344
leaq 0xbe9b(%rip), %rdi      # 0x100f5
xorl %eax, %eax
callq 0x7887
jmp 0x4646
movq 0x30(%rsp), %rdi
callq 0x7f24
testq %rax, %rax
jne 0x4296
callq 0x3400
cmpl $0x0, (%rax)
jne 0x430d
leaq 0xbe86(%rip), %rdi      # 0x10110
xorl %eax, %eax
callq 0x7887
jmp 0x463e
movq %rax, %r14
leaq 0x18(%rsp), %rcx
movl $0x1, %edi
movl $0x1, %esi
xorl %edx, %edx
callq 0x32f0
testl %eax, %eax
jne 0x432a
movl 0x1c(%rsp), %edi
leaq 0x40(%rsp), %rax
leaq 0x415(%rip), %r10       # 0x46d8
movq %r15, %rsi
movq %rbx, %rdx
xorl %ecx, %ecx
movl %r13d, %r8d
movl %ebp, %r9d
movapd 0x60(%rsp), %xmm0
pushq %rax
pushq %r10
pushq %r14
pushq %r12
callq 0x7abe
addq $0x20, %rsp
testq %rax, %rax
jne 0x4360
callq 0x3400
cmpl $0x0, (%rax)
jne 0x4439
leaq 0xbe36(%rip), %rdi      # 0x10137
xorl %eax, %eax
callq 0x7887
jmp 0x45b1
movq %rax, %r14
leaq 0xbdf9(%rip), %rdi      # 0x10110
xorl %eax, %eax
callq 0x7768
movl $0x0, (%r14)
jmp 0x463e
callq 0x3400
cmpl $0x0, (%rax)
jne 0x442a
leaq 0xbded(%rip), %rdi      # 0x1012c
jmp 0x4614
movq %rax, %rbx
leaq 0xbda7(%rip), %rdi      # 0x100f5
xorl %eax, %eax
callq 0x7768
movl $0x0, (%rbx)
jmp 0x4646
movq %rax, %r12
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
movl 0x18(%rsp), %edi
leaq 0x48(%rsp), %rdx
movl $0x1, %esi
callq 0x47c0
testl %eax, %eax
jne 0x4457
movl 0x18(%rsp), %esi
leaq 0x40(%rsp), %rdx
xorl %edi, %edi
callq 0x47c0
testl %eax, %eax
jne 0x4474
leaq 0x38b(%rip), %rdi       # 0x4730
leaq 0x40(%rsp), %rsi
callq 0x8db8
testl %eax, %eax
jne 0x44b2
leaq 0x50(%rsp), %rdi
callq 0x4c61
testl %eax, %eax
jne 0x4653
cmpl $0x0, 0x58(%rsp)
jne 0x43f8
movq 0x40(%rsp), %rdi
xorl %esi, %esi
callq 0x3030
testl %eax, %eax
jne 0x4678
movq 0x48(%rsp), %rdi
xorl %esi, %esi
callq 0x3030
testl %eax, %eax
jne 0x4678
movl 0x18(%rsp), %edi
callq 0x30a0
testl %eax, %eax
je 0x46b8
callq 0x3400
cmpl $0x0, (%rax)
jne 0x46a0
leaq 0xc8bf(%rip), %rdi      # 0x10cdd
xorl %eax, %eax
callq 0x7887
jmp 0x46b8
movq %rax, %r12
leaq 0xbcf8(%rip), %rdi      # 0x1012c
jmp 0x4627
movq %rax, %r12
leaq 0xbcf4(%rip), %rdi      # 0x10137
xorl %eax, %eax
callq 0x7768
movl $0x0, (%r12)
jmp 0x45b1
callq 0x3400
cmpl $0x0, (%rax)
jne 0x4495
leaq 0xbceb(%rip), %rdi      # 0x10153
xorl %eax, %eax
callq 0x7887
jmp 0x45a1
callq 0x3400
cmpl $0x0, (%rax)
jne 0x4525
leaq 0xbcca(%rip), %rdi      # 0x10153
xorl %eax, %eax
callq 0x7887
jmp 0x453d
movq %rax, %r15
leaq 0xbcb4(%rip), %rdi      # 0x10153
xorl %eax, %eax
callq 0x7768
movl $0x0, (%r15)
jmp 0x45a1
leaq 0xbcae(%rip), %rdi      # 0x10167
xorl %eax, %eax
callq 0x7887
callq 0x3400
movq %rax, %r15
movl $0x0, (%rax)
movq 0x40(%rsp), %rdi
callq 0x3390
testl %eax, %eax
je 0x44fb
movl %eax, %edi
callq 0x32e0
leaq 0xbccf(%rip), %rdi      # 0x101b9
movq %rax, %rsi
xorl %eax, %eax
callq 0x7887
movl $0x0, (%r15)
movq 0x40(%rsp), %rdi
xorl %esi, %esi
callq 0x3030
testl %eax, %eax
je 0x453d
movl %eax, %edi
callq 0x32e0
leaq 0xbc8f(%rip), %rdi      # 0x101a8
movq %rax, %rsi
xorl %eax, %eax
callq 0x7887
jmp 0x4536
movq %rax, %r15
leaq 0xbc24(%rip), %rdi      # 0x10153
xorl %eax, %eax
callq 0x7768
movl $0x0, (%r15)
movq 0x48(%rsp), %rdi
callq 0x3390
testl %eax, %eax
je 0x456e
movl %eax, %edi
callq 0x32e0
leaq 0xbc60(%rip), %rdi      # 0x101b9
movq %rax, %rsi
xorl %eax, %eax
callq 0x7887
callq 0x3400
movl $0x0, (%rax)
movq 0x48(%rsp), %rdi
xorl %esi, %esi
callq 0x3030
testl %eax, %eax
je 0x45a1
movl %eax, %edi
callq 0x32e0
leaq 0xbc1c(%rip), %rdi      # 0x101a8
movq %rax, %rsi
xorl %eax, %eax
callq 0x7887
callq 0x3400
movl $0x0, (%rax)
movq %r12, %rdi
movl $0x1, %esi
callq 0x79ac
xorl %r15d, %r15d
movl 0x1c(%rsp), %edi
cmpl $-0x1, %edi
je 0x45f6
callq 0x30a0
testl %eax, %eax
je 0x45f6
callq 0x3400
cmpl $0x0, (%rax)
jne 0x45dd
leaq 0xc709(%rip), %rdi      # 0x10cdd
xorl %eax, %eax
callq 0x7887
jmp 0x45f6
movq %rax, %r12
leaq 0xc6f6(%rip), %rdi      # 0x10cdd
xorl %eax, %eax
callq 0x7768
movl $0x0, (%r12)
movl 0x18(%rsp), %edi
callq 0x30a0
testl %eax, %eax
je 0x4636
callq 0x3400
cmpl $0x0, (%rax)
jne 0x461d
leaq 0xc6c9(%rip), %rdi      # 0x10cdd
xorl %eax, %eax
callq 0x7887
jmp 0x4636
movq %rax, %r12
leaq 0xc6b6(%rip), %rdi      # 0x10cdd
xorl %eax, %eax
callq 0x7768
movl $0x0, (%r12)
movq %r14, %rdi
callq 0x8162
movq %rbx, %rdi
callq 0x6dbb
movq %r15, %rdi
callq 0x6dd7
jmp 0x4136
callq 0x3400
cmpl $0x0, (%rax)
jne 0x4669
leaq 0xbb2b(%rip), %rdi      # 0x1018f
jmp 0x4468
movq %rax, %r15
leaq 0xbb1c(%rip), %rdi      # 0x1018f
jmp 0x449f
movl %eax, %edi
callq 0x32e0
leaq 0xbb22(%rip), %rdi      # 0x101a8
xorl %r15d, %r15d
movq %rax, %rsi
xorl %eax, %eax
callq 0x7887
callq 0x3400
movl $0x0, (%rax)
jmp 0x4636
movq %rax, %r15
leaq 0xc633(%rip), %rdi      # 0x10cdd
xorl %eax, %eax
callq 0x7768
movl $0x0, (%r15)
movq %r14, %rdi
callq 0x8162
movq %rbx, %rdi
callq 0x6dbb
cmpl $0x0, 0x54(%rsp)
je 0x40f3
jmp 0x4136