Function at 0x1003cfb9
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x418
mov eax, dword [0x100c77f4]
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, 0x100fc248
mov eax, dword [edi + 0x13c]
push eax
mov dword [ebp - 0x3f0], eax
lea eax, [ebp - 0x24c]
push 0x100
push eax
mov ebx, 0x10086815
mov dword [ebp - 0x404], 2
call fcn.10068c0f
add esp, 0xc
test eax, eax
je 0x1003dad2
push 0x100aeccc
push eax
call fcn.10069c50
pop ecx
pop ecx
test eax, eax
je 0x1003dad2
lea eax, [ebp - 0x24c]
push 0xd
push eax
call fcn.10069cf0
mov byte [eax], 0
movsx eax, byte [ebp - 0x24c]
push eax
lea esi, [ebp - 0x24c]
call fcn.1006a4c3
add esp, 0xc
jmp 0x1003d072
cmp byte [esi], 0
je 0x1003d07b
inc esi
movsx eax, byte [esi]
push eax
call fcn.1006a4c3
pop ecx
test eax, eax
je 0x1003d062
cmp byte [esi], 0
jne 0x1003d085
mov ebx, 0x100aecd0
jmp 0x1003dad2
push esi
call fcn.10068c04
push dword [ebp - 0x3f0]
mov dword [edi + 0x100], eax
mov ebx, 0x100
lea eax, [ebp - 0x24c]
push ebx
push eax
call fcn.10068c0f
add esp, 0x10
test eax, eax
je 0x1003dacd
push 0x100aeccc
push eax
call fcn.10069c50
pop ecx
pop ecx
test eax, eax
je 0x1003dacd
push 0x5c
push edi
call fcn.1006a630
pop ecx
pop ecx
test eax, eax
jne 0x1003d0db
mov eax, edi
jmp 0x1003d0dc
inc eax
lea edx, [ebp - 0x34c]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x1003d0e4
lea esi, [ebp - 0x34c]
cmp byte [ebp - 0x34c], cl
je 0x1003d10e
movsx eax, byte [esi]
push eax
call fcn.10069ec3
mov byte [esi], al
inc esi
cmp byte [esi], 0
pop ecx
jne 0x1003d0fc
lea eax, [ebp - 0x24c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003d117
sub eax, edx
lea eax, [ebp + eax - 0x24d]
mov cl, byte [eax]
cmp cl, 0xa
je 0x1003d138
cmp cl, 0xd
je 0x1003d138
cmp cl, 0x20
jne 0x1003d13e
mov byte [eax], 0
dec eax
jmp 0x1003d127
cmp byte [ebp - 0x24c], 0
lea esi, [ebp - 0x24c]
je 0x1003d15f
movsx eax, byte [esi]
push eax
call fcn.10069ec3
mov byte [esi], al
inc esi
cmp byte [esi], 0
pop ecx
jne 0x1003d14d
lea ecx, [ebp - 0x24c]
lea eax, [ebp - 0x34c]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1003d18b
test dl, dl
je 0x1003d187
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1003d18b
add eax, 2
add ecx, 2
test dl, dl
jne 0x1003d16b
xor eax, eax
jmp 0x1003d190
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1003d1b9
cmp dword [ebp - 0x3f4], 0
je 0x1003db22
lea eax, [ebp - 0x24c]
push eax
lea eax, [ebp - 0x34c]
push eax
push str.Ephemeris_file_name__s_wrong__rename__s
jmp 0x1003db14
push dword [ebp - 0x3f0]
lea eax, [ebp - 0x24c]
push ebx
push eax
call fcn.10068c0f
add esp, 0xc
test eax, eax
je 0x1003dac6
push 0x100aeccc
push eax
call fcn.10069c50
pop ecx
pop ecx
test eax, eax
je 0x1003dac6
cmp dword [ebp - 0x3fc], 3
jne 0x1003d332
push dword [ebp - 0x3f0]
lea eax, [ebp - 0x24c]
push 0x200
push eax
call fcn.10068c0f
mov esi, eax
add esp, 0xc
test esi, esi
je 0x1003d22a
push 0x100aeccc
push esi
call fcn.10069c50
pop ecx
pop ecx
test eax, eax
jne 0x1003d235
mov ebx, 0x100864f0
jmp 0x1003dad2
inc esi
cmp byte [esi], 0x20
je 0x1003d234
jmp 0x1003d23d
inc esi
movsx eax, byte [esi]
push eax
call fcn.1006a4c3
pop ecx
test eax, eax
jne 0x1003d23c
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.1006a250
add esp, 0xc
mov byte [ebp + esi - 0x48], 0
xor eax, eax
mov cl, byte [ebp + eax - 0x24c]
mov byte [eax + 0x100fb780], cl
inc eax
test cl, cl
jne 0x1003d26e
lea eax, [ebp + ebx - 0x229]
push eax
call fcn.100682b8
fstp qword [0x100fb770]
lea eax, [ebp + ebx - 0x222]
push eax
call fcn.100682b8
fst qword [0x100fb768]
fldz
pop ecx
fucompp
pop ecx
fnstsw ax
test ah, 0x44
jp 0x1003d2bf
fld qword [0x100b60a0]
fstp qword [0x100fb768]
push 7
lea eax, [ebp + ebx - 0x219]
push eax
lea eax, [ebp - 0x34c]
push eax
call fcn.1006a250
lea eax, [ebp - 0x34c]
push eax
mov byte [ebp - 0x345], 0
call fcn.100682b8
fst qword [0x100fb778]
fldz
add esp, 0x10
fucompp
fnstsw ax
test ah, 0x44
jp 0x1003d332
fld qword [0x100fb770]
fmul qword [0x100b6098]
fld qword [0x100b5568]
fxch st(1)
call fcn.1007dc40
fstp qword [ebp - 0x1c]
fld qword [0x100b60a0]
call fcn.1007d750
fdivr qword [0x100b6090]
fmul qword [ebp - 0x1c]
fstp qword [0x100fb778]
push dword [ebp - 0x3f0]
lea eax, [ebp - 0x40c]
push 1
push 4
pop esi
push esi
push eax
call fcn.10069356
add esp, 0x10
cmp eax, 1
je 0x1003d35c
mov ebx, 0x100867f8
jmp 0x1003dad2
mov edx, 0x616263
cmp dword [ebp - 0x40c], edx
jne 0x1003d3f5
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.1003db4c
add esp, 0x20
test eax, eax
jne 0x1003db22
mov esi, dword [ebp - 0x3f0]
push esi
call fcn.1006a7f1
push 2
push 0
push esi
mov ebx, eax
call fcn.100693fd
add esp, 0x10
test eax, eax
je 0x1003d441
mov ebx, 0x100aed08
jmp 0x1003dad2
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 0x1003d407
cmp dword [ebp - 0x408], edx
je 0x1003d428
mov ebx, str.fgjkln
jmp 0x1003dad2
cmp byte [ebp - 0x40c], 0
jne 0x1003d374
and dword [ebp - 0x3f8], 0
jmp 0x1003d37e
push esi
call fcn.1006a7f1
pop ecx
cmp dword [ebp - 0x408], eax
je 0x1003d45a
mov ebx, 0x10086514
jmp 0x1003dad2
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.1003db4c
add esp, 0x20
test eax, eax
jne 0x1003db22
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.1003db4c
add esp, 0x20
test eax, eax
jne 0x1003db22
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.1003db4c
add esp, 0x20
test eax, eax
jne 0x1003db22
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.1003db4c
add esp, 0x20
test eax, eax
jne 0x1003db22
mov eax, dword [ebp - 0x410]
mov ecx, 0x100
cmp ax, cx
jle 0x1003d56b
cwde
and eax, 0x800000ff
mov dword [ebp - 0x404], 4
jns 0x1003d562
dec eax
or eax, 0xffffff00
inc eax
movzx eax, ax
mov dword [ebp - 0x410], eax
lea ecx, [eax - 1]
cmp cx, 0x13
ja 0x1003dabf
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.1003db4c
add esp, 0x20
test eax, eax
jne 0x1003db22
cmp dword [ebp - 0x3fc], 3
jne 0x1003d6b5
cmp byte [ebp - 0x44], 0x20
push 4
pop esi
je 0x1003d5de
cmp esi, 0xa
jge 0x1003d5de
inc esi
cmp byte [ebp + esi - 0x48], 0x20
jne 0x1003d5d1
push esi
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.1006a250
lea eax, [ebp - 0x1c]
push eax
mov byte [ebp + esi - 0x1c], 0
call fcn.10068bee
mov ecx, dword [edi + 0x158]
lea edx, [ecx - 0x2710]
add esp, 0x10
cmp eax, edx
je 0x1003d639
cmp eax, ecx
je 0x1003d639
push dword [ebp - 0x3f0]
lea ebx, [edi + 0x104]
push 1
push 0x1e
push ebx
call fcn.10069356
add esp, 0x10
cmp eax, 1
je 0x1003d67b
mov ebx, 0x100aed10
jmp 0x1003dad2
push 0x13
lea eax, [ebp + esi - 0x47]
push eax
lea ebx, [edi + 0x104]
push ebx
call fcn.1006a250
push dword [ebp - 0x3f0]
lea eax, [ebp - 0x24c]
push 1
push 0x1e
push eax
mov byte [edi + 0x117], 0
call fcn.10069356
add esp, 0x1c
cmp eax, 1
je 0x1003d67b
mov ebx, 0x100aed0c
jmp 0x1003dad2
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003d680
sub eax, edx
dec eax
jns 0x1003d68e
xor eax, eax
lea eax, [eax + edi + 0x104]
jmp 0x1003d698
dec eax
cmp byte [eax], 0x20
je 0x1003d697
push 0x100a4b00
push ebx
mov byte [eax + 1], 0
call fcn.10069c50
pop ecx
pop ecx
test eax, eax
je 0x1003d6b5
mov byte [eax], 0
push dword [ebp - 0x3f0]
call fcn.1006a7f1
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.1003db4c
add esp, 0x24
test eax, eax
jne 0x1003db22
mov ebx, dword [ebp - 0x3f0]
push eax
push eax
push ebx
call fcn.100693fd
lea eax, [esi - 1]
add esp, 0xc
cmp eax, 0x200
jle 0x1003d724
mov ebx, 0x100aed14
jmp 0x1003dad2
push ebx
push 1
lea eax, [ebp - 0x24c]
push esi
push eax
call fcn.10069356
add esp, 0x10
cmp eax, 1
je 0x1003d746
mov ebx, 0x100abb98
jmp 0x1003dad2
lea eax, [ebp - 0x24c]
push esi
push eax
call fcn.1004772e
pop ecx
pop ecx
cmp eax, dword [ebp - 0x414]
je 0x1003d767
mov ebx, 0x100aed18
jmp 0x1003dad2
push 0
add esi, 4
push esi
push ebx
call fcn.100693fd
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.1003db4c
add esp, 0x2c
test eax, eax
jne 0x1003db22
fld qword [ebp - 0x3ec]
and dword [ebp - 0x404], eax
fstp qword [0x100fd128]
fld qword [ebp - 0x3e4]
fstp qword [0x100fd130]
fld qword [ebp - 0x3dc]
fstp qword [0x100fd138]
fld qword [ebp - 0x3d4]
fstp qword [0x100fd140]
fld qword [ebp - 0x3cc]
fstp qword [0x100fd148]
cmp ax, word [edi + 0x154]
jge 0x1003daa9
lea eax, [edi + 0x158]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov ebx, dword [eax]
cmp ebx, 0x2710
jge 0x1003d818
cmp ebx, 0x2328
jl 0x1003d81f
mov esi, 0x100fe2d8
jmp 0x1003d82d
mov esi, ebx
imul esi, esi, 0x198
add esi, 0x100fd150
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.1003db4c
add esp, 0x20
test eax, eax
jne 0x1003db22
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.1003db4c
add esp, 0x20
test eax, eax
jne 0x1003db22
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.1003db4c
add esp, 0x20
test eax, eax
jne 0x1003db22
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.1003db4c
add esp, 0x20
test eax, eax
jne 0x1003db22
fild dword [ebp - 0x408]
lea ecx, [ebx - 0x2328]
fld qword [0x100b5dc8]
fdivr st(1)
fstp qword [esi + 0x58]
cmp ecx, 0x3e7
ja 0x1003d95d
mov eax, ebx
push 0x64
cdq
pop ebx
idiv ebx
cmp edx, 0x63
je 0x1003d952
mov eax, ecx
push ebx
cdq
pop ecx
idiv ecx
cmp eax, 4
jne 0x1003d95d
fdiv qword [0x100b6088]
fstp qword [esi + 0x58]
jmp 0x1003d95f
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.1003db4c
add esp, 0x20
test eax, eax
jne 0x1003db22
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 [0x100b5260]
fdiv qword [ebp - 0x3dc]
call fcn.1007d440
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 0x1003da8c
mov eax, dword [esi + 0x70]
test eax, eax
je 0x1003da46
push eax
call fcn.10067b51
mov eax, dword [esi + 0x88]
and dword [esi + 0x70], 0
pop ecx
test eax, eax
je 0x1003da46
push eax
call fcn.10067b51
and dword [esi + 0x88], 0
pop ecx
mov ebx, dword [esi + 8]
mov eax, ebx
shl eax, 4
push eax
call fcn.10068f44
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.1003db4c
add esp, 0x24
test eax, eax
jne 0x1003dab0
movsx eax, word [edi + 0x154]
inc dword [ebp - 0x404]
add dword [ebp - 0x14], 4
cmp dword [ebp - 0x404], eax
jl 0x1003d803
xor eax, eax
jmp 0x1003db3d
push dword [esi + 0x70]
call fcn.10067b51
and dword [esi + 0x70], 0
pop ecx
jmp 0x1003db22
mov ebx, 0x10086504
jmp 0x1003dad2
mov ebx, 0x10086510
jmp 0x1003dad2
mov ebx, 0x100ac47c
cmp dword [ebp - 0x3f4], 0
je 0x1003db22
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 0x1003dae9
sub eax, ecx
mov ecx, ebx
mov esi, eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1003daf9
sub ecx, edx
lea eax, [ecx + esi + 0x24]
cmp eax, 0x100
jae 0x1003db22
push ebx
push edi
push str.Ephemeris_file__s_is_damaged__0_s_.
push dword [ebp - 0x3f4]
call fcn.100675d6
add esp, 0x10
push dword [edi + 0x13c]
call fcn.100686d9
and dword [edi + 0x13c], 0
pop ecx
call fcn.10037621
or eax, 0xffffffff
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10067574
leave
ret