Function at 0x543ef0
Capabilities:
Check if file exists
Connect pipe
Create pipe

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x80
mov esi, ecx
mov eax, dword [0x5c4738]
xor eax, ebp
mov dword [esp + 0x78], eax
mov dword [ecx], 0x58a6b0
lea ebx, [ecx + 4]
lea edi, [esp + 0x18]
push edi
call fcn.005422d0
add esp, 4
mov ecx, ebx
push edi
call fcn.00542d90
cmp byte [edi + 0xb], 0
jns 0x543f3c
push dword [esp + 0x18]
call fcn.004cf0d6
add esp, 4
xor ebx, ebx
mov dword [esi + 0x14], ebx
lea eax, [esi + 0x1c]
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x18], eax
lea eax, [esp + 0x74]
mov dword [eax], ebx
push ebx
push eax
push 1
push 0x58a6b4
call sub.ADVAPI32.dll_ConvertStringSecurityDescriptorToSecurityDescriptorW
test eax, eax
jne 0x543fd5
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [esp + 0xc]
push eax
push ecx
call fcn.00501dd0
add esp, 8
lea ecx, [esp + 0x18]
lea eax, [esp + 0xc]
push eax
push 0xf1
push str.PipeCommandsProcessor
push 1
call fcn.00501b30
lea ecx, [esp + 0x54]
push 0x589ba1
push str.Failed_to_convert_security_string_to_security_descriptor
call fcn.004fc970
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [esp + 0x20]
push eax
call fcn.004fee80
lea ecx, [esp + 0x18]
call fcn.00501b70
lea eax, [esp + 0xc]
cmp byte [eax + 0xb], 0
jns 0x543fd5
push dword [esp + 0xc]
call fcn.004cf0d6
add esp, 4
mov dword [esp + 0xc], 0xc
mov eax, dword [esp + 0x74]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebx
mov ecx, edi
call fcn.00543e80
cmp byte [esp + 0x23], 0
jns 0x543ffb
mov edi, dword [esp + 0x18]
sub esp, 0x20
lea eax, [esp + 0x2c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], ebx
movaps xmm0, xmmword [0x58a640]
movups xmmword [esp + 4], xmm0
mov dword [esp], edi
mov dword [esp + 0x14], 0x4000
call dword [sym.imp.KERNEL32.dll_CreateNamedPipeW]
cmp dword [esi + 0x14], eax
je 0x54405a
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov eax, dword [esi + 0x14]
inc eax
cmp eax, 2
jae 0x544102
lea eax, [edi + 1]
cmp eax, 2
jb 0x544053
mov dword [esi + 0x14], edi
call fcn.004bafe0
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp byte [esp + 0x23], 0
jns 0x54406d
push dword [esp + 0x18]
call fcn.004cf0d6
add esp, 4
mov eax, dword [esi + 0x14]
lea ecx, [eax + 1]
cmp ecx, 1
jbe 0x5440a5
push 0
push eax
call dword [sym.imp.KERNEL32.dll_ConnectNamedPipe]
mov eax, dword [esp + 0x74]
test eax, eax
je 0x544090
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov ecx, dword [esp + 0x78]
xor ecx, ebp
call fcn.004d25a3
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, esp
push eax
push ebx
call fcn.00501dd0
add esp, 8
lea edi, [esp + 0x18]
mov ecx, edi
push ebx
push 0x103
push str.PipeCommandsProcessor
push 1
call fcn.00501b30
lea ecx, [esp + 0x54]
push 0x58a73c
push str.Failed_to_create_service_update_pipe
call fcn.004fc970
mov ecx, edi
call fcn.00501b70
cmp byte [ebx + 0xb], 0
jns 0x5440fa
push dword [esp]
call fcn.004cf0d6
add esp, 4
mov eax, dword [esi + 0x14]
jmp 0x544078
call fcn.004bafe0
push dword [esi + 0x14]
call fcn.004c1b90
add esp, 4
mov dword [esi + 0x14], 0
jmp 0x544043