// File: /workspace/github_c_makefile_star2_O3/Tarsnap[P]kivaloo/kvlds/main.c
// Function: main
int
main(int argc, char * argv[])
{
	/* State variables. */
	struct wire_requestqueue * Q_lbs;
	struct btree * T;
	struct dispatch_state * dstate;
	int s;
	int s_lbs;

	/* Command-line parameters. */
	uint64_t opt_C = (uint64_t)(-1);
	uint64_t opt_c = (uint64_t)(-1);
	uint64_t opt_g = (uint64_t)(-1);
	uint64_t opt_k = (uint64_t)(-1);
	char * opt_l = NULL;
	char * opt_p = NULL;
	double opt_S = 1.0;
	char * opt_s = NULL;
	uint64_t opt_v = (uint64_t)(-1);
	double opt_w = 0.0;
	int opt_1 = 0;

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

	WARNP_INIT;

	/* Parse the command line. */
	while ((ch = GETOPT(argc, argv)) != NULL) {
		GETOPT_SWITCH(ch) {
		GETOPT_OPTARG("-C"):
			if (opt_C != (uint64_t)(-1))
				usage();
			if (humansize_parse(optarg, &opt_C))
				OPT_EINVAL(ch, optarg);
			break;
		GETOPT_OPTARG("-c"):
			if (opt_c != (uint64_t)(-1))
				usage();
			if (humansize_parse(optarg, &opt_c))
				OPT_EINVAL(ch, optarg);
			break;
		GETOPT_OPTARG("-g"):
			if (opt_g != (uint64_t)(-1))
				usage();
			if (humansize_parse(optarg, &opt_g))
				OPT_EINVAL(ch, optarg);
			break;
		GETOPT_OPTARG("-k"):
			if (opt_k != (uint64_t)(-1))
				usage();
			if (humansize_parse(optarg, &opt_k))
				OPT_EINVAL(ch, optarg);
			break;
		GETOPT_OPTARG("-l"):
			if (opt_l != NULL)
				usage();
			if ((opt_l = strdup(optarg)) == NULL)
				OPT_EPARSE(ch, optarg);
			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 != 1.0)
				usage();
			if (PARSENUM(&opt_S, optarg, 0, INFINITY))
				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("-v"):
			if (opt_v != (uint64_t)(-1))
				usage();
			if (humansize_parse(optarg, &opt_v))
				OPT_EINVAL(ch, optarg);
			break;
		GETOPT_OPTARG("-w"):
			if (opt_w != 0.0)
				usage();
			if (PARSENUM(&opt_w, optarg, 0, INFINITY))
				OPT_EPARSE(ch, optarg);
			break;
		GETOPT_OPT("--version"):
			fprintf(stderr, "kivaloo-kvlds @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_l == NULL)
		usage();
	if ((opt_C != (uint64_t)(-1)) && (opt_c != (uint64_t)(-1)))
		usage();
	if ((opt_C != (uint64_t)(-1)) &&
	    ((opt_C < 1024) || (opt_C > 1024 * 1024 * 1024))) {
		warn0("Cache size in pages must be in [2^10, 2^30]");
		exit(1);
	}
	if ((opt_C != (uint64_t)(-1)) && (opt_C > SIZE_MAX)) {
		warn0("Maximum cache size in pages on this system is %zu",
		    SIZE_MAX);
		exit(1);
	}
	if ((opt_c != (uint64_t)(-1)) && (opt_c > SIZE_MAX)) {
		warn0("Maximum cache size on this system is %zu", SIZE_MAX);
		exit(1);
	}
	if ((opt_k != (uint64_t)(-1)) && (opt_k > 255)) {
		warn0("Keys longer than 255 bytes are not supported");
		exit(1);
	}
	if ((opt_v != (uint64_t)(-1)) && (opt_v > 255)) {
		warn0("Values longer than 255 bytes are not supported");
		exit(1);
	}
	if ((opt_w < 0.0) || (opt_w > 1.0)) {
		warn0("Commit delay time in [0.0, 1.0]: -w %f", opt_w);
		exit(1);
	}
	if ((opt_g != (uint64_t)(-1)) &&
	    ((opt_g < 1) || (opt_g > 1024))) {
		warn0("Forced commit size must be in [1, 1024]: "
		    "-g %" PRIu64, opt_g);
		exit(1);
	}

	/* Resolve 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 LBS address. */
	if ((sas_l = sock_resolve(opt_l)) == NULL) {
		warnp("Error resolving socket address: %s", opt_l);
		exit(1);
	}
	if (sas_l[0] == NULL) {
		warn0("No addresses found for %s", opt_l);
		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);

	/* Create a socket, connect to the LBS, and mark it non-blocking. */
	if ((s_lbs = sock_connect(sas_l)) == -1)
		exit(1);

	/* Create a queue of requests to the block store. */
	if ((Q_lbs = wire_requestqueue_init(s_lbs)) == NULL) {
		warnp("Cannot create LBS request queue");
		exit(1);
	}

	/* Initialize the B+Tree. */
	if ((T =
	    btree_init(Q_lbs, opt_C, opt_c, &opt_k, &opt_v, opt_S)) == NULL) {
		warnp("Cannot initialize B+Tree");
		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 a time. */
	do {
		/* Accept a connection. */
		if ((dstate = dispatch_accept(s, T,
		    (size_t)opt_k, (size_t)opt_v, opt_w, (size_t)opt_g))
		    == NULL)
			exit(1);

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

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

	/* Free the B+Tree. */
	btree_free(T);

	/* Shut down the LBS request queue. */
	wire_requestqueue_destroy(Q_lbs);
	wire_requestqueue_free(Q_lbs);

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

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

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

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

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
movl %edi, %ebp
movq $-0x1, %rax
movq %rax, 0x68(%rsp)
movq %rax, 0x60(%rsp)
movq %rax, 0x58(%rsp)
movq %rax, 0x40(%rsp)
movq $0x0, 0x28(%rsp)
movq %rax, 0x38(%rsp)
movq %rsi, 0x50(%rsp)
movq (%rsi), %rdi
testq %rdi, %rdi
je 0x2a2a
callq 0xff50
movl %ebp, %edi
movq 0x50(%rsp), %rsi
callq 0xdfd0
testq %rax, %rax
je 0x3580
movq %rax, %r15
movq $0x0, 0x20(%rsp)
movsd 0x115b5(%rip), %xmm0    # 0x14008
leaq 0x42e2e(%rip), %r12     # 0x45888
leaq 0x115e4(%rip), %r14     # 0x14045
movsd %xmm0, 0x70(%rsp)
xorpd %xmm0, %xmm0
movsd %xmm0, 0x30(%rsp)
leaq 0x11624(%rip), %r13     # 0x1409c
leaq 0x12ba5(%rip), %rbx     # 0x15624
movl $0x0, 0x1c(%rsp)
movq $0x0, 0x10(%rsp)
movl %ebp, 0x48(%rsp)
movq $0x4d, 0x8(%rsp)
movq 0x8(%rsp), %rax
decq %rax
movq %rax, 0x80(%rsp)
movl $0x0, 0x4c(%rsp)
cmpl $0x0, (%r12)
je 0x2acb
movq %r15, %rdi
callq 0xe317
addq 0x8(%rsp), %rax
jmp 0x2adf
movq 0x80(%rsp), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x80(%rsp)
cmpq $0x77, %rax
jg 0x2b2e
cmpq $0x5f, %rax
jle 0x2bbe
cmpq $0x6b, %rax
jg 0x2bfd
cmpq $0x60, %rax
je 0x2ca2
cmpq $0x66, %rax
jne 0x2d49
cmpl $0x0, (%r12)
jne 0x2e03
movl $0x66, %esi
subq 0x8(%rsp), %rsi
leaq 0x11543(%rip), %rdi     # 0x1406c
jmp 0x2d32
cmpq $0x89, %rax
movsd 0x30(%rsp), %xmm0
jle 0x2b7d
cmpq $0x91, %rax
jg 0x2c32
cmpq $0x8a, %rax
je 0x2c5d
cmpq $0x8d, %rax
jne 0x2d49
cmpl $0x0, (%r12)
jne 0x2f3a
movl $0x8d, %esi
subq 0x8(%rsp), %rsi
movq %rbx, %rdi
jmp 0x2c75
cmpq $0x78, %rax
je 0x2c81
cmpq $0x7e, %rax
je 0x2cde
cmpq $0x84, %rax
jne 0x2d49
cmpl $0x0, (%r12)
jne 0x2d88
movl $0x84, %esi
subq 0x8(%rsp), %rsi
leaq 0x114e0(%rip), %rdi     # 0x14099
jmp 0x2d32
cmpq $0x4e, %rax
je 0x2cfc
cmpq $0x54, %rax
je 0x2d16
cmpq $0x5a, %rax
jne 0x2d49
cmpl $0x0, (%r12)
jne 0x2fdc
movl $0x5a, %esi
subq 0x8(%rsp), %rsi
leaq 0x1146e(%rip), %rdi     # 0x14066
jmp 0x2d32
cmpq $0x6c, %rax
je 0x2cc0
cmpq $0x72, %rax
jne 0x2d49
cmpl $0x0, (%r12)
jne 0x2eaf
movl $0x72, %esi
subq 0x8(%rsp), %rsi
leaq 0x11463(%rip), %rdi     # 0x14090
jmp 0x2d32
cmpq $0x92, %rax
jne 0x2d41
cmpl $0x0, (%r12)
jne 0x3393
movl $0x92, %edi
subq 0x8(%rsp), %rdi
callq 0xe4e5
jmp 0x2ab5
cmpl $0x0, (%r12)
jne 0x3385
movl $0x8a, %esi
subq 0x8(%rsp), %rsi
movq %r13, %rdi
xorl %edx, %edx
callq 0xe3d4
jmp 0x2ab5
cmpl $0x0, (%r12)
jne 0x2f80
movl $0x78, %esi
subq 0x8(%rsp), %rsi
leaq 0x113f6(%rip), %rdi     # 0x14093
jmp 0x2d32
cmpl $0x0, (%r12)
jne 0x2e86
movl $0x60, %esi
subq 0x8(%rsp), %rsi
leaq 0x113ab(%rip), %rdi     # 0x14069
jmp 0x2d32
cmpl $0x0, (%r12)
jne 0x2f52
movl $0x6c, %esi
subq 0x8(%rsp), %rsi
leaq 0x113b1(%rip), %rdi     # 0x1408d
jmp 0x2d32
cmpl $0x0, (%r12)
jne 0x2fb6
movl $0x7e, %esi
subq 0x8(%rsp), %rsi
leaq 0x1139c(%rip), %rdi     # 0x14096
jmp 0x2d32
cmpl $0x0, (%r12)
jne 0x2e34
movl $0x4e, %esi
subq 0x8(%rsp), %rsi
movq %r14, %rdi
jmp 0x2d32
cmpl $0x0, (%r12)
jne 0x2e5d
movl $0x54, %esi
subq 0x8(%rsp), %rsi
leaq 0x11331(%rip), %rdi     # 0x14063
movl $0x1, %edx
callq 0xe3d4
jmp 0x2ab5
cmpq $0x95, %rax
je 0x2d7b
cmpl $0x0, (%r12)
jne 0x338a
cmpl $0x0, 0x4c(%rsp)
jne 0x2ab5
movl $0x95, %edi
subq 0x8(%rsp), %rdi
callq 0xe525
movl $0x1, 0x4c(%rsp)
jmp 0x2ab5
movl $0x1, (%r12)
jmp 0x300d
leaq 0x42af1(%rip), %rax     # 0x45880
movq (%rax), %rbp
testq %rbp, %rbp
je 0x34a7
ucomisd 0x1126d(%rip), %xmm0    # 0x14010
jne 0x33af
jp 0x33af
callq 0x20a0
movq %rax, %r14
movl $0x0, (%rax)
movq %rbp, %rdi
leaq 0x78(%rsp), %rsi
callq 0x20f0
movq 0x78(%rsp), %rcx
movl $0x16, %eax
cmpq %rbp, %rcx
je 0x3404
cmpb $0x0, (%rcx)
movl 0x48(%rsp), %ebp
jne 0x3404
xorpd %xmm1, %xmm1
ucomisd %xmm0, %xmm1
ja 0x33ff
movsd %xmm0, 0x30(%rsp)
jmp 0x2f2b
leaq 0x42a76(%rip), %rax     # 0x45880
movq (%rax), %r14
testq %r14, %r14
je 0x3542
cmpq $0x0, 0x20(%rsp)
jne 0x33af
movq %r14, %rdi
callq 0x23c0
movq %rax, 0x20(%rsp)
jmp 0x2fac
leaq 0x42a45(%rip), %rax     # 0x45880
movq (%rax), %rdi
testq %rdi, %rdi
je 0x3488
cmpq $-0x1, 0x68(%rsp)
jne 0x33af
leaq 0x68(%rsp), %rsi
jmp 0x3000
leaq 0x42a1c(%rip), %rax     # 0x45880
movq (%rax), %rdi
testq %rdi, %rdi
je 0x3469
cmpq $-0x1, 0x60(%rsp)
jne 0x33af
leaq 0x60(%rsp), %rsi
jmp 0x3000
leaq 0x429f3(%rip), %rax     # 0x45880
movq (%rax), %rdi
testq %rdi, %rdi
je 0x3561
cmpq $-0x1, 0x40(%rsp)
jne 0x33af
leaq 0x40(%rsp), %rsi
jmp 0x3000
leaq 0x429ca(%rip), %rax     # 0x45880
movq (%rax), %rbp
testq %rbp, %rbp
je 0x3504
movsd 0x70(%rsp), %xmm0
ucomisd 0x11138(%rip), %xmm0    # 0x14008
jne 0x33af
jp 0x33af
callq 0x20a0
movq %rax, %r14
movl $0x0, (%rax)
movq %rbp, %rdi
leaq 0x78(%rsp), %rsi
callq 0x20f0
movq 0x78(%rsp), %rcx
movl $0x16, %eax
cmpq %rbp, %rcx
je 0x3404
cmpb $0x0, (%rcx)
movl 0x48(%rsp), %ebp
jne 0x3404
xorpd %xmm1, %xmm1
ucomisd %xmm0, %xmm1
ja 0x33ff
movsd %xmm0, 0x70(%rsp)
cmpl $0x0, (%r14)
je 0x300d
jmp 0x3407
cmpl $0x0, 0x1c(%rsp)
movl $0x1, 0x1c(%rsp)
je 0x300d
jmp 0x33af
leaq 0x42927(%rip), %rax     # 0x45880
movq (%rax), %r14
testq %r14, %r14
je 0x3523
cmpq $0x0, 0x28(%rsp)
jne 0x33af
movq %r14, %rdi
callq 0x23c0
movq %rax, 0x28(%rsp)
jmp 0x2fac
leaq 0x428f9(%rip), %rax     # 0x45880
movq (%rax), %r14
testq %r14, %r14
je 0x34e5
cmpq $0x0, 0x10(%rsp)
jne 0x33af
movq %r14, %rdi
callq 0x23c0
movq %rax, 0x10(%rsp)
testq %rax, %rax
jne 0x300d
jmp 0x33dc
leaq 0x428c3(%rip), %rax     # 0x45880
movq (%rax), %rdi
testq %rdi, %rdi
je 0x34c6
cmpq $-0x1, 0x38(%rsp)
jne 0x33af
leaq 0x38(%rsp), %rsi
jmp 0x3000
leaq 0x4289d(%rip), %rax     # 0x45880
movq (%rax), %rdi
testq %rdi, %rdi
je 0x344a
cmpq $-0x1, 0x58(%rsp)
jne 0x33af
leaq 0x58(%rsp), %rsi
callq 0xe790
testl %eax, %eax
jne 0x33b4
movl %ebp, %edi
movq 0x50(%rsp), %rsi
callq 0xdfd0
movq %rax, %r15
testq %rax, %rax
leaq 0x1101f(%rip), %r14     # 0x14045
jne 0x2a94
leaq 0x1a5b5(%rip), %rax     # 0x1d5e8
cmpl %ebp, (%rax)
movq 0x10(%rsp), %r15
jne 0x33af
testq %r15, %r15
je 0x33af
movq 0x20(%rsp), %r14
testq %r14, %r14
movsd 0x30(%rsp), %xmm0
je 0x33af
movq 0x68(%rsp), %rax
cmpq $-0x1, %rax
je 0x3074
cmpq $-0x1, 0x60(%rsp)
jne 0x33af
cmpq $-0x1, %rax
sete %cl
addq $-0x40000001, %rax      # imm = 0xBFFFFFFF
cmpq $-0x3ffffc01, %rax      # imm = 0xC00003FF
setae %al
orb %cl, %al
je 0x358e
movq $-0x100, %rax
movq 0x40(%rsp), %rcx
addq %rax, %rcx
cmpq $-0x102, %rcx           # imm = 0xFEFE
jbe 0x3597
addq 0x38(%rsp), %rax
cmpq $-0x102, %rax           # imm = 0xFEFE
jbe 0x35a0
xorpd %xmm1, %xmm1
ucomisd %xmm0, %xmm1
ja 0x35b3
ucomisd 0x10f33(%rip), %xmm0    # 0x14008
ja 0x35b3
movq 0x58(%rsp), %rsi
cmpq $-0x1, %rsi
sete %al
leaq -0x401(%rsi), %rcx
cmpq $-0x400, %rcx           # imm = 0xFC00
setae %cl
orb %al, %cl
je 0x35c6
movq %r15, %rdi
callq 0xef4c
testq %rax, %rax
je 0x35cf
movq %rax, %rbx
cmpq $0x0, (%rax)
je 0x35eb
movq %r14, %rdi
callq 0xef4c
testq %rax, %rax
je 0x35f7
movq %rax, %r12
cmpq $0x0, (%rax)
je 0x361d
cmpq $0x0, 0x8(%rbx)
je 0x315f
leaq 0x110bd(%rip), %rdi     # 0x14207
movq %r15, %rsi
xorl %eax, %eax
callq 0x100ef
callq 0x20a0
movl $0x0, (%rax)
movq (%rbx), %rdi
callq 0xf6a2
cmpl $-0x1, %eax
je 0x337b
movl %eax, %ebp
movq %r12, %rdi
callq 0xf864
cmpl $-0x1, %eax
je 0x337b
movl %eax, %r15d
movq %r12, 0x50(%rsp)
movl %eax, %edi
callq 0x11dfc
testq %rax, %rax
je 0x3633
movq %rax, %r12
movq 0x68(%rsp), %rsi
movq 0x60(%rsp), %rdx
leaq 0x40(%rsp), %rcx
leaq 0x38(%rsp), %r8
movq %rax, %rdi
movsd 0x70(%rsp), %xmm0
callq 0x5a70
testq %rax, %rax
je 0x3649
movq %rax, %r13
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
jne 0x31fc
leaq 0x11099(%rip), %rsi     # 0x14276
leaq 0x28(%rsp), %rdi
movq 0x10(%rsp), %rdx
xorl %eax, %eax
callq 0xdcdc
cmpl $-0x1, %eax
je 0x36ce
movq 0x28(%rsp), %rdi
callq 0xdde0
testl %eax, %eax
jne 0x365f
movsd 0x30(%rsp), %xmm0
movq 0x40(%rsp), %rdx
movq 0x38(%rsp), %rcx
movq 0x58(%rsp), %r8
movl %ebp, %edi
movq %r13, %rsi
callq 0x3738
movq %rax, %r14
testq %rax, %rax
je 0x337b
callq 0xb638
testl %eax, %eax
jne 0x334a
movq %r14, %rdi
callq 0x3a9f
testl %eax, %eax
jne 0x3234
movq %r14, %rdi
callq 0x3ab5
testl %eax, %eax
jne 0x337b
cmpl $0x0, 0x1c(%rsp)
movsd 0x30(%rsp), %xmm0
je 0x320f
movq %r13, %rdi
callq 0x60e9
movq %r12, %rdi
callq 0x124ed
movq %r12, %rdi
callq 0x12501
movl %r15d, %edi
callq 0x21f0
testl %eax, %eax
movq 0x20(%rsp), %r15
movq 0x10(%rsp), %r12
movq 0x50(%rsp), %r13
je 0x32cf
callq 0x20a0
cmpl $0x0, (%rax)
je 0x32c1
movq %rax, %r14
leaq 0x12c51(%rip), %rdi     # 0x15f02
xorl %eax, %eax
callq 0xffd0
movl $0x0, (%r14)
jmp 0x32cf
leaq 0x12c3a(%rip), %rdi     # 0x15f02
xorl %eax, %eax
callq 0x100ef
movl %ebp, %edi
callq 0x21f0
testl %eax, %eax
je 0x330c
callq 0x20a0
cmpl $0x0, (%rax)
je 0x32fe
movq %rax, %r14
leaq 0x12c14(%rip), %rdi     # 0x15f02
xorl %eax, %eax
callq 0xffd0
movl $0x0, (%r14)
jmp 0x330c
leaq 0x12bfd(%rip), %rdi     # 0x15f02
xorl %eax, %eax
callq 0x100ef
movq %r13, %rdi
callq 0xf65e
movq %rbx, %rdi
callq 0xf65e
movq %r15, %rdi
callq 0x2040
movq 0x28(%rsp), %rdi
callq 0x2040
movq %r12, %rdi
callq 0x2040
xorl %eax, %eax
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x20a0
cmpl $0x0, (%rax)
jne 0x3364
leaq 0x10f3f(%rip), %rdi     # 0x1429a
xorl %eax, %eax
callq 0x100ef
jmp 0x337b
movq %rax, %rbx
leaq 0x10f2c(%rip), %rdi     # 0x1429a
xorl %eax, %eax
callq 0xffd0
movl $0x0, (%rbx)
movl $0x1, %edi
callq 0x2370
callq 0x2420
leaq 0x10d45(%rip), %rdi     # 0x140d6
jmp 0x339a
leaq 0x10d25(%rip), %rdi     # 0x140bf
movq %r15, %rsi
xorl %eax, %eax
callq 0x100ef
callq 0x20a0
movl $0x0, (%rax)
callq 0x36f3
leaq 0x424c5(%rip), %rax     # 0x45880
movq (%rax), %rdx
leaq 0x10c83(%rip), %rdi     # 0x14048
movq %r15, %rsi
xorl %eax, %eax
callq 0x100ef
callq 0x20a0
movl $0x0, (%rax)
jmp 0x337b
callq 0x20a0
cmpl $0x0, (%rax)
jne 0x342e
leaq 0x10c82(%rip), %rdi     # 0x1406f
movq %r15, %rsi
movq %r14, %rdx
xorl %eax, %eax
callq 0x100ef
jmp 0x337b
movl $0x22, %eax
movl %eax, (%r14)
leaq 0x42472(%rip), %rax     # 0x45880
movq (%rax), %rdx
leaq 0x10c57(%rip), %rdi     # 0x1406f
movq %r15, %rsi
xorl %eax, %eax
callq 0xffd0
movl $0x0, (%r14)
jmp 0x337b
movq %rax, %rbx
leaq 0x10c37(%rip), %rdi     # 0x1406f
movq %r15, %rsi
movq %r14, %rdx
xorl %eax, %eax
callq 0xffd0
jmp 0x3375
leaq 0x10bc7(%rip), %rdi     # 0x14018
leaq 0x10bcf(%rip), %rsi     # 0x14027
leaq 0x10bcf(%rip), %rcx     # 0x1402e
movl $0x5a, %edx
callq 0x21c0
leaq 0x10ba8(%rip), %rdi     # 0x14018
leaq 0x10bb0(%rip), %rsi     # 0x14027
leaq 0x10bb0(%rip), %rcx     # 0x1402e
movl $0x54, %edx
callq 0x21c0
leaq 0x10b89(%rip), %rdi     # 0x14018
leaq 0x10b91(%rip), %rsi     # 0x14027
leaq 0x10b91(%rip), %rcx     # 0x1402e
movl $0x4e, %edx
callq 0x21c0
leaq 0x10b6a(%rip), %rdi     # 0x14018
leaq 0x10b72(%rip), %rsi     # 0x14027
leaq 0x10b72(%rip), %rcx     # 0x1402e
movl $0x84, %edx
callq 0x21c0
leaq 0x10b4b(%rip), %rdi     # 0x14018
leaq 0x10b53(%rip), %rsi     # 0x14027
leaq 0x10b53(%rip), %rcx     # 0x1402e
movl $0x7e, %edx
callq 0x21c0
leaq 0x10b2c(%rip), %rdi     # 0x14018
leaq 0x10b34(%rip), %rsi     # 0x14027
leaq 0x10b34(%rip), %rcx     # 0x1402e
movl $0x78, %edx
callq 0x21c0
leaq 0x10b0d(%rip), %rdi     # 0x14018
leaq 0x10b15(%rip), %rsi     # 0x14027
leaq 0x10b15(%rip), %rcx     # 0x1402e
movl $0x72, %edx
callq 0x21c0
leaq 0x10aee(%rip), %rdi     # 0x14018
leaq 0x10af6(%rip), %rsi     # 0x14027
leaq 0x10af6(%rip), %rcx     # 0x1402e
movl $0x6c, %edx
callq 0x21c0
leaq 0x10acf(%rip), %rdi     # 0x14018
leaq 0x10ad7(%rip), %rsi     # 0x14027
leaq 0x10ad7(%rip), %rcx     # 0x1402e
movl $0x66, %edx
callq 0x21c0
leaq 0x10ab0(%rip), %rdi     # 0x14018
leaq 0x10ab8(%rip), %rsi     # 0x14027
leaq 0x10ab8(%rip), %rcx     # 0x1402e
movl $0x60, %edx
callq 0x21c0
leaq 0x1a061(%rip), %rax     # 0x1d5e8
cmpl %ebp, (%rax)
callq 0x36f3
leaq 0x10b56(%rip), %rdi     # 0x140eb
jmp 0x35a7
leaq 0x10b79(%rip), %rdi     # 0x14117
jmp 0x35a7
leaq 0x10b9d(%rip), %rdi     # 0x14144
xorl %eax, %eax
callq 0x100ef
jmp 0x33cf
leaq 0x10bb9(%rip), %rdi     # 0x14173
movb $0x1, %al
callq 0x100ef
jmp 0x33cf
leaq 0x10bcd(%rip), %rdi     # 0x1419a
jmp 0x3627
callq 0x20a0
cmpl $0x0, (%rax)
jne 0x3675
leaq 0x10be6(%rip), %rdi     # 0x141ca
movq 0x10(%rsp), %rsi
jmp 0x3611
leaq 0x10bfb(%rip), %rdi     # 0x141ed
movq %r15, %rsi
jmp 0x3627
callq 0x20a0
cmpl $0x0, (%rax)
jne 0x3686
leaq 0x10bbe(%rip), %rdi     # 0x141ca
movq 0x20(%rsp), %rsi
xorl %eax, %eax
callq 0x100ef
jmp 0x337b
leaq 0x10bc9(%rip), %rdi     # 0x141ed
movq %r14, %rsi
xorl %eax, %eax
callq 0x100ef
jmp 0x33cf
callq 0x20a0
cmpl $0x0, (%rax)
jne 0x36a1
leaq 0x10bf9(%rip), %rdi     # 0x1423d
jmp 0x335b
callq 0x20a0
cmpl $0x0, (%rax)
jne 0x36b0
leaq 0x10c03(%rip), %rdi     # 0x1425d
jmp 0x335b
callq 0x20a0
cmpl $0x0, (%rax)
jne 0x36bf
leaq 0x10c16(%rip), %rdi     # 0x14286
jmp 0x335b
movq %rax, %rbx
leaq 0x10b4b(%rip), %rdi     # 0x141ca
movq 0x10(%rsp), %rsi
jmp 0x3695
movq %rax, %rbx
leaq 0x10b3a(%rip), %rdi     # 0x141ca
movq 0x20(%rsp), %rsi
xorl %eax, %eax
callq 0xffd0
jmp 0x3375
movq %rax, %rbx
leaq 0x10b92(%rip), %rdi     # 0x1423d
jmp 0x336e
movq %rax, %rbx
leaq 0x10ba3(%rip), %rdi     # 0x1425d
jmp 0x336e
movq %rax, %rbx
leaq 0x10bbd(%rip), %rdi     # 0x14286
jmp 0x336e
callq 0x20a0
cmpl $0x0, (%rax)
jne 0x36e4
leaq 0x10b9e(%rip), %rdi     # 0x1427d
jmp 0x335b
movq %rax, %rbx
leaq 0x10b8f(%rip), %rdi     # 0x1427d
jmp 0x336e