// File: DoubleString[P]RtConverter/src/Rnxbrd/RnxEphFileAdapter.cpp
// Function: bamboo::RnxEphFileAdapter::m_readRnxnav(char)
void RnxEphFileAdapter::m_readRnxnav(char csys) {
	// read rinex navigation file
	int i, k, isys, len, iy, im, id, ih, imin;
	double dsec, dt1, dt0,d_aode;
	char buf[2048], cline[1024], *ptr;
	list<GPSEPH>::iterator gpsItr;
	list<GLSEPH>::iterator glsItr;
	GPSEPH eph;
	GLSEPH ephr;
	ifstream in;
	string line;
	streampos pos;
	bool already;
	in.open(curFile, ios::in | ios::binary);
	if (!in.is_open()) {
		cout << "***ERROR(m_readRnxnav):can't open file " << curFile << endl;
		return;
	}
	while (getline(in, line)) {
		if (strstr(line.c_str(), "END OF HEADER"))
			break;
		if (strstr(line.c_str(), "RINEX VERSION / TYPE") != NULL) {
			sscanf(line.c_str(), "%lf", &ver);
			if (ver > 3.0) {
				if (csys == 'M' && line[40] != 'M') {
					printf(
							"###WARNING(read_rnxnav):there only broadcast for line[40]!\n");
				}
			}
		} else if (strstr(line.c_str(), "PGM / RUN BY / DATE") != NULL)
			continue;
		else if (strstr(line.c_str(), "COMMENT") != NULL)
			continue;
		else if (strstr(line.c_str(), "ION ALPHA") != NULL) {

		} else if (strstr(line.c_str(), "ION BETA") != NULL) {

		}
		//rinex 3.00 3.01 3.02
		else if (strstr(line.c_str(), "IONOSPHERIC CORR") != NULL) {
			if (!strncmp(line.c_str(), "GPS ", 4)
					|| !strncmp(line.c_str(), "GPSA", 4)) {
				i = index_string(SYS, 'G');
				k = 0;
			} else if (!strncmp(line.c_str(), "GPSB", 4)) {
				i = index_string(SYS, 'G');
				k = 1;
			} else if (!strncmp(line.c_str(), "GAL ", 4)) {
				i = index_string(SYS, 'E');
				k = 0;
			} else if (!strncmp(line.c_str(), "BDS ", 4)
					|| !strncmp(line.c_str(), "BDSA", 4)) {
				i = index_string(SYS, 'C');
				k = 0;
			} else if (!strncmp(line.c_str(), "BDSB", 4)) {
				i = index_string(SYS, 'C');
				k = 1;
			} else if (!strncmp(line.c_str(), "QZS ", 4)
					|| !strncmp(line.c_str(), "QZSA", 4)) {
				i = index_string(SYS, 'J');
				k = 0;
			} else if (!strncmp(line.c_str(), "QZSB", 4)) {
				i = index_string(SYS, 'J');
				k = 1;
			} else
				printf("###WARNING(read_rnxnav):unknown ionospheric corr!\n");
			strncpy(ionc[i][k], line.c_str(), 4);
			strcpy(buf, line.c_str());
			ptr = buf;
			while (*ptr != '\0') {
				if (*ptr == 'D')
					*ptr = 'e';
				ptr++;
			}
			sscanf(buf, "%*s%lf%lf%lf%lf", ion[i][k], ion[i][k] + 1,
					ion[i][k] + 2, ion[i][k] + 3);
		} else if (strstr(line.c_str(), "DELTA-UTC: A0,A1,T,W") != NULL) {
			i = index_string(SYS, csys);
			if (i == -1) {
				printf(
						"$$$MESSAGE(read_rnxnav):DELTA-UTC: A0,A1,T,W is only valid for single system!\n");
				continue;
			}
			strcpy(buf, line.c_str());
			ptr = buf;
			while (*ptr != '\0') {
				if (*ptr == 'D')
					*ptr = 'e';
				ptr++;
			}
			sscanf(buf, "%lf%lf%lf%lf", tim[i][0], tim[i][0] + 1, tim[i][0] + 2,
					tim[i][0] + 3);
		} else if (strstr(line.c_str(), "TIME SYSTEM CORR") != NULL) {
			if (!strncmp(line.c_str(), "GPUT", 4)) {
				i = index_string(SYS, 'G');
				k = 0;
			} else if (!strncmp(line.c_str(), "GLUT", 4)) {
				i = index_string(SYS, 'R');
				k = 0;
			} else if (!strncmp(line.c_str(), "GAUT", 4)) {
				i = index_string(SYS, 'E');
				k = 0;
			} else if (!strncmp(line.c_str(), "BDUT", 4)) {
				i = index_string(SYS, 'C');
				k = 0;
			} else if (!strncmp(line.c_str(), "SBUT", 4)) {
				i = index_string(SYS, 'S');
				k = 0;
			} else if (!strncmp(line.c_str(), "QZUT", 4)) {
				i = index_string(SYS, 'J');
				k = 0;
			} else if (!strncmp(line.c_str(), "GPGA", 4)) {
				i = index_string(SYS, 'G');
				k = 1;
			} else if (!strncmp(line.c_str(), "GLGP", 4)) {
				i = index_string(SYS, 'R');
				k = 1;
			} else if (!strncmp(line.c_str(), "QZGP", 4)) {
				i = index_string(SYS, 'J');
				k = 1;
			} else {
				printf(
						"$$$MESSAGE(read_rnxnav):unknown unknown TIME SYSTEM CORR!\n");
				continue;
			}
			strncpy(timc[i][k], line.c_str(), 4);
			strcpy(buf, line.c_str());
			ptr = buf;
			while (*ptr != '\0') {
				if (*ptr == 'D')
					*ptr = 'e';
				ptr++;
			}
			sscanf(buf, "%*5c%lf%lf%lf%lf", tim[i][k], tim[i][k] + 1,
					tim[i][k] + 2, tim[i][k] + 3);
		} else if (strstr(line.c_str(), "LEAP SECONDS") != NULL)
			sscanf(line.c_str(), "%d", &leap);
	}
	while (!in.eof()) {
		// acquire the ephemeris
		pos = in.tellg();
		getline(in, line);
		if (!len_trim(line.c_str()))
			continue;
		in.seekg(pos,ios::beg);
		if (ver < 3.0) {
			buf[0] = csys;
		} else
			buf[0] = line[0];
		switch (buf[0]) {
		case 'G':
		case 'E':
		case 'C':
		case 'J':
			isys = index_string(SYS, buf[0]);
			len = 0;
			memset(buf, 0, sizeof(char) * 2048);
			for (i = 0; i < 8; i++) {
				getline(in, line);
				strcpy(cline, line.c_str());
				if (i != 7) {
					filleph(cline, ver);
				}
				if (ver < 3) {
					if (buf[0] != csys)
						buf[0] = csys;
					strncpy(buf + 1 + len, cline, strlen(cline));
				} else
					strncpy(buf + len, cline, strlen(cline));
				len += strlen(cline);
			}
			ptr = buf;
			while (*ptr != '\0') {
				if (*ptr == '\n' || *ptr == '\r')
					*ptr = ' ';

				if (*ptr == 'D')
					*ptr = 'e';
				ptr++;
			}
			if (ver < 3.0) {
				buf[0] = csys;
				if (buf[1] == ' ')
					buf[1] = '0';
			}
			sscanf(buf,
					"%s%d%d%d%d%d%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf",
					eph.cprn, &iy, &im, &id, &ih, &imin, &dsec, &eph.a0,
					&eph.a1, &eph.a2, &d_aode, &eph.crs, &eph.dn, &eph.m0,
					&eph.cuc, &eph.e, &eph.cus, &eph.roota, &eph.toe, &eph.cic,
					&eph.omega0, &eph.cis, &eph.i0, &eph.crc, &eph.omega,
					&eph.omegadot, &eph.idot, &eph.resvd0, &eph.week,
					&eph.resvd1, &eph.accu, &eph.hlth, &eph.tgd, &eph.aodc);
			/////////////////////////// for BDS III test,must be removed //////////////////////////////////
			if (atoi(eph.cprn + 1) > 14) {
				eph.hlth = 0.0;
			}
			///////////////////////////////////////////////////////////////////////////////////////////////
			if (eph.hlth > 0 || isys == -1)
				continue;
			yr2year(iy);
			if (iy < 2000)
				continue;
			// time of clock
			eph.mjd = md_julday(iy, im, id); // TIME IN BDS TIME AND SHOULD NOT CHANGE IT INTO GPST BECAUSE THERE ARE OTHER TIME TAG IN THE EPHEMERIS
			eph.sod = ih * 3600.0 + imin * 60.0 + dsec;

			// adapter to bds
			if (eph.cprn[0] == 'C') {
				//the week in broadcast file generated by WHU is GPS week,
				//but that in IGS meraged file is BDS week
				mjd2wksow(eph.mjd, eph.sod, &k, &dt1);
				if (k != (int) eph.week)
					eph.week = 1356 + eph.week;
				eph.tgd1 = eph.aodc;
			}
			//check time
			dt0 = 0.0;
			dt1 = 0.0;
			if (mjd0 != 0) {
				dt0 = eph.mjd + eph.sod / 86400.0 - mjd0;
			}
			if (mjd1 != 0) {
				dt1 = eph.mjd + eph.sod / 86400.0 - mjd1;
			}
			if (dt0 < -1.0 / 24.0 || dt1 > 1.0 / 24.0)
				continue;
			already = false;
			for (gpsItr = this->gnssEph[isys].begin();
					gpsItr != this->gnssEph[isys].end(); gpsItr++) {
				if (strstr((*gpsItr).cprn, eph.cprn) && (*gpsItr).mjd == eph.mjd
						&& (*gpsItr).sod == eph.sod) {
					already = true;
					break;
				}
			}
			if (!already) {
				neph[isys] = neph[isys] + 1;
				eph.aode = genAode(buf[0], eph.mjd,eph.sod, eph.toe,static_cast<int>(d_aode),&eph);
				this->gnssEph[isys].push_back(eph);
			}
			break;
		case 'R':
			isys = index_string(SYS, buf[0]);
			len = 0;
			memset(buf, 0, sizeof(char) * 2048);
			for (i = 0; i < 4; i++) {
				getline(in, line);
				strcpy(cline, line.c_str());
				if (ver < 3) {
					if (buf[0] != csys)
						buf[0] = csys;
					strncpy(buf + 1 + len, cline, strlen(cline));
				} else
					strncpy(buf + len, cline, strlen(cline));
				len += strlen(cline);
			}
			ptr = buf;
			while (*ptr != '\0') {
				if (*ptr == '\n' || *ptr == '\r') {
					*ptr = ' ';
				}
				if (*ptr == 'D') {
					*ptr = 'e';
				}
				ptr++;
			}
			if (ver < 3.0) {
				buf[0] = csys;
				if (buf[1] == ' ')
					buf[1] = '0';
			}
			sscanf(buf,
					"%s%d%d%d%d%d%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf",
					ephr.cprn, &iy, &im, &id, &ih, &imin, &dsec, &ephr.tau,
					&ephr.gamma, &ephr.tk, &ephr.pos[0], &ephr.vel[0],
					&ephr.acc[0], &ephr.health, &ephr.pos[1], &ephr.vel[1],
					&ephr.acc[1], &ephr.frenum, &ephr.pos[2], &ephr.vel[2],
					&ephr.acc[2], &ephr.age);

			if (ephr.health > 0.0)
				continue;
			yr2year(iy);
			if (iy < 2000)
				continue;
			ephr.mjd = md_julday(iy, im, id);
			ephr.sod = ih * 3600.0 + imin * 60.0 + dsec;
			//check time
			dt0 = 0.0;
			dt1 = 0.0;
			if (mjd0 != 0) {
				dt0 = ephr.mjd + ephr.sod / 86400.0 - mjd0;
			}
			if (mjd1 != 0) {
				dt1 = ephr.mjd + ephr.sod / 86400.0 - mjd1;
			}
			if (dt0 < -1.0 / 24.0 || dt1 > 1.0 / 24.0)
				continue;
			already = false;
			for (glsItr = this->glsEph.begin(); glsItr != this->glsEph.end();
					glsItr++) {
				if (strstr((*glsItr).cprn, ephr.cprn)
						&& (*glsItr).mjd == ephr.mjd
						&& (*glsItr).sod == ephr.sod) {
					already = true;
					break;
				}
			}
			if (!already) {
				neph[isys] = neph[isys] + 1;
				ephr.aode = genAode(buf[0], ephr.mjd,ephr.sod,0.0, ephr.aode,NULL);
				this->glsEph.push_back(ephr);
			}
			break;
		default:
			getline(in, line);
			break;
		}
	}
	in.close();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x13e8, %rsp           # imm = 0x13E8
movb %sil, %al
movq %rdi, -0x30(%rbp)
movb %al, -0x31(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x10b0(%rbp)
leaq -0xc90(%rbp), %rdi
callq 0x546b0
leaq -0xc98(%rbp), %rdi
callq 0x54af0
leaq -0xd88(%rbp), %rdi
callq 0xba810
leaq -0xe18(%rbp), %rdi
callq 0xba830
leaq -0x1020(%rbp), %rdi
callq 0x9870
leaq -0x1040(%rbp), %rdi
callq 0x9a50
leaq -0x1050(%rbp), %rdi
callq 0x43040
jmp 0xb7caf
movq -0x10b0(%rbp), %rax
addq $0x9b0, %rax            # imm = 0x9B0
movq %rax, -0x10c0(%rbp)
movl $0x8, %edi
movl $0x4, %esi
callq 0x43020
movl %eax, -0x10b4(%rbp)
jmp 0xb7cda
movl -0x10b4(%rbp), %edx
movq -0x10c0(%rbp), %rsi
leaq -0x1020(%rbp), %rdi
callq 0x94b0
jmp 0xb7cf5
leaq -0x1020(%rbp), %rdi
callq 0x9bd0
movb %al, -0x10c1(%rbp)
jmp 0xb7d09
movb -0x10c1(%rbp), %al
testb $0x1, %al
jne 0xb7dab
jmp 0xb7d19
movq 0x3f2a0(%rip), %rdi     # 0xf6fc0
leaq 0x1457d(%rip), %rsi     # 0xcc2a4
callq 0x9760
movq %rax, -0x10d0(%rbp)
jmp 0xb7d35
movq -0x10d0(%rbp), %rdi
movq -0x10b0(%rbp), %rsi
addq $0x9b0, %rsi            # imm = 0x9B0
callq 0x9760
movq %rax, -0x10d8(%rbp)
jmp 0xb7d58
movq -0x10d8(%rbp), %rdi
movq 0x3f23a(%rip), %rsi     # 0xf6fa0
callq 0x97c0
jmp 0xb7d6d
movl $0x1, -0x1064(%rbp)
jmp 0xb9b9c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1058(%rbp)
movl %eax, -0x105c(%rbp)
leaq -0x1040(%rbp), %rdi
callq 0x9480
leaq -0x1020(%rbp), %rdi
callq 0x9200
jmp 0xb9bc6
jmp 0xb7dad
leaq -0x1020(%rbp), %rdi
leaq -0x1040(%rbp), %rsi
callq 0x9160
movq %rax, -0x10e0(%rbp)
jmp 0xb7dc9
movq -0x10e0(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x9950
movb %al, -0x10e1(%rbp)
jmp 0xb7de7
movb -0x10e1(%rbp), %al
testb $0x1, %al
jne 0xb7df6
jmp 0xb8a0a
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x5adf(%rip), %rsi      # 0xbd8eb
callq 0x91b0
cmpq $0x0, %rax
je 0xb7e1c
jmp 0xb8a0a
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x1449a(%rip), %rsi     # 0xcc2cc
callq 0x91b0
cmpq $0x0, %rax
je 0xb7ed4
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq -0x10b0(%rbp), %rdx
movq %rax, %rdi
addq $0xdd0, %rdx            # imm = 0xDD0
leaq 0x102af(%rip), %rsi     # 0xc8114
movb $0x0, %al
callq 0x9750
movq -0x10b0(%rbp), %rax
movsd 0xdd0(%rax), %xmm0
movsd 0x4fb5(%rip), %xmm1     # 0xbce38
ucomisd %xmm1, %xmm0
jbe 0xb7ecf
movsbl -0x31(%rbp), %eax
cmpl $0x4d, %eax
jne 0xb7ecd
leaq -0x1040(%rbp), %rdi
movl $0x28, %esi
callq 0x9eb0
movq %rax, -0x10f0(%rbp)
jmp 0xb7eac
movq -0x10f0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x4d, %eax
je 0xb7ecd
leaq 0x1441f(%rip), %rdi     # 0xcc2e1
xorl %eax, %eax
callq 0x9090
jmp 0xb7ecb
jmp 0xb7ecd
jmp 0xb7ecf
jmp 0xb8a05
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x14433(%rip), %rsi     # 0xcc31d
callq 0x91b0
cmpq $0x0, %rax
je 0xb7efa
jmp 0xb7dad
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x59e9(%rip), %rsi      # 0xbd8f9
callq 0x91b0
cmpq $0x0, %rax
je 0xb7f20
jmp 0xb7dad
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x143fb(%rip), %rsi     # 0xcc331
callq 0x91b0
cmpq $0x0, %rax
je 0xb7f46
jmp 0xb89ff
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x143df(%rip), %rsi     # 0xcc33b
callq 0x91b0
cmpq $0x0, %rax
je 0xb7f6c
jmp 0xb89fd
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x143c2(%rip), %rsi     # 0xcc344
callq 0x91b0
cmpq $0x0, %rax
je 0xb83c4
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x143ae(%rip), %rsi     # 0xcc355
movl $0x4, %edx
callq 0x9360
cmpl $0x0, %eax
je 0xb7fdb
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x1438e(%rip), %rsi     # 0xcc35a
movl $0x4, %edx
callq 0x9360
cmpl $0x0, %eax
jne 0xb8009
leaq 0x145d0(%rip), %rdi     # 0xcc5b2
movl $0x47, %esi
callq 0x340b0
movl %eax, -0x10f4(%rbp)
jmp 0xb7ff4
movl -0x10f4(%rbp), %eax
movl %eax, -0x38(%rbp)
movl $0x0, -0x3c(%rbp)
jmp 0xb825d
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x14340(%rip), %rsi     # 0xcc35f
movl $0x4, %edx
callq 0x9360
cmpl $0x0, %eax
jne 0xb805c
leaq 0x1457d(%rip), %rdi     # 0xcc5b2
movl $0x47, %esi
callq 0x340b0
movl %eax, -0x10f8(%rbp)
jmp 0xb8047
movl -0x10f8(%rbp), %eax
movl %eax, -0x38(%rbp)
movl $0x1, -0x3c(%rbp)
jmp 0xb825b
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x142f2(%rip), %rsi     # 0xcc364
movl $0x4, %edx
callq 0x9360
cmpl $0x0, %eax
jne 0xb80af
leaq 0x1452a(%rip), %rdi     # 0xcc5b2
movl $0x45, %esi
callq 0x340b0
movl %eax, -0x10fc(%rbp)
jmp 0xb809a
movl -0x10fc(%rbp), %eax
movl %eax, -0x38(%rbp)
movl $0x0, -0x3c(%rbp)
jmp 0xb8259
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x142a4(%rip), %rsi     # 0xcc369
movl $0x4, %edx
callq 0x9360
cmpl $0x0, %eax
je 0xb80f9
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x14284(%rip), %rsi     # 0xcc36e
movl $0x4, %edx
callq 0x9360
cmpl $0x0, %eax
jne 0xb8127
leaq 0x144b2(%rip), %rdi     # 0xcc5b2
movl $0x43, %esi
callq 0x340b0
movl %eax, -0x1100(%rbp)
jmp 0xb8112
movl -0x1100(%rbp), %eax
movl %eax, -0x38(%rbp)
movl $0x0, -0x3c(%rbp)
jmp 0xb8257
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x14236(%rip), %rsi     # 0xcc373
movl $0x4, %edx
callq 0x9360
cmpl $0x0, %eax
jne 0xb817a
leaq 0x1445f(%rip), %rdi     # 0xcc5b2
movl $0x43, %esi
callq 0x340b0
movl %eax, -0x1104(%rbp)
jmp 0xb8165
movl -0x1104(%rbp), %eax
movl %eax, -0x38(%rbp)
movl $0x1, -0x3c(%rbp)
jmp 0xb8255
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x141e8(%rip), %rsi     # 0xcc378
movl $0x4, %edx
callq 0x9360
cmpl $0x0, %eax
je 0xb81c4
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x141c8(%rip), %rsi     # 0xcc37d
movl $0x4, %edx
callq 0x9360
cmpl $0x0, %eax
jne 0xb81ef
leaq 0x143e7(%rip), %rdi     # 0xcc5b2
movl $0x4a, %esi
callq 0x340b0
movl %eax, -0x1108(%rbp)
jmp 0xb81dd
movl -0x1108(%rbp), %eax
movl %eax, -0x38(%rbp)
movl $0x0, -0x3c(%rbp)
jmp 0xb8253
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x1417d(%rip), %rsi     # 0xcc382
movl $0x4, %edx
callq 0x9360
cmpl $0x0, %eax
jne 0xb823f
leaq 0x14397(%rip), %rdi     # 0xcc5b2
movl $0x4a, %esi
callq 0x340b0
movl %eax, -0x110c(%rbp)
jmp 0xb822d
movl -0x110c(%rbp), %eax
movl %eax, -0x38(%rbp)
movl $0x1, -0x3c(%rbp)
jmp 0xb8251
leaq 0x14141(%rip), %rdi     # 0xcc387
xorl %eax, %eax
callq 0x9090
jmp 0xb824f
jmp 0xb8251
jmp 0xb8253
jmp 0xb8255
jmp 0xb8257
jmp 0xb8259
jmp 0xb825b
jmp 0xb825d
movq -0x10b0(%rbp), %rax
addq $0x7b8, %rax            # imm = 0x7B8
movslq -0x38(%rbp), %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movslq -0x3c(%rbp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, -0x1120(%rbp)
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq -0x1120(%rbp), %rdi
movq %rax, %rsi
movl $0x4, %edx
callq 0x93b0
leaq -0x880(%rbp), %rax
movq %rax, -0x1118(%rbp)
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq -0x1118(%rbp), %rdi
movq %rax, %rsi
callq 0x96f0
leaq -0x880(%rbp), %rax
movq %rax, -0xc88(%rbp)
movq -0xc88(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0xb831a
movq -0xc88(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x44, %eax
jne 0xb8306
movq -0xc88(%rbp), %rax
movb $0x65, (%rax)
movq -0xc88(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xc88(%rbp)
jmp 0xb82de
movq -0x10b0(%rbp), %r9
leaq -0x880(%rbp), %rdi
movq %r9, %rdx
addq $0x7f0, %rdx            # imm = 0x7F0
movslq -0x38(%rbp), %rax
shlq $0x6, %rax
addq %rax, %rdx
movslq -0x3c(%rbp), %rax
shlq $0x5, %rax
addq %rax, %rdx
movq %r9, %rcx
addq $0x7f0, %rcx            # imm = 0x7F0
movslq -0x38(%rbp), %rax
shlq $0x6, %rax
addq %rax, %rcx
movslq -0x3c(%rbp), %rax
shlq $0x5, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq %r9, %r8
addq $0x7f0, %r8             # imm = 0x7F0
movslq -0x38(%rbp), %rax
shlq $0x6, %rax
addq %rax, %r8
movslq -0x3c(%rbp), %rax
shlq $0x5, %rax
addq %rax, %r8
addq $0x10, %r8
addq $0x7f0, %r9             # imm = 0x7F0
movslq -0x38(%rbp), %rax
shlq $0x6, %rax
addq %rax, %r9
movslq -0x3c(%rbp), %rax
shlq $0x5, %rax
addq %rax, %r9
addq $0x18, %r9
leaq 0x14002(%rip), %rsi     # 0xcc3ba
movb $0x0, %al
callq 0x9750
jmp 0xb89fb
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x13ff0(%rip), %rsi     # 0xcc3ca
callq 0x91b0
cmpq $0x0, %rax
je 0xb8516
movsbl -0x31(%rbp), %esi
leaq 0x141be(%rip), %rdi     # 0xcc5b2
callq 0x340b0
movl %eax, -0x1124(%rbp)
jmp 0xb8401
movl -0x1124(%rbp), %eax
movl %eax, -0x38(%rbp)
cmpl $-0x1, -0x38(%rbp)
jne 0xb8425
leaq 0x13fc8(%rip), %rdi     # 0xcc3df
xorl %eax, %eax
callq 0x9090
jmp 0xb8420
jmp 0xb7dad
leaq -0x880(%rbp), %rax
movq %rax, -0x1130(%rbp)
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq -0x1130(%rbp), %rdi
movq %rax, %rsi
callq 0x96f0
leaq -0x880(%rbp), %rax
movq %rax, -0xc88(%rbp)
movq -0xc88(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0xb8498
movq -0xc88(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x44, %eax
jne 0xb8484
movq -0xc88(%rbp), %rax
movb $0x65, (%rax)
movq -0xc88(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xc88(%rbp)
jmp 0xb845c
movq -0x10b0(%rbp), %r9
leaq -0x880(%rbp), %rdi
movq %r9, %rdx
addq $0xe10, %rdx            # imm = 0xE10
movslq -0x38(%rbp), %rax
shlq $0x6, %rax
addq %rax, %rdx
movq %r9, %rcx
addq $0xe10, %rcx            # imm = 0xE10
movslq -0x38(%rbp), %rax
shlq $0x6, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq %r9, %r8
addq $0xe10, %r8             # imm = 0xE10
movslq -0x38(%rbp), %rax
shlq $0x6, %rax
addq %rax, %r8
addq $0x10, %r8
addq $0xe10, %r9             # imm = 0xE10
movslq -0x38(%rbp), %rax
shlq $0x6, %rax
addq %rax, %r9
addq $0x18, %r9
leaq 0x13fa1(%rip), %rsi     # 0xcc4ab
movb $0x0, %al
callq 0x9750
jmp 0xb89f9
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x13f02(%rip), %rsi     # 0xcc42e
callq 0x91b0
cmpq $0x0, %rax
je 0xb89a9
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x13eee(%rip), %rsi     # 0xcc43f
movl $0x4, %edx
callq 0x9360
cmpl $0x0, %eax
jne 0xb858e
leaq 0x1404b(%rip), %rdi     # 0xcc5b2
movl $0x47, %esi
callq 0x340b0
movl %eax, -0x1134(%rbp)
jmp 0xb8579
movl -0x1134(%rbp), %eax
movl %eax, -0x38(%rbp)
movl $0x0, -0x3c(%rbp)
jmp 0xb8845
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x13ea0(%rip), %rsi     # 0xcc444
movl $0x4, %edx
callq 0x9360
cmpl $0x0, %eax
jne 0xb85e1
leaq 0x13ff8(%rip), %rdi     # 0xcc5b2
movl $0x52, %esi
callq 0x340b0
movl %eax, -0x1138(%rbp)
jmp 0xb85cc
movl -0x1138(%rbp), %eax
movl %eax, -0x38(%rbp)
movl $0x0, -0x3c(%rbp)
jmp 0xb8843
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x13e52(%rip), %rsi     # 0xcc449
movl $0x4, %edx
callq 0x9360
cmpl $0x0, %eax
jne 0xb8634
leaq 0x13fa5(%rip), %rdi     # 0xcc5b2
movl $0x45, %esi
callq 0x340b0
movl %eax, -0x113c(%rbp)
jmp 0xb861f
movl -0x113c(%rbp), %eax
movl %eax, -0x38(%rbp)
movl $0x0, -0x3c(%rbp)
jmp 0xb8841
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x13e04(%rip), %rsi     # 0xcc44e
movl $0x4, %edx
callq 0x9360
cmpl $0x0, %eax
jne 0xb8687
leaq 0x13f52(%rip), %rdi     # 0xcc5b2
movl $0x43, %esi
callq 0x340b0
movl %eax, -0x1140(%rbp)
jmp 0xb8672
movl -0x1140(%rbp), %eax
movl %eax, -0x38(%rbp)
movl $0x0, -0x3c(%rbp)
jmp 0xb883f
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x13db6(%rip), %rsi     # 0xcc453
movl $0x4, %edx
callq 0x9360
cmpl $0x0, %eax
jne 0xb86da
leaq 0x13eff(%rip), %rdi     # 0xcc5b2
movl $0x53, %esi
callq 0x340b0
movl %eax, -0x1144(%rbp)
jmp 0xb86c5
movl -0x1144(%rbp), %eax
movl %eax, -0x38(%rbp)
movl $0x0, -0x3c(%rbp)
jmp 0xb883d
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x13d68(%rip), %rsi     # 0xcc458
movl $0x4, %edx
callq 0x9360
cmpl $0x0, %eax
jne 0xb872d
leaq 0x13eac(%rip), %rdi     # 0xcc5b2
movl $0x4a, %esi
callq 0x340b0
movl %eax, -0x1148(%rbp)
jmp 0xb8718
movl -0x1148(%rbp), %eax
movl %eax, -0x38(%rbp)
movl $0x0, -0x3c(%rbp)
jmp 0xb883b
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x13d1a(%rip), %rsi     # 0xcc45d
movl $0x4, %edx
callq 0x9360
cmpl $0x0, %eax
jne 0xb8780
leaq 0x13e59(%rip), %rdi     # 0xcc5b2
movl $0x47, %esi
callq 0x340b0
movl %eax, -0x114c(%rbp)
jmp 0xb876b
movl -0x114c(%rbp), %eax
movl %eax, -0x38(%rbp)
movl $0x1, -0x3c(%rbp)
jmp 0xb8839
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x13ccc(%rip), %rsi     # 0xcc462
movl $0x4, %edx
callq 0x9360
cmpl $0x0, %eax
jne 0xb87d0
leaq 0x13e06(%rip), %rdi     # 0xcc5b2
movl $0x52, %esi
callq 0x340b0
movl %eax, -0x1150(%rbp)
jmp 0xb87be
movl -0x1150(%rbp), %eax
movl %eax, -0x38(%rbp)
movl $0x1, -0x3c(%rbp)
jmp 0xb8837
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x13c81(%rip), %rsi     # 0xcc467
movl $0x4, %edx
callq 0x9360
cmpl $0x0, %eax
jne 0xb8820
leaq 0x13db6(%rip), %rdi     # 0xcc5b2
movl $0x4a, %esi
callq 0x340b0
movl %eax, -0x1154(%rbp)
jmp 0xb880e
movl -0x1154(%rbp), %eax
movl %eax, -0x38(%rbp)
movl $0x1, -0x3c(%rbp)
jmp 0xb8835
leaq 0x13c45(%rip), %rdi     # 0xcc46c
xorl %eax, %eax
callq 0x9090
jmp 0xb8830
jmp 0xb7dad
jmp 0xb8837
jmp 0xb8839
jmp 0xb883b
jmp 0xb883d
jmp 0xb883f
jmp 0xb8841
jmp 0xb8843
jmp 0xb8845
movq -0x10b0(%rbp), %rax
addq $0xdd8, %rax            # imm = 0xDD8
movslq -0x38(%rbp), %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movslq -0x3c(%rbp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, -0x1168(%rbp)
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq -0x1168(%rbp), %rdi
movq %rax, %rsi
movl $0x4, %edx
callq 0x93b0
leaq -0x880(%rbp), %rax
movq %rax, -0x1160(%rbp)
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq -0x1160(%rbp), %rdi
movq %rax, %rsi
callq 0x96f0
leaq -0x880(%rbp), %rax
movq %rax, -0xc88(%rbp)
movq -0xc88(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0xb8902
movq -0xc88(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x44, %eax
jne 0xb88ee
movq -0xc88(%rbp), %rax
movb $0x65, (%rax)
movq -0xc88(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xc88(%rbp)
jmp 0xb88c6
movq -0x10b0(%rbp), %r9
leaq -0x880(%rbp), %rdi
movq %r9, %rdx
addq $0xe10, %rdx            # imm = 0xE10
movslq -0x38(%rbp), %rax
shlq $0x6, %rax
addq %rax, %rdx
movslq -0x3c(%rbp), %rax
shlq $0x5, %rax
addq %rax, %rdx
movq %r9, %rcx
addq $0xe10, %rcx            # imm = 0xE10
movslq -0x38(%rbp), %rax
shlq $0x6, %rax
addq %rax, %rcx
movslq -0x3c(%rbp), %rax
shlq $0x5, %rax
addq %rax, %rcx
addq $0x8, %rcx
movq %r9, %r8
addq $0xe10, %r8             # imm = 0xE10
movslq -0x38(%rbp), %rax
shlq $0x6, %rax
addq %rax, %r8
movslq -0x3c(%rbp), %rax
shlq $0x5, %rax
addq %rax, %r8
addq $0x10, %r8
addq $0xe10, %r9             # imm = 0xE10
movslq -0x38(%rbp), %rax
shlq $0x6, %rax
addq %rax, %r9
movslq -0x3c(%rbp), %rax
shlq $0x5, %rax
addq %rax, %r9
addq $0x18, %r9
leaq 0x13b07(%rip), %rsi     # 0xcc4a7
movb $0x0, %al
callq 0x9750
jmp 0xb89f7
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x13af9(%rip), %rsi     # 0xcc4b8
callq 0x91b0
cmpq $0x0, %rax
je 0xb89f5
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq -0x10b0(%rbp), %rdx
movq %rax, %rdi
addq $0xfd0, %rdx            # imm = 0xFD0
leaq 0x1050c(%rip), %rsi     # 0xc8efa
movb $0x0, %al
callq 0x9750
jmp 0xb89f7
jmp 0xb89f9
jmp 0xb89fb
jmp 0xb89fd
jmp 0xb89ff
jmp 0xb8a01
jmp 0xb8a03
jmp 0xb8a05
jmp 0xb7dad
jmp 0xb8a0c
movq -0x1020(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x1020(%rbp,%rax), %rdi
callq 0x9dd0
movb %al, -0x1169(%rbp)
jmp 0xb8a2c
movb -0x1169(%rbp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0xb8a3d
jmp 0xb9b84
leaq -0x1020(%rbp), %rdi
callq 0x9d00
movq %rdx, -0x1180(%rbp)
movq %rax, -0x1178(%rbp)
jmp 0xb8a59
movq -0x1180(%rbp), %rax
movq -0x1178(%rbp), %rcx
movq %rcx, -0x1078(%rbp)
movq %rax, -0x1070(%rbp)
movups -0x1078(%rbp), %xmm0
movaps %xmm0, -0x1050(%rbp)
leaq -0x1020(%rbp), %rdi
leaq -0x1040(%rbp), %rsi
callq 0x9160
jmp 0xb8a98
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
callq 0x33d80
movl %eax, -0x1184(%rbp)
jmp 0xb8ab4
movl -0x1184(%rbp), %eax
cmpl $0x0, %eax
jne 0xb8ac4
jmp 0xb8a0c
leaq -0x1050(%rbp), %rdi
callq 0xba850
movq %rax, -0x1190(%rbp)
jmp 0xb8ad9
movq -0x1190(%rbp), %rsi
leaq -0x1020(%rbp), %rdi
xorl %edx, %edx
callq 0x9a10
jmp 0xb8af0
movq -0x10b0(%rbp), %rax
movsd 0x4339(%rip), %xmm0     # 0xbce38
ucomisd 0xdd0(%rax), %xmm0
jbe 0xb8b14
movb -0x31(%rbp), %al
movb %al, -0x880(%rbp)
jmp 0xb8b3c
xorl %eax, %eax
movl %eax, %esi
leaq -0x1040(%rbp), %rdi
callq 0x9eb0
movq %rax, -0x1198(%rbp)
jmp 0xb8b2d
movq -0x1198(%rbp), %rax
movb (%rax), %al
movb %al, -0x880(%rbp)
movsbl -0x880(%rbp), %eax
movl %eax, -0x119c(%rbp)
subl $0x43, %eax
je 0xb8b8b
jmp 0xb8b50
movl -0x119c(%rbp), %eax
subl $0x45, %eax
je 0xb8b8b
jmp 0xb8b5d
movl -0x119c(%rbp), %eax
subl $0x47, %eax
je 0xb8b8b
jmp 0xb8b6a
movl -0x119c(%rbp), %eax
subl $0x4a, %eax
je 0xb8b8b
jmp 0xb8b77
movl -0x119c(%rbp), %eax
subl $0x52, %eax
je 0xb94a7
jmp 0xb9b68
movsbl -0x880(%rbp), %esi
leaq 0x13a19(%rip), %rdi     # 0xcc5b2
callq 0x340b0
movl %eax, -0x11a0(%rbp)
jmp 0xb8ba6
movl -0x11a0(%rbp), %eax
movl %eax, -0x40(%rbp)
movl $0x0, -0x44(%rbp)
leaq -0x880(%rbp), %rdi
xorl %esi, %esi
movl $0x800, %edx            # imm = 0x800
callq 0x93d0
movl $0x0, -0x38(%rbp)
cmpl $0x8, -0x38(%rbp)
jge 0xb8d25
leaq -0x1020(%rbp), %rdi
leaq -0x1040(%rbp), %rsi
callq 0x9160
jmp 0xb8bef
leaq -0xc80(%rbp), %rax
movq %rax, -0x11a8(%rbp)
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq -0x11a8(%rbp), %rdi
movq %rax, %rsi
callq 0x96f0
cmpl $0x7, -0x38(%rbp)
je 0xb8c3d
movq -0x10b0(%rbp), %rax
movsd 0xdd0(%rax), %xmm0
leaq -0xc80(%rbp), %rdi
callq 0x33ed0
jmp 0xb8c3b
jmp 0xb8c3d
movq -0x10b0(%rbp), %rax
movsd 0x41ec(%rip), %xmm0     # 0xbce38
ucomisd 0xdd0(%rax), %xmm0
jbe 0xb8cb9
movsbl -0x880(%rbp), %eax
movsbl -0x31(%rbp), %ecx
cmpl %ecx, %eax
je 0xb8c6e
movb -0x31(%rbp), %al
movb %al, -0x880(%rbp)
leaq -0x880(%rbp), %rax
addq $0x1, %rax
movslq -0x44(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x11b8(%rbp)
leaq -0xc80(%rbp), %rax
movq %rax, -0x11b0(%rbp)
leaq -0xc80(%rbp), %rdi
callq 0x92e0
movq -0x11b8(%rbp), %rdi
movq -0x11b0(%rbp), %rsi
movq %rax, %rdx
callq 0x93b0
jmp 0xb8cfe
leaq -0x880(%rbp), %rax
movslq -0x44(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x11c8(%rbp)
leaq -0xc80(%rbp), %rax
movq %rax, -0x11c0(%rbp)
leaq -0xc80(%rbp), %rdi
callq 0x92e0
movq -0x11c8(%rbp), %rdi
movq -0x11c0(%rbp), %rsi
movq %rax, %rdx
callq 0x93b0
leaq -0xc80(%rbp), %rdi
callq 0x92e0
movq %rax, %rcx
movslq -0x44(%rbp), %rax
addq %rcx, %rax
movl %eax, -0x44(%rbp)
movl -0x38(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x38(%rbp)
jmp 0xb8bd0
leaq -0x880(%rbp), %rax
movq %rax, -0xc88(%rbp)
movq -0xc88(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0xb8d97
movq -0xc88(%rbp), %rax
movsbl (%rax), %eax
cmpl $0xa, %eax
je 0xb8d60
movq -0xc88(%rbp), %rax
movsbl (%rax), %eax
cmpl $0xd, %eax
jne 0xb8d6a
movq -0xc88(%rbp), %rax
movb $0x20, (%rax)
movq -0xc88(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x44, %eax
jne 0xb8d83
movq -0xc88(%rbp), %rax
movb $0x65, (%rax)
movq -0xc88(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xc88(%rbp)
jmp 0xb8d33
movq -0x10b0(%rbp), %rax
movsd 0x4092(%rip), %xmm0     # 0xbce38
ucomisd 0xdd0(%rax), %xmm0
jbe 0xb8dce
movb -0x31(%rbp), %al
movb %al, -0x880(%rbp)
movsbl -0x87f(%rbp), %eax
cmpl $0x20, %eax
jne 0xb8dcc
movb $0x30, -0x87f(%rbp)
jmp 0xb8dce
leaq -0x880(%rbp), %rdi
leaq -0xd88(%rbp), %rdx
leaq -0xd88(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x1268(%rbp)
leaq -0xd88(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x1260(%rbp)
leaq -0xd88(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x1258(%rbp)
leaq -0xd88(%rbp), %rax
addq $0x30, %rax
movq %rax, -0x1248(%rbp)
leaq -0xd88(%rbp), %rax
addq $0x38, %rax
movq %rax, -0x1240(%rbp)
leaq -0xd88(%rbp), %rax
addq $0x40, %rax
movq %rax, -0x1238(%rbp)
leaq -0xd88(%rbp), %rax
addq $0x48, %rax
movq %rax, -0x1230(%rbp)
leaq -0xd88(%rbp), %rax
addq $0x50, %rax
movq %rax, -0x1228(%rbp)
leaq -0xd88(%rbp), %rax
addq $0x58, %rax
movq %rax, -0x1220(%rbp)
leaq -0xd88(%rbp), %rax
addq $0x60, %rax
movq %rax, -0x1218(%rbp)
leaq -0xd88(%rbp), %rax
addq $0x68, %rax
movq %rax, -0x1210(%rbp)
leaq -0xd88(%rbp), %rax
addq $0x70, %rax
movq %rax, -0x1208(%rbp)
leaq -0xd88(%rbp), %rax
addq $0x78, %rax
movq %rax, -0x1200(%rbp)
leaq -0xd88(%rbp), %rax
addq $0x80, %rax
movq %rax, -0x11f8(%rbp)
leaq -0xd88(%rbp), %rax
addq $0x88, %rax
movq %rax, -0x11f0(%rbp)
leaq -0xd88(%rbp), %rax
addq $0x90, %rax
movq %rax, -0x11e8(%rbp)
leaq -0xd88(%rbp), %rax
addq $0x98, %rax
movq %rax, -0x11e0(%rbp)
leaq -0xd88(%rbp), %rax
addq $0xa0, %rax
movq %rax, -0x11d8(%rbp)
leaq -0xd88(%rbp), %r13
addq $0xa8, %r13
leaq -0xd88(%rbp), %r12
addq $0xb0, %r12
leaq -0xd88(%rbp), %r15
addq $0xb8, %r15
leaq -0xd88(%rbp), %r14
addq $0xc0, %r14
leaq -0xd88(%rbp), %rbx
addq $0xc8, %rbx
leaq -0xd88(%rbp), %r11
addq $0xd0, %r11
leaq -0xd88(%rbp), %r10
addq $0xd8, %r10
leaq -0xd88(%rbp), %rax
addq $0xe8, %rax
movq %rax, -0x11d0(%rbp)
leaq 0x1351e(%rip), %rsi     # 0xcc4c5
leaq -0x48(%rbp), %rcx
leaq -0x4c(%rbp), %r8
leaq -0x50(%rbp), %r9
leaq -0x54(%rbp), %rax
movq %rax, -0x1280(%rbp)
leaq -0x58(%rbp), %rax
movq %rax, -0x1278(%rbp)
leaq -0x60(%rbp), %rax
movq %rax, -0x1270(%rbp)
leaq -0x78(%rbp), %rax
movq %rax, -0x1250(%rbp)
movq -0x1280(%rbp), %rax
movq %rax, (%rsp)
movq -0x1278(%rbp), %rax
movq %rax, 0x8(%rsp)
movq -0x1270(%rbp), %rax
movq %rax, 0x10(%rsp)
movq -0x1268(%rbp), %rax
movq %rax, 0x18(%rsp)
movq -0x1260(%rbp), %rax
movq %rax, 0x20(%rsp)
movq -0x1258(%rbp), %rax
movq %rax, 0x28(%rsp)
movq -0x1250(%rbp), %rax
movq %rax, 0x30(%rsp)
movq -0x1248(%rbp), %rax
movq %rax, 0x38(%rsp)
movq -0x1240(%rbp), %rax
movq %rax, 0x40(%rsp)
movq -0x1238(%rbp), %rax
movq %rax, 0x48(%rsp)
movq -0x1230(%rbp), %rax
movq %rax, 0x50(%rsp)
movq -0x1228(%rbp), %rax
movq %rax, 0x58(%rsp)
movq -0x1220(%rbp), %rax
movq %rax, 0x60(%rsp)
movq -0x1218(%rbp), %rax
movq %rax, 0x68(%rsp)
movq -0x1210(%rbp), %rax
movq %rax, 0x70(%rsp)
movq -0x1208(%rbp), %rax
movq %rax, 0x78(%rsp)
movq -0x1200(%rbp), %rax
movq %rax, 0x80(%rsp)
movq -0x11f8(%rbp), %rax
movq %rax, 0x88(%rsp)
movq -0x11f0(%rbp), %rax
movq %rax, 0x90(%rsp)
movq -0x11e8(%rbp), %rax
movq %rax, 0x98(%rsp)
movq -0x11e0(%rbp), %rax
movq %rax, 0xa0(%rsp)
movq -0x11d8(%rbp), %rax
movq %rax, 0xa8(%rsp)
movq -0x11d0(%rbp), %rax
movq %r13, 0xb0(%rsp)
movq %r12, 0xb8(%rsp)
movq %r15, 0xc0(%rsp)
movq %r14, 0xc8(%rsp)
movq %rbx, 0xd0(%rsp)
movq %r11, 0xd8(%rsp)
movq %r10, 0xe0(%rsp)
movq %rax, 0xe8(%rsp)
movb $0x0, %al
callq 0x9750
leaq -0xd88(%rbp), %rdi
addq $0x1, %rdi
callq 0x9b60
cmpl $0xe, %eax
jle 0xb9166
xorps %xmm0, %xmm0
movsd %xmm0, -0xcb8(%rbp)
movsd -0xcb8(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
ja 0xb917d
cmpl $-0x1, -0x40(%rbp)
jne 0xb9182
jmp 0xb8a0c
leaq -0x48(%rbp), %rdi
callq 0x337d0
jmp 0xb918d
cmpl $0x7d0, -0x48(%rbp)     # imm = 0x7D0
jge 0xb919b
jmp 0xb8a0c
movl -0x48(%rbp), %edi
movl -0x4c(%rbp), %esi
movl -0x50(%rbp), %edx
callq 0x32fe0
movl %eax, -0x1284(%rbp)
jmp 0xb91b1
movl -0x1284(%rbp), %eax
movl %eax, -0xd84(%rbp)
cvtsi2sdl -0x54(%rbp), %xmm0
cvtsi2sdl -0x58(%rbp), %xmm1
movsd 0x3c49(%rip), %xmm2     # 0xbce18
mulsd %xmm2, %xmm1
movsd 0x3c35(%rip), %xmm2     # 0xbce10
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
addsd -0x60(%rbp), %xmm0
movsd %xmm0, -0xd80(%rbp)
movsbl -0xd88(%rbp), %eax
cmpl $0x43, %eax
jne 0xb9250
movl -0xd84(%rbp), %edi
movsd -0xd80(%rbp), %xmm0
leaq -0x3c(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x33810
jmp 0xb9219
movl -0x3c(%rbp), %eax
cvttsd2si -0xcd0(%rbp), %ecx
cmpl %ecx, %eax
je 0xb9240
movsd 0x13068(%rip), %xmm0    # 0xcc298
addsd -0xcd0(%rbp), %xmm0
movsd %xmm0, -0xcd0(%rbp)
movsd -0xca0(%rbp), %xmm0
movsd %xmm0, -0xca8(%rbp)
movq -0x10b0(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, -0x70(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x68(%rbp)
cmpl $0x0, 0xdb0(%rax)
je 0xb92a8
movq -0x10b0(%rbp), %rax
cvtsi2sdl -0xd84(%rbp), %xmm0
movsd -0xd80(%rbp), %xmm1
movsd 0x3b91(%rip), %xmm2     # 0xbce20
divsd %xmm2, %xmm1
addsd %xmm1, %xmm0
cvtsi2sdl 0xdb0(%rax), %xmm1
subsd %xmm1, %xmm0
movsd %xmm0, -0x70(%rbp)
movq -0x10b0(%rbp), %rax
cmpl $0x0, 0xdb4(%rax)
je 0xb92f0
movq -0x10b0(%rbp), %rax
cvtsi2sdl -0xd84(%rbp), %xmm0
movsd -0xd80(%rbp), %xmm1
movsd 0x3b49(%rip), %xmm2     # 0xbce20
divsd %xmm2, %xmm1
addsd %xmm1, %xmm0
cvtsi2sdl 0xdb4(%rax), %xmm1
subsd %xmm1, %xmm0
movsd %xmm0, -0x68(%rbp)
movsd 0x12f98(%rip), %xmm0    # 0xcc290
ucomisd -0x70(%rbp), %xmm0
ja 0xb9312
movsd -0x68(%rbp), %xmm0
movsd 0x3c74(%rip), %xmm1     # 0xbcf80
ucomisd %xmm1, %xmm0
jbe 0xb9317
jmp 0xb8a0c
movq -0x10b0(%rbp), %rdi
movb $0x0, -0x105d(%rbp)
addq $0x6d0, %rdi            # imm = 0x6D0
addq $0x28, %rdi
movslq -0x40(%rbp), %rax
imulq $0x18, %rax, %rax
addq %rax, %rdi
callq 0x546d0
movq %rax, -0x1080(%rbp)
movq -0x1080(%rbp), %rax
movq %rax, -0xc90(%rbp)
movq -0x10b0(%rbp), %rdi
addq $0x6d0, %rdi            # imm = 0x6D0
addq $0x28, %rdi
movslq -0x40(%rbp), %rax
imulq $0x18, %rax, %rax
addq %rax, %rdi
callq 0x54730
movq %rax, -0x1088(%rbp)
leaq -0xc90(%rbp), %rdi
leaq -0x1088(%rbp), %rsi
callq 0x54700
testb $0x1, %al
jne 0xb9397
jmp 0xb9411
leaq -0xc90(%rbp), %rdi
callq 0x54830
movq %rax, %rdi
leaq -0xd88(%rbp), %rsi
callq 0x91b0
cmpq $0x0, %rax
je 0xb93f5
leaq -0xc90(%rbp), %rdi
callq 0x54830
movl 0x4(%rax), %eax
cmpl -0xd84(%rbp), %eax
jne 0xb93f5
leaq -0xc90(%rbp), %rdi
callq 0x54830
movsd 0x8(%rax), %xmm0
ucomisd -0xd80(%rbp), %xmm0
jne 0xb93f5
jp 0xb93f5
movb $0x1, -0x105d(%rbp)
jmp 0xb9411
jmp 0xb93f7
leaq -0xc90(%rbp), %rdi
xorl %esi, %esi
callq 0xba870
movq %rax, -0x1090(%rbp)
jmp 0xb9355
testb $0x1, -0x105d(%rbp)
jne 0xb94a2
movq -0x10b0(%rbp), %rax
movslq -0x40(%rbp), %rcx
movl 0x6d8(%rax,%rcx,4), %edx
incl %edx
movl %edx, 0x6d8(%rax,%rcx,4)
movsbl -0x880(%rbp), %edi
movl -0xd84(%rbp), %esi
movsd -0xd80(%rbp), %xmm0
movsd -0xd20(%rbp), %xmm1
cvttsd2si -0x78(%rbp), %edx
leaq -0xd88(%rbp), %rcx
callq 0x385d0
movl %eax, -0x1288(%rbp)
jmp 0xb946f
movq -0x10b0(%rbp), %rax
movl -0x1288(%rbp), %ecx
movl %ecx, -0xd60(%rbp)
movslq -0x40(%rbp), %rcx
leaq (%rcx,%rcx,2), %rcx
leaq 0x6f8(%rax,%rcx,8), %rdi
leaq -0xd88(%rbp), %rsi
callq 0x547f0
jmp 0xb94a0
jmp 0xb94a2
jmp 0xb9b7f
movsbl -0x880(%rbp), %esi
leaq 0x130fd(%rip), %rdi     # 0xcc5b2
callq 0x340b0
movl %eax, -0x128c(%rbp)
jmp 0xb94c2
movl -0x128c(%rbp), %eax
movl %eax, -0x40(%rbp)
movl $0x0, -0x44(%rbp)
leaq -0x880(%rbp), %rdi
xorl %esi, %esi
movl $0x800, %edx            # imm = 0x800
callq 0x93d0
movl $0x0, -0x38(%rbp)
cmpl $0x4, -0x38(%rbp)
jge 0xb961c
leaq -0x1020(%rbp), %rdi
leaq -0x1040(%rbp), %rsi
callq 0x9160
jmp 0xb950b
leaq -0xc80(%rbp), %rax
movq %rax, -0x1298(%rbp)
leaq -0x1040(%rbp), %rdi
callq 0x92b0
movq -0x1298(%rbp), %rdi
movq %rax, %rsi
callq 0x96f0
movq -0x10b0(%rbp), %rax
movsd 0x38f5(%rip), %xmm0     # 0xbce38
ucomisd 0xdd0(%rax), %xmm0
jbe 0xb95b0
movsbl -0x880(%rbp), %eax
movsbl -0x31(%rbp), %ecx
cmpl %ecx, %eax
je 0xb9565
movb -0x31(%rbp), %al
movb %al, -0x880(%rbp)
leaq -0x880(%rbp), %rax
addq $0x1, %rax
movslq -0x44(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x12a8(%rbp)
leaq -0xc80(%rbp), %rax
movq %rax, -0x12a0(%rbp)
leaq -0xc80(%rbp), %rdi
callq 0x92e0
movq -0x12a8(%rbp), %rdi
movq -0x12a0(%rbp), %rsi
movq %rax, %rdx
callq 0x93b0
jmp 0xb95f5
leaq -0x880(%rbp), %rax
movslq -0x44(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x12b8(%rbp)
leaq -0xc80(%rbp), %rax
movq %rax, -0x12b0(%rbp)
leaq -0xc80(%rbp), %rdi
callq 0x92e0
movq -0x12b8(%rbp), %rdi
movq -0x12b0(%rbp), %rsi
movq %rax, %rdx
callq 0x93b0
leaq -0xc80(%rbp), %rdi
callq 0x92e0
movq %rax, %rcx
movslq -0x44(%rbp), %rax
addq %rcx, %rax
movl %eax, -0x44(%rbp)
movl -0x38(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x38(%rbp)
jmp 0xb94ec
leaq -0x880(%rbp), %rax
movq %rax, -0xc88(%rbp)
movq -0xc88(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0xb968e
movq -0xc88(%rbp), %rax
movsbl (%rax), %eax
cmpl $0xa, %eax
je 0xb9657
movq -0xc88(%rbp), %rax
movsbl (%rax), %eax
cmpl $0xd, %eax
jne 0xb9661
movq -0xc88(%rbp), %rax
movb $0x20, (%rax)
movq -0xc88(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x44, %eax
jne 0xb967a
movq -0xc88(%rbp), %rax
movb $0x65, (%rax)
movq -0xc88(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xc88(%rbp)
jmp 0xb962a
movq -0x10b0(%rbp), %rax
movsd 0x379b(%rip), %xmm0     # 0xbce38
ucomisd 0xdd0(%rax), %xmm0
jbe 0xb96c5
movb -0x31(%rbp), %al
movb %al, -0x880(%rbp)
movsbl -0x87f(%rbp), %eax
cmpl $0x20, %eax
jne 0xb96c3
movb $0x30, -0x87f(%rbp)
jmp 0xb96c5
leaq -0x880(%rbp), %rdi
leaq -0xe18(%rbp), %rdx
leaq -0xe18(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x12f8(%rbp)
leaq -0xe18(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x12f0(%rbp)
leaq -0xe18(%rbp), %rax
addq $0x28, %rax
movq %rax, -0x12e8(%rbp)
leaq -0xe18(%rbp), %rax
addq $0x30, %rax
movq %rax, -0x12e0(%rbp)
leaq -0xe18(%rbp), %rax
addq $0x48, %rax
movq %rax, -0x12d8(%rbp)
leaq -0xe18(%rbp), %rax
addq $0x60, %rax
movq %rax, -0x12d0(%rbp)
leaq -0xe18(%rbp), %rax
addq $0x78, %rax
movq %rax, -0x12c8(%rbp)
leaq -0xe18(%rbp), %r13
addq $0x30, %r13
addq $0x8, %r13
leaq -0xe18(%rbp), %r12
addq $0x48, %r12
addq $0x8, %r12
leaq -0xe18(%rbp), %r15
addq $0x60, %r15
addq $0x8, %r15
leaq -0xe18(%rbp), %r14
addq $0x80, %r14
leaq -0xe18(%rbp), %rbx
addq $0x30, %rbx
addq $0x10, %rbx
leaq -0xe18(%rbp), %r11
addq $0x48, %r11
addq $0x10, %r11
leaq -0xe18(%rbp), %r10
addq $0x60, %r10
addq $0x10, %r10
leaq -0xe18(%rbp), %rax
addq $0x88, %rax
movq %rax, -0x12c0(%rbp)
leaq 0x12d52(%rip), %rsi     # 0xcc526
leaq -0x48(%rbp), %rcx
leaq -0x4c(%rbp), %r8
leaq -0x50(%rbp), %r9
leaq -0x54(%rbp), %rax
movq %rax, -0x1310(%rbp)
leaq -0x58(%rbp), %rax
movq %rax, -0x1308(%rbp)
leaq -0x60(%rbp), %rax
movq %rax, -0x1300(%rbp)
movq -0x1310(%rbp), %rax
movq %rax, (%rsp)
movq -0x1308(%rbp), %rax
movq %rax, 0x8(%rsp)
movq -0x1300(%rbp), %rax
movq %rax, 0x10(%rsp)
movq -0x12f8(%rbp), %rax
movq %rax, 0x18(%rsp)
movq -0x12f0(%rbp), %rax
movq %rax, 0x20(%rsp)
movq -0x12e8(%rbp), %rax
movq %rax, 0x28(%rsp)
movq -0x12e0(%rbp), %rax
movq %rax, 0x30(%rsp)
movq -0x12d8(%rbp), %rax
movq %rax, 0x38(%rsp)
movq -0x12d0(%rbp), %rax
movq %rax, 0x40(%rsp)
movq -0x12c8(%rbp), %rax
movq %rax, 0x48(%rsp)
movq -0x12c0(%rbp), %rax
movq %r13, 0x50(%rsp)
movq %r12, 0x58(%rsp)
movq %r15, 0x60(%rsp)
movq %r14, 0x68(%rsp)
movq %rbx, 0x70(%rsp)
movq %r11, 0x78(%rsp)
movq %r10, 0x80(%rsp)
movq %rax, 0x88(%rsp)
movb $0x0, %al
callq 0x9750
movsd -0xda0(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0xb98ca
jmp 0xb8a0c
leaq -0x48(%rbp), %rdi
callq 0x337d0
jmp 0xb98d5
cmpl $0x7d0, -0x48(%rbp)     # imm = 0x7D0
jge 0xb98e3
jmp 0xb8a0c
movl -0x48(%rbp), %edi
movl -0x4c(%rbp), %esi
movl -0x50(%rbp), %edx
callq 0x32fe0
movl %eax, -0x1314(%rbp)
jmp 0xb98f9
movq -0x10b0(%rbp), %rax
movl -0x1314(%rbp), %ecx
movl %ecx, -0xe14(%rbp)
cvtsi2sdl -0x54(%rbp), %xmm0
cvtsi2sdl -0x58(%rbp), %xmm1
movsd 0x34fa(%rip), %xmm2     # 0xbce18
mulsd %xmm2, %xmm1
movsd 0x34e6(%rip), %xmm2     # 0xbce10
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
addsd -0x60(%rbp), %xmm0
movsd %xmm0, -0xe08(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x70(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x68(%rbp)
cmpl $0x0, 0xdb0(%rax)
je 0xb9990
movq -0x10b0(%rbp), %rax
cvtsi2sdl -0xe14(%rbp), %xmm0
movsd -0xe08(%rbp), %xmm1
movsd 0x34a9(%rip), %xmm2     # 0xbce20
divsd %xmm2, %xmm1
addsd %xmm1, %xmm0
cvtsi2sdl 0xdb0(%rax), %xmm1
subsd %xmm1, %xmm0
movsd %xmm0, -0x70(%rbp)
movq -0x10b0(%rbp), %rax
cmpl $0x0, 0xdb4(%rax)
je 0xb99d8
movq -0x10b0(%rbp), %rax
cvtsi2sdl -0xe14(%rbp), %xmm0
movsd -0xe08(%rbp), %xmm1
movsd 0x3461(%rip), %xmm2     # 0xbce20
divsd %xmm2, %xmm1
addsd %xmm1, %xmm0
cvtsi2sdl 0xdb4(%rax), %xmm1
subsd %xmm1, %xmm0
movsd %xmm0, -0x68(%rbp)
movsd 0x128b0(%rip), %xmm0    # 0xcc290
ucomisd -0x70(%rbp), %xmm0
ja 0xb99fa
movsd -0x68(%rbp), %xmm0
movsd 0x358c(%rip), %xmm1     # 0xbcf80
ucomisd %xmm1, %xmm0
jbe 0xb99ff
jmp 0xb8a0c
movq -0x10b0(%rbp), %rdi
movb $0x0, -0x105d(%rbp)
addq $0x6d0, %rdi            # imm = 0x6D0
addq $0xd0, %rdi
callq 0x54b10
movq %rax, -0x1098(%rbp)
movq -0x1098(%rbp), %rax
movq %rax, -0xc98(%rbp)
movq -0x10b0(%rbp), %rdi
addq $0x6d0, %rdi            # imm = 0x6D0
addq $0xd0, %rdi
callq 0x54b70
movq %rax, -0x10a0(%rbp)
leaq -0xc98(%rbp), %rdi
leaq -0x10a0(%rbp), %rsi
callq 0x54b40
testb $0x1, %al
jne 0xb9a6f
jmp 0xb9ae9
leaq -0xc98(%rbp), %rdi
callq 0x54c70
movq %rax, %rdi
leaq -0xe18(%rbp), %rsi
callq 0x91b0
cmpq $0x0, %rax
je 0xb9acd
leaq -0xc98(%rbp), %rdi
callq 0x54c70
movl 0x4(%rax), %eax
cmpl -0xe14(%rbp), %eax
jne 0xb9acd
leaq -0xc98(%rbp), %rdi
callq 0x54c70
movsd 0x10(%rax), %xmm0
ucomisd -0xe08(%rbp), %xmm0
jne 0xb9acd
jp 0xb9acd
movb $0x1, -0x105d(%rbp)
jmp 0xb9ae9
jmp 0xb9acf
leaq -0xc98(%rbp), %rdi
xorl %esi, %esi
callq 0xba8a0
movq %rax, -0x10a8(%rbp)
jmp 0xb9a35
testb $0x1, -0x105d(%rbp)
jne 0xb9b66
movq -0x10b0(%rbp), %rax
movslq -0x40(%rbp), %rcx
movl 0x6d8(%rax,%rcx,4), %edx
incl %edx
movl %edx, 0x6d8(%rax,%rcx,4)
movsbl -0x880(%rbp), %edi
movsd -0xe08(%rbp), %xmm0
movl -0xe14(%rbp), %esi
movl -0xe10(%rbp), %edx
xorl %eax, %eax
movl %eax, %ecx
xorps %xmm1, %xmm1
callq 0x385d0
movl %eax, -0x1318(%rbp)
jmp 0xb9b3c
movq -0x10b0(%rbp), %rdi
movl -0x1318(%rbp), %eax
movl %eax, -0xe10(%rbp)
addq $0x7a0, %rdi            # imm = 0x7A0
leaq -0xe18(%rbp), %rsi
callq 0x54c30
jmp 0xb9b64
jmp 0xb9b66
jmp 0xb9b7f
leaq -0x1020(%rbp), %rdi
leaq -0x1040(%rbp), %rsi
callq 0x9160
jmp 0xb9b7d
jmp 0xb9b7f
jmp 0xb8a0c
leaq -0x1020(%rbp), %rdi
callq 0x9170
jmp 0xb9b92
movl $0x0, -0x1064(%rbp)
leaq -0x1040(%rbp), %rdi
callq 0x9480
leaq -0x1020(%rbp), %rdi
callq 0x9200
addq $0x13e8, %rsp           # imm = 0x13E8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq -0x1058(%rbp), %rdi
callq 0x9d20
nopw %cs:(%rax,%rax)