Function at 0x4a3090
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x14
mov eax, dword [0x7dc838]
push ebx
push ebp
xor ebx, ebx
push esi
push edi
test eax, 0x80000000
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x20], ebx
jne 0x4a30c3
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret
mov eax, dword [esp + 0x2c]
cmp eax, ebx
jl 0x4a30d3
cmp eax, dword [0x7dc83c]
jl 0x4a30dd
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret
mov edi, dword [esp + 0x34]
cmp edi, ebx
jne 0x4a30ef
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret
mov esi, eax
push ebx
shl esi, 4
add esi, eax
mov eax, dword [0x7dc828]
shl esi, 2
mov ebp, dword [esp + 0x34]
mov ecx, dword [esi + eax + 0x40]
mov eax, dword [esi + eax]
shl cl, 7
mov byte [esp + 0x38], cl
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x1c]
mov edx, dword [eax]
push ecx
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x2c]
push ecx
push edi
push ebp
push eax
call dword [edx + 0x2c]
cmp eax, 0x88780096
jne 0x4a3169
mov edx, dword [0x7dc828]
mov eax, dword [esi + edx]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x50]
mov edx, dword [0x7dc828]
push ebx
mov eax, dword [esi + edx]
lea edx, [esp + 0x14]
push edx
lea edx, [esp + 0x1c]
mov ecx, dword [eax]
push edx
lea edx, [esp + 0x24]
push edx
lea edx, [esp + 0x2c]
push edx
push edi
push ebp
push eax
call dword [ecx + 0x2c]
cmp eax, ebx
je 0x4a3177
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x34]
mov ebp, dword [sym.imp.KERNEL32.dll_ReadFile]
cmp eax, ebx
je 0x4a3232
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x2c]
push ebx
push ecx
push eax
mov eax, dword [esp + 0x34]
push edx
push eax
call ebp
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
cmp edx, eax
je 0x4a3232
mov eax, dword [0x7dc828]
test dword [esi + eax + 0x40], 0x8000000
je 0x4a31f7
mov ecx, dword [esi + eax + 0x3c]
mov edx, dword [esi + eax + 0xc]
push ebx
push ebx
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x2c]
push ebx
push eax
mov eax, dword [esp + 0x34]
sub ecx, eax
add eax, edx
push ecx
push eax
mov eax, dword [0x7dc828]
mov ecx, dword [esi + eax + 0xc]
push ecx
call ebp
jmp 0x4a3232
mov ecx, dword [esp + 0x18]
mov eax, edi
mov edi, dword [esp + 0x1c]
and eax, 0xff
mov bl, al
sub ecx, edx
mov bh, bl
add edi, edx
mov eax, ebx
mov edx, ecx
shl eax, 0x10
mov ax, bx
mov dword [esp + 0x20], 1
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
xor ebx, ebx
rep stosb byte es:[edi], al
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
cmp ecx, ebx
je 0x4a32e2
cmp dword [esp + 0x20], 1
jne 0x4a3252
mov eax, edi
mov edi, dword [esp + 0x14]
and eax, 0xff
jmp 0x4a32c4
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x2c]
push ebx
push eax
push ecx
mov ecx, dword [esp + 0x20]
push ecx
push edx
call ebp
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
cmp edx, ecx
je 0x4a32e2
mov eax, dword [0x7dc828]
test byte [esi + eax + 0x43], 8
je 0x4a32b5
mov ecx, dword [esi + eax + 0x3c]
mov edx, dword [esi + eax + 0xc]
push ebx
push ebx
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x2c]
push ebx
push eax
mov eax, dword [esp + 0x34]
sub ecx, eax
add eax, edx
push ecx
push eax
mov eax, dword [0x7dc828]
mov ecx, dword [esi + eax + 0xc]
push ecx
call ebp
jmp 0x4a32de
mov eax, edi
mov edi, dword [esp + 0x14]
sub ecx, edx
and eax, 0xff
add edi, edx
mov bl, al
mov edx, ecx
mov bh, bl
mov eax, ebx
shl eax, 0x10
mov ax, bx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, dword [esp + 0x10]
mov eax, dword [0x7dc828]
push ecx
mov ecx, dword [esp + 0x1c]
mov esi, dword [esi + eax]
mov eax, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x24]
mov edx, dword [esi]
push ecx
push eax
push esi
call dword [edx + 0x4c]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x14
ret