Function at 0x454d20
Capabilities:
Connect pipe
Create pipe

Disassembly:
sub esp, 0x344
push ebx
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov eax, dword [esi + 4]
mov dword [esi + 4], ebx
cmp eax, ebx
je 0x454d6f
push eax
call ebp
mov eax, dword [esi + 8]
cmp eax, ebx
je 0x454d58
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov eax, dword [esi + 8]
push eax
call ebp
mov dword [esi + 8], ebx
mov eax, dword [esi + 0xc]
cmp eax, ebx
je 0x454d6f
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov ecx, dword [esi + 0xc]
push ecx
call ebp
mov dword [esi + 0xc], ebx
cmp dword [0x591b7c], ebx
jne 0x454dc1
mov ecx, 0x44
xor eax, eax
lea edi, [esp + 0x14]
lea edx, [esp + 0x10]
rep stosd dword es:[edi], eax
push edx
mov dword [0x591b7c], 1
mov dword [esp + 0x14], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [esp + 0x20], 2
je 0x454dc1
pop edi
pop esi
pop ebp
mov dword [0x591b80], 1
xor eax, eax
pop ebx
add esp, 0x344
ret 8
cmp dword [0x591b80], ebx
jne 0x454f50
mov edx, dword [str..PipeOCULAR_]
cmp edx, ebx
je 0x454f50
mov ecx, 0x8b
xor eax, eax
lea edi, [esp + 0x126]
mov word [esp + 0x124], bx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [esp + 0x124]
push edx
push eax
call fcn.00423aea
mov eax, dword [esp + 0x360]
add esp, 8
cmp eax, ebx
je 0x454e27
push 0x104
lea ecx, [esp + 0x128]
push eax
push ecx
call fcn.00514b33
add esp, 0xc
mov edi, dword [esp + 0x35c]
cmp edi, ebx
jne 0x454e55
call fcn.00501a70
push eax
push ebx
push 0x8000
push 0x8000
push 1
push ebx
lea edx, [esp + 0x13c]
push 0x40000003
push edx
jmp 0x454e7a
call fcn.00501a70
push eax
push ebx
push 0x1000
push 0x1000
push 0xff
push 6
lea eax, [esp + 0x13c]
push 0x40000003
push eax
call dword [sym.imp.KERNEL32.dll_CreateNamedPipeW]
cmp eax, 0xffffffff
mov dword [esi + 4], eax
jne 0x454e9a
mov dword [esi + 4], ebx
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x344
ret 8
push ebx
push ebx
mov dword [esi + 0x18], edi
mov edi, dword [sym.imp.KERNEL32.dll_CreateEventW]
push 1
push ebx
call edi
push ebx
push ebx
push 1
push ebx
mov dword [esi + 8], eax
call edi
mov ecx, dword [esi + 8]
mov dword [esi + 0xc], eax
cmp ecx, ebx
je 0x454f15
cmp eax, ebx
je 0x454f15
lea eax, [esi + 0x1c]
xor ecx, ecx
mov edx, eax
push eax
mov dword [edx], ecx
mov dword [edx + 4], ecx
mov dword [edx + 8], ecx
mov dword [edx + 0xc], ecx
mov dword [edx + 0x10], ecx
mov edx, dword [esi + 4]
mov ecx, dword [esi + 8]
push edx
mov dword [esi + 0x2c], ecx
call dword [sym.imp.KERNEL32.dll_ConnectNamedPipe]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
je 0x454f00
cmp eax, 0x3e5
je 0x454f00
cmp eax, 0x217
jne 0x454f50
mov eax, 1
pop edi
mov dword [esi + 0x10], eax
pop esi
pop ebp
pop ebx
add esp, 0x344
ret 8
mov eax, dword [esi + 4]
mov dword [esi + 4], ebx
cmp eax, ebx
je 0x454f50
push eax
call ebp
mov eax, dword [esi + 8]
cmp eax, ebx
je 0x454f39
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov eax, dword [esi + 8]
push eax
call ebp
mov dword [esi + 8], ebx
mov eax, dword [esi + 0xc]
cmp eax, ebx
je 0x454f50
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov ecx, dword [esi + 0xc]
push ecx
call ebp
mov dword [esi + 0xc], ebx
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x344
ret 8