// File: DoubleString[P]RtConverter/src/Rnxbrd/RnxEphFileAdapter.cpp
// Function: bamboo::RnxEphFileAdapter::m_getCurrentEph_G(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int, double)
list<GPSEPH> RnxEphFileAdapter::m_getCurrentEph_G(string cprn, int mjd, double sod) {
	int isys,wk;
	double dt,sow,dtmin = 2.0;
	list<GPSEPH> list_out;
	list<GPSEPH>::iterator gpsItr;
	mjd2wksow(mjd, sod, &wk, &sow);
	isys = index_string(SYS, cprn[0]);
	for (gpsItr = this->gnssEph[isys].begin(); gpsItr != this->gnssEph[isys].end(); ++gpsItr) {
		if (strstr((*gpsItr).cprn, cprn.c_str())) {
			dt = (wk - (*gpsItr).week) * 168.0 + (sow - (*gpsItr).toe) / 3600.0;
			if (fabs(dt) < dtmin) {
				list_out.push_back(*gpsItr);
			}
		}
	}
	return list_out;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xd0, %rsp
movq %rdx, -0x98(%rbp)
movq %rdi, -0x90(%rbp)
movq %rdi, %rax
movq %rax, -0x88(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movsd %xmm0, -0x28(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x80(%rbp)
movabsq $0x4000000000000000, %rax # imm = 0x4000000000000000
movq %rax, -0x48(%rbp)
movb $0x0, -0x49(%rbp)
callq 0x45140
leaq -0x58(%rbp), %rdi
callq 0x546b0
movl -0x1c(%rbp), %edi
movsd -0x28(%rbp), %xmm0
leaq -0x30(%rbp), %rsi
leaq -0x40(%rbp), %rdx
callq 0x33810
jmp 0xba346
movq -0x98(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x9eb0
movq %rax, -0xa0(%rbp)
jmp 0xba35f
movq -0xa0(%rbp), %rax
movsbl (%rax), %esi
leaq 0x12242(%rip), %rdi     # 0xcc5b2
callq 0x340b0
movl %eax, -0xa4(%rbp)
jmp 0xba37d
movq -0x80(%rbp), %rdi
movl -0xa4(%rbp), %eax
movl %eax, -0x2c(%rbp)
addq $0x6d0, %rdi            # imm = 0x6D0
addq $0x28, %rdi
movslq -0x2c(%rbp), %rax
imulq $0x18, %rax, %rax
addq %rax, %rdi
callq 0x546d0
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x80(%rbp), %rdi
addq $0x6d0, %rdi            # imm = 0x6D0
addq $0x28, %rdi
movslq -0x2c(%rbp), %rax
imulq $0x18, %rax, %rax
addq %rax, %rdi
callq 0x54730
movq %rax, -0x78(%rbp)
leaq -0x58(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x54700
testb $0x1, %al
jne 0xba3ea
jmp 0xba4fc
leaq -0x58(%rbp), %rdi
callq 0x54830
movq -0x98(%rbp), %rdi
movq %rax, -0xb0(%rbp)
callq 0x92b0
movq -0xb0(%rbp), %rdi
movq %rax, %rsi
callq 0x91b0
cmpq $0x0, %rax
je 0xba4ec
cvtsi2sdl -0x30(%rbp), %xmm0
movsd %xmm0, -0xc8(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x54830
movsd -0xc8(%rbp), %xmm0
subsd 0xb8(%rax), %xmm0
movsd %xmm0, -0xb8(%rbp)
movsd -0x40(%rbp), %xmm0
movsd %xmm0, -0xc0(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x54830
movsd -0xc0(%rbp), %xmm1
movsd -0xb8(%rbp), %xmm0
subsd 0x68(%rax), %xmm1
movsd 0x2990(%rip), %xmm2     # 0xbce10
divsd %xmm2, %xmm1
movsd 0x11c44(%rip), %xmm2    # 0xcc0d0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x38(%rbp)
movsd -0x38(%rbp), %xmm1
movaps 0x2d7b(%rip), %xmm0     # 0xbd220
pand %xmm0, %xmm1
movsd -0x48(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jbe 0xba4ea
leaq -0x58(%rbp), %rdi
callq 0x54830
movq -0x90(%rbp), %rdi
movq %rax, %rsi
callq 0x547f0
jmp 0xba4ce
jmp 0xba4ea
movq -0x90(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
callq 0x45710
jmp 0xba522
jmp 0xba4ec
jmp 0xba4ee
leaq -0x58(%rbp), %rdi
callq 0x54aa0
jmp 0xba3b1
movb $0x1, -0x49(%rbp)
testb $0x1, -0x49(%rbp)
jne 0xba512
movq -0x90(%rbp), %rdi
callq 0x45710
movq -0x88(%rbp), %rax
addq $0xd0, %rsp
popq %rbp
retq
movq -0x60(%rbp), %rdi
callq 0x9d20
nopl (%rax,%rax)