Function at 0x412890
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x506310
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
sub esp, 0x50
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x18], ecx
mov byte [ebp - 0x11], 0
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x101c]
and ecx, 0x10
je 0x412a13
push 0
lea edx, [ebp - 0x1c]
push edx
mov eax, dword [ebp - 0x18]
add eax, 0x1008
push eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx + 0x1004]
push edx
call dword [sym.imp.KERNEL32.dll_GetOverlappedResult]
test eax, eax
je 0x4128fe
mov dword [ebp - 0x20], 1
jmp 0x412905
mov dword [ebp - 0x20], 0
mov al, byte [ebp - 0x20]
mov byte [ebp - 0x11], al
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx + 0x101c]
mov dword [ebp - 0x24], edx
cmp dword [ebp - 0x24], 0x11
je 0x412928
cmp dword [ebp - 0x24], 0x12
je 0x412957
jmp 0x4129f8
movzx eax, byte [ebp - 0x11]
test eax, eax
jne 0x412945
mov ecx, dword [ebp - 0x18]
call fcn.00412d90
mov ecx, dword [ebp - 0x18]
call fcn.00412bc0
jmp 0x412b50
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x101c], 0x12
jmp 0x412a13
movzx edx, byte [ebp - 0x11]
test edx, edx
je 0x412965
cmp dword [ebp - 0x1c], 0
jne 0x41297a
mov ecx, dword [ebp - 0x18]
call fcn.00412d90
mov ecx, dword [ebp - 0x18]
call fcn.00412bc0
jmp 0x412b50
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
mov dword [eax + 0x1020], ecx
mov dword [ebp - 4], 0
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x1020]
push eax
mov ecx, dword [ebp - 0x18]
push ecx
lea ecx, [ebp - 0x34]
call fcn.00411920
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x30], edx
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x30]
push eax
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ecx + 0x1000]
call fcn.00412660
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x34]
call fcn.00411be0
jmp 0x4129d6
mov dword [ebp - 4], 0xffffffff
jmp 0x4129e6
mov edx, dword [ebp - 0x18]
mov dword [edx + 0x101c], 2
jmp 0x412b50
push str.Invalid_pipe_instance_state_while_handling_event_signal_with_pending_I_O.
lea ecx, [ebp - 0x54]
call fcn.004036b0
push 0x58c824
lea eax, [ebp - 0x54]
push eax
call fcn.004b84f4
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx + 0x101c]
and edx, 0xffffffef
mov dword [ebp - 0x38], edx
cmp dword [ebp - 0x38], 2
je 0x412a2d
jmp 0x412b35
mov eax, dword [ebp - 0x18]
add eax, 0x1008
push eax
mov ecx, dword [ebp - 0x18]
add ecx, 0x1020
push ecx
push 0x1000
mov edx, dword [ebp - 0x18]
push edx
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x1004]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x412a66
mov dword [ebp - 0x28], 1
jmp 0x412a6d
mov dword [ebp - 0x28], 0
mov dl, byte [ebp - 0x28]
mov byte [ebp - 0x11], dl
movzx eax, byte [ebp - 0x11]
test eax, eax
je 0x412af8
mov ecx, dword [ebp - 0x18]
cmp dword [ecx + 0x1020], 0
je 0x412af8
mov dword [ebp - 4], 3
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x1020]
push eax
mov ecx, dword [ebp - 0x18]
push ecx
lea ecx, [ebp - 0x44]
call fcn.00411920
mov dword [ebp - 0x3c], eax
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x40], edx
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x40]
push eax
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ecx + 0x1000]
call fcn.00412660
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x44]
call fcn.00411be0
jmp 0x412ad7
mov dword [ebp - 4], 0xffffffff
jmp 0x412ae7
mov edx, dword [ebp - 0x18]
mov dword [edx + 0x101c], 2
jmp 0x412b50
movzx eax, byte [ebp - 0x11]
test eax, eax
jne 0x412b21
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0x3e5
jne 0x412b21
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x101c], 0x12
jmp 0x412b50
mov ecx, dword [ebp - 0x18]
call fcn.00412d90
mov ecx, dword [ebp - 0x18]
call fcn.00412bc0
jmp 0x412b50
push str.Invalid_pipe_instance_state_while_handling_event_signal_state_transition.
lea ecx, [ebp - 0x60]
call fcn.004036b0
push 0x58c824
lea edx, [ebp - 0x60]
push edx
call fcn.004b84f4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret