Function at 0x4a96f0
Capabilities:
Read file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x1034]
mov eax, 0x1034
call fcn.004bffc0
push 0xffffffffffffffff
push 0x4e7818
mov eax, dword fs:[0]
push eax
sub esp, 0x10
mov eax, dword [0x50a0b0]
xor eax, ebp
mov dword [ebp + 0x1030], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 0x103c]
lea eax, [ebp + 0x30]
mov esi, dword [ebp + 0x1040]
push 0x1000
push 0
push eax
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x14], esi
call fcn.004c2200
add esp, 0xc
mov dword [ebp - 0x10], 0
mov ecx, esi
push 0
push 0x4e93f4
call fcn.0040b5f0
jmp 0x4a9770
mov eax, dword [ebp + 0x1044]
test eax, eax
je 0x4a9783
cmp byte [eax], 0
jne 0x4a991e
push 0
lea eax, [ebp - 0x10]
push eax
push 0xfff
lea eax, [ebp + 0x30]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x4a97bf
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
je 0x4a97b5
cmp eax, 0xe8
jne 0x4a9910
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x4a9770
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x4a991e
cmp eax, 0x1000
jae 0x4a9968
lea ecx, [ebp + 0x30]
mov byte [ebp + eax + 0x30], 0
mov dword [ebp + 0x28], 0
lea edx, [ecx + 1]
mov dword [ebp + 0x2c], 0xf
mov byte [ebp + 0x18], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a97f2
sub ecx, edx
lea eax, [ebp + 0x30]
push ecx
push eax
lea ecx, [ebp + 0x18]
call fcn.0040b5f0
cmp dword [ebp + 0x2c], 0x10
lea eax, [ebp + 0x18]
push dword [ebp + 0x28]
cmovae eax, dword [ebp + 0x18]
mov ecx, esi
push eax
mov dword [ebp - 4], 0
call fcn.0040b190
mov edx, dword [ebp + 0x2c]
mov dword [ebp - 4], 0xffffffff
cmp edx, 0x10
jb 0x4a9860
mov ecx, dword [ebp + 0x18]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4a9856
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a996d
push edx
push ecx
call fcn.004bf4bc
add esp, 8
cmp dword [esi + 0x14], 0x10
mov ebx, esi
jb 0x4a986a
mov ebx, dword [esi]
mov eax, dword [esi + 0x10]
cmp eax, 0xd
jb 0x4a98f9
add eax, 0xfffffff4
add eax, ebx
mov dword [ebp - 0x18], eax
sub eax, ebx
push eax
push 0x5e
push ebx
call fcn.004c2360
mov edi, eax
add esp, 0xc
test edi, edi
je 0x4a98f9
mov edx, edi
mov ecx, str.25521814
mov esi, 9
mov edi, edi
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x4a98b1
add edx, 4
add ecx, 4
sub esi, 4
jae 0x4a98a0
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x4a98d8
cmp esi, 0xfffffffd
je 0x4a98d4
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x4a98d8
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x4a98d8
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
jne 0x4a98d8
xor eax, eax
jmp 0x4a98dd
sbb eax, eax
or eax, 1
test eax, eax
je 0x4a990c
mov eax, dword [ebp - 0x18]
inc edi
sub eax, edi
push eax
push 0x5e
push edi
call fcn.004c2360
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x4a9892
or edi, 0xffffffff
cmp edi, 0xffffffff
jne 0x4a9944
mov esi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x1c]
jmp 0x4a9770
sub edi, ebx
jmp 0x4a98fc
push eax
push str.read_pipe_failed___u_n
call fcn.004a9c10
add esp, 8
or eax, 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x1030]
xor ecx, ebp
call fcn.004bf929
lea esp, [ebp + 0x1034]
pop ebp
ret
mov ecx, dword [ebp - 0x14]
lea eax, [ebp]
push edi
push 0
push eax
call fcn.0040e030
mov ecx, dword [ebp - 0x14]
push eax
call fcn.00404110
lea ecx, [ebp]
call fcn.00403830
xor eax, eax
jmp 0x4a9921
call fcn.004bfa7e
call fcn.004c4cda
int3