// File: /workspace/github_cpp_makefile_star2_O3/hugosantos[P]dbeacon/dbeacon.cpp
// Function: main
int main(int argc, char **argv) {
	int res;

	srand(time(NULL));

	char tmp[256];
	if (gethostname(tmp, sizeof(tmp)) != 0) {
		perror("Failed to get hostname");
		return -1;
	}

	beaconName = tmp;

	parse_arguments(argc, argv);

	MulticastStartup();

	if (beaconName.empty())
		fatal("No name supplied, check `dbeacon -h`.");

	if (!probeAddrLiteral.empty()) {
		if (!probeAddr.parse(probeAddrLiteral.c_str(), true))
			return -1;

		probeAddr.to_string(sessionName, sizeof(sessionName));

		if (!probeAddr.is_multicast())
			fatal("Specified probe addr (%s) is not of a multicast group.",
					sessionName);

		if (adminContact.empty())
			fatal("No administration contact supplied, check `dbeacon -h`.");

		mcastListen.push_back(ContentDesc(probeAddr, false));

		insert_event(SENDING_EVENT, 100);
		insert_event(REPORT_EVENT, 10000);
		insert_event(MAP_REPORT_EVENT, 30000);
		insert_event(WEBSITE_REPORT_EVENT, 120000);

		redist.push_back(probeAddr);

		if (useSSM) {
			if (probeSSMAddrLiteral.empty()) {
				int family = forceFamily;

				if (family == AF_UNSPEC) {
					family = probeAddr.family();
				}
				if (family == AF_INET) {
					probeSSMAddrLiteral = defaultIPv4SSMChannel;
				} else {
					probeSSMAddrLiteral = defaultIPv6SSMChannel;
				}
			}

			if (!ssmProbeAddr.parse(probeSSMAddrLiteral.c_str(), true)) {
				fatal("Bad address format for SSM channel.");
			} else if (!ssmProbeAddr.is_unspecified()) {
				insert_event(SSM_SENDING_EVENT, 100);
				insert_event(SSM_REPORT_EVENT, 15000);

				if (listenForSSM) {
					mcastListen.push_back(ContentDesc(ssmProbeAddr, true));
				}
			}
		}
	} else {
		if (mcastListen.empty())
			fatal("Nothing to do, check `dbeacon -h`.");
		else
			strcpy(sessionName, beaconName.c_str());
	}

	address local;
	local.set_family(probeAddr.family());

	mcastSock = SetupSocket(local, false, false);
	if (mcastSock < 0)
		return -1;

	if (beaconUnicastAddr.is_unspecified())
		beaconUnicastAddr = get_local_address_for(probeAddr);

	if (bind(mcastSock, beaconUnicastAddr.saddr(), beaconUnicastAddr.addrlen()) != 0) {
		perror("Failed to bind local socket");
		return -1;
	}

	if (beaconUnicastAddr.fromsocket(mcastSock) < 0) {
		perror("getsockname");
		return -1;
	}

	for (McastListen::const_iterator i = mcastListen.begin();
			i != mcastListen.end(); ++i) {
		int sock = SetupSocket(i->first, true, i->second);
		if (sock < 0)
			return -1;

		if (i->second) {
			ListenTo(sock, handle_ssm);
			ssmMcastSock = sock;
		} else {
			ListenTo(sock, handle_asm);
		}
	}

	if (useSSMPing) {
		if (SetupSSMPing() < 0)
			d_log(LOG_ERR, "Failed to setup SSM Ping.");
		else
			flags |= SSMPING_CAPABLE;
	}

	if (IsSSMEnabled()) {
		flags |= SSM_CAPABLE;

		uint64_t now = get_timestamp();
		for (vector<address>::const_iterator i = ssmBootstrap.begin();
				i != ssmBootstrap.end(); ++i)
			getSource(*i, 0, now, 0, false);
	} else if (!ssmBootstrap.empty())
		d_log(LOG_WARNING, "Tried to bootstrap using SSM when SSM is not enabled.");

	if (daemonize || use_syslog) {
		use_syslog = true;
		openlog("dbeacon", LOG_NDELAY | LOG_PID, LOG_DAEMON);
	}

	past_init = true;

	if (daemonize) {
		if (dbeacon_daemonize(pidfile)) {
			perror("Failed to daemon()ize.");
			return -1;
		}
	}

	// Init timer events
	insert_event(GARBAGE_COLLECT_EVENT, 30000);

	if (!dumpFile.empty())
		insert_event(DUMP_EVENT, dumpInterval * 1000);

	insert_event(DUMP_BW_EVENT, 10000);

	if (dumpBwReport)
		insert_event(DUMP_BIG_BW_EVENT, 600000);

	info("Local name is `%s` [Beacon group: %s, Local address: %s]",
		beaconName.c_str(), sessionName, beaconUnicastAddr.to_string(tmp, sizeof(tmp), false));

	send_report(WEBSITE_REPORT_EVENT);

	signal(SIGUSR1, dumpBigBwStats);
	signal(SIGINT, sendLeaveReport);
	signal(SIGTERM, sendLeaveReport);

	signal(SIGCHLD, waitForMe); // bloody fork, we dont want to wait for thee

	startTime = lastDumpBwTS = lastDumpDumpBwTS = get_timestamp();

	while (1) {
		fd_set readset;
		timeval eventm;

		FD_ZERO(&readset);

		for (McastSocks::const_iterator i = mcastSocks.begin();
				i != mcastSocks.end(); ++i)
			FD_SET(i->first, &readset);

		next_event(&eventm);

		res = select(mcastSocks.rbegin()->first + 1, &readset, 0, 0, &eventm);

		if (res < 0) {
			if (errno == EINTR)
				continue;
			fatal("Select failed: %s", strerror(errno));
		} else {
			for (McastSocks::const_iterator i = mcastSocks.begin();
					res > 0 && i != mcastSocks.end(); ++i) {
				if (FD_ISSET(i->first, &readset)) {
					handle_mcast(*i);
					res--;
				}
			}

			handle_event();
		}
	}

	return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x3b8, %rsp            # imm = 0x3B8
movq %rsi, %rbx
movl %edi, %ebp
xorl %edi, %edi
callq 0x3350
movl %eax, %edi
callq 0x33a0
leaq 0x2b0(%rsp), %rdi
movl $0x100, %esi            # imm = 0x100
callq 0x3520
testl %eax, %eax
jne 0x46dd
movq 0xe1d2(%rip), %r14      # 0x12400
leaq 0xe1c3(%rip), %r15      # 0x123f8
leaq 0x2b0(%rsp), %r12
movq %r12, %rdi
callq 0x3180
xorl %r13d, %r13d
movq %r15, %rdi
xorl %esi, %esi
movq %r14, %rdx
movq %r12, %rcx
movq %rax, %r8
callq 0x3540
movq %r13, 0x50(%rsp)
xorpd %xmm0, %xmm0
movapd %xmm0, 0x40(%rsp)
movq %r13, 0x240(%rsp)
movapd %xmm0, 0x230(%rsp)
cmpl $0x1, %ebp
jle 0x43af
movl $0x1, %r13d
leaq 0x40(%rsp), %r14
leaq 0x1b0(%rsp), %r15
leaq 0x230(%rsp), %r12
movslq %r13d, %rcx
movq (%rbx,%rcx,8), %rax
cmpb $0x2d, (%rax)
jne 0x42c4
leal 0x1(%r13), %edx
cmpl %ebp, %edx
jge 0x42e4
movslq %edx, %rcx
movq (%rbx,%rcx,8), %rcx
cmpb $0x2d, (%rcx)
je 0x42e4
movl %edx, %r13d
jmp 0x42e6
movq 0x238(%rsp), %rsi
cmpq 0x240(%rsp), %rsi
je 0x431a
movq %rax, (%rsi)
addq $0x8, 0x238(%rsp)
jmp 0x4333
xorl %ecx, %ecx
incq %rax
movq %rax, 0x1b0(%rsp)
movq %rcx, 0x1b8(%rsp)
movq 0x48(%rsp), %rsi
cmpq 0x50(%rsp), %rsi
je 0x4328
movupd 0x1b0(%rsp), %xmm0
movupd %xmm0, (%rsi)
addq $0x10, 0x48(%rsp)
jmp 0x4333
leaq (%rbx,%rcx,8), %rdx
movq %r12, %rdi
callq 0x7f5a
jmp 0x4333
movq %r14, %rdi
movq %r15, %rdx
callq 0x7e1a
incl %r13d
cmpl %ebp, %r13d
jl 0x429f
movq 0x40(%rsp), %r15
cmpq 0x48(%rsp), %r15
je 0x437b
movq (%r15), %r14
movq %r14, %rdi
xorl %esi, %esi
callq 0x712d
movq %rax, %rbx
movq 0x8(%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x71c1
movq 0x8(%r15), %rsi
movl (%rbx), %edi
callq 0x720d
addq $0x10, %r15
jmp 0x4344
movq 0x230(%rsp), %rdi
testq %rdi, %rdi
je 0x4398
movq 0x240(%rsp), %rsi
subq %rdi, %rsi
callq 0x33d0
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x43af
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x33d0
callq 0x9aac
cmpq $0x0, 0xe044(%rip)      # 0x12400
je 0x5abe
cmpq $0x0, 0xe206(%rip)      # 0x125d0
je 0x452b
movq 0xe1f1(%rip), %rsi      # 0x125c8
leaq 0xe16a(%rip), %rdi      # 0x12548
movl $0x1, %edx
movl $0x1, %ecx
callq 0xa294
testb %al, %al
je 0x4889
leaq 0xe14c(%rip), %rbx      # 0x12548
leaq 0xe34d(%rip), %rsi      # 0x12750
movl $0x100, %edx            # imm = 0x100
movq %rbx, %rdi
movl $0x1, %ecx
callq 0xa4ca
movq %rbx, %rdi
callq 0x9f28
testb %al, %al
je 0x5ad0
cmpq $0x0, 0xdff3(%rip)      # 0x12420
je 0x5ae5
leaq 0xe10e(%rip), %rbx      # 0x12548
leaq 0x40(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rsi
callq 0xa286
movb $0x0, 0x80(%r14)
leaq 0xe26f(%rip), %rdi      # 0x126c8
movq %r14, %rsi
callq 0x8d96
movabsq $0x6400000004, %rax     # imm = 0x6400000004
movq %rax, (%r14)
leaq 0x40(%rsp), %r14
movq %r14, %rdi
callq 0x652d
movabsq $0x271000000052, %rax   # imm = 0x271000000052
movq %rax, (%r14)
leaq 0x40(%rsp), %r14
movq %r14, %rdi
callq 0x652d
movabsq $0x753000000054, %rax   # imm = 0x753000000054
movq %rax, (%r14)
leaq 0x40(%rsp), %r14
movq %r14, %rdi
callq 0x652d
movabsq $0x1d4c000000055, %rax  # imm = 0x1D4C000000055
movq %rax, (%r14)
leaq 0x40(%rsp), %rdi
callq 0x652d
leaq 0xe243(%rip), %rdi      # 0x12710
movq %rbx, %rsi
callq 0x7a5c
cmpb $0x1, 0xe374(%rip)      # 0x12850
jne 0x4552
cmpq $0x0, 0xe10a(%rip)      # 0x125f0
jne 0x46fd
movl 0xe24e(%rip), %eax      # 0x12740
testl %eax, %eax
jne 0x4502
leaq 0xe04b(%rip), %rdi      # 0x12548
callq 0x9c38
movq 0xe0e7(%rip), %rdx      # 0x125f0
leaq 0xe0d8(%rip), %rdi      # 0x125e8
cmpl $0x2, %eax
jne 0x46e9
leaq 0x8542(%rip), %rcx      # 0xca62
movl $0x9, %r8d
jmp 0x46f6
movq 0xe196(%rip), %rax      # 0x126c8
cmpq 0xe197(%rip), %rax      # 0x126d0
je 0x5ac7
movq 0xdeb2(%rip), %rsi      # 0x123f8
leaq 0xe203(%rip), %rdi      # 0x12750
callq 0x3380
leaq 0x230(%rsp), %rbx
movq %rbx, %rdi
callq 0xa23c
leaq 0xdfdf(%rip), %rdi      # 0x12548
callq 0x9c38
movq %rbx, %rdi
movl %eax, %esi
callq 0xa12c
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x9d2b
movl %eax, 0xe2ca(%rip)      # 0x12854
testl %eax, %eax
js 0x4889
leaq 0xdf1f(%rip), %rdi      # 0x124b8
callq 0xa42a
testb %al, %al
je 0x45c8
leaq 0xdf9f(%rip), %rsi      # 0x12548
leaq 0x40(%rsp), %rbx
movq %rbx, %rdi
callq 0xa72c
leaq 0xdefb(%rip), %rdi      # 0x124b8
movl $0x10, %ecx
movq %rbx, %rsi
rep  movsq (%rsi), %es:(%rdi)
movl 0xe286(%rip), %ebx      # 0x12854
leaq 0xdee3(%rip), %r14      # 0x124b8
movq %r14, %rdi
callq 0xa140
movq %rax, %r15
movq %r14, %rdi
callq 0x9ebc
movl %ebx, %edi
movq %r15, %rsi
movl %eax, %edx
callq 0x3080
testl %eax, %eax
jne 0x47a3
movl 0xe252(%rip), %esi      # 0x12854
leaq 0xdeaf(%rip), %rdi      # 0x124b8
callq 0xa58a
testl %eax, %eax
js 0x47af
movq 0xe0ab(%rip), %rbx      # 0x126c8
cmpq 0xe0ac(%rip), %rbx      # 0x126d0
je 0x46ab
leaq 0x1586(%rip), %r12      # 0x5bb7
leaq 0xe0a8(%rip), %r14      # 0x126e0
leaq 0x40(%rsp), %r15
leaq 0x15a3(%rip), %r13      # 0x5be7
movzbl 0x80(%rbx), %edx
movq %rbx, %rdi
movl $0x1, %esi
callq 0x9d2b
testl %eax, %eax
js 0x4889
movl %eax, %ebp
cmpb $0x1, 0x80(%rbx)
jne 0x4687
movl %ebp, 0x40(%rsp)
movq %r12, 0x48(%rsp)
movq %r14, %rdi
movq %r15, %rsi
callq 0x91f4
movl %ebp, 0xe1d3(%rip)      # 0x12858
jmp 0x469b
movl %ebp, 0x40(%rsp)
movq %r13, 0x48(%rsp)
movq %r14, %rdi
movq %r15, %rsi
callq 0x91f4
addq $0x88, %rbx
cmpq 0xe027(%rip), %rbx      # 0x126d0
jne 0x4644
cmpb $0x1, 0xe1aa(%rip)      # 0x1285c
jne 0x47c2
callq 0xb64c
testl %eax, %eax
jns 0x47bb
leaq 0x841a(%rip), %rsi      # 0xcae6
movl $0x3, %edi
xorl %eax, %eax
callq 0x3fdb
jmp 0x47c2
leaq 0x82d2(%rip), %rdi      # 0xc9b6
jmp 0x4884
leaq 0x837c(%rip), %rcx      # 0xca6c
movl $0xa, %r8d
xorl %esi, %esi
callq 0x3540
movq 0xdee4(%rip), %rsi      # 0x125e8
leaq 0xdefd(%rip), %rdi      # 0x12608
movl $0x1, %edx
movl $0x1, %ecx
callq 0xa294
testb %al, %al
je 0x5aee
leaq 0xdedf(%rip), %rdi      # 0x12608
callq 0xa42a
testb %al, %al
jne 0x4552
movabsq $0x6400000006, %rax     # imm = 0x6400000006
leaq 0x40(%rsp), %rbx
movq %rax, (%rbx)
movq %rbx, %rdi
callq 0x652d
movabsq $0x3a9800000053, %rax   # imm = 0x3A9800000053
movq %rax, (%rbx)
leaq 0x40(%rsp), %rdi
callq 0x652d
cmpb $0x1, 0xe0e3(%rip)      # 0x12851
jne 0x4552
leaq 0xde8d(%rip), %rsi      # 0x12608
leaq 0x40(%rsp), %rbx
movq %rbx, %rdi
callq 0xa286
movb $0x1, 0x80(%rbx)
leaq 0xdf32(%rip), %rdi      # 0x126c8
movq %rbx, %rsi
callq 0x8d96
jmp 0x4552
leaq 0x8314(%rip), %rdi      # 0xcabe
jmp 0x4884
leaq 0x8324(%rip), %rdi      # 0xcada
jmp 0x4884
orb $0x2, 0xdd7a(%rip)      # 0x1253c
cmpl $0x0, 0xe08f(%rip)      # 0x12858
jne 0x47f0
movq 0xdf56(%rip), %rax      # 0x12728
cmpq 0xdf57(%rip), %rax      # 0x12730
je 0x482c
leaq 0x831e(%rip), %rsi      # 0xcb00
movl $0x4, %edi
xorl %eax, %eax
callq 0x3fdb
jmp 0x482c
orb $0x1, 0xdd45(%rip)      # 0x1253c
callq 0xa61c
movq 0xdf25(%rip), %r14      # 0x12728
cmpq 0xdf26(%rip), %r14      # 0x12730
je 0x482c
movq %rax, %rbx
movq %r14, %rdi
xorl %esi, %esi
movq %rbx, %rdx
xorl %r8d, %r8d
callq 0x5c14
subq $-0x80, %r14
cmpq 0xdf06(%rip), %r14      # 0x12730
jne 0x480f
movb 0xdf12(%rip), %al       # 0x12744
testb %al, %al
jne 0x483f
cmpb $0x1, 0xdf08(%rip)      # 0x12745
jne 0x4862
movb $0x1, 0xdeff(%rip)      # 0x12745
leaq 0x82e9(%rip), %rdi      # 0xcb36
movl $0x9, %esi
movl $0x18, %edx
callq 0x3330
movb 0xdee2(%rip), %al       # 0x12744
movb $0x1, 0xdedd(%rip)      # 0x12746
testb $0x1, %al
je 0x48a0
movq 0xded4(%rip), %rdi      # 0x12748
callq 0xa64b
testl %eax, %eax
je 0x48a0
leaq 0x82ba(%rip), %rdi      # 0xcb3e
callq 0x3320
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
addq $0x3b8, %rsp            # imm = 0x3B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movabsq $0x753000000000, %rax   # imm = 0x753000000000
leaq 0x40(%rsp), %rdi
movq %rax, (%rdi)
callq 0x652d
cmpq $0x0, 0xddf1(%rip)      # 0x126b0
je 0x48de
imull $0x3e8, 0xdae5(%rip), %eax # imm = 0x3E8
leaq 0x40(%rsp), %rdi
movl $0x1, (%rdi)
movl %eax, 0x4(%rdi)
callq 0x652d
movabsq $0x271000000002, %rax   # imm = 0x271000000002
leaq 0x40(%rsp), %rdi
movq %rax, (%rdi)
callq 0x652d
cmpb $0x1, 0xdf61(%rip)      # 0x1285d
jne 0x4915
movabsq $0x927c000000003, %rax  # imm = 0x927C000000003
leaq 0x40(%rsp), %rdi
movq %rax, (%rdi)
callq 0x652d
movq 0xdadc(%rip), %rbx      # 0x123f8
leaq 0xdb95(%rip), %rdi      # 0x124b8
leaq 0x2b0(%rsp), %rsi
movl $0x100, %edx            # imm = 0x100
xorl %ecx, %ecx
callq 0xa4ca
leaq 0x8217(%rip), %rdi      # 0xcb55
leaq 0xde0b(%rip), %rdx      # 0x12750
movq %rbx, %rsi
movq %rax, %rcx
xorl %eax, %eax
callq 0x40b4
movl $0x55, %edi
callq 0x618e
leaq 0x19d6(%rip), %rsi      # 0x6339
movl $0xa, %edi
callq 0x3440
leaq 0x1a71(%rip), %rbx      # 0x63e5
movl $0x2, %edi
movq %rbx, %rsi
callq 0x3440
movl $0xf, %edi
movq %rbx, %rsi
callq 0x3440
leaq -0x7b9(%rip), %rsi      # 0x41dc
movl $0x11, %edi
callq 0x3440
callq 0xa61c
movq %rax, 0xdeb5(%rip)      # 0x12860
leaq 0xdd2e(%rip), %rcx      # 0x126e0
addq $0x8, %rcx
movq %rcx, 0x38(%rsp)
leaq 0x40(%rsp), %r14
movq %rax, 0x30(%rsp)
movq %rax, 0x18(%rsp)
xorpd %xmm0, %xmm0
movapd %xmm0, 0x1b0(%rsp)
movapd %xmm0, 0x1c0(%rsp)
movapd %xmm0, 0x1d0(%rsp)
movapd %xmm0, 0x1e0(%rsp)
movapd %xmm0, 0x1f0(%rsp)
movapd %xmm0, 0x200(%rsp)
movapd %xmm0, 0x210(%rsp)
movapd %xmm0, 0x220(%rsp)
movq 0xdcdb(%rip), %rax      # 0x126f8
leaq 0xdcc4(%rip), %rbx      # 0x126e8
cmpq %rbx, %rax
je 0x4a5b
movl 0x20(%rax), %ecx
leal 0x3f(%rcx), %edx
testl %ecx, %ecx
cmovnsl %ecx, %edx
movl %edx, %esi
andl $-0x40, %esi
subl %esi, %ecx
movl $0x1, %esi
shlq %cl, %rsi
sarl $0x6, %edx
movslq %edx, %rcx
orq %rsi, 0x1b0(%rsp,%rcx,8)
movq %rax, %rdi
callq 0x3420
jmp 0x4a24
callq 0x7959
movq 0xde01(%rip), %rax      # 0x12868
movl 0xde1b(%rip), %ecx      # 0x12888
movl 0x18(%rax), %edx
movl %ecx, %esi
subl %edx, %esi
movl $0x0, %edi
cmovbl %edi, %esi
subl %ecx, %edx
cmovbl %edi, %edx
movl %esi, 0xde01(%rip)      # 0x12888
movl %edx, 0x18(%rax)
imulq $0x10624dd3, %rdx, %rax # imm = 0x10624DD3
shrq $0x26, %rax
movq %rax, 0x1a0(%rsp)
imull $0x3e8, %eax, %eax      # imm = 0x3E8
subl %eax, %edx
imull $0x3e8, %edx, %eax      # imm = 0x3E8
movq %rax, 0x1a8(%rsp)
movq %rbx, %rdi
callq 0x3210
movl 0x20(%rax), %edi
incl %edi
leaq 0x1b0(%rsp), %rsi
xorl %edx, %edx
xorl %ecx, %ecx
leaq 0x1a0(%rsp), %r8
callq 0x3390
testl %eax, %eax
js 0x5a9d
movl %eax, %ebx
leaq 0xdbf6(%rip), %rax      # 0x126e0
movq 0x18(%rax), %r13
setne %al
cmpq 0x38(%rsp), %r13
setne %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x4c0b
movl 0x20(%r13), %eax
leal 0x3f(%rax), %ecx
testl %eax, %eax
cmovnsl %eax, %ecx
sarl $0x6, %ecx
movslq %ecx, %rcx
movq 0x1b0(%rsp,%rcx,8), %rcx
btq %rax, %rcx
jae 0x4bec
movq %r14, %rdi
callq 0xa23c
leaq 0xc0(%rsp), %r14
movq %r14, %rdi
callq 0xa23c
movl 0x20(%r13), %edi
leaq 0x140(%rsp), %rax
movq %rax, (%rsp)
leaq 0x40(%rsp), %rsi
movq %r14, %rdx
leaq 0x40(%rsp), %r14
leaq 0xdd7c(%rip), %rcx      # 0x128e0
movl $0x2000, %r8d           # imm = 0x2000
leaq 0x148(%rsp), %r9
callq 0x9f82
testl %eax, %eax
js 0x4bea
movl %eax, %ebp
movq %r14, %rdi
leaq 0xd931(%rip), %rsi      # 0x124b8
callq 0xa5b2
testb %al, %al
jne 0x4bea
leaq 0xdd49(%rip), %rax      # 0x128e0
movq %rax, 0x150(%rsp)
movl %ebp, %eax
movq %rax, 0x158(%rsp)
cmpl $0x4, 0xd988(%rip)      # 0x12538
jl 0x4bdf
movl $0x40, %edx
movq %r14, %rdi
leaq 0x160(%rsp), %rsi
movl $0x1, %ecx
callq 0xa4ca
leaq 0x82b4(%rip), %rdi      # 0xce87
movq %rax, %rsi
movl %ebp, %edx
xorl %eax, %eax
callq 0x40b4
movl 0x20(%r13), %edi
movq %r14, %rsi
callq *0x28(%r13)
decl %ebx
movq %r13, %rdi
callq 0x3420
testl %ebx, %ebx
jle 0x4c0b
movq %rax, %r13
leaq 0xdae6(%rip), %rax      # 0x126e8
cmpq %rax, %r13
jne 0x4b04
callq 0x7959
movq 0xdc51(%rip), %rbx      # 0x12868
leaq 0xdc4a(%rip), %r15      # 0x12868
cmpq %r15, %rbx
je 0x49ca
movl 0xdc5b(%rip), %eax      # 0x12888
subl 0x18(%rbx), %eax
jb 0x49ca
movl %eax, 0xdc4c(%rip)      # 0x12888
movl 0x18(%rbx), %eax
movl %eax, 0x28(%rsp)
movq 0x10(%rbx), %rax
movq %rax, 0x20(%rsp)
decq 0xdc25(%rip)            # 0x12878
movq %rbx, %rdi
callq 0x35b0
movl $0x20, %esi
movq %rbx, %rdi
callq 0x33d0
movl 0x20(%rsp), %edi
cmpq $0x6, %rdi
ja 0x4e0f
leaq 0x7443(%rip), %rcx      # 0xc0c0
movslq (%rcx,%rdi,4), %rax
addq %rcx, %rax
jmpq *%rax
callq 0xa61c
movq %rax, %rbx
movq 0xd7db(%rip), %r13      # 0x12470
leaq 0xd7c4(%rip), %rax      # 0x12460
cmpq %rax, %r13
je 0x58d2
movsd 0xd70b(%rip), %xmm0     # 0x123b8
movsd %xmm0, 0x10(%rsp)
movq %r13, %rdi
callq 0x3270
movq %rbx, %rcx
subq 0x130(%r13), %rcx
movq %rax, %rbp
movsd 0x10(%rsp), %xmm0
mulsd 0x7352(%rip), %xmm0     # 0xc028
mulsd 0x7352(%rip), %xmm0     # 0xc030
cvttsd2si %xmm0, %rax
movl %eax, %eax
cmpq %rax, %rcx
jbe 0x4d0e
addq $0x20, %r13
movq %r13, %rdi
movl $0x1, %esi
callq 0x670d
movsd 0xd6b5(%rip), %xmm0     # 0x123b8
movsd %xmm0, 0x10(%rsp)
jmp 0x4deb
movq %rbx, %rcx
subq 0x170(%r13), %rcx
cmpq %rax, %rcx
jbe 0x4d25
movb $0x0, 0x18c(%r13)
movq %rbx, %rcx
subq 0x268(%r13), %rcx
cmpq %rax, %rcx
jbe 0x4d3c
movb $0x0, 0x284(%r13)
movq 0x3b0(%r13), %r12
leaq 0x3a0(%r13), %r14
cmpq %r14, %r12
je 0x4deb
addq $0x398, %r13            # imm = 0x398
movq %r12, %rdi
callq 0x3270
movq %rbx, %rcx
subq 0xa0(%r12), %rcx
movq %rax, %r15
movsd 0x10(%rsp), %xmm0
mulsd 0x72aa(%rip), %xmm0     # 0xc028
mulsd 0x72aa(%rip), %xmm0     # 0xc030
cvttsd2si %xmm0, %rax
movl %eax, %eax
cmpq %rax, %rcx
jbe 0x4dad
movq %r13, %rdi
movq %r12, %rsi
callq 0x830a
movsd 0xd613(%rip), %xmm0     # 0x123b8
movsd %xmm0, 0x10(%rsp)
jmp 0x4ddf
movq %rbx, %rcx
subq 0xb8(%r12), %rcx
cmpq %rax, %rcx
jbe 0x4dc6
movb $0x0, 0xd4(%r12)
movq %rbx, %rcx
subq 0xe0(%r12), %rcx
cmpq %rax, %rcx
jbe 0x4ddf
movb $0x0, 0xfc(%r12)
movq %r15, %r12
cmpq %r14, %r15
jne 0x4d5a
movq %rbp, %r13
leaq 0xd66b(%rip), %rax      # 0x12460
cmpq %rax, %rbp
leaq 0x40(%rsp), %r14
jne 0x4cb3
leaq 0xda5e(%rip), %r15      # 0x12868
jmp 0x590d
leal -0x52(%rdi), %eax
cmpl $0x4, %eax
jae 0x5911
callq 0x618e
jmp 0x590d
movq 0xda94(%rip), %rdx      # 0x128c0
leaq (,%rdx,8), %rax
movq %rax, %xmm1
movq 0x722f(%rip), %xmm3     # 0xc070
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
movapd 0x7233(%rip), %xmm4     # 0xc080
subpd %xmm4, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movsd 0x71bb(%rip), %xmm5     # 0xc020
divsd %xmm5, %xmm0
movq 0xda58(%rip), %rcx      # 0x128c8
leaq (,%rcx,8), %rax
movq %rax, %xmm2
punpckldq %xmm3, %xmm2    # xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
subpd %xmm4, %xmm2
movapd %xmm2, %xmm1
unpckhpd %xmm2, %xmm1            # xmm1 = xmm1[1],xmm2[1]
addsd %xmm2, %xmm1
divsd %xmm5, %xmm1
leaq 0x86b0(%rip), %rdi      # 0xd54c
movl $0x258, %esi            # imm = 0x258
movb $0x2, %al
callq 0x40b4
xorl %eax, %eax
movq %rax, 0xda0f(%rip)      # 0x128c0
movq %rax, 0xda10(%rip)      # 0x128c8
callq 0xa61c
movq %rax, 0xd99c(%rip)      # 0x12860
jmp 0x590d
movl 0xda01(%rip), %edx      # 0x128d0
leal (,%rdx,8), %eax
xorps %xmm2, %xmm2
cvtsi2sd %rax, %xmm2
movsd 0x7122(%rip), %xmm0     # 0xc008
divsd %xmm0, %xmm2
cmpb $0x1, 0xd96c(%rip)      # 0x1285d
jne 0x4f35
movl 0xf9ff(%rip), %ecx      # 0x148f8
leal (,%rcx,8), %eax
xorps %xmm1, %xmm1
cvtsi2sd %rax, %xmm1
divsd %xmm0, %xmm1
movl $0x7, %edi
leaq 0x8471(%rip), %rsi      # 0xd389
movapd %xmm2, %xmm0
movb $0x2, %al
movsd %xmm2, 0x10(%rsp)
callq 0x3fdb
movsd 0x10(%rsp), %xmm2
movl 0xd99b(%rip), %edx      # 0x128d0
movl %edx, %eax
addq %rax, 0xd982(%rip)      # 0x128c0
movl 0xf9b4(%rip), %ecx      # 0x148f8
addq %rcx, 0xd97d(%rip)      # 0x128c8
addq %rax, 0xf9b6(%rip)      # 0x14908
addq %rcx, 0xf9b7(%rip)      # 0x14910
xorl %eax, %eax
movl %eax, 0xd96f(%rip)      # 0x128d0
movl %eax, 0xf991(%rip)      # 0x148f8
movsd 0x70a1(%rip), %xmm0     # 0xc010
maxsd %xmm2, %xmm0
callq 0x32d0
divsd 0x7098(%rip), %xmm0     # 0xc018
mulsd 0x7088(%rip), %xmm0     # 0xc010
movsd %xmm0, 0xd428(%rip)     # 0x123b8
jmp 0x590d
movb 0xf955(%rip), %al       # 0x148f0
testb %al, %al
je 0x5a89
leaq 0xd59e(%rip), %rdi      # 0x12548
leaq 0xf937(%rip), %rsi      # 0x148e8
callq 0x799d
incl 0xf924(%rip)            # 0x148e0
jmp 0x590d
leaq 0x170(%rsp), %rax
movq %rax, 0x160(%rsp)
movq 0xd6d0(%rip), %rsi      # 0x126a8
movq 0xd6d1(%rip), %rdx      # 0x126b0
addq %rsi, %rdx
leaq 0x160(%rsp), %rbx
movq %rbx, %rdi
callq 0x8348
movq %rbx, %rdi
leaq 0x8184(%rip), %rsi      # 0xd180
callq 0x3640
movq 0x160(%rsp), %rdi
leaq 0x7f20(%rip), %rsi      # 0xcf30
callq 0x3430
testq %rax, %rax
je 0x58de
movq %rax, %rbx
callq 0xa61c
movq %rax, %rbp
subq 0x18(%rsp), %rax
movq 0xf8d3(%rip), %rcx      # 0x14908
shlq $0x3, %rcx
movq %rcx, %xmm1
movq 0x702a(%rip), %xmm4     # 0xc070
punpckldq %xmm4, %xmm1    # xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1]
movapd 0x702e(%rip), %xmm5     # 0xc080
subpd %xmm5, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movq %rax, %xmm1
punpckldq %xmm4, %xmm1    # xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1]
subpd %xmm5, %xmm1
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm2, %xmm0
movq 0xf88a(%rip), %rax      # 0x14910
shlq $0x3, %rax
movq %rax, %xmm3
punpckldq %xmm4, %xmm3    # xmm3 = xmm3[0],xmm4[0],xmm3[1],xmm4[1]
subpd %xmm5, %xmm3
movapd %xmm3, %xmm1
unpckhpd %xmm3, %xmm1            # xmm1 = xmm1[1],xmm3[1]
addsd %xmm3, %xmm1
divsd %xmm2, %xmm1
xorl %eax, %eax
movq %rax, 0xf858(%rip)      # 0x14908
movq %rax, 0xf859(%rip)      # 0x14910
movq %rbx, %rdi
leaq 0x80c8(%rip), %rsi      # 0xd189
leaq 0x7af9(%rip), %rdx      # 0xcbc1
movb $0x2, %al
callq 0x34e0
movq %rbx, %rdi
leaq 0x80e8(%rip), %rsi      # 0xd1c1
leaq 0xd670(%rip), %rdx      # 0x12750
xorl %eax, %eax
callq 0x34e0
cmpl $0x0, 0xd76a(%rip)      # 0x12858
je 0x511d
movl $0x40, %edx
leaq 0xd50c(%rip), %rdi      # 0x12608
movq %r14, %rsi
movl $0x1, %ecx
callq 0xa4ca
movq %rbx, %rdi
leaq 0x80bf(%rip), %rsi      # 0xd1d2
movq %rax, %rdx
xorl %eax, %eax
callq 0x34e0
movsd 0xd293(%rip), %xmm0     # 0x123b8
movq %rbx, %rdi
leaq 0x80b2(%rip), %rsi      # 0xd1e1
movb $0x1, %al
callq 0x34e0
leaq 0xd40b(%rip), %rdi      # 0x12548
callq 0xa42a
testb %al, %al
movq %rbp, 0x18(%rsp)
jne 0x549a
movq 0xd2a2(%rip), %r15      # 0x123f8
movl $0x40, %edx
leaq 0xd356(%rip), %rdi      # 0x124b8
movq %r14, %rsi
movl $0x1, %ecx
callq 0xa4ca
movq %rbx, %rdi
leaq 0x8076(%rip), %rsi      # 0xd1ef
movq %r15, %rdx
movq %rax, %rcx
xorl %eax, %eax
callq 0x34e0
cmpq $0x0, 0xd292(%rip)      # 0x12420
je 0x51a8
movq 0xd281(%rip), %rdx      # 0x12418
movq %rbx, %rdi
leaq 0x806b(%rip), %rsi      # 0xd20c
xorl %eax, %eax
callq 0x34e0
cmpq $0x0, 0xd290(%rip)      # 0x12440
leaq 0xcbd9(%rip), %r15      # 0x11d90
je 0x51d1
movq 0xd278(%rip), %rdx      # 0x12438
movq %rbx, %rdi
leaq 0x8050(%rip), %rsi      # 0xd21a
xorl %eax, %eax
callq 0x34e0
subq 0x30(%rsp), %rbp
shrq $0x3, %rbp
movq %rbp, %rax
movabsq $0x20c49ba5e353f7cf, %rcx # imm = 0x20C49BA5E353F7CF
mulq %rcx
shrq $0x4, %rdx
movq %rbx, %rdi
leaq 0x8030(%rip), %rsi      # 0xd228
xorl %eax, %eax
callq 0x34e0
movb $0x1, %r14b
movl 0xd334(%rip), %eax      # 0x1253c
xorl %ecx, %ecx
leaq 0xd27f(%rip), %rbp      # 0x12490
btl %ecx, %eax
jae 0x5238
movq (%r15,%rcx,8), %rdx
movq %rbx, %rdi
leaq 0x802f(%rip), %rsi      # 0xd253
xorl %eax, %eax
callq 0x34e0
leaq 0xd25e(%rip), %rbp      # 0x12490
movl 0xd304(%rip), %eax      # 0x1253c
movl $0x1, %ecx
testb $0x1, %r14b
movl $0x0, %r14d
jne 0x5211
movq 0xd250(%rip), %r15      # 0x124a0
cmpq %rbp, %r15
leaq 0x7cb7(%rip), %r12      # 0xcf11
leaq 0x8015(%rip), %r13      # 0xd276
leaq 0x8016(%rip), %r14      # 0xd27e
je 0x52a4
movl 0x20(%r15), %eax
cmpl $0x4c, %eax
leaq 0x7c8f(%rip), %rdx      # 0xcf07
cmoveq %r12, %rdx
cmpl $0x47, %eax
cmoveq %r13, %rdx
movq 0x28(%r15), %rcx
movq %rbx, %rdi
movq %r14, %rsi
xorl %eax, %eax
callq 0x34e0
movq %r15, %rdi
callq 0x3420
movq %rax, %r15
cmpq %rbp, %rax
jne 0x526a
movl $0xc, %esi
movl $0x1, %edx
leaq 0x7feb(%rip), %rdi      # 0xd2a0
movq %rbx, %rcx
callq 0x3650
movq 0xd1ac(%rip), %r13      # 0x12470
leaq 0xd195(%rip), %rax      # 0x12460
cmpq %rax, %r13
leaq 0x40(%rsp), %r14
leaq 0x7fd3(%rip), %r12      # 0xd2ad
movq 0x18(%rsp), %rbp
je 0x545b
leaq 0x20(%r13), %rdi
movl $0x40, %edx
movq %r14, %rsi
movl $0x1, %ecx
callq 0xa4ca
movq %rbx, %rdi
movq %r12, %rsi
movq %rax, %rdx
xorl %eax, %eax
callq 0x34e0
cmpb $0x1, 0x3f8(%r13)
jne 0x534f
movq 0x330(%r13), %rdx
movq %rbx, %rdi
leaq 0x7f9c(%rip), %rsi      # 0xd2c2
xorl %eax, %eax
callq 0x34e0
cmpq $0x0, 0x358(%r13)
je 0x534f
movq 0x350(%r13), %rdx
movq %rbx, %rdi
leaq 0x7ec4(%rip), %rsi      # 0xd20c
xorl %eax, %eax
callq 0x34e0
cmpq $0x0, 0x378(%r13)
je 0x5371
movq 0x370(%r13), %rdx
movq %rbx, %rdi
leaq 0x7eb0(%rip), %rsi      # 0xd21a
xorl %eax, %eax
callq 0x34e0
movq %rbp, %rax
subq 0x120(%r13), %rax
shrq $0x3, %rax
movabsq $0x20c49ba5e353f7cf, %r15 # imm = 0x20C49BA5E353F7CF
mulq %r15
shrq $0x4, %rdx
movq %rbx, %rdi
leaq 0x7f33(%rip), %rsi      # 0xd2cd
xorl %eax, %eax
callq 0x34e0
movq %rbp, %rax
subq 0x130(%r13), %rax
shrq $0x3, %rax
mulq %r15
shrq $0x4, %rdx
movq %rbx, %rdi
leaq 0x7f18(%rip), %rsi      # 0xd2d8
xorl %eax, %eax
callq 0x34e0
cmpb $0x1, 0x18c(%r13)
jne 0x53f7
leaq 0x168(%r13), %rdx
movl 0x128(%r13), %r8d
movq %rbx, %rdi
leaq 0x7f03(%rip), %rsi      # 0xd2ec
movq %rbp, %rcx
movl $0x1, %r9d
callq 0x6fc5
cmpb $0x1, 0x284(%r13)
jne 0x5427
leaq 0x260(%r13), %rdx
movl 0x128(%r13), %r8d
movq %rbx, %rdi
leaq 0x7ed7(%rip), %rsi      # 0xd2f0
movq %rbp, %rcx
movl $0x1, %r9d
callq 0x6fc5
movl $0xd, %esi
movl $0x1, %edx
leaq 0x7ebc(%rip), %rdi      # 0xd2f4
movq %rbx, %rcx
callq 0x3650
movq %r13, %rdi
callq 0x3420
movq %rax, %r13
leaq 0xd00e(%rip), %rax      # 0x12460
cmpq %rax, %r13
jne 0x52e5
movl $0xd, %esi
movl $0x1, %edx
leaq 0x7e96(%rip), %rdi      # 0xd302
movq %rbx, %rcx
callq 0x3650
movl $0xb, %esi
movl $0x1, %edx
leaq 0x7e8b(%rip), %rdi      # 0xd310
movq %rbx, %rcx
callq 0x3650
movl $0xa, %edi
movq %rbx, %rsi
callq 0x3480
movq 0xcfcf(%rip), %r12      # 0x12470
leaq 0xcfb8(%rip), %rax      # 0x12460
cmpq %rax, %r12
leaq 0x7da1(%rip), %r13      # 0xd253
je 0x5854
movl $0x8, %esi
movl $0x1, %edx
leaq 0x7e53(%rip), %rdi      # 0xd31c
movq %rbx, %rcx
callq 0x3650
cmpb $0x1, 0x3f8(%r12)
leaq 0xc8af(%rip), %r15      # 0x11d90
jne 0x5520
movq 0x330(%r12), %rdx
movq %rbx, %rdi
leaq 0x7dcd(%rip), %rsi      # 0xd2c2
xorl %eax, %eax
callq 0x34e0
cmpq $0x0, 0x358(%r12)
je 0x5520
movq 0x350(%r12), %rdx
movq %rbx, %rdi
leaq 0x7cf3(%rip), %rsi      # 0xd20c
xorl %eax, %eax
callq 0x34e0
leaq 0x20(%r12), %rdi
movl $0x40, %edx
movq %r14, %rsi
movl $0x1, %ecx
callq 0xa4ca
movq %rbx, %rdi
leaq 0x7cc0(%rip), %rsi      # 0xd201
movq %rax, %rdx
xorl %eax, %eax
callq 0x34e0
movq %rbp, %rax
subq 0x120(%r12), %rax
shrq $0x3, %rax
movabsq $0x20c49ba5e353f7cf, %r14 # imm = 0x20C49BA5E353F7CF
mulq %r14
shrq $0x4, %rdx
movq %rbx, %rdi
leaq 0x7d58(%rip), %rsi      # 0xd2cd
xorl %eax, %eax
callq 0x34e0
movq %rbp, %rax
subq 0x138(%r12), %rax
movsd 0xce29(%rip), %xmm0     # 0x123b8
mulsd 0x6a91(%rip), %xmm0     # 0xc028
mulsd 0x6a91(%rip), %xmm0     # 0xc030
cvttsd2si %xmm0, %rcx
movl %ecx, %ecx
cmpq %rcx, %rax
leaq 0x7af9(%rip), %rdx      # 0xd0a9
leaq 0x7ae8(%rip), %rax      # 0xd09f
cmovbq %rax, %rdx
movq %rbx, %rdi
leaq 0x7d60(%rip), %rsi      # 0xd325
xorl %eax, %eax
callq 0x34e0
subq 0x130(%r12), %rbp
shrq $0x3, %rbp
movq %rbp, %rax
mulq %r14
shrq $0x4, %rdx
movq %rbx, %rdi
leaq 0x7cec(%rip), %rsi      # 0xd2d8
xorl %eax, %eax
callq 0x34e0
movb $0x1, %r14b
xorl %eax, %eax
movl 0x390(%r12), %ecx
btl %eax, %ecx
jae 0x5616
movq (%r15,%rax,8), %rdx
movq %rbx, %rdi
movq %r13, %rsi
xorl %eax, %eax
callq 0x34e0
movl $0x1, %eax
testb $0x1, %r14b
movl $0x0, %r14d
jne 0x55f8
movq 0x3e0(%r12), %r15
movq %r12, 0x10(%rsp)
leaq 0x3d0(%r12), %r14
cmpq %r14, %r15
leaq 0x7c30(%rip), %rbp      # 0xd276
leaq 0x7c31(%rip), %r13      # 0xd27e
leaq 0x78bd(%rip), %r12      # 0xcf11
je 0x5690
movl 0x20(%r15), %eax
cmpl $0x4c, %eax
leaq 0x78a3(%rip), %rdx      # 0xcf07
cmoveq %r12, %rdx
cmpl $0x47, %eax
cmoveq %rbp, %rdx
movq 0x28(%r15), %rcx
movq %rbx, %rdi
movq %r13, %rsi
xorl %eax, %eax
callq 0x34e0
movq %r15, %rdi
callq 0x3420
movq %rax, %r15
cmpq %r14, %rax
jne 0x5656
movl $0xc, %esi
movl $0x1, %edx
leaq 0x7bff(%rip), %rdi      # 0xd2a0
movq %rbx, %rcx
callq 0x3650
movq 0x10(%rsp), %rax
movq 0x3b0(%rax), %r12
leaq 0x3a0(%rax), %r15
cmpq %r15, %r12
leaq 0x40(%rsp), %r14
leaq 0x7b88(%rip), %r13      # 0xd253
movq 0x18(%rsp), %rbp
je 0x5805
movl $0xa, %esi
movl $0x1, %edx
leaq 0x7c4c(%rip), %rdi      # 0xd333
movq %rbx, %rcx
callq 0x3650
cmpb $0x1, 0x100(%r12)
jne 0x572c
movq 0x108(%r12), %rdx
movq %rbx, %rdi
leaq 0x7bb6(%rip), %rsi      # 0xd2c2
xorl %eax, %eax
callq 0x34e0
movq 0x128(%r12), %rdx
movq %rbx, %rdi
leaq 0x7ae7(%rip), %rsi      # 0xd20c
xorl %eax, %eax
callq 0x34e0
leaq 0x20(%r12), %rdi
movl $0x40, %edx
movq %r14, %rsi
movl $0x1, %ecx
callq 0xa4ca
movq %rbx, %rdi
leaq 0x7ab4(%rip), %rsi      # 0xd201
movq %rax, %rdx
xorl %eax, %eax
callq 0x34e0
movl 0xa8(%r12), %edx
movq %rbx, %rdi
leaq 0x7bd5(%rip), %rsi      # 0xd33e
xorl %eax, %eax
callq 0x34e0
cmpb $0x1, 0xd4(%r12)
jne 0x57a4
leaq 0xb0(%r12), %rdx
movq 0x10(%rsp), %rax
movl 0x128(%rax), %r8d
movq %rbx, %rdi
leaq 0x7b53(%rip), %rsi      # 0xd2ec
movq %rbp, %rcx
xorl %r9d, %r9d
callq 0x6fc5
cmpb $0x1, 0xfc(%r12)
jne 0x57d8
leaq 0xd8(%r12), %rdx
movq 0x10(%rsp), %rax
movl 0x128(%rax), %r8d
movq %rbx, %rdi
leaq 0x7b23(%rip), %rsi      # 0xd2f0
movq %rbp, %rcx
xorl %r9d, %r9d
callq 0x6fc5
movl $0xd, %esi
movl $0x1, %edx
leaq 0x7b0b(%rip), %rdi      # 0xd2f4
movq %rbx, %rcx
callq 0x3650
movq %r12, %rdi
callq 0x3420
movq %rax, %r12
cmpq %r15, %rax
jne 0x56d6
movl $0xd, %esi
movl $0x1, %edx
leaq 0x7aec(%rip), %rdi      # 0xd302
movq %rbx, %rcx
callq 0x3650
movl $0xb, %esi
movl $0x1, %edx
leaq 0x7ae1(%rip), %rdi      # 0xd310
movq %rbx, %rcx
callq 0x3650
movq 0x10(%rsp), %rdi
callq 0x3420
movq %rax, %r12
leaq 0xcc15(%rip), %rax      # 0x12460
cmpq %rax, %r12
jne 0x54b8
movl $0x14, %esi
movl $0x1, %edx
leaq 0x7ae5(%rip), %rdi      # 0xd34a
movq %rbx, %rcx
callq 0x3650
movq %rbx, %rdi
callq 0x33b0
movq 0x160(%rsp), %rdi
movq 0xce24(%rip), %rsi      # 0x126a8
callq 0x3220
cmpq $0x0, 0xcdff(%rip)      # 0x12690
je 0x58a0
callq 0x30e0
testl %eax, %eax
je 0x5afc
leaq 0xcfc1(%rip), %r15      # 0x12868
jmp 0x58e3
movb 0xf051(%rip), %al       # 0x14900
testb %al, %al
je 0x5a93
leaq 0xcd4a(%rip), %rdi      # 0x12608
leaq 0xf037(%rip), %rsi      # 0x148fc
callq 0x799d
incl 0xf014(%rip)            # 0x148e4
jmp 0x590d
leaq 0xcf8f(%rip), %r15      # 0x12868
jmp 0x59f7
movq 0x18(%rsp), %rbp
movq 0x160(%rsp), %rdi
leaq 0x170(%rsp), %rax
cmpq %rax, %rdi
je 0x5908
movq 0x170(%rsp), %rsi
incq %rsi
callq 0x33d0
movq %rbp, 0x18(%rsp)
movl 0x20(%rsp), %edi
cmpl $0x7, %edi
je 0x5941
cmpl $0x5, %edi
jne 0x5967
movabsq $0x6400000004, %rax     # imm = 0x6400000004
movq %rax, 0x40(%rsp)
movq %r14, %rdi
callq 0x652d
movl $0x0, 0xefa4(%rip)      # 0x148e0
jmp 0x5a7d
movabsq $0x6400000006, %rax     # imm = 0x6400000006
movq %rax, 0x40(%rsp)
movq %r14, %rdi
callq 0x652d
movl $0x0, 0xef82(%rip)      # 0x148e4
jmp 0x5a7d
cmpl $0x4, %edi
jne 0x598e
cmpl $0xa, 0xef6d(%rip)      # 0x148e0
jne 0x598e
movl $0x1, %edi
movl $0x1, %esi
callq 0x6607
movl $0x5, 0x40(%rsp)
jmp 0x59b3
cmpl $0x6, %edi
jne 0x59bc
cmpl $0xa, 0xef4a(%rip)      # 0x148e4
jne 0x59bc
movl $0x1, %edi
movl $0x1, %esi
callq 0x6607
movl $0x7, 0x40(%rsp)
movl %eax, 0x44(%rsp)
jmp 0x5a75
addl $-0x52, %edi
cmpl $0x3, %edi
ja 0x59f7
leaq 0x6711(%rip), %rcx      # 0xc0dc
movslq (%rcx,%rdi,4), %rax
addq %rcx, %rax
jmpq *%rax
movsd 0xc9dc(%rip), %xmm0     # 0x123b8
addsd %xmm0, %xmm0
mulsd 0x6648(%rip), %xmm0     # 0xc030
cvttsd2si %xmm0, %rax
movl $0x52, 0x40(%rsp)
jmp 0x5a71
leaq 0x20(%rsp), %rdi
jmp 0x5a78
movsd 0xc9b2(%rip), %xmm0     # 0x123b8
mulsd 0x661a(%rip), %xmm0     # 0xc028
mulsd 0x661a(%rip), %xmm0     # 0xc030
cvttsd2si %xmm0, %rax
movl $0x54, 0x40(%rsp)
jmp 0x5a71
movsd 0xc98b(%rip), %xmm0     # 0x123b8
mulsd 0x6603(%rip), %xmm0     # 0xc038
mulsd 0x65f3(%rip), %xmm0     # 0xc030
cvttsd2si %xmm0, %rax
movl $0x55, 0x40(%rsp)
jmp 0x5a71
movsd 0xc964(%rip), %xmm0     # 0x123b8
mulsd 0x65b4(%rip), %xmm0     # 0xc010
mulsd 0x65cc(%rip), %xmm0     # 0xc030
cvttsd2si %xmm0, %rax
movl $0x53, 0x40(%rsp)
movl %eax, 0x44(%rsp)
movq %r14, %rdi
callq 0x652d
movq 0xcde4(%rip), %rbx      # 0x12868
jmp 0x4c1e
callq 0x371b
jmp 0x4fa3
callq 0x36f1
jmp 0x58b7
callq 0x3030
movl (%rax), %edi
cmpl $0x4, %edi
je 0x49ca
callq 0x3140
leaq 0x70d5(%rip), %rdi      # 0xcb8e
movq %rax, %rsi
jmp 0x5ade
leaq 0x6f08(%rip), %rdi      # 0xc9cd
jmp 0x5af5
leaq 0x6fcd(%rip), %rdi      # 0xca9b
jmp 0x5af5
leaq 0x6f1c(%rip), %rdi      # 0xc9f3
leaq 0xcc72(%rip), %rsi      # 0x12750
xorl %eax, %eax
callq 0x4147
leaq 0x6f3e(%rip), %rdi      # 0xca2a
jmp 0x5af5
leaq 0x6f82(%rip), %rdi      # 0xca77
xorl %eax, %eax
callq 0x4147
movq 0xcb85(%rip), %rdi      # 0x12688
movq 0xcb9e(%rip), %rdx      # 0x126a8
movq %rdi, %rsi
xorl %ecx, %ecx
xorl %eax, %eax
callq 0x3110
callq 0x3030
movl (%rax), %edi
callq 0x3450
jmp 0x5b2c
jmp 0x5b2c
jmp 0x5b2c
jmp 0x5b2c
jmp 0x5b2c
movq %rax, %rbx
movq 0x160(%rsp), %rdi
leaq 0x170(%rsp), %rax
cmpq %rax, %rdi
je 0x5b8c
movq 0x170(%rsp), %rsi
incq %rsi
jmp 0x5b87
jmp 0x5b55
jmp 0x5b55
movq %rax, %rbx
movq 0x230(%rsp), %rdi
testq %rdi, %rdi
je 0x5b75
movq 0x240(%rsp), %rsi
subq %rdi, %rsi
callq 0x33d0
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x5b8c
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x33d0
movq %rbx, %rdi
callq 0x35d0