Function at 0x1002f0e1
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x154
mov eax, dword [0x100ba2d8]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x100e5acc]
mov ecx, dword [eax]
push ebx
push esi
push edi
push dword [eax + 4]
mov dword [ebp - 0x134], edx
push 0
call fcn.1003703e
pop ecx
pop ecx
mov ecx, dword [0x100e5acc]
mov dword [ecx + 8], eax
test eax, eax
je 0x1002f4ad
push eax
mov esi, 0xfc
push esi
lea eax, [ebp - 0x108]
push 1
push eax
call fcn.10063fa2
add esp, 0x10
cmp eax, esi
jne 0x1002f4ad
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 0x1002f4ad
mov eax, dword [0x100e5acc]
push dword [eax + 8]
lea eax, [ebp - 0x130]
push 3
pop esi
push esi
push 8
push eax
call fcn.10063fa2
add esp, 0x10
cmp eax, esi
jne 0x1002f4ad
fld1
fcomp qword [ebp - 0x120]
fnstsw ax
test ah, 0x41
je 0x1002f1b2
fld qword [0x100aa160]
fcomp qword [ebp - 0x120]
fnstsw ax
test ah, 5
jnp 0x1002f1b2
xor eax, eax
jmp 0x1002f1b5
xor eax, eax
inc eax
mov ebx, dword [0x100e5acc]
mov word [ebx + 0xc], ax
xor eax, eax
lea ecx, [ebx + 0xc90]
fld qword [ebp + eax*8 - 0x130]
inc eax
fstp qword [ecx]
add ecx, 8
cmp eax, esi
jl 0x1002f1c7
cmp word [ebx + 0xc], 0
je 0x1002f1ef
mov ecx, esi
push 8
pop esi
lea edx, [ebx + 0xc90]
call fcn.10030396
fld qword [0x100aa158]
fcomp qword [ebx + 0xc90]
fnstsw ax
test ah, 0x41
je 0x1002f453
fld qword [0x100aa150]
fcomp qword [ebx + 0xc98]
fnstsw ax
test ah, 5
jnp 0x1002f453
fld1
fcomp qword [ebx + 0xca0]
fnstsw ax
test ah, 0x41
je 0x1002f453
fld qword [0x100aa160]
fcomp qword [ebx + 0xca0]
fnstsw ax
test ah, 5
jnp 0x1002f453
push dword [ebx + 8]
xor edi, edi
inc edi
push edi
push 4
pop esi
lea eax, [ebp - 0x140]
push esi
push eax
call fcn.10063fa2
add esp, 0x10
cmp eax, edi
jne 0x1002f4ad
mov ebx, dword [0x100e5acc]
cmp word [ebx + 0xc], 0
je 0x1002f283
mov ecx, edi
lea edx, [ebp - 0x140]
call fcn.10030396
push dword [ebx + 8]
lea eax, [ebp - 0x148]
push edi
push 8
pop esi
push esi
push eax
call fcn.10063fa2
add esp, 0x10
cmp eax, edi
jne 0x1002f4ad
mov ebx, dword [0x100e5acc]
cmp word [ebx + 0xc], 0
je 0x1002f2bc
mov ecx, edi
lea edx, [ebp - 0x148]
call fcn.10030396
push dword [ebx + 8]
lea eax, [ebp - 0x150]
push edi
push 8
pop esi
push esi
push eax
call fcn.10063fa2
add esp, 0x10
cmp eax, edi
jne 0x1002f4ad
mov ebx, dword [0x100e5acc]
cmp word [ebx + 0xc], 0
je 0x1002f2f5
mov ecx, edi
lea edx, [ebp - 0x150]
call fcn.10030396
push dword [ebx + 8]
add ebx, 0xcc0
push 0x24
push 4
pop esi
push esi
push ebx
call fcn.10063fa2
add esp, 0x10
push 0x24
pop ecx
cmp eax, ecx
jne 0x1002f4ad
mov ebx, dword [0x100e5acc]
cmp word [ebx + 0xc], 0
je 0x1002f330
lea edx, [ebx + 0xcc0]
call fcn.10030396
push dword [ebx + 8]
lea eax, [ebp - 0x13c]
push edi
push 4
pop esi
push esi
push eax
call fcn.10063fa2
add esp, 0x10
cmp eax, edi
jne 0x1002f4ad
mov ebx, dword [0x100e5acc]
cmp word [ebx + 0xc], 0
je 0x1002f369
mov ecx, edi
lea edx, [ebp - 0x13c]
call fcn.10030396
push dword [ebx + 8]
lea eax, [ebp - 0x114]
push 3
push 4
pop esi
push esi
push eax
call fcn.10063fa2
add esp, 0x10
cmp eax, 3
jne 0x1002f4ad
mov ebx, dword [0x100e5acc]
cmp word [ebx + 0xc], 0
je 0x1002f3a4
push eax
pop ecx
lea edx, [ebp - 0x114]
call fcn.10030396
xor esi, esi
xor ecx, ecx
lea eax, [ebx + 0xd50]
mov edx, dword [ebp + ecx*4 - 0x114]
mov dword [eax], edx
inc ecx
add eax, 4
cmp ecx, 3
jl 0x1002f3ae
push dword [ebx + 8]
call fcn.100645fe
mov eax, dword [0x100e5acc]
pop ecx
mov dword [ebp - 0x138], esi
xor edx, edx
lea ecx, [eax + 0xcc0]
mov edi, dword [ecx]
cmp edi, dword [ebp - 0x138]
jle 0x1002f3ef
mov dword [ebp - 0x138], edi
lea edx, [esi + 1]
inc esi
add ecx, 0xc
cmp esi, 0xd
jl 0x1002f3dc
xor ecx, ecx
cmp edx, 0xc
setne cl
lea esi, [ecx + 2]
mov ecx, edx
imul ecx, ecx, 0xc
mov edi, dword [ecx + eax + 0xcbc]
imul edi, dword [ecx + eax + 0xcb8]
add edx, 0x10f
imul edi, esi
imul edx, edx, 0xc
add edi, dword [edx + eax]
lea eax, [edi + edi - 2]
cmp eax, 0x60a
jne 0x1002f434
add eax, 0x6a
lea ecx, [eax - 0x3e8]
cmp ecx, 0xfa0
jbe 0x1002f4b0
cmp dword [ebp - 0x134], 0
je 0x1002f4ad
push eax
push str.JPL_ephemeris_file_does_not_provide_valid_ksize___d_
jmp 0x1002f49f
mov edi, dword [ebp - 0x134]
test edi, edi
je 0x1002f4ad
mov eax, dword [ebp - 0x134]
push 0xa
pop ecx
mov esi, str.alleged_ephemeris_file_has_invalid_format.
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1002f473
mov ebx, dword [ebx]
sub eax, esi
mov ecx, ebx
mov edi, eax
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1002f485
sub ecx, esi
lea eax, [ecx + edi + 3]
cmp eax, 0x100
jae 0x1002f4ad
push ebx
push str.alleged_ephemeris_file___s__has_invalid_format.
push dword [ebp - 0x134]
call fcn.10062ff4
add esp, 0xc
push 0xfffffffffffffffe
pop eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10062fe5
leave
ret