Function at 0x1002fa3e
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x164
mov eax, dword [0x100ba2d8]
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 [0x100e5acc]
cmp dword [edi + 8], 0
mov dword [ebp - 0x12c], eax
lea eax, [edi + 0x1960]
mov dword [ebp - 0x154], eax
lea ebx, [edi + 0xcc0]
jne 0x1002ffcd
mov edx, dword [ebp - 0x12c]
call fcn.1002f0e1
push 0xfffffffffffffffe
pop edi
cmp eax, edi
jne 0x1002fab3
mov eax, edi
jmp 0x10030387
mov ecx, eax
cdq
sub eax, edx
sar eax, 1
mov dword [0x100f3494], eax
mov eax, dword [0x100e5acc]
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 [0x100f3490], ecx
call fcn.10063fa2
add esp, 0x10
cmp eax, esi
jne 0x1002faac
mov eax, dword [0x100e5acc]
push dword [eax + 8]
mov esi, 0x960
push esi
add eax, 0xd5c
push 1
push eax
call fcn.10063fa2
add esp, 0x10
cmp eax, esi
jne 0x1002faac
mov eax, dword [0x100e5acc]
push dword [eax + 8]
add eax, 0xc90
push 3
push 8
push eax
call fcn.10063fa2
add esp, 0x10
cmp eax, 3
jne 0x1002faac
mov edi, dword [0x100e5acc]
cmp word [edi + 0xc], 0
je 0x1002fb53
push eax
pop ecx
push 8
lea edx, [edi + 0xc90]
pop esi
call fcn.10030396
push dword [edi + 8]
add edi, 0xcbc
push 1
push 4
push edi
call fcn.10063fa2
add esp, 0x10
cmp eax, 1
je 0x1002fb75
push 0xfffffffffffffffe
jmp 0x10030386
mov edi, dword [0x100e5acc]
cmp word [edi + 0xc], 0
je 0x1002fb93
xor ecx, ecx
push 4
lea edx, [edi + 0xcbc]
inc ecx
pop esi
call fcn.10030396
push dword [edi + 8]
add edi, 0xca8
push 1
push 8
push edi
call fcn.10063fa2
add esp, 0x10
cmp eax, 1
jne 0x1002fb6e
mov edi, dword [0x100e5acc]
cmp word [edi + 0xc], 0
je 0x1002fbcc
xor ecx, ecx
push 8
lea edx, [edi + 0xca8]
inc ecx
pop esi
call fcn.10030396
push dword [edi + 8]
add edi, 0xcb0
push 1
push 8
push edi
call fcn.10063fa2
add esp, 0x10
cmp eax, 1
jne 0x1002fb6e
mov edi, dword [0x100e5acc]
cmp word [edi + 0xc], 0
je 0x1002fc05
xor ecx, ecx
push 8
lea edx, [edi + 0xcb0]
inc ecx
pop esi
call fcn.10030396
push dword [edi + 8]
push 0x24
push 4
push ebx
call fcn.10063fa2
add esp, 0x10
cmp eax, 0x24
jne 0x1002fb6e
mov edi, dword [0x100e5acc]
cmp word [edi + 0xc], 0
je 0x1002fc37
push eax
pop ecx
push 4
pop esi
mov edx, ebx
call fcn.10030396
push dword [edi + 8]
add edi, 0xcb8
push 1
push 4
push edi
call fcn.10063fa2
add esp, 0x10
cmp eax, 1
jne 0x1002fb6e
mov edi, dword [0x100e5acc]
cmp word [edi + 0xc], 0
je 0x1002fc74
xor ecx, ecx
push 4
lea edx, [edi + 0xcb8]
inc ecx
pop esi
call fcn.10030396
push dword [edi + 8]
push 3
push 4
push 0x100f3484
call fcn.10063fa2
add esp, 0x10
cmp eax, 3
jne 0x1002fb6e
mov edi, dword [0x100e5acc]
cmp word [edi + 0xc], 0
je 0x1002fcad
push eax
pop ecx
push 4
pop esi
mov edx, 0x100f3484
call fcn.10030396
mov eax, dword [0x100f3490]
cdq
push 0
push edx
push eax
push dword [edi + 8]
call fcn.10064758
mov eax, dword [0x100e5acc]
push dword [eax + 8]
mov esi, 0x190
push esi
add eax, 0x10
push 8
push eax
call fcn.10063fa2
add esp, 0x20
cmp eax, esi
jne 0x1002fb6e
mov edi, dword [0x100e5acc]
cmp word [edi + 0xc], 0
je 0x1002fcfd
mov ecx, esi
push 8
lea edx, [edi + 0x10]
pop esi
call fcn.10030396
mov ecx, 0x100f3484
lea eax, [ebx + 0x90]
mov edx, dword [ecx]
mov dword [eax], edx
add ecx, 4
add eax, 4
cmp ecx, 0x100f3490
jl 0x1002fd08
xor eax, eax
push 2
push eax
push eax
push dword [edi + 8]
mov dword [0x100f3480], eax
call fcn.10064758
mov eax, dword [0x100e5acc]
push dword [eax + 8]
call fcn.10064551
mov esi, dword [0x100e5acc]
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.100722b0
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 0x1002fd85
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 0x1002fd7a
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 0x1002fdfd
cmp dword [ebp - 0x144], ecx
je 0x1002fea7
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 0x1002fe2c
cmp edi, edx
je 0x1002fea7
mov ebx, dword [ebp - 0x12c]
test ebx, ebx
je 0x1002fb6e
push dword [ebp - 0x138]
push dword [ebp - 0x148]
push str.JPL_ephemeris_file_is_mutilated__length___d_instead_of__d.
push ebx
call fcn.10062ff4
mov eax, ebx
add esp, 0x10
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x1002fe59
sub eax, ecx
mov edi, eax
mov eax, dword [0x100e5acc]
mov edx, dword [eax]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1002fe70
sub ecx, esi
add ecx, edi
cmp ecx, 0xff
jae 0x1002fb6e
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.10062ff4
add esp, 0x14
jmp 0x1002fb6e
mov eax, dword [0x100f3490]
add eax, eax
cdq
push 0
push edx
push eax
push dword [esi + 8]
call fcn.10064758
mov eax, dword [0x100e5acc]
push dword [eax + 8]
lea eax, [ebp - 0x128]
push 2
push 8
pop esi
push esi
push eax
call fcn.10063fa2
add esp, 0x20
cmp eax, 2
jne 0x1002fb6e
mov edi, dword [0x100e5acc]
cmp word [edi + 0xc], 0
je 0x1002fefb
push eax
pop ecx
lea edx, [ebp - 0x128]
call fcn.10030396
mov eax, dword [ebp - 0x130]
inc eax
imul dword [0x100f3490]
push 0
push edx
push eax
push dword [edi + 8]
call fcn.10064758
mov eax, dword [0x100e5acc]
push dword [eax + 8]
lea eax, [ebp - 0x118]
push 2
push esi
push eax
call fcn.10063fa2
add esp, 0x20
cmp eax, 2
jne 0x1002fb6e
mov edi, dword [0x100e5acc]
cmp word [edi + 0xc], 0
je 0x1002ff54
push eax
pop ecx
push 8
pop esi
lea edx, [ebp - 0x118]
call fcn.10030396
fld qword [ebp - 0x128]
fld qword [edi + 0xc90]
fucompp
fnstsw ax
test ah, 0x44
jp 0x1002ff7e
fld qword [ebp - 0x110]
fld qword [edi + 0xc98]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x1002ffcd
cmp dword [ebp - 0x12c], 0
je 0x1002fb6e
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.10062ff4
add esp, 0x28
jmp 0x1002fb6e
xor esi, esi
cmp dword [ebp + 8], esi
jne 0x1002ffdb
xor eax, eax
jmp 0x10030387
fld qword [ebp + 0x20]
push ecx
fsub qword [0x100a87a0]
push ecx
fstp qword [ebp - 0x150]
fld qword [ebp - 0x150]
fstp qword [esp]
call fcn.10072490
fld qword [ebp - 0x150]
pop ecx
fsub st(1)
pop ecx
fxch st(1)
fadd qword [0x100a87a0]
fld qword [edi + 0xc90]
fcomp qword [ebp + 0x20]
fnstsw ax
test ah, 0x41
je 0x10030348
fld qword [edi + 0xc98]
fcomp qword [ebp + 0x20]
fnstsw ax
test ah, 5
jnp 0x10030348
fld st(0)
fsub qword [edi + 0xc90]
fdiv qword [edi + 0xca0]
call fcn.100722b0
fld st(0)
fld qword [edi + 0xc98]
lea ecx, [eax + 2]
fucompp
fnstsw ax
test ah, 0x44
jp 0x1003005c
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 [0x100f3480]
je 0x10030155
mov eax, dword [0x100f3490]
imul ecx
push esi
push edx
push eax
push dword [edi + 8]
mov dword [0x100f3480], ecx
call fcn.10064758
add esp, 0x10
test eax, eax
je 0x100300de
cmp dword [ebp - 0x12c], esi
je 0x1002fb6e
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.10062ff4
add esp, 0x10
jmp 0x1002fb6e
mov edi, dword [0x100e5acc]
xor eax, eax
inc eax
mov dword [ebp - 0x13c], eax
cmp dword [0x100f3494], eax
jl 0x10030155
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x130], eax
push dword [edi + 8]
push 1
push 8
push dword [ebp - 0x130]
call fcn.10063fa2
add esp, 0x10
cmp eax, 1
jne 0x100300b2
mov edi, dword [0x100e5acc]
cmp word [edi + 0xc], si
je 0x1003013a
mov edx, dword [ebp - 0x130]
xor ecx, ecx
push 8
inc ecx
pop esi
call fcn.10030396
xor esi, esi
inc dword [ebp - 0x13c]
mov eax, dword [ebp - 0x13c]
add dword [ebp - 0x130], 8
cmp eax, dword [0x100f3494]
jle 0x10030101
fld qword [edi + 0xca0]
cmp word [edi + 0x4a80], si
je 0x10030174
fmul qword [0x100a8840]
fstp qword [ebp - 0x148]
fld1
jmp 0x10030182
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.1002f738
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 0x100301ca
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 0x10030279
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.1002f738
mov eax, dword [ebp - 0x130]
add esp, 0x28
xor ecx, ecx
cmp dword [ebp - 0x12c], 9
jge 0x10030266
cmp dword [ebp + 0xc], 0
jne 0x10030266
fld qword [eax]
mov edx, dword [ebp - 0x15c]
fmul qword [ebp - 0x138]
fsub qword [edx + ecx*8]
jmp 0x1003026e
fld qword [eax]
fmul qword [ebp - 0x138]
fstp qword [eax]
inc ecx
add eax, 8
cmp ecx, 6
jl 0x10030244
inc dword [ebp - 0x12c]
add dword [ebp - 0x130], 0x30
add esi, 0xc
cmp dword [ebp - 0x12c], 0xa
jl 0x100301f8
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x28]
test ecx, ecx
jle 0x100302e3
mov eax, dword [ebx + 0x88]
test eax, eax
jle 0x100302e3
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.1002f738
add esp, 0x28
mov eax, dword [ebp + 8]
cmp dword [eax + 0x2c], 0
jle 0x1002ffd4
mov eax, dword [ebx + 0x94]
test eax, eax
jle 0x1002ffd4
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.1002f738
add esp, 0x28
jmp 0x1002ffd4
fstp st(0)
fstp st(0)
cmp dword [ebp - 0x12c], esi
je 0x10030384
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.10062ff4
add esp, 0x20
push 0xfffffffffffffffd
pop eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10062fe5
leave
ret