Function at 0x4d91b8
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x503b9a
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x98
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], ebx
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov dword [edx + 0x18], 0xf
xor eax, eax
mov dword [edx + 0x14], eax
mov byte [edx + 4], al
mov dword [ebp - 0x48], 1
mov dword [ebp - 4], 0
push 0x8000
push ecx
call sub.MSVCR70.dll__open
mov esi, eax
add esp, 8
mov dword [ebp - 0x44], esi
cmp esi, 0xffffffff
je 0x4d97c1
push 2
push 0
push esi
call sub.MSVCR70.dll__lseek
mov ebx, eax
mov dword [ebp - 0x40], ebx
xor edx, edx
push edx
push edx
push esi
call sub.MSVCR70.dll__lseek
add esp, 0x18
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x14]
cmp ebx, edx
jbe 0x4d96ce
mov dword [ebp - 0xa4], ecx
sub ebx, edx
mov esi, dword [0x5c3d20]
mov dword [ebp - 0xa0], ebx
sub esi, edx
cmp esi, ebx
mov byte [ebp - 0x9c], 0
ja 0x4d927a
call fcn.004fd6a2
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp - 0xa0]
test ebx, ebx
ja 0x4d964b
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x18]
cmp edx, 0x10
jb 0x4d9295
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
jmp 0x4d929b
mov eax, dword [ebp + 8]
add eax, 4
push dword [ebp - 0x40]
push eax
push dword [ebp - 0x44]
call sub.MSVCR70.dll__read
push dword [ebp - 0x44]
call sub.MSVCR70.dll__close
add esp, 0x10
mov eax, dword [ebp + 8]
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x4c], 0
ja 0x4d93d8
mov eax, dword [ebp - 0x54]
mov edx, dword [eax + 0x18]
cmp edx, 0x10
jae 0x4d93b3
mov eax, dword [ebp - 0x54]
mov edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x54]
mov dword [eax + 0x18], 0xf
mov dword [edx + 0x14], 0
mov ebx, dword [ecx + 0x18]
cmp ebx, 0x10
jb 0x4d9340
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 4]
jmp 0x4d9346
mov eax, dword [ebp - 0x54]
add eax, 4
mov byte [eax], 0
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x24]
mov dword [edx + 4], eax
mov ebx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x28]
mov dword [ebx + 0x18], ecx
mov edi, dword [ebp - 0x54]
mov esi, dword [ebp - 0x4c]
mov dword [edi + 0x14], esi
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 0x18]
cmp eax, 0x10
jb 0x4d9377
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 4]
jmp 0x4d937d
mov eax, dword [ebp - 0x54]
add eax, 4
mov edx, dword [ebp - 0x4c]
mov byte [eax + edx], 0
cmp dword [ebp - 0x70], 0
jbe 0x4d9282
mov ecx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x30]
mov edx, dword [ecx + 0x18]
mov dword [ecx + 0x14], eax
cmp edx, 0x10
jb 0x4d93a4
mov ecx, dword [ecx + 4]
jmp 0x4d93a7
add ecx, 4
mov eax, dword [ebp - 0x30]
mov byte [ecx + eax], 0
jmp 0x4d9282
mov eax, dword [ebp - 0x54]
mov edx, dword [eax + 0x18]
cmp edx, 0x10
jb 0x4d93c6
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 4]
jmp 0x4d93cc
mov eax, dword [ebp - 0x54]
add eax, 4
push eax
call sub.MSVCR70.dll_void___cdecl_operator_delete_void__
pop ecx
jmp 0x4d9319
mov eax, dword [ebp - 0x54]
mov edx, dword [eax + 0x18]
cmp edx, 0x10
jb 0x4d93eb
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 4]
jmp 0x4d93f1
mov eax, dword [ebp - 0x54]
add eax, 4
push dword [ebp - 0x4c]
push eax
push dword [ebp - 0x24]
call fcn.004fd7e4
add esp, 0xc
jmp 0x4d930a
cmp dword [ebp - 0x7c], 0
ja 0x4d95d8
mov eax, dword [ebp - 0x84]
mov edx, dword [eax + 0x18]
cmp edx, 0x10
jae 0x4d95aa
mov eax, dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x84]
mov dword [eax + 0x18], 0xf
mov dword [edx + 0x14], 0
mov ebx, dword [ecx + 0x18]
cmp ebx, 0x10
jb 0x4d94c8
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 4]
jmp 0x4d94d1
mov eax, dword [ebp - 0x84]
add eax, 4
mov byte [eax], 0
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x34]
mov dword [edx + 4], eax
mov ebx, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x38]
mov dword [ebx + 0x18], ecx
mov edi, dword [ebp - 0x84]
mov esi, dword [ebp - 0x7c]
mov dword [edi + 0x14], esi
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 0x18]
cmp eax, 0x10
jb 0x4d9511
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 4]
jmp 0x4d951a
mov eax, dword [ebp - 0x84]
add eax, 4
mov edx, dword [ebp - 0x7c]
mov byte [eax + edx], 0
cmp dword [ebp - 0x90], 0
jbe 0x4d9282
mov eax, dword [ebp - 0xa4]
mov edx, dword [eax + 0x18]
cmp edx, 0x10
jb 0x4d9547
mov eax, dword [ebp - 0xa4]
mov ecx, dword [eax + 4]
jmp 0x4d9550
mov ecx, dword [ebp - 0xa4]
add ecx, 4
mov eax, dword [ebp - 0xa4]
movsx edx, byte [ebp - 0x9c]
add ecx, dword [eax + 0x14]
push dword [ebp - 0xa0]
push edx
push ecx
call fcn.004fd974
add esp, 0xc
mov edx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0xa4]
mov dword [edx + 0x14], eax
mov ebx, dword [ecx + 0x18]
cmp ebx, 0x10
jb 0x4d9595
mov eax, dword [ebp - 0xa4]
mov eax, dword [eax + 4]
jmp 0x4d959e
mov eax, dword [ebp - 0xa4]
add eax, 4
mov edx, dword [ebp - 0x3c]
mov byte [eax + edx], 0
jmp 0x4d9282
mov eax, dword [ebp - 0x84]
mov edx, dword [eax + 0x18]
cmp edx, 0x10
jb 0x4d95c3
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 4]
jmp 0x4d95cc
mov eax, dword [ebp - 0x84]
add eax, 4
push eax
call sub.MSVCR70.dll_void___cdecl_operator_delete_void__
pop ecx
jmp 0x4d9495
mov eax, dword [ebp - 0x84]
mov edx, dword [eax + 0x18]
cmp edx, 0x10
jb 0x4d95f1
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 4]
jmp 0x4d95fa
mov eax, dword [ebp - 0x84]
add eax, 4
push dword [ebp - 0x7c]
push eax
push dword [ebp - 0x34]
call fcn.004fd7e4
add esp, 0xc
jmp 0x4d9483
add ebx, dword [ecx + 0x14]
cmp ebx, 0xfffffffe
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x90], ebx
jbe 0x4d9664
call fcn.004fd6a2
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x18]
cmp edx, ebx
jae 0x4d96aa
mov edx, dword [ecx + 0x14]
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x7c], edx
mov edx, ebx
or edx, 0xf
cmp edx, 0xfffffffe
mov dword [ebp - 0x38], edx
jbe 0x4d968c
mov edx, ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 4], 1
inc edx
push edx
call fcn.004fd56e
pop ecx
mov dword [ebp - 0x34], eax
mov dword [ebp - 4], 0
jmp 0x4d9479
test ebx, ebx
jne 0x4d9521
mov dword [ecx + 0x14], 0
cmp edx, 0x10
jb 0x4d96c3
mov ecx, dword [ecx + 4]
jmp 0x4d96c6
add ecx, 4
mov byte [ecx], 0
jmp 0x4d9521
mov dword [ebp - 0x64], ecx
mov esi, 0xffffffff
mov edi, dword [ecx + 0x14]
mov dword [ebp - 0x60], ebx
cmp edi, ebx
mov dword [ebp - 0x5c], 0xffffffff
jae 0x4d96f8
call fcn.004fd62a
mov ecx, dword [ebp - 0x64]
mov edi, dword [ecx + 0x14]
mov ebx, dword [ebp - 0x60]
mov esi, dword [ebp - 0x5c]
sub edi, ebx
cmp edi, esi
jae 0x4d9700
mov esi, edi
test esi, esi
mov dword [ebp - 0x5c], esi
jbe 0x4d9282
mov edx, dword [ecx + 0x18]
cmp edx, 0x10
jb 0x4d9718
mov eax, dword [ecx + 4]
jmp 0x4d971b
lea eax, [ecx + 4]
jb 0x4d9722
mov ecx, dword [ecx + 4]
jmp 0x4d9725
add ecx, 4
add eax, ebx
add ebx, esi
add ebx, ecx
sub edi, esi
push edi
push ebx
push eax
call sub.MSVCR70.dll_memmove
add esp, 0xc
mov ecx, dword [ebp - 0x64]
mov edx, dword [ecx + 0x14]
sub edx, dword [ebp - 0x5c]
cmp edx, 0xfffffffe
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x70], edx
jbe 0x4d975a
call fcn.004fd6a2
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x74]
mov eax, dword [ecx + 0x18]
cmp eax, edx
jae 0x4d979d
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x4c], eax
mov eax, edx
or eax, 0xf
cmp eax, 0xfffffffe
mov dword [ebp - 0x28], eax
jbe 0x4d977f
mov eax, edx
mov dword [ebp - 0x28], edx
mov dword [ebp - 4], 5
inc eax
push eax
call fcn.004fd56e
pop ecx
mov dword [ebp - 0x24], eax
mov dword [ebp - 4], 0
jmp 0x4d9300
test edx, edx
jne 0x4d9384
mov dword [ecx + 0x14], 0
cmp eax, 0x10
jb 0x4d97b6
mov ecx, dword [ecx + 4]
jmp 0x4d97b9
add ecx, 4
mov byte [ecx], 0
jmp 0x4d9384
mov dword [ebp - 0x48], 0
mov eax, dword [ebp + 8]
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret