// File: /workspace/github_c_makefile_star2_O0/Tarsnap[P]kivaloo/mux/main.c
// Function: main
int
main(int argc, char * argv[])
{
	/* State variables. */
	int * socks_s;
	int sock_t;
	struct wire_requestqueue * Q_t;
	struct dispatch_state * dstate;

	/* Command-line parameters. */
	size_t opt_n = 0;
	char * opt_p = NULL;
	char * opt_t = NULL;
	ADDRLIST opt_s;
	char * opt_s_1 = NULL;

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

	WARNP_INIT;

	/* We have no addresses to listen on yet. */
	if ((opt_s = addrlist_init(0)) == NULL) {
		warnp("addrlist_init");
		exit(1);
	}

	/* Parse the command line. */
	while ((ch = GETOPT(argc, argv)) != NULL) {
		GETOPT_SWITCH(ch) {
		GETOPT_OPTARG("-n"):
			if (opt_n != 0)
				usage();
			if (PARSENUM(&opt_n, optarg, 0, 65535)) {
				warn0("Invalid option: -n %s", optarg);
				usage();
			}
			break;
		GETOPT_OPTARG("-p"):
			if (opt_p != NULL)
				usage();
			if ((opt_p = strdup(optarg)) == NULL)
				OPT_EPARSE(ch, optarg);
			break;
		GETOPT_OPTARG("-s"):
			/* Keep a copy of the path for pidfile generation. */
			if ((opt_s_1 == NULL) &&
			    ((opt_s_1 = strdup(optarg)) == NULL))
				OPT_EPARSE(ch, optarg);

			/* Attempt to resolve to a list of addresses. */
			if ((sas = sock_resolve(optarg)) == NULL) {
				warnp("Cannot resolve address: %s", optarg);
				exit(1);
			}
			if (sas[0] == NULL) {
				warn0("No addresses found for %s", optarg);
				exit(1);
			}

			/* Push pointers to addresses onto the list. */
			for (i = 0; sas[i] != NULL; i++) {
				if (addrlist_append(opt_s, &sas[i], 1))
					OPT_EPARSE(ch, optarg);
			}

			/* Free the array (but keep the addresses). */
			free(sas);
			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-mux @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. */

	/* Sanity-check options. */
	if ((opt_s_size = addrlist_getsize(opt_s)) == 0)
		usage();
	if (opt_t == NULL)
		usage();

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

	/* Connect to the target. */
	if ((sock_t = sock_connect(sas)) == -1)
		exit(1);

	/* Free the target address(es). */
	sock_addr_freelist(sas);

	/* Create a queue of requests to the target. */
	if ((Q_t = wire_requestqueue_init(sock_t)) == NULL) {
		warnp("Cannot create request queue");
		exit(1);
	}

	/* Allocate array of source sockets. */
	if ((socks_s = malloc(opt_s_size * sizeof(int))) == NULL) {
		warnp("malloc");
		exit(1);
	}

	/* Create listening sockets. */
	for (i = 0; i < opt_s_size; i++) {
		if ((socks_s[i] =
		    sock_listener(*addrlist_get(opt_s, i))) == -1)
			exit(1);
	}

	/* Initialize the dispatcher. */
	if ((dstate = dispatch_init(socks_s, opt_s_size,
	    Q_t, opt_n ? opt_n : SIZE_MAX)) == NULL) {
		warnp("Failed to initialize dispatcher");
		exit(1);
	}

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

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

	/* Clean up the dispatcher. */
	dispatch_done(dstate);

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

	/* Close sockets. */
	for (i = 0; i < opt_s_size; i++) {
		if (close(socks_s[i]))
			warnp("close");
	}
	free(socks_s);
	if (close(sock_t))
		warnp("close");

	/* Free source socket addresses. */
	for (i = 0; i < addrlist_getsize(opt_s); i++)
		sock_addr_free(*addrlist_get(opt_s, i));
	addrlist_free(opt_s);

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

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe0, %rsp
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x38(%rbp)
movq $0x0, -0x40(%rbp)
movq $0x0, -0x48(%rbp)
movq $0x0, -0x58(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, (%rax)
je 0x253f
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0xbbc0
jmp 0x2541
xorl %eax, %eax
movl %eax, %edi
callq 0x32a0
movq %rax, -0x50(%rbp)
cmpq $0x0, %rax
jne 0x2595
jmp 0x2556
callq 0x20a0
cmpl $0x0, (%rax)
je 0x257b
leaq 0xdb81(%rip), %rdi      # 0x100e8
movb $0x0, %al
callq 0xbc80
callq 0x20a0
movl $0x0, (%rax)
jmp 0x2589
leaq 0xdb66(%rip), %rdi      # 0x100e8
movb $0x0, %al
callq 0xbed0
jmp 0x258b
movl $0x1, %edi
callq 0x2370
jmp 0x2597
movl -0x8(%rbp), %edi
movq -0x10(%rbp), %rsi
callq 0x8a50
movq %rax, -0x78(%rbp)
cmpq $0x0, %rax
je 0x2d6a
movq $0x48, -0x80(%rbp)
movq -0x80(%rbp), %rax
decq %rax
movq %rax, -0x88(%rbp)
movl $0x0, -0x8c(%rbp)
leaq 0x7(%rip), %rax         # 0x25df
movq %rax, -0x98(%rbp)
leaq 0x641e2(%rip), %rax     # 0x667c8
cmpl $0x0, (%rax)
je 0x2604
movq -0x78(%rbp), %rdi
callq 0x9110
movq -0x80(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0xa0(%rbp)
jmp 0x2620
movq -0x88(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x88(%rbp)
movq %rax, -0xa0(%rbp)
movq -0xa0(%rbp), %rax
addq $-0x49, %rax
movq %rax, -0xa8(%rbp)
subq $0x33, %rax
ja 0x2cfa
movq -0xa8(%rbp), %rax
leaq 0xd9ce(%rip), %rcx      # 0x10018
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x6416e(%rip), %rax     # 0x667c8
cmpl $0x0, (%rax)
je 0x268f
leaq 0x6415a(%rip), %rax     # 0x667c0
cmpq $0x0, (%rax)
je 0x266e
jmp 0x268d
leaq 0xda81(%rip), %rdi      # 0x100f6
leaq 0xda89(%rip), %rsi      # 0x10105
movl $0x49, %edx
leaq 0xda84(%rip), %rcx      # 0x1010c
callq 0x21c0
jmp 0x26bf
movq -0x80(%rbp), %rax
movl $0x49, %esi
subq %rax, %rsi
leaq 0xda81(%rip), %rdi      # 0x10123
movl $0x1, %edx
callq 0x9260
movq -0x98(%rbp), %rax
movq %rax, -0xb0(%rbp)
jmp 0x328d
cmpq $0x0, -0x38(%rbp)
je 0x26cb
callq 0x32d0
callq 0x20a0
movl $0x0, (%rax)
movq $0x1, -0x38(%rbp)
movq -0x38(%rbp), %rax
shrq %rax
movq %rax, -0x38(%rbp)
cmpq $0x0, %rax
jbe 0x273a
leaq 0x640ca(%rip), %rax     # 0x667c0
movq (%rax), %rdi
xorps %xmm0, %xmm0
movsd 0xd904(%rip), %xmm1     # 0x10008
xorl %esi, %esi
callq 0x3310
movaps %xmm0, %xmm1
cvttsd2si %xmm1, %rax
movq %rax, %rdx
sarq $0x3f, %rdx
movsd 0xd8ee(%rip), %xmm1     # 0x10010
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %rcx
andq %rdx, %rcx
orq %rcx, %rax
movq %rax, -0x38(%rbp)
jmp 0x27c7
movq $-0x1, -0x38(%rbp)
xorl %eax, %eax
testb $0x1, %al
jne 0x274a
jmp 0x2791
leaq 0x6406f(%rip), %rax     # 0x667c0
movq (%rax), %rdi
movq -0x38(%rbp), %rcx
xorl %eax, %eax
cmpq $0x0, %rcx
cmovbel %eax, %eax
movslq %eax, %rsi
movq -0x38(%rbp), %rdx
xorl %eax, %eax
movl $0xffff, %ecx           # imm = 0xFFFF
cmpq $0x0, %rdx
cmovbel %ecx, %eax
movslq %eax, %rdx
xorl %r8d, %r8d
movl %r8d, %ecx
callq 0x33c0
movq %rax, -0x38(%rbp)
movq %rax, -0xb8(%rbp)
jmp 0x27c0
leaq 0x64028(%rip), %rax     # 0x667c0
movq (%rax), %rdi
movq -0x38(%rbp), %rcx
xorl %eax, %eax
movl %eax, %esi
movl $0xffff, %edx           # imm = 0xFFFF
xorl %r9d, %r9d
movl %r9d, %r8d
callq 0x3480
movq %rax, -0x38(%rbp)
xorl %eax, %eax
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rax
callq 0x20a0
cmpl $0x0, (%rax)
je 0x27fb
jmp 0x27d3
leaq 0x63fe6(%rip), %rax     # 0x667c0
movq (%rax), %rsi
leaq 0xd942(%rip), %rdi      # 0x10126
movb $0x0, %al
callq 0xbed0
callq 0x20a0
movl $0x0, (%rax)
callq 0x32d0
jmp 0x2d65
leaq 0x63fc1(%rip), %rax     # 0x667c8
cmpl $0x0, (%rax)
je 0x283c
leaq 0x63fad(%rip), %rax     # 0x667c0
cmpq $0x0, (%rax)
je 0x281b
jmp 0x283a
leaq 0xd8d4(%rip), %rdi      # 0x100f6
leaq 0xd8dc(%rip), %rsi      # 0x10105
movl $0x51, %edx
leaq 0xd8d7(%rip), %rcx      # 0x1010c
callq 0x21c0
jmp 0x286c
movq -0x80(%rbp), %rax
movl $0x51, %esi
subq %rax, %rsi
leaq 0xd8ed(%rip), %rdi      # 0x1013c
movl $0x1, %edx
callq 0x9260
movq -0x98(%rbp), %rax
movq %rax, -0xb0(%rbp)
jmp 0x328d
cmpq $0x0, -0x40(%rbp)
je 0x2878
callq 0x32d0
leaq 0x63f41(%rip), %rax     # 0x667c0
movq (%rax), %rdi
callq 0x23a0
movq %rax, -0x40(%rbp)
cmpq $0x0, %rax
jne 0x28f0
jmp 0x2893
jmp 0x2895
callq 0x20a0
cmpl $0x0, (%rax)
je 0x28c8
movq -0x78(%rbp), %rsi
leaq 0x63f16(%rip), %rax     # 0x667c0
movq (%rax), %rdx
leaq 0xd88b(%rip), %rdi      # 0x1013f
movb $0x0, %al
callq 0xbc80
callq 0x20a0
movl $0x0, (%rax)
jmp 0x28e4
movq -0x78(%rbp), %rsi
leaq 0x63eed(%rip), %rax     # 0x667c0
movq (%rax), %rdx
leaq 0xd862(%rip), %rdi      # 0x1013f
movb $0x0, %al
callq 0xbed0
jmp 0x28e6
movl $0x1, %edi
callq 0x2370
jmp 0x2d65
leaq 0x63ecc(%rip), %rax     # 0x667c8
cmpl $0x0, (%rax)
je 0x2931
leaq 0x63eb8(%rip), %rax     # 0x667c0
cmpq $0x0, (%rax)
je 0x2910
jmp 0x292f
leaq 0xd7df(%rip), %rdi      # 0x100f6
leaq 0xd7e7(%rip), %rsi      # 0x10105
movl $0x57, %edx
leaq 0xd7e2(%rip), %rcx      # 0x1010c
callq 0x21c0
jmp 0x2961
movq -0x80(%rbp), %rax
movl $0x57, %esi
subq %rax, %rsi
leaq 0xd819(%rip), %rdi      # 0x1015d
movl $0x1, %edx
callq 0x9260
movq -0x98(%rbp), %rax
movq %rax, -0xb0(%rbp)
jmp 0x328d
cmpq $0x0, -0x58(%rbp)
jne 0x29e0
leaq 0x63e51(%rip), %rax     # 0x667c0
movq (%rax), %rdi
callq 0x23a0
movq %rax, -0x58(%rbp)
cmpq $0x0, %rax
jne 0x29e0
jmp 0x2983
jmp 0x2985
callq 0x20a0
cmpl $0x0, (%rax)
je 0x29b8
movq -0x78(%rbp), %rsi
leaq 0x63e26(%rip), %rax     # 0x667c0
movq (%rax), %rdx
leaq 0xd79b(%rip), %rdi      # 0x1013f
movb $0x0, %al
callq 0xbc80
callq 0x20a0
movl $0x0, (%rax)
jmp 0x29d4
movq -0x78(%rbp), %rsi
leaq 0x63dfd(%rip), %rax     # 0x667c0
movq (%rax), %rdx
leaq 0xd772(%rip), %rdi      # 0x1013f
movb $0x0, %al
callq 0xbed0
jmp 0x29d6
movl $0x1, %edi
callq 0x2370
leaq 0x63dd9(%rip), %rax     # 0x667c0
movq (%rax), %rdi
callq 0xa010
movq %rax, -0x68(%rbp)
cmpq $0x0, %rax
jne 0x2a4e
jmp 0x29fb
callq 0x20a0
cmpl $0x0, (%rax)
je 0x2a2a
leaq 0x63db4(%rip), %rax     # 0x667c0
movq (%rax), %rsi
leaq 0xd74a(%rip), %rdi      # 0x10160
movb $0x0, %al
callq 0xbc80
callq 0x20a0
movl $0x0, (%rax)
jmp 0x2a42
leaq 0x63d8f(%rip), %rax     # 0x667c0
movq (%rax), %rsi
leaq 0xd725(%rip), %rdi      # 0x10160
movb $0x0, %al
callq 0xbed0
jmp 0x2a44
movl $0x1, %edi
callq 0x2370
movq -0x68(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x2a87
jmp 0x2a5a
leaq 0x63d5f(%rip), %rax     # 0x667c0
movq (%rax), %rsi
leaq 0xd710(%rip), %rdi      # 0x1017b
movb $0x0, %al
callq 0xbed0
callq 0x20a0
movl $0x0, (%rax)
movl $0x1, %edi
callq 0x2370
movq $0x0, -0x70(%rbp)
movq -0x68(%rbp), %rax
movq -0x70(%rbp), %rcx
cmpq $0x0, (%rax,%rcx,8)
je 0x2b36
movq -0x50(%rbp), %rdi
movq -0x68(%rbp), %rsi
movq -0x70(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movl $0x1, %edx
callq 0x3540
cmpl $0x0, %eax
je 0x2b23
jmp 0x2ac6
jmp 0x2ac8
callq 0x20a0
cmpl $0x0, (%rax)
je 0x2afb
movq -0x78(%rbp), %rsi
leaq 0x63ce3(%rip), %rax     # 0x667c0
movq (%rax), %rdx
leaq 0xd658(%rip), %rdi      # 0x1013f
movb $0x0, %al
callq 0xbc80
callq 0x20a0
movl $0x0, (%rax)
jmp 0x2b17
movq -0x78(%rbp), %rsi
leaq 0x63cba(%rip), %rax     # 0x667c0
movq (%rax), %rdx
leaq 0xd62f(%rip), %rdi      # 0x1013f
movb $0x0, %al
callq 0xbed0
jmp 0x2b19
movl $0x1, %edi
callq 0x2370
jmp 0x2b25
movq -0x70(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x70(%rbp)
jmp 0x2a8f
movq -0x68(%rbp), %rdi
callq 0x2040
jmp 0x2d65
leaq 0x63c7d(%rip), %rax     # 0x667c8
cmpl $0x0, (%rax)
je 0x2b80
leaq 0x63c69(%rip), %rax     # 0x667c0
cmpq $0x0, (%rax)
je 0x2b5f
jmp 0x2b7e
leaq 0xd590(%rip), %rdi      # 0x100f6
leaq 0xd598(%rip), %rsi      # 0x10105
movl $0x70, %edx
leaq 0xd593(%rip), %rcx      # 0x1010c
callq 0x21c0
jmp 0x2bb0
movq -0x80(%rbp), %rax
movl $0x70, %esi
subq %rax, %rsi
leaq 0xd602(%rip), %rdi      # 0x10195
movl $0x1, %edx
callq 0x9260
movq -0x98(%rbp), %rax
movq %rax, -0xb0(%rbp)
jmp 0x328d
cmpq $0x0, -0x48(%rbp)
je 0x2bbc
callq 0x32d0
leaq 0x63bfd(%rip), %rax     # 0x667c0
movq (%rax), %rdi
callq 0x23a0
movq %rax, -0x48(%rbp)
cmpq $0x0, %rax
jne 0x2c34
jmp 0x2bd7
jmp 0x2bd9
callq 0x20a0
cmpl $0x0, (%rax)
je 0x2c0c
movq -0x78(%rbp), %rsi
leaq 0x63bd2(%rip), %rax     # 0x667c0
movq (%rax), %rdx
leaq 0xd547(%rip), %rdi      # 0x1013f
movb $0x0, %al
callq 0xbc80
callq 0x20a0
movl $0x0, (%rax)
jmp 0x2c28
movq -0x78(%rbp), %rsi
leaq 0x63ba9(%rip), %rax     # 0x667c0
movq (%rax), %rdx
leaq 0xd51e(%rip), %rdi      # 0x1013f
movb $0x0, %al
callq 0xbed0
jmp 0x2c2a
movl $0x1, %edi
callq 0x2370
jmp 0x2d65
leaq 0x63b88(%rip), %rax     # 0x667c8
cmpl $0x0, (%rax)
je 0x2c47
jmp 0x2c74
movq -0x80(%rbp), %rax
movl $0x76, %esi
subq %rax, %rsi
leaq 0xd53e(%rip), %rdi      # 0x10198
xorl %edx, %edx
callq 0x9260
movq -0x98(%rbp), %rax
movq %rax, -0xb0(%rbp)
jmp 0x328d
movq 0x1337d(%rip), %rax     # 0x15ff8
movq (%rax), %rdi
leaq 0xd51d(%rip), %rsi      # 0x101a2
movb $0x0, %al
callq 0x2260
xorl %edi, %edi
callq 0x2370
leaq 0x63b2e(%rip), %rax     # 0x667c8
cmpl $0x0, (%rax)
je 0x2ca1
jmp 0x2cc5
movq -0x80(%rbp), %rax
movl $0x79, %edi
subq %rax, %rdi
callq 0x94f0
movq -0x98(%rbp), %rax
movq %rax, -0xb0(%rbp)
jmp 0x328d
jmp 0x2cc7
movq -0x78(%rbp), %rsi
leaq 0xd4e7(%rip), %rdi      # 0x101b9
movb $0x0, %al
callq 0xbed0
callq 0x20a0
movl $0x0, (%rax)
callq 0x32d0
jmp 0x2d41
leaq 0x63ad6(%rip), %rax     # 0x667c8
movl $0x1, (%rax)
jmp 0x2d65
leaq 0x63ac7(%rip), %rax     # 0x667c8
cmpl $0x0, (%rax)
je 0x2d08
jmp 0x2d41
movl -0x8c(%rbp), %eax
cmpl $0x0, %eax
jne 0x2d2e
movq -0x80(%rbp), %rax
movl $0x7c, %edi
subq %rax, %rdi
callq 0x95b0
movl $0x1, -0x8c(%rbp)
movq -0x98(%rbp), %rax
movq %rax, -0xb0(%rbp)
jmp 0x328d
jmp 0x2d43
movq -0x78(%rbp), %rsi
leaq 0xd482(%rip), %rdi      # 0x101d0
movb $0x0, %al
callq 0xbed0
callq 0x20a0
movl $0x0, (%rax)
callq 0x32d0
jmp 0x2597
leaq 0x137e7(%rip), %rax     # 0x16558
movl (%rax), %ecx
movl -0x8(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x8(%rbp)
leaq 0x137d6(%rip), %rax     # 0x16558
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 0x2da1
callq 0x32d0
movq -0x50(%rbp), %rdi
callq 0x3570
movq %rax, -0x60(%rbp)
cmpq $0x0, %rax
jne 0x2db9
callq 0x32d0
cmpq $0x0, -0x48(%rbp)
jne 0x2dc5
callq 0x32d0
movq -0x48(%rbp), %rdi
callq 0xa010
movq %rax, -0x68(%rbp)
cmpq $0x0, %rax
jne 0x2e21
jmp 0x2dda
callq 0x20a0
cmpl $0x0, (%rax)
je 0x2e03
movq -0x48(%rbp), %rsi
leaq 0xd3f6(%rip), %rdi      # 0x101e5
movb $0x0, %al
callq 0xbc80
callq 0x20a0
movl $0x0, (%rax)
jmp 0x2e15
movq -0x48(%rbp), %rsi
leaq 0xd3d7(%rip), %rdi      # 0x101e5
movb $0x0, %al
callq 0xbed0
jmp 0x2e17
movl $0x1, %edi
callq 0x2370
movq -0x68(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x2e54
jmp 0x2e2d
movq -0x48(%rbp), %rsi
leaq 0xd343(%rip), %rdi      # 0x1017b
movb $0x0, %al
callq 0xbed0
callq 0x20a0
movl $0x0, (%rax)
movl $0x1, %edi
callq 0x2370
movq -0x68(%rbp), %rdi
callq 0xaee0
movl %eax, -0x1c(%rbp)
cmpl $-0x1, %eax
jne 0x2e6f
movl $0x1, %edi
callq 0x2370
movq -0x68(%rbp), %rdi
callq 0xac40
movl -0x1c(%rbp), %edi
callq 0xc900
movq %rax, -0x28(%rbp)
cmpq $0x0, %rax
jne 0x2ecb
jmp 0x2e8c
callq 0x20a0
cmpl $0x0, (%rax)
je 0x2eb1
leaq 0xd36b(%rip), %rdi      # 0x10208
movb $0x0, %al
callq 0xbc80
callq 0x20a0
movl $0x0, (%rax)
jmp 0x2ebf
leaq 0xd350(%rip), %rdi      # 0x10208
movb $0x0, %al
callq 0xbed0
jmp 0x2ec1
movl $0x1, %edi
callq 0x2370
movq -0x60(%rbp), %rdi
shlq $0x2, %rdi
callq 0x2290
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x2f23
jmp 0x2ee4
callq 0x20a0
cmpl $0x0, (%rax)
je 0x2f09
leaq 0xd32f(%rip), %rdi      # 0x10224
movb $0x0, %al
callq 0xbc80
callq 0x20a0
movl $0x0, (%rax)
jmp 0x2f17
leaq 0xd314(%rip), %rdi      # 0x10224
movb $0x0, %al
callq 0xbed0
jmp 0x2f19
movl $0x1, %edi
callq 0x2370
movq $0x0, -0x70(%rbp)
movq -0x70(%rbp), %rax
cmpq -0x60(%rbp), %rax
jae 0x2f74
movq -0x50(%rbp), %rdi
movq -0x70(%rbp), %rsi
callq 0x3590
movq (%rax), %rdi
callq 0xac90
movq -0x18(%rbp), %rcx
movq -0x70(%rbp), %rdx
movl %eax, (%rcx,%rdx,4)
cmpl $-0x1, %eax
jne 0x2f64
movl $0x1, %edi
callq 0x2370
jmp 0x2f66
movq -0x70(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x70(%rbp)
jmp 0x2f2b
movq -0x18(%rbp), %rax
movq %rax, -0xd0(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0xc0(%rbp)
cmpq $0x0, -0x38(%rbp)
je 0x2fa9
movq -0x38(%rbp), %rax
movq %rax, -0xd8(%rbp)
jmp 0x2fb9
movq $-0x1, %rax
movq %rax, -0xd8(%rbp)
jmp 0x2fb9
movq -0xc0(%rbp), %rdx
movq -0xc8(%rbp), %rsi
movq -0xd0(%rbp), %rdi
movq -0xd8(%rbp), %rcx
callq 0x35e0
movq %rax, -0x30(%rbp)
cmpq $0x0, %rax
jne 0x3025
jmp 0x2fe6
callq 0x20a0
cmpl $0x0, (%rax)
je 0x300b
leaq 0xd234(%rip), %rdi      # 0x1022b
movb $0x0, %al
callq 0xbc80
callq 0x20a0
movl $0x0, (%rax)
jmp 0x3019
leaq 0xd219(%rip), %rdi      # 0x1022b
movb $0x0, %al
callq 0xbed0
jmp 0x301b
movl $0x1, %edi
callq 0x2370
cmpq $0x0, -0x40(%rbp)
jne 0x308a
movq -0x58(%rbp), %rdx
leaq -0x40(%rbp), %rdi
leaq 0xd210(%rip), %rsi      # 0x1024b
movb $0x0, %al
callq 0x8640
cmpl $-0x1, %eax
jne 0x3088
jmp 0x3049
callq 0x20a0
cmpl $0x0, (%rax)
je 0x306e
leaq 0xd1f8(%rip), %rdi      # 0x10252
movb $0x0, %al
callq 0xbc80
callq 0x20a0
movl $0x0, (%rax)
jmp 0x307c
leaq 0xd1dd(%rip), %rdi      # 0x10252
movb $0x0, %al
callq 0xbed0
jmp 0x307e
movl $0x1, %edi
callq 0x2370
jmp 0x308a
movq -0x40(%rbp), %rdi
callq 0x8780
cmpl $0x0, %eax
je 0x30d9
jmp 0x309a
callq 0x20a0
cmpl $0x0, (%rax)
je 0x30bf
leaq 0xd1b0(%rip), %rdi      # 0x1025b
movb $0x0, %al
callq 0xbc80
callq 0x20a0
movl $0x0, (%rax)
jmp 0x30cd
leaq 0xd195(%rip), %rdi      # 0x1025b
movb $0x0, %al
callq 0xbed0
jmp 0x30cf
movl $0x1, %edi
callq 0x2370
jmp 0x30db
callq 0x4bf0
cmpl $0x0, %eax
je 0x3126
jmp 0x30e7
callq 0x20a0
cmpl $0x0, (%rax)
je 0x310c
leaq 0xd177(%rip), %rdi      # 0x1026f
movb $0x0, %al
callq 0xbc80
callq 0x20a0
movl $0x0, (%rax)
jmp 0x311a
leaq 0xd15c(%rip), %rdi      # 0x1026f
movb $0x0, %al
callq 0xbed0
jmp 0x311c
movl $0x1, %edi
callq 0x2370
jmp 0x3128
movq -0x30(%rbp), %rdi
callq 0x3820
cmpl $0x0, %eax
jne 0x30db
movq -0x30(%rbp), %rdi
callq 0x3850
movq -0x28(%rbp), %rdi
callq 0xced0
movq -0x28(%rbp), %rdi
callq 0xcf10
movq $0x0, -0x70(%rbp)
movq -0x70(%rbp), %rax
cmpq -0x60(%rbp), %rax
jae 0x31c1
movq -0x18(%rbp), %rax
movq -0x70(%rbp), %rcx
movl (%rax,%rcx,4), %edi
callq 0x21e0
cmpl $0x0, %eax
je 0x31b1
jmp 0x317a
callq 0x20a0
cmpl $0x0, (%rax)
je 0x319f
leaq 0xdc61(%rip), %rdi      # 0x10dec
movb $0x0, %al
callq 0xbc80
callq 0x20a0
movl $0x0, (%rax)
jmp 0x31ad
leaq 0xdc46(%rip), %rdi      # 0x10dec
movb $0x0, %al
callq 0xbed0
jmp 0x31af
jmp 0x31b1
jmp 0x31b3
movq -0x70(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x70(%rbp)
jmp 0x3159
movq -0x18(%rbp), %rdi
callq 0x2040
movl -0x1c(%rbp), %edi
callq 0x21e0
cmpl $0x0, %eax
je 0x3210
jmp 0x31d9
callq 0x20a0
cmpl $0x0, (%rax)
je 0x31fe
leaq 0xdc02(%rip), %rdi      # 0x10dec
movb $0x0, %al
callq 0xbc80
callq 0x20a0
movl $0x0, (%rax)
jmp 0x320c
leaq 0xdbe7(%rip), %rdi      # 0x10dec
movb $0x0, %al
callq 0xbed0
jmp 0x320e
jmp 0x3210
movq $0x0, -0x70(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0xe0(%rbp)
movq -0x50(%rbp), %rdi
callq 0x3570
movq %rax, %rcx
movq -0xe0(%rbp), %rax
cmpq %rcx, %rax
jae 0x325e
movq -0x50(%rbp), %rdi
movq -0x70(%rbp), %rsi
callq 0x3590
movq (%rax), %rdi
callq 0xac00
movq -0x70(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x70(%rbp)
jmp 0x3218
movq -0x50(%rbp), %rdi
callq 0x35c0
movq -0x40(%rbp), %rdi
callq 0x2040
movq -0x58(%rbp), %rdi
callq 0x2040
movq -0x48(%rbp), %rdi
callq 0x2040
xorl %eax, %eax
addq $0xe0, %rsp
popq %rbp
retq
movq -0xb0(%rbp), %rax
jmpq *%rax
nopw %cs:(%rax,%rax)