Function at 0x10008630
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c
mov eax, dword [ebp + 8]
push ebx
lea ecx, [eax + 0x7df]
push esi
mov edx, eax
push edi
mov dword [esp + 0x14], edx
mov dword [esp + 0x24], ecx
cmp eax, ecx
ja 0x10008a24
mov ebx, dword [ebp + 0x10]
mov edi, dword [esp + 0x24]
mov edi, edi
mov ecx, dword [ebp + 0x14]
cmp edx, 0x200f
ja 0x100087ff
je 0x10008a24
cmp edx, 0x1f4c
ja 0x100087c4
je 0x1000876a
mov eax, edx
sub eax, 0x1eca
je 0x1000873b
sub eax, 0x41
jne 0x100089d7
cmp dword [ebx], eax
jge 0x100086cb
mov ecx, 0x4b55
mov eax, ecx
sub eax, 0x4b55
je 0x100086bc
sub eax, 0x14
jne 0x100086be
mov eax, dword [ebx]
neg eax
mov dword [ebx], eax
jmp 0x100086be
xor edi, edi
add ecx, 0x14
cmp ecx, 0x4b69
jbe 0x100086a6
jmp 0x100086f1
mov ecx, 0x24b4
cmp ecx, ecx
jne 0x100086e6
mov eax, dword [ebx]
mov edi, eax
sar edi, 4
inc edi
cmp eax, 0x30
jge 0x100086e6
and eax, 0xf
mov dword [ebx], eax
add ecx, 0x16
cmp ecx, 0x24b4
jbe 0x100086d2
mov eax, dword [ebx]
test eax, eax
je 0x100089d7
cmp eax, 8
jl 0x10008709
cmp eax, 0xf
jle 0x100089d7
mov ecx, 0x6668
mov esi, 0xfffffffe
mov eax, ecx
sub eax, 0x6668
je 0x10008727
sub eax, 0x35
je 0x10008a24
jmp 0x1000872b
mov dword [esp + 0x10], esi
add ecx, 0x35
cmp ecx, 0x669d
jbe 0x10008713
jmp 0x100089d7
mov ecx, dword [ecx]
test ecx, ecx
je 0x10008747
cmp dword [ecx + 0x1c], 0
jne 0x1000875e
mov eax, 0x3a5b
cmp eax, eax
je 0x100089f3
add eax, 0x27
cmp eax, 0x3a5b
jbe 0x1000874e
mov ecx, dword [ecx + 0x1c]
mov dword [esp + 0x18], ecx
jmp 0x100089d7
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x34], 0
je 0x100089d7
mov eax, dword [eax + 0x24]
cmp eax, dword [ebx]
je 0x100089d7
mov esi, 0x19e4
cmp esi, esi
jne 0x100087b4
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx]
mov edx, dword [esp + 0x18]
mov ecx, dword [edx + 0x34]
mov edx, dword [eax + 0x28]
mov eax, dword [eax + 0x24]
push ecx
push edx
call eax
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
add esp, 8
mov dword [ecx + 0x34], 0
add esi, 0x10
cmp esi, 0x19e4
jbe 0x1000878a
jmp 0x100089d7
mov eax, edx
sub eax, 0x1f8d
je 0x100087f3
sub eax, 0x41
jne 0x100089d7
mov edx, dword [ebx]
mov eax, dword [esp + 0x18]
mov ecx, dword [ebp + 0x14]
mov dword [eax + 0x24], edx
mov edx, dword [ecx]
push edx
call fcn.100198d0
mov dword [esp + 0x10], eax
jmp 0x100089d3
mov eax, dword [esp + 0x18]
mov dword [eax + 8], edi
jmp 0x100089d7
cmp edx, 0x5214
ja 0x100088d6
je 0x100088b4
cmp edx, 0x4a83
je 0x1000882e
cmp edx, 0x51d3
jne 0x100089d7
mov dword [esp + 0x1c], ecx
jmp 0x100089d7
test ecx, ecx
jne 0x10008873
mov esi, 0xa42
mov eax, esi
sub eax, 0xa42
je 0x10008857
sub eax, 0x15
je 0x10008850
sub eax, 0x15
je 0x10008a24
jmp 0x10008868
mov byte [esp + 0x10], 0xff
jmp 0x10008868
push str.Null_CdIo_object_passed_n
call fcn.1001dd70
mov edx, dword [esp + 0x18]
add esp, 4
add esi, 0x15
cmp esi, 0xa6c
jbe 0x10008837
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 0x50], 0
je 0x10008898
mov eax, 0x44b
cmp eax, eax
je 0x100089ff
add eax, 0x46
cmp eax, 0x44b
jbe 0x10008883
jmp 0x100089d7
mov eax, 0x5eda
cmp eax, eax
je 0x10008a1f
add eax, 0x26
cmp eax, 0x5eda
jbe 0x1000889f
jmp 0x100089d7
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
push eax
push edx
push 1
push ebx
call fcn.1002c487
add esp, 0x10
mov dword [esp + 0x20], eax
jmp 0x100089d3
mov eax, edx
sub eax, 0x5255
je 0x10008919
sub eax, 0x41
jne 0x100089d7
mov esi, dword [esp + 0x20]
mov ecx, 0x138
mov eax, ecx
sub eax, 0x138
je 0x10008905
sub eax, 0x53
je 0x10008a24
jmp 0x10008909
mov dword [esp + 0x10], esi
add ecx, 0x53
cmp ecx, 0x18b
jbe 0x100088f1
jmp 0x100089d7
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x20]
cmp ecx, dword [eax]
je 0x100089d7
mov esi, dword [esp + 0x1c]
mov edx, dword [esi + 4]
push edx
call fcn.1002a8a8
add esp, 4
test eax, eax
je 0x10008978
mov esi, 0x2482
mov eax, esi
sub eax, 0x2482
je 0x1000895e
sub eax, 0x46
jne 0x1000896b
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 4]
push ecx
call fcn.1002d932
jmp 0x10008968
push str.fread___:_EOF_encountered
call fcn.100244b0
add esp, 4
add esi, 0x46
cmp esi, 0x24c8
jbe 0x10008941
jmp 0x100089d3
mov edx, dword [esi + 4]
push edx
call fcn.1002a8d0
add esp, 4
test eax, eax
je 0x100089c6
mov esi, 0x5b36
cmp esi, esi
jne 0x100089b9
call fcn.1002b965
mov eax, dword [eax]
push eax
call fcn.1002b142
push eax
push str.fread___:__s
call fcn.10007330
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 4]
push edx
call fcn.1002d932
add esp, 0x10
add esi, 0x1e
cmp esi, 0x5b36
jbe 0x1000898f
jmp 0x100089d3
push str.fread___:_short_read_and_no_EOF___
call fcn.100244b0
add esp, 4
mov edx, dword [esp + 0x14]
add edx, 0x41
mov dword [esp + 0x14], edx
cmp edx, dword [esp + 0x24]
jbe 0x10008660
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0xfffffffe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, ecx
mov ecx, dword [eax + 0xbc]
mov edx, dword [eax + 0x50]
push ecx
call edx
mov byte [esp + 0x14], al
mov eax, dword [esp + 0x14]
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov byte [esp + 0x10], 0xff
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret