Function at 0x1000a201
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffec4
push esi
push edi
or dword [ebp - 0x28], 0xffffffff
cmp dword [0x1005250d], 0
je 0x1000a22e
push dword [0x1005250d]
call fcn.10051176
mov dword [0x1005250d], 0
mov eax, dword [0x1005d817]
mov eax, dword [eax]
or eax, eax
je 0x1000a57c
mov eax, dword [eax]
or eax, eax
je 0x1000a57c
mov esi, dword [eax + 0x2ae90]
or esi, esi
je 0x1000a57c
lea edi, [ebp - 0x13c]
movzx ecx, byte [esi - 4]
cld
rep movsb byte es:[edi], byte [esi]
xor al, al
stosb byte es:[edi], al
lea esi, [0x100573f5]
mov edi, dword [esi]
add esi, 4
jmp 0x1000a574
lea eax, [ebp - 0x13c]
push eax
push esi
call fcn.10051104
or eax, eax
jne 0x1000a570
lea eax, [ebp - 0x13c]
push eax
call fcn.10015a95
or eax, eax
jne 0x1000a56e
lea eax, [ebp - 0x13c]
push eax
call fcn.1002fd2a
jmp 0x1000a2b8
push 0x1000a2ac
lea eax, [ebp - 0x13c]
push eax
call fcn.100510f8
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
lea eax, [ebp - 0x13c]
push eax
call fcn.10050fc0
cmp eax, 0xffffffff
je 0x1000a56e
mov dword [ebp - 4], eax
push 0
push dword [ebp - 4]
call fcn.10050ff6
cmp eax, 0x10657a
jne 0x1000a56e
push 0
push 0
push dword [esi + 0xc]
push dword [ebp - 4]
call fcn.100510b6
movzx eax, word [esi + 8]
and eax, 0xf
or eax, eax
je 0x1000a32e
movzx eax, word [esi + 8]
and eax, 0xfffffff0
add eax, 0x10
jmp 0x1000a332
movzx eax, word [esi + 8]
movzx edx, word [esi + 0xa]
imul eax, edx
cmp eax, dword [esi + 0x10]
jae 0x1000a341
mov eax, dword [esi + 0x10]
lea eax, [eax + 0x400]
push eax
push 0
call fcn.1003d03c
or eax, eax
je 0x1000a56e
mov dword [ebp - 0xc], eax
push 0x428
push 0
call fcn.1003d03c
or eax, eax
je 0x1000a565
mov dword [ebp - 0x10], eax
push 0
lea eax, [ebp - 8]
push eax
push dword [esi + 0x10]
push dword [ebp - 0xc]
push dword [ebp - 4]
call fcn.1005109e
push dword [ebp - 4]
call fcn.10050fb4
mov eax, dword [0x1005d7f3]
mov eax, dword [eax]
mov eax, dword [eax + 0x2f4]
mov edx, dword [ebp - 0x10]
push 0x400
lea eax, [eax + 0x90c]
push eax
lea eax, [edx + 0x28]
push eax
call fcn.1002f4e9
mov ax, word [esi + 8]
mov word [0x1006baa3], ax
mov ax, word [esi + 0xa]
mov word [0x1006baa5], ax
push 0x28
push dword [ebp - 0x10]
call fcn.1003062f
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x28
movzx edx, word [0x1006baa3]
mov dword [eax + 4], edx
movzx edx, word [0x1006baa5]
mov dword [eax + 8], edx
mov edx, dword [esi + 0x10]
mov dword [eax + 0x14], edx
mov word [eax + 0xc], 1
mov word [eax + 0xe], 8
mov dword [eax + 0x10], 0
mov dword [eax + 0x18], 0xb12
mov dword [eax + 0x1c], 0xb12
movzx eax, word [0x1006baa3]
movzx edx, word [0x1006baa5]
push edx
push eax
push dword [ebp - 0xc]
call fcn.1000a1a5
push dword [ebp + 8]
call fcn.10050ea0
mov dword [ebp - 0x14], eax
push dword [ebp - 0x14]
call fcn.10051158
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
push dword [eax + 8]
push dword [eax + 4]
push dword [ebp - 0x14]
call fcn.10051152
mov dword [0x1005250d], eax
push dword [0x1005250d]
push dword [ebp - 0x18]
call fcn.100511a6
mov dword [ebp - 0x24], eax
jmp 0x1000a477
push 0x1000a46b
call fcn.1005106e
or eax, eax
je 0x1000a537
mov dword [ebp - 0x2c], eax
jmp 0x1000a49a
push 0x1000a48e
push dword [ebp - 0x2c]
call fcn.10051020
or eax, eax
je 0x1000a52f
mov dword [ebp - 0x30], eax
jmp 0x1000a4c0
push 0x1000a4b4
push dword [ebp - 0x2c]
call fcn.10051020
or eax, eax
je 0x1000a52f
mov dword [ebp - 0x34], eax
jmp 0x1000a4e3
push 0x1000a4d6
push dword [ebp - 0x2c]
call fcn.10051020
or eax, eax
je 0x1000a52f
mov dword [ebp - 0x38], eax
call dword [ebp - 0x30]
or eax, eax
je 0x1000a52f
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x10]
push 4
push dword [eax + 8]
push dword [eax + 4]
push 0
push 0
push dword [ebp - 0xc]
push dword [ebp - 0x10]
push dword [eax + 8]
push dword [eax + 4]
push 0
push 0
push dword [ebp - 0x18]
push dword [ebp - 0x20]
call dword [ebp - 0x34]
push dword [ebp - 0x20]
call dword [ebp - 0x38]
push dword [ebp - 0x2c]
call fcn.10050fe4
push dword [ebp - 0x24]
push dword [ebp - 0x18]
call fcn.100511a6
push dword [ebp - 0x18]
call fcn.10051170
push dword [ebp - 0x14]
push dword [ebp + 8]
call fcn.10050f60
mov dword [ebp - 0x28], 0
lea eax, [ebp - 0x10]
push eax
call fcn.1003d00f
lea eax, [ebp - 0xc]
push eax
call fcn.1003d00f
jmp 0x1000a57c
add esi, 0x14
dec edi
or edi, edi
jne 0x1000a275
mov byte [0x10052432], 0
push 1
push 0
push dword [ebp + 8]
call fcn.10050efa
push dword [ebp + 8]
call fcn.10050fae
mov eax, dword [ebp - 0x28]
pop edi
pop esi
leave
ret 4