Function at 0x14000bb50
Capabilities:
Create thread

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
movaps xmmword [rsp + 0xa0], xmm6
mov r15, rdx
mov rsi, rcx
mov rax, qword [0x140219028]
xor rax, rsp
mov qword [rsp + 0x98], rax
call fcn.1400d5260
mov r12, rax
lea rbx, [rsi + 0x50]
lea rax, [rsi + 0x48]
mov qword [rsp + 0x38], rax
mov rbp, qword [rsi + 0x38]
cmp rbp, 0xffffffffffffffff
jne 0x14000bbfd
mov rcx, rsi
mov dl, 1
call fcn.140054f20
mov rbp, rax
cmp rax, 0xffffffffffffffff
jne 0x14000bc05
lea rdx, [0x140202cb8]
lea rbp, [rsp + 0x70]
mov rcx, rbp
mov r8d, 0x13b
call fcn.1401a8ec0
mov rcx, rbp
call fcn.1401a8df0
lea rdx, str.CreateNamedPipe
mov r8d, 0xf
mov rcx, rax
call fcn.140152d20
mov rcx, rbp
call fcn.1401a8e00
mov rbp, 0xffffffffffffffff
jmp 0x14000bc05
mov qword [rsi + 0x38], 0xffffffffffffffff
mov ecx, 0x40
call fcn.14011d790
mov rcx, qword [rsi + 0x20]
mov qword [rax], rcx
lea r14, [0x1401f1010]
mov qword [rax + 8], r14
mov qword [rax + 0x10], rbp
mov byte [rax + 0x18], 0
mov qword [rax + 0x20], r15
mov rcx, qword [rsp + 0x38]
mov qword [rax + 0x28], rcx
mov qword [rax + 0x30], rbx
mov qword [rax + 0x38], r12
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
lea r8, [0x140044d70]
xor ecx, ecx
xor edx, edx
mov r9, rax
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rsp + 0x48], rax
test rax, rax
je 0x14000c017
mov rbp, qword [rsi + 0x38]
cmp rbp, 0xffffffffffffffff
jne 0x14000bcd6
mov rcx, rsi
xor edx, edx
call fcn.140054f20
mov rbp, rax
cmp rax, 0xffffffffffffffff
jne 0x14000bcde
lea rdx, [0x140202cb8]
lea rbp, [rsp + 0x70]
mov rcx, rbp
mov r8d, 0x13b
call fcn.1401a8ec0
mov rcx, rbp
call fcn.1401a8df0
lea rdx, str.CreateNamedPipe
mov r8d, 0xf
mov rcx, rax
call fcn.140152d20
mov rcx, rbp
call fcn.1401a8e00
mov rbp, 0xffffffffffffffff
jmp 0x14000bcde
mov qword [rsi + 0x38], 0xffffffffffffffff
mov ecx, 0x40
call fcn.14011d790
mov rcx, qword [rsi + 0x20]
mov qword [rax], rcx
mov qword [rax + 8], r14
mov qword [rax + 0x10], rbp
mov byte [rax + 0x18], 0
mov qword [rax + 0x20], r15
mov rcx, qword [rsp + 0x38]
mov qword [rax + 0x28], rcx
mov qword [rsp + 0x58], rbx
mov qword [rax + 0x30], rbx
mov qword [rsp + 0x50], r12
mov qword [rax + 0x38], r12
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
lea r8, [0x140044d70]
xor ecx, ecx
xor edx, edx
mov r9, rax
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rsp + 0x40], rax
test rax, rax
je 0x14000c05b
lea r12, [rsi + 0x58]
xor eax, eax
lea r9, [rsp + 0x70]
mov qword [r9], rax
lea rbx, [rsp + 0x60]
mov qword [rbx], rax
lea rdx, [rsp + 0x94]
mov dword [rdx], 0
mov rcx, qword [rsi + 0x20]
mov dword [rsp + 0x20], 0xffffffff
mov r8, rbx
call qword [sym.imp.KERNEL32.dll_GetQueuedCompletionStatus]
mov r14, qword [rbx]
test r14, r14
mov rbx, qword [rsp + 0x38]
je 0x14000bee1
mov rdi, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov rbp, qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
xor r13d, r13d
mov rcx, rbx
call rdi
test al, al
je 0x14000c00a
mov rcx, qword [r12]
test rcx, rcx
je 0x14000be24
mov rax, rcx
mov r15, r12
xor edx, edx
cmp qword [rax + 0x20], r14
setb dl
cmovae r15, rax
mov rax, qword [rax + rdx*8]
test rax, rax
jne 0x14000bdc4
cmp r15, r12
je 0x14000be24
cmp qword [r15 + 0x20], r14
cmova r15, r12
cmp r15, r12
je 0x14000be24
mov rdx, qword [r15 + 8]
test rdx, rdx
jne 0x14000be93
mov rax, qword [r15 + 0x10]
cmp qword [rax], r15
jne 0x14000bea4
cmp qword [rsi + 0x50], r15
je 0x14000becf
dec qword [rsi + 0x60]
mov rdx, r15
call fcn.140102f90
mov rcx, r15
call fcn.14011d780
mov rcx, r14
call fcn.14000c120
mov rcx, r14
call fcn.14011d780
cmp byte [rsi + 0x68], 0
jne 0x14000be45
cmp qword [rsi + 0x60], 0
je 0x14000bed8
mov rcx, rbx
call rbp
mov qword [rsp + 0x70], r13
mov qword [rsp + 0x60], r13
mov dword [rsp + 0x94], 0
mov rcx, qword [rsi + 0x20]
mov dword [rsp + 0x20], 0xffffffff
lea rdx, [rsp + 0x94]
lea r8, [rsp + 0x60]
lea r9, [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_GetQueuedCompletionStatus]
mov r14, qword [rsp + 0x60]
test r14, r14
jne 0x14000bda8
jmp 0x14000bee1
mov rax, rdx
mov rdx, qword [rdx]
test rdx, rdx
je 0x14000be06
jmp 0x14000be93
lea rdx, [r15 + 0x10]
mov rbx, rdi
mov rdi, rbp
mov rbp, qword [rdx]
lea rdx, [rbp + 0x10]
mov rax, qword [rbp + 0x10]
cmp qword [rax], rbp
mov rbp, rdi
mov rdi, rbx
mov rbx, qword [rsp + 0x38]
je 0x14000be06
jmp 0x14000bea8
mov qword [rsi + 0x50], rax
jmp 0x14000be10
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov r13, rbx
xorps xmm6, xmm6
lea rbx, [rsp + 0x70]
movups xmmword [rbx + 0xc], xmm6
xor eax, eax
mov qword [rbx + 0x1c], rax
mov eax, 1
mov dword [rbx], eax
mov r15, qword [rsp + 0x50]
mov qword [rbx + 4], r15
movabs rdi, 0xaaaaaaaaaaaaaaaa
lea rbp, [rsp + 0x60]
mov qword [rbp], rdi
mov r14d, 0xaaaaaaaa
mov dword [rbp + 8], r14d
mov rcx, rsi
mov rdx, rbx
mov r8, rbp
call fcn.14000c2a0
xor eax, eax
mov qword [rbx + 0x1c], rax
movups xmmword [rbx + 0xc], xmm6
mov eax, 1
mov dword [rbx], eax
mov qword [rbx + 4], r15
mov qword [rbp], rdi
mov dword [rbp + 8], r14d
mov rcx, rsi
mov rdx, rbx
mov r8, rbp
call fcn.14000c2a0
mov r14, qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rbp, qword [rsp + 0x48]
mov rcx, rbp
mov edx, 0xffffffff
call r14
mov rbx, qword [rsp + 0x40]
mov rcx, rbx
mov edx, 0xffffffff
call r14
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14000c09f
mov rax, qword [rsp + 0x58]
mov r14, qword [rax]
cmp r14, r12
jne 0x14000c0ae
mov rcx, qword [rsi + 0x58]
call fcn.140013930
mov qword [rsi + 0x50], r12
xorps xmm0, xmm0
movups xmmword [rsi + 0x58], xmm0
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test rbx, rbx
je 0x14000bfd1
mov rcx, rbx
call fcn.14000c220
test rbp, rbp
je 0x14000bfde
mov rcx, rbp
call fcn.14000c220
mov rcx, qword [rsp + 0x98]
xor rcx, rsp
call fcn.14011fe20
movaps xmm6, xmmword [rsp + 0xa0]
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rbx
call fcn.1400fd520
jmp 0x14000bdb5
lea rdx, [0x140202cb8]
lea rbp, [rsp + 0x70]
mov rcx, rbp
mov r8d, 0x14a
call fcn.1401a8ec0
mov rcx, rbp
call fcn.1401a8df0
lea rdx, [0x140202d40]
mov r8d, 0xc
mov rcx, rax
call fcn.140152d20
mov rcx, rbp
call fcn.1401a8e00
jmp 0x14000bc71
lea rdx, [0x140202cb8]
lea rbx, [rsp + 0x70]
mov rcx, rbx
mov r8d, 0x14a
call fcn.1401a8ec0
mov rcx, rbx
call fcn.1401a8df0
lea rdx, [0x140202d40]
mov r8d, 0xc
mov rcx, rax
call fcn.140152d20
mov rcx, rbx
call fcn.1401a8e00
jmp 0x14000bd4d
mov rcx, qword [rsp + 0x38]
call fcn.1400fd520
jmp 0x14000bf94
mov rbx, qword [rsp + 0x40]
mov rbp, qword [r14 + 0x20]
test rbp, rbp
je 0x14000c0cc
mov rcx, rbp
call fcn.14000c120
mov rcx, rbp
call fcn.14011d780
mov rcx, qword [r14 + 8]
test rcx, rcx
je 0x14000c0f3
mov rax, rcx
mov rcx, qword [rcx]
test rcx, rcx
jne 0x14000c0d5
mov r14, rax
cmp rax, r12
mov rbp, qword [rsp + 0x48]
je 0x14000bfa5
jmp 0x14000c0b3
mov rax, qword [r14 + 0x10]
cmp qword [rax], r14
je 0x14000c0e0
add r14, 0x10
mov rcx, qword [r14]
lea r14, [rcx + 0x10]
mov rax, qword [rcx + 0x10]
cmp qword [rax], rcx
jne 0x14000c100
jmp 0x14000c0e0