Function at 0x40f892
Capabilities:
Connect pipe
Read file on windows
Write file on windows
Write pipe

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov ecx, dword [ebp + 8]
push ebx
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x24], eax
mov eax, dword [ecx + 0x14]
push esi
mov dword [ebp - 0x20], eax
mov eax, dword [ecx + 4]
push edi
push eax
xor esi, esi
mov dword [ebp - 0x14], eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, eax
mov dword [ebp - 0xc], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
and dword [ebp - 0x1c], esi
and dword [ebp + 8], esi
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x18], eax
xor eax, eax
mov dword [ebp - 0x10], eax
mov ebx, dword [ebp + eax*4 - 0x24]
cmp ebx, 0xffffffff
je 0x40fb61
push 0
push 0
lea eax, [ebp - 4]
push eax
push ebx
mov dword [ebp - 4], 1
call dword [sym.imp.KERNEL32.dll_SetNamedPipeHandleState]
test eax, eax
je 0x40fb2a
and dword [ebp - 8], 0
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_ConnectNamedPipe]
test eax, eax
jne 0x40f94b
call edi
cmp eax, 0x217
je 0x40fa06
cmp eax, 0x218
jne 0x40f9f3
mov eax, dword [ebp - 8]
cmp eax, 0x708
jae 0x40fa0d
inc eax
push 0x64
mov esi, 0x80070218
mov dword [ebp - 8], eax
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp esi, 0x80070218
je 0x40f907
test esi, esi
js 0x40fa12
and dword [ebp - 4], 0
push 0
push 0
lea eax, [ebp - 4]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_SetNamedPipeHandleState]
test eax, eax
je 0x40faf9
push 0
lea eax, [ebp + 8]
push eax
push 4
lea eax, [ebp - 0xc]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x40fac8
push 0
lea eax, [ebp + 8]
push eax
push dword [ebp - 0xc]
push dword [ebp - 0x14]
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x40fa94
push 0
lea eax, [ebp + 8]
push eax
push 4
lea eax, [ebp - 0x18]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x40fa60
push 0
lea eax, [ebp + 8]
push eax
push 4
lea eax, [ebp - 0x1c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x40fa2c
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, 2
jb 0x40f8d8
jmp 0x40fb61
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
jmp 0x40f953
xor esi, esi
jmp 0x40f95b
mov esi, 0x800705b4
push esi
push 0x1fb
push str.pipe.cpp
call fcn.0042fef9
push str.Failed_to_wait_for_child_to_connect_to_pipe.
jmp 0x40fb59
call edi
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov eax, 0x80004005
test esi, esi
cmovns esi, eax
push esi
push 0x217
push str.pipe.cpp
call fcn.0042fef9
push str.Failed_to_read_ACK_from_pipe.
jmp 0x40fb59
call edi
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov eax, 0x80004005
test esi, esi
cmovns esi, eax
push esi
push 0x211
push str.pipe.cpp
call fcn.0042fef9
push str.Failed_to_write_our_process_id_to_pipe.
jmp 0x40fb59
call edi
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov eax, 0x80004005
test esi, esi
cmovns esi, eax
push esi
push 0x20c
push str.pipe.cpp
call fcn.0042fef9
push str.Failed_to_write_secret_to_pipe.
jmp 0x40fb59
call edi
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov eax, 0x80004005
test esi, esi
cmovns esi, eax
push esi
push 0x207
push str.pipe.cpp
call fcn.0042fef9
push str.Failed_to_write_secret_length_to_pipe.
jmp 0x40fb59
call edi
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov eax, 0x80004005
test esi, esi
cmovns esi, eax
push esi
push 0x201
push str.pipe.cpp
call fcn.0042fef9
push str.Failed_to_reset_pipe_to_blocking.
jmp 0x40fb59
call edi
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov eax, 0x80004005
test esi, esi
cmovns esi, eax
push esi
push 0x1d6
push str.pipe.cpp
call fcn.0042fef9
push str.Failed_to_set_pipe_to_non_blocking.
push esi
call fcn.00430877
pop ecx
pop ecx
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret 4