Function at 0x50a9bc
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], ecx
mov edi, edx
mov ebx, eax
xor eax, eax
push ebp
push 0x50ac1e
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 1], 0
xor eax, eax
push ebp
push 0x50abf9
push dword fs:[eax]
mov dword fs:[eax], esp
lea esi, [ebx + 0xb52]
mov edx, dword [ebx + 0xbc8]
mov eax, dword [edi]
xor ecx, ecx
call fcn.004dd084
lea eax, [ebx + 0xb52]
mov edx, 0x20
call fcn.00408cdc
push 0
lea eax, [ebp - 8]
push eax
push 0x20
lea eax, [ebx + 0xb52]
push eax
mov eax, dword [edi]
push eax
call sub.kernel32.dll_ReadFile_1
test word [esi + 3], 0x100
jbe 0x50aa4e
push 0
lea eax, [ebp - 8]
push eax
push 8
lea eax, [ebx + 0xbac]
push eax
mov eax, dword [edi]
push eax
call sub.kernel32.dll_ReadFile_1
jmp 0x50aa5e
lea eax, [ebx + 0xbac]
mov edx, 8
call fcn.00408cdc
cmp byte [esi + 2], 0x75
jne 0x50aa8b
movzx eax, word [esi + 5]
xor edx, edx
add eax, dword [ebx + 0xbc8]
adc edx, dword [ebx + 0xbcc]
mov dword [ebx + 0xbc8], eax
mov dword [ebx + 0xbcc], edx
mov byte [ebp - 1], 1
jmp 0x50abef
mov ax, word [esi + 3]
and ax, 0x8000
cmp ax, 0x8000
jne 0x50aaab
cmp word [esi + 5], 0
je 0x50aaab
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x3c]
test al, al
je 0x50aac8
mov eax, dword [ebx + 0xe0]
mov dword [ebx + 0xbc8], eax
mov eax, dword [ebx + 0xe4]
mov dword [ebx + 0xbcc], eax
jmp 0x50abef
test word [esi + 3], 0x4000
ja 0x50aad6
cmp byte [esi + 2], 0x74
je 0x50ab2a
movzx eax, word [esi + 5]
xor edx, edx
add eax, dword [ebx + 0xbc8]
adc edx, dword [ebx + 0xbcc]
push edx
push eax
mov eax, dword [ebx + 0xbac]
cdq
mov edx, eax
xor eax, eax
push edx
push eax
mov eax, dword [esi + 7]
xor edx, edx
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
mov dword [ebx + 0xbc8], eax
mov dword [ebx + 0xbcc], edx
cmp word [esi + 5], 0
seta byte [ebp - 1]
jmp 0x50abef
movzx edx, word [esi + 0x1a]
lea eax, [ebx + 0xb98]
call fcn.00404e98
push 0
lea eax, [ebp - 8]
push eax
movzx eax, word [esi + 0x1a]
push eax
lea eax, [ebx + 0xb98]
call fcn.00404d34
push eax
mov eax, dword [edi]
push eax
call sub.kernel32.dll_ReadFile_1
mov eax, dword [ebx + 0xb98]
call fcn.00404d28
lea edx, [ebp - 0xc]
call fcn.0040b474
mov edx, dword [ebp - 0xc]
lea eax, [ebx + 0xb98]
call fcn.00404910
lea ecx, [ebp - 0x10]
mov dl, byte [ebx + 0x9e4]
mov eax, dword [ebx + 0xb98]
call fcn.004e2d60
mov edx, dword [ebp - 0x10]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x5c]
mov eax, dword [ebx + 0xb98]
call fcn.00404b64
mov dword [ebp - 8], eax
movzx eax, word [esi + 5]
xor edx, edx
add eax, dword [ebx + 0xbc8]
adc edx, dword [ebx + 0xbcc]
push edx
push eax
mov eax, dword [ebx + 0xbac]
cdq
mov edx, eax
xor eax, eax
push edx
push eax
mov eax, dword [esi + 7]
xor edx, edx
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
mov dword [ebx + 0xbc8], eax
mov dword [ebx + 0xbcc], edx
mov byte [ebp - 1], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x50ac03
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x50ac25
lea eax, [ebp - 0x10]
mov edx, 2
call fcn.004048e0
ret