Function at 0x251282f8
Capabilities:
Read pipe
Write pipe

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdb0
push ebx
push esi
push edi
mov dword [ebp - 8], ecx
mov dword [ebp - 4], edx
mov edi, eax
xor ebx, ebx
xor esi, esi
lea eax, [ebp - 0x24e]
xor ecx, ecx
mov edx, 0x20a
call fcn.25123e60
push 0x2512855c
lea eax, [ebp - 0x24e]
push eax
call sub.kernel32.dll_lstrcpyW
push edi
lea eax, [ebp - 0x24e]
push eax
call sub.kernel32.dll_lstrcatW
mov eax, dword [ebp + 0xc]
push eax
lea eax, [ebp - 0x24e]
push eax
call sub.kernel32.dll_WaitNamedPipeW
cmp eax, 1
sbb eax, eax
inc eax
test al, al
je 0x25128551
push 0
push 0x40000000
push 3
push 0
push 0
push 0xc0000000
lea eax, [ebp - 0x24e]
push eax
call sub.kernel32.dll_CreateFileW
mov edi, eax
cmp edi, 0xffffffff
je 0x25128551
push 0
push 0
push 0xffffffffffffffff
push 0
call sub.kernel32.dll_CreateEventW
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x251283b5
call sub.kernel32.dll_GetLastError_1
mov esi, eax
push edi
call sub.kernel32.dll_CloseHandle_1
push esi
call sub.kernel32.dll_SetLastError
jmp 0x25128551
mov dword [ebp - 0x10], 2
push 0
push 0
lea eax, [ebp - 0x10]
push eax
push edi
call sub.kernel32.dll_SetNamedPipeHandleState
cmp eax, 1
sbb eax, eax
inc eax
test al, al
jne 0x251283f5
call sub.kernel32.dll_GetLastError_1
mov esi, eax
push edi
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_CloseHandle_1
push esi
call sub.kernel32.dll_SetLastError
jmp 0x25128551
lea eax, [ebp - 0x28]
xor ecx, ecx
mov edx, 0x14
call fcn.25123e60
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x18], eax
xor eax, eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x14]
push eax
mov eax, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 4]
push eax
push edi
call sub.kernel32.dll_TransactNamedPipe
cmp eax, 1
sbb eax, eax
inc eax
test al, al
jne 0x2512853a
call sub.kernel32.dll_GetLastError_1
mov esi, eax
cmp esi, 0x3e5
jne 0x25128523
cmp dword [ebp + 0x10], 0
jne 0x25128472
mov bl, 1
xor esi, esi
push edi
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_CloseHandle_1
push esi
call sub.kernel32.dll_SetLastError
jmp 0x25128551
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_ResetEvent
cmp byte [ebp + 8], 1
jne 0x251284c7
push 0x4ff
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0xc]
push eax
push 1
call sub.user32.dll_MsgWaitForMultipleObjects
cmp eax, 1
jne 0x251284c7
push 0
push 0
push 0
lea eax, [ebp - 0x44]
push eax
call sub.user32.dll_GetMessageW
cmp eax, 1
sbb eax, eax
inc eax
cmp al, 1
jne 0x25128481
lea eax, [ebp - 0x44]
push eax
call sub.user32.dll_TranslateMessage
lea eax, [ebp - 0x44]
push eax
call sub.user32.dll_DispatchMessageW
jmp 0x25128481
push 0xffffffffffffffff
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x28]
push eax
push edi
call sub.kernel32.dll_GetOverlappedResult
cmp eax, 1
sbb eax, eax
inc eax
test al, al
jne 0x251284ff
call sub.kernel32.dll_GetLastError_1
mov esi, eax
push edi
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_CloseHandle_1
push esi
call sub.kernel32.dll_SetLastError
jmp 0x25128551
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp + 0x10]
jae 0x2512853a
mov esi, 0xd
push edi
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_CloseHandle_1
push esi
call sub.kernel32.dll_SetLastError
jmp 0x25128551
push edi
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_CloseHandle_1
push esi
call sub.kernel32.dll_SetLastError
jmp 0x25128551
mov bl, 1
push edi
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_CloseHandle_1
push esi
call sub.kernel32.dll_SetLastError
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10