Function at 0x10031a04
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x164
mov eax, dword [0x100c77f4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x158], eax
mov eax, dword [ebp + 0x14]
push ebx
mov dword [ebp - 0x15c], eax
mov eax, dword [ebp + 0x18]
push esi
mov dword [ebp - 0x160], eax
mov eax, dword [ebp + 0x1c]
push edi
mov edi, dword [0x100f36cc]
cmp dword [edi + 8], 0
mov dword [ebp - 0x12c], eax
lea eax, [edi + 0x1960]
mov dword [ebp - 0x154], eax
lea ebx, [edi + 0xcc0]
jne 0x10031f93
mov edx, dword [ebp - 0x12c]
call fcn.100310a7
push 0xfffffffffffffffe
pop edi
cmp eax, edi
jne 0x10031a79
mov eax, edi
jmp 0x1003234d
mov ecx, eax
cdq
sub eax, edx
sar eax, 1
mov dword [0x1010109c], eax
mov eax, dword [0x100f36cc]
push dword [eax + 8]
mov esi, 0xfc
push esi
shl ecx, 2
lea eax, [ebp - 0x108]
push 1
push eax
mov dword [ebp - 0x13c], ecx
mov dword [0x10101098], ecx
call fcn.10069356
add esp, 0x10
cmp eax, esi
jne 0x10031a72
mov eax, dword [0x100f36cc]
push dword [eax + 8]
mov esi, 0x960
push esi
add eax, 0xd5c
push 1
push eax
call fcn.10069356
add esp, 0x10
cmp eax, esi
jne 0x10031a72
mov eax, dword [0x100f36cc]
push dword [eax + 8]
add eax, 0xc90
push 3
push 8
push eax
call fcn.10069356
add esp, 0x10
cmp eax, 3
jne 0x10031a72
mov edi, dword [0x100f36cc]
cmp word [edi + 0xc], 0
je 0x10031b19
push eax
pop ecx
push 8
lea edx, [edi + 0xc90]
pop esi
call fcn.1003235c
push dword [edi + 8]
add edi, 0xcbc
push 1
push 4
push edi
call fcn.10069356
add esp, 0x10
cmp eax, 1
je 0x10031b3b
push 0xfffffffffffffffe
jmp 0x1003234c
mov edi, dword [0x100f36cc]
cmp word [edi + 0xc], 0
je 0x10031b59
xor ecx, ecx
push 4
lea edx, [edi + 0xcbc]
inc ecx
pop esi
call fcn.1003235c
push dword [edi + 8]
add edi, 0xca8
push 1
push 8
push edi
call fcn.10069356
add esp, 0x10
cmp eax, 1
jne 0x10031b34
mov edi, dword [0x100f36cc]
cmp word [edi + 0xc], 0
je 0x10031b92
xor ecx, ecx
push 8
lea edx, [edi + 0xca8]
inc ecx
pop esi
call fcn.1003235c
push dword [edi + 8]
add edi, 0xcb0
push 1
push 8
push edi
call fcn.10069356
add esp, 0x10
cmp eax, 1
jne 0x10031b34
mov edi, dword [0x100f36cc]
cmp word [edi + 0xc], 0
je 0x10031bcb
xor ecx, ecx
push 8
lea edx, [edi + 0xcb0]
inc ecx
pop esi
call fcn.1003235c
push dword [edi + 8]
push 0x24
push 4
push ebx
call fcn.10069356
add esp, 0x10
cmp eax, 0x24
jne 0x10031b34
mov edi, dword [0x100f36cc]
cmp word [edi + 0xc], 0
je 0x10031bfd
push eax
pop ecx
push 4
pop esi
mov edx, ebx
call fcn.1003235c
push dword [edi + 8]
add edi, 0xcb8
push 1
push 4
push edi
call fcn.10069356
add esp, 0x10
cmp eax, 1
jne 0x10031b34
mov edi, dword [0x100f36cc]
cmp word [edi + 0xc], 0
je 0x10031c3a
xor ecx, ecx
push 4
lea edx, [edi + 0xcb8]
inc ecx
pop esi
call fcn.1003235c
push dword [edi + 8]
push 3
push 4
push 0x1010108c
call fcn.10069356
add esp, 0x10
cmp eax, 3
jne 0x10031b34
mov edi, dword [0x100f36cc]
cmp word [edi + 0xc], 0
je 0x10031c73
push eax
pop ecx
push 4
pop esi
mov edx, 0x1010108c
call fcn.1003235c
mov eax, dword [0x10101098]
cdq
push 0
push edx
push eax
push dword [edi + 8]
call fcn.10069b0c
mov eax, dword [0x100f36cc]
push dword [eax + 8]
mov esi, 0x190
push esi
add eax, 0x10
push 8
push eax
call fcn.10069356
add esp, 0x20
cmp eax, esi
jne 0x10031b34
mov edi, dword [0x100f36cc]
cmp word [edi + 0xc], 0
je 0x10031cc3
mov ecx, esi
push 8
lea edx, [edi + 0x10]
pop esi
call fcn.1003235c
mov ecx, 0x1010108c
lea eax, [ebx + 0x90]
mov edx, dword [ecx]
mov dword [eax], edx
add ecx, 4
add eax, 4
cmp ecx, 0x10101098
jl 0x10031cce
xor eax, eax
push 2
push eax
push eax
push dword [edi + 8]
mov dword [0x10101088], eax
call fcn.10069b0c
mov eax, dword [0x100f36cc]
push dword [eax + 8]
call fcn.10069905
mov esi, dword [0x100f36cc]
fld qword [esi + 0xc98]
add esp, 0x14
fsub qword [esi + 0xc90]
mov dword [ebp - 0x148], eax
mov dword [ebp - 0x144], edx
fdiv qword [esi + 0xca0]
call fcn.1007d440
xor edi, edi
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x138], edi
mov dword [ebp - 0x134], edi
push 3
pop edx
cmp edi, 0xb
jne 0x10031d4b
push 2
pop edx
mov ecx, edi
imul ecx, ecx, 0xc
mov eax, dword [ecx + ebx + 8]
imul eax, dword [ecx + ebx + 4]
imul eax, edx
imul eax, dword [ebp - 0x130]
cdq
add dword [ebp - 0x138], eax
adc dword [ebp - 0x134], edx
inc edi
cmp edi, 0xd
jl 0x10031d40
mov eax, dword [ebp - 0x130]
add eax, eax
cdq
add eax, dword [ebp - 0x138]
adc edx, dword [ebp - 0x134]
mov edi, eax
mov eax, dword [ebp - 0x13c]
mov ecx, edx
shld ecx, edi, 3
add eax, eax
cdq
shl edi, 3
add edi, eax
adc ecx, edx
mov dword [ebp - 0x138], edi
mov dword [ebp - 0x134], ecx
cmp dword [ebp - 0x148], edi
jne 0x10031dc3
cmp dword [ebp - 0x144], ecx
je 0x10031e6d
mov ecx, dword [ebp - 0x148]
mov eax, dword [ebp - 0x144]
sub ecx, edi
sbb eax, dword [ebp - 0x134]
mov dword [ebp - 0x14c], eax
mov eax, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x14c]
cdq
cmp ecx, eax
jne 0x10031df2
cmp edi, edx
je 0x10031e6d
mov ebx, dword [ebp - 0x12c]
test ebx, ebx
je 0x10031b34
push dword [ebp - 0x138]
push dword [ebp - 0x148]
push str.JPL_ephemeris_file_is_mutilated__length___d_instead_of__d.
push ebx
call fcn.100675d6
mov eax, ebx
add esp, 0x10
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x10031e1f
sub eax, ecx
mov edi, eax
mov eax, dword [0x100f36cc]
mov edx, dword [eax]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10031e36
sub ecx, esi
add ecx, edi
cmp ecx, 0xff
jae 0x10031b34
push dword [ebp - 0x138]
push dword [ebp - 0x148]
push edx
push str.JPL_ephemeris_file__s_is_mutilated__length___d_instead_of__d.
push ebx
call fcn.100675d6
add esp, 0x14
jmp 0x10031b34
mov eax, dword [0x10101098]
add eax, eax
cdq
push 0
push edx
push eax
push dword [esi + 8]
call fcn.10069b0c
mov eax, dword [0x100f36cc]
push dword [eax + 8]
lea eax, [ebp - 0x128]
push 2
push 8
pop esi
push esi
push eax
call fcn.10069356
add esp, 0x20
cmp eax, 2
jne 0x10031b34
mov edi, dword [0x100f36cc]
cmp word [edi + 0xc], 0
je 0x10031ec1
push eax
pop ecx
lea edx, [ebp - 0x128]
call fcn.1003235c
mov eax, dword [ebp - 0x130]
inc eax
imul dword [0x10101098]
push 0
push edx
push eax
push dword [edi + 8]
call fcn.10069b0c
mov eax, dword [0x100f36cc]
push dword [eax + 8]
lea eax, [ebp - 0x118]
push 2
push esi
push eax
call fcn.10069356
add esp, 0x20
cmp eax, 2
jne 0x10031b34
mov edi, dword [0x100f36cc]
cmp word [edi + 0xc], 0
je 0x10031f1a
push eax
pop ecx
push 8
pop esi
lea edx, [ebp - 0x118]
call fcn.1003235c
fld qword [ebp - 0x128]
fld qword [edi + 0xc90]
fucompp
fnstsw ax
test ah, 0x44
jp 0x10031f44
fld qword [ebp - 0x110]
fld qword [edi + 0xc98]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x10031f93
cmp dword [ebp - 0x12c], 0
je 0x10031b34
fld qword [edi + 0xc98]
sub esp, 0x20
fstp qword [esp + 0x18]
fld qword [ebp - 0x110]
fstp qword [esp + 0x10]
fld qword [edi + 0xc90]
fstp qword [esp + 8]
fld qword [ebp - 0x128]
fstp qword [esp]
push str.JPL_ephemeris_file_is_corrupt__start_end_date_check_failed.__.1f____.1f___.1f____.1f
push dword [ebp - 0x12c]
call fcn.100675d6
add esp, 0x28
jmp 0x10031b34
xor esi, esi
cmp dword [ebp + 8], esi
jne 0x10031fa1
xor eax, eax
jmp 0x1003234d
fld qword [ebp + 0x20]
push ecx
fsub qword [0x100b4970]
push ecx
fstp qword [ebp - 0x150]
fld qword [ebp - 0x150]
fstp qword [esp]
call fcn.1007d620
fld qword [ebp - 0x150]
pop ecx
fsub st(1)
pop ecx
fxch st(1)
fadd qword [0x100b4970]
fld qword [edi + 0xc90]
fcomp qword [ebp + 0x20]
fnstsw ax
test ah, 0x41
je 0x1003230e
fld qword [edi + 0xc98]
fcomp qword [ebp + 0x20]
fnstsw ax
test ah, 5
jnp 0x1003230e
fld st(0)
fsub qword [edi + 0xc90]
fdiv qword [edi + 0xca0]
call fcn.1007d440
fld st(0)
fld qword [edi + 0xc98]
lea ecx, [eax + 2]
fucompp
fnstsw ax
test ah, 0x44
jp 0x10032022
dec ecx
lea eax, [ecx - 2]
mov dword [ebp - 0x13c], eax
fild dword [ebp - 0x13c]
fmul qword [edi + 0xca0]
fadd qword [edi + 0xc90]
fsubp st(1)
faddp st(1)
fdiv qword [edi + 0xca0]
fstp qword [ebp - 0x150]
cmp ecx, dword [0x10101088]
je 0x1003211b
mov eax, dword [0x10101098]
imul ecx
push esi
push edx
push eax
push dword [edi + 8]
mov dword [0x10101088], ecx
call fcn.10069b0c
add esp, 0x10
test eax, eax
je 0x100320a4
cmp dword [ebp - 0x12c], esi
je 0x10031b34
fld qword [ebp + 0x20]
push ecx
push ecx
fstp qword [esp]
push str.Read_error_in_JPL_eph._at__f_n
push dword [ebp - 0x12c]
call fcn.100675d6
add esp, 0x10
jmp 0x10031b34
mov edi, dword [0x100f36cc]
xor eax, eax
inc eax
mov dword [ebp - 0x13c], eax
cmp dword [0x1010109c], eax
jl 0x1003211b
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x130], eax
push dword [edi + 8]
push 1
push 8
push dword [ebp - 0x130]
call fcn.10069356
add esp, 0x10
cmp eax, 1
jne 0x10032078
mov edi, dword [0x100f36cc]
cmp word [edi + 0xc], si
je 0x10032100
mov edx, dword [ebp - 0x130]
xor ecx, ecx
push 8
inc ecx
pop esi
call fcn.1003235c
xor esi, esi
inc dword [ebp - 0x13c]
mov eax, dword [ebp - 0x13c]
add dword [ebp - 0x130], 8
cmp eax, dword [0x1010109c]
jle 0x100320c7
fld qword [edi + 0xca0]
cmp word [edi + 0x4a80], si
je 0x1003213a
fmul qword [0x100b4a10]
fstp qword [ebp - 0x148]
fld1
jmp 0x10032148
fstp qword [ebp - 0x148]
fld1
fdiv qword [edi + 0xca8]
mov esi, dword [ebp - 0x15c]
fstp qword [ebp - 0x138]
fld qword [ebp - 0x148]
mov eax, dword [ebx + 0x78]
mov ecx, dword [ebp - 0x154]
sub esp, 0x10
fstp qword [esp + 8]
lea eax, [ecx + eax*8 - 8]
fld qword [ebp - 0x150]
fstp qword [esp]
push esi
push 2
push dword [ebx + 0x80]
push 3
push dword [ebx + 0x7c]
push eax
call fcn.100316fe
add esp, 0x28
xor eax, eax
fld qword [esi + eax*8]
fmul qword [ebp - 0x138]
fstp qword [esi + eax*8]
inc eax
cmp eax, 6
jl 0x10032190
mov eax, dword [ebp - 0x158]
and dword [ebp - 0x12c], 0
mov edi, dword [ebp - 0x154]
mov dword [ebp - 0x130], eax
lea esi, [ebx + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x12c]
mov eax, dword [eax + ecx*4]
test eax, eax
jle 0x1003223f
fld qword [ebp - 0x148]
sub esp, 0x10
fstp qword [esp + 8]
fld qword [ebp - 0x150]
fstp qword [esp]
push dword [ebp - 0x130]
push eax
push dword [esi + 4]
mov eax, dword [esi - 4]
push 3
push dword [esi]
lea eax, [edi + eax*8 - 8]
push eax
call fcn.100316fe
mov eax, dword [ebp - 0x130]
add esp, 0x28
xor ecx, ecx
cmp dword [ebp - 0x12c], 9
jge 0x1003222c
cmp dword [ebp + 0xc], 0
jne 0x1003222c
fld qword [eax]
mov edx, dword [ebp - 0x15c]
fmul qword [ebp - 0x138]
fsub qword [edx + ecx*8]
jmp 0x10032234
fld qword [eax]
fmul qword [ebp - 0x138]
fstp qword [eax]
inc ecx
add eax, 8
cmp ecx, 6
jl 0x1003220a
inc dword [ebp - 0x12c]
add dword [ebp - 0x130], 0x30
add esi, 0xc
cmp dword [ebp - 0x12c], 0xa
jl 0x100321be
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x28]
test ecx, ecx
jle 0x100322a9
mov eax, dword [ebx + 0x88]
test eax, eax
jle 0x100322a9
fld qword [ebp - 0x148]
sub esp, 0x10
fstp qword [esp + 8]
fld qword [ebp - 0x150]
fstp qword [esp]
push dword [ebp - 0x160]
push ecx
push dword [ebx + 0x8c]
push 2
push eax
mov eax, dword [ebx + 0x84]
lea eax, [edi + eax*8 - 8]
push eax
call fcn.100316fe
add esp, 0x28
mov eax, dword [ebp + 8]
cmp dword [eax + 0x2c], 0
jle 0x10031f9a
mov eax, dword [ebx + 0x94]
test eax, eax
jle 0x10031f9a
fld qword [ebp - 0x148]
mov ecx, dword [ebp - 0x158]
sub esp, 0x10
fstp qword [esp + 8]
add ecx, 0x1e0
fld qword [ebp - 0x150]
fstp qword [esp]
push ecx
mov ecx, dword [ebp + 8]
push dword [ecx + 4]
push dword [ebx + 0x98]
push 3
push eax
mov eax, dword [ebx + 0x90]
lea eax, [edi + eax*8 - 8]
push eax
call fcn.100316fe
add esp, 0x28
jmp 0x10031f9a
fstp st(0)
fstp st(0)
cmp dword [ebp - 0x12c], esi
je 0x1003234a
fld qword [edi + 0xc98]
sub esp, 0x18
fstp qword [esp + 0x10]
fld qword [edi + 0xc90]
fstp qword [esp + 8]
fld qword [ebp + 0x20]
fstp qword [esp]
push str.jd__f_outside_JPL_eph._range__.2f_..__.2f_
push dword [ebp - 0x12c]
call fcn.100675d6
add esp, 0x20
push 0xfffffffffffffffd
pop eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10067574
leave
ret