// File: /workspace/github_cpp_makefile_star2_O3/DoubleString[P]RtConverter/src/Rnxobs/RnxobsFile_sat.cpp
// Function: bamboo::RnxobsFile_sat::v_readEpoch(int&, double&)
void RnxobsFile_sat::v_readEpoch(int& mjd, double& sod) {
	int lfind, nprn, iflag, i, j, k, nline, ntemp;
	int iy, im, id, ih, imi, isat, isys, iobs;
	double sec, ds;
	streampos pos;
	char cline[1024], code[4];
	string line, varstr;
	double obt[MAXOBSTYP];
	if (!(this->in)){
		memset(obs, 0, sizeof(double) * MAXSAT * 2 * MAXFREQ);
		this->mjd = mjd;
		this->sod = sod;
		return;
	}
	Deploy* dly = RtRinexStream::m_getCurConfigures();
	// Read Rnx
	memset(obs, 0, sizeof(double) * MAXSAT * 2 * MAXFREQ);
	memset(dop,0,sizeof(double) * MAXSAT * 2 * MAXFREQ);
	memset(snr,0,sizeof(double) * MAXSAT * MAXFREQ);
	lfind = false;
	while (!lfind && !in.eof()) {
		pos = in.tellg();
		getline(in, line);
		if(!len_trim(line.c_str()))
			continue;
		if (ver < 3.0) {
			nprn = atoi(line.substr(29, 3).c_str());
			iflag = atoi(line.substr(26, 3).c_str());
		} else {
			nprn = atoi(line.substr(32, 3).c_str());
			iflag = atoi(line.substr(29, 3).c_str());
		}
		if (nprn > MAXSAT) {
			printf("nprn = %d,MAXSAT = %d,staname = %s,station's satellite number is bigger than MAXSAT,possible is the readEpoch iflag!",
					nprn,MAXSAT,staname.c_str());
			in.close();
			memset(obs, 0, sizeof(double) * MAXSAT * 2 * MAXFREQ);
			this->mjd = mjd;
			this->sod = sod;
			return;
		}
		// station moved
		if (iflag > 1) {
			for (i = 0; i < nprn; i++) { // nprn indicate the nline
				getline(in, line);
				if (strstr(line.c_str(), "ANTENNA: DELTA H/E/N")) {
					cout << "***INFO(readEpoch):Changing the ENU of the station"
							<< staname << endl;
					sscanf(line.c_str(), "%lf%lf%lf", &h, &e, &n);
				}
			}
			continue;
		}
		// check if the format is correct
		if (ver >= 3.0)
			sscanf(line.c_str(), "%*s%d%d%d%d%d%lf", &iy, &im, &id, &ih, &imi,
					&sec);
		else
			sscanf(line.c_str(), "%d%d%d%d%d%lf", &iy, &im, &id, &ih, &imi,
					&sec);
		yr2year(iy);
		if(iy < 2000 || iy > 3500){
			printf("iy = %d,staname = %s,reading time error,possible is the readEpoch iflag!",iy,staname.c_str());
			in.close();
			memset(obs, 0, sizeof(double) * MAXSAT * 2 * MAXFREQ);
			this->mjd = mjd;
			this->sod = sod;
			return;
		}
		this->mjd = md_julday(iy, im, id);
		this->sod = ih * 3600.0 + imi * 60 + sec;//NINT(ih * 3600.0 + imi * 60 + sec);
		if (ver < 3.0) {
			if (nprn % 12 != 0)
				nline = (int) (nprn / 12.0) + 1;
			else
				nline = nprn / 12;
			if (nprn == 0)
				nline = 1;
		}
		ds = timdif(mjd, sod, this->mjd, this->sod);
		if (ds < -MAXWND) {
			// the requested time is before the current time in the obsfile
			in.seekg(pos);
			this->mjd = mjd;
			this->sod = sod;
			return;
		} else if (ds > MAXWND) {
			// keep tracing until find the corresponding observation
			if (ver < 3.0) {
				for (i = 0; i < nline - 1; i++)
					getline(in, line);
				if (nobstype[0] % 5 != 0)
					ntemp = nprn * ((int) (nobstype[0] / 5) + 1);
				else
					ntemp = nprn * (nobstype[0] / 5);
				for (i = 0; i < ntemp; i++)
					getline(in, line);
			} else {
				for (i = 0; i < nprn; i++)
					getline(in, line);
			}
		} else {
			lfind = true;
			mjd = this->mjd;
			sod = ih * 3600.0 + imi * 60.0 + sec;
			this->sod = sod;
		}
	}
	if(in.eof()){
		this->mjd = mjd;
		this->sod = sod;
		return;
	}
	if (ver < 3.0) {
		// get rinex 2.x version observation data
		in.seekg(pos);
		for (i = 0; i < nline; i++) {
			getline(in, line);
			for (j = 0; j < MIN(nprn - 12 * i, 12); j++) {
				cprn_ob[j + i * 12] = line.substr(32 + j * 3, 3);
				if (cprn_ob[j + i * 12][0] == ' ')
					cprn_ob[j + i * 12][0] = 'G';
				if (cprn_ob[j + i * 12][1] == ' ')
					cprn_ob[j + i * 12][1] = '0';
			}
		}
		if (nobstype[0] % 5 != 0)
			nline = (int) (nobstype[0] / 5.0) + 1;
		else
			nline = nobstype[0] / 5;
		for (i = 0; i < nprn; i++) {
			for (j = 0; j < nline; j++) {
				getline(in, line);
				strcpy(cline, line.c_str());
				fillobs(cline, MIN(nobstype[0] - j * 5, 5), 16,ver);
				varstr = string(cline);
				for (k = 0; k < MIN(nobstype[0] - j * 5, 5); k++) {
					obt[k + j * 5] = 0.0;
					obt[k + j * 5] = atof(varstr.substr(16 * k, 14).c_str());
				}
			}
			isat = pointer_string(dly->nprn, dly->cprn, this->cprn_ob[i]);
			if (isat != -1) {
				//isys = SYS.find_first_of(this->cprn_ob[i][0]);
				isys = index_string(SYS,this->cprn_ob[i][0]);
				for (j = 0; j < dly->nfreq[isys]; j++) {
					code[0] = 'P';
					code[1] = dly->freq[isys][j][1];
					code[2] = '\0';
					k = pointer_string(nobstype[isys], obstype[isys],
							string(code));
					if (k != -1) {
						this->obs[isat][MAXFREQ + j] = obt[k];
						code[0] = 'C';
						code[1] = dly->freq[isys][j][1];
						code[2] = 'P';
						code[3] = '\0';
						memcpy(this->fob[isat][MAXFREQ + j],code,sizeof(char) * 4);
					}
					if (this->obs[isat][MAXFREQ + j] == 0) {
						code[0] = 'C';
						code[1] = dly->freq[isys][j][1];
						code[2] = '\0';

						k = pointer_string(nobstype[isys], obstype[isys],
								string(code));
						if (k != -1) {
							this->obs[isat][MAXFREQ + j] = obt[k];
							code[0] = 'C';
							code[1] = dly->freq[isys][j][1];
							code[2] = 'C';
							code[3] = '\0';
							memcpy(this->fob[isat][MAXFREQ + j],code,sizeof(char) * 4);
						}
					}
					code[0] = 'L';
					code[1] = dly->freq[isys][j][1];
					code[2] = '\0';
					k = pointer_string(nobstype[isys], obstype[isys],
							string(code));
					if (k != -1) {
						this->obs[isat][j] = obt[k];
						code[0] = 'L';
						code[1] = dly->freq[isys][j][1];
						code[2] = 'P';
						code[3] = '\0';
						memcpy(this->fob[isat][j],code,sizeof(char) * 4);
					}
					/////////////////////// dop observations//////////////
					code[0] = 'D';
					code[1] = dly->freq[isys][j][1];
					code[2] = '\0';
					k = pointer_string(nobstype[isys], obstype[isys],
							string(code));
					if (k != -1) {
						this->dop[isat][MAXFREQ + j] = obt[k];
					}
				}
				m_checkObs(isat,obs[isat],dop[isat],snr[isat]);
			}
		}
	} else {
		// get rinex 3.x version observation data
		for (i = 0; i < nprn; i++) {
			getline(in, line);
			//isys = SYS.find_first_of(line[0]);
			isys = index_string(SYS,line[0]);
			if (isys == -1)
				continue;
			if (line[1] == ' ')
				line[1] = '0';
			isat = pointer_string(dly->nprn, dly->cprn, line.substr(0, 3));
			if (isat == -1)
				continue;
			strcpy(cline, line.substr(3, line.size() - 3).c_str());
			fillobs(cline, nobstype[isys], 16,ver);
			varstr = line.substr(0,3) + string(cline);
			for (j = 0; j < nobstype[isys]; j++) {
				obt[j] = atof(varstr.substr(3 + j * 16, 14).c_str());
			}
			for (j = 0; j < dly->nfreq[isys]; j++) {
				if (!(this->tstore[isat][j])) {
					for (iobs = 0; iobs < strlen(OBSTYPE); iobs++) {
						code[0] = 'C';
						code[1] = dly->freq[isys][j][1];
						code[2] = OBSTYPE[iobs];
						code[3] = '\0';
						k = pointer_string(nobstype[isys], obstype[isys],
								string(code));
						if (k != -1) {
							obs[isat][MAXFREQ + j] = obt[k];
							memcpy(this->fob[isat][MAXFREQ + j],code,sizeof(char) * 4);
						}
						code[0] = 'L';
						code[1] = dly->freq[isys][j][1];
						code[2] = OBSTYPE[iobs];
						code[3] = '\0';
						k = pointer_string(nobstype[isys], obstype[isys],
								string(code));
						if (k != -1) {
							obs[isat][j] = obt[k];
							memcpy(this->fob[isat][j],code,sizeof(char) * 4);
						}

						code[0] = 'S';
						code[1] = dly->freq[isys][j][1];
						code[2] = OBSTYPE[iobs];
						code[3] = '\0';
						k = pointer_string(nobstype[isys], obstype[isys],
								string(code));
						if (k != -1) {
							snr[isat][j] = obt[k];
						}

						code[0] = 'D';
						code[1] = dly->freq[isys][j][1];
						code[2] = OBSTYPE[iobs];
						code[3] = '\0';

						k = pointer_string(nobstype[isys], obstype[isys],
								string(code));
						if (k != -1) {
							dop[isat][MAXFREQ + j] = obt[k];
						}
						//// must according the uobs to decide
						if (obs[isat][j] != 0 && obs[isat][MAXFREQ + j] != 0)
							break;
					}
					if (iobs < strlen(OBSTYPE)) {
						usetype[isat][j] = OBSTYPE[iobs];
						tstore[isat][j] = 1;
					}
				} else {
					code[0] = 'C';
					code[1] = dly->freq[isys][j][1];
					code[2] = this->usetype[isat][j];
					code[3] = '\0';
					k = pointer_string(nobstype[isys], obstype[isys],
							string(code));
					if (k != -1) {
						obs[isat][MAXFREQ + j] = obt[k];
						memcpy(this->fob[isat][MAXFREQ + j],code,sizeof(char) * 4);
					}
					code[0] = 'L';
					code[1] = dly->freq[isys][j][1];
					code[2] = this->usetype[isat][j];
					code[3] = '\0';
					k = pointer_string(nobstype[isys], obstype[isys],
							string(code));
					if (k != -1) {
						obs[isat][j] = obt[k];
						memcpy(this->fob[isat][j],code,sizeof(char) * 4);
					}

					code[0] = 'S';
					code[1] = dly->freq[isys][j][1];
					code[2] = this->usetype[isat][j];
					code[3] = '\0';

					k = pointer_string(nobstype[isys], obstype[isys],
							string(code));
					if (k != -1) {
						snr[isat][j] = obt[k];
					}

					code[0] = 'D';
					code[1] = dly->freq[isys][j][1];
					code[2] = this->usetype[isat][j];
					code[3] = '\0';

					k = pointer_string(nobstype[isys], obstype[isys],
							string(code));
					if (k != -1) {
						dop[isat][MAXFREQ + j] = obt[k];
					}
				}
			}
			m_checkObs(isat,obs[isat],dop[isat],snr[isat]);
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x8e8, %rsp            # imm = 0x8E8
movq %rdx, %r15
movq %rsi, %r12
movq %rdi, %rbx
leaq -0xe8(%rbp), %rcx
movq %rcx, -0x10(%rcx)
xorl %eax, %eax
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x198(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
movq 0xb820(%rdi), %rax
movq -0x18(%rax), %rax
leaq 0x8(%rdi), %r14
testb $0x5, 0xb840(%rdi,%rax)
je 0x24505
movl $0x1fe0, %edx           # imm = 0x1FE0
movq %r14, %rdi
xorl %esi, %esi
callq 0x8390
movl (%r12), %eax
movl %eax, 0x6010(%rbx)
movsd (%r15), %xmm0
movsd %xmm0, 0x3fc8(%rbx)
jmp 0x25e18
movq %r12, -0x70(%rbp)
movq %r15, -0x68(%rbp)
leaq 0xb820(%rbx), %rax
movq %rax, -0x58(%rbp)
leaq 0x4fc0(%rbx), %rdi
xorl %r12d, %r12d
movl $0xff0, %edx            # imm = 0xFF0
movq %rdi, -0x108(%rbp)
xorl %esi, %esi
callq 0x8390
movl $0x3fc0, %edx           # imm = 0x3FC0
movq %r14, -0xa8(%rbp)
movq %r14, %rdi
xorl %esi, %esi
callq 0x8390
movq 0xb820(%rbx), %rax
movq -0x18(%rax), %rax
testb $0x2, 0xb840(%rbx,%rax)
movq %rbx, -0x38(%rbp)
jne 0x24a73
leaq 0x6cb8(%rbx), %rax
movq %rax, -0x48(%rbp)
leaq 0x6ca8(%rbx), %rax
movq %rax, -0x50(%rbp)
leaq 0x6cb0(%rbx), %rax
movq %rax, -0x60(%rbp)
leaq -0xf8(%rbp), %r15
movq %rax, -0xa0(%rbp)
movq -0x58(%rbp), %rbx
movq %rbx, %rdi
callq 0x8b10
movq %rax, %r13
movq %rdx, %r12
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x8600
movsbl %al, %edx
movq -0x58(%rbp), %rdi
movq %r15, %rsi
callq 0x8bd0
movq -0xf8(%rbp), %rdi
callq 0x1d2ee
testl %eax, %eax
jne 0x245fa
movq -0x38(%rbp), %rcx
movq 0xb820(%rcx), %rax
movq -0x18(%rax), %rax
testb $0x2, 0xb840(%rcx,%rax)
je 0x24597
jmp 0x24a7d
movq -0x38(%rbp), %rax
movsd 0x462e2(%rip), %xmm0    # 0x6a8e8
ucomisd 0x6c20(%rax), %xmm0
jbe 0x24681
movl $0x1d, %edx
movl $0x3, %ecx
leaq -0x90(%rbp), %rdi
movq %r15, %rsi
callq 0x8660
movq -0x90(%rbp), %r14
movq %r14, %rdi
callq 0x89a0
movl %eax, -0x3c(%rbp)
leaq -0x80(%rbp), %rax
cmpq %rax, %r14
je 0x2464c
movq %r14, %rdi
callq 0x85d0
movl $0x1a, %edx
movl $0x3, %ecx
leaq -0x90(%rbp), %rdi
movq %r15, %rsi
callq 0x8660
movq -0x90(%rbp), %r14
movq %r14, %rdi
callq 0x89a0
movl %eax, %ebx
leaq -0x80(%rbp), %rax
cmpq %rax, %r14
je 0x246f8
jmp 0x246f0
movl $0x20, %edx
movl $0x3, %ecx
leaq -0x90(%rbp), %rdi
movq %r15, %rsi
callq 0x8660
movq -0x90(%rbp), %r14
movq %r14, %rdi
callq 0x89a0
movl %eax, -0x3c(%rbp)
leaq -0x80(%rbp), %rax
cmpq %rax, %r14
je 0x246bd
movq %r14, %rdi
callq 0x85d0
movl $0x1d, %edx
movl $0x3, %ecx
leaq -0x90(%rbp), %rdi
movq %r15, %rsi
callq 0x8660
movq -0x90(%rbp), %r14
movq %r14, %rdi
callq 0x89a0
movl %eax, %ebx
leaq -0x80(%rbp), %rax
cmpq %rax, %r14
je 0x246f8
movq %r14, %rdi
callq 0x85d0
cmpl $0xab, -0x3c(%rbp)
jge 0x25dbb
cmpl $0x2, %ebx
jl 0x247ec
cmpl $0x0, -0x3c(%rbp)
jle 0x245dc
movl -0x3c(%rbp), %ebx
movq -0x58(%rbp), %rcx
movq (%rcx), %rax
movq -0x18(%rax), %rdi
addq %rcx, %rdi
movl $0xa, %esi
callq 0x8600
movsbl %al, %edx
movq -0x58(%rbp), %rdi
movq %r15, %rsi
callq 0x8bd0
movq -0xf8(%rbp), %rdi
leaq 0x47139(%rip), %rsi     # 0x6b889
callq 0x8160
testq %rax, %rax
je 0x247df
movl $0x32, %edx
movq 0x69866(%rip), %rdi     # 0x8dfd0
leaq 0x4712d(%rip), %rsi     # 0x6b89e
callq 0x8720
movq -0x38(%rbp), %rax
movq 0x5fb0(%rax), %rsi
movq 0x5fb8(%rax), %rdx
movq 0x69841(%rip), %rdi     # 0x8dfd0
callq 0x8720
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x8600
movsbl %al, %esi
movq %r14, %rdi
callq 0x8050
movq %rax, %rdi
callq 0x8450
movq -0xf8(%rbp), %rdi
leaq 0x54e31(%rip), %rsi     # 0x795fd
movq -0x48(%rbp), %rdx
movq -0x50(%rbp), %rcx
movq -0x60(%rbp), %r8
xorl %eax, %eax
callq 0x8610
decl %ebx
jne 0x2471b
jmp 0x245dc
movq -0x38(%rbp), %rax
movsd 0x6c20(%rax), %xmm0
ucomisd 0x460e8(%rip), %xmm0    # 0x6a8e8
movq -0xf8(%rbp), %rdi
leaq 0x470c3(%rip), %rsi     # 0x6b8d1
leaq 0x470bf(%rip), %rax     # 0x6b8d4
cmovbq %rax, %rsi
leaq -0x13c(%rbp), %rbx
movq %rbx, %rdx
leaq -0x138(%rbp), %rcx
leaq -0x134(%rbp), %r8
leaq -0xd8(%rbp), %r9
xorl %eax, %eax
leaq -0x168(%rbp), %r10
pushq %r10
leaq -0xd4(%rbp), %r10
pushq %r10
callq 0x8610
addq $0x10, %rsp
movq %rbx, %rdi
callq 0x1cf0d
movl -0x13c(%rbp), %eax
leal -0xdad(%rax), %ecx
cmpl $0xfffffa22, %ecx       # imm = 0xFFFFFA22
jbe 0x25e5a
movl -0x138(%rbp), %esi
movl -0x134(%rbp), %edx
movl %eax, %edi
callq 0x1c8ec
movq -0x38(%rbp), %rdx
movl %eax, 0x6010(%rdx)
cvtsi2sdl -0xd8(%rbp), %xmm1
imull $0x3c, -0xd4(%rbp), %ecx
xorps %xmm0, %xmm0
cvtsi2sd %ecx, %xmm0
mulsd 0x46010(%rip), %xmm1    # 0x6a8c0
addsd %xmm0, %xmm1
addsd -0x168(%rbp), %xmm1
movsd %xmm1, 0x3fc8(%rdx)
movsd 0x4601c(%rip), %xmm0    # 0x6a8e8
ucomisd 0x6c20(%rdx), %xmm0
jbe 0x2492e
movl -0x3c(%rbp), %edi
movslq %edi, %rcx
imulq $0x2aaaaaab, %rcx, %rcx # imm = 0x2AAAAAAB
movq %rcx, %rdx
shrq $0x3f, %rdx
sarq $0x21, %rcx
imull $0xaaaaaaab, %edi, %esi # imm = 0xAAAAAAAB
addl $0x2aaaaaa8, %esi       # imm = 0x2AAAAAA8
rorl $0x2, %esi
xorps %xmm0, %xmm0
cvtsi2sd %edi, %xmm0
addl %edx, %ecx
divsd 0x46ea2(%rip), %xmm0    # 0x6b7b0
cvttsd2si %xmm0, %edx
incl %edx
cmpl $0x15555555, %esi       # imm = 0x15555555
cmovbl %ecx, %edx
testl %edi, %edi
movl $0x1, %ecx
cmovel %ecx, %edx
movq %rdx, -0xa0(%rbp)
movq -0x70(%rbp), %rcx
movl (%rcx), %edi
movq -0x68(%rbp), %rcx
movsd (%rcx), %xmm0
movl %eax, %esi
callq 0x1cef1
movapd %xmm0, %xmm1
movsd 0x46e69(%rip), %xmm0    # 0x6b7b8
ucomisd %xmm1, %xmm0
ja 0x25e83
ucomisd 0x46e5f(%rip), %xmm1    # 0x6b7c0
jbe 0x25e97
movsd %xmm1, -0xc0(%rbp)
movq -0x38(%rbp), %rax
movsd 0x45f6d(%rip), %xmm0    # 0x6a8e8
ucomisd 0x6c20(%rax), %xmm0
jbe 0x24a25
cmpl $0x2, -0xa0(%rbp)
jl 0x249c6
movq -0xa0(%rbp), %rax
leal -0x1(%rax), %ebx
movq -0x58(%rbp), %r14
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x8600
movsbl %al, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x8bd0
decl %ebx
jne 0x2499c
movq -0x38(%rbp), %rax
movslq 0x6cd4(%rax), %rax
imulq $0x66666667, %rax, %rcx # imm = 0x66666667
movq %rcx, %rdx
shrq $0x3f, %rdx
sarq $0x21, %rcx
addl %edx, %ecx
leal (%rcx,%rcx,4), %edx
xorl %ebx, %ebx
cmpl %edx, %eax
setne %bl
addl %ecx, %ebx
imull -0x3c(%rbp), %ebx
testl %ebx, %ebx
jle 0x24a58
movq -0x58(%rbp), %r14
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x8600
movsbl %al, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x8bd0
decl %ebx
jne 0x249f9
jmp 0x24a58
movl -0x3c(%rbp), %eax
movl %eax, %ebx
testl %eax, %eax
jle 0x24a58
movq -0x58(%rbp), %r14
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x8600
movsbl %al, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x8bd0
decl %ebx
jne 0x24a2e
movsd -0xc0(%rbp), %xmm0
ucomisd 0x46d58(%rip), %xmm0    # 0x6b7c0
ja 0x245dc
jmp 0x25ee9
movq %rcx, -0xa0(%rbp)
xorl %r13d, %r13d
movq -0x58(%rbp), %rcx
testb $0x2, 0x20(%rcx,%rax)
jne 0x25df8
movq -0x38(%rbp), %rax
leaq 0x1fe8(%rax), %rcx
movq %rcx, -0xd0(%rbp)
movsd 0x45e42(%rip), %xmm0    # 0x6a8e8
ucomisd 0x6c20(%rax), %xmm0
jbe 0x252f2
movq -0x58(%rbp), %rdi
movq %r13, %rsi
movq %r12, %rdx
callq 0x8800
movq -0xa0(%rbp), %rcx
testl %ecx, %ecx
jle 0x24bcc
movq -0x38(%rbp), %rax
addq $0x98b0, %rax           # imm = 0x98B0
movq %rax, -0x50(%rbp)
movl %ecx, %eax
movq %rax, -0x60(%rbp)
movq $0x0, -0x48(%rbp)
leaq -0x90(%rbp), %r15
movq -0x58(%rbp), %rbx
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x8600
movsbl %al, %edx
movq %rbx, %rdi
leaq -0xf8(%rbp), %rsi
callq 0x8bd0
movq -0x48(%rbp), %rax
leal (,%rax,4), %eax
leal (%rax,%rax,2), %eax
movl -0x3c(%rbp), %ecx
movl %ecx, %ebx
subl %eax, %ebx
jle 0x24baf
cmpl $0xc, %ebx
movl $0xc, %eax
cmovael %eax, %ebx
movl $0x20, %r12d
movq -0x50(%rbp), %r13
xorl %r14d, %r14d
movl $0x3, %ecx
movq %r15, %rdi
leaq -0xf8(%rbp), %rsi
movq %r12, %rdx
callq 0x8660
movq %r13, %rdi
movq %r15, %rsi
callq 0x87c0
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0x24b85
callq 0x85d0
movq (%r13), %rax
cmpb $0x20, (%rax)
jne 0x24b95
movb $0x47, (%rax)
movq (%r13), %rax
cmpb $0x20, 0x1(%rax)
jne 0x24b9f
movb $0x30, 0x1(%rax)
incq %r14
addq $0x20, %r13
addq $0x3, %r12
cmpq %rbx, %r14
jb 0x24b4e
movq -0x48(%rbp), %rcx
incq %rcx
addq $0x180, -0x50(%rbp)     # imm = 0x180
movq %rcx, -0x48(%rbp)
cmpq -0x60(%rbp), %rcx
jne 0x24af5
movq -0x38(%rbp), %rax
movslq 0x6cd4(%rax), %rax
imulq $0x66666667, %rax, %rcx # imm = 0x66666667
movq %rcx, %rdx
shrq $0x3f, %rdx
sarq $0x21, %rcx
addl %edx, %ecx
imull $0xcccccccd, %eax, %edx # imm = 0xCCCCCCCD
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
divsd 0x46bc8(%rip), %xmm0    # 0x6b7c8
addl $0x19999999, %edx       # imm = 0x19999999
cvttsd2si %xmm0, %eax
incl %eax
cmpl $0x33333333, %edx       # imm = 0x33333333
cmovbl %ecx, %eax
movl %eax, -0x110(%rbp)
cmpl $0x0, -0x3c(%rbp)
jle 0x25e18
movq -0x38(%rbp), %rax
leaq 0x98b0(%rax), %rcx
movq %rcx, -0x118(%rbp)
leaq 0x6cf0(%rax), %rcx
movq %rcx, -0x120(%rbp)
leaq 0x3fd0(%rax), %rcx
movq %rcx, -0xc8(%rbp)
movl -0x3c(%rbp), %ecx
movq %rcx, -0x130(%rbp)
movl -0x110(%rbp), %ecx
movq %rcx, -0xa0(%rbp)
leaq 0x20(%rax), %rcx
movq %rcx, -0x1b8(%rbp)
addq $0x3fdc, %rax           # imm = 0x3FDC
movq %rax, -0x1b0(%rbp)
movl $0x6b0, %eax            # imm = 0x6B0
addq 0x6931a(%rip), %rax     # 0x8dfa8
movq %rax, -0x100(%rbp)
movq $0x0, -0xb8(%rbp)
cmpl $0x0, -0x110(%rbp)
jle 0x24e25
leaq -0x510(%rbp), %rbx
movq $0x0, -0x48(%rbp)
movq -0x58(%rbp), %rcx
movq (%rcx), %rax
movq -0x18(%rax), %rdi
addq %rcx, %rdi
movl $0xa, %esi
callq 0x8600
movsbl %al, %edx
movq -0x58(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x8bd0
movq -0xf8(%rbp), %rsi
leaq -0x910(%rbp), %r14
movq %r14, %rdi
callq 0x85c0
movq -0x38(%rbp), %rax
movl 0x6cd4(%rax), %esi
movq -0x48(%rbp), %rcx
leal (%rcx,%rcx,4), %r13d
subl %r13d, %esi
cmpl $0x5, %esi
movl $0x5, %ecx
cmovgel %ecx, %esi
movsd 0x6c20(%rax), %xmm0
movq %r14, %rdi
movl $0x10, %edx
callq 0x1d226
leaq -0x80(%rbp), %r14
movq %r14, -0x90(%rbp)
leaq -0x910(%rbp), %r15
movq %r15, %rdi
callq 0x8290
leaq (%rax,%rbp), %rdx
addq $-0x910, %rdx           # imm = 0xF6F0
leaq -0x90(%rbp), %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0x1100a
leaq -0x1a8(%rbp), %rdi
movq %r12, %rsi
callq 0x87c0
movq -0x90(%rbp), %rdi
cmpq %r14, %rdi
movq %r12, %r15
je 0x24d8c
callq 0x85d0
movq -0x38(%rbp), %rax
cmpl %r13d, 0x6cd4(%rax)
jle 0x24e09
xorl %r12d, %r12d
xorl %r14d, %r14d
movl $0xe, %ecx
movq %r15, %rdi
leaq -0x1a8(%rbp), %rsi
movq %r12, %rdx
callq 0x8660
movq -0x90(%rbp), %r15
movq %r15, %rdi
callq 0x87d0
movsd %xmm0, (%rbx,%r14,8)
leaq -0x80(%rbp), %rax
cmpq %rax, %r15
je 0x24ddc
movq %r15, %rdi
callq 0x85d0
incq %r14
movq -0x38(%rbp), %rax
movl 0x6cd4(%rax), %eax
subl %r13d, %eax
cmpl $0x5, %eax
movl $0x5, %ecx
cmovgel %ecx, %eax
cltq
addq $0x10, %r12
cmpq %rax, %r14
leaq -0x90(%rbp), %r15
jl 0x24d9f
movq -0x48(%rbp), %rcx
incq %rcx
addq $0x28, %rbx
movq %rcx, -0x48(%rbp)
cmpq -0xa0(%rbp), %rcx
jne 0x24cbc
leaq 0x6b12c(%rip), %rax     # 0x8ff58
movl 0x4c(%rax), %r12d
movq -0xb8(%rbp), %rbx
shlq $0x5, %rbx
leaq -0x1c8(%rbp), %rax
movq %rax, -0x1d8(%rbp)
movq -0x118(%rbp), %rax
movq (%rax,%rbx), %rsi
movq 0x8(%rax,%rbx), %rdx
addq %rsi, %rdx
leaq -0x1d8(%rbp), %rdi
callq 0x111e0
movl %r12d, %edi
movq -0x100(%rbp), %rsi
leaq -0x1d8(%rbp), %rdx
callq 0x1d47b
movl %eax, %r14d
movq -0x1d8(%rbp), %rdi
leaq -0x1c8(%rbp), %rax
cmpq %rax, %rdi
je 0x24e99
callq 0x85d0
cmpl $-0x1, %r14d
je 0x252cf
addq -0x118(%rbp), %rbx
movq (%rbx), %rax
movsbl (%rax), %esi
leaq 0x46b53(%rip), %rdi     # 0x6ba0a
callq 0x1d54b
movslq %eax, %rdx
leaq 0x6b092(%rip), %rcx     # 0x8ff58
cmpl $0x0, 0x30(%rcx,%rdx,4)
jle 0x25298
imulq $0x640, %rdx, %rax      # imm = 0x640
addq -0x120(%rbp), %rax
movq %rax, -0x48(%rbp)
movl %r14d, -0x3c(%rbp)
movslq %r14d, %rax
movq %rax, -0x128(%rbp)
leaq (%rax,%rax,2), %rsi
movq %rsi, %rdi
shlq $0x4, %rdi
movq -0x1b8(%rbp), %rax
movq %rdi, -0x70(%rbp)
addq %rdi, %rax
movq %rax, -0xc0(%rbp)
movq -0x1b0(%rbp), %rax
movq %rsi, -0xb0(%rbp)
leaq (%rax,%rsi,8), %rax
movq %rax, -0x98(%rbp)
leaq (%rdx,%rdx,2), %rax
leaq (%rcx,%rax,4), %rax
addq $0x5d, %rax
xorl %r12d, %r12d
movq %rdx, -0x50(%rbp)
movq %rax, -0x60(%rbp)
movb $0x50, -0x2c(%rbp)
movb (%rax,%r12,4), %al
movb %al, -0x2b(%rbp)
movb $0x0, -0x2a(%rbp)
movq -0x38(%rbp), %rax
movl 0x6cd4(%rax,%rdx,4), %r15d
leaq -0x348(%rbp), %rax
movq %rax, -0x358(%rbp)
leaq -0x2c(%rbp), %rbx
movq %rbx, %rdi
callq 0x8290
leaq (%rax,%rbp), %rdx
addq $-0x2c, %rdx
leaq -0x358(%rbp), %r14
movq %r14, %rdi
movq %rbx, %rsi
callq 0x1100a
movl %r15d, %edi
movq -0x48(%rbp), %rsi
movq %r14, %rdx
callq 0x1d47b
movl %eax, %r15d
movq -0x358(%rbp), %rdi
leaq -0x348(%rbp), %rax
cmpq %rax, %rdi
je 0x24fba
callq 0x85d0
cmpl $-0x1, %r15d
je 0x25007
movslq %r15d, %rax
movsd -0x510(%rbp,%rax,8), %xmm0
leaq 0x3(%r12), %rdi
movq -0xc0(%rbp), %rax
movsd %xmm0, (%rax,%r12,8)
movb $0x43, -0x2c(%rbp)
movq -0x60(%rbp), %rsi
movb (%rsi,%r12,4), %al
movb %al, -0x2b(%rbp)
movw $0x50, -0x2a(%rbp)
movl -0x2c(%rbp), %eax
movq -0x98(%rbp), %rcx
movl %eax, (%rcx,%r12,4)
movq -0x50(%rbp), %rdx
jmp 0x25014
leaq 0x3(%r12), %rdi
movq -0x50(%rbp), %rdx
movq -0x60(%rbp), %rsi
movq -0xa8(%rbp), %rax
movq -0x70(%rbp), %rcx
leaq (%rax,%rcx), %rbx
movq %rdi, -0x68(%rbp)
movsd (%rbx,%rdi,8), %xmm0
ucomisd 0x458d4(%rip), %xmm0    # 0x6a908
jne 0x25108
jp 0x25108
movb $0x43, -0x2c(%rbp)
movb (%rsi,%r12,4), %al
movb %al, -0x2b(%rbp)
movb $0x0, -0x2a(%rbp)
movq -0x38(%rbp), %rax
movl 0x6cd4(%rax,%rdx,4), %r15d
leaq -0x328(%rbp), %rax
movq %rax, -0x338(%rbp)
leaq -0x2c(%rbp), %r14
movq %r14, %rdi
callq 0x8290
leaq (%rax,%rbp), %rdx
addq $-0x2c, %rdx
leaq -0x338(%rbp), %r13
movq %r13, %rdi
movq %r14, %rsi
callq 0x1100a
movl %r15d, %edi
movq -0x48(%rbp), %rsi
movq %r13, %rdx
callq 0x1d47b
movl %eax, %r15d
movq -0x338(%rbp), %rdi
leaq -0x328(%rbp), %rax
cmpq %rax, %rdi
je 0x250b9
callq 0x85d0
cmpl $-0x1, %r15d
movq -0x50(%rbp), %rdx
movq -0x60(%rbp), %rsi
je 0x25108
movq -0x68(%rbp), %rdi
leaq (%rbx,%rdi,8), %rax
movslq %r15d, %rcx
movsd -0x510(%rbp,%rcx,8), %xmm0
movsd %xmm0, (%rax)
movb $0x43, -0x2c(%rbp)
movb (%rsi,%r12,4), %al
movb %al, -0x2b(%rbp)
movw $0x43, -0x2a(%rbp)
movq -0xc8(%rbp), %rax
movq -0xb0(%rbp), %rcx
leaq (%rax,%rcx,8), %rax
movl -0x2c(%rbp), %ecx
movl %ecx, (%rax,%rdi,4)
movb $0x4c, -0x2c(%rbp)
movb (%rsi,%r12,4), %al
movb %al, -0x2b(%rbp)
movb $0x0, -0x2a(%rbp)
movq -0x38(%rbp), %rax
movl 0x6cd4(%rax,%rdx,4), %r15d
leaq -0x308(%rbp), %rax
movq %rax, -0x318(%rbp)
leaq -0x2c(%rbp), %rbx
movq %rbx, %rdi
callq 0x8290
leaq (%rax,%rbp), %rdx
addq $-0x2c, %rdx
leaq -0x318(%rbp), %r14
movq %r14, %rdi
movq %rbx, %rsi
callq 0x1100a
movl %r15d, %edi
movq -0x48(%rbp), %rsi
movq %r14, %rdx
callq 0x1d47b
leaq 0x6adeb(%rip), %rbx     # 0x8ff58
movl %eax, %r15d
movq -0x318(%rbp), %rdi
leaq -0x308(%rbp), %rax
cmpq %rax, %rdi
je 0x25188
callq 0x85d0
cmpl $-0x1, %r15d
movq -0x60(%rbp), %rdx
je 0x251cc
movslq %r15d, %rax
movsd -0x510(%rbp,%rax,8), %xmm0
movq -0xc0(%rbp), %rax
movsd %xmm0, -0x18(%rax,%r12,8)
movb $0x4c, -0x2c(%rbp)
movb (%rdx,%r12,4), %al
movb %al, -0x2b(%rbp)
movw $0x50, -0x2a(%rbp)
movl -0x2c(%rbp), %eax
movq -0x98(%rbp), %rcx
movl %eax, -0xc(%rcx,%r12,4)
movb $0x44, -0x2c(%rbp)
movb (%rdx,%r12,4), %al
movb %al, -0x2b(%rbp)
movb $0x0, -0x2a(%rbp)
movq -0x38(%rbp), %rax
movq -0x50(%rbp), %rcx
movl 0x6cd4(%rax,%rcx,4), %r15d
leaq -0x2e8(%rbp), %rax
movq %rax, -0x2f8(%rbp)
leaq -0x2c(%rbp), %r14
movq %r14, %rdi
callq 0x8290
leaq (%rax,%rbp), %rdx
addq $-0x2c, %rdx
leaq -0x2f8(%rbp), %r13
movq %r13, %rdi
movq %r14, %rsi
callq 0x1100a
movl %r15d, %edi
movq -0x48(%rbp), %rsi
movq %r13, %rdx
callq 0x1d47b
movl %eax, %r15d
movq -0x2f8(%rbp), %rdi
leaq -0x2e8(%rbp), %rax
cmpq %rax, %rdi
je 0x25249
callq 0x85d0
cmpl $-0x1, %r15d
je 0x25272
movslq %r15d, %rax
movsd -0x510(%rbp,%rax,8), %xmm0
movq -0xd0(%rbp), %rax
movq -0x70(%rbp), %rcx
addq %rcx, %rax
movq -0x68(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
incq %r12
movq -0x50(%rbp), %rdx
movslq 0x30(%rbx,%rdx,4), %rax
cmpq %rax, %r12
movq -0x60(%rbp), %rax
jl 0x24f41
movl -0x3c(%rbp), %r14d
movq -0x128(%rbp), %rcx
jmp 0x2529b
movslq %r14d, %rcx
leaq (%rcx,%rcx,2), %rax
shlq $0x4, %rcx
leaq (%rcx,%rcx,2), %rcx
movq -0xa8(%rbp), %rdx
addq %rcx, %rdx
addq -0xd0(%rbp), %rcx
movq -0x108(%rbp), %rsi
leaq (%rsi,%rax,8), %r8
movq -0x38(%rbp), %rdi
movl %r14d, %esi
callq 0x23030
movq -0xb8(%rbp), %rcx
incq %rcx
movq %rcx, -0xb8(%rbp)
cmpq -0x130(%rbp), %rcx
jne 0x24ca0
jmp 0x25e18
cmpl $0x0, -0x3c(%rbp)
jle 0x25e18
movq -0x38(%rbp), %rax
leaq 0xb024(%rax), %rcx
movq %rcx, -0x110(%rbp)
leaq 0xae24(%rax), %rcx
movq %rcx, -0x100(%rbp)
leaq 0x6cf0(%rax), %rcx
movq %rcx, -0x120(%rbp)
addq $0x3fd0, %rax           # imm = 0x3FD0
movq %rax, -0xc8(%rbp)
movl $0x6b0, %eax            # imm = 0x6B0
addq 0x68c65(%rip), %rax     # 0x8dfa8
movq %rax, -0x128(%rbp)
xorl %r12d, %r12d
leaq 0x6ac04(%rip), %r13     # 0x8ff58
movq -0x58(%rbp), %rcx
movq (%rcx), %rax
movq -0x18(%rax), %rdi
addq %rcx, %rdi
movl $0xa, %esi
callq 0x8600
movsbl %al, %edx
movq -0x58(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x8bd0
movq -0xf8(%rbp), %rax
movsbl (%rax), %esi
leaq 0x4667a(%rip), %rdi     # 0x6ba0a
callq 0x1d54b
movl %eax, %r14d
cmpl $-0x1, %eax
je 0x25dac
movq -0xf8(%rbp), %rax
cmpb $0x20, 0x1(%rax)
jne 0x253b2
movb $0x30, 0x1(%rax)
movl 0x4c(%r13), %r15d
movl $0x3, %ecx
leaq -0x378(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
xorl %edx, %edx
callq 0x8660
movl %r15d, %edi
movq -0x128(%rbp), %rsi
leaq -0x378(%rbp), %rdx
callq 0x1d47b
movl %eax, -0x50(%rbp)
movq -0x378(%rbp), %rdi
leaq -0x368(%rbp), %rax
cmpq %rax, %rdi
je 0x25401
callq 0x85d0
cmpl $-0x1, -0x50(%rbp)
je 0x25dac
movq -0xf0(%rbp), %rcx
addq $-0x3, %rcx
movl $0x3, %edx
leaq -0x90(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x8660
movq -0x90(%rbp), %r15
leaq -0x910(%rbp), %rdi
movq %r15, %rsi
callq 0x85c0
leaq -0x80(%rbp), %rax
cmpq %rax, %r15
je 0x25455
movq %r15, %rdi
callq 0x85d0
movslq %r14d, %r15
movq -0x38(%rbp), %rax
movl 0x6cd4(%rax,%r15,4), %esi
movsd 0x6c20(%rax), %xmm0
leaq -0x910(%rbp), %rdi
movl $0x10, %edx
callq 0x1d226
movl $0x3, %ecx
leaq -0x188(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
xorl %edx, %edx
callq 0x8660
leaq -0x150(%rbp), %rax
movq %rax, -0x160(%rbp)
leaq -0x910(%rbp), %rbx
movq %rbx, %rdi
callq 0x8290
leaq (%rax,%rbp), %rdx
addq $-0x910, %rdx           # imm = 0xF6F0
leaq -0x160(%rbp), %rdi
movq %rbx, %rsi
callq 0x1100a
movq -0x188(%rbp), %rcx
movl $0xf, %edi
leaq -0x178(%rbp), %rax
cmpq %rax, %rcx
je 0x254ed
movq -0x178(%rbp), %rdi
movq -0x180(%rbp), %r8
movq -0x160(%rbp), %rsi
movq -0x158(%rbp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
jbe 0x25528
movl $0xf, %edi
leaq -0x150(%rbp), %r9
cmpq %r9, %rsi
je 0x25523
movq -0x150(%rbp), %rdi
cmpq %rdi, %rax
jbe 0x25536
leaq -0x188(%rbp), %rdi
callq 0x81f0
jmp 0x25546
leaq -0x160(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x86f0
leaq -0x80(%rbp), %rsi
movq %rsi, -0x90(%rbp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x2556d
movq %rdx, -0x90(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x80(%rbp)
jmp 0x25575
movupd (%rcx), %xmm0
movupd %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, -0x88(%rbp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq -0x1a8(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x87c0
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0x255bc
callq 0x85d0
movq -0x160(%rbp), %rdi
leaq -0x150(%rbp), %rax
cmpq %rax, %rdi
je 0x255d4
callq 0x85d0
movq -0x188(%rbp), %rdi
leaq -0x178(%rbp), %rax
cmpq %rax, %rdi
je 0x255ec
callq 0x85d0
movq -0x38(%rbp), %rax
cmpl $0x0, 0x6cd4(%rax,%r15,4)
movq %r15, -0x48(%rbp)
jle 0x25667
movl $0x3, %r14d
xorl %ebx, %ebx
movl $0xe, %ecx
leaq -0x90(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
movq %r14, %rdx
callq 0x8660
movq -0x90(%rbp), %r15
movq %r15, %rdi
callq 0x87d0
movsd %xmm0, -0x510(%rbp,%rbx,8)
leaq -0x80(%rbp), %rax
cmpq %rax, %r15
je 0x2564b
movq %r15, %rdi
callq 0x85d0
incq %rbx
movq -0x38(%rbp), %rax
movq -0x48(%rbp), %r15
movslq 0x6cd4(%rax,%r15,4), %rax
addq $0x10, %r14
cmpq %rax, %rbx
jl 0x25607
cmpl $0x0, 0x30(%r13,%r15,4)
movslq -0x50(%rbp), %rax
movq %rax, -0xb8(%rbp)
jle 0x25d6e
imulq $0x640, %r15, %rax      # imm = 0x640
addq -0x120(%rbp), %rax
movq %rax, -0x50(%rbp)
xorl %esi, %esi
movq %r12, -0x118(%rbp)
movq -0xb8(%rbp), %rdx
leaq (%rdx,%rdx,2), %rcx
movq -0x110(%rbp), %rax
leaq (%rax,%rcx,4), %rax
cmpl $0x0, (%rax,%rsi,4)
leaq (%r15,%r15,2), %r14
movq %rsi, -0x98(%rbp)
movq %rcx, -0xb0(%rbp)
je 0x259d7
movb $0x43, -0x2c(%rbp)
shlq $0x2, %r14
addq %r13, %r14
movb 0x5d(%r14,%rsi,4), %al
movb %al, -0x2b(%rbp)
movq -0x100(%rbp), %rax
leaq (%rax,%rcx), %rbx
movb (%rsi,%rbx), %al
movb %al, -0x2a(%rbp)
movb $0x0, -0x29(%rbp)
movq -0x38(%rbp), %rax
movl 0x6cd4(%rax,%r15,4), %r15d
leaq -0x248(%rbp), %rax
movq %rax, -0x258(%rbp)
leaq -0x2c(%rbp), %r12
movq %r12, %rdi
callq 0x8290
leaq (%rax,%rbp), %rdx
addq $-0x2c, %rdx
leaq -0x258(%rbp), %r13
movq %r13, %rdi
movq %r12, %rsi
callq 0x1100a
movl %r15d, %edi
movq -0x50(%rbp), %rsi
movq %r13, %rdx
callq 0x1d47b
movl %eax, %r15d
movq -0x258(%rbp), %rdi
leaq -0x248(%rbp), %rax
cmpq %rax, %rdi
je 0x2575d
callq 0x85d0
cmpl $-0x1, %r15d
movq -0x98(%rbp), %rdx
je 0x257a3
movslq %r15d, %rax
movsd -0x510(%rbp,%rax,8), %xmm0
movq -0xb0(%rbp), %rcx
movq %rcx, %rax
shlq $0x4, %rax
addq -0xa8(%rbp), %rax
movsd %xmm0, 0x18(%rax,%rdx,8)
movq -0xc8(%rbp), %rax
leaq (%rax,%rcx,8), %rax
movl -0x2c(%rbp), %ecx
movl %ecx, 0xc(%rax,%rdx,4)
leaq (%r14,%rdx,4), %r14
addq $0x5d, %r14
addq %rdx, %rbx
movb $0x4c, -0x2c(%rbp)
movb (%r14), %al
movb %al, -0x2b(%rbp)
movb (%rbx), %al
movb %al, -0x2a(%rbp)
movb $0x0, -0x29(%rbp)
movq -0x38(%rbp), %rax
movq -0x48(%rbp), %rcx
movl 0x6cd4(%rax,%rcx,4), %r15d
leaq -0x228(%rbp), %rax
movq %rax, -0x238(%rbp)
movq %r12, %rdi
callq 0x8290
leaq (%rax,%rbp), %rdx
addq $-0x2c, %rdx
leaq -0x238(%rbp), %r13
movq %r13, %rdi
movq %r12, %rsi
callq 0x1100a
movl %r15d, %edi
movq -0x50(%rbp), %rsi
movq %r13, %rdx
callq 0x1d47b
movl %eax, %r15d
movq -0x238(%rbp), %rdi
leaq -0x228(%rbp), %rax
cmpq %rax, %rdi
je 0x2582b
callq 0x85d0
cmpl $-0x1, %r15d
je 0x2586f
movslq %r15d, %rax
movsd -0x510(%rbp,%rax,8), %xmm0
movq -0xb0(%rbp), %rcx
movq %rcx, %rax
shlq $0x4, %rax
addq -0xa8(%rbp), %rax
movq -0x98(%rbp), %rdx
movsd %xmm0, (%rax,%rdx,8)
movq -0xc8(%rbp), %rax
leaq (%rax,%rcx,8), %rax
movl -0x2c(%rbp), %ecx
movl %ecx, (%rax,%rdx,4)
movb $0x53, -0x2c(%rbp)
movb (%r14), %al
movb %al, -0x2b(%rbp)
movb (%rbx), %al
movb %al, -0x2a(%rbp)
movb $0x0, -0x29(%rbp)
movq -0x38(%rbp), %rax
movq -0x48(%rbp), %rcx
movl 0x6cd4(%rax,%rcx,4), %r15d
leaq -0x208(%rbp), %rax
movq %rax, -0x218(%rbp)
movq %r12, %rdi
callq 0x8290
leaq (%rax,%rbp), %rdx
addq $-0x2c, %rdx
leaq -0x218(%rbp), %r13
movq %r13, %rdi
movq %r12, %rsi
callq 0x1100a
movl %r15d, %edi
movq -0x50(%rbp), %rsi
movq %r13, %rdx
callq 0x1d47b
leaq -0x1f8(%rbp), %r12
movl %eax, %r15d
movq -0x218(%rbp), %rdi
leaq -0x208(%rbp), %rax
cmpq %rax, %rdi
je 0x258f3
callq 0x85d0
cmpl $-0x1, %r15d
je 0x25923
movslq %r15d, %rax
movsd -0x510(%rbp,%rax,8), %xmm0
movq -0x108(%rbp), %rax
movq -0xb0(%rbp), %rcx
leaq (%rax,%rcx,8), %rax
movq -0x98(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movb $0x44, -0x2c(%rbp)
movb (%r14), %al
movb %al, -0x2b(%rbp)
movb (%rbx), %al
movb %al, -0x2a(%rbp)
movb $0x0, -0x29(%rbp)
movq -0x38(%rbp), %rax
movq -0x48(%rbp), %rcx
movl 0x6cd4(%rax,%rcx,4), %r15d
leaq -0x1e8(%rbp), %rax
movq %rax, -0x1f8(%rbp)
leaq -0x2c(%rbp), %rbx
movq %rbx, %rdi
callq 0x8290
leaq (%rax,%rbp), %rdx
addq $-0x2c, %rdx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x1100a
movl %r15d, %edi
movq -0x50(%rbp), %rsi
movq %r12, %rdx
callq 0x1d47b
movl %eax, %r15d
movq -0x1f8(%rbp), %rdi
leaq -0x1e8(%rbp), %rax
cmpq %rax, %rdi
je 0x2599d
callq 0x85d0
cmpl $-0x1, %r15d
je 0x25d44
movslq %r15d, %rax
movsd -0x510(%rbp,%rax,8), %xmm0
movq -0xb0(%rbp), %rcx
shlq $0x4, %rcx
addq -0xd0(%rbp), %rcx
movq -0x98(%rbp), %rax
movsd %xmm0, 0x18(%rcx,%rax,8)
jmp 0x25d44
leaq (%rax,%rsi,4), %rax
movq %rax, -0x130(%rbp)
shlq $0x2, %r14
addq %r13, %r14
leaq (%r14,%rsi,4), %rax
addq $0x5d, %rax
movq %rax, -0x60(%rbp)
movq %rdx, %rax
shlq $0x4, %rax
leaq (%rax,%rax,2), %rax
movq -0xa8(%rbp), %rcx
addq %rax, %rcx
leaq 0x18(%rcx,%rsi,8), %rdi
leaq (,%rdx,8), %rcx
leaq (%rcx,%rcx,2), %rcx
movq -0xc8(%rbp), %rdx
addq %rcx, %rdx
leaq (%rdx,%rsi,4), %rdx
addq $0xc, %rdx
movq %rdx, -0x70(%rbp)
addq -0x108(%rbp), %rcx
leaq (%rcx,%rsi,8), %rcx
movq %rcx, -0xa0(%rbp)
addq -0xd0(%rbp), %rax
leaq (%rax,%rsi,8), %rax
addq $0x18, %rax
movq %rax, -0xc0(%rbp)
xorl %r13d, %r13d
movq %rdi, -0x68(%rbp)
movb $0x43, -0x2c(%rbp)
movq -0x60(%rbp), %rax
movb (%rax), %al
movb %al, -0x2b(%rbp)
leaq 0x45fbc(%rip), %rax     # 0x6ba30
movb (%r13,%rax), %r14b
movb %r14b, -0x2a(%rbp)
movb $0x0, -0x29(%rbp)
movq -0x38(%rbp), %rax
movq -0x48(%rbp), %rcx
movl 0x6cd4(%rax,%rcx,4), %r15d
leaq -0x2c8(%rbp), %rax
movq %rax, -0x2d8(%rbp)
leaq -0x2c(%rbp), %r12
movq %r12, %rdi
callq 0x8290
leaq (%rax,%rbp), %rdx
addq $-0x2c, %rdx
leaq -0x2d8(%rbp), %rbx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x1100a
movl %r15d, %edi
movq -0x50(%rbp), %rsi
movq %rbx, %rdx
callq 0x1d47b
movl %eax, %r15d
movq -0x2d8(%rbp), %rdi
leaq -0x2c8(%rbp), %rax
cmpq %rax, %rdi
je 0x25aef
callq 0x85d0
cmpl $-0x1, %r15d
je 0x25b12
movslq %r15d, %rax
movsd -0x510(%rbp,%rax,8), %xmm0
movq -0x68(%rbp), %rax
movsd %xmm0, (%rax)
movl -0x2c(%rbp), %eax
movq -0x70(%rbp), %rcx
movl %eax, (%rcx)
movb $0x4c, -0x2c(%rbp)
movq -0x60(%rbp), %rax
movb (%rax), %al
movb %al, -0x2b(%rbp)
movb %r14b, -0x2a(%rbp)
movb $0x0, -0x29(%rbp)
movq -0x38(%rbp), %rax
movq -0x48(%rbp), %rcx
movl 0x6cd4(%rax,%rcx,4), %r15d
leaq -0x2a8(%rbp), %rax
movq %rax, -0x2b8(%rbp)
movq %r12, %rdi
callq 0x8290
leaq (%rax,%rbp), %rdx
addq $-0x2c, %rdx
leaq -0x2b8(%rbp), %rbx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x1100a
movl %r15d, %edi
movq -0x50(%rbp), %rsi
movq %rbx, %rdx
callq 0x1d47b
movl %eax, %r15d
movq -0x2b8(%rbp), %rdi
leaq -0x2a8(%rbp), %rax
cmpq %rax, %rdi
je 0x25b91
callq 0x85d0
cmpl $-0x1, %r15d
je 0x25bb6
movslq %r15d, %rax
movsd -0x510(%rbp,%rax,8), %xmm0
movq -0x68(%rbp), %rax
movsd %xmm0, -0x18(%rax)
movl -0x2c(%rbp), %eax
movq -0x70(%rbp), %rcx
movl %eax, -0xc(%rcx)
movb $0x53, -0x2c(%rbp)
movq -0x60(%rbp), %rax
movb (%rax), %al
movb %al, -0x2b(%rbp)
movb %r14b, -0x2a(%rbp)
movb $0x0, -0x29(%rbp)
movq -0x38(%rbp), %rax
movq -0x48(%rbp), %rcx
movl 0x6cd4(%rax,%rcx,4), %r15d
leaq -0x288(%rbp), %rax
movq %rax, -0x298(%rbp)
movq %r12, %rdi
callq 0x8290
leaq (%rax,%rbp), %rdx
addq $-0x2c, %rdx
leaq -0x298(%rbp), %rbx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x1100a
movl %r15d, %edi
movq -0x50(%rbp), %rsi
movq %rbx, %rdx
callq 0x1d47b
movl %eax, %r15d
movq -0x298(%rbp), %rdi
leaq -0x288(%rbp), %rax
cmpq %rax, %rdi
je 0x25c35
callq 0x85d0
cmpl $-0x1, %r15d
je 0x25c52
movslq %r15d, %rax
movsd -0x510(%rbp,%rax,8), %xmm0
movq -0xa0(%rbp), %rax
movsd %xmm0, (%rax)
movb $0x44, -0x2c(%rbp)
movq -0x60(%rbp), %rax
movb (%rax), %al
movb %al, -0x2b(%rbp)
movb %r14b, -0x2a(%rbp)
movb $0x0, -0x29(%rbp)
movq -0x38(%rbp), %rax
movq -0x48(%rbp), %rcx
movl 0x6cd4(%rax,%rcx,4), %r15d
leaq -0x268(%rbp), %rax
movq %rax, -0x278(%rbp)
movq %r12, %rdi
callq 0x8290
leaq (%rax,%rbp), %rdx
addq $-0x2c, %rdx
leaq -0x278(%rbp), %rbx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x1100a
movl %r15d, %edi
movq -0x50(%rbp), %rsi
movq %rbx, %rdx
callq 0x1d47b
movl %eax, %r15d
movq -0x278(%rbp), %rdi
leaq -0x268(%rbp), %rax
cmpq %rax, %rdi
je 0x25cd1
callq 0x85d0
cmpl $-0x1, %r15d
je 0x25cee
movslq %r15d, %rax
movsd -0x510(%rbp,%rax,8), %xmm0
movq -0xc0(%rbp), %rax
movsd %xmm0, (%rax)
movq -0x68(%rbp), %rdi
movsd -0x18(%rdi), %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x25d03
jnp 0x25d0f
movsd (%rdi), %xmm0
ucomisd %xmm1, %xmm0
jne 0x25d1e
jp 0x25d1e
incq %r13
cmpq $0x10, %r13
jne 0x25a60
jmp 0x25d44
movq -0xb0(%rbp), %rcx
addq -0x100(%rbp), %rcx
movq -0x98(%rbp), %rax
movb %r14b, (%rax,%rcx)
movq -0x130(%rbp), %rax
movl $0x1, (%rax)
movq -0x98(%rbp), %rsi
incq %rsi
leaq 0x6a203(%rip), %r13     # 0x8ff58
movq -0x48(%rbp), %r15
movslq 0x30(%r13,%r15,4), %rax
cmpq %rax, %rsi
movq -0x118(%rbp), %r12
jl 0x25699
movq -0xb8(%rbp), %r9
leaq (%r9,%r9,2), %rax
movq %r9, %rcx
shlq $0x4, %rcx
leaq (%rcx,%rcx,2), %rcx
movq -0xa8(%rbp), %rdx
addq %rcx, %rdx
addq -0xd0(%rbp), %rcx
movq -0x108(%rbp), %rsi
leaq (%rsi,%rax,8), %r8
movq -0x38(%rbp), %rdi
movl %r9d, %esi
callq 0x23030
incl %r12d
cmpl -0x3c(%rbp), %r12d
jne 0x25354
jmp 0x25e18
movq -0x38(%rbp), %rax
movq 0x5fb0(%rax), %rcx
leaq 0x45a47(%rip), %rdi     # 0x6b814
movl -0x3c(%rbp), %esi
movl $0xaa, %edx
xorl %eax, %eax
callq 0x8080
movq -0x58(%rbp), %rdi
callq 0x8130
movl $0x1fe0, %edx           # imm = 0x1FE0
movq -0xa8(%rbp), %rdi
xorl %esi, %esi
callq 0x8390
movq -0x70(%rbp), %rax
movl (%rax), %eax
movq -0x38(%rbp), %rcx
movl %eax, 0x6010(%rcx)
movq -0x68(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x3fc8(%rcx)
movq -0x1a8(%rbp), %rdi
leaq -0x198(%rbp), %rax
cmpq %rax, %rdi
je 0x25e30
callq 0x85d0
movq -0xf8(%rbp), %rdi
leaq -0xe8(%rbp), %rax
cmpq %rax, %rdi
je 0x25e48
callq 0x85d0
addq $0x8e8, %rsp            # imm = 0x8E8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq -0x38(%rbp), %rcx
movq 0x5fb0(%rcx), %rdx
leaq 0x45a76(%rip), %rdi     # 0x6b8e2
movl %eax, %esi
xorl %eax, %eax
callq 0x8080
movq -0x58(%rbp), %rdi
callq 0x8130
jmp 0x25de5
movq -0x58(%rbp), %rdi
movq %r13, %rsi
movq %r12, %rdx
callq 0x8800
jmp 0x25df8
movq -0x38(%rbp), %rcx
movl 0x6010(%rcx), %eax
movq -0x70(%rbp), %rdx
movl %eax, (%rdx)
xorps %xmm0, %xmm0
cvtsi2sdl -0xd8(%rbp), %xmm0
xorps %xmm1, %xmm1
cvtsi2sdl -0xd4(%rbp), %xmm1
mulsd 0x449f3(%rip), %xmm1    # 0x6a8b8
mulsd 0x449f3(%rip), %xmm0    # 0x6a8c0
addsd %xmm1, %xmm0
addsd -0x168(%rbp), %xmm0
movq -0x68(%rbp), %rax
movsd %xmm0, (%rax)
movsd %xmm0, 0x3fc8(%rcx)
movq -0x58(%rbp), %rax
movq (%rax), %rax
movq -0x18(%rax), %rax
jmp 0x24a7d
jmp 0x26159
jmp 0x26159
jmp 0x26159
jmp 0x26159
jmp 0x26159
jmp 0x26159
jmp 0x26159
jmp 0x26159
jmp 0x26159
jmp 0x26159
jmp 0x26159
movq %rax, %rbx
movq -0x160(%rbp), %rdi
leaq -0x150(%rbp), %rax
cmpq %rax, %rdi
je 0x25f50
callq 0x85d0
jmp 0x25f50
movq %rax, %rbx
movq -0x188(%rbp), %rdi
leaq -0x178(%rbp), %rax
cmpq %rax, %rdi
je 0x2615c
jmp 0x2614c
movq %rax, %rbx
movq -0x378(%rbp), %rdi
leaq -0x368(%rbp), %rax
cmpq %rax, %rdi
je 0x2615c
jmp 0x2614c
movq %rax, %rbx
movq -0x1d8(%rbp), %rdi
leaq -0x1c8(%rbp), %rax
cmpq %rax, %rdi
je 0x2615c
jmp 0x2614c
jmp 0x26159
jmp 0x26159
jmp 0x26159
jmp 0x26159
movq %rax, %rbx
movq -0x258(%rbp), %rdi
leaq -0x248(%rbp), %rax
cmpq %rax, %rdi
je 0x2615c
jmp 0x2614c
jmp 0x26159
movq %rax, %rbx
movq -0x238(%rbp), %rdi
leaq -0x228(%rbp), %rax
cmpq %rax, %rdi
je 0x2615c
jmp 0x2614c
jmp 0x26159
movq %rax, %rbx
movq -0x1f8(%rbp), %rdi
leaq -0x1e8(%rbp), %rax
cmpq %rax, %rdi
je 0x2615c
jmp 0x2614c
jmp 0x26159
jmp 0x26159
movq %rax, %rbx
movq -0x218(%rbp), %rdi
leaq -0x208(%rbp), %rax
cmpq %rax, %rdi
je 0x2615c
jmp 0x2614c
jmp 0x26159
movq %rax, %rbx
movq -0x338(%rbp), %rdi
leaq -0x328(%rbp), %rax
cmpq %rax, %rdi
je 0x2615c
jmp 0x2614c
jmp 0x26159
jmp 0x26159
jmp 0x26159
movq %rax, %rbx
movq -0x318(%rbp), %rdi
leaq -0x308(%rbp), %rax
cmpq %rax, %rdi
je 0x2615c
jmp 0x2614c
movq %rax, %rbx
movq -0x2f8(%rbp), %rdi
leaq -0x2e8(%rbp), %rax
cmpq %rax, %rdi
je 0x2615c
jmp 0x2614c
jmp 0x26159
jmp 0x26159
jmp 0x26159
movq %rax, %rbx
movq -0x358(%rbp), %rdi
leaq -0x348(%rbp), %rax
cmpq %rax, %rdi
je 0x2615c
jmp 0x2614c
jmp 0x26159
jmp 0x26159
movq %rax, %rbx
movq -0x298(%rbp), %rdi
leaq -0x288(%rbp), %rax
cmpq %rax, %rdi
je 0x2615c
jmp 0x2614c
movq %rax, %rbx
movq -0x2d8(%rbp), %rdi
leaq -0x2c8(%rbp), %rax
cmpq %rax, %rdi
je 0x2615c
jmp 0x2614c
jmp 0x26159
jmp 0x26159
movq %rax, %rbx
movq -0x278(%rbp), %rdi
leaq -0x268(%rbp), %rax
cmpq %rax, %rdi
je 0x2615c
jmp 0x2614c
movq %rax, %rbx
movq -0x2b8(%rbp), %rdi
leaq -0x2a8(%rbp), %rax
cmpq %rax, %rdi
je 0x2615c
callq 0x85d0
jmp 0x2615c
jmp 0x26159
jmp 0x26159
jmp 0x26159
movq %rax, %rbx
movq -0x1a8(%rbp), %rdi
leaq -0x198(%rbp), %rax
cmpq %rax, %rdi
je 0x26174
callq 0x85d0
movq -0xf8(%rbp), %rdi
leaq -0xe8(%rbp), %rax
cmpq %rax, %rdi
je 0x2618c
callq 0x85d0
movq %rbx, %rdi
callq 0x8b30