// File: /workspace/github_c_makefile_star2_O0/Tarsnap[P]kivaloo/lbs/main.c
// Function: main
int
main(int argc, char * argv[])
{
	/* State variables. */
	struct storage_state * S;
	struct dispatch_state * D;
	int s;

	/* Command-line parameters. */
	char * opt_s = NULL;
	char * opt_d = NULL;
	size_t opt_b = (size_t)(-1);
	size_t opt_n = 16;
	char * opt_p = NULL;
	int opt_1 = 0;
	long opt_l = 0;
	int opt_L = 0;

	/* Working variables. */
	struct sock_addr ** sas;
	const char * ch;

	WARNP_INIT;

	/* Parse the command line. */
	while ((ch = GETOPT(argc, argv)) != NULL) {
		GETOPT_SWITCH(ch) {
		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]");
				goto err1;
			}
			break;
		GETOPT_OPTARG("-d"):
			if (opt_d != NULL)
				usage();
			if ((opt_d = strdup(optarg)) == NULL)
				OPT_EPARSE(ch, optarg);
			break;
		GETOPT_OPTARG("-l"):
			if (opt_l != 0)
				usage();
			if (PARSENUM(&opt_l, optarg, 0, 999999999)) {
				warn0("Read latency must be in [0, 10^9) ns");
				goto err1;
			}
			break;
		GETOPT_OPT("-L"):
			if (opt_L != 0)
				usage();
			opt_L = 1;
			break;
		GETOPT_OPTARG("-n"):
			if (opt_n != 16)
				usage();
			if (PARSENUM(&opt_n, optarg, 1, 1000)) {
				warn0("Number of readers must be in [1, 1000]");
				goto err1;
			}
			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_OPT("--version"):
			fprintf(stderr, "kivaloo-lbs @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_d == NULL)
		usage();
	if (opt_b == (size_t)(-1))
		usage();

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

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

	/* Initialize the storage back-end. */
	if ((S = storage_init(opt_d, opt_b, opt_l, opt_L)) == NULL) {
		warnp("Error initializing storage directory: %s", opt_d);
		goto err3;
	}

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

	/* Initialize the dispatcher. */
	if ((D = dispatch_init(S, opt_b, opt_n)) == NULL) {
		warnp("Error initializing work dispatcher");
		goto err4;
	}

	/* Handle connections, one at once. */
	do {
		/* Get a connection and perform associated initialization. */
		if (dispatch_accept(D, s)) {
			warnp("Error accepting new connection");
			goto err5;
		}

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

		/* Clean up the connection. */
		if (dispatch_close(D))
			goto err5;
	} while (opt_1 == 0);

	if (dispatch_done(D)) {
		warnp("Failed to shut down dispatcher");
		goto err4;
	}

	/* We're done with the storage state. */
	storage_done(S);

	/* Close the listening socket. */
	if (close(s))
		warnp("close");

	/* Free the address structures. */
	sock_addr_freelist(sas);

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

	/* Success! */
	exit(0);

err5:
	dispatch_done(D);
err4:
	storage_done(S);
err3:
	if (close(s))
		warnp("close");
err2:
	sock_addr_freelist(sas);
err1:
	free(opt_s);
	free(opt_p);
	free(opt_d);

	/* Failure! */
	exit(1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xd0, %rsp
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x30(%rbp)
movq $0x0, -0x38(%rbp)
movq $-0x1, -0x40(%rbp)
movq $0x10, -0x48(%rbp)
movq $0x0, -0x50(%rbp)
movl $0x0, -0x54(%rbp)
movq $0x0, -0x60(%rbp)
movl $0x0, -0x64(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, (%rax)
je 0x26fd
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0xefb0
jmp 0x26ff
jmp 0x2701
movl -0x8(%rbp), %edi
movq -0x10(%rbp), %rsi
callq 0xbc60
movq %rax, -0x78(%rbp)
cmpq $0x0, %rax
je 0x3156
movq $0x3d, -0x80(%rbp)
movq -0x80(%rbp), %rax
decq %rax
movq %rax, -0x88(%rbp)
movl $0x0, -0x8c(%rbp)
leaq 0x7(%rip), %rax         # 0x2749
movq %rax, -0x98(%rbp)
leaq 0x270e8(%rip), %rax     # 0x29838
cmpl $0x0, (%rax)
je 0x276e
movq -0x78(%rbp), %rdi
callq 0xc320
movq -0x80(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0xa0(%rbp)
jmp 0x278a
movq -0x88(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x88(%rbp)
movq %rax, -0xa0(%rbp)
movq -0xa0(%rbp), %rax
addq $-0x3e, %rax
movq %rax, -0xa8(%rbp)
subq $0x3a, %rax
ja 0x30e6
movq -0xa8(%rbp), %rax
leaq 0xf884(%rip), %rcx      # 0x12038
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x27074(%rip), %rax     # 0x29838
cmpl $0x0, (%rax)
je 0x27f9
leaq 0x27060(%rip), %rax     # 0x29830
cmpq $0x0, (%rax)
je 0x27d8
jmp 0x27f7
leaq 0xf945(%rip), %rdi      # 0x12124
leaq 0xf94d(%rip), %rsi      # 0x12133
movl $0x3e, %edx
leaq 0xf948(%rip), %rcx      # 0x1213a
callq 0x2240
jmp 0x2829
movq -0x80(%rbp), %rax
movl $0x3e, %esi
subq %rax, %rsi
leaq 0xf945(%rip), %rdi      # 0x12151
movl $0x1, %edx
callq 0xc470
movq -0x98(%rbp), %rax
movq %rax, -0xb0(%rbp)
jmp 0x35f0
cmpq $-0x1, -0x40(%rbp)
je 0x2835
callq 0x3600
callq 0x20a0
movl $0x0, (%rax)
movq $0x1, -0x40(%rbp)
movq -0x40(%rbp), %rax
shrq %rax
movq %rax, -0x40(%rbp)
cmpq $0x0, %rax
jbe 0x28a9
leaq 0x26fd0(%rip), %rax     # 0x29830
movq (%rax), %rdi
movsd 0xf7bd(%rip), %xmm0     # 0x12028
movsd 0xf7bd(%rip), %xmm1     # 0x12030
xorl %esi, %esi
callq 0x3640
movaps %xmm0, %xmm1
cvttsd2si %xmm1, %rax
movq %rax, %rdx
sarq $0x3f, %rdx
movsd 0xf787(%rip), %xmm1     # 0x12018
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %rcx
andq %rdx, %rcx
orq %rcx, %rax
movq %rax, -0x40(%rbp)
jmp 0x293c
movq $-0x1, -0x40(%rbp)
xorl %eax, %eax
testb $0x1, %al
jne 0x28b9
jmp 0x2905
leaq 0x26f70(%rip), %rax     # 0x29830
movq (%rax), %rdi
movq -0x40(%rbp), %rdx
xorl %eax, %eax
movl $0x200, %ecx            # imm = 0x200
cmpq $0x0, %rdx
cmovbel %ecx, %eax
movslq %eax, %rsi
movq -0x40(%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 0x36f0
movq %rax, -0x40(%rbp)
movq %rax, -0xb8(%rbp)
jmp 0x2935
leaq 0x26f24(%rip), %rax     # 0x29830
movq (%rax), %rdi
movq -0x40(%rbp), %rcx
movl $0x200, %esi            # imm = 0x200
movl $0x20000, %edx          # imm = 0x20000
xorl %r9d, %r9d
movl %r9d, %r8d
callq 0x37b0
movq %rax, -0x40(%rbp)
xorl %eax, %eax
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rax
callq 0x20a0
cmpl $0x0, (%rax)
je 0x2966
jmp 0x2948
leaq 0xf805(%rip), %rdi      # 0x12154
movb $0x0, %al
callq 0xf2c0
callq 0x20a0
movl $0x0, (%rax)
jmp 0x35cb
jmp 0x3151
leaq 0x26ec6(%rip), %rax     # 0x29838
cmpl $0x0, (%rax)
je 0x29a7
leaq 0x26eb2(%rip), %rax     # 0x29830
cmpq $0x0, (%rax)
je 0x2986
jmp 0x29a5
leaq 0xf797(%rip), %rdi      # 0x12124
leaq 0xf79f(%rip), %rsi      # 0x12133
movl $0x46, %edx
leaq 0xf79a(%rip), %rcx      # 0x1213a
callq 0x2240
jmp 0x29d7
movq -0x80(%rbp), %rax
movl $0x46, %esi
subq %rax, %rsi
leaq 0xf7bc(%rip), %rdi      # 0x12176
movl $0x1, %edx
callq 0xc470
movq -0x98(%rbp), %rax
movq %rax, -0xb0(%rbp)
jmp 0x35f0
cmpq $0x0, -0x38(%rbp)
je 0x29e3
callq 0x3600
leaq 0x26e46(%rip), %rax     # 0x29830
movq (%rax), %rdi
callq 0x2520
movq %rax, -0x38(%rbp)
cmpq $0x0, %rax
jne 0x2a5b
jmp 0x29fe
jmp 0x2a00
callq 0x20a0
cmpl $0x0, (%rax)
je 0x2a33
movq -0x78(%rbp), %rsi
leaq 0x26e1b(%rip), %rax     # 0x29830
movq (%rax), %rdx
leaq 0xf75a(%rip), %rdi      # 0x12179
movb $0x0, %al
callq 0xf070
callq 0x20a0
movl $0x0, (%rax)
jmp 0x2a4f
movq -0x78(%rbp), %rsi
leaq 0x26df2(%rip), %rax     # 0x29830
movq (%rax), %rdx
leaq 0xf731(%rip), %rdi      # 0x12179
movb $0x0, %al
callq 0xf2c0
jmp 0x2a51
movl $0x1, %edi
callq 0x24e0
jmp 0x3151
leaq 0x26dd1(%rip), %rax     # 0x29838
cmpl $0x0, (%rax)
je 0x2a9c
leaq 0x26dbd(%rip), %rax     # 0x29830
cmpq $0x0, (%rax)
je 0x2a7b
jmp 0x2a9a
leaq 0xf6a2(%rip), %rdi      # 0x12124
leaq 0xf6aa(%rip), %rsi      # 0x12133
movl $0x4c, %edx
leaq 0xf6a5(%rip), %rcx      # 0x1213a
callq 0x2240
jmp 0x2acc
movq -0x80(%rbp), %rax
movl $0x4c, %esi
subq %rax, %rsi
leaq 0xf6e8(%rip), %rdi      # 0x12197
movl $0x1, %edx
callq 0xc470
movq -0x98(%rbp), %rax
movq %rax, -0xb0(%rbp)
jmp 0x35f0
cmpq $0x0, -0x60(%rbp)
je 0x2ad8
callq 0x3600
callq 0x20a0
movl $0x0, (%rax)
movq $0x1, -0x60(%rbp)
movq -0x60(%rbp), %rax
movl $0x2, %ecx
cqto
idivq %rcx
movq %rax, -0x60(%rbp)
cmpq $0x0, %rax
jle 0x2b2d
leaq 0x26d26(%rip), %rax     # 0x29830
movq (%rax), %rdi
xorps %xmm0, %xmm0
movsd 0xf508(%rip), %xmm1     # 0x12020
xorl %esi, %esi
callq 0x3640
cvttsd2si %xmm0, %rax
movq %rax, -0x60(%rbp)
jmp 0x2bba
movq $-0x1, -0x60(%rbp)
movb $0x1, %al
testb $0x1, %al
jne 0x2b3d
jmp 0x2b84
leaq 0x26cec(%rip), %rax     # 0x29830
movq (%rax), %rdi
movq -0x60(%rbp), %rcx
xorl %eax, %eax
cmpq $0x0, %rcx
cmovlel %eax, %eax
movslq %eax, %rsi
movq -0x60(%rbp), %rdx
xorl %eax, %eax
movl $0x3b9ac9ff, %ecx       # imm = 0x3B9AC9FF
cmpq $0x0, %rdx
cmovlel %ecx, %eax
movslq %eax, %rdx
xorl %r8d, %r8d
movl %r8d, %ecx
callq 0x36f0
movq %rax, -0x60(%rbp)
movq %rax, -0xc0(%rbp)
jmp 0x2bb3
leaq 0x26ca5(%rip), %rax     # 0x29830
movq (%rax), %rdi
movq -0x60(%rbp), %rcx
xorl %eax, %eax
movl %eax, %esi
movl $0x3b9ac9ff, %edx       # imm = 0x3B9AC9FF
xorl %r9d, %r9d
movl %r9d, %r8d
callq 0x37b0
movq %rax, -0x60(%rbp)
xorl %eax, %eax
movq %rax, -0xc0(%rbp)
movq -0xc0(%rbp), %rax
callq 0x20a0
cmpl $0x0, (%rax)
je 0x2be4
jmp 0x2bc6
leaq 0xf5cd(%rip), %rdi      # 0x1219a
movb $0x0, %al
callq 0xf2c0
callq 0x20a0
movl $0x0, (%rax)
jmp 0x35cb
jmp 0x3151
leaq 0x26c48(%rip), %rax     # 0x29838
cmpl $0x0, (%rax)
je 0x2bf7
jmp 0x2c24
movq -0x80(%rbp), %rax
movl $0x54, %esi
subq %rax, %rsi
leaq 0xf5b5(%rip), %rdi      # 0x121bf
xorl %edx, %edx
callq 0xc470
movq -0x98(%rbp), %rax
movq %rax, -0xb0(%rbp)
jmp 0x35f0
cmpl $0x0, -0x64(%rbp)
je 0x2c2f
callq 0x3600
movl $0x1, -0x64(%rbp)
jmp 0x3151
leaq 0x26bf6(%rip), %rax     # 0x29838
cmpl $0x0, (%rax)
je 0x2c77
leaq 0x26be2(%rip), %rax     # 0x29830
cmpq $0x0, (%rax)
je 0x2c56
jmp 0x2c75
leaq 0xf4c7(%rip), %rdi      # 0x12124
leaq 0xf4cf(%rip), %rsi      # 0x12133
movl $0x59, %edx
leaq 0xf4ca(%rip), %rcx      # 0x1213a
callq 0x2240
jmp 0x2ca7
movq -0x80(%rbp), %rax
movl $0x59, %esi
subq %rax, %rsi
leaq 0xf538(%rip), %rdi      # 0x121c2
movl $0x1, %edx
callq 0xc470
movq -0x98(%rbp), %rax
movq %rax, -0xb0(%rbp)
jmp 0x35f0
cmpq $0x10, -0x48(%rbp)
je 0x2cb3
callq 0x3600
callq 0x20a0
movl $0x0, (%rax)
movq $0x1, -0x48(%rbp)
movq -0x48(%rbp), %rax
shrq %rax
movq %rax, -0x48(%rbp)
cmpq $0x0, %rax
jbe 0x2d27
leaq 0x26b52(%rip), %rax     # 0x29830
movq (%rax), %rdi
movsd 0xf31f(%rip), %xmm0     # 0x12008
movsd 0xf31f(%rip), %xmm1     # 0x12010
xorl %esi, %esi
callq 0x3640
movaps %xmm0, %xmm1
cvttsd2si %xmm1, %rax
movq %rax, %rdx
sarq $0x3f, %rdx
movsd 0xf309(%rip), %xmm1     # 0x12018
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %rcx
andq %rdx, %rcx
orq %rcx, %rax
movq %rax, -0x48(%rbp)
jmp 0x2dba
movq $-0x1, -0x48(%rbp)
xorl %eax, %eax
testb $0x1, %al
jne 0x2d37
jmp 0x2d83
leaq 0x26af2(%rip), %rax     # 0x29830
movq (%rax), %rdi
movq -0x48(%rbp), %rdx
xorl %eax, %eax
movl $0x1, %ecx
cmpq $0x0, %rdx
cmovbel %ecx, %eax
movslq %eax, %rsi
movq -0x48(%rbp), %rdx
xorl %eax, %eax
movl $0x3e8, %ecx            # imm = 0x3E8
cmpq $0x0, %rdx
cmovbel %ecx, %eax
movslq %eax, %rdx
xorl %r8d, %r8d
movl %r8d, %ecx
callq 0x36f0
movq %rax, -0x48(%rbp)
movq %rax, -0xc8(%rbp)
jmp 0x2db3
leaq 0x26aa6(%rip), %rax     # 0x29830
movq (%rax), %rdi
movq -0x48(%rbp), %rcx
movl $0x1, %esi
movl $0x3e8, %edx            # imm = 0x3E8
xorl %r9d, %r9d
movl %r9d, %r8d
callq 0x37b0
movq %rax, -0x48(%rbp)
xorl %eax, %eax
movq %rax, -0xc8(%rbp)
movq -0xc8(%rbp), %rax
callq 0x20a0
cmpl $0x0, (%rax)
je 0x2de4
jmp 0x2dc6
leaq 0xf3f8(%rip), %rdi      # 0x121c5
movb $0x0, %al
callq 0xf2c0
callq 0x20a0
movl $0x0, (%rax)
jmp 0x35cb
jmp 0x3151
leaq 0x26a48(%rip), %rax     # 0x29838
cmpl $0x0, (%rax)
je 0x2e25
leaq 0x26a34(%rip), %rax     # 0x29830
cmpq $0x0, (%rax)
je 0x2e04
jmp 0x2e23
leaq 0xf319(%rip), %rdi      # 0x12124
leaq 0xf321(%rip), %rsi      # 0x12133
movl $0x61, %edx
leaq 0xf31c(%rip), %rcx      # 0x1213a
callq 0x2240
jmp 0x2e55
movq -0x80(%rbp), %rax
movl $0x61, %esi
subq %rax, %rsi
leaq 0xf3b4(%rip), %rdi      # 0x121ec
movl $0x1, %edx
callq 0xc470
movq -0x98(%rbp), %rax
movq %rax, -0xb0(%rbp)
jmp 0x35f0
cmpq $0x0, -0x50(%rbp)
je 0x2e61
callq 0x3600
leaq 0x269c8(%rip), %rax     # 0x29830
movq (%rax), %rdi
callq 0x2520
movq %rax, -0x50(%rbp)
cmpq $0x0, %rax
jne 0x2ed9
jmp 0x2e7c
jmp 0x2e7e
callq 0x20a0
cmpl $0x0, (%rax)
je 0x2eb1
movq -0x78(%rbp), %rsi
leaq 0x2699d(%rip), %rax     # 0x29830
movq (%rax), %rdx
leaq 0xf2dc(%rip), %rdi      # 0x12179
movb $0x0, %al
callq 0xf070
callq 0x20a0
movl $0x0, (%rax)
jmp 0x2ecd
movq -0x78(%rbp), %rsi
leaq 0x26974(%rip), %rax     # 0x29830
movq (%rax), %rdx
leaq 0xf2b3(%rip), %rdi      # 0x12179
movb $0x0, %al
callq 0xf2c0
jmp 0x2ecf
movl $0x1, %edi
callq 0x24e0
jmp 0x3151
leaq 0x26953(%rip), %rax     # 0x29838
cmpl $0x0, (%rax)
je 0x2f1a
leaq 0x2693f(%rip), %rax     # 0x29830
cmpq $0x0, (%rax)
je 0x2ef9
jmp 0x2f18
leaq 0xf224(%rip), %rdi      # 0x12124
leaq 0xf22c(%rip), %rsi      # 0x12133
movl $0x67, %edx
leaq 0xf227(%rip), %rcx      # 0x1213a
callq 0x2240
jmp 0x2f4a
movq -0x80(%rbp), %rax
movl $0x67, %esi
subq %rax, %rsi
leaq 0xf2c2(%rip), %rdi      # 0x121ef
movl $0x1, %edx
callq 0xc470
movq -0x98(%rbp), %rax
movq %rax, -0xb0(%rbp)
jmp 0x35f0
cmpq $0x0, -0x30(%rbp)
je 0x2f56
callq 0x3600
leaq 0x268d3(%rip), %rax     # 0x29830
movq (%rax), %rdi
callq 0x2520
movq %rax, -0x30(%rbp)
cmpq $0x0, %rax
jne 0x2fce
jmp 0x2f71
jmp 0x2f73
callq 0x20a0
cmpl $0x0, (%rax)
je 0x2fa6
movq -0x78(%rbp), %rsi
leaq 0x268a8(%rip), %rax     # 0x29830
movq (%rax), %rdx
leaq 0xf1e7(%rip), %rdi      # 0x12179
movb $0x0, %al
callq 0xf070
callq 0x20a0
movl $0x0, (%rax)
jmp 0x2fc2
movq -0x78(%rbp), %rsi
leaq 0x2687f(%rip), %rax     # 0x29830
movq (%rax), %rdx
leaq 0xf1be(%rip), %rdi      # 0x12179
movb $0x0, %al
callq 0xf2c0
jmp 0x2fc4
movl $0x1, %edi
callq 0x24e0
jmp 0x3151
leaq 0x2685e(%rip), %rax     # 0x29838
cmpl $0x0, (%rax)
je 0x2fe1
jmp 0x300e
movq -0x80(%rbp), %rax
movl $0x6d, %esi
subq %rax, %rsi
leaq 0xf1fe(%rip), %rdi      # 0x121f2
xorl %edx, %edx
callq 0xc470
movq -0x98(%rbp), %rax
movq %rax, -0xb0(%rbp)
jmp 0x35f0
movq 0x15fe3(%rip), %rax     # 0x18ff8
movq (%rax), %rdi
leaq 0xf1dd(%rip), %rsi      # 0x121fc
movb $0x0, %al
callq 0x2320
xorl %edi, %edi
callq 0x24e0
leaq 0x26804(%rip), %rax     # 0x29838
cmpl $0x0, (%rax)
je 0x303b
jmp 0x3068
movq -0x80(%rbp), %rax
movl $0x70, %esi
subq %rax, %rsi
leaq 0xf1c5(%rip), %rdi      # 0x12213
xorl %edx, %edx
callq 0xc470
movq -0x98(%rbp), %rax
movq %rax, -0xb0(%rbp)
jmp 0x35f0
cmpl $0x0, -0x54(%rbp)
je 0x3073
callq 0x3600
movl $0x1, -0x54(%rbp)
jmp 0x3151
leaq 0x267b2(%rip), %rax     # 0x29838
cmpl $0x0, (%rax)
je 0x308d
jmp 0x30b1
movq -0x80(%rbp), %rax
movl $0x75, %edi
subq %rax, %rdi
callq 0xc700
movq -0x98(%rbp), %rax
movq %rax, -0xb0(%rbp)
jmp 0x35f0
jmp 0x30b3
movq -0x78(%rbp), %rsi
leaq 0xf158(%rip), %rdi      # 0x12216
movb $0x0, %al
callq 0xf2c0
callq 0x20a0
movl $0x0, (%rax)
callq 0x3600
jmp 0x312d
leaq 0x2675a(%rip), %rax     # 0x29838
movl $0x1, (%rax)
jmp 0x3151
leaq 0x2674b(%rip), %rax     # 0x29838
cmpl $0x0, (%rax)
je 0x30f4
jmp 0x312d
movl -0x8c(%rbp), %eax
cmpl $0x0, %eax
jne 0x311a
movq -0x80(%rbp), %rax
movl $0x78, %edi
subq %rax, %rdi
callq 0xc7c0
movl $0x1, -0x8c(%rbp)
movq -0x98(%rbp), %rax
movq %rax, -0xb0(%rbp)
jmp 0x35f0
jmp 0x312f
movq -0x78(%rbp), %rsi
leaq 0xf0f3(%rip), %rdi      # 0x1222d
movb $0x0, %al
callq 0xf2c0
callq 0x20a0
movl $0x0, (%rax)
callq 0x3600
jmp 0x2701
leaq 0x1648b(%rip), %rax     # 0x195e8
movl (%rax), %ecx
movl -0x8(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x8(%rbp)
leaq 0x1647a(%rip), %rax     # 0x195e8
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 0x318d
callq 0x3600
cmpq $0x0, -0x30(%rbp)
jne 0x3199
callq 0x3600
cmpq $0x0, -0x38(%rbp)
jne 0x31a5
callq 0x3600
cmpq $-0x1, -0x40(%rbp)
jne 0x31b1
callq 0x3600
movq -0x30(%rbp), %rdi
callq 0xd400
movq %rax, -0x70(%rbp)
cmpq $0x0, %rax
jne 0x3208
jmp 0x31c6
callq 0x20a0
cmpl $0x0, (%rax)
je 0x31ef
movq -0x30(%rbp), %rsi
leaq 0xf067(%rip), %rdi      # 0x12242
movb $0x0, %al
callq 0xf070
callq 0x20a0
movl $0x0, (%rax)
jmp 0x3201
movq -0x30(%rbp), %rsi
leaq 0xf048(%rip), %rdi      # 0x12242
movb $0x0, %al
callq 0xf2c0
jmp 0x3203
jmp 0x35cb
movq -0x70(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x3236
jmp 0x3214
movq -0x30(%rbp), %rsi
leaq 0xf046(%rip), %rdi      # 0x12265
movb $0x0, %al
callq 0xf2c0
callq 0x20a0
movl $0x0, (%rax)
jmp 0x35c2
movq -0x70(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x3262
jmp 0x3243
movq -0x30(%rbp), %rsi
leaq 0xf031(%rip), %rdi      # 0x1227f
movb $0x0, %al
callq 0xf2c0
callq 0x20a0
movl $0x0, (%rax)
jmp 0x3262
movq -0x70(%rbp), %rax
movq (%rax), %rdi
callq 0xe080
movl %eax, -0x24(%rbp)
cmpl $-0x1, %eax
jne 0x327b
jmp 0x35c2
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x60(%rbp), %rdx
movl -0x64(%rbp), %ecx
callq 0x58d0
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x32dd
jmp 0x329b
callq 0x20a0
cmpl $0x0, (%rax)
je 0x32c4
movq -0x38(%rbp), %rsi
leaq 0xf005(%rip), %rdi      # 0x122b5
movb $0x0, %al
callq 0xf070
callq 0x20a0
movl $0x0, (%rax)
jmp 0x32d6
movq -0x38(%rbp), %rsi
leaq 0xefe6(%rip), %rdi      # 0x122b5
movb $0x0, %al
callq 0xf2c0
jmp 0x32d8
jmp 0x357a
cmpq $0x0, -0x50(%rbp)
jne 0x333d
movq -0x30(%rbp), %rdx
leaq -0x50(%rbp), %rdi
leaq 0xefeb(%rip), %rsi      # 0x122de
movb $0x0, %al
callq 0xb850
cmpl $-0x1, %eax
jne 0x333b
jmp 0x3301
callq 0x20a0
cmpl $0x0, (%rax)
je 0x3326
leaq 0xefd3(%rip), %rdi      # 0x122e5
movb $0x0, %al
callq 0xf070
callq 0x20a0
movl $0x0, (%rax)
jmp 0x3334
leaq 0xefb8(%rip), %rdi      # 0x122e5
movb $0x0, %al
callq 0xf2c0
jmp 0x3336
jmp 0x3571
jmp 0x333d
movq -0x50(%rbp), %rdi
callq 0xb990
cmpl $0x0, %eax
je 0x3387
jmp 0x334d
callq 0x20a0
cmpl $0x0, (%rax)
je 0x3372
leaq 0xef90(%rip), %rdi      # 0x122ee
movb $0x0, %al
callq 0xf070
callq 0x20a0
movl $0x0, (%rax)
jmp 0x3380
leaq 0xef75(%rip), %rdi      # 0x122ee
movb $0x0, %al
callq 0xf2c0
jmp 0x3382
jmp 0x3571
movq -0x18(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x48(%rbp), %rdx
callq 0x3870
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
jne 0x33de
jmp 0x33a4
callq 0x20a0
cmpl $0x0, (%rax)
je 0x33c9
leaq 0xef4d(%rip), %rdi      # 0x12302
movb $0x0, %al
callq 0xf070
callq 0x20a0
movl $0x0, (%rax)
jmp 0x33d7
leaq 0xef32(%rip), %rdi      # 0x12302
movb $0x0, %al
callq 0xf2c0
jmp 0x33d9
jmp 0x3571
jmp 0x33e0
movq -0x20(%rbp), %rdi
movl -0x24(%rbp), %esi
callq 0x3f50
cmpl $0x0, %eax
je 0x342d
jmp 0x33f3
callq 0x20a0
cmpl $0x0, (%rax)
je 0x3418
leaq 0xef21(%rip), %rdi      # 0x12325
movb $0x0, %al
callq 0xf070
callq 0x20a0
movl $0x0, (%rax)
jmp 0x3426
leaq 0xef06(%rip), %rdi      # 0x12325
movb $0x0, %al
callq 0xf2c0
jmp 0x3428
jmp 0x3568
jmp 0x342f
callq 0x7e00
cmpl $0x0, %eax
je 0x3475
jmp 0x343b
callq 0x20a0
cmpl $0x0, (%rax)
je 0x3460
leaq 0xeef8(%rip), %rdi      # 0x12344
movb $0x0, %al
callq 0xf070
callq 0x20a0
movl $0x0, (%rax)
jmp 0x346e
leaq 0xeedd(%rip), %rdi      # 0x12344
movb $0x0, %al
callq 0xf2c0
jmp 0x3470
jmp 0x3568
jmp 0x3477
movq -0x20(%rbp), %rdi
callq 0x4220
cmpl $0x0, %eax
jne 0x342f
movq -0x20(%rbp), %rdi
callq 0x4260
cmpl $0x0, %eax
je 0x3498
jmp 0x3568
jmp 0x349a
cmpl $0x0, -0x54(%rbp)
je 0x33e0
movq -0x20(%rbp), %rdi
callq 0x4350
cmpl $0x0, %eax
je 0x34ee
jmp 0x34b4
callq 0x20a0
cmpl $0x0, (%rax)
je 0x34d9
leaq 0xee98(%rip), %rdi      # 0x1235d
movb $0x0, %al
callq 0xf070
callq 0x20a0
movl $0x0, (%rax)
jmp 0x34e7
leaq 0xee7d(%rip), %rdi      # 0x1235d
movb $0x0, %al
callq 0xf2c0
jmp 0x34e9
jmp 0x3571
movq -0x18(%rbp), %rdi
callq 0x62e0
movl -0x24(%rbp), %edi
callq 0x2260
cmpl $0x0, %eax
je 0x353d
jmp 0x3506
callq 0x20a0
cmpl $0x0, (%rax)
je 0x352b
leaq 0x1010d(%rip), %rdi     # 0x13624
movb $0x0, %al
callq 0xf070
callq 0x20a0
movl $0x0, (%rax)
jmp 0x3539
leaq 0x100f2(%rip), %rdi     # 0x13624
movb $0x0, %al
callq 0xf2c0
jmp 0x353b
jmp 0x353d
movq -0x70(%rbp), %rdi
callq 0xe030
movq -0x30(%rbp), %rdi
callq 0x2040
movq -0x50(%rbp), %rdi
callq 0x2040
movq -0x38(%rbp), %rdi
callq 0x2040
xorl %edi, %edi
callq 0x24e0
movq -0x20(%rbp), %rdi
callq 0x4350
movq -0x18(%rbp), %rdi
callq 0x62e0
movl -0x24(%rbp), %edi
callq 0x2260
cmpl $0x0, %eax
je 0x35c0
jmp 0x3589
callq 0x20a0
cmpl $0x0, (%rax)
je 0x35ae
leaq 0x1008a(%rip), %rdi     # 0x13624
movb $0x0, %al
callq 0xf070
callq 0x20a0
movl $0x0, (%rax)
jmp 0x35bc
leaq 0x1006f(%rip), %rdi     # 0x13624
movb $0x0, %al
callq 0xf2c0
jmp 0x35be
jmp 0x35c0
jmp 0x35c2
movq -0x70(%rbp), %rdi
callq 0xe030
movq -0x30(%rbp), %rdi
callq 0x2040
movq -0x50(%rbp), %rdi
callq 0x2040
movq -0x38(%rbp), %rdi
callq 0x2040
movl $0x1, %edi
callq 0x24e0
movq -0xb0(%rbp), %rax
jmpq *%rax
nopl (%rax)