Function at 0x140020e64
Capabilities:
Connect pipe

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
mov rax, qword [0x1400b6018]
xor rax, rsp
mov qword [rbp - 8], rax
mov rax, qword [rcx + 0x28]
xor ebx, ebx
mov rdi, qword [rcx + 0x20]
mov r12, qword [rcx + 8]
mov qword [rbp - 0x18], rax
mov rax, qword [rcx + 0x30]
mov rcx, r12
mov qword [rbp - 0x10], rax
mov qword [rbp - 0x20], rdi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, eax
mov dword [rbp - 0x2c], eax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
and dword [rbp - 0x24], ebx
lea r14, [rbp - 0x20]
mov dword [rbp - 0x28], eax
lea r13d, [rbx + 4]
xor r15d, r15d
cmp rdi, 0xffffffffffffffff
je 0x1400210fa
xor r9d, r9d
mov dword [rbp - 0x30], 1
xor r8d, r8d
lea rdx, [rbp - 0x30]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetNamedPipeHandleState]
test eax, eax
je 0x14002109c
xor esi, esi
xor edx, edx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ConnectNamedPipe]
test eax, eax
jne 0x140020f43
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x217
je 0x140020f63
cmp eax, 0x218
jne 0x140020f4d
cmp esi, 0x708
jae 0x140020ff7
inc esi
mov ecx, 0x64
mov ebx, 0x80070218
call qword [sym.imp.KERNEL32.dll_Sleep]
cmp ebx, 0x80070218
jne 0x140020f5b
jmp 0x140020f02
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
test ebx, ebx
js 0x140020ffc
and dword [rbp - 0x30], 0
lea rdx, [rbp - 0x30]
xor r9d, r9d
xor r8d, r8d
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetNamedPipeHandleState]
test eax, eax
je 0x14002105f
mov r8, r13
lea rdx, [rbp - 0x2c]
mov rcx, rdi
call fcn.1400735fc
mov ebx, eax
test eax, eax
js 0x140021051
mov r8d, dword [rbp - 0x2c]
mov rdx, r12
mov rcx, rdi
call fcn.1400735fc
mov ebx, eax
test eax, eax
js 0x140021040
mov r8, r13
lea rdx, [rbp - 0x28]
mov rcx, rdi
call fcn.1400735fc
mov ebx, eax
test eax, eax
js 0x14002102f
mov r8, r13
lea rdx, [rbp - 0x24]
mov rcx, rdi
call fcn.140072868
mov ebx, eax
test eax, eax
js 0x14002101e
inc r15d
add r14, 8
cmp r15d, 3
jae 0x1400210fa
mov rdi, qword [r14]
jmp 0x140020ed4
mov ebx, 0x800705b4
mov edi, 0x185
lea rcx, str.d:_awixwix_src_burnenginepipe.cpp
mov edx, edi
mov r8d, ebx
call fcn.1400012b0
lea rax, str.Failed_to_wait_for_child_to_connect_to_pipe.
jmp 0x1400210d7
lea rax, str.Failed_to_read_ACK_from_pipe.
mov edx, 0x19a
jmp 0x1400210d9
lea rax, str.Failed_to_write_our_process_id_to_pipe.
mov edx, 0x196
jmp 0x1400210d9
lea rax, str.Failed_to_write_secret_to_pipe.
mov edx, 0x193
jmp 0x1400210d9
lea rax, str.Failed_to_write_secret_length_to_pipe.
mov edx, 0x190
jmp 0x1400210d9
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ebx, ax
mov edi, 0x18b
or ebx, 0x80070000
lea rcx, str.d:_awixwix_src_burnenginepipe.cpp
test eax, eax
mov edx, edi
cmovle ebx, eax
mov eax, 0x80004005
test ebx, ebx
cmovns ebx, eax
mov r8d, ebx
call fcn.1400012b0
lea rax, str.Failed_to_reset_pipe_to_blocking.
jmp 0x1400210d7
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ebx, ax
mov edi, 0x160
or ebx, 0x80070000
lea rcx, str.d:_awixwix_src_burnenginepipe.cpp
test eax, eax
mov edx, edi
cmovle ebx, eax
mov eax, 0x80004005
test ebx, ebx
cmovns ebx, eax
mov r8d, ebx
call fcn.1400012b0
lea rax, str.Failed_to_set_pipe_to_non_blocking.
mov edx, edi
mov qword [rsp + 0x28], rax
lea rcx, str.d:_awixwix_src_burnenginepipe.cpp
mov r9d, 0x100
mov dword [rsp + 0x20], ebx
mov r8d, 5
call fcn.1400012b4
mov eax, ebx
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.140053b50
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret