Function at 0x41e540
Capabilities:
Read file on windows

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x422d73
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x98
mov eax, dword [0x42e07c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
cmp dword [edi + 0x18], 0xffffffff
mov eax, dword [ebx + 8]
mov dword [ebp - 0x54], eax
je 0x41e6c1
push 0
push 0
push 1
xorps xmm0, xmm0
mov dword [ebp - 0x20], 0
push 0
movups xmmword [ebp - 0x34], xmm0
mov dword [ebp - 0x24], 0
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x1c], eax
cmp eax, 0xffffffff
je 0x41e6ef
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [eax + eax]
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x20]
push eax
push dword [ebx + 0xc]
push dword [ebp - 0x54]
push dword [edi + 0x18]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
setne cl
mov byte [ebp - 0x35], cl
test eax, eax
jne 0x41e61d
call esi
cmp eax, 0x3e5
jne 0x41e673
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x1c]
push eax
push 2
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
sub eax, 0
je 0x41e641
sub eax, 1
je 0x41e71d
mov cl, byte [ebp - 0x35]
test cl, cl
je 0x41e5d0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0041ecc2
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 8
push 1
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x34]
push eax
push dword [edi + 0x18]
call dword [sym.imp.KERNEL32.dll_GetOverlappedResult]
test eax, eax
jne 0x41e621
call esi
cmp eax, 0x6d
je 0x41e779
cmp eax, 0xe9
je 0x41e779
jmp 0x41e74b
cmp eax, 0x6d
je 0x41e7a7
cmp eax, 0xe9
je 0x41e7d5
push str.Read_Error
lea ecx, [ebp - 0x88]
call fcn.00402d30
lea eax, [ebp - 0x88]
mov dword [ebp - 4], 7
push eax
lea ecx, [ebp - 0xa4]
call fcn.00401b80
push 0x42b38c
lea eax, [ebp - 0xa4]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
push str.CSharedMemoryChannelInvalidHandle
lea ecx, [ebp - 0x50]
call fcn.00402d30
lea eax, [ebp - 0x50]
mov dword [ebp - 4], 0
push eax
lea ecx, [ebp - 0x70]
call fcn.00401b80
push 0x42b38c
lea eax, [ebp - 0x70]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
push str.Failed_to_create_connection
lea ecx, [ebp - 0x50]
call fcn.00402d30
lea eax, [ebp - 0x50]
mov dword [ebp - 4], 1
push eax
lea ecx, [ebp - 0x70]
call fcn.00401b80
push 0x42b38c
lea eax, [ebp - 0x70]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
push str.InterruptedExeception
lea ecx, [ebp - 0x50]
call fcn.00402d30
lea eax, [ebp - 0x50]
mov dword [ebp - 4], 4
push eax
lea ecx, [ebp - 0x70]
call fcn.00401b80
push 0x42b38c
lea eax, [ebp - 0x70]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
push str.unexpected_error
lea ecx, [ebp - 0x50]
call fcn.00402d30
lea eax, [ebp - 0x50]
mov dword [ebp - 4], 3
push eax
lea ecx, [ebp - 0x70]
call fcn.00401b80
push 0x42b38c
lea eax, [ebp - 0x70]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
push str.InterruptedExeception
lea ecx, [ebp - 0x50]
call fcn.00402d30
lea eax, [ebp - 0x50]
mov dword [ebp - 4], 2
push eax
lea ecx, [ebp - 0x70]
call fcn.00401b80
push 0x42b38c
lea eax, [ebp - 0x70]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
push str.CInterruptedExeception
lea ecx, [ebp - 0x50]
call fcn.00402d30
lea eax, [ebp - 0x50]
mov dword [ebp - 4], 5
push eax
lea ecx, [ebp - 0x70]
call fcn.00401b80
push 0x42b38c
lea eax, [ebp - 0x70]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
push str.CInterruptedExeception
lea ecx, [ebp - 0x50]
call fcn.00402d30
lea eax, [ebp - 0x50]
mov dword [ebp - 4], 6
push eax
lea ecx, [ebp - 0x70]
call fcn.00401b80
push 0x42b38c
lea eax, [ebp - 0x70]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
int3