// File: /workspace/github_c_makefile_star2_O0/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
movq %rsp, %rbp
subq $0x120, %rsp            # imm = 0x120
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $-0x1, -0x38(%rbp)
movq $-0x1, -0x40(%rbp)
movq $-0x1, -0x48(%rbp)
movq $-0x1, -0x50(%rbp)
movq $0x0, -0x58(%rbp)
movq $0x0, -0x60(%rbp)
movsd 0x1baa7(%rip), %xmm0    # 0x1e008
movsd %xmm0, -0x68(%rbp)
movq $0x0, -0x70(%rbp)
movq $-0x1, -0x78(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x80(%rbp)
movl $0x0, -0x84(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, (%rax)
je 0x259e
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x17fe0
jmp 0x25a0
jmp 0x25a2
movl -0x8(%rbp), %edi
movq -0x10(%rbp), %rsi
callq 0x14ad0
movq %rax, -0xa0(%rbp)
cmpq $0x0, %rax
je 0x3435
movq $0x4d, -0xa8(%rbp)
movq -0xa8(%rbp), %rax
decq %rax
movq %rax, -0xb0(%rbp)
movl $0x0, -0xb4(%rbp)
leaq 0x7(%rip), %rax         # 0x25f3
movq %rax, -0xc0(%rbp)
leaq 0x4e29e(%rip), %rax     # 0x50898
cmpl $0x0, (%rax)
je 0x261e
movq -0xa0(%rbp), %rdi
callq 0x15190
movq -0xa8(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0xc8(%rbp)
jmp 0x263a
movq -0xb0(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0xb0(%rbp)
movq %rax, -0xc8(%rbp)
movq -0xc8(%rbp), %rax
addq $-0x4e, %rax
movq %rax, -0xd0(%rbp)
subq $0x47, %rax
ja 0x33bf
movq -0xd0(%rbp), %rax
leaq 0x1b9f0(%rip), %rcx     # 0x1e054
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x4e224(%rip), %rax     # 0x50898
cmpl $0x0, (%rax)
je 0x26a9
leaq 0x4e210(%rip), %rax     # 0x50890
cmpq $0x0, (%rax)
je 0x2688
jmp 0x26a7
leaq 0x1bae5(%rip), %rdi     # 0x1e174
leaq 0x1baed(%rip), %rsi     # 0x1e183
movl $0x4e, %edx
leaq 0x1bae8(%rip), %rcx     # 0x1e18a
callq 0x21d0
jmp 0x26dc
movq -0xa8(%rbp), %rax
movl $0x4e, %esi
subq %rax, %rsi
leaq 0x1bae2(%rip), %rdi     # 0x1e1a1
movl $0x1, %edx
callq 0x152e0
movq -0xc0(%rbp), %rax
movq %rax, -0xd8(%rbp)
jmp 0x3ae3
cmpq $-0x1, -0x38(%rbp)
je 0x26e8
callq 0x3af0
leaq 0x4e1a1(%rip), %rax     # 0x50890
movq (%rax), %rdi
leaq -0x38(%rbp), %rsi
callq 0x15930
cmpl $0x0, %eax
je 0x2738
jmp 0x2702
jmp 0x2704
movq -0xa0(%rbp), %rsi
leaq 0x4e17e(%rip), %rax     # 0x50890
movq (%rax), %rdx
leaq 0x1ba88(%rip), %rdi     # 0x1e1a4
movb $0x0, %al
callq 0x182f0
callq 0x20a0
movl $0x0, (%rax)
movl $0x1, %edi
callq 0x2380
jmp 0x3430
leaq 0x4e154(%rip), %rax     # 0x50898
cmpl $0x0, (%rax)
je 0x2779
leaq 0x4e140(%rip), %rax     # 0x50890
cmpq $0x0, (%rax)
je 0x2758
jmp 0x2777
leaq 0x1ba15(%rip), %rdi     # 0x1e174
leaq 0x1ba1d(%rip), %rsi     # 0x1e183
movl $0x54, %edx
leaq 0x1ba18(%rip), %rcx     # 0x1e18a
callq 0x21d0
jmp 0x27ac
movq -0xa8(%rbp), %rax
movl $0x54, %esi
subq %rax, %rsi
leaq 0x1ba30(%rip), %rdi     # 0x1e1bf
movl $0x1, %edx
callq 0x152e0
movq -0xc0(%rbp), %rax
movq %rax, -0xd8(%rbp)
jmp 0x3ae3
cmpq $-0x1, -0x40(%rbp)
je 0x27b8
callq 0x3af0
leaq 0x4e0d1(%rip), %rax     # 0x50890
movq (%rax), %rdi
leaq -0x40(%rbp), %rsi
callq 0x15930
cmpl $0x0, %eax
je 0x2808
jmp 0x27d2
jmp 0x27d4
movq -0xa0(%rbp), %rsi
leaq 0x4e0ae(%rip), %rax     # 0x50890
movq (%rax), %rdx
leaq 0x1b9b8(%rip), %rdi     # 0x1e1a4
movb $0x0, %al
callq 0x182f0
callq 0x20a0
movl $0x0, (%rax)
movl $0x1, %edi
callq 0x2380
jmp 0x3430
leaq 0x4e084(%rip), %rax     # 0x50898
cmpl $0x0, (%rax)
je 0x2849
leaq 0x4e070(%rip), %rax     # 0x50890
cmpq $0x0, (%rax)
je 0x2828
jmp 0x2847
leaq 0x1b945(%rip), %rdi     # 0x1e174
leaq 0x1b94d(%rip), %rsi     # 0x1e183
movl $0x5a, %edx
leaq 0x1b948(%rip), %rcx     # 0x1e18a
callq 0x21d0
jmp 0x287c
movq -0xa8(%rbp), %rax
movl $0x5a, %esi
subq %rax, %rsi
leaq 0x1b963(%rip), %rdi     # 0x1e1c2
movl $0x1, %edx
callq 0x152e0
movq -0xc0(%rbp), %rax
movq %rax, -0xd8(%rbp)
jmp 0x3ae3
cmpq $-0x1, -0x48(%rbp)
je 0x2888
callq 0x3af0
leaq 0x4e001(%rip), %rax     # 0x50890
movq (%rax), %rdi
leaq -0x48(%rbp), %rsi
callq 0x15930
cmpl $0x0, %eax
je 0x28d8
jmp 0x28a2
jmp 0x28a4
movq -0xa0(%rbp), %rsi
leaq 0x4dfde(%rip), %rax     # 0x50890
movq (%rax), %rdx
leaq 0x1b8e8(%rip), %rdi     # 0x1e1a4
movb $0x0, %al
callq 0x182f0
callq 0x20a0
movl $0x0, (%rax)
movl $0x1, %edi
callq 0x2380
jmp 0x3430
leaq 0x4dfb4(%rip), %rax     # 0x50898
cmpl $0x0, (%rax)
je 0x2919
leaq 0x4dfa0(%rip), %rax     # 0x50890
cmpq $0x0, (%rax)
je 0x28f8
jmp 0x2917
leaq 0x1b875(%rip), %rdi     # 0x1e174
leaq 0x1b87d(%rip), %rsi     # 0x1e183
movl $0x60, %edx
leaq 0x1b878(%rip), %rcx     # 0x1e18a
callq 0x21d0
jmp 0x294c
movq -0xa8(%rbp), %rax
movl $0x60, %esi
subq %rax, %rsi
leaq 0x1b896(%rip), %rdi     # 0x1e1c5
movl $0x1, %edx
callq 0x152e0
movq -0xc0(%rbp), %rax
movq %rax, -0xd8(%rbp)
jmp 0x3ae3
cmpq $-0x1, -0x50(%rbp)
je 0x2958
callq 0x3af0
leaq 0x4df31(%rip), %rax     # 0x50890
movq (%rax), %rdi
leaq -0x50(%rbp), %rsi
callq 0x15930
cmpl $0x0, %eax
je 0x29a8
jmp 0x2972
jmp 0x2974
movq -0xa0(%rbp), %rsi
leaq 0x4df0e(%rip), %rax     # 0x50890
movq (%rax), %rdx
leaq 0x1b818(%rip), %rdi     # 0x1e1a4
movb $0x0, %al
callq 0x182f0
callq 0x20a0
movl $0x0, (%rax)
movl $0x1, %edi
callq 0x2380
jmp 0x3430
leaq 0x4dee4(%rip), %rax     # 0x50898
cmpl $0x0, (%rax)
je 0x29e9
leaq 0x4ded0(%rip), %rax     # 0x50890
cmpq $0x0, (%rax)
je 0x29c8
jmp 0x29e7
leaq 0x1b7a5(%rip), %rdi     # 0x1e174
leaq 0x1b7ad(%rip), %rsi     # 0x1e183
movl $0x66, %edx
leaq 0x1b7a8(%rip), %rcx     # 0x1e18a
callq 0x21d0
jmp 0x2a1c
movq -0xa8(%rbp), %rax
movl $0x66, %esi
subq %rax, %rsi
leaq 0x1b7c9(%rip), %rdi     # 0x1e1c8
movl $0x1, %edx
callq 0x152e0
movq -0xc0(%rbp), %rax
movq %rax, -0xd8(%rbp)
jmp 0x3ae3
cmpq $0x0, -0x58(%rbp)
je 0x2a28
callq 0x3af0
leaq 0x4de61(%rip), %rax     # 0x50890
movq (%rax), %rdi
callq 0x23c0
movq %rax, -0x58(%rbp)
cmpq $0x0, %rax
jne 0x2aa6
jmp 0x2a43
jmp 0x2a45
callq 0x20a0
cmpl $0x0, (%rax)
je 0x2a7b
movq -0xa0(%rbp), %rsi
leaq 0x4de33(%rip), %rax     # 0x50890
movq (%rax), %rdx
leaq 0x1b764(%rip), %rdi     # 0x1e1cb
movb $0x0, %al
callq 0x180a0
callq 0x20a0
movl $0x0, (%rax)
jmp 0x2a9a
movq -0xa0(%rbp), %rsi
leaq 0x4de07(%rip), %rax     # 0x50890
movq (%rax), %rdx
leaq 0x1b738(%rip), %rdi     # 0x1e1cb
movb $0x0, %al
callq 0x182f0
jmp 0x2a9c
movl $0x1, %edi
callq 0x2380
jmp 0x3430
leaq 0x4dde6(%rip), %rax     # 0x50898
cmpl $0x0, (%rax)
je 0x2ae7
leaq 0x4ddd2(%rip), %rax     # 0x50890
cmpq $0x0, (%rax)
je 0x2ac6
jmp 0x2ae5
leaq 0x1b6a7(%rip), %rdi     # 0x1e174
leaq 0x1b6af(%rip), %rsi     # 0x1e183
movl $0x6c, %edx
leaq 0x1b6aa(%rip), %rcx     # 0x1e18a
callq 0x21d0
jmp 0x2b1a
movq -0xa8(%rbp), %rax
movl $0x6c, %esi
subq %rax, %rsi
leaq 0x1b6ec(%rip), %rdi     # 0x1e1e9
movl $0x1, %edx
callq 0x152e0
movq -0xc0(%rbp), %rax
movq %rax, -0xd8(%rbp)
jmp 0x3ae3
cmpq $0x0, -0x60(%rbp)
je 0x2b26
callq 0x3af0
leaq 0x4dd63(%rip), %rax     # 0x50890
movq (%rax), %rdi
callq 0x23c0
movq %rax, -0x60(%rbp)
cmpq $0x0, %rax
jne 0x2ba4
jmp 0x2b41
jmp 0x2b43
callq 0x20a0
cmpl $0x0, (%rax)
je 0x2b79
movq -0xa0(%rbp), %rsi
leaq 0x4dd35(%rip), %rax     # 0x50890
movq (%rax), %rdx
leaq 0x1b666(%rip), %rdi     # 0x1e1cb
movb $0x0, %al
callq 0x180a0
callq 0x20a0
movl $0x0, (%rax)
jmp 0x2b98
movq -0xa0(%rbp), %rsi
leaq 0x4dd09(%rip), %rax     # 0x50890
movq (%rax), %rdx
leaq 0x1b63a(%rip), %rdi     # 0x1e1cb
movb $0x0, %al
callq 0x182f0
jmp 0x2b9a
movl $0x1, %edi
callq 0x2380
jmp 0x3430
leaq 0x4dce8(%rip), %rax     # 0x50898
cmpl $0x0, (%rax)
je 0x2be5
leaq 0x4dcd4(%rip), %rax     # 0x50890
cmpq $0x0, (%rax)
je 0x2bc4
jmp 0x2be3
leaq 0x1b5a9(%rip), %rdi     # 0x1e174
leaq 0x1b5b1(%rip), %rsi     # 0x1e183
movl $0x72, %edx
leaq 0x1b5ac(%rip), %rcx     # 0x1e18a
callq 0x21d0
jmp 0x2c18
movq -0xa8(%rbp), %rax
movl $0x72, %esi
subq %rax, %rsi
leaq 0x1b5f1(%rip), %rdi     # 0x1e1ec
movl $0x1, %edx
callq 0x152e0
movq -0xc0(%rbp), %rax
movq %rax, -0xd8(%rbp)
jmp 0x3ae3
movsd -0x68(%rbp), %xmm0
movsd 0x1b3e3(%rip), %xmm1    # 0x1e008
ucomisd %xmm1, %xmm0
jne 0x2c2f
jp 0x2c2f
jmp 0x2c34
callq 0x3af0
callq 0x20a0
movl $0x0, (%rax)
movsd 0x1b3c1(%rip), %xmm0    # 0x1e008
movsd %xmm0, -0x68(%rbp)
movsd -0x68(%rbp), %xmm0
movsd 0x1b3b7(%rip), %xmm1    # 0x1e010
divsd %xmm1, %xmm0
movsd %xmm0, -0x68(%rbp)
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x2c91
leaq 0x4dc1e(%rip), %rax     # 0x50890
movq (%rax), %rdi
xorps %xmm0, %xmm0
movsd 0x1b3a8(%rip), %xmm1    # 0x1e028
xorl %esi, %esi
callq 0x3b30
movsd %xmm0, -0x68(%rbp)
jmp 0x2dc9
movsd 0x1b37f(%rip), %xmm0    # 0x1e018
movsd %xmm0, -0x68(%rbp)
movb $0x1, %al
testb $0x1, %al
jne 0x2ca9
jmp 0x2d47
leaq 0x4dbe0(%rip), %rax     # 0x50890
movq (%rax), %rax
movq %rax, -0xf0(%rbp)
movsd -0x68(%rbp), %xmm1
xorps %xmm0, %xmm0
xorl %eax, %eax
ucomisd %xmm1, %xmm0
cmovael %eax, %eax
cltq
movq %rax, -0xe8(%rbp)
movsd -0x68(%rbp), %xmm2
xorps %xmm1, %xmm1
movss 0x1b36c(%rip), %xmm0    # 0x1e050
xorps %xmm3, %xmm3
movss %xmm3, -0xe0(%rbp)
ucomisd %xmm2, %xmm1
movss %xmm0, -0xdc(%rbp)
jae 0x2d0d
movss -0xe0(%rbp), %xmm0
movss %xmm0, -0xdc(%rbp)
movq -0xe8(%rbp), %rsi
movq -0xf0(%rbp), %rdi
movss -0xdc(%rbp), %xmm0
cvttss2si %xmm0, %rdx
xorl %r8d, %r8d
movl %r8d, %ecx
callq 0x3be0
cvtsi2sd %rax, %xmm0
movsd %xmm0, -0x68(%rbp)
movsd %xmm0, -0xf8(%rbp)
jmp 0x2dc1
leaq 0x4db42(%rip), %rax     # 0x50890
movq (%rax), %rdi
movsd -0x68(%rbp), %xmm0
movsd 0x1b2c2(%rip), %xmm2    # 0x1e020
movaps %xmm0, %xmm1
subsd %xmm2, %xmm1
cvttsd2si %xmm1, %rax
cvttsd2si %xmm0, %rcx
movq %rcx, %rdx
sarq $0x3f, %rdx
andq %rdx, %rax
orq %rax, %rcx
xorl %r9d, %r9d
movl %r9d, %esi
movl %r9d, %r8d
callq 0x3ca0
movq %rax, %xmm0
movaps 0x1b29a(%rip), %xmm1    # 0x1e030
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x1b29e(%rip), %xmm1    # 0x1e040
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd %xmm0, -0x68(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0xf8(%rbp)
movsd -0xf8(%rbp), %xmm0
callq 0x20a0
cmpl $0x0, (%rax)
je 0x2e38
jmp 0x2dd5
jmp 0x2dd7
callq 0x20a0
cmpl $0x0, (%rax)
je 0x2e0d
movq -0xa0(%rbp), %rsi
leaq 0x4daa1(%rip), %rax     # 0x50890
movq (%rax), %rdx
leaq 0x1b3d2(%rip), %rdi     # 0x1e1cb
movb $0x0, %al
callq 0x180a0
callq 0x20a0
movl $0x0, (%rax)
jmp 0x2e2c
movq -0xa0(%rbp), %rsi
leaq 0x4da75(%rip), %rax     # 0x50890
movq (%rax), %rdx
leaq 0x1b3a6(%rip), %rdi     # 0x1e1cb
movb $0x0, %al
callq 0x182f0
jmp 0x2e2e
movl $0x1, %edi
callq 0x2380
jmp 0x3430
leaq 0x4da54(%rip), %rax     # 0x50898
cmpl $0x0, (%rax)
je 0x2e79
leaq 0x4da40(%rip), %rax     # 0x50890
cmpq $0x0, (%rax)
je 0x2e58
jmp 0x2e77
leaq 0x1b315(%rip), %rdi     # 0x1e174
leaq 0x1b31d(%rip), %rsi     # 0x1e183
movl $0x78, %edx
leaq 0x1b318(%rip), %rcx     # 0x1e18a
callq 0x21d0
jmp 0x2eac
movq -0xa8(%rbp), %rax
movl $0x78, %esi
subq %rax, %rsi
leaq 0x1b360(%rip), %rdi     # 0x1e1ef
movl $0x1, %edx
callq 0x152e0
movq -0xc0(%rbp), %rax
movq %rax, -0xd8(%rbp)
jmp 0x3ae3
cmpq $0x0, -0x70(%rbp)
je 0x2eb8
callq 0x3af0
leaq 0x4d9d1(%rip), %rax     # 0x50890
movq (%rax), %rdi
callq 0x23c0
movq %rax, -0x70(%rbp)
cmpq $0x0, %rax
jne 0x2f36
jmp 0x2ed3
jmp 0x2ed5
callq 0x20a0
cmpl $0x0, (%rax)
je 0x2f0b
movq -0xa0(%rbp), %rsi
leaq 0x4d9a3(%rip), %rax     # 0x50890
movq (%rax), %rdx
leaq 0x1b2d4(%rip), %rdi     # 0x1e1cb
movb $0x0, %al
callq 0x180a0
callq 0x20a0
movl $0x0, (%rax)
jmp 0x2f2a
movq -0xa0(%rbp), %rsi
leaq 0x4d977(%rip), %rax     # 0x50890
movq (%rax), %rdx
leaq 0x1b2a8(%rip), %rdi     # 0x1e1cb
movb $0x0, %al
callq 0x182f0
jmp 0x2f2c
movl $0x1, %edi
callq 0x2380
jmp 0x3430
leaq 0x4d956(%rip), %rax     # 0x50898
cmpl $0x0, (%rax)
je 0x2f77
leaq 0x4d942(%rip), %rax     # 0x50890
cmpq $0x0, (%rax)
je 0x2f56
jmp 0x2f75
leaq 0x1b217(%rip), %rdi     # 0x1e174
leaq 0x1b21f(%rip), %rsi     # 0x1e183
movl $0x7e, %edx
leaq 0x1b21a(%rip), %rcx     # 0x1e18a
callq 0x21d0
jmp 0x2faa
movq -0xa8(%rbp), %rax
movl $0x7e, %esi
subq %rax, %rsi
leaq 0x1b265(%rip), %rdi     # 0x1e1f2
movl $0x1, %edx
callq 0x152e0
movq -0xc0(%rbp), %rax
movq %rax, -0xd8(%rbp)
jmp 0x3ae3
cmpq $-0x1, -0x78(%rbp)
je 0x2fb6
callq 0x3af0
leaq 0x4d8d3(%rip), %rax     # 0x50890
movq (%rax), %rdi
leaq -0x78(%rbp), %rsi
callq 0x15930
cmpl $0x0, %eax
je 0x3006
jmp 0x2fd0
jmp 0x2fd2
movq -0xa0(%rbp), %rsi
leaq 0x4d8b0(%rip), %rax     # 0x50890
movq (%rax), %rdx
leaq 0x1b1ba(%rip), %rdi     # 0x1e1a4
movb $0x0, %al
callq 0x182f0
callq 0x20a0
movl $0x0, (%rax)
movl $0x1, %edi
callq 0x2380
jmp 0x3430
leaq 0x4d886(%rip), %rax     # 0x50898
cmpl $0x0, (%rax)
je 0x3047
leaq 0x4d872(%rip), %rax     # 0x50890
cmpq $0x0, (%rax)
je 0x3026
jmp 0x3045
leaq 0x1b147(%rip), %rdi     # 0x1e174
leaq 0x1b14f(%rip), %rsi     # 0x1e183
movl $0x84, %edx
leaq 0x1b14a(%rip), %rcx     # 0x1e18a
callq 0x21d0
jmp 0x307a
movq -0xa8(%rbp), %rax
movl $0x84, %esi
subq %rax, %rsi
leaq 0x1b198(%rip), %rdi     # 0x1e1f5
movl $0x1, %edx
callq 0x152e0
movq -0xc0(%rbp), %rax
movq %rax, -0xd8(%rbp)
jmp 0x3ae3
movsd -0x80(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x308c
jp 0x308c
jmp 0x3091
callq 0x3af0
callq 0x20a0
movl $0x0, (%rax)
movsd 0x1af64(%rip), %xmm0    # 0x1e008
movsd %xmm0, -0x80(%rbp)
movsd -0x80(%rbp), %xmm0
movsd 0x1af5a(%rip), %xmm1    # 0x1e010
divsd %xmm1, %xmm0
movsd %xmm0, -0x80(%rbp)
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x30ee
leaq 0x4d7c1(%rip), %rax     # 0x50890
movq (%rax), %rdi
xorps %xmm0, %xmm0
movsd 0x1af4b(%rip), %xmm1    # 0x1e028
xorl %esi, %esi
callq 0x3b30
movsd %xmm0, -0x80(%rbp)
jmp 0x3226
movsd 0x1af22(%rip), %xmm0    # 0x1e018
movsd %xmm0, -0x80(%rbp)
movb $0x1, %al
testb $0x1, %al
jne 0x3106
jmp 0x31a4
leaq 0x4d783(%rip), %rax     # 0x50890
movq (%rax), %rax
movq %rax, -0x110(%rbp)
movsd -0x80(%rbp), %xmm1
xorps %xmm0, %xmm0
xorl %eax, %eax
ucomisd %xmm1, %xmm0
cmovael %eax, %eax
cltq
movq %rax, -0x108(%rbp)
movsd -0x80(%rbp), %xmm2
xorps %xmm1, %xmm1
movss 0x1af0f(%rip), %xmm0    # 0x1e050
xorps %xmm3, %xmm3
movss %xmm3, -0x100(%rbp)
ucomisd %xmm2, %xmm1
movss %xmm0, -0xfc(%rbp)
jae 0x316a
movss -0x100(%rbp), %xmm0
movss %xmm0, -0xfc(%rbp)
movq -0x108(%rbp), %rsi
movq -0x110(%rbp), %rdi
movss -0xfc(%rbp), %xmm0
cvttss2si %xmm0, %rdx
xorl %r8d, %r8d
movl %r8d, %ecx
callq 0x3be0
cvtsi2sd %rax, %xmm0
movsd %xmm0, -0x80(%rbp)
movsd %xmm0, -0x118(%rbp)
jmp 0x321e
leaq 0x4d6e5(%rip), %rax     # 0x50890
movq (%rax), %rdi
movsd -0x80(%rbp), %xmm0
movsd 0x1ae65(%rip), %xmm2    # 0x1e020
movaps %xmm0, %xmm1
subsd %xmm2, %xmm1
cvttsd2si %xmm1, %rax
cvttsd2si %xmm0, %rcx
movq %rcx, %rdx
sarq $0x3f, %rdx
andq %rdx, %rax
orq %rax, %rcx
xorl %r9d, %r9d
movl %r9d, %esi
movl %r9d, %r8d
callq 0x3ca0
movq %rax, %xmm0
movaps 0x1ae3d(%rip), %xmm1    # 0x1e030
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x1ae41(%rip), %xmm1    # 0x1e040
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd %xmm0, -0x80(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x118(%rbp)
movsd -0x118(%rbp), %xmm0
callq 0x20a0
cmpl $0x0, (%rax)
je 0x3295
jmp 0x3232
jmp 0x3234
callq 0x20a0
cmpl $0x0, (%rax)
je 0x326a
movq -0xa0(%rbp), %rsi
leaq 0x4d644(%rip), %rax     # 0x50890
movq (%rax), %rdx
leaq 0x1af75(%rip), %rdi     # 0x1e1cb
movb $0x0, %al
callq 0x180a0
callq 0x20a0
movl $0x0, (%rax)
jmp 0x3289
movq -0xa0(%rbp), %rsi
leaq 0x4d618(%rip), %rax     # 0x50890
movq (%rax), %rdx
leaq 0x1af49(%rip), %rdi     # 0x1e1cb
movb $0x0, %al
callq 0x182f0
jmp 0x328b
movl $0x1, %edi
callq 0x2380
jmp 0x3430
leaq 0x4d5f7(%rip), %rax     # 0x50898
cmpl $0x0, (%rax)
je 0x32a8
jmp 0x32d8
movq -0xa8(%rbp), %rax
movl $0x8a, %esi
subq %rax, %rsi
leaq 0x1af3a(%rip), %rdi     # 0x1e1f8
xorl %edx, %edx
callq 0x152e0
movq -0xc0(%rbp), %rax
movq %rax, -0xd8(%rbp)
jmp 0x3ae3
movq 0x24d19(%rip), %rax     # 0x27ff8
movq (%rax), %rdi
leaq 0x1af19(%rip), %rsi     # 0x1e202
movb $0x0, %al
callq 0x2270
xorl %edi, %edi
callq 0x2380
leaq 0x4d59a(%rip), %rax     # 0x50898
cmpl $0x0, (%rax)
je 0x3305
jmp 0x3335
movq -0xa8(%rbp), %rax
movl $0x8d, %esi
subq %rax, %rsi
leaq 0x1c7b2(%rip), %rdi     # 0x1facd
xorl %edx, %edx
callq 0x152e0
movq -0xc0(%rbp), %rax
movq %rax, -0xd8(%rbp)
jmp 0x3ae3
cmpl $0x0, -0x84(%rbp)
je 0x3343
callq 0x3af0
movl $0x1, -0x84(%rbp)
jmp 0x3430
leaq 0x4d53f(%rip), %rax     # 0x50898
cmpl $0x0, (%rax)
je 0x3360
jmp 0x3387
movq -0xa8(%rbp), %rax
movl $0x92, %edi
subq %rax, %rdi
callq 0x15570
movq -0xc0(%rbp), %rax
movq %rax, -0xd8(%rbp)
jmp 0x3ae3
jmp 0x3389
movq -0xa0(%rbp), %rsi
leaq 0x1ae84(%rip), %rdi     # 0x1e21b
movb $0x0, %al
callq 0x182f0
callq 0x20a0
movl $0x0, (%rax)
callq 0x3af0
jmp 0x3409
leaq 0x4d4e1(%rip), %rax     # 0x50898
movl $0x1, (%rax)
jmp 0x3430
leaq 0x4d4d2(%rip), %rax     # 0x50898
cmpl $0x0, (%rax)
je 0x33cd
jmp 0x3409
movl -0xb4(%rbp), %eax
cmpl $0x0, %eax
jne 0x33f6
movq -0xa8(%rbp), %rax
movl $0x95, %edi
subq %rax, %rdi
callq 0x15630
movl $0x1, -0xb4(%rbp)
movq -0xc0(%rbp), %rax
movq %rax, -0xd8(%rbp)
jmp 0x3ae3
jmp 0x340b
movq -0xa0(%rbp), %rsi
leaq 0x1ae19(%rip), %rdi     # 0x1e232
movb $0x0, %al
callq 0x182f0
callq 0x20a0
movl $0x0, (%rax)
callq 0x3af0
jmp 0x25a2
leaq 0x251ac(%rip), %rax     # 0x285e8
movl (%rax), %ecx
movl -0x8(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x8(%rbp)
leaq 0x2519b(%rip), %rax     # 0x285e8
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 0x346c
callq 0x3af0
cmpq $0x0, -0x70(%rbp)
jne 0x3478
callq 0x3af0
cmpq $0x0, -0x58(%rbp)
jne 0x3484
callq 0x3af0
cmpq $-0x1, -0x38(%rbp)
je 0x3497
cmpq $-0x1, -0x40(%rbp)
je 0x3497
callq 0x3af0
cmpq $-0x1, -0x38(%rbp)
je 0x34d7
cmpq $0x400, -0x38(%rbp)     # imm = 0x400
jb 0x34b2
cmpq $0x40000000, -0x38(%rbp) # imm = 0x40000000
jbe 0x34d7
jmp 0x34b4
leaq 0x1ad8c(%rip), %rdi     # 0x1e247
movb $0x0, %al
callq 0x182f0
callq 0x20a0
movl $0x0, (%rax)
movl $0x1, %edi
callq 0x2380
cmpq $-0x1, -0x38(%rbp)
je 0x3511
cmpq $-0x1, -0x38(%rbp)
jbe 0x3511
jmp 0x34e7
leaq 0x1ad85(%rip), %rdi     # 0x1e273
movq $-0x1, %rsi
movb $0x0, %al
callq 0x182f0
callq 0x20a0
movl $0x0, (%rax)
movl $0x1, %edi
callq 0x2380
cmpq $-0x1, -0x40(%rbp)
je 0x354b
cmpq $-0x1, -0x40(%rbp)
jbe 0x354b
jmp 0x3521
leaq 0x1ad7d(%rip), %rdi     # 0x1e2a5
movq $-0x1, %rsi
movb $0x0, %al
callq 0x182f0
callq 0x20a0
movl $0x0, (%rax)
movl $0x1, %edi
callq 0x2380
cmpq $-0x1, -0x50(%rbp)
je 0x3581
cmpq $0xff, -0x50(%rbp)
jbe 0x3581
jmp 0x355e
leaq 0x1ad69(%rip), %rdi     # 0x1e2ce
movb $0x0, %al
callq 0x182f0
callq 0x20a0
movl $0x0, (%rax)
movl $0x1, %edi
callq 0x2380
cmpq $-0x1, -0x78(%rbp)
je 0x35b7
cmpq $0xff, -0x78(%rbp)
jbe 0x35b7
jmp 0x3594
leaq 0x1ad60(%rip), %rdi     # 0x1e2fb
movb $0x0, %al
callq 0x182f0
callq 0x20a0
movl $0x0, (%rax)
movl $0x1, %edi
callq 0x2380
xorps %xmm0, %xmm0
ucomisd -0x80(%rbp), %xmm0
ja 0x35d4
movsd -0x80(%rbp), %xmm0
movsd 0x1aa3a(%rip), %xmm1    # 0x1e008
ucomisd %xmm1, %xmm0
jbe 0x35fe
jmp 0x35d6
movsd -0x80(%rbp), %xmm0
leaq 0x1ad48(%rip), %rdi     # 0x1e32a
movb $0x1, %al
callq 0x182f0
callq 0x20a0
movl $0x0, (%rax)
movl $0x1, %edi
callq 0x2380
cmpq $-0x1, -0x48(%rbp)
je 0x363f
cmpq $0x1, -0x48(%rbp)
jb 0x3616
cmpq $0x400, -0x48(%rbp)     # imm = 0x400
jbe 0x363f
jmp 0x3618
movq -0x48(%rbp), %rsi
leaq 0x1ad2e(%rip), %rdi     # 0x1e351
movb $0x0, %al
callq 0x182f0
callq 0x20a0
movl $0x0, (%rax)
movl $0x1, %edi
callq 0x2380
movq -0x70(%rbp), %rdi
callq 0x16430
movq %rax, -0x90(%rbp)
cmpq $0x0, %rax
jne 0x369e
jmp 0x3657
callq 0x20a0
cmpl $0x0, (%rax)
je 0x3680
movq -0x70(%rbp), %rsi
leaq 0x1ad15(%rip), %rdi     # 0x1e381
movb $0x0, %al
callq 0x180a0
callq 0x20a0
movl $0x0, (%rax)
jmp 0x3692
movq -0x70(%rbp), %rsi
leaq 0x1acf6(%rip), %rdi     # 0x1e381
movb $0x0, %al
callq 0x182f0
jmp 0x3694
movl $0x1, %edi
callq 0x2380
movq -0x90(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x36d4
jmp 0x36ad
movq -0x70(%rbp), %rsi
leaq 0x1acec(%rip), %rdi     # 0x1e3a4
movb $0x0, %al
callq 0x182f0
callq 0x20a0
movl $0x0, (%rax)
movl $0x1, %edi
callq 0x2380
movq -0x58(%rbp), %rdi
callq 0x16430
movq %rax, -0x98(%rbp)
cmpq $0x0, %rax
jne 0x3733
jmp 0x36ec
callq 0x20a0
cmpl $0x0, (%rax)
je 0x3715
movq -0x58(%rbp), %rsi
leaq 0x1ac80(%rip), %rdi     # 0x1e381
movb $0x0, %al
callq 0x180a0
callq 0x20a0
movl $0x0, (%rax)
jmp 0x3727
movq -0x58(%rbp), %rsi
leaq 0x1ac61(%rip), %rdi     # 0x1e381
movb $0x0, %al
callq 0x182f0
jmp 0x3729
movl $0x1, %edi
callq 0x2380
movq -0x98(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x3769
jmp 0x3742
movq -0x58(%rbp), %rsi
leaq 0x1ac57(%rip), %rdi     # 0x1e3a4
movb $0x0, %al
callq 0x182f0
callq 0x20a0
movl $0x0, (%rax)
movl $0x1, %edi
callq 0x2380
movq -0x90(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x3798
jmp 0x3779
movq -0x70(%rbp), %rsi
leaq 0x1ac3a(%rip), %rdi     # 0x1e3be
movb $0x0, %al
callq 0x182f0
callq 0x20a0
movl $0x0, (%rax)
jmp 0x3798
movq -0x90(%rbp), %rax
movq (%rax), %rdi
callq 0x170b0
movl %eax, -0x2c(%rbp)
cmpl $-0x1, %eax
jne 0x37b9
movl $0x1, %edi
callq 0x2380
movq -0x98(%rbp), %rdi
callq 0x17300
movl %eax, -0x30(%rbp)
cmpl $-0x1, %eax
jne 0x37d7
movl $0x1, %edi
callq 0x2380
movl -0x30(%rbp), %edi
callq 0x1b610
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x382a
jmp 0x37eb
callq 0x20a0
cmpl $0x0, (%rax)
je 0x3810
leaq 0x1abf8(%rip), %rdi     # 0x1e3f4
movb $0x0, %al
callq 0x180a0
callq 0x20a0
movl $0x0, (%rax)
jmp 0x381e
leaq 0x1abdd(%rip), %rdi     # 0x1e3f4
movb $0x0, %al
callq 0x182f0
jmp 0x3820
movl $0x1, %edi
callq 0x2380
movq -0x18(%rbp), %rdi
movq -0x38(%rbp), %rsi
movq -0x40(%rbp), %rdx
movsd -0x68(%rbp), %xmm0
leaq -0x50(%rbp), %rcx
leaq -0x78(%rbp), %r8
callq 0x70d0
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
jne 0x3893
jmp 0x3854
callq 0x20a0
cmpl $0x0, (%rax)
je 0x3879
leaq 0x1abaf(%rip), %rdi     # 0x1e414
movb $0x0, %al
callq 0x180a0
callq 0x20a0
movl $0x0, (%rax)
jmp 0x3887
leaq 0x1ab94(%rip), %rdi     # 0x1e414
movb $0x0, %al
callq 0x182f0
jmp 0x3889
movl $0x1, %edi
callq 0x2380
cmpq $0x0, -0x60(%rbp)
jne 0x38f8
movq -0x70(%rbp), %rdx
leaq -0x60(%rbp), %rdi
leaq 0x1ab84(%rip), %rsi     # 0x1e42d
movb $0x0, %al
callq 0x146c0
cmpl $-0x1, %eax
jne 0x38f6
jmp 0x38b7
callq 0x20a0
cmpl $0x0, (%rax)
je 0x38dc
leaq 0x1ab6c(%rip), %rdi     # 0x1e434
movb $0x0, %al
callq 0x180a0
callq 0x20a0
movl $0x0, (%rax)
jmp 0x38ea
leaq 0x1ab51(%rip), %rdi     # 0x1e434
movb $0x0, %al
callq 0x182f0
jmp 0x38ec
movl $0x1, %edi
callq 0x2380
jmp 0x38f8
movq -0x60(%rbp), %rdi
callq 0x14800
cmpl $0x0, %eax
je 0x3947
jmp 0x3908
callq 0x20a0
cmpl $0x0, (%rax)
je 0x392d
leaq 0x1ab24(%rip), %rdi     # 0x1e43d
movb $0x0, %al
callq 0x180a0
callq 0x20a0
movl $0x0, (%rax)
jmp 0x393b
leaq 0x1ab09(%rip), %rdi     # 0x1e43d
movb $0x0, %al
callq 0x182f0
jmp 0x393d
movl $0x1, %edi
callq 0x2380
jmp 0x3949
movl -0x2c(%rbp), %edi
movq -0x20(%rbp), %rsi
movq -0x50(%rbp), %rdx
movq -0x78(%rbp), %rcx
movsd -0x80(%rbp), %xmm0
movq -0x48(%rbp), %r8
callq 0x3d60
movq %rax, -0x28(%rbp)
cmpq $0x0, %rax
jne 0x397a
movl $0x1, %edi
callq 0x2380
jmp 0x397c
callq 0x10c70
cmpl $0x0, %eax
je 0x39c7
jmp 0x3988
callq 0x20a0
cmpl $0x0, (%rax)
je 0x39ad
leaq 0x1aab8(%rip), %rdi     # 0x1e451
movb $0x0, %al
callq 0x180a0
callq 0x20a0
movl $0x0, (%rax)
jmp 0x39bb
leaq 0x1aa9d(%rip), %rdi     # 0x1e451
movb $0x0, %al
callq 0x182f0
jmp 0x39bd
movl $0x1, %edi
callq 0x2380
jmp 0x39c9
movq -0x28(%rbp), %rdi
callq 0x42a0
cmpl $0x0, %eax
jne 0x397c
movq -0x28(%rbp), %rdi
callq 0x42d0
cmpl $0x0, %eax
je 0x39ef
movl $0x1, %edi
callq 0x2380
jmp 0x39f1
cmpl $0x0, -0x84(%rbp)
je 0x3949
movq -0x20(%rbp), %rdi
callq 0x7ab0
movq -0x18(%rbp), %rdi
callq 0x1bbe0
movq -0x18(%rbp), %rdi
callq 0x1bc20
movl -0x30(%rbp), %edi
callq 0x21f0
cmpl $0x0, %eax
je 0x3a5f
jmp 0x3a28
callq 0x20a0
cmpl $0x0, (%rax)
je 0x3a4d
leaq 0x1c9a9(%rip), %rdi     # 0x203e2
movb $0x0, %al
callq 0x180a0
callq 0x20a0
movl $0x0, (%rax)
jmp 0x3a5b
leaq 0x1c98e(%rip), %rdi     # 0x203e2
movb $0x0, %al
callq 0x182f0
jmp 0x3a5d
jmp 0x3a5f
movl -0x2c(%rbp), %edi
callq 0x21f0
cmpl $0x0, %eax
je 0x3aa5
jmp 0x3a6e
callq 0x20a0
cmpl $0x0, (%rax)
je 0x3a93
leaq 0x1c963(%rip), %rdi     # 0x203e2
movb $0x0, %al
callq 0x180a0
callq 0x20a0
movl $0x0, (%rax)
jmp 0x3aa1
leaq 0x1c948(%rip), %rdi     # 0x203e2
movb $0x0, %al
callq 0x182f0
jmp 0x3aa3
jmp 0x3aa5
movq -0x98(%rbp), %rdi
callq 0x17060
movq -0x90(%rbp), %rdi
callq 0x17060
movq -0x58(%rbp), %rdi
callq 0x2040
movq -0x60(%rbp), %rdi
callq 0x2040
movq -0x70(%rbp), %rdi
callq 0x2040
xorl %eax, %eax
addq $0x120, %rsp            # imm = 0x120
popq %rbp
retq
movq -0xd8(%rbp), %rax
jmpq *%rax
nopl (%rax)