Function at 0x4d5829
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x528845
mov eax, dword fs:[0]
push eax
mov eax, 0x8714
call fcn.00460dd0
mov eax, dword [0x54921c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov edi, dword [ebp + 8]
xor ebx, ebx
push 0x86e4
lea eax, [ebp - 0x86f4]
push ebx
push eax
mov dword [ebp - 0x8708], ebx
mov dword [ebp - 0x8700], ebx
mov dword [ebp - 0x86f8], ebx
call fcn.004530e0
add esp, 0xc
push ebx
lea eax, [ebp - 0x8708]
push eax
push 4
lea eax, [ebp - 0x8700]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x4d58be
push 0x414a6c
push esi
call fcn.004d3d0f
pop ecx
pop ecx
mov eax, 0x80004005
jmp 0x4d5d97
cmp dword [ebp - 0x8700], ebx
je 0x4d5d95
push ebx
lea eax, [ebp - 0x8708]
push eax
push dword [ebp - 0x8700]
lea eax, [ebp - 0x86f8]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4d58a7
xor eax, eax
lea edi, [ebp - 0x86fc]
stosd dword es:[edi], eax
mov eax, dword [ebp - 0x86fc]
or eax, 0x4000
mov dword [ebp - 0x870c], eax
mov eax, dword [ebp - 0x38]
mov edi, 0x80000000
not eax
jmp 0x4d5912
shr edi, 1
test edi, eax
jne 0x4d5910
mov eax, ebx
lea ecx, [ebp - 0x8457]
cmp byte [ecx], bl
je 0x4d5930
inc eax
add ecx, 0x108
cmp eax, 0x80
jb 0x4d591e
push ebx
push ebx
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x86fc], eax
mov dword [ebp - 0x8704], esp
xor eax, eax
mov dword [ecx + 0x14], 7
mov dword [ecx + 0x10], ebx
push 0x415eac
mov word [ecx], ax
call fcn.00444888
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x8710], esp
xor eax, eax
mov dword [ecx + 0x14], 7
mov dword [ecx + 0x10], ebx
push 0x414aa4
mov dword [ebp - 4], ebx
mov word [ecx], ax
call fcn.00444888
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8720]
call fcn.004d181a
sub esp, 0x10
mov dword [ebp - 0x8710], esp
mov ecx, esp
push eax
mov dword [ebp - 4], 1
call fcn.004d133d
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x8704], esp
xor eax, eax
mov dword [ecx + 0x14], 7
mov dword [ecx + 0x10], ebx
push 0x414ab0
mov byte [ebp - 4], 2
mov word [ecx], ax
call fcn.00444888
lea ecx, [esi + 0x364]
mov byte [ebp - 4], 1
call fcn.004d1d18
mov dword [ebp - 0x8704], eax
lea ecx, [ebp - 0x8720]
mov byte [ebp - 4], 4
call fcn.0044e8ac
push 0x415ecc
push esi
call fcn.004d3d0f
cmp dword [ebp - 0x2c], 0
pop ecx
pop ecx
jne 0x4d5a0f
cmp dword [ebp - 0x28], 0
jle 0x4d5a2e
push dword [ebp - 0x28]
push dword [ebp - 0x2c]
push 0x415ef0
push esi
call fcn.004d3d0f
push 0x415f20
push esi
call fcn.004d3d0f
add esp, 0x18
mov edx, dword [ebp - 0x870c]
cmp edx, edi
jae 0x4d5a53
push 0x415f58
push esi
call fcn.004d3d0f
push 0x415fb0
push esi
call fcn.004d3d0f
add esp, 0x10
jmp 0x4d5a76
jbe 0x4d5a76
xor ecx, ecx
mov eax, edx
inc ecx
shr eax, 1
jmp 0x4d5a63
inc ecx
mov eax, edx
shr eax, cl
cmp eax, edi
ja 0x4d5a5e
push ecx
push 0x415ff0
push esi
call fcn.004d3d0f
add esp, 0xc
push 0x413c9c
push esi
call fcn.004d3d0f
test byte [ebp - 0x38], 1
pop ecx
pop ecx
je 0x4d5ab7
push 0x416050
push esi
call fcn.004d3d0f
test byte [ebp - 0x38], 2
pop ecx
pop ecx
mov eax, 0x416064
jne 0x4d5aa6
mov eax, 0x41608c
push eax
push 0x4160a4
push esi
call fcn.004d3d0f
add esp, 0xc
jmp 0x4d5ac4
push 0x4160bc
push esi
call fcn.004d3d0f
pop ecx
pop ecx
test byte [ebp - 0x38], 4
mov eax, 0x401468
jne 0x4d5ad4
mov eax, 0x4160cc
push eax
push 0x4160d4
push esi
call fcn.004d3d0f
add esp, 0xc
test byte [ebp - 0x34], 1
mov edi, 0x4160ec
mov eax, 0x4276fc
jne 0x4d5af5
mov eax, edi
push eax
push 0x4160f4
push esi
call fcn.004d3d0f
add esp, 0xc
test byte [ebp - 0x34], 2
je 0x4d5b0f
mov edi, 0x4276fc
push edi
push 0x416110
push esi
call fcn.004d3d0f
add esp, 0xc
test byte [ebp - 0x38], 0x10
jne 0x4d5b2b
mov eax, 0x416130
jmp 0x4d5b41
test byte [ebp - 0x38], 0x20
je 0x4d5b3c
test byte [ebp - 0x38], 0x40
mov eax, 0x416134
jne 0x4d5b41
mov eax, 0x41613c
push eax
push 0x416148
push esi
call fcn.004d3d0f
mov eax, dword [ebp - 0x38]
add esp, 0xc
test al, al
jns 0x4d5b67
push 0x416168
push esi
call fcn.004d3d0f
mov eax, dword [ebp - 0x38]
pop ecx
pop ecx
test eax, 0x200
je 0x4d5b7e
push 0x4161bc
push esi
call fcn.004d3d0f
mov eax, dword [ebp - 0x38]
pop ecx
pop ecx
test eax, 0x1000
je 0x4d5b97
push dword [ebp - 0x24]
mov ecx, esi
call fcn.004d4164
push eax
push 0x4161cc
jmp 0x4d5bad
cmp dword [ebp - 0x24], 0
je 0x4d5bb6
push dword [ebp - 0x24]
mov ecx, esi
call fcn.004d4164
push eax
push 0x4161e8
push esi
call fcn.004d3d0f
add esp, 0xc
push dword [ebp - 0x30]
mov ecx, esi
call fcn.004d411a
push eax
push 0x41623c
push esi
call fcn.004d3d0f
mov eax, dword [ebp - 0x8700]
add esp, 0xc
cmp eax, 0x86d8
jbe 0x4d5bfb
push dword [ebp - 0x20]
mov ecx, esi
call fcn.004d41a4
push eax
push 0x416258
push esi
call fcn.004d3d0f
mov eax, dword [ebp - 0x8700]
add esp, 0xc
cmp eax, 0x86e0
jbe 0x4d5c31
push dword [ebp - 0x1c]
mov ecx, esi
call fcn.004d4235
push eax
push 0x416290
push esi
call fcn.004d3d0f
mov ecx, dword [ebp - 0x18]
movzx eax, cx
push eax
shr ecx, 0x10
push ecx
push 0x4162bc
push esi
call fcn.004d3d0f
add esp, 0x1c
push ebx
push 0x4162e0
push esi
call fcn.004d3d0f
add esp, 0xc
push dword [ebp - 0x58]
mov ecx, esi
call fcn.004d42af
push eax
push dword [ebp - 0x6c]
mov ecx, esi
call fcn.004d4275
push eax
push dword [ebp - 0x74]
push dword [ebp - 0x78]
push 0x416300
push esi
call fcn.004d3d0f
mov edi, dword [ebp - 0x86fc]
add esp, 0x18
test edi, edi
je 0x4d5cdb
push 0x416318
push esi
call fcn.004d3d0f
push 0x416338
push esi
call fcn.004d3d0f
add esp, 0x10
test edi, edi
je 0x4d5cf2
lea edi, [ebp - 0x8457]
test byte [edi - 0x21], 1
mov eax, 0x416354
jne 0x4d5ca7
mov eax, 0x4276fc
push eax
movzx eax, byte [edi]
push eax
movzx eax, word [edi - 5]
push eax
movzx eax, word [edi - 7]
push eax
movzx eax, word [edi - 0x1d]
push eax
push ebx
push 0x416360
push esi
call fcn.004d3d0f
add esp, 0x20
inc ebx
add edi, 0x108
cmp ebx, dword [ebp - 0x86fc]
jb 0x4d5c97
jmp 0x4d5cf2
test byte [ebp - 0x34], 1
je 0x4d5d86
push 0x416384
push esi
call fcn.004d3d0f
pop ecx
pop ecx
test byte [ebp - 0x34], 1
je 0x4d5d86
movzx eax, byte [ebp - 0x86f5]
mov ecx, dword [ebp - 0x86f8]
push eax
movzx eax, byte [ebp - 0x86f6]
push eax
movzx eax, ch
push eax
movzx eax, cl
push eax
push 0x4163a0
push esi
call fcn.004d3d0f
movzx eax, word [ebp - 0x86f4]
push eax
push 0x4163bc
push esi
call fcn.004d3d0f
lea eax, [ebp - 0x84f8]
push eax
push 0x4163d0
push esi
call fcn.004d3d0f
lea eax, [ebp - 0x84d8]
push eax
push 0x4163e4
push esi
call fcn.004d3d0f
lea eax, [ebp - 0x84b8]
push eax
push 0x4163fc
push esi
call fcn.004d3d0f
add esp, 0x48
lea eax, [ebp - 0x8498]
push eax
push 0x416414
push esi
call fcn.004d3d0f
add esp, 0xc
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8704]
call fcn.004d21b8
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0045276d
leave
ret 4