Function at 0x4d44e0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x2fe4
call fcn.005925e0
push ebx
mov ebx, dword [ebp + 0x10]
push esi
xor esi, esi
cmp ebx, esi
push edi
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], ecx
je 0x4d4506
mov dword [ebx], esi
or edi, 0xffffffff
mov edx, 0x3e7
lea ecx, [esp + 0xc00]
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x40], 0x2000
call fcn.00420e60
mov edx, 0x3e7
lea ecx, [esp + 0x430]
call fcn.00420e60
mov edx, 0x3e7
lea ecx, [esp + 0x818]
call fcn.00420e60
mov edx, 0x3e7
lea ecx, [esp + 0x48]
call fcn.00420e60
mov eax, dword [ebp + 8]
and eax, 1
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x2c], eax
je 0x4d465d
mov ecx, dword [ebp + 0xc]
call fcn.005612a0
test eax, eax
je 0x4d4597
mov edx, 1
lea ecx, [esp + 0xc00]
call fcn.00541a80
lea edx, [esp + 0x430]
mov ecx, 0xe7d
call fcn.0041f1a0
lea eax, [esp + 0x430]
push 0x20
push eax
call fcn.005912e0
add esp, 8
cmp eax, esi
je 0x4d45c1
mov byte [eax], 0
lea eax, [esp + 0x430]
lea edx, [eax + 1]
jmp 0x4d45d0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4d45d0
sub eax, edx
lea edx, [esp + 0x818]
mov ecx, 0xe75
mov dword [esp + 0x44], eax
call fcn.0041f1a0
lea ecx, [esp + 0x818]
push 0x20
push ecx
call fcn.005912e0
add esp, 8
cmp eax, esi
je 0x4d4607
mov byte [eax], 0
lea eax, [esp + 0x818]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4d4611
sub eax, edx
lea edx, [esp + 0x48]
mov ecx, 0xe76
mov dword [esp + 0x3c], eax
call fcn.0041f1a0
lea edx, [esp + 0x48]
push 0x20
push edx
call fcn.005912e0
add esp, 8
cmp eax, esi
je 0x4d4642
mov byte [eax], 0
lea eax, [esp + 0x48]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4d4650
sub eax, edx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x20]
push esi
push 0x80
push 3
push esi
push 3
push bind
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, edi
mov dword [esp + 0x20], eax
jne 0x4d4695
cmp ebx, esi
je 0x4d468a
mov dword [ebx], 1
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push esi
push esi
mov edx, 2
mov ecx, eax
call fcn.00490410
mov dword [esp + 0x10], eax
and eax, edx
cmp eax, edi
mov dword [esp + 0x14], edx
jne 0x4d46c4
cmp ebx, esi
je 0x4d492a
mov dword [ebx], 1
jmp 0x4d492a
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov eax, ebx
cdq
cmp edx, esi
jl 0x4d46e3
jg 0x4d46dd
cmp eax, ecx
jbe 0x4d46e3
mov ebx, ecx
mov dword [esp + 0x40], ebx
mov eax, ebx
cdq
sub ecx, eax
mov eax, dword [esp + 0x30]
sbb esi, edx
cmp ecx, eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], esi
jne 0x4d4704
cmp esi, dword [esp + 0x34]
je 0x4d492a
push esi
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x24]
mov dword [esp + 0x34], ecx
push ecx
xor edx, edx
mov ecx, esi
call fcn.00490410
and eax, edx
cmp eax, 0xffffffff
je 0x4d4914
xor eax, eax
push eax
mov ecx, 0x802
lea edi, [esp + 0xfec]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x28]
push ecx
push ebx
lea edx, [esp + 0xff4]
push edx
push esi
mov dword [esp + 0x38], 0
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4d4914
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x4d492a
dec ecx
xor ebx, ebx
test ebx, ebx
mov dword [esp + 0x24], ecx
mov esi, ecx
jl 0x4d48e7
jg 0x4d4790
test esi, esi
jb 0x4d48e7
jmp 0x4d4790
mov ecx, dword [esp + 0x24]
lea esp, [esp]
mov al, byte [esp + esi + 0xfe8]
cmp al, 0xd
je 0x4d47a3
cmp al, 0xa
jne 0x4d48bb
xor eax, eax
cmp ebx, eax
jg 0x4d487c
jl 0x4d47b7
cmp esi, ecx
jae 0x4d487c
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4d4820
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x44]
push eax
push ecx
push edx
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x828]
push ecx
lea edx, [esp + 0x444]
push edx
mov edx, dword [esp + 0x34]
lea eax, [esp + 0xc18]
push eax
lea ecx, [esp + esi + 0x1005]
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.004d42d0
mov edi, eax
test byte [ebp + 8], 2
je 0x4d4827
push 0x5f1aac
push edi
call fcn.005a299c
add esp, 8
test eax, eax
jne 0x4d4827
mov edi, 0x5a4bec
jmp 0x4d4827
lea edi, [esp + esi + 0xfe9]
mov eax, dword [ebp + 8]
test eax, eax
je 0x4d483b
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4d487c
cmp byte [edi], 0
je 0x4d487c
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x4d492a
dec eax
push 0
mov edx, edi
xor ecx, ecx
mov dword [esp + 0x2c], eax
call fcn.004d38f0
test eax, eax
je 0x4d491d
mov ecx, dword [esp + 0x1c]
test ecx, ecx
mov dword [eax + 0x40], ecx
jne 0x4d486f
mov dword [eax + 0x44], eax
jmp 0x4d4878
mov edx, dword [ecx + 0x44]
mov dword [eax + 0x44], edx
mov dword [ecx + 0x44], eax
mov dword [esp + 0x1c], eax
cmp byte [esp + esi + 0xfe8], 0xa
mov byte [esp + esi + 0xfe8], 0
jne 0x4d48b1
test ebx, ebx
jl 0x4d48e7
jg 0x4d4898
test esi, esi
jbe 0x4d48d5
mov al, byte [esp + esi + 0xfe7]
add esi, 0xffffffff
adc ebx, 0xffffffff
cmp al, 0xd
jne 0x4d48c1
mov byte [esp + esi + 0xfe8], 0
test ebx, ebx
jl 0x4d48e7
jg 0x4d48bb
test esi, esi
jbe 0x4d48d5
add esi, 0xffffffff
adc ebx, 0xffffffff
test ebx, ebx
jg 0x4d4785
jl 0x4d48e7
test esi, esi
jae 0x4d4785
jmp 0x4d48e7
test ebx, ebx
jg 0x4d46c4
jl 0x4d48e7
test esi, esi
jae 0x4d46c4
lea eax, [esp + 0xfe8]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4d48f1
mov ecx, dword [esp + 0x10]
sub eax, edx
add ecx, eax
mov eax, dword [esp + 0x14]
adc eax, 0
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
jmp 0x4d46c4
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x4d492a
jmp 0x4d4924
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x4d492a
mov dword [eax], 1
mov ecx, dword [esp + 0x20]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc