Function at 0x421e10
Capabilities:
Connect pipe
Read file on windows

Disassembly:
push esi
mov esi, ecx
cmp byte [esi + 0x7c], 0
jne 0x4210be
mov eax, dword [esi + 0x48]
test eax, eax
je 0x42108e
push eax
call dword [sym.imp.KERNEL32.dll_UnregisterWait]
mov dword [esi + 0x48], 0
mov eax, dword [esi + 0x44]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x4210a6
push eax
call edi
mov dword [esi + 0x44], 0
mov eax, dword [esi + 0x90]
test eax, eax
je 0x4210bd
push eax
call edi
mov dword [esi + 0x90], 0
pop edi
pop esi
ret
push esi
mov esi, ecx
mov eax, dword [esi + 0x90]
push eax
call dword [sym.imp.KERNEL32.dll_ResetEvent]
test eax, eax
jne 0x42117a
mov ecx, dword [esi + 0x90]
push ecx
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov dword [esi + 0x78], 1
pop esi
ret
mov eax, dword [esi + 0x44]
lea edx, [esi + 0x80]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_ConnectNamedPipe]
test eax, eax
jne 0x421164
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x217
je 0x4211ac
cmp eax, 0x3e5
jne 0x421164
mov dword [esi + 0x78], 3
pop esi
ret
mov edx, dword [esi + 0x90]
push edx
mov dword [esi + 0x78], 4
call dword [sym.imp.KERNEL32.dll_SetEvent]
test eax, eax
jne 0x4211cb
mov dword [esi + 0x78], 1
pop esi
ret
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 0x90]
xor ebx, ebx
push eax
mov dword [esi + 0xc0], ebx
mov dword [esi + 0x80], ebx
mov dword [esi + 0x84], ebx
mov dword [esi + 0x8c], ebx
mov dword [esi + 0x88], ebx
call dword [sym.imp.KERNEL32.dll_ResetEvent]
test eax, eax
jne 0x42148c
mov ecx, dword [esi + 0x90]
push ecx
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov dword [esi + 0x78], 1
pop esi
pop ebx
ret
mov edx, dword [esi + 0x44]
push edx
call dword [sym.imp.KERNEL32.dll_DisconnectNamedPipe]
test eax, eax
jne 0x4214b1
mov eax, dword [esi + 0x90]
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov dword [esi + 0x78], 1
pop esi
pop ebx
ret
cmp byte [esi + 0x7c], bl
jne 0x4214d5
mov ecx, dword [esi + 0x90]
push ecx
mov dword [esi + 0x78], 2
call dword [sym.imp.KERNEL32.dll_SetEvent]
test eax, eax
jne 0x4214d5
mov dword [esi + 0x78], 1
pop esi
pop ebx
ret
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 0x94]
mov ebx, 1
cmp eax, 4
je 0x421d21
cmp eax, ebx
jne 0x421d38
cmp dword [esi + 0x98], 0
je 0x421d38
cmp dword [esi + 0xa0], 0
je 0x421d38
cmp dword [esi + 0xa4], 0
je 0x421d38
cmp dword [esi + 0xa8], 0
je 0x421d38
cmp eax, 4
jne 0x421d5a
mov eax, dword [esi + 0x68]
test eax, eax
je 0x421d38
mov ecx, dword [esi + 0x98]
mov edx, dword [esi + 0x6c]
push ecx
push edx
call eax
add esp, 8
mov eax, dword [esi + 0x90]
push eax
mov dword [esi + 0x78], 0xa
call dword [sym.imp.KERNEL32.dll_SetEvent]
test eax, eax
jne 0x421e02
mov dword [esi + 0x78], ebx
pop esi
pop ebx
ret
push edi
push 0x44
call fcn.00426f3b
add esp, 4
test eax, eax
je 0x421d9f
mov edx, dword [esi + 0xa8]
lea ecx, [esi + 0xac]
push ecx
mov ecx, dword [esi + 0xa4]
push edx
mov edx, dword [esi + 0xa0]
push ecx
mov ecx, dword [esi + 0x9c]
push edx
mov edx, dword [esi + 0x98]
push ecx
push edx
push esi
mov ecx, eax
call fcn.004220e0
mov edi, eax
jmp 0x421da1
xor edi, edi
mov ecx, edi
call fcn.00421f60
test al, al
jne 0x421db5
mov eax, dword [esi + 0x90]
push eax
jmp 0x421dc8
push edi
mov ecx, esi
call fcn.00421c40
test al, al
jne 0x421df4
mov ecx, dword [esi + 0x90]
push ecx
mov dword [esi + 0x78], 0xa
call dword [sym.imp.KERNEL32.dll_SetEvent]
test eax, eax
jne 0x421ddc
mov dword [esi + 0x78], ebx
test edi, edi
je 0x421e01
mov ecx, edi
call fcn.00422140
push edi
call fcn.00426825
add esp, 4
pop edi
pop esi
pop ebx
ret
mov dword [esi + 0xc0], edi
mov dword [esi + 0x78], 7
pop edi
pop esi
pop ebx
ret
cmp byte [ecx + 0x7c], 0
je 0x421e2b
mov eax, dword [ecx + 0x90]
push eax
mov dword [ecx + 0x78], 1
call dword [sym.imp.KERNEL32.dll_ResetEvent]
ret
mov eax, dword [ecx + 0x78]
dec eax
cmp eax, 9
ja case.default.0x421e34
jmp dword [eax*4 + 0x421e78]
jmp 0x421070
jmp 0x421150
jmp fcn.004211d0
jmp fcn.00421240
jmp fcn.004212d0
jmp 0x421ce0
jmp fcn.00421340
jmp fcn.004213b0
jmp fcn.00421650
jmp 0x421440
mov dword [ecx + 0x78], 1
ret