Function at 0x1003aff1
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x418
mov eax, dword [0x100ba2d8]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x3fc], edi
imul edi, edi, 0x220
mov dword [ebp - 0x3f4], eax
add edi, 0x100ee648
mov eax, dword [edi + 0x13c]
push eax
mov dword [ebp - 0x3f0], eax
lea eax, [ebp - 0x24c]
push 0x100
push eax
mov ebx, 0x10092a18
mov dword [ebp - 0x404], 2
call fcn.100637ee
add esp, 0xc
test eax, eax
je 0x1003bb0a
push 0x100a2a6c
push eax
call fcn.100648a0
pop ecx
pop ecx
test eax, eax
je 0x1003bb0a
lea eax, [ebp - 0x24c]
push 0xd
push eax
call fcn.10064940
mov byte [eax], 0
movsx eax, byte [ebp - 0x24c]
push eax
lea esi, [ebp - 0x24c]
call fcn.1006502b
add esp, 0xc
jmp 0x1003b0aa
cmp byte [esi], 0
je 0x1003b0b3
inc esi
movsx eax, byte [esi]
push eax
call fcn.1006502b
pop ecx
test eax, eax
je 0x1003b09a
cmp byte [esi], 0
jne 0x1003b0bd
mov ebx, 0x100a2a70
jmp 0x1003bb0a
push esi
call fcn.100637e3
push dword [ebp - 0x3f0]
mov dword [edi + 0x100], eax
mov ebx, 0x100
lea eax, [ebp - 0x24c]
push ebx
push eax
call fcn.100637ee
add esp, 0x10
test eax, eax
je 0x1003bb05
push 0x100a2a6c
push eax
call fcn.100648a0
pop ecx
pop ecx
test eax, eax
je 0x1003bb05
push 0x5c
push edi
call fcn.10065190
pop ecx
pop ecx
test eax, eax
jne 0x1003b113
mov eax, edi
jmp 0x1003b114
inc eax
lea edx, [ebp - 0x34c]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x1003b11c
lea esi, [ebp - 0x34c]
cmp byte [ebp - 0x34c], cl
je 0x1003b146
movsx eax, byte [esi]
push eax
call fcn.10064b13
mov byte [esi], al
inc esi
cmp byte [esi], 0
pop ecx
jne 0x1003b134
lea eax, [ebp - 0x24c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003b14f
sub eax, edx
lea eax, [ebp + eax - 0x24d]
mov cl, byte [eax]
cmp cl, 0xa
je 0x1003b170
cmp cl, 0xd
je 0x1003b170
cmp cl, 0x20
jne 0x1003b176
mov byte [eax], 0
dec eax
jmp 0x1003b15f
cmp byte [ebp - 0x24c], 0
lea esi, [ebp - 0x24c]
je 0x1003b197
movsx eax, byte [esi]
push eax
call fcn.10064b13
mov byte [esi], al
inc esi
cmp byte [esi], 0
pop ecx
jne 0x1003b185
lea ecx, [ebp - 0x24c]
lea eax, [ebp - 0x34c]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1003b1c3
test dl, dl
je 0x1003b1bf
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1003b1c3
add eax, 2
add ecx, 2
test dl, dl
jne 0x1003b1a3
xor eax, eax
jmp 0x1003b1c8
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1003b1f1
cmp dword [ebp - 0x3f4], 0
je 0x1003bb5a
lea eax, [ebp - 0x24c]
push eax
lea eax, [ebp - 0x34c]
push eax
push str.Ephemeris_file_name__s_wrong__rename__s
jmp 0x1003bb4c
push dword [ebp - 0x3f0]
lea eax, [ebp - 0x24c]
push ebx
push eax
call fcn.100637ee
add esp, 0xc
test eax, eax
je 0x1003bafe
push 0x100a2a6c
push eax
call fcn.100648a0
pop ecx
pop ecx
test eax, eax
je 0x1003bafe
cmp dword [ebp - 0x3fc], 3
jne 0x1003b36a
push dword [ebp - 0x3f0]
lea eax, [ebp - 0x24c]
push 0x200
push eax
call fcn.100637ee
mov esi, eax
add esp, 0xc
test esi, esi
je 0x1003b262
push 0x100a2a6c
push esi
call fcn.100648a0
pop ecx
pop ecx
test eax, eax
jne 0x1003b26d
mov ebx, 0x1007a330
jmp 0x1003bb0a
inc esi
cmp byte [esi], 0x20
je 0x1003b26c
jmp 0x1003b275
inc esi
movsx eax, byte [esi]
push eax
call fcn.1006502b
pop ecx
test eax, eax
jne 0x1003b274
lea eax, [ebp - 0x24c]
sub esi, eax
lea ebx, [esi + 1]
lea esi, [ebx + 0x13]
push esi
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.10064ea0
add esp, 0xc
mov byte [ebp + esi - 0x48], 0
xor eax, eax
mov cl, byte [ebp + eax - 0x24c]
mov byte [eax + 0x100edb80], cl
inc eax
test cl, cl
jne 0x1003b2a6
lea eax, [ebp + ebx - 0x229]
push eax
call fcn.10063594
fstp qword [0x100edb70]
lea eax, [ebp + ebx - 0x222]
push eax
call fcn.10063594
fst qword [0x100edb68]
fldz
pop ecx
fucompp
pop ecx
fnstsw ax
test ah, 0x44
jp 0x1003b2f7
fld qword [0x100a9ed0]
fstp qword [0x100edb68]
push 7
lea eax, [ebp + ebx - 0x219]
push eax
lea eax, [ebp - 0x34c]
push eax
call fcn.10064ea0
lea eax, [ebp - 0x34c]
push eax
mov byte [ebp - 0x345], 0
call fcn.10063594
fst qword [0x100edb78]
fldz
add esp, 0x10
fucompp
fnstsw ax
test ah, 0x44
jp 0x1003b36a
fld qword [0x100edb70]
fmul qword [0x100a9ec8]
fld qword [0x100a9398]
fxch st(1)
call fcn.10072ab0
fstp qword [ebp - 0x1c]
fld qword [0x100a9ed0]
call fcn.100725c0
fdivr qword [0x100a9ec0]
fmul qword [ebp - 0x1c]
fstp qword [0x100edb78]
push dword [ebp - 0x3f0]
lea eax, [ebp - 0x40c]
push 1
push 4
pop esi
push esi
push eax
call fcn.10063fa2
add esp, 0x10
cmp eax, 1
je 0x1003b394
mov ebx, str.efgjkln
jmp 0x1003bb0a
mov edx, 0x616263
cmp dword [ebp - 0x40c], edx
jne 0x1003b42d
and dword [ebp - 0x400], 0
mov dword [ebp - 0x3f8], 1
push dword [ebp - 0x3fc]
mov eax, dword [ebp - 0x3f8]
push dword [ebp - 0x3f8]
or eax, dword [ebp - 0x400]
push dword [ebp - 0x400]
mov ecx, dword [ebp - 0x3f4]
push 0xffffffffffffffff
push dword [ebp - 0x3f0]
mov dword [edi + 0x150], eax
push esi
lea eax, [ebp - 0x408]
push 1
push eax
mov edx, esi
call fcn.1003bb84
add esp, 0x20
test eax, eax
jne 0x1003bb5a
mov esi, dword [ebp - 0x3f0]
push esi
call fcn.10065351
push 2
push 0
push esi
mov ebx, eax
call fcn.10064049
add esp, 0x10
test eax, eax
je 0x1003b479
mov ebx, 0x100a2aac
jmp 0x1003bb0a
mov dword [ebp - 0x400], 2
xor ecx, ecx
lea eax, [ebp - 0x409]
mov bl, byte [eax]
mov byte [ebp + ecx - 0x408], bl
inc ecx
dec eax
cmp ecx, esi
jl 0x1003b43f
cmp dword [ebp - 0x408], edx
je 0x1003b460
mov ebx, 0x100a2aa8
jmp 0x1003bb0a
cmp byte [ebp - 0x40c], 0
jne 0x1003b3ac
and dword [ebp - 0x3f8], 0
jmp 0x1003b3b6
push esi
call fcn.10065351
pop ecx
cmp dword [ebp - 0x408], eax
je 0x1003b492
mov ebx, 0x1007a350
jmp 0x1003bb0a
push dword [ebp - 0x3fc]
mov ecx, dword [ebp - 0x3f4]
push dword [ebp - 0x3f8]
lea eax, [edi + 0x138]
push dword [ebp - 0x400]
push ebx
push esi
push 4
pop edx
push edx
push 1
push eax
call fcn.1003bb84
add esp, 0x20
test eax, eax
jne 0x1003bb5a
push dword [ebp - 0x3fc]
mov ecx, dword [ebp - 0x3f4]
push dword [ebp - 0x3f8]
lea eax, [edi + 0x140]
push dword [ebp - 0x400]
push 0xffffffffffffffff
push esi
push 8
pop edx
push edx
push 1
push eax
call fcn.1003bb84
add esp, 0x20
test eax, eax
jne 0x1003bb5a
push dword [ebp - 0x3fc]
mov ecx, dword [ebp - 0x3f4]
push dword [ebp - 0x3f8]
lea eax, [edi + 0x148]
push dword [ebp - 0x400]
push 0xffffffffffffffff
push esi
push 8
pop edx
push edx
push 1
push eax
call fcn.1003bb84
add esp, 0x20
test eax, eax
jne 0x1003bb5a
push dword [ebp - 0x3fc]
mov ecx, dword [ebp - 0x3f4]
push dword [ebp - 0x3f8]
lea eax, [ebp - 0x410]
push dword [ebp - 0x400]
push 0xffffffffffffffff
push esi
push 2
pop edx
push edx
push 1
push eax
call fcn.1003bb84
add esp, 0x20
test eax, eax
jne 0x1003bb5a
mov eax, dword [ebp - 0x410]
mov ecx, 0x100
cmp ax, cx
jle 0x1003b5a3
cwde
and eax, 0x800000ff
mov dword [ebp - 0x404], 4
jns 0x1003b59a
dec eax
or eax, 0xffffff00
inc eax
movzx eax, ax
mov dword [ebp - 0x410], eax
lea ecx, [eax - 1]
cmp cx, 0x13
ja 0x1003baf7
push dword [ebp - 0x3fc]
mov edx, dword [ebp - 0x404]
push dword [ebp - 0x3f8]
mov word [edi + 0x154], ax
push dword [ebp - 0x400]
cwde
push 0xffffffffffffffff
push esi
push 4
lea ecx, [edi + 0x158]
push eax
push ecx
mov ecx, dword [ebp - 0x3f4]
call fcn.1003bb84
add esp, 0x20
test eax, eax
jne 0x1003bb5a
cmp dword [ebp - 0x3fc], 3
jne 0x1003b6ed
cmp byte [ebp - 0x44], 0x20
push 4
pop esi
je 0x1003b616
cmp esi, 0xa
jge 0x1003b616
inc esi
cmp byte [ebp + esi - 0x48], 0x20
jne 0x1003b609
push esi
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.10064ea0
lea eax, [ebp - 0x1c]
push eax
mov byte [ebp + esi - 0x1c], 0
call fcn.100637cd
mov ecx, dword [edi + 0x158]
lea edx, [ecx - 0x2710]
add esp, 0x10
cmp eax, edx
je 0x1003b671
cmp eax, ecx
je 0x1003b671
push dword [ebp - 0x3f0]
lea ebx, [edi + 0x104]
push 1
push 0x1e
push ebx
call fcn.10063fa2
add esp, 0x10
cmp eax, 1
je 0x1003b6b3
mov ebx, 0x100a2ab4
jmp 0x1003bb0a
push 0x13
lea eax, [ebp + esi - 0x47]
push eax
lea ebx, [edi + 0x104]
push ebx
call fcn.10064ea0
push dword [ebp - 0x3f0]
lea eax, [ebp - 0x24c]
push 1
push 0x1e
push eax
mov byte [edi + 0x117], 0
call fcn.10063fa2
add esp, 0x1c
cmp eax, 1
je 0x1003b6b3
mov ebx, 0x100a2ab0
jmp 0x1003bb0a
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003b6b8
sub eax, edx
dec eax
jns 0x1003b6c6
xor eax, eax
lea eax, [eax + edi + 0x104]
jmp 0x1003b6d0
dec eax
cmp byte [eax], 0x20
je 0x1003b6cf
push 0x10098894
push ebx
mov byte [eax + 1], 0
call fcn.100648a0
pop ecx
pop ecx
test eax, eax
je 0x1003b6ed
mov byte [eax], 0
push dword [ebp - 0x3f0]
call fcn.10065351
push dword [ebp - 0x3fc]
mov ecx, dword [ebp - 0x3f4]
push dword [ebp - 0x3f8]
mov esi, eax
push dword [ebp - 0x400]
lea eax, [ebp - 0x414]
push 0xffffffffffffffff
push dword [ebp - 0x3f0]
push 4
pop edx
push edx
push 1
push eax
call fcn.1003bb84
add esp, 0x24
test eax, eax
jne 0x1003bb5a
mov ebx, dword [ebp - 0x3f0]
push eax
push eax
push ebx
call fcn.10064049
lea eax, [esi - 1]
add esp, 0xc
cmp eax, 0x200
jle 0x1003b75c
mov ebx, 0x100a2ab8
jmp 0x1003bb0a
push ebx
push 1
lea eax, [ebp - 0x24c]
push esi
push eax
call fcn.10063fa2
add esp, 0x10
cmp eax, 1
je 0x1003b77e
mov ebx, 0x1009f938
jmp 0x1003bb0a
lea eax, [ebp - 0x24c]
push esi
push eax
call fcn.10045756
pop ecx
pop ecx
cmp eax, dword [ebp - 0x414]
je 0x1003b79f
mov ebx, 0x100a2abc
jmp 0x1003bb0a
push 0
add esi, 4
push esi
push ebx
call fcn.10064049
push dword [ebp - 0x3fc]
mov ecx, dword [ebp - 0x3f4]
push dword [ebp - 0x3f8]
lea eax, [ebp - 0x3ec]
push dword [ebp - 0x400]
push 0xffffffffffffffff
push ebx
push 8
pop edx
push edx
push 5
push eax
call fcn.1003bb84
add esp, 0x2c
test eax, eax
jne 0x1003bb5a
fld qword [ebp - 0x3ec]
and dword [ebp - 0x404], eax
fstp qword [0x100ef528]
fld qword [ebp - 0x3e4]
fstp qword [0x100ef530]
fld qword [ebp - 0x3dc]
fstp qword [0x100ef538]
fld qword [ebp - 0x3d4]
fstp qword [0x100ef540]
fld qword [ebp - 0x3cc]
fstp qword [0x100ef548]
cmp ax, word [edi + 0x154]
jge 0x1003bae1
lea eax, [edi + 0x158]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov ebx, dword [eax]
cmp ebx, 0x2710
jge 0x1003b850
cmp ebx, 0x2328
jl 0x1003b857
mov esi, 0x100f06d8
jmp 0x1003b865
mov esi, ebx
imul esi, esi, 0x198
add esi, 0x100ef550
push dword [ebp - 0x3fc]
mov ecx, dword [ebp - 0x3f4]
push dword [ebp - 0x3f8]
lea eax, [esi + 0xc]
push dword [ebp - 0x400]
mov dword [esi], ebx
push 0xffffffffffffffff
push dword [ebp - 0x3f0]
push 4
pop edx
push edx
push 1
push eax
call fcn.1003bb84
add esp, 0x20
test eax, eax
jne 0x1003bb5a
push dword [ebp - 0x3fc]
mov ecx, dword [ebp - 0x3f4]
push dword [ebp - 0x3f8]
xor edx, edx
push dword [ebp - 0x400]
inc edx
push 0xffffffffffffffff
push dword [ebp - 0x3f0]
lea eax, [esi + 4]
push 4
push edx
push eax
call fcn.1003bb84
add esp, 0x20
test eax, eax
jne 0x1003bb5a
push dword [ebp - 0x3fc]
mov ecx, dword [ebp - 0x3f4]
push dword [ebp - 0x3f8]
xor edx, edx
push dword [ebp - 0x400]
inc edx
push 0xffffffffffffffff
push dword [ebp - 0x3f0]
lea eax, [esi + 8]
push 4
push edx
push eax
call fcn.1003bb84
add esp, 0x20
test eax, eax
jne 0x1003bb5a
push dword [ebp - 0x3fc]
mov ecx, dword [ebp - 0x3f4]
push dword [ebp - 0x3f8]
lea eax, [ebp - 0x408]
push dword [ebp - 0x400]
push 0xffffffffffffffff
push dword [ebp - 0x3f0]
push 4
pop edx
push edx
push 1
push eax
call fcn.1003bb84
add esp, 0x20
test eax, eax
jne 0x1003bb5a
fild dword [ebp - 0x408]
lea ecx, [ebx - 0x2328]
fld qword [0x100a9bf8]
fdivr st(1)
fstp qword [esi + 0x58]
cmp ecx, 0x3e7
ja 0x1003b995
mov eax, ebx
push 0x64
cdq
pop ebx
idiv ebx
cmp edx, 0x63
je 0x1003b98a
mov eax, ecx
push ebx
cdq
pop ecx
idiv ecx
cmp eax, 4
jne 0x1003b995
fdiv qword [0x100a9eb8]
fstp qword [esi + 0x58]
jmp 0x1003b997
fstp st(0)
push dword [ebp - 0x3fc]
mov ecx, dword [ebp - 0x3f4]
push dword [ebp - 0x3f8]
lea eax, [ebp - 0x3ec]
push dword [ebp - 0x400]
push 0xffffffffffffffff
push dword [ebp - 0x3f0]
push 8
pop edx
push edx
push 0xa
push eax
call fcn.1003bb84
add esp, 0x20
test eax, eax
jne 0x1003bb5a
fld qword [ebp - 0x3ec]
fstp qword [esi + 0x18]
fld qword [ebp - 0x3e4]
fstp qword [esi + 0x20]
fld qword [ebp - 0x3dc]
fstp qword [esi + 0x28]
fld qword [ebp - 0x3e4]
fsub qword [ebp - 0x3ec]
fadd qword [0x100a9090]
fdiv qword [ebp - 0x3dc]
call fcn.100722b0
fld qword [ebp - 0x3d4]
test byte [esi + 4], 4
fstp qword [esi + 0x30]
fld qword [ebp - 0x3cc]
mov dword [esi + 0x10], eax
fstp qword [esi + 0x38]
fld qword [ebp - 0x3c4]
fstp qword [esi + 0x48]
fld qword [ebp - 0x3bc]
fstp qword [esi + 0x40]
fld qword [ebp - 0x3b4]
fstp qword [esi + 0x50]
fld qword [ebp - 0x3ac]
fstp qword [esi + 0x60]
fld qword [ebp - 0x3a4]
fstp qword [esi + 0x68]
je 0x1003bac4
mov eax, dword [esi + 0x70]
test eax, eax
je 0x1003ba7e
push eax
call fcn.10063a5a
mov eax, dword [esi + 0x88]
and dword [esi + 0x70], 0
pop ecx
test eax, eax
je 0x1003ba7e
push eax
call fcn.10063a5a
and dword [esi + 0x88], 0
pop ecx
mov ebx, dword [esi + 8]
mov eax, ebx
shl eax, 4
push eax
call fcn.10063b90
push dword [ebp - 0x3fc]
lea ecx, [ebx + ebx]
push dword [ebp - 0x3f8]
mov dword [esi + 0x70], eax
push dword [ebp - 0x400]
push 0xffffffffffffffff
push dword [ebp - 0x3f0]
push 8
pop edx
push edx
push ecx
mov ecx, dword [ebp - 0x3f4]
push eax
call fcn.1003bb84
add esp, 0x24
test eax, eax
jne 0x1003bae8
movsx eax, word [edi + 0x154]
inc dword [ebp - 0x404]
add dword [ebp - 0x14], 4
cmp dword [ebp - 0x404], eax
jl 0x1003b83b
xor eax, eax
jmp 0x1003bb75
push dword [esi + 0x70]
call fcn.10063a5a
and dword [esi + 0x70], 0
pop ecx
jmp 0x1003bb5a
mov ebx, 0x1007a344
jmp 0x1003bb0a
mov ebx, 0x1007a34c
jmp 0x1003bb0a
mov ebx, 0x100a021c
cmp dword [ebp - 0x3f4], 0
je 0x1003bb5a
mov eax, dword [ebp - 0x3f4]
mov byte [eax], 0
mov eax, edi
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x1003bb21
sub eax, ecx
mov ecx, ebx
mov esi, eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1003bb31
sub ecx, edx
lea eax, [ecx + esi + 0x24]
cmp eax, 0x100
jae 0x1003bb5a
push ebx
push edi
push str.Ephemeris_file__s_is_damaged__0_s_.
push dword [ebp - 0x3f4]
call fcn.10062ff4
add esp, 0x10
push dword [edi + 0x13c]
call fcn.10063665
and dword [edi + 0x13c], 0
pop ecx
call fcn.10035659
or eax, 0xffffffff
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10062fe5
leave
ret