Function at 0x415c52
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
push esi
push edi
mov eax, dword [ecx + 0x10]
xor ebx, ebx
mov dword [ebp - 0x24], eax
mov esi, ebx
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0x20], eax
mov eax, dword [ecx + 4]
push eax
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]
mov dword [ebp - 0x18], eax
mov eax, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x10], ebx
mov edi, dword [ebp + eax*4 - 0x24]
cmp edi, 0xffffffff
je 0x415f32
push ebx
push ebx
lea eax, [ebp - 8]
mov dword [ebp - 8], 1
push eax
push edi
call dword [sym.imp.KERNEL32.dll_SetNamedPipeHandleState]
test eax, eax
je 0x415ef7
push 0
push edi
call dword [sym.imp.KERNEL32.dll_ConnectNamedPipe]
test eax, eax
jne 0x415d04
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp esi, 0x217
je 0x415dbd
cmp esi, 0x218
jne 0x415da7
cmp ebx, 0x708
jae 0x415dc6
push 0x64
mov esi, 0x80070218
inc ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp esi, 0x80070218
je 0x415cbd
test esi, esi
js 0x415dcb
xor ebx, ebx
push ebx
push ebx
lea eax, [ebp - 8]
mov dword [ebp - 8], ebx
push eax
push edi
call dword [sym.imp.KERNEL32.dll_SetNamedPipeHandleState]
test eax, eax
je 0x415ec2
push ebx
lea eax, [ebp - 4]
push eax
push 4
lea eax, [ebp - 0xc]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x415e8d
push ebx
lea eax, [ebp - 4]
push eax
push dword [ebp - 0xc]
push dword [ebp - 0x14]
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x415e55
push ebx
lea eax, [ebp - 4]
push eax
push 4
lea eax, [ebp - 0x18]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x415e1d
push ebx
lea eax, [ebp - 4]
push eax
push 4
lea eax, [ebp - 0x1c]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x415de5
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, 2
jb 0x415c94
jmp 0x415f32
test esi, esi
jle 0x415d0e
movzx esi, si
or esi, 0x80070000
jmp 0x415d0c
xor ebx, ebx
mov esi, ebx
jmp 0x415d16
mov esi, 0x800705b4
push esi
push 0x1f3
push str.c:_agent_work18_swix_src_burnenginepipe.cpp
call fcn.00403953
push str.Failed_to_wait_for_child_to_connect_to_pipe.
jmp 0x415f2a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x415dfc
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x415e03
mov esi, 0x80004005
push esi
push 0x20f
push str.c:_agent_work18_swix_src_burnenginepipe.cpp
call fcn.00403953
push str.Failed_to_read_ACK_from_pipe.
jmp 0x415f2a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x415e34
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x415e3b
mov esi, 0x80004005
push esi
push 0x209
push str.c:_agent_work18_swix_src_burnenginepipe.cpp
call fcn.00403953
push str.Failed_to_write_our_process_id_to_pipe.
jmp 0x415f2a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x415e6c
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x415e73
mov esi, 0x80004005
push esi
push 0x204
push str.c:_agent_work18_swix_src_burnenginepipe.cpp
call fcn.00403953
push str.Failed_to_write_secret_to_pipe.
jmp 0x415f2a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x415ea4
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x415eab
mov esi, 0x80004005
push esi
push 0x1ff
push str.c:_agent_work18_swix_src_burnenginepipe.cpp
call fcn.00403953
push str.Failed_to_write_secret_length_to_pipe.
jmp 0x415f2a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x415ed9
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x415ee0
mov esi, 0x80004005
push esi
push 0x1f9
push str.c:_agent_work18_swix_src_burnenginepipe.cpp
call fcn.00403953
push str.Failed_to_reset_pipe_to_blocking.
jmp 0x415f2a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x415f0e
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x415f15
mov esi, 0x80004005
push esi
push 0x1ce
push str.c:_agent_work18_swix_src_burnenginepipe.cpp
call fcn.00403953
push str.Failed_to_set_pipe_to_non_blocking.
push esi
call fcn.0044466b
pop ecx
pop ecx
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret 4