// File: /workspace/github_cpp_makefile_star2_O1/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 0x470d
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 $0x2, %ebp
jl 0x433f
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 0x7fce
jmp 0x4333
movq %r14, %rdi
movq %r15, %rdx
callq 0x7e8e
incl %r13d
cmpl %ebp, %r13d
jl 0x429f
movq 0x40(%rsp), %r15
cmpq 0x48(%rsp), %r15
je 0x437c
movq (%r15), %r14
movq %r14, %rdi
xorl %esi, %esi
callq 0x7191
movq %rax, %rbx
movq 0x8(%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x7225
movq 0x8(%r15), %rsi
movq %rbx, %rdi
callq 0x7271
addq $0x10, %r15
jmp 0x4344
movq 0x230(%rsp), %rdi
testq %rdi, %rdi
je 0x4399
movq 0x240(%rsp), %rsi
subq %rdi, %rsi
callq 0x33d0
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x43b0
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x33d0
callq 0x9b38
cmpq $0x0, 0xe043(%rip)      # 0x12400
je 0x48d0
cmpq $0x0, 0xe205(%rip)      # 0x125d0
je 0x4531
movq 0xe1f0(%rip), %rsi      # 0x125c8
leaq 0xe169(%rip), %rdi      # 0x12548
movl $0x1, %edx
movl $0x1, %ecx
callq 0xa342
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
testb %al, %al
je 0x48bc
leaq 0xe146(%rip), %rbx      # 0x12548
leaq 0xe347(%rip), %rsi      # 0x12750
movl $0x100, %edx            # imm = 0x100
movq %rbx, %rdi
movl $0x1, %ecx
callq 0xa578
movq %rbx, %rdi
callq 0x9fd0
testb %al, %al
je 0x5b1f
cmpq $0x0, 0xdfed(%rip)      # 0x12420
je 0x5b34
leaq 0xe108(%rip), %rbx      # 0x12548
leaq 0x40(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rsi
callq 0xa334
movb $0x0, 0x80(%r14)
leaq 0xe269(%rip), %rdi      # 0x126c8
movq %r14, %rsi
callq 0x8e1e
movabsq $0x6400000004, %rax     # imm = 0x6400000004
movq %rax, (%r14)
leaq 0x40(%rsp), %r14
movq %r14, %rdi
callq 0x6589
movabsq $0x271000000052, %rax   # imm = 0x271000000052
movq %rax, (%r14)
leaq 0x40(%rsp), %r14
movq %r14, %rdi
callq 0x6589
movabsq $0x753000000054, %rax   # imm = 0x753000000054
movq %rax, (%r14)
leaq 0x40(%rsp), %r14
movq %r14, %rdi
callq 0x6589
movabsq $0x1d4c000000055, %rax  # imm = 0x1D4C000000055
movq %rax, (%r14)
leaq 0x40(%rsp), %rdi
callq 0x6589
leaq 0xe23d(%rip), %rdi      # 0x12710
movq %rbx, %rsi
callq 0x7ad2
cmpb $0x1, 0xe36e(%rip)      # 0x12850
jne 0x4558
cmpq $0x0, 0xe104(%rip)      # 0x125f0
jne 0x472d
movl 0xe248(%rip), %eax      # 0x12740
testl %eax, %eax
jne 0x4508
leaq 0xe045(%rip), %rdi      # 0x12548
callq 0x9cce
movq 0xe0e1(%rip), %rdx      # 0x125f0
leaq 0xe0d2(%rip), %rdi      # 0x125e8
cmpl $0x2, %eax
jne 0x4719
leaq 0x853c(%rip), %rcx      # 0xca62
movl $0x9, %r8d
jmp 0x4726
movq 0xe190(%rip), %rax      # 0x126c8
cmpq 0xe191(%rip), %rax      # 0x126d0
je 0x5b16
movq 0xdeac(%rip), %rsi      # 0x123f8
leaq 0xe1fd(%rip), %rdi      # 0x12750
callq 0x3380
leaq 0x230(%rsp), %rbx
movq %rbx, %rdi
callq 0xa2ea
leaq 0xdfd9(%rip), %rdi      # 0x12548
callq 0x9cce
movq %rbx, %rdi
movl %eax, %esi
callq 0xa1da
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x9dcc
movl %eax, 0xe2c4(%rip)      # 0x12854
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
testl %eax, %eax
js 0x48bc
leaq 0xdf14(%rip), %rdi      # 0x124b8
callq 0xa4d8
testb %al, %al
je 0x45d3
leaq 0xdf94(%rip), %rsi      # 0x12548
leaq 0x40(%rsp), %rbx
movq %rbx, %rdi
callq 0xa7da
leaq 0xdef0(%rip), %rdi      # 0x124b8
movl $0x10, %ecx
movq %rbx, %rsi
rep  movsq (%rsi), %es:(%rdi)
movl 0xe27b(%rip), %ebx      # 0x12854
leaq 0xded8(%rip), %r14      # 0x124b8
movq %r14, %rdi
callq 0xa1ee
movq %rax, %r15
movq %r14, %rdi
callq 0x9f64
movl %ebx, %edi
movq %r15, %rsi
movl %eax, %edx
callq 0x3080
testl %eax, %eax
jne 0x47d3
movl 0xe247(%rip), %esi      # 0x12854
leaq 0xdea4(%rip), %rdi      # 0x124b8
callq 0xa638
testl %eax, %eax
js 0x47df
movq 0xe0a0(%rip), %r14      # 0x126c8
cmpq 0xe0a1(%rip), %r14      # 0x126d0
sete %r13b
je 0x46cf
xorl %ebx, %ebx
leaq 0xe09e(%rip), %r15      # 0x126e0
leaq 0x40(%rsp), %r12
movzbl 0x80(%r14), %edx
movq %r14, %rdi
movl $0x1, %esi
callq 0x9dcc
movl %eax, %ebp
testl %eax, %eax
js 0x468f
cmpb $0x1, 0x80(%r14)
jne 0x4696
movl %ebp, 0x40(%rsp)
leaq 0x158f(%rip), %rax      # 0x5c06
movq %rax, 0x48(%rsp)
movq %r15, %rdi
movq %r12, %rsi
callq 0x9268
movl %ebp, 0xe1cb(%rip)      # 0x12858
jmp 0x46b1
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
jmp 0x46b1
movl %ebp, 0x40(%rsp)
leaq 0x1595(%rip), %rax      # 0x5c36
movq %rax, 0x48(%rsp)
movq %r15, %rdi
movq %r12, %rsi
callq 0x9268
testl %ebp, %ebp
js 0x46d1
addq $0x88, %r14
cmpq 0xe00d(%rip), %r14      # 0x126d0
sete %r13b
jne 0x4647
jmp 0x46d1
xorl %ebx, %ebx
testb $0x1, %r13b
je 0x48bc
cmpb $0x1, 0xe17a(%rip)      # 0x1285c
jne 0x47f2
callq 0xb774
testl %eax, %eax
jns 0x47eb
leaq 0x83ea(%rip), %rsi      # 0xcae6
movl $0x3, %edi
xorl %eax, %eax
callq 0x3fdb
jmp 0x47f2
leaq 0x82a2(%rip), %rdi      # 0xc9b6
jmp 0x48b2
leaq 0x834c(%rip), %rcx      # 0xca6c
movl $0xa, %r8d
xorl %esi, %esi
callq 0x3540
movq 0xdeb4(%rip), %rsi      # 0x125e8
leaq 0xdecd(%rip), %rdi      # 0x12608
movl $0x1, %edx
movl $0x1, %ecx
callq 0xa342
testb %al, %al
je 0x5b3d
leaq 0xdeaf(%rip), %rdi      # 0x12608
callq 0xa4d8
testb %al, %al
jne 0x4558
movabsq $0x6400000006, %rax     # imm = 0x6400000006
leaq 0x40(%rsp), %rbx
movq %rax, (%rbx)
movq %rbx, %rdi
callq 0x6589
movabsq $0x3a9800000053, %rax   # imm = 0x3A9800000053
movq %rax, (%rbx)
leaq 0x40(%rsp), %rdi
callq 0x6589
cmpb $0x1, 0xe0b3(%rip)      # 0x12851
jne 0x4558
leaq 0xde5d(%rip), %rsi      # 0x12608
leaq 0x40(%rsp), %rbx
movq %rbx, %rdi
callq 0xa334
movb $0x1, 0x80(%rbx)
leaq 0xdf02(%rip), %rdi      # 0x126c8
movq %rbx, %rsi
callq 0x8e1e
jmp 0x4558
leaq 0x82e4(%rip), %rdi      # 0xcabe
jmp 0x48b2
leaq 0x82f4(%rip), %rdi      # 0xcada
jmp 0x48b2
orb $0x2, 0xdd4a(%rip)      # 0x1253c
cmpl $0x0, 0xe05f(%rip)      # 0x12858
jne 0x4820
movq 0xdf26(%rip), %rax      # 0x12728
cmpq 0xdf27(%rip), %rax      # 0x12730
je 0x485c
leaq 0x82ee(%rip), %rsi      # 0xcb00
movl $0x4, %edi
xorl %eax, %eax
callq 0x3fdb
jmp 0x485c
orb $0x1, 0xdd15(%rip)      # 0x1253c
callq 0xa6ca
movq 0xdef5(%rip), %r14      # 0x12728
cmpq 0xdef6(%rip), %r14      # 0x12730
je 0x485c
movq %rax, %rbx
movq %r14, %rdi
xorl %esi, %esi
movq %rbx, %rdx
xorl %r8d, %r8d
callq 0x5c63
subq $-0x80, %r14
cmpq 0xded6(%rip), %r14      # 0x12730
jne 0x483f
cmpb $0x0, 0xdee1(%rip)      # 0x12744
jne 0x486e
cmpb $0x1, 0xded9(%rip)      # 0x12745
jne 0x488b
movb $0x1, 0xded0(%rip)      # 0x12745
leaq 0x82ba(%rip), %rdi      # 0xcb36
movl $0x9, %esi
movl $0x18, %edx
callq 0x3330
movb $0x1, 0xdeb4(%rip)      # 0x12746
cmpb $0x1, 0xdeab(%rip)      # 0x12744
jne 0x48dc
movq 0xdea6(%rip), %rdi      # 0x12748
callq 0xa6f9
testl %eax, %eax
je 0x48dc
leaq 0x828c(%rip), %rdi      # 0xcb3e
callq 0x3320
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
movl %ebx, %eax
addq $0x3b8, %rsp            # imm = 0x3B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x80f6(%rip), %rdi      # 0xc9cd
jmp 0x5b44
movabsq $0x753000000000, %rax   # imm = 0x753000000000
leaq 0x40(%rsp), %rdi
movq %rax, (%rdi)
callq 0x6589
cmpq $0x0, 0xddb5(%rip)      # 0x126b0
je 0x491a
imull $0x3e8, 0xdaa9(%rip), %eax # imm = 0x3E8
leaq 0x40(%rsp), %rdi
movl $0x1, (%rdi)
movl %eax, 0x4(%rdi)
callq 0x6589
movabsq $0x271000000002, %rax   # imm = 0x271000000002
leaq 0x40(%rsp), %rdi
movq %rax, (%rdi)
callq 0x6589
cmpb $0x1, 0xdf25(%rip)      # 0x1285d
jne 0x4951
movabsq $0x927c000000003, %rax  # imm = 0x927C000000003
leaq 0x40(%rsp), %rdi
movq %rax, (%rdi)
callq 0x6589
movq 0xdaa0(%rip), %rbx      # 0x123f8
leaq 0xdb59(%rip), %rdi      # 0x124b8
leaq 0x2b0(%rsp), %rsi
movl $0x100, %edx            # imm = 0x100
xorl %ecx, %ecx
callq 0xa578
leaq 0x81db(%rip), %rdi      # 0xcb55
leaq 0xddcf(%rip), %rdx      # 0x12750
movq %rbx, %rsi
movq %rax, %rcx
xorl %eax, %eax
callq 0x40b4
movl $0x55, %edi
callq 0x61ea
leaq 0x19f6(%rip), %rsi      # 0x6395
movl $0xa, %edi
callq 0x3440
leaq 0x1a91(%rip), %rbx      # 0x6441
movl $0x2, %edi
movq %rbx, %rsi
callq 0x3440
movl $0xf, %edi
movq %rbx, %rsi
callq 0x3440
leaq -0x7f5(%rip), %rsi      # 0x41dc
movl $0x11, %edi
callq 0x3440
callq 0xa6ca
movq %rax, 0xde79(%rip)      # 0x12860
leaq 0xdcfa(%rip), %r12      # 0x126e8
leaq 0xdceb(%rip), %rcx      # 0x126e0
addq $0x8, %rcx
movq %rcx, 0x38(%rsp)
leaq 0x40(%rsp), %r14
leaq 0x8873(%rip), %rbp      # 0xd27d
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 0xdc91(%rip), %rax      # 0x126f8
cmpq %r12, %rax
je 0x4a9e
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 0x4a67
callq 0x79ce
movq 0xddbe(%rip), %rax      # 0x12868
movl 0xddd8(%rip), %ecx      # 0x12888
movl 0x18(%rax), %edx
addq $0x18, %rax
movl %ecx, %esi
subl %edx, %esi
jbe 0x4ac8
movl %esi, 0xddc5(%rip)      # 0x12888
movq %rax, %rcx
jmp 0x4ad3
subl %ecx, %edx
movl %edx, (%rax)
leaq 0xddb5(%rip), %rcx      # 0x12888
movl $0x0, (%rcx)
movl (%rax), %eax
imulq $0x10624dd3, %rax, %rcx # imm = 0x10624DD3
shrq $0x26, %rcx
movq %rcx, 0x1a0(%rsp)
imull $0x3e8, %ecx, %ecx      # imm = 0x3E8
subl %ecx, %eax
imull $0x3e8, %eax, %eax      # imm = 0x3E8
movq %rax, 0x1a8(%rsp)
movq %r12, %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 0x5af5
movl %eax, %ebx
leaq 0xdba5(%rip), %rax      # 0x126e0
movq 0x18(%rax), %r13
setne %al
cmpq 0x38(%rsp), %r13
setne %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x4c5c
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 0x4c44
movq %r14, %rdi
callq 0xa2ea
leaq 0xc0(%rsp), %r14
movq %r14, %rdi
callq 0xa2ea
movl 0x20(%r13), %edi
leaq 0x140(%rsp), %rax
movq %rax, (%rsp)
leaq 0x40(%rsp), %rsi
movq %r14, %rdx
leaq 0x40(%rsp), %r14
leaq 0xdd2b(%rip), %rcx      # 0x128e0
movl $0x2000, %r8d           # imm = 0x2000
leaq 0x148(%rsp), %r9
callq 0xa02a
testl %eax, %eax
js 0x4c3b
movl %eax, %ebp
movq %r14, %rdi
leaq 0xd8e0(%rip), %rsi      # 0x124b8
callq 0xa660
testb %al, %al
jne 0x4c3b
leaq 0xdcf8(%rip), %rax      # 0x128e0
movq %rax, 0x150(%rsp)
movl %ebp, %eax
movq %rax, 0x158(%rsp)
cmpl $0x4, 0xd937(%rip)      # 0x12538
jl 0x4c30
movl $0x40, %edx
movq %r14, %rdi
leaq 0x160(%rsp), %rsi
movl $0x1, %ecx
callq 0xa578
leaq 0x8263(%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
leaq 0x8639(%rip), %rbp      # 0xd27d
movq %r13, %rdi
callq 0x3420
testl %ebx, %ebx
jle 0x4c5c
movq %rax, %r13
cmpq %r12, %rax
jne 0x4b55
callq 0x79ce
movq 0xdc00(%rip), %rbx      # 0x12868
leaq 0xdbf9(%rip), %r15      # 0x12868
cmpq %r15, %rbx
leaq 0x7447(%rip), %r13      # 0xc0c0
je 0x4a14
movl 0xdc03(%rip), %eax      # 0x12888
subl 0x18(%rbx), %eax
jb 0x4a14
movl %eax, 0xdbf4(%rip)      # 0x12888
movl 0x18(%rbx), %eax
movl %eax, 0x28(%rsp)
movq 0x10(%rbx), %rax
movq %rax, 0x20(%rsp)
decq 0xdbcd(%rip)            # 0x12878
movq %rbx, %rdi
callq 0x35b0
movl $0x20, %esi
movq %rbx, %rdi
callq 0x33d0
movl 0x20(%rsp), %edi
cmpq $0x6, %rdi
ja 0x4e4c
movslq (%r13,%rdi,4), %rax
addq %r13, %rax
jmpq *%rax
callq 0xa6ca
movq %rax, %rbx
movq 0xd789(%rip), %r12      # 0x12470
leaq 0xd772(%rip), %rax      # 0x12460
cmpq %rax, %r12
je 0x5916
movq %r12, %rdi
callq 0x3270
movq %rbx, %rcx
subq 0x130(%r12), %rcx
movq %rax, %r13
movsd 0xd6a3(%rip), %xmm0     # 0x123b8
mulsd 0x730b(%rip), %xmm0     # 0xc028
mulsd 0x730b(%rip), %xmm0     # 0xc030
cvttsd2si %xmm0, %rax
movl %eax, %eax
cmpq %rax, %rcx
jbe 0x4d47
addq $0x20, %r12
movq %r12, %rdi
movl $0x1, %esi
callq 0x676f
jmp 0x4e13
movq %rbx, %rcx
subq 0x170(%r12), %rcx
cmpq %rax, %rcx
jbe 0x4d60
movb $0x0, 0x18c(%r12)
movq %rbx, %rcx
subq 0x268(%r12), %rcx
cmpq %rax, %rcx
jbe 0x4d79
movb $0x0, 0x284(%r12)
movq 0x3b0(%r12), %rbp
leaq 0x3a0(%r12), %r14
cmpq %r14, %rbp
je 0x4e13
addq $0x398, %r12            # imm = 0x398
movq %rbp, %rdi
callq 0x3270
movq %rbx, %rcx
subq 0xa0(%rbp), %rcx
movq %rax, %r15
movsd 0xd602(%rip), %xmm0     # 0x123b8
mulsd 0x726a(%rip), %xmm0     # 0xc028
mulsd 0x726a(%rip), %xmm0     # 0xc030
cvttsd2si %xmm0, %rax
movl %eax, %eax
cmpq %rax, %rcx
jbe 0x4ddf
movq %r12, %rdi
movq %rbp, %rsi
callq 0x837e
jmp 0x4e0b
movq %rbx, %rcx
subq 0xb8(%rbp), %rcx
cmpq %rax, %rcx
jbe 0x4df5
movb $0x0, 0xd4(%rbp)
movq %rbx, %rcx
subq 0xe0(%rbp), %rcx
cmpq %rax, %rcx
jbe 0x4e0b
movb $0x0, 0xfc(%rbp)
movq %r15, %rbp
cmpq %r14, %r15
jne 0x4d99
movq %r13, %r12
leaq 0xd643(%rip), %rax      # 0x12460
cmpq %rax, %r13
leaq 0x40(%rsp), %r14
leaq 0x8451(%rip), %rbp      # 0xd27d
jne 0x4cf7
leaq 0xd8af(%rip), %r12      # 0x126e8
leaq 0xda28(%rip), %r15      # 0x12868
leaq 0x7279(%rip), %r13      # 0xc0c0
jmp 0x5958
leal -0x52(%rdi), %eax
cmpl $0x4, %eax
jae 0x5958
callq 0x61ea
jmp 0x5958
movq 0xda57(%rip), %rdx      # 0x128c0
leaq (,%rdx,8), %rax
movq %rax, %xmm1
movq 0x71f2(%rip), %xmm3     # 0xc070
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
movapd 0x71f6(%rip), %xmm4     # 0xc080
subpd %xmm4, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movsd 0x717e(%rip), %xmm5     # 0xc020
divsd %xmm5, %xmm0
movq 0xda1b(%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 0x867a(%rip), %rdi      # 0xd553
movl $0x258, %esi            # imm = 0x258
movb $0x2, %al
callq 0x40b4
xorl %eax, %eax
movq %rax, 0xd9d2(%rip)      # 0x128c0
movq %rax, 0xd9d3(%rip)      # 0x128c8
callq 0xa6ca
movq %rax, 0xd95f(%rip)      # 0x12860
jmp 0x5958
movl 0xd9c4(%rip), %edx      # 0x128d0
leal (,%rdx,8), %eax
xorps %xmm2, %xmm2
cvtsi2sd %rax, %xmm2
divsd 0x70e5(%rip), %xmm2     # 0xc008
cmpb $0x1, 0xd933(%rip)      # 0x1285d
jne 0x4f6c
movl 0xf9c6(%rip), %ecx      # 0x148f8
leal (,%rcx,8), %eax
xorps %xmm1, %xmm1
cvtsi2sd %rax, %xmm1
divsd 0x70bf(%rip), %xmm1     # 0xc008
movl $0x7, %edi
leaq 0x843b(%rip), %rsi      # 0xd390
movapd %xmm2, %xmm0
movb $0x2, %al
movsd %xmm2, 0x10(%rsp)
callq 0x3fdb
movsd 0x10(%rsp), %xmm2
movl 0xd95e(%rip), %eax      # 0x128d0
addq %rax, 0xd947(%rip)      # 0x128c0
movl 0xf979(%rip), %ecx      # 0x148f8
addq %rcx, 0xd942(%rip)      # 0x128c8
addq %rax, 0xf97b(%rip)      # 0x14908
addq %rcx, 0xf97c(%rip)      # 0x14910
xorl %eax, %eax
movl %eax, 0xd934(%rip)      # 0x128d0
movl %eax, 0xf956(%rip)      # 0x148f8
movsd 0x7066(%rip), %xmm0     # 0xc010
maxsd %xmm2, %xmm0
callq 0x32d0
divsd 0x705d(%rip), %xmm0     # 0xc018
mulsd 0x704d(%rip), %xmm0     # 0xc010
movsd %xmm0, 0xd3ed(%rip)     # 0x123b8
jmp 0x5958
movb 0xf91a(%rip), %al       # 0x148f0
testb %al, %al
je 0x5ae1
leaq 0xd563(%rip), %rdi      # 0x12548
leaq 0xf8fc(%rip), %rsi      # 0x148e8
callq 0x7a12
incl 0xf8e9(%rip)            # 0x148e0
jmp 0x5958
leaq 0x170(%rsp), %rax
movq %rax, 0x160(%rsp)
movq 0xd695(%rip), %rsi      # 0x126a8
movq 0xd696(%rip), %rdx      # 0x126b0
addq %rsi, %rdx
leaq 0x160(%rsp), %rbx
movq %rbx, %rdi
callq 0x83bc
movq %rbx, %rdi
leaq 0x8150(%rip), %rsi      # 0xd187
callq 0x3640
movq 0x160(%rsp), %rdi
leaq 0x7ee5(%rip), %rsi      # 0xcf30
callq 0x3430
testq %rax, %rax
je 0x591f
movq %rax, %rbx
callq 0xa6ca
movq %rax, 0x10(%rsp)
subq 0x18(%rsp), %rax
movq 0xf896(%rip), %rcx      # 0x14908
shlq $0x3, %rcx
movq %rcx, %xmm1
movq 0x6fed(%rip), %xmm4     # 0xc070
punpckldq %xmm4, %xmm1    # xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1]
movapd 0x6ff1(%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 0xf84d(%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, 0xf81b(%rip)      # 0x14908
movq %rax, 0xf81c(%rip)      # 0x14910
movq %rbx, %rdi
leaq 0x8092(%rip), %rsi      # 0xd190
leaq 0x7abc(%rip), %rdx      # 0xcbc1
movb $0x2, %al
callq 0x34e0
movq %rbx, %rdi
leaq 0x80b2(%rip), %rsi      # 0xd1c8
leaq 0xd633(%rip), %rdx      # 0x12750
xorl %eax, %eax
callq 0x34e0
cmpl $0x0, 0xd72d(%rip)      # 0x12858
leaq 0x8128(%rip), %r13      # 0xd25a
je 0x5161
movl $0x40, %edx
leaq 0xd4c8(%rip), %rdi      # 0x12608
movq %r14, %rsi
movl $0x1, %ecx
callq 0xa578
movq %rbx, %rdi
leaq 0x8082(%rip), %rsi      # 0xd1d9
movq %rax, %rdx
xorl %eax, %eax
callq 0x34e0
movsd 0xd24f(%rip), %xmm0     # 0x123b8
movq %rbx, %rdi
leaq 0x8075(%rip), %rsi      # 0xd1e8
movb $0x1, %al
callq 0x34e0
leaq 0xd3c7(%rip), %rdi      # 0x12548
callq 0xa4d8
testb %al, %al
jne 0x54dc
movq 0xd263(%rip), %r15      # 0x123f8
movl $0x40, %edx
leaq 0xd317(%rip), %rdi      # 0x124b8
movq %r14, %rsi
movl $0x1, %ecx
callq 0xa578
leaq 0x80a5(%rip), %r13      # 0xd25a
movq %rbx, %rdi
leaq 0x8037(%rip), %rsi      # 0xd1f6
movq %r15, %rdx
movq %rax, %rcx
xorl %eax, %eax
callq 0x34e0
cmpq $0x0, 0xd24c(%rip)      # 0x12420
je 0x51ee
movq 0xd23b(%rip), %rdx      # 0x12418
movq %rbx, %rdi
leaq 0x802c(%rip), %rsi      # 0xd213
xorl %eax, %eax
callq 0x34e0
cmpq $0x0, 0xd24a(%rip)      # 0x12440
movq 0x10(%rsp), %r14
je 0x5215
movq 0xd234(%rip), %rdx      # 0x12438
movq %rbx, %rdi
leaq 0x8013(%rip), %rsi      # 0xd221
xorl %eax, %eax
callq 0x34e0
movq %r14, %rax
subq 0x30(%rsp), %rax
shrq $0x3, %rax
movabsq $0x20c49ba5e353f7cf, %rcx # imm = 0x20C49BA5E353F7CF
mulq %rcx
shrq $0x4, %rdx
movq %rbx, %rdi
leaq 0x7ff3(%rip), %rsi      # 0xd22f
xorl %eax, %eax
callq 0x34e0
leaq 0xcb46(%rip), %r14      # 0x11d90
xorl %r15d, %r15d
leaq 0xd23c(%rip), %rcx      # 0x12490
movl 0xd2e2(%rip), %eax      # 0x1253c
btl %r15d, %eax
jae 0x5277
movq (%r14), %rdx
movq %rbx, %rdi
movq %r13, %rsi
xorl %eax, %eax
callq 0x34e0
leaq 0xd219(%rip), %rcx      # 0x12490
incq %r15
addq $0x8, %r14
cmpq $0x1, %r15
je 0x5254
movq 0xd215(%rip), %r15      # 0x124a0
cmpq %rcx, %r15
movq %rcx, %r14
leaq 0x7c6f(%rip), %r13      # 0xcf07
je 0x52db
movl 0x20(%r15), %eax
cmpl $0x4c, %eax
movq %r13, %rdx
leaq 0x7c66(%rip), %rcx      # 0xcf11
cmoveq %rcx, %rdx
cmpl $0x47, %eax
cmoveq %rbp, %rdx
movq 0x28(%r15), %rcx
movq %rbx, %rdi
leaq 0x7fc1(%rip), %rsi      # 0xd285
xorl %eax, %eax
callq 0x34e0
movq %r15, %rdi
callq 0x3420
movq %rax, %r15
cmpq %r14, %rax
jne 0x529a
movl $0xc, %esi
movl $0x1, %edx
leaq 0x7fbb(%rip), %rdi      # 0xd2a7
movq %rbx, %rcx
callq 0x3650
movq 0xd175(%rip), %r13      # 0x12470
leaq 0xd15e(%rip), %rax      # 0x12460
cmpq %rax, %r13
leaq 0x40(%rsp), %r14
movq 0x10(%rsp), %r15
je 0x5496
leaq 0x20(%r13), %rdi
movl $0x40, %edx
movq %r14, %rsi
movl $0x1, %ecx
callq 0xa578
movq %rbx, %rdi
leaq 0x7f7f(%rip), %rsi      # 0xd2b4
movq %rax, %rdx
xorl %eax, %eax
callq 0x34e0
cmpb $0x1, 0x3f8(%r13)
jne 0x5383
movq 0x330(%r13), %rdx
movq %rbx, %rdi
leaq 0x7f6f(%rip), %rsi      # 0xd2c9
xorl %eax, %eax
callq 0x34e0
cmpq $0x0, 0x358(%r13)
je 0x5383
movq 0x350(%r13), %rdx
movq %rbx, %rdi
leaq 0x7e97(%rip), %rsi      # 0xd213
xorl %eax, %eax
callq 0x34e0
cmpq $0x0, 0x378(%r13)
je 0x53a5
movq 0x370(%r13), %rdx
movq %rbx, %rdi
leaq 0x7e83(%rip), %rsi      # 0xd221
xorl %eax, %eax
callq 0x34e0
subq 0x120(%r13), %r15
shrq $0x3, %r15
movq %r15, %rax
movabsq $0x20c49ba5e353f7cf, %r15 # imm = 0x20C49BA5E353F7CF
mulq %r15
shrq $0x4, %rdx
movq %rbx, %rdi
leaq 0x7f06(%rip), %rsi      # 0xd2d4
xorl %eax, %eax
callq 0x34e0
movq 0x10(%rsp), %rax
subq 0x130(%r13), %rax
shrq $0x3, %rax
mulq %r15
movq 0x10(%rsp), %r15
shrq $0x4, %rdx
movq %rbx, %rdi
leaq 0x7ee4(%rip), %rsi      # 0xd2df
xorl %eax, %eax
callq 0x34e0
cmpb $0x1, 0x18c(%r13)
jne 0x5432
leaq 0x168(%r13), %rdx
movl 0x128(%r13), %r8d
movq %rbx, %rdi
leaq 0x7ecf(%rip), %rsi      # 0xd2f3
movq %r15, %rcx
movl $0x1, %r9d
callq 0x7029
cmpb $0x1, 0x284(%r13)
jne 0x5462
leaq 0x260(%r13), %rdx
movl 0x128(%r13), %r8d
movq %rbx, %rdi
leaq 0x7ea3(%rip), %rsi      # 0xd2f7
movq %r15, %rcx
movl $0x1, %r9d
callq 0x7029
movl $0xd, %esi
movl $0x1, %edx
leaq 0x7e88(%rip), %rdi      # 0xd2fb
movq %rbx, %rcx
callq 0x3650
movq %r13, %rdi
callq 0x3420
movq %rax, %r13
leaq 0xcfd3(%rip), %rax      # 0x12460
cmpq %rax, %r13
jne 0x5315
movl $0xd, %esi
movl $0x1, %edx
leaq 0x7e62(%rip), %rdi      # 0xd309
movq %rbx, %rcx
callq 0x3650
movl $0xb, %esi
movl $0x1, %edx
leaq 0x7e57(%rip), %rdi      # 0xd317
movq %rbx, %rcx
callq 0x3650
movl $0xa, %edi
movq %rbx, %rsi
callq 0x3480
leaq 0x7d7e(%rip), %r13      # 0xd25a
movq 0xcf8d(%rip), %rbp      # 0x12470
leaq 0xcf76(%rip), %rax      # 0x12460
cmpq %rax, %rbp
je 0x588a
movl $0x8, %esi
movl $0x1, %edx
leaq 0x7e1f(%rip), %rdi      # 0xd323
movq %rbx, %rcx
callq 0x3650
cmpb $0x1, 0x3f8(%rbp)
movq 0x10(%rsp), %r15
jne 0x5554
movq 0x330(%rbp), %rdx
movq %rbx, %rdi
leaq 0x7d9e(%rip), %rsi      # 0xd2c9
xorl %eax, %eax
callq 0x34e0
cmpq $0x0, 0x358(%rbp)
je 0x5554
movq 0x350(%rbp), %rdx
movq %rbx, %rdi
leaq 0x7cc6(%rip), %rsi      # 0xd213
xorl %eax, %eax
callq 0x34e0
leaq 0x20(%rbp), %rdi
movl $0x40, %edx
movq %r14, %rsi
movl $0x1, %ecx
callq 0xa578
leaq 0x79a0(%rip), %r12      # 0xcf11
movq %rbx, %rdi
leaq 0x7c8d(%rip), %rsi      # 0xd208
movq %rax, %rdx
xorl %eax, %eax
callq 0x34e0
movq %r15, %rax
subq 0x120(%rbp), %rax
shrq $0x3, %rax
movabsq $0x20c49ba5e353f7cf, %r14 # imm = 0x20C49BA5E353F7CF
mulq %r14
shrq $0x4, %rdx
movq %rbx, %rdi
leaq 0x7d26(%rip), %rsi      # 0xd2d4
xorl %eax, %eax
callq 0x34e0
movq %r15, %rax
subq 0x138(%rbp), %rax
movsd 0xcdf1(%rip), %xmm0     # 0x123b8
mulsd 0x6a59(%rip), %xmm0     # 0xc028
mulsd 0x6a59(%rip), %xmm0     # 0xc030
cvttsd2si %xmm0, %rcx
movl %ecx, %ecx
cmpq %rcx, %rax
leaq 0x7ac5(%rip), %rdx      # 0xd0ad
leaq 0x7ab4(%rip), %rax      # 0xd0a3
cmovbq %rax, %rdx
movq %rbx, %rdi
leaq 0x7d2f(%rip), %rsi      # 0xd32c
xorl %eax, %eax
callq 0x34e0
movq %r15, %rax
subq 0x130(%rbp), %rax
shrq $0x3, %rax
mulq %r14
shrq $0x4, %rdx
movq %rbx, %rdi
leaq 0x7cbc(%rip), %rsi      # 0xd2df
xorl %eax, %eax
callq 0x34e0
leaq 0xc75f(%rip), %r14      # 0x11d90
xorl %r15d, %r15d
movl 0x390(%rbp), %eax
btl %r15d, %eax
jae 0x5650
movq (%r14), %rdx
movq %rbx, %rdi
movq %r13, %rsi
xorl %eax, %eax
callq 0x34e0
incq %r15
addq $0x8, %r14
cmpq $0x1, %r15
je 0x5634
movq 0x3e0(%rbp), %r15
movq %rbp, 0x18(%rsp)
leaq 0x3d0(%rbp), %r14
cmpq %r14, %r15
leaq 0x7c03(%rip), %r13      # 0xd27d
movq %r12, %rbp
leaq 0x7c01(%rip), %r12      # 0xd285
je 0x56c0
movl 0x20(%r15), %eax
cmpl $0x4c, %eax
leaq 0x7873(%rip), %rdx      # 0xcf07
cmoveq %rbp, %rdx
cmpl $0x47, %eax
cmoveq %r13, %rdx
movq 0x28(%r15), %rcx
movq %rbx, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x34e0
movq %r15, %rdi
callq 0x3420
movq %rax, %r15
cmpq %r14, %rax
jne 0x5686
movl $0xc, %esi
movl $0x1, %edx
leaq 0x7bd6(%rip), %rdi      # 0xd2a7
movq %rbx, %rcx
callq 0x3650
movq 0x18(%rsp), %rax
movq 0x3b0(%rax), %r12
leaq 0x3a0(%rax), %r15
cmpq %r15, %r12
leaq 0x40(%rsp), %r14
leaq 0x7b5f(%rip), %r13      # 0xd25a
je 0x5834
movl $0xa, %esi
movl $0x1, %edx
leaq 0x7c28(%rip), %rdi      # 0xd33a
movq %rbx, %rcx
callq 0x3650
cmpb $0x1, 0x100(%r12)
jne 0x5757
movq 0x108(%r12), %rdx
movq %rbx, %rdi
leaq 0x7b92(%rip), %rsi      # 0xd2c9
xorl %eax, %eax
callq 0x34e0
movq 0x128(%r12), %rdx
movq %rbx, %rdi
leaq 0x7ac3(%rip), %rsi      # 0xd213
xorl %eax, %eax
callq 0x34e0
leaq 0x20(%r12), %rdi
movl $0x40, %edx
movq %r14, %rsi
movl $0x1, %ecx
callq 0xa578
movq %rbx, %rdi
leaq 0x7a90(%rip), %rsi      # 0xd208
movq %rax, %rdx
xorl %eax, %eax
callq 0x34e0
movl 0xa8(%r12), %edx
movq %rbx, %rdi
leaq 0x7bb1(%rip), %rsi      # 0xd345
xorl %eax, %eax
callq 0x34e0
cmpb $0x1, 0xd4(%r12)
jne 0x57d1
leaq 0xb0(%r12), %rdx
movq 0x18(%rsp), %rax
movl 0x128(%rax), %r8d
movq %rbx, %rdi
leaq 0x7b2f(%rip), %rsi      # 0xd2f3
movq 0x10(%rsp), %rcx
xorl %r9d, %r9d
callq 0x7029
cmpb $0x1, 0xfc(%r12)
jne 0x5807
leaq 0xd8(%r12), %rdx
movq 0x18(%rsp), %rax
movl 0x128(%rax), %r8d
movq %rbx, %rdi
leaq 0x7afd(%rip), %rsi      # 0xd2f7
movq 0x10(%rsp), %rcx
xorl %r9d, %r9d
callq 0x7029
movl $0xd, %esi
movl $0x1, %edx
leaq 0x7ae3(%rip), %rdi      # 0xd2fb
movq %rbx, %rcx
callq 0x3650
movq %r12, %rdi
callq 0x3420
movq %rax, %r12
cmpq %r15, %rax
jne 0x5701
movl $0xd, %esi
movl $0x1, %edx
leaq 0x7ac4(%rip), %rdi      # 0xd309
movq %rbx, %rcx
callq 0x3650
movl $0xb, %esi
movl $0x1, %edx
leaq 0x7ab9(%rip), %rdi      # 0xd317
movq %rbx, %rcx
callq 0x3650
movq 0x18(%rsp), %rdi
callq 0x3420
movq %rax, %rbp
leaq 0xcbe6(%rip), %rax      # 0x12460
cmpq %rax, %rbp
leaq 0xce64(%rip), %r12      # 0x126e8
jne 0x54f3
movl $0x14, %esi
movl $0x1, %edx
leaq 0x7ab6(%rip), %rdi      # 0xd351
movq %rbx, %rcx
callq 0x3650
movq %rbx, %rdi
callq 0x33b0
movq 0x160(%rsp), %rdi
movq 0xcdee(%rip), %rsi      # 0x126a8
callq 0x3220
cmpq $0x0, 0xcdc9(%rip)      # 0x12690
je 0x58d6
callq 0x30e0
testl %eax, %eax
je 0x5b4b
leaq 0xcf8b(%rip), %r15      # 0x12868
leaq 0x67dc(%rip), %r13      # 0xc0c0
leaq 0x7992(%rip), %rbp      # 0xd27d
jmp 0x5929
movb 0xf00d(%rip), %al       # 0x14900
testb %al, %al
je 0x5aeb
leaq 0xcd06(%rip), %rdi      # 0x12608
leaq 0xeff3(%rip), %rsi      # 0x148fc
callq 0x7a12
incl 0xefd0(%rip)            # 0x148e4
jmp 0x5958
leaq 0xcdcb(%rip), %r12      # 0x126e8
jmp 0x5958
movq 0x18(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x160(%rsp), %rdi
leaq 0x170(%rsp), %rax
cmpq %rax, %rdi
je 0x594e
movq 0x170(%rsp), %rsi
incq %rsi
callq 0x33d0
movq 0x10(%rsp), %rax
movq %rax, 0x18(%rsp)
movl 0x20(%rsp), %eax
cmpl $0x7, %eax
je 0x598c
cmpl $0x5, %eax
jne 0x59b2
movabsq $0x6400000004, %rax     # imm = 0x6400000004
movq %rax, 0x40(%rsp)
movq %r14, %rdi
callq 0x6589
movl $0x0, 0xef59(%rip)      # 0x148e0
jmp 0x5ac5
movabsq $0x6400000006, %rax     # imm = 0x6400000006
movq %rax, 0x40(%rsp)
movq %r14, %rdi
callq 0x6589
movl $0x0, 0xef37(%rip)      # 0x148e4
jmp 0x5ac5
cmpl $0x4, %eax
jne 0x59d9
cmpl $0xa, 0xef22(%rip)      # 0x148e0
jne 0x59d9
movl $0x1, %edi
movl $0x1, %esi
callq 0x6669
movl $0x5, 0x40(%rsp)
jmp 0x59fe
cmpl $0x6, %eax
jne 0x5a07
cmpl $0xa, 0xeeff(%rip)      # 0x148e4
jne 0x5a07
movl $0x1, %edi
movl $0x1, %esi
callq 0x6669
movl $0x7, 0x40(%rsp)
movl %eax, 0x44(%rsp)
jmp 0x5abd
addl $-0x52, %eax
cmpl $0x3, %eax
ja 0x5ada
leaq 0x66c2(%rip), %rcx      # 0xc0dc
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movsd 0xc98d(%rip), %xmm0     # 0x123b8
addsd %xmm0, %xmm0
mulsd 0x65f9(%rip), %xmm0     # 0xc030
cvttsd2si %xmm0, %rax
movl $0x52, 0x40(%rsp)
jmp 0x5ab9
movsd 0xc96a(%rip), %xmm0     # 0x123b8
mulsd 0x65d2(%rip), %xmm0     # 0xc028
mulsd 0x65d2(%rip), %xmm0     # 0xc030
cvttsd2si %xmm0, %rax
movl $0x54, 0x40(%rsp)
jmp 0x5ab9
movsd 0xc943(%rip), %xmm0     # 0x123b8
mulsd 0x65bb(%rip), %xmm0     # 0xc038
mulsd 0x65ab(%rip), %xmm0     # 0xc030
cvttsd2si %xmm0, %rax
movl $0x55, 0x40(%rsp)
jmp 0x5ab9
movsd 0xc91c(%rip), %xmm0     # 0x123b8
mulsd 0x656c(%rip), %xmm0     # 0xc010
mulsd 0x6584(%rip), %xmm0     # 0xc030
cvttsd2si %xmm0, %rax
movl $0x53, 0x40(%rsp)
movl %eax, 0x44(%rsp)
movq %r14, %rdi
callq 0x6589
movq 0xcd9c(%rip), %rbx      # 0x12868
cmpq %r15, %rbx
jne 0x4c7f
jmp 0x4a14
leaq 0x20(%rsp), %rdi
jmp 0x5ac0
callq 0x371b
jmp 0x4fde
callq 0x36f1
jmp 0x58fb
callq 0x3030
movl (%rax), %edi
cmpl $0x4, %edi
je 0x4a14
callq 0x3140
leaq 0x707d(%rip), %rdi      # 0xcb8e
movq %rax, %rsi
jmp 0x5b2d
leaq 0x6f7e(%rip), %rdi      # 0xca9b
jmp 0x5b44
leaq 0x6ecd(%rip), %rdi      # 0xc9f3
leaq 0xcc23(%rip), %rsi      # 0x12750
xorl %eax, %eax
callq 0x4147
leaq 0x6eef(%rip), %rdi      # 0xca2a
jmp 0x5b44
leaq 0x6f33(%rip), %rdi      # 0xca77
xorl %eax, %eax
callq 0x4147
movq 0xcb36(%rip), %rdi      # 0x12688
movq 0xcb4f(%rip), %rdx      # 0x126a8
movq %rdi, %rsi
xorl %ecx, %ecx
xorl %eax, %eax
callq 0x3110
callq 0x3030
movl (%rax), %edi
callq 0x3450
jmp 0x5b7b
jmp 0x5b7b
jmp 0x5b7b
jmp 0x5b7b
jmp 0x5b7b
movq %rax, %rbx
movq 0x160(%rsp), %rdi
leaq 0x170(%rsp), %rax
cmpq %rax, %rdi
je 0x5bdb
movq 0x170(%rsp), %rsi
incq %rsi
jmp 0x5bd6
jmp 0x5ba4
jmp 0x5ba4
movq %rax, %rbx
movq 0x230(%rsp), %rdi
testq %rdi, %rdi
je 0x5bc4
movq 0x240(%rsp), %rsi
subq %rdi, %rsi
callq 0x33d0
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x5bdb
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x33d0
movq %rbx, %rdi
callq 0x35d0