Function at 0x44fb50
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x14
push ebx
push ebp
push esi
push edi
push 0x2009
call fcn.00449130
mov ebp, eax
add esp, 4
test ebp, ebp
mov dword [esp + 0x14], ebp
je 0x44fb72
mov byte [ebp], 0
mov ebx, dword [esp + 0x28]
xor eax, eax
push eax
lea esi, [ebp + 0x800]
mov dword [esp + 0x1c], 0
mov ecx, 0x200
mov edi, esi
rep stosd dword es:[edi], eax
lea eax, [esp + 0x1c]
push eax
push 0x800
push ebp
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x44fbca
test ebp, ebp
je 0x44fbbc
mov ecx, dword [0x51d3c8]
add ebp, 0xfffffff8
push ebp
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_HeapFree]
pop edi
pop esi
pop ebp
or eax, 0xffffffff
or edx, 0xffffffff
pop ebx
add esp, 0x14
ret
mov eax, dword [ebp + 0x1b4]
cmp eax, 0x46424246
mov edi, dword [ebp + 0x20]
movzx ecx, word [ebp + 0x1fe]
mov edx, dword [ebp + 0x1c]
mov dword [esp + 0x1c], edi
mov byte [esp + 0x13], 0
je 0x44fcc0
cmp eax, 0x534c5055
je 0x44fcc0
cmp eax, 0x5352424d
jne 0x44fe34
cmp ecx, 0xaa55
jne 0x44fe34
test edx, edx
jne 0x44fe34
xor eax, eax
push eax
push eax
push 0x4a00
mov ecx, 0x80
mov edi, esi
push ebx
rep stosd dword es:[edi], eax
call fcn.00444930
add esp, 0x10
push 0
lea edx, [esp + 0x1c]
push edx
push 0x200
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x44fe34
cmp dword [esi + 0x1b4], 0x5352424d
movzx eax, word [esi + 0x1fe]
mov edx, dword [esi + 0x1c]
mov ecx, dword [esi + 0x20]
jne 0x44fe34
cmp eax, 0xaa55
jne 0x44fe34
cmp edx, 0x25
jne 0x44fe34
mov eax, dword [esp + 0x1c]
add ecx, edx
cmp ecx, eax
jne 0x44fe34
movzx ax, byte [esi + 0x67]
test ax, ax
jne 0x44fca0
mov eax, 1
mov ecx, dword [esi + 0x60]
mov ebp, dword [esi + 0x5c]
push 1
xor ebx, ebx
push ebx
movzx eax, ax
push ebx
push ecx
add ebp, eax
call fcn.004b4970
add ebp, eax
adc ebx, edx
jmp 0x44fd65
xor eax, eax
mov ecx, 0x80
mov edi, esi
rep stosd dword es:[edi], eax
xor ecx, ecx
push ecx
lea edx, [esp + 0x20]
push edx
push ecx
mov eax, 0x8600
push eax
or edi, 0xffffffff
push ebx
mov byte [esp + 0x27], 1
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
push 0
lea eax, [esp + 0x1c]
push eax
push 0x200
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x44fd27
mov ecx, dword [0x51d3c8]
add ebp, 0xfffffff8
push ebp
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, edi
mov edx, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov dl, byte [esi + 0x1f8]
and dl, 0xc0
cmp dl, 0x40
je 0x44fd53
mov eax, dword [0x51d3c8]
add ebp, 0xfffffff8
push ebp
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, edi
mov edx, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov ebp, dword [esi + 0x1f0]
mov ebx, dword [esi + 0x1f4]
add ebp, 1
adc ebx, 0
xor eax, eax
push eax
push 0x200
push ebx
mov ecx, 0x80
mov edi, esi
push ebp
rep stosd dword es:[edi], eax
call fcn.004b4970
mov edi, dword [esp + 0x28]
or ecx, 0xffffffff
push 0
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x20]
push ecx
push edx
push eax
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
push 0
lea edx, [esp + 0x1c]
push edx
push 0x200
push esi
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x44fe34
lea ecx, [esi + 3]
mov edx, 0x4f9590
mov edi, 9
sub edx, ecx
mov al, byte [edx + ecx]
sub al, byte [ecx]
inc ecx
test al, al
jne 0x44fe10
dec edi
jns 0x44fdc7
mov eax, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
mov ebx, dword [esi + 0x68]
xor ecx, ecx
xor edi, edi
and edx, 0xffffffc0
or edi, eax
mov eax, dword [esp + 0x2c]
or ebx, ecx
shl edx, 9
lea ecx, [esp + 0x14]
mov dword [eax], edx
call fcn.00443880
push 0
push 0x200
push ebx
push edi
call fcn.004b4970
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
movsx eax, al
test eax, eax
je 0x44fdd4
cmp ebp, 0x41
jne 0x44fe20
test ebx, ebx
je 0x44fe34
mov al, byte [esp + 0x13]
test al, al
jne 0x44fe34
mov ebp, 0x41
xor ebx, ebx
jmp 0x44fd65
lea ecx, [esp + 0x14]
call fcn.00443880
pop edi
pop esi
pop ebp
or eax, 0xffffffff
or edx, 0xffffffff
pop ebx
add esp, 0x14
ret