Function at 0x251314e0
Capabilities:
Read pipe
Write pipe

Disassembly:
push ebp
mov ebp, esp
lea esp, [esp - 0x264]
push ebx
push esi
push edi
mov edi, eax
mov dword [ebp - 0x254], edx
mov dword [ebp - 0x250], ecx
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x24c], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x25c], eax
mov ebx, dword [ebp + 0xc]
mov al, byte [ebp + 8]
mov byte [ebp - 0x258], al
mov byte [ebp - 0x264], 0
mov dword [ebp - 0x260], 0
lea esi, [ebp - 0x248]
mov al, 0
mov edx, 0x20a
mov cl, al
mov eax, esi
call fcn.251225e0
mov eax, 0x25137ebc
push eax
lea eax, [ebp - 0x248]
push eax
call sub.kernel32.dll_lstrcpyW
mov eax, edi
push eax
lea eax, [ebp - 0x248]
push eax
call sub.kernel32.dll_lstrcatW
push ebx
lea eax, [ebp - 0x248]
push eax
call sub.kernel32.dll_WaitNamedPipeW
test eax, eax
je 0x251317ac
push 0
push 0x40000000
push 3
push 0
push 0
push 0xc0000000
lea eax, [ebp - 0x248]
push eax
call sub.kernel32.dll_CreateFileW
mov ebx, eax
cmp ebx, 0xffffffff
je 0x251317ac
push 0
push 0
push 0xffffffffffffffff
push 0
call sub.kernel32.dll_CreateEventW
mov dword [ebp - 4], eax
test eax, eax
jne 0x251315d4
call sub.kernel32.dll_GetLastError
mov dword [ebp - 0x260], eax
push ebx
call sub.kernel32.dll_CloseHandle
push dword [ebp - 0x260]
call sub.kernel32.dll_SetLastError
jmp 0x251317ac
mov dword [ebp - 8], 2
push 0
push 0
lea eax, [ebp - 8]
push eax
push ebx
call sub.kernel32.dll_SetNamedPipeHandleState
test eax, eax
jne 0x25131616
call sub.kernel32.dll_GetLastError
mov dword [ebp - 0x260], eax
push ebx
call sub.kernel32.dll_CloseHandle
push dword [ebp - 4]
call sub.kernel32.dll_CloseHandle
push dword [ebp - 0x260]
call sub.kernel32.dll_SetLastError
jmp 0x251317ac
push 0
push 0x14
lea eax, [ebp - 0x20]
push eax
call fcn.2512b3d0
mov eax, dword [ebp - 4]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], 0
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 0x25c]
push dword [ebp - 0x24c]
push dword [ebp - 0x250]
push dword [ebp - 0x254]
push ebx
call sub.kernel32.dll_TransactNamedPipe
test eax, eax
jne 0x25131789
call sub.kernel32.dll_GetLastError
mov dword [ebp - 0x260], eax
cmp eax, 0x3e5
jne 0x2513176e
test dword [ebp - 0x25c], 0xffffffff
jne 0x251316af
mov byte [ebp - 0x264], 1
mov dword [ebp - 0x260], 0
push ebx
call sub.kernel32.dll_CloseHandle
push dword [ebp - 4]
call sub.kernel32.dll_CloseHandle
push dword [ebp - 0x260]
call sub.kernel32.dll_SetLastError
jmp 0x251317ac
push dword [ebp - 4]
call sub.kernel32.dll_ResetEvent
mov al, byte [ebp - 0x258]
test al, al
je 0x25131704
lea esi, [esi]
push 0xff
push 0xffffffffffffffff
push 0
lea eax, [ebp - 4]
push eax
push 1
call sub.user32.dll_MsgWaitForMultipleObjects
cmp eax, 1
jne 0x25131704
push 0
push 0
push 0
lea eax, [ebp - 0x3c]
push eax
call sub.user32.dll_GetMessageW
test eax, eax
je 0x251316c4
lea eax, [ebp - 0x3c]
push eax
call sub.user32.dll_TranslateMessage
lea eax, [ebp - 0x3c]
push eax
call sub.user32.dll_DispatchMessageW
jmp 0x251316c4
push 0xffffffffffffffff
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x20]
push eax
push ebx
call sub.kernel32.dll_GetOverlappedResult
test eax, eax
jne 0x2513173e
call sub.kernel32.dll_GetLastError
mov dword [ebp - 0x260], eax
push ebx
call sub.kernel32.dll_CloseHandle
push dword [ebp - 4]
call sub.kernel32.dll_CloseHandle
push dword [ebp - 0x260]
call sub.kernel32.dll_SetLastError
jmp 0x251317ac
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x25c]
jae 0x25131789
mov dword [ebp - 0x260], 0xd
push ebx
call sub.kernel32.dll_CloseHandle
push dword [ebp - 4]
call sub.kernel32.dll_CloseHandle
push dword [ebp - 0x260]
call sub.kernel32.dll_SetLastError
jmp 0x251317ac
push ebx
call sub.kernel32.dll_CloseHandle
push dword [ebp - 4]
call sub.kernel32.dll_CloseHandle
push dword [ebp - 0x260]
call sub.kernel32.dll_SetLastError
jmp 0x251317ac
mov byte [ebp - 0x264], 1
mov eax, ebx
push eax
call sub.kernel32.dll_CloseHandle
push dword [ebp - 4]
call sub.kernel32.dll_CloseHandle
mov eax, dword [ebp - 0x260]
push eax
call sub.kernel32.dll_SetLastError
mov al, byte [ebp - 0x264]
pop edi
pop esi
pop ebx
leave
ret 0x10