Function at 0x4b9f1c
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ebx
push esi
push edi
mov esi, eax
xor eax, eax
push ebp
push 0x4ba202
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x4d41b4]
mov eax, dword [eax]
call fcn.00482134
mov ebx, dword [esi + 0x39a4]
cmp ebx, 0x80
jl 0x4b9f6b
mov edx, 0x4ba218
mov eax, dword [esi + 0x3bc]
call fcn.00462360
sub ebx, 0x80
jmp 0x4b9f7b
mov edx, 0x4ba230
mov eax, dword [esi + 0x3bc]
call fcn.00462360
mov byte [esi + 0x39c1], 1
mov eax, ebx
and eax, 0x60
test eax, eax
jns 0x4b9f8e
add eax, 0x1f
sar eax, 5
test eax, eax
jne 0x4b9fae
mov eax, dword [0x4d4294]
mov eax, dword [eax]
mov eax, dword [eax + 0x300]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0xcc]
jmp 0x4ba001
cmp eax, 1
jne 0x4b9fcc
mov eax, dword [0x4d4294]
mov eax, dword [eax]
mov eax, dword [eax + 0x304]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0xcc]
jmp 0x4ba001
cmp eax, 2
jne 0x4b9fea
mov eax, dword [0x4d4294]
mov eax, dword [eax]
mov eax, dword [eax + 0x308]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0xcc]
jmp 0x4ba001
mov eax, dword [0x4d4294]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0xcc]
mov eax, ebx
and eax, 0x10
cmp eax, 0x10
jne 0x4ba022
mov eax, dword [0x4d5d70]
mov eax, dword [eax + 0x304]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0xcc]
jmp 0x4ba037
mov eax, dword [0x4d5d70]
mov eax, dword [eax + 0x304]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0xcc]
and ebx, 0xf
mov edi, 0x10
sub edi, ebx
mov edx, edi
mov eax, dword [0x4d5d70]
mov eax, dword [eax + 0x300]
call fcn.0045b860
lea edx, [ebp - 8]
mov eax, edi
call fcn.00409200
mov ecx, dword [ebp - 8]
lea eax, [ebp - 4]
mov edx, 0x4ba25c
call fcn.00404ea4
mov edx, dword [ebp - 4]
mov eax, dword [0x4d5d70]
mov eax, dword [eax + 0x308]
call fcn.00462360
push 0
lea eax, [esi + 0x3978]
push eax
push 4
lea eax, [esi + 0x560]
push eax
mov eax, dword [esi + 0x3e0]
push eax
call sub.kernel32.dll_ReadFile_1
xor ebx, ebx
mov bl, byte [esi + 0x560]
and ebx, 4
cmp ebx, 4
jne 0x4ba0c5
mov eax, dword [0x4d5d70]
mov eax, dword [eax + 0x31c]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0xcc]
jmp 0x4ba0da
mov eax, dword [0x4d5d70]
mov eax, dword [eax + 0x31c]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0xcc]
mov ebx, dword [esi + 0x39a8]
test ebx, ebx
jns 0x4ba0e7
add ebx, 0xf
sar ebx, 4
mov eax, ebx
and eax, 2
test eax, eax
jne 0x4ba10c
mov eax, dword [0x4d4294]
mov eax, dword [eax]
mov eax, dword [eax + 0x314]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0xcc]
jmp 0x4ba123
mov eax, dword [0x4d4294]
mov eax, dword [eax]
mov eax, dword [eax + 0x314]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0xcc]
mov eax, ebx
and eax, 8
test eax, eax
jne 0x4ba145
mov eax, dword [0x4d4294]
mov eax, dword [eax]
mov eax, dword [eax + 0x310]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0xcc]
jmp 0x4ba15c
mov eax, dword [0x4d4294]
mov eax, dword [eax]
mov eax, dword [eax + 0x310]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0xcc]
mov byte [esi + 0x39c1], 0
lea edx, [ebp - 0x10]
mov eax, dword [esi + 0x3bc]
call fcn.00462330
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0xc]
mov edx, 0x4ba26c
call fcn.00404ea4
mov edx, dword [ebp - 0xc]
mov eax, dword [0x4d3e90]
mov eax, dword [eax]
mov eax, dword [eax + 0x444]
call fcn.00462360
lea edx, [ebp - 0x14]
mov eax, dword [esi + 0x3bc]
call fcn.00462330
mov edx, dword [ebp - 0x14]
mov eax, dword [0x4d3e90]
mov eax, dword [eax]
mov eax, dword [eax + 0x43c]
call fcn.0049d780
mov eax, dword [esi + 0x3bc]
mov eax, dword [eax + 0x68]
mov edx, dword [eax + 0x18]
mov eax, dword [0x4d3e90]
mov eax, dword [eax]
mov eax, dword [eax + 0x444]
mov eax, dword [eax + 0x68]
call fcn.004249e8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4ba209
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.00404bbc
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.00404bbc
ret