// File: DoubleString[P]RtConverter/src/Rnxobs/RnxobsFile_sat.cpp
// Function: bamboo::RnxobsFile_sat::m_readRnxHead()
void RnxobsFile_sat::m_readRnxHead() {
	int isys, id, i, j, nline;
	double sec;
	string line,strflag;
	char cline[256],tmetag[256];
	this->nsys = 0;
	memset(this->nobstype, 0, sizeof(int) * MAXSYS);
	streampos pos;
	while (getline(this->in, line)) {
		strflag = line.substr(60, line.size() - 60);
		const char* sflag = strflag.c_str();
		if (strstr(sflag, "END OF HEADER") != NULL)
			break;
		if(strstr(sflag,"COMMENT")){
			pos = in.tellg();
			continue;
		}
		if (strstr(sflag, "RINEX VERSION")) {
			this->ver = atof(line.substr(0, 9).c_str());
			this->sys[0] = line[40];
			if (this->sys[0] == ' ')
				this->sys[0] = 'G';
			if (this->ver < 1.0 || this->ver > 4.0){
				cout << "Read Rinex Version Error!\n";
				exit(1);
			}
		}
		if (strstr(sflag, "MARKER NAME")) {
			this->mark = line.substr(0, 4);
		}
		if (strstr(sflag, "REC #")) {
			this->recnum = line.substr(0, 20);
			this->rectype = line.substr(20, 20);
		}
		if (strstr(sflag, "ANT #")) {
			this->antnum = line.substr(0, 20);
			this->anttype = line.substr(20, 20);
		}
		if (strstr(sflag, "APPROX POSITION")) {
			sscanf(line.c_str(), "%lf%lf%lf", &x, &y, &z);
		}
		if (strstr(sflag, "ANTENNA: DELTA")) {
			sscanf(line.c_str(), "%lf%lf%lf", &h, &e, &n);
		}
		if (strstr(sflag, "WAVELENGTH FACT")) {
		}
		if (strstr(sflag, "SYS / # / OBS TYPES")) {
			//id = SYS.find_first_of(line[0]);
			id = index_string(SYS,line[0]);
			if (-1 == id){
				pos = in.tellg();
				continue;
			}
			this->nobstype[id] = atoi(line.substr(3, 3).c_str());
			if (nobstype[id] % 13 != 0)
				nline = (int) (nobstype[id] / 13) + 1;
			else{
				if (nobstype[id] == 0)
					nline =  1;
				else
					nline = (int) (nobstype[id] / 13);
			}
			//maybe can use fseek
			in.seekg(pos);
			for (j = 0; j < nline; j++) {
				getline(in, line);
				for (i = 0; i < (MIN((nobstype[id] - 13 * j), 13)); i++) {
					obstype[id][i + 13 * j] = line.substr(7 + i * 4, 3);
				}
			}
			if (ver >= 3.02 && id == index_string(SYS,'C') && ver < 3.04) {
				for (i = 0; i < nobstype[id]; i++) {
					if (strstr(obstype[id][i].c_str(), "C1") != NULL
							|| strstr(obstype[id][i].c_str(), "L1") != NULL
							|| strstr(obstype[id][i].c_str(), "S1") != NULL
							|| strstr(obstype[id][i].c_str(), "D1") != NULL)
						obstype[id][i][1] = '2';
				}
			}
		}
		if (strstr(sflag, "TYPES OF OBSERV")) {
			nobstype[0] = atoi(line.substr(0, 6).c_str());
			if (nobstype[0] == 0){
				pos = in.tellg();
				continue;
			}
			if (nobstype[0] % 9 != 0)
				nline = (int) (nobstype[0] / 9) + 1;
			else
				nline = (int) (nobstype[0] / 9);
			in.seekg(pos);
			for (j = 0; j < nline; j++) {
				getline(in, line);
				for (i = 0; i < (MIN((nobstype[0] - 9 * j), 9)); i++) {
					sscanf(line.substr(6 + 6 * i,6).c_str(),"%s",cline);
					obstype[0][i + 9 * j] = string(cline);
				}
			}
			for (i = 1; i < MAXSYS; i++) {
				nobstype[i] = nobstype[0];
				for (j = 0; j < nobstype[0]; j++)
					obstype[i][j] = obstype[0][j];
			}
			//for whu's tracking stations,the C1 is C2,C2 is C7
			//id = SYS.find_first_of('C');
			id = index_string(SYS,'C');
			if (-1 != id) {
				for (i = 0; i < nobstype[id]; i++) {
					if ('2' == obstype[id][i][1])
						obstype[id][i][1] = '7';
					if ('1' == obstype[id][i][1])
						obstype[id][i][1] = '2';
				}
			}
		}
		if (strstr(sflag, "INTERVAL")) {
			sscanf(line.c_str(), "%lf", &intv);
		}
		if (strstr(sflag, "TIME OF FIRST OBS")) {
			sscanf(line.c_str(), "%d%d%d%d%d%lf%s", t0, t0 + 1, t0 + 2, t0 + 3,
					t0 + 4, &sec,tmetag);
			t0[5] = (int) sec;
		}
		if (strstr(sflag, "TIME OF LAST OBS")) {
			sscanf(line.c_str(), "%d%d%d%d%d%lf", t1, t1 + 1, t1 + 2, t1 + 3,
					t1 + 4, &sec);
			t1[5] = (int) sec;
		}
		pos = in.tellg();
	}
	if (this->ver >= 3.0) {
		for (isys = 0; isys < MAXSYS; isys++) {
			if (this->nobstype[isys])
				(this->nsys)++;
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x590, %rsp            # imm = 0x590
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x490(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x9a50
leaq -0x68(%rbp), %rdi
callq 0x9a50
movq -0x490(%rbp), %rax
movl $0x0, 0xae20(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x6ce0(%rax)
movups %xmm0, 0x6cd4(%rax)
leaq -0x280(%rbp), %rdi
callq 0x43040
jmp 0x3f58c
jmp 0x3f58e
movq -0x490(%rbp), %rdi
addq $0xb820, %rdi           # imm = 0xB820
leaq -0x48(%rbp), %rsi
callq 0x9160
movq %rax, -0x498(%rbp)
jmp 0x3f5ae
movq -0x498(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x9950
movb %al, -0x499(%rbp)
jmp 0x3f5cc
movb -0x499(%rbp), %al
testb $0x1, %al
jne 0x3f5db
jmp 0x405fe
leaq -0x48(%rbp), %rdi
movq %rdi, -0x4a8(%rbp)
callq 0x9540
movq -0x4a8(%rbp), %rsi
movq %rax, %rcx
addq $-0x3c, %rcx
leaq -0x2b0(%rbp), %rdi
movl $0x3c, %edx
callq 0x97a0
jmp 0x3f60c
leaq -0x68(%rbp), %rdi
leaq -0x2b0(%rbp), %rsi
callq 0x9920
leaq -0x2b0(%rbp), %rdi
callq 0x9480
leaq -0x68(%rbp), %rdi
callq 0x92b0
movq %rax, -0x2b8(%rbp)
movq -0x2b8(%rbp), %rdi
leaq 0x7e2a5(%rip), %rsi     # 0xbd8eb
callq 0x91b0
cmpq $0x0, %rax
je 0x3f66d
jmp 0x405fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x288(%rbp)
movl %eax, -0x28c(%rbp)
jmp 0x4067d
movq -0x2b8(%rbp), %rdi
leaq 0x7e27e(%rip), %rsi     # 0xbd8f9
callq 0x91b0
cmpq $0x0, %rax
je 0x3f6e6
movq -0x490(%rbp), %rdi
addq $0xb820, %rdi           # imm = 0xB820
callq 0x9d00
movq %rdx, -0x4b8(%rbp)
movq %rax, -0x4b0(%rbp)
jmp 0x3f6a9
movq -0x4b8(%rbp), %rax
movq -0x4b0(%rbp), %rcx
movq %rcx, -0x2c8(%rbp)
movq %rax, -0x2c0(%rbp)
movq -0x2c8(%rbp), %rax
movq %rax, -0x280(%rbp)
movq -0x2c0(%rbp), %rax
movq %rax, -0x278(%rbp)
jmp 0x3f58e
movq -0x2b8(%rbp), %rdi
leaq 0x7e20d(%rip), %rsi     # 0xbd901
callq 0x91b0
cmpq $0x0, %rax
je 0x3f7f2
xorl %eax, %eax
movl %eax, %edx
leaq -0x2e8(%rbp), %rdi
leaq -0x48(%rbp), %rsi
movl $0x9, %ecx
callq 0x97a0
jmp 0x3f71e
leaq -0x2e8(%rbp), %rdi
movq %rdi, -0x4c8(%rbp)
callq 0x92b0
movq %rax, %rdi
callq 0x9940
movq -0x490(%rbp), %rax
movq -0x4c8(%rbp), %rdi
movsd %xmm0, 0x6c20(%rax)
callq 0x9480
leaq -0x48(%rbp), %rdi
movl $0x28, %esi
callq 0x9eb0
movq %rax, -0x4c0(%rbp)
jmp 0x3f76b
movq -0x490(%rbp), %rax
movq -0x4c0(%rbp), %rcx
movb (%rcx), %cl
movb %cl, 0x6c28(%rax)
movsbl 0x6c28(%rax), %eax
cmpl $0x20, %eax
jne 0x3f79b
movq -0x490(%rbp), %rax
movb $0x47, 0x6c28(%rax)
movq -0x490(%rbp), %rax
movsd 0x7c6b6(%rip), %xmm0    # 0xbbe60
ucomisd 0x6c20(%rax), %xmm0
ja 0x3f7d1
movq -0x490(%rbp), %rax
movsd 0x6c20(%rax), %xmm0
movsd 0x7d625(%rip), %xmm1    # 0xbcdf0
ucomisd %xmm1, %xmm0
jbe 0x3f7f0
movq 0xb77e8(%rip), %rdi     # 0xf6fc0
leaq 0x7e130(%rip), %rsi     # 0xbd90f
callq 0x9760
jmp 0x3f7e6
movl $0x1, %edi
callq 0x9910
jmp 0x3f7f2
movq -0x2b8(%rbp), %rdi
leaq 0x7e12a(%rip), %rsi     # 0xbd92a
callq 0x91b0
cmpq $0x0, %rax
je 0x3f84c
xorl %eax, %eax
movl %eax, %edx
leaq -0x308(%rbp), %rdi
leaq -0x48(%rbp), %rsi
movl $0x4, %ecx
callq 0x97a0
jmp 0x3f826
movq -0x490(%rbp), %rdi
addq $0x6c70, %rdi           # imm = 0x6C70
leaq -0x308(%rbp), %rsi
callq 0x9920
leaq -0x308(%rbp), %rdi
callq 0x9480
movq -0x2b8(%rbp), %rdi
leaq 0x7e0dc(%rip), %rsi     # 0xbd936
callq 0x91b0
cmpq $0x0, %rax
je 0x3f8f1
xorl %eax, %eax
movl %eax, %edx
leaq -0x328(%rbp), %rdi
leaq -0x48(%rbp), %rsi
movl $0x14, %ecx
callq 0x97a0
jmp 0x3f884
movq -0x490(%rbp), %rdi
addq $0x6c30, %rdi           # imm = 0x6C30
leaq -0x328(%rbp), %rsi
movq %rsi, -0x4d0(%rbp)
callq 0x9920
movq -0x4d0(%rbp), %rdi
callq 0x9480
leaq -0x348(%rbp), %rdi
leaq -0x48(%rbp), %rsi
movl $0x14, %ecx
movq %rcx, %rdx
callq 0x97a0
jmp 0x3f8cb
movq -0x490(%rbp), %rdi
addq $0x5fd0, %rdi           # imm = 0x5FD0
leaq -0x348(%rbp), %rsi
callq 0x9920
leaq -0x348(%rbp), %rdi
callq 0x9480
movq -0x2b8(%rbp), %rdi
leaq 0x7e03d(%rip), %rsi     # 0xbd93c
callq 0x91b0
cmpq $0x0, %rax
je 0x3f996
xorl %eax, %eax
movl %eax, %edx
leaq -0x368(%rbp), %rdi
leaq -0x48(%rbp), %rsi
movl $0x14, %ecx
callq 0x97a0
jmp 0x3f929
movq -0x490(%rbp), %rdi
addq $0x6c50, %rdi           # imm = 0x6C50
leaq -0x368(%rbp), %rsi
movq %rsi, -0x4d8(%rbp)
callq 0x9920
movq -0x4d8(%rbp), %rdi
callq 0x9480
leaq -0x388(%rbp), %rdi
leaq -0x48(%rbp), %rsi
movl $0x14, %ecx
movq %rcx, %rdx
callq 0x97a0
jmp 0x3f970
movq -0x490(%rbp), %rdi
addq $0x5ff0, %rdi           # imm = 0x5FF0
leaq -0x388(%rbp), %rsi
callq 0x9920
leaq -0x388(%rbp), %rdi
callq 0x9480
movq -0x2b8(%rbp), %rdi
leaq 0x7df9e(%rip), %rsi     # 0xbd942
callq 0x91b0
cmpq $0x0, %rax
je 0x3f9eb
leaq -0x48(%rbp), %rdi
callq 0x92b0
movq -0x490(%rbp), %r8
movq %rax, %rdi
movq %r8, %rdx
addq $0x6c90, %rdx           # imm = 0x6C90
movq %r8, %rcx
addq $0x6c98, %rcx           # imm = 0x6C98
addq $0x6ca0, %r8            # imm = 0x6CA0
leaq 0x8caca(%rip), %rsi     # 0xcc4ae
movb $0x0, %al
callq 0x9750
movq -0x2b8(%rbp), %rdi
leaq 0x7df59(%rip), %rsi     # 0xbd952
callq 0x91b0
cmpq $0x0, %rax
je 0x3fa40
leaq -0x48(%rbp), %rdi
callq 0x92b0
movq -0x490(%rbp), %r8
movq %rax, %rdi
movq %r8, %rdx
addq $0x6cb8, %rdx           # imm = 0x6CB8
movq %r8, %rcx
addq $0x6ca8, %rcx           # imm = 0x6CA8
addq $0x6cb0, %r8            # imm = 0x6CB0
leaq 0x8ca75(%rip), %rsi     # 0xcc4ae
movb $0x0, %al
callq 0x9750
movq -0x2b8(%rbp), %rdi
leaq 0x7df13(%rip), %rsi     # 0xbd961
callq 0x91b0
cmpq $0x0, %rax
je 0x3fa5b
jmp 0x3fa5b
movq -0x2b8(%rbp), %rdi
leaq 0x7df08(%rip), %rsi     # 0xbd971
callq 0x91b0
cmpq $0x0, %rax
je 0x3ff1d
xorl %eax, %eax
movl %eax, %esi
leaq -0x48(%rbp), %rdi
callq 0x9eb0
movq %rax, -0x4e0(%rbp)
jmp 0x3fa8e
movq -0x4e0(%rbp), %rax
movsbl (%rax), %esi
leaq 0x7df41(%rip), %rdi     # 0xbd9e0
callq 0x340b0
movl %eax, -0x4e4(%rbp)
jmp 0x3faac
movl -0x4e4(%rbp), %eax
movl %eax, -0x10(%rbp)
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpl -0x10(%rbp), %eax
jne 0x3fb1f
movq -0x490(%rbp), %rdi
addq $0xb820, %rdi           # imm = 0xB820
callq 0x9d00
movq %rdx, -0x4f8(%rbp)
movq %rax, -0x4f0(%rbp)
jmp 0x3fae2
movq -0x4f8(%rbp), %rax
movq -0x4f0(%rbp), %rcx
movq %rcx, -0x398(%rbp)
movq %rax, -0x390(%rbp)
movq -0x398(%rbp), %rax
movq %rax, -0x280(%rbp)
movq -0x390(%rbp), %rax
movq %rax, -0x278(%rbp)
jmp 0x3f58e
leaq -0x3b8(%rbp), %rdi
leaq -0x48(%rbp), %rsi
movl $0x3, %ecx
movq %rcx, %rdx
callq 0x97a0
jmp 0x3fb39
leaq -0x3b8(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
callq 0x9b60
movl %eax, %edx
movq -0x490(%rbp), %rax
movslq -0x10(%rbp), %rcx
movl %edx, 0x6cd4(%rax,%rcx,4)
leaq -0x3b8(%rbp), %rdi
callq 0x9480
movq -0x490(%rbp), %rax
movslq -0x10(%rbp), %rcx
movl 0x6cd4(%rax,%rcx,4), %eax
movl $0xd, %ecx
cltd
idivl %ecx
cmpl $0x0, %edx
je 0x3fbae
movq -0x490(%rbp), %rax
movslq -0x10(%rbp), %rcx
movl 0x6cd4(%rax,%rcx,4), %eax
movl $0xd, %ecx
cltd
idivl %ecx
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x3fbeb
movq -0x490(%rbp), %rax
movslq -0x10(%rbp), %rcx
cmpl $0x0, 0x6cd4(%rax,%rcx,4)
jne 0x3fbcc
movl $0x1, -0x1c(%rbp)
jmp 0x3fbe9
movq -0x490(%rbp), %rax
movslq -0x10(%rbp), %rcx
movl 0x6cd4(%rax,%rcx,4), %eax
movl $0xd, %ecx
cltd
idivl %ecx
movl %eax, -0x1c(%rbp)
jmp 0x3fbeb
movq -0x490(%rbp), %rdi
addq $0xb820, %rdi           # imm = 0xB820
movups -0x280(%rbp), %xmm0
movaps %xmm0, -0x3d0(%rbp)
movq -0x3d0(%rbp), %rsi
movq -0x3c8(%rbp), %rdx
callq 0x9970
jmp 0x3fc1c
movl $0x0, -0x18(%rbp)
movl -0x18(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jge 0x3fd25
movq -0x490(%rbp), %rdi
addq $0xb820, %rdi           # imm = 0xB820
leaq -0x48(%rbp), %rsi
callq 0x9160
jmp 0x3fc48
movl $0x0, -0x14(%rbp)
movq -0x490(%rbp), %rax
movl -0x14(%rbp), %ecx
movl %ecx, -0x500(%rbp)
movslq -0x10(%rbp), %rcx
movl 0x6cd4(%rax,%rcx,4), %edi
movl -0x18(%rbp), %ecx
movl %ecx, %eax
leal (%rax,%rax,2), %edx
movl %edx, %ecx
leal (%rax,%rcx,4), %eax
subl %eax, %edi
movl $0xd, %esi
callq 0x38f10
movl %eax, -0x4fc(%rbp)
jmp 0x3fc8b
movl -0x500(%rbp), %eax
movl -0x4fc(%rbp), %ecx
cmpl %ecx, %eax
jge 0x3fd15
movl -0x14(%rbp), %ecx
movl %ecx, %eax
leal 0x7(,%rax,4), %eax
movslq %eax, %rdx
leaq -0x3f0(%rbp), %rdi
leaq -0x48(%rbp), %rsi
movl $0x3, %ecx
callq 0x97a0
jmp 0x3fcc1
movq -0x490(%rbp), %rdi
addq $0x6cf0, %rdi           # imm = 0x6CF0
movslq -0x10(%rbp), %rax
imulq $0x640, %rax, %rax      # imm = 0x640
addq %rax, %rdi
movl -0x14(%rbp), %eax
imull $0xd, -0x18(%rbp), %ecx
addl %ecx, %eax
cltq
shlq $0x5, %rax
addq %rax, %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x9920
leaq -0x3f0(%rbp), %rdi
callq 0x9480
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x3fc4f
jmp 0x3fd17
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x3fc23
movq -0x490(%rbp), %rax
movsd 0x6c20(%rax), %xmm0
movsd 0x7da24(%rip), %xmm1    # 0xbd760
ucomisd %xmm1, %xmm0
jb 0x3ff1b
movl -0x10(%rbp), %eax
movl %eax, -0x508(%rbp)
leaq 0x7dc8a(%rip), %rdi     # 0xbd9e0
movl $0x43, %esi
callq 0x340b0
movl %eax, -0x504(%rbp)
jmp 0x3fd68
movl -0x508(%rbp), %eax
movl -0x504(%rbp), %ecx
cmpl %ecx, %eax
jne 0x3ff1b
movq -0x490(%rbp), %rax
movsd 0x7d9dd(%rip), %xmm0    # 0xbd768
ucomisd 0x6c20(%rax), %xmm0
jbe 0x3ff1b
movl $0x0, -0x14(%rbp)
movq -0x490(%rbp), %rcx
movl -0x14(%rbp), %eax
movslq -0x10(%rbp), %rdx
cmpl 0x6cd4(%rcx,%rdx,4), %eax
jge 0x3ff19
movq -0x490(%rbp), %rdi
addq $0x6cf0, %rdi           # imm = 0x6CF0
movslq -0x10(%rbp), %rax
imulq $0x640, %rax, %rax      # imm = 0x640
addq %rax, %rdi
movslq -0x14(%rbp), %rax
shlq $0x5, %rax
addq %rax, %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x7db94(%rip), %rsi     # 0xbd985
callq 0x91b0
cmpq $0x0, %rax
jne 0x3fec7
movq -0x490(%rbp), %rdi
addq $0x6cf0, %rdi           # imm = 0x6CF0
movslq -0x10(%rbp), %rax
imulq $0x640, %rax, %rax      # imm = 0x640
addq %rax, %rdi
movslq -0x14(%rbp), %rax
shlq $0x5, %rax
addq %rax, %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x7d492(%rip), %rsi     # 0xbd2c8
callq 0x91b0
cmpq $0x0, %rax
jne 0x3fec7
movq -0x490(%rbp), %rdi
addq $0x6cf0, %rdi           # imm = 0x6CF0
movslq -0x10(%rbp), %rax
imulq $0x640, %rax, %rax      # imm = 0x640
addq %rax, %rdi
movslq -0x14(%rbp), %rax
shlq $0x5, %rax
addq %rax, %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x7db0d(%rip), %rsi     # 0xbd988
callq 0x91b0
cmpq $0x0, %rax
jne 0x3fec7
movq -0x490(%rbp), %rdi
addq $0x6cf0, %rdi           # imm = 0x6CF0
movslq -0x10(%rbp), %rax
imulq $0x640, %rax, %rax      # imm = 0x640
addq %rax, %rdi
movslq -0x14(%rbp), %rax
shlq $0x5, %rax
addq %rax, %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x7dacf(%rip), %rsi     # 0xbd98b
callq 0x91b0
cmpq $0x0, %rax
je 0x3ff09
movq -0x490(%rbp), %rcx
movslq -0x10(%rbp), %rax
imulq $0x640, %rax, %rax      # imm = 0x640
addq %rax, %rcx
movslq -0x14(%rbp), %rax
shlq $0x5, %rax
leaq 0x6cf0(%rax,%rcx), %rdi
movl $0x1, %esi
callq 0x9eb0
movq %rax, -0x510(%rbp)
jmp 0x3feff
movq -0x510(%rbp), %rax
movb $0x32, (%rax)
jmp 0x3ff0b
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x3fda0
jmp 0x3ff1b
jmp 0x3ff1d
movq -0x2b8(%rbp), %rdi
leaq 0x7da63(%rip), %rsi     # 0xbd98e
callq 0x91b0
cmpq $0x0, %rax
je 0x4041d
xorl %eax, %eax
movl %eax, %edx
leaq -0x410(%rbp), %rdi
leaq -0x48(%rbp), %rsi
movl $0x6, %ecx
callq 0x97a0
jmp 0x3ff55
leaq -0x410(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
callq 0x9b60
movl %eax, %ecx
movq -0x490(%rbp), %rax
movl %ecx, 0x6cd4(%rax)
leaq -0x410(%rbp), %rdi
callq 0x9480
movq -0x490(%rbp), %rax
cmpl $0x0, 0x6cd4(%rax)
jne 0x3fff4
movq -0x490(%rbp), %rdi
addq $0xb820, %rdi           # imm = 0xB820
callq 0x9d00
movq %rdx, -0x520(%rbp)
movq %rax, -0x518(%rbp)
jmp 0x3ffb7
movq -0x520(%rbp), %rax
movq -0x518(%rbp), %rcx
movq %rcx, -0x420(%rbp)
movq %rax, -0x418(%rbp)
movq -0x420(%rbp), %rax
movq %rax, -0x280(%rbp)
movq -0x418(%rbp), %rax
movq %rax, -0x278(%rbp)
jmp 0x3f58e
movq -0x490(%rbp), %rax
movl 0x6cd4(%rax), %eax
movl $0x9, %ecx
cltd
idivl %ecx
cmpl $0x0, %edx
je 0x4002b
movq -0x490(%rbp), %rax
movl 0x6cd4(%rax), %eax
movl $0x9, %ecx
cltd
idivl %ecx
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x40043
movq -0x490(%rbp), %rax
movl 0x6cd4(%rax), %eax
movl $0x9, %ecx
cltd
idivl %ecx
movl %eax, -0x1c(%rbp)
movq -0x490(%rbp), %rdi
addq $0xb820, %rdi           # imm = 0xB820
movups -0x280(%rbp), %xmm0
movaps %xmm0, -0x430(%rbp)
movq -0x430(%rbp), %rsi
movq -0x428(%rbp), %rdx
callq 0x9970
jmp 0x40074
movl $0x0, -0x18(%rbp)
movl -0x18(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jge 0x40207
movq -0x490(%rbp), %rdi
addq $0xb820, %rdi           # imm = 0xB820
leaq -0x48(%rbp), %rsi
callq 0x9160
jmp 0x400a0
movl $0x0, -0x14(%rbp)
movq -0x490(%rbp), %rax
movl -0x14(%rbp), %ecx
movl %ecx, -0x528(%rbp)
movl 0x6cd4(%rax), %edi
movl -0x18(%rbp), %ecx
movl %ecx, %eax
leal (%rax,%rax,8), %eax
subl %eax, %edi
movl $0x9, %esi
callq 0x38f10
movl %eax, -0x524(%rbp)
jmp 0x400d9
movl -0x528(%rbp), %eax
movl -0x524(%rbp), %ecx
cmpl %ecx, %eax
jge 0x401f7
movl -0x14(%rbp), %ecx
movl %ecx, %eax
leal (%rax,%rax,2), %ecx
movl %ecx, %eax
leal 0x6(%rax,%rax), %eax
movslq %eax, %rdx
leaq -0x450(%rbp), %rdi
leaq -0x48(%rbp), %rsi
movl $0x6, %ecx
callq 0x97a0
jmp 0x40115
leaq -0x450(%rbp), %rdi
movq %rdi, -0x540(%rbp)
callq 0x92b0
movq %rax, %rdi
leaq 0x88cb5(%rip), %rsi     # 0xc8de7
xorl %eax, %eax
leaq -0x170(%rbp), %rdx
movq %rdx, -0x538(%rbp)
callq 0x9750
movq -0x540(%rbp), %rdi
callq 0x9480
leaq -0x471(%rbp), %rdi
movq %rdi, -0x530(%rbp)
callq 0x9d30
movq -0x538(%rbp), %rsi
movq -0x530(%rbp), %rdx
leaq -0x470(%rbp), %rdi
callq 0x9a30
jmp 0x40182
movq -0x490(%rbp), %rdi
addq $0x6cf0, %rdi           # imm = 0x6CF0
movl -0x14(%rbp), %eax
imull $0x9, -0x18(%rbp), %ecx
addl %ecx, %eax
cltq
shlq $0x5, %rax
addq %rax, %rdi
leaq -0x470(%rbp), %rsi
callq 0x9920
leaq -0x470(%rbp), %rdi
callq 0x9480
leaq -0x471(%rbp), %rdi
callq 0x97e0
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x400a7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x288(%rbp)
movl %eax, -0x28c(%rbp)
leaq -0x471(%rbp), %rdi
callq 0x97e0
jmp 0x4067d
jmp 0x401f9
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x4007b
movl $0x1, -0x14(%rbp)
cmpl $0x7, -0x14(%rbp)
jge 0x4029d
movq -0x490(%rbp), %rax
movl 0x6cd4(%rax), %edx
movslq -0x14(%rbp), %rcx
movl %edx, 0x6cd4(%rax,%rcx,4)
movl $0x0, -0x18(%rbp)
movq -0x490(%rbp), %rcx
movl -0x18(%rbp), %eax
cmpl 0x6cd4(%rcx), %eax
jge 0x4028d
movq -0x490(%rbp), %rax
movslq -0x18(%rbp), %rdx
shlq $0x5, %rdx
movq %rax, %rcx
addq %rdx, %rcx
leaq 0x6cf0(%rax,%rdx), %rsi
movslq -0x14(%rbp), %rax
imulq $0x640, %rax, %rax      # imm = 0x640
leaq 0x6cf0(%rax,%rcx), %rdi
callq 0x9070
jmp 0x40280
jmp 0x40282
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x40237
jmp 0x4028f
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x4020e
leaq 0x7d73c(%rip), %rdi     # 0xbd9e0
movl $0x43, %esi
callq 0x340b0
movl %eax, -0x544(%rbp)
jmp 0x402b6
movl -0x544(%rbp), %eax
movl %eax, -0x10(%rbp)
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpl -0x10(%rbp), %eax
je 0x4041b
movl $0x0, -0x14(%rbp)
movq -0x490(%rbp), %rcx
movl -0x14(%rbp), %eax
movslq -0x10(%rbp), %rdx
cmpl 0x6cd4(%rcx,%rdx,4), %eax
jge 0x40419
movq -0x490(%rbp), %rcx
movslq -0x10(%rbp), %rax
imulq $0x640, %rax, %rax      # imm = 0x640
addq %rax, %rcx
movslq -0x14(%rbp), %rax
shlq $0x5, %rax
leaq 0x6cf0(%rax,%rcx), %rdi
movl $0x1, %esi
callq 0x9eb0
movq %rax, -0x550(%rbp)
jmp 0x40327
movq -0x550(%rbp), %rax
movsbl (%rax), %ecx
movl $0x32, %eax
cmpl %ecx, %eax
jne 0x4037c
movq -0x490(%rbp), %rcx
movslq -0x10(%rbp), %rax
imulq $0x640, %rax, %rax      # imm = 0x640
addq %rax, %rcx
movslq -0x14(%rbp), %rax
shlq $0x5, %rax
leaq 0x6cf0(%rax,%rcx), %rdi
movl $0x1, %esi
callq 0x9eb0
movq %rax, -0x558(%rbp)
jmp 0x40372
movq -0x558(%rbp), %rax
movb $0x37, (%rax)
movq -0x490(%rbp), %rcx
movslq -0x10(%rbp), %rax
imulq $0x640, %rax, %rax      # imm = 0x640
addq %rax, %rcx
movslq -0x14(%rbp), %rax
shlq $0x5, %rax
leaq 0x6cf0(%rax,%rcx), %rdi
movl $0x1, %esi
callq 0x9eb0
movq %rax, -0x560(%rbp)
jmp 0x403b4
movq -0x560(%rbp), %rax
movsbl (%rax), %ecx
movl $0x31, %eax
cmpl %ecx, %eax
jne 0x40409
movq -0x490(%rbp), %rcx
movslq -0x10(%rbp), %rax
imulq $0x640, %rax, %rax      # imm = 0x640
addq %rax, %rcx
movslq -0x14(%rbp), %rax
shlq $0x5, %rax
leaq 0x6cf0(%rax,%rcx), %rdi
movl $0x1, %esi
callq 0x9eb0
movq %rax, -0x568(%rbp)
jmp 0x403ff
movq -0x568(%rbp), %rax
movb $0x32, (%rax)
jmp 0x4040b
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x402d4
jmp 0x4041b
jmp 0x4041d
movq -0x2b8(%rbp), %rdi
leaq 0x7d573(%rip), %rsi     # 0xbd99e
callq 0x91b0
cmpq $0x0, %rax
je 0x4045e
leaq -0x48(%rbp), %rdi
callq 0x92b0
movq -0x490(%rbp), %rdx
movq %rax, %rdi
addq $0x6cc0, %rdx           # imm = 0x6CC0
leaq 0x87cbd(%rip), %rsi     # 0xc8114
movb $0x0, %al
callq 0x9750
movq -0x2b8(%rbp), %rdi
leaq 0x7d53b(%rip), %rsi     # 0xbd9a7
callq 0x91b0
cmpq $0x0, %rax
je 0x40506
leaq -0x48(%rbp), %rdi
callq 0x92b0
movq -0x490(%rbp), %r11
movq %rax, %rdi
movq %r11, %rdx
addq $0xadf0, %rdx           # imm = 0xADF0
movq %r11, %rcx
addq $0xadf0, %rcx           # imm = 0xADF0
addq $0x4, %rcx
movq %r11, %r8
addq $0xadf0, %r8            # imm = 0xADF0
addq $0x8, %r8
movq %r11, %r9
addq $0xadf0, %r9            # imm = 0xADF0
addq $0xc, %r9
addq $0xadf0, %r11           # imm = 0xADF0
addq $0x10, %r11
leaq -0x270(%rbp), %rax
leaq 0x7d4de(%rip), %rsi     # 0xbd9b9
leaq -0x28(%rbp), %r10
movq %r11, (%rsp)
movq %r10, 0x8(%rsp)
movq %rax, 0x10(%rsp)
movb $0x0, %al
callq 0x9750
movq -0x490(%rbp), %rax
cvttsd2si -0x28(%rbp), %ecx
movl %ecx, 0xae04(%rax)
movq -0x2b8(%rbp), %rdi
leaq 0x7d4b5(%rip), %rsi     # 0xbd9c9
callq 0x91b0
cmpq $0x0, %rax
je 0x4059e
leaq -0x48(%rbp), %rdi
callq 0x92b0
movq -0x490(%rbp), %r10
movq %rax, %rdi
movq %r10, %rdx
addq $0xae08, %rdx           # imm = 0xAE08
movq %r10, %rcx
addq $0xae08, %rcx           # imm = 0xAE08
addq $0x4, %rcx
movq %r10, %r8
addq $0xae08, %r8            # imm = 0xAE08
addq $0x8, %r8
movq %r10, %r9
addq $0xae08, %r9            # imm = 0xAE08
addq $0xc, %r9
addq $0xae08, %r10           # imm = 0xAE08
addq $0x10, %r10
leaq 0x7d31c(%rip), %rsi     # 0xbd894
leaq -0x28(%rbp), %rax
movq %r10, (%rsp)
movq %rax, 0x8(%rsp)
movb $0x0, %al
callq 0x9750
movq -0x490(%rbp), %rax
cvttsd2si -0x28(%rbp), %ecx
movl %ecx, 0xae1c(%rax)
movq -0x490(%rbp), %rdi
addq $0xb820, %rdi           # imm = 0xB820
callq 0x9d00
movq %rdx, -0x578(%rbp)
movq %rax, -0x570(%rbp)
jmp 0x405c1
movq -0x578(%rbp), %rax
movq -0x570(%rbp), %rcx
movq %rcx, -0x488(%rbp)
movq %rax, -0x480(%rbp)
movq -0x488(%rbp), %rax
movq %rax, -0x280(%rbp)
movq -0x480(%rbp), %rax
movq %rax, -0x278(%rbp)
jmp 0x3f58e
movq -0x490(%rbp), %rax
movsd 0x6c20(%rax), %xmm0
movsd 0x7c823(%rip), %xmm1    # 0xbce38
ucomisd %xmm1, %xmm0
jb 0x40662
movl $0x0, -0xc(%rbp)
cmpl $0x7, -0xc(%rbp)
jge 0x40660
movq -0x490(%rbp), %rax
movslq -0xc(%rbp), %rcx
cmpl $0x0, 0x6cd4(%rax,%rcx,4)
je 0x40653
movq -0x490(%rbp), %rax
movl 0xae20(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0xae20(%rax)
jmp 0x40655
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x40622
jmp 0x40662
leaq -0x68(%rbp), %rdi
callq 0x9480
leaq -0x48(%rbp), %rdi
callq 0x9480
addq $0x590, %rsp            # imm = 0x590
popq %rbp
retq
leaq -0x68(%rbp), %rdi
callq 0x9480
leaq -0x48(%rbp), %rdi
callq 0x9480
movq -0x288(%rbp), %rdi
callq 0x9d20
nopl (%rax,%rax)