// File: /workspace/github_c_makefile_star2_O0/Tarsnap[P]kivaloo/lbs-s3/main.c
// Function: main
int
main(int argc, char * argv[])
{
	/* State variables. */
	struct wire_requestqueue * Q_S3;
	struct deleteto * deleter;
	struct s3state * S;
	struct dispatch_state * D;
	int s;
	int s_t;

	/* Command-line parameters. */
	char * opt_s = NULL;
	char * opt_t = NULL;
	size_t opt_b = (size_t)(-1);
	char * opt_B = NULL;
	char * opt_p = NULL;
	int opt_1 = 0;

	/* Working variables. */
	struct sock_addr ** sas_s;
	struct sock_addr ** sas_t;
	const char * ch;

	WARNP_INIT;

	/* Parse the command line. */
	while ((ch = GETOPT(argc, argv)) != NULL) {
		GETOPT_SWITCH(ch) {
		GETOPT_OPTARG("-B"):
			if (opt_B != NULL)
				usage();
			if ((opt_B = strdup(optarg)) == NULL)
				OPT_EPARSE(ch, optarg);
			break;
		GETOPT_OPTARG("-b"):
			if (opt_b != (size_t)(-1))
				usage();
			if (PARSENUM(&opt_b, optarg, 512, 128 * 1024)) {
				warn0("Block size must be in [2^9, 2^17]");
				exit(1);
			}
			break;
		GETOPT_OPTARG("-p"):
			if (opt_p != NULL)
				usage();
			if ((opt_p = strdup(optarg)) == NULL)
				OPT_EPARSE(ch, optarg);
			break;
		GETOPT_OPTARG("-s"):
			if (opt_s != NULL)
				usage();
			if ((opt_s = strdup(optarg)) == NULL)
				OPT_EPARSE(ch, optarg);
			break;
		GETOPT_OPTARG("-t"):
			if (opt_t != NULL)
				usage();
			if ((opt_t = strdup(optarg)) == NULL)
				OPT_EPARSE(ch, optarg);
			break;
		GETOPT_OPT("--version"):
			fprintf(stderr, "kivaloo-lbs-s3 @VERSION@\n");
			exit(0);
		GETOPT_OPT("-1"):
			if (opt_1 != 0)
				usage();
			opt_1 = 1;
			break;
		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. */

	/* Sanity-check options. */
	if (opt_s == NULL)
		usage();
	if (opt_t == NULL)
		usage();
	if (opt_B == NULL)
		usage();
	if (opt_b == (size_t)(-1))
		usage();

	/* Resolve the listening address. */
	if ((sas_s = sock_resolve(opt_s)) == NULL) {
		warnp("Error resolving socket address: %s", opt_s);
		exit(1);
	}
	if (sas_s[0] == NULL) {
		warn0("No addresses found for %s", opt_s);
		exit(1);
	}

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

	/* Create and bind a socket, and mark it as listening. */
	if (sas_s[1] != NULL)
		warn0("Listening on first of multiple addresses found for %s",
		    opt_s);
	if ((s = sock_listener(sas_s[0])) == -1)
		exit(1);

	/* Connect to the S3 daemon. */
	if ((s_t = sock_connect(sas_t)) == -1)
		exit(1);

	/* Create a queue of requests to the S3 daemon. */
	if ((Q_S3 = wire_requestqueue_init(s_t)) == NULL) {
		warnp("Cannot create S3 request queue");
		exit(1);
	}

	/* Create a deleter state. */
	if ((deleter = deleteto_init(Q_S3, opt_B)) == NULL) {
		warnp("Error initializing garbage collection for"
		    " S3 bucket: %s", opt_B);
		exit(1);
	}

	/* Initialize the S3 state. */
	if ((S = s3state_init(Q_S3, opt_B, opt_b, deleter)) == NULL) {
		warnp("Error initializing from S3 bucket: %s", opt_B);
		exit(1);
	}

	/* Daemonize and write pid. */
	if (opt_p == NULL) {
		if (asprintf(&opt_p, "%s.pid", opt_s) == -1) {
			warnp("asprintf");
			exit(1);
		}
	}
	if (daemonize(opt_p)) {
		warnp("Failed to daemonize");
		exit(1);
	}

	/* Handle connections, one at once. */
	do {
		/* Accept a connection. */
		if ((D = dispatch_accept(S, s)) == NULL)
			exit(1);

		/* Loop until the connection dies. */
		do {
			if (events_run()) {
				warnp("Error running event loop");
				exit(1);
			}
		} while (dispatch_alive(D));

		/* Close and free the connection. */
		if (dispatch_done(D))
			exit(1);
	} while (opt_1 == 0);

	/* Clean up the S3 state. */
	s3state_free(S);

	/*
	 * Shut down deleting (cleanly if possible, but we don't care if we
	 * encounter an error at this point).
	 */
	deleteto_stop(deleter);

	/* Shut down the S3 request queue. */
	wire_requestqueue_destroy(Q_S3);
	wire_requestqueue_free(Q_S3);

	/* Close sockets. */
	if (close(s_t))
		warnp("close");
	if (close(s))
		warnp("close");

	/* Free socket addresses. */
	sock_addr_freelist(sas_t);
	sock_addr_freelist(sas_s);

	/* Free option strings. */
	free(opt_s);
	free(opt_p);
	free(opt_t);
	free(opt_B);

	/* Success! */
	return (0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x40(%rbp)
movq $0x0, -0x48(%rbp)
movq $-0x1, -0x50(%rbp)
movq $0x0, -0x58(%rbp)
movq $0x0, -0x60(%rbp)
movl $0x0, -0x64(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, (%rax)
je 0x254e
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0xdd40
jmp 0x2550
jmp 0x2552
movl -0x8(%rbp), %edi
movq -0x10(%rbp), %rsi
callq 0xa9a0
movq %rax, -0x80(%rbp)
cmpq $0x0, %rax
je 0x2d3c
movq $0x40, -0x88(%rbp)
movq -0x88(%rbp), %rax
decq %rax
movq %rax, -0x90(%rbp)
movl $0x0, -0x94(%rbp)
leaq 0x7(%rip), %rax         # 0x25a0
movq %rax, -0xa0(%rbp)
leaq 0x29271(%rip), %rax     # 0x2b818
cmpl $0x0, (%rax)
je 0x25c8
movq -0x80(%rbp), %rdi
callq 0xb060
movq -0x88(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0xa8(%rbp)
jmp 0x25e4
movq -0x90(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x90(%rbp)
movq %rax, -0xa8(%rbp)
movq -0xa8(%rbp), %rax
addq $-0x41, %rax
movq %rax, -0xb0(%rbp)
subq $0x2b, %rax
ja 0x2cc9
movq -0xb0(%rbp), %rax
leaq 0x11a12(%rip), %rcx     # 0x14020
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x291fa(%rip), %rax     # 0x2b818
cmpl $0x0, (%rax)
je 0x2653
leaq 0x291e6(%rip), %rax     # 0x2b810
cmpq $0x0, (%rax)
je 0x2632
jmp 0x2651
leaq 0x11a97(%rip), %rdi     # 0x140d0
leaq 0x11a9f(%rip), %rsi     # 0x140df
movl $0x41, %edx
leaq 0x11a9a(%rip), %rcx     # 0x140e6
callq 0x21c0
jmp 0x2686
movq -0x88(%rbp), %rax
movl $0x41, %esi
subq %rax, %rsi
leaq 0x11a94(%rip), %rdi     # 0x140fd
movl $0x1, %edx
callq 0xb1b0
movq -0xa0(%rbp), %rax
movq %rax, -0xb8(%rbp)
jmp 0x3289
cmpq $0x0, -0x58(%rbp)
je 0x2692
callq 0x32a0
leaq 0x29177(%rip), %rax     # 0x2b810
movq (%rax), %rdi
callq 0x23a0
movq %rax, -0x58(%rbp)
cmpq $0x0, %rax
jne 0x270a
jmp 0x26ad
jmp 0x26af
callq 0x20a0
cmpl $0x0, (%rax)
je 0x26e2
movq -0x80(%rbp), %rsi
leaq 0x2914c(%rip), %rax     # 0x2b810
movq (%rax), %rdx
leaq 0x11a32(%rip), %rdi     # 0x14100
movb $0x0, %al
callq 0xde00
callq 0x20a0
movl $0x0, (%rax)
jmp 0x26fe
movq -0x80(%rbp), %rsi
leaq 0x29123(%rip), %rax     # 0x2b810
movq (%rax), %rdx
leaq 0x11a09(%rip), %rdi     # 0x14100
movb $0x0, %al
callq 0xe050
jmp 0x2700
movl $0x1, %edi
callq 0x2370
jmp 0x2d37
leaq 0x29102(%rip), %rax     # 0x2b818
cmpl $0x0, (%rax)
je 0x274b
leaq 0x290ee(%rip), %rax     # 0x2b810
cmpq $0x0, (%rax)
je 0x272a
jmp 0x2749
leaq 0x1199f(%rip), %rdi     # 0x140d0
leaq 0x119a7(%rip), %rsi     # 0x140df
movl $0x47, %edx
leaq 0x119a2(%rip), %rcx     # 0x140e6
callq 0x21c0
jmp 0x277e
movq -0x88(%rbp), %rax
movl $0x47, %esi
subq %rax, %rsi
leaq 0x119bd(%rip), %rdi     # 0x1411e
movl $0x1, %edx
callq 0xb1b0
movq -0xa0(%rbp), %rax
movq %rax, -0xb8(%rbp)
jmp 0x3289
cmpq $-0x1, -0x50(%rbp)
je 0x278a
callq 0x32a0
callq 0x20a0
movl $0x0, (%rax)
movq $0x1, -0x50(%rbp)
movq -0x50(%rbp), %rax
shrq %rax
movq %rax, -0x50(%rbp)
cmpq $0x0, %rax
jbe 0x27fe
leaq 0x2905b(%rip), %rax     # 0x2b810
movq (%rax), %rdi
movsd 0x11848(%rip), %xmm0    # 0x14008
movsd 0x11848(%rip), %xmm1    # 0x14010
xorl %esi, %esi
callq 0x32e0
movaps %xmm0, %xmm1
cvttsd2si %xmm1, %rax
movq %rax, %rdx
sarq $0x3f, %rdx
movsd 0x11832(%rip), %xmm1    # 0x14018
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %rcx
andq %rdx, %rcx
orq %rcx, %rax
movq %rax, -0x50(%rbp)
jmp 0x2891
movq $-0x1, -0x50(%rbp)
xorl %eax, %eax
testb $0x1, %al
jne 0x280e
jmp 0x285a
leaq 0x28ffb(%rip), %rax     # 0x2b810
movq (%rax), %rdi
movq -0x50(%rbp), %rdx
xorl %eax, %eax
movl $0x200, %ecx            # imm = 0x200
cmpq $0x0, %rdx
cmovbel %ecx, %eax
movslq %eax, %rsi
movq -0x50(%rbp), %rdx
xorl %eax, %eax
movl $0x20000, %ecx          # imm = 0x20000
cmpq $0x0, %rdx
cmovbel %ecx, %eax
movslq %eax, %rdx
xorl %r8d, %r8d
movl %r8d, %ecx
callq 0x3390
movq %rax, -0x50(%rbp)
movq %rax, -0xc0(%rbp)
jmp 0x288a
leaq 0x28faf(%rip), %rax     # 0x2b810
movq (%rax), %rdi
movq -0x50(%rbp), %rcx
movl $0x200, %esi            # imm = 0x200
movl $0x20000, %edx          # imm = 0x20000
xorl %r9d, %r9d
movl %r9d, %r8d
callq 0x3450
movq %rax, -0x50(%rbp)
xorl %eax, %eax
movq %rax, -0xc0(%rbp)
movq -0xc0(%rbp), %rax
callq 0x20a0
cmpl $0x0, (%rax)
je 0x28c0
jmp 0x289d
leaq 0x1187d(%rip), %rdi     # 0x14121
movb $0x0, %al
callq 0xe050
callq 0x20a0
movl $0x0, (%rax)
movl $0x1, %edi
callq 0x2370
jmp 0x2d37
leaq 0x28f4c(%rip), %rax     # 0x2b818
cmpl $0x0, (%rax)
je 0x2901
leaq 0x28f38(%rip), %rax     # 0x2b810
cmpq $0x0, (%rax)
je 0x28e0
jmp 0x28ff
leaq 0x117e9(%rip), %rdi     # 0x140d0
leaq 0x117f1(%rip), %rsi     # 0x140df
movl $0x4f, %edx
leaq 0x117ec(%rip), %rcx     # 0x140e6
callq 0x21c0
jmp 0x2934
movq -0x88(%rbp), %rax
movl $0x4f, %esi
subq %rax, %rsi
leaq 0x1182c(%rip), %rdi     # 0x14143
movl $0x1, %edx
callq 0xb1b0
movq -0xa0(%rbp), %rax
movq %rax, -0xb8(%rbp)
jmp 0x3289
cmpq $0x0, -0x60(%rbp)
je 0x2940
callq 0x32a0
leaq 0x28ec9(%rip), %rax     # 0x2b810
movq (%rax), %rdi
callq 0x23a0
movq %rax, -0x60(%rbp)
cmpq $0x0, %rax
jne 0x29b8
jmp 0x295b
jmp 0x295d
callq 0x20a0
cmpl $0x0, (%rax)
je 0x2990
movq -0x80(%rbp), %rsi
leaq 0x28e9e(%rip), %rax     # 0x2b810
movq (%rax), %rdx
leaq 0x11784(%rip), %rdi     # 0x14100
movb $0x0, %al
callq 0xde00
callq 0x20a0
movl $0x0, (%rax)
jmp 0x29ac
movq -0x80(%rbp), %rsi
leaq 0x28e75(%rip), %rax     # 0x2b810
movq (%rax), %rdx
leaq 0x1175b(%rip), %rdi     # 0x14100
movb $0x0, %al
callq 0xe050
jmp 0x29ae
movl $0x1, %edi
callq 0x2370
jmp 0x2d37
leaq 0x28e54(%rip), %rax     # 0x2b818
cmpl $0x0, (%rax)
je 0x29f9
leaq 0x28e40(%rip), %rax     # 0x2b810
cmpq $0x0, (%rax)
je 0x29d8
jmp 0x29f7
leaq 0x116f1(%rip), %rdi     # 0x140d0
leaq 0x116f9(%rip), %rsi     # 0x140df
movl $0x55, %edx
leaq 0x116f4(%rip), %rcx     # 0x140e6
callq 0x21c0
jmp 0x2a2c
movq -0x88(%rbp), %rax
movl $0x55, %esi
subq %rax, %rsi
leaq 0x11737(%rip), %rdi     # 0x14146
movl $0x1, %edx
callq 0xb1b0
movq -0xa0(%rbp), %rax
movq %rax, -0xb8(%rbp)
jmp 0x3289
cmpq $0x0, -0x40(%rbp)
je 0x2a38
callq 0x32a0
leaq 0x28dd1(%rip), %rax     # 0x2b810
movq (%rax), %rdi
callq 0x23a0
movq %rax, -0x40(%rbp)
cmpq $0x0, %rax
jne 0x2ab0
jmp 0x2a53
jmp 0x2a55
callq 0x20a0
cmpl $0x0, (%rax)
je 0x2a88
movq -0x80(%rbp), %rsi
leaq 0x28da6(%rip), %rax     # 0x2b810
movq (%rax), %rdx
leaq 0x1168c(%rip), %rdi     # 0x14100
movb $0x0, %al
callq 0xde00
callq 0x20a0
movl $0x0, (%rax)
jmp 0x2aa4
movq -0x80(%rbp), %rsi
leaq 0x28d7d(%rip), %rax     # 0x2b810
movq (%rax), %rdx
leaq 0x11663(%rip), %rdi     # 0x14100
movb $0x0, %al
callq 0xe050
jmp 0x2aa6
movl $0x1, %edi
callq 0x2370
jmp 0x2d37
leaq 0x28d5c(%rip), %rax     # 0x2b818
cmpl $0x0, (%rax)
je 0x2af1
leaq 0x28d48(%rip), %rax     # 0x2b810
cmpq $0x0, (%rax)
je 0x2ad0
jmp 0x2aef
leaq 0x115f9(%rip), %rdi     # 0x140d0
leaq 0x11601(%rip), %rsi     # 0x140df
movl $0x5b, %edx
leaq 0x115fc(%rip), %rcx     # 0x140e6
callq 0x21c0
jmp 0x2b24
movq -0x88(%rbp), %rax
movl $0x5b, %esi
subq %rax, %rsi
leaq 0x11642(%rip), %rdi     # 0x14149
movl $0x1, %edx
callq 0xb1b0
movq -0xa0(%rbp), %rax
movq %rax, -0xb8(%rbp)
jmp 0x3289
cmpq $0x0, -0x48(%rbp)
je 0x2b30
callq 0x32a0
leaq 0x28cd9(%rip), %rax     # 0x2b810
movq (%rax), %rdi
callq 0x23a0
movq %rax, -0x48(%rbp)
cmpq $0x0, %rax
jne 0x2ba8
jmp 0x2b4b
jmp 0x2b4d
callq 0x20a0
cmpl $0x0, (%rax)
je 0x2b80
movq -0x80(%rbp), %rsi
leaq 0x28cae(%rip), %rax     # 0x2b810
movq (%rax), %rdx
leaq 0x11594(%rip), %rdi     # 0x14100
movb $0x0, %al
callq 0xde00
callq 0x20a0
movl $0x0, (%rax)
jmp 0x2b9c
movq -0x80(%rbp), %rsi
leaq 0x28c85(%rip), %rax     # 0x2b810
movq (%rax), %rdx
leaq 0x1156b(%rip), %rdi     # 0x14100
movb $0x0, %al
callq 0xe050
jmp 0x2b9e
movl $0x1, %edi
callq 0x2370
jmp 0x2d37
leaq 0x28c64(%rip), %rax     # 0x2b818
cmpl $0x0, (%rax)
je 0x2bbb
jmp 0x2beb
movq -0x88(%rbp), %rax
movl $0x61, %esi
subq %rax, %rsi
leaq 0x1157b(%rip), %rdi     # 0x1414c
xorl %edx, %edx
callq 0xb1b0
movq -0xa0(%rbp), %rax
movq %rax, -0xb8(%rbp)
jmp 0x3289
movq 0x18406(%rip), %rax     # 0x1aff8
movq (%rax), %rdi
leaq 0x1155a(%rip), %rsi     # 0x14156
movb $0x0, %al
callq 0x2260
xorl %edi, %edi
callq 0x2370
leaq 0x28c07(%rip), %rax     # 0x2b818
cmpl $0x0, (%rax)
je 0x2c18
jmp 0x2c48
movq -0x88(%rbp), %rax
movl $0x64, %esi
subq %rax, %rsi
leaq 0x12e65(%rip), %rdi     # 0x15a93
xorl %edx, %edx
callq 0xb1b0
movq -0xa0(%rbp), %rax
movq %rax, -0xb8(%rbp)
jmp 0x3289
cmpl $0x0, -0x64(%rbp)
je 0x2c53
callq 0x32a0
movl $0x1, -0x64(%rbp)
jmp 0x2d37
leaq 0x28bb2(%rip), %rax     # 0x2b818
cmpl $0x0, (%rax)
je 0x2c6d
jmp 0x2c94
movq -0x88(%rbp), %rax
movl $0x69, %edi
subq %rax, %rdi
callq 0xb440
movq -0xa0(%rbp), %rax
movq %rax, -0xb8(%rbp)
jmp 0x3289
jmp 0x2c96
movq -0x80(%rbp), %rsi
leaq 0x114cf(%rip), %rdi     # 0x14170
movb $0x0, %al
callq 0xe050
callq 0x20a0
movl $0x0, (%rax)
callq 0x32a0
jmp 0x2d13
leaq 0x28b57(%rip), %rax     # 0x2b818
movl $0x1, (%rax)
jmp 0x2d37
leaq 0x28b48(%rip), %rax     # 0x2b818
cmpl $0x0, (%rax)
je 0x2cd7
jmp 0x2d13
movl -0x94(%rbp), %eax
cmpl $0x0, %eax
jne 0x2d00
movq -0x88(%rbp), %rax
movl $0x6c, %edi
subq %rax, %rdi
callq 0xb500
movl $0x1, -0x94(%rbp)
movq -0xa0(%rbp), %rax
movq %rax, -0xb8(%rbp)
jmp 0x3289
jmp 0x2d15
movq -0x80(%rbp), %rsi
leaq 0x11467(%rip), %rdi     # 0x14187
movb $0x0, %al
callq 0xe050
callq 0x20a0
movl $0x0, (%rax)
callq 0x32a0
jmp 0x2552
leaq 0x18815(%rip), %rax     # 0x1b558
movl (%rax), %ecx
movl -0x8(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x8(%rbp)
leaq 0x18804(%rip), %rax     # 0x1b558
movl (%rax), %ecx
movq -0x10(%rbp), %rax
movslq %ecx, %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0x10(%rbp)
cmpl $0x0, -0x8(%rbp)
je 0x2d73
callq 0x32a0
cmpq $0x0, -0x40(%rbp)
jne 0x2d7f
callq 0x32a0
cmpq $0x0, -0x48(%rbp)
jne 0x2d8b
callq 0x32a0
cmpq $0x0, -0x58(%rbp)
jne 0x2d97
callq 0x32a0
cmpq $-0x1, -0x50(%rbp)
jne 0x2da3
callq 0x32a0
movq -0x40(%rbp), %rdi
callq 0xc190
movq %rax, -0x70(%rbp)
cmpq $0x0, %rax
jne 0x2dff
jmp 0x2db8
callq 0x20a0
cmpl $0x0, (%rax)
je 0x2de1
movq -0x40(%rbp), %rsi
leaq 0x113cf(%rip), %rdi     # 0x1419c
movb $0x0, %al
callq 0xde00
callq 0x20a0
movl $0x0, (%rax)
jmp 0x2df3
movq -0x40(%rbp), %rsi
leaq 0x113b0(%rip), %rdi     # 0x1419c
movb $0x0, %al
callq 0xe050
jmp 0x2df5
movl $0x1, %edi
callq 0x2370
movq -0x70(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x2e32
jmp 0x2e0b
movq -0x40(%rbp), %rsi
leaq 0x113a9(%rip), %rdi     # 0x141bf
movb $0x0, %al
callq 0xe050
callq 0x20a0
movl $0x0, (%rax)
movl $0x1, %edi
callq 0x2370
movq -0x48(%rbp), %rdi
callq 0xc190
movq %rax, -0x78(%rbp)
cmpq $0x0, %rax
jne 0x2e8e
jmp 0x2e47
callq 0x20a0
cmpl $0x0, (%rax)
je 0x2e70
movq -0x48(%rbp), %rsi
leaq 0x11340(%rip), %rdi     # 0x1419c
movb $0x0, %al
callq 0xde00
callq 0x20a0
movl $0x0, (%rax)
jmp 0x2e82
movq -0x48(%rbp), %rsi
leaq 0x11321(%rip), %rdi     # 0x1419c
movb $0x0, %al
callq 0xe050
jmp 0x2e84
movl $0x1, %edi
callq 0x2370
movq -0x78(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x2ec1
jmp 0x2e9a
movq -0x48(%rbp), %rsi
leaq 0x1131a(%rip), %rdi     # 0x141bf
movb $0x0, %al
callq 0xe050
callq 0x20a0
movl $0x0, (%rax)
movl $0x1, %edi
callq 0x2370
movq -0x70(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x2eed
jmp 0x2ece
movq -0x40(%rbp), %rsi
leaq 0x11300(%rip), %rdi     # 0x141d9
movb $0x0, %al
callq 0xe050
callq 0x20a0
movl $0x0, (%rax)
jmp 0x2eed
movq -0x70(%rbp), %rax
movq (%rax), %rdi
callq 0xce10
movl %eax, -0x34(%rbp)
cmpl $-0x1, %eax
jne 0x2f0b
movl $0x1, %edi
callq 0x2370
movq -0x78(%rbp), %rdi
callq 0xd060
movl %eax, -0x38(%rbp)
cmpl $-0x1, %eax
jne 0x2f26
movl $0x1, %edi
callq 0x2370
movl -0x38(%rbp), %edi
callq 0x10440
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x2f79
jmp 0x2f3a
callq 0x20a0
cmpl $0x0, (%rax)
je 0x2f5f
leaq 0x112c4(%rip), %rdi     # 0x1420f
movb $0x0, %al
callq 0xde00
callq 0x20a0
movl $0x0, (%rax)
jmp 0x2f6d
leaq 0x112a9(%rip), %rdi     # 0x1420f
movb $0x0, %al
callq 0xe050
jmp 0x2f6f
movl $0x1, %edi
callq 0x2370
movq -0x18(%rbp), %rdi
movq -0x58(%rbp), %rsi
callq 0x44a0
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
jne 0x2fd9
jmp 0x2f92
callq 0x20a0
cmpl $0x0, (%rax)
je 0x2fbb
movq -0x58(%rbp), %rsi
leaq 0x11287(%rip), %rdi     # 0x1422e
movb $0x0, %al
callq 0xde00
callq 0x20a0
movl $0x0, (%rax)
jmp 0x2fcd
movq -0x58(%rbp), %rsi
leaq 0x11268(%rip), %rdi     # 0x1422e
movb $0x0, %al
callq 0xe050
jmp 0x2fcf
movl $0x1, %edi
callq 0x2370
movq -0x18(%rbp), %rdi
movq -0x58(%rbp), %rsi
movq -0x50(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x3e30
movq %rax, -0x28(%rbp)
cmpq $0x0, %rax
jne 0x3041
jmp 0x2ffa
callq 0x20a0
cmpl $0x0, (%rax)
je 0x3023
movq -0x58(%rbp), %rsi
leaq 0x11257(%rip), %rdi     # 0x14266
movb $0x0, %al
callq 0xde00
callq 0x20a0
movl $0x0, (%rax)
jmp 0x3035
movq -0x58(%rbp), %rsi
leaq 0x11238(%rip), %rdi     # 0x14266
movb $0x0, %al
callq 0xe050
jmp 0x3037
movl $0x1, %edi
callq 0x2370
cmpq $0x0, -0x60(%rbp)
jne 0x30a6
movq -0x40(%rbp), %rdx
leaq -0x60(%rbp), %rdi
leaq 0x11235(%rip), %rsi     # 0x1428c
movb $0x0, %al
callq 0xa590
cmpl $-0x1, %eax
jne 0x30a4
jmp 0x3065
callq 0x20a0
cmpl $0x0, (%rax)
je 0x308a
leaq 0x1121d(%rip), %rdi     # 0x14293
movb $0x0, %al
callq 0xde00
callq 0x20a0
movl $0x0, (%rax)
jmp 0x3098
leaq 0x11202(%rip), %rdi     # 0x14293
movb $0x0, %al
callq 0xe050
jmp 0x309a
movl $0x1, %edi
callq 0x2370
jmp 0x30a6
movq -0x60(%rbp), %rdi
callq 0xa6d0
cmpl $0x0, %eax
je 0x30f5
jmp 0x30b6
callq 0x20a0
cmpl $0x0, (%rax)
je 0x30db
leaq 0x111d5(%rip), %rdi     # 0x1429c
movb $0x0, %al
callq 0xde00
callq 0x20a0
movl $0x0, (%rax)
jmp 0x30e9
leaq 0x111ba(%rip), %rdi     # 0x1429c
movb $0x0, %al
callq 0xe050
jmp 0x30eb
movl $0x1, %edi
callq 0x2370
jmp 0x30f7
movq -0x28(%rbp), %rdi
movl -0x34(%rbp), %esi
callq 0x3510
movq %rax, -0x30(%rbp)
cmpq $0x0, %rax
jne 0x3117
movl $0x1, %edi
callq 0x2370
jmp 0x3119
callq 0x6b40
cmpl $0x0, %eax
je 0x3164
jmp 0x3125
callq 0x20a0
cmpl $0x0, (%rax)
je 0x314a
leaq 0x1117a(%rip), %rdi     # 0x142b0
movb $0x0, %al
callq 0xde00
callq 0x20a0
movl $0x0, (%rax)
jmp 0x3158
leaq 0x1115f(%rip), %rdi     # 0x142b0
movb $0x0, %al
callq 0xe050
jmp 0x315a
movl $0x1, %edi
callq 0x2370
jmp 0x3166
movq -0x30(%rbp), %rdi
callq 0x3810
cmpl $0x0, %eax
jne 0x3119
movq -0x30(%rbp), %rdi
callq 0x3850
cmpl $0x0, %eax
je 0x318c
movl $0x1, %edi
callq 0x2370
jmp 0x318e
cmpl $0x0, -0x64(%rbp)
je 0x30f7
movq -0x28(%rbp), %rdi
callq 0x4440
movq -0x20(%rbp), %rdi
callq 0x4ab0
movq -0x18(%rbp), %rdi
callq 0x10a10
movq -0x18(%rbp), %rdi
callq 0x10a50
movl -0x38(%rbp), %edi
callq 0x21e0
cmpl $0x0, %eax
je 0x3202
jmp 0x31cb
callq 0x20a0
cmpl $0x0, (%rax)
je 0x31f0
leaq 0x11e48(%rip), %rdi     # 0x15024
movb $0x0, %al
callq 0xde00
callq 0x20a0
movl $0x0, (%rax)
jmp 0x31fe
leaq 0x11e2d(%rip), %rdi     # 0x15024
movb $0x0, %al
callq 0xe050
jmp 0x3200
jmp 0x3202
movl -0x34(%rbp), %edi
callq 0x21e0
cmpl $0x0, %eax
je 0x3248
jmp 0x3211
callq 0x20a0
cmpl $0x0, (%rax)
je 0x3236
leaq 0x11e02(%rip), %rdi     # 0x15024
movb $0x0, %al
callq 0xde00
callq 0x20a0
movl $0x0, (%rax)
jmp 0x3244
leaq 0x11de7(%rip), %rdi     # 0x15024
movb $0x0, %al
callq 0xe050
jmp 0x3246
jmp 0x3248
movq -0x78(%rbp), %rdi
callq 0xcdc0
movq -0x70(%rbp), %rdi
callq 0xcdc0
movq -0x40(%rbp), %rdi
callq 0x2040
movq -0x60(%rbp), %rdi
callq 0x2040
movq -0x48(%rbp), %rdi
callq 0x2040
movq -0x58(%rbp), %rdi
callq 0x2040
xorl %eax, %eax
addq $0xc0, %rsp
popq %rbp
retq
movq -0xb8(%rbp), %rax
jmpq *%rax
nopw %cs:(%rax,%rax)