Function at 0x4e3b80
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x2fe4
call fcn.005cd640
push ebx
mov ebx, dword [ebp + 0x18]
push esi
xor esi, esi
cmp ebx, esi
push edi
je 0x4e3b9e
mov dword [ebx], esi
lea eax, [esp + 0xc00]
or edi, 0xffffffff
push 0x3e7
push eax
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x24], esi
mov dword [esp + 0x40], 0x2000
call fcn.00423a00
lea ecx, [esp + 0x438]
push 0x3e7
push ecx
call fcn.00423a00
lea edx, [esp + 0x828]
push 0x3e7
push edx
call fcn.00423a00
lea eax, [esp + 0x60]
push 0x3e7
push eax
call fcn.00423a00
mov eax, dword [ebp + 0x10]
add esp, 0x20
and eax, 1
mov dword [esp + 0x3c], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], eax
je 0x4e3cc3
mov ecx, dword [ebp + 0x14]
push ecx
call fcn.00582ac0
add esp, 4
test eax, eax
je 0x4e3c3b
lea edx, [esp + 0xc00]
push 3
push edx
call fcn.0055c730
add esp, 8
lea eax, [esp + 0x430]
push eax
push 0xe7d
call fcn.00421db0
lea eax, [esp + 0x438]
add esp, 8
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4e3c60
lea ecx, [esp + 0x818]
push ecx
sub eax, edx
push 0xe75
mov dword [esp + 0x4c], eax
call fcn.00421db0
lea eax, [esp + 0x820]
add esp, 8
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4e3c90
sub eax, edx
lea edx, [esp + 0x48]
push edx
push 0xe76
mov dword [esp + 0x3c], eax
call fcn.00421db0
lea eax, [esp + 0x50]
add esp, 8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4e3cb6
sub eax, edx
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 8]
push esi
push 0x80
push 3
push esi
push 1
push connect
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, edi
mov dword [esp + 0x24], eax
jne 0x4e3cf8
cmp ebx, esi
je 0x4e3cef
mov dword [ebx], 1
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 2
push esi
push esi
push eax
call fcn.0049b080
mov dword [esp + 0x20], eax
and eax, edx
add esp, 0x10
cmp eax, edi
mov dword [esp + 0x14], edx
jne 0x4e3d30
cmp ebx, esi
je 0x4e3fac
mov dword [ebx], 1
jmp 0x4e3fac
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov eax, ebx
cdq
cmp edx, esi
jl 0x4e3d4f
jg 0x4e3d49
cmp eax, ecx
jbe 0x4e3d4f
mov ebx, ecx
mov dword [esp + 0x38], ebx
mov eax, ebx
cdq
sub ecx, eax
mov eax, dword [esp + 0x28]
sbb esi, edx
cmp ecx, eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], esi
jne 0x4e3d70
cmp esi, dword [esp + 0x2c]
je 0x4e3fac
push 0
push esi
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x2c]
push ecx
push esi
mov dword [esp + 0x38], ecx
call fcn.0049b080
and eax, edx
add esp, 0x10
cmp eax, 0xffffffff
je 0x4e3f96
xor eax, eax
push eax
mov ecx, 0x802
lea edi, [esp + 0xfec]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x24]
push ecx
push ebx
lea edx, [esp + 0xff4]
push edx
push esi
mov dword [esp + 0x34], 0
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4e3f96
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x4e3fac
dec ecx
xor ebx, ebx
test ebx, ebx
mov dword [esp + 0x20], ecx
mov edi, ecx
jl 0x4e3f69
jg 0x4e3e00
test edi, edi
jb 0x4e3f69
jmp 0x4e3e00
mov ecx, dword [esp + 0x20]
jmp 0x4e3e00
mov al, byte [esp + edi + 0xfe8]
cmp al, 0xd
je 0x4e3e19
cmp al, 0xa
je 0x4e3e19
mov eax, edi
or eax, ebx
jne 0x4e3f3d
xor eax, eax
cmp ebx, eax
jg 0x4e3efe
jl 0x4e3e2d
cmp edi, ecx
jae 0x4e3efe
mov ecx, edi
or ecx, ebx
lea esi, [esp + 0xfe8]
je 0x4e3e41
lea esi, [esp + edi + 0xfe9]
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4e3ea7
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x44]
push edx
push eax
push ecx
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x828]
push eax
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x444]
push ecx
mov ecx, dword [ebp + 0x14]
lea edx, [esp + 0xc18]
push edx
push esi
push eax
push ecx
call fcn.004e3930
mov esi, eax
mov al, byte [ebp + 0x10]
add esp, 0x28
test al, 2
je 0x4e3ea7
push 0x63e254
push esi
call fcn.005e31f5
add esp, 8
test eax, eax
jne 0x4e3ea7
mov esi, 0x5e6c98
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x4e3ebb
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4e3efe
cmp byte [esi], 0
je 0x4e3efe
mov eax, dword [ebp + 0xc]
test eax, eax
jle 0x4e3fac
push 0
mov edx, eax
dec edx
push esi
push 0
mov dword [ebp + 0xc], edx
call fcn.004e2f90
add esp, 0xc
test eax, eax
je 0x4e3f9f
mov ecx, dword [esp + 0x1c]
test ecx, ecx
mov dword [eax + 0x40], ecx
jne 0x4e3ef1
mov dword [eax + 0x44], eax
jmp 0x4e3efa
mov edx, dword [ecx + 0x44]
mov dword [eax + 0x44], edx
mov dword [ecx + 0x44], eax
mov dword [esp + 0x1c], eax
cmp byte [esp + edi + 0xfe8], 0xa
mov byte [esp + edi + 0xfe8], 0
jne 0x4e3f33
test ebx, ebx
jl 0x4e3f69
jg 0x4e3f1a
test edi, edi
jbe 0x4e3f57
mov al, byte [esp + edi + 0xfe7]
add edi, 0xffffffff
adc ebx, 0xffffffff
cmp al, 0xd
jne 0x4e3f43
mov byte [esp + edi + 0xfe8], 0
test ebx, ebx
jl 0x4e3f69
jg 0x4e3f3d
test edi, edi
jbe 0x4e3f57
add edi, 0xffffffff
adc ebx, 0xffffffff
test ebx, ebx
jg 0x4e3df3
jl 0x4e3f69
test edi, edi
jae 0x4e3df3
jmp 0x4e3f69
test ebx, ebx
jg 0x4e3d30
jl 0x4e3f69
test edi, edi
jae 0x4e3d30
lea eax, [esp + 0xfe8]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4e3f73
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 0x4e3d30
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x4e3fac
jmp 0x4e3fa6
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x4e3fac
mov dword [eax], 1
mov ecx, dword [esp + 0x24]
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