Function at 0x14003bb60
Capabilities:
Create thread

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
movaps xmmword [rsp + 0x90], xmm6
mov r15, rdx
mov rsi, rcx
mov rax, qword [0x1401f5028]
xor rax, rsp
mov qword [rsp + 0x88], rax
call fcn.1400e6ce0
mov rbx, rax
lea r12, [rsi + 0x50]
lea rdi, [rsi + 0x48]
mov rbp, qword [rsi + 0x38]
cmp rbp, 0xffffffffffffffff
jne 0x14003bc08
mov rcx, rsi
mov dl, 1
call fcn.14003c580
mov rbp, rax
cmp rax, 0xffffffffffffffff
jne 0x14003bc10
lea rdx, [0x1401de5a0]
lea rbp, [rsp + 0x60]
mov rcx, rbp
mov r8d, 0x13a
call fcn.140163f80
mov rcx, rbp
call fcn.140163fa0
lea rdx, str.CreateNamedPipe
mov r8d, 0xf
mov rcx, rax
call fcn.1400d6670
mov rcx, rbp
call fcn.140163fb0
mov rbp, 0xffffffffffffffff
jmp 0x14003bc10
mov qword [rsi + 0x38], 0xffffffffffffffff
mov ecx, 0x40
call fcn.1400f045c
mov rcx, qword [rsi + 0x20]
mov qword [rax], rcx
lea r14, [0x1401cab28]
mov qword [rax + 8], r14
mov qword [rax + 0x10], rbp
mov byte [rax + 0x18], 0
mov qword [rax + 0x20], r15
mov qword [rax + 0x28], rdi
mov qword [rax + 0x30], r12
mov qword [rax + 0x38], rbx
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
lea r8, [0x140036840]
xor ecx, ecx
xor edx, edx
mov r9, rax
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rsp + 0x38], rax
test rax, rax
je 0x14003bfe3
mov rbp, qword [rsi + 0x38]
cmp rbp, 0xffffffffffffffff
jne 0x14003bcdc
mov rcx, rsi
xor edx, edx
call fcn.14003c580
mov rbp, rax
cmp rax, 0xffffffffffffffff
jne 0x14003bce4
lea rdx, [0x1401de5a0]
lea rbp, [rsp + 0x60]
mov rcx, rbp
mov r8d, 0x13a
call fcn.140163f80
mov rcx, rbp
call fcn.140163fa0
lea rdx, str.CreateNamedPipe
mov r8d, 0xf
mov rcx, rax
call fcn.1400d6670
mov rcx, rbp
call fcn.140163fb0
mov rbp, 0xffffffffffffffff
jmp 0x14003bce4
mov qword [rsi + 0x38], 0xffffffffffffffff
mov ecx, 0x40
call fcn.1400f045c
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 qword [rax + 0x28], rdi
mov qword [rax + 0x30], r12
mov qword [rsp + 0x40], rbx
mov qword [rax + 0x38], rbx
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
lea r8, [0x140036840]
xor ecx, ecx
xor edx, edx
mov r9, rax
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rsp + 0x30], rax
test rax, rax
je 0x14003c027
mov qword [rsp + 0x48], r12
lea r12, [rsi + 0x58]
xor r13d, r13d
mov rbx, qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov qword [rsp + 0x60], r13
mov qword [rsp + 0x50], r13
mov dword [rsp + 0x84], 0
mov rcx, qword [rsi + 0x20]
mov dword [rsp + 0x20], 0xffffffff
lea rdx, [rsp + 0x84]
lea r8, [rsp + 0x50]
lea r9, [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_GetQueuedCompletionStatus]
mov r14, qword [rsp + 0x50]
test r14, r14
je 0x14003bfcc
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14003bfd6
mov rcx, qword [r12]
test rcx, rcx
je 0x14003be27
xor eax, eax
cmp qword [rcx + 0x20], r14
setb al
mov r15, rcx
cmovb r15, r12
mov rax, qword [rcx + rax*8]
test rax, rax
je 0x14003bde9
xor edx, edx
cmp qword [rax + 0x20], r14
setb dl
cmovae r15, rax
mov rax, qword [rax + rdx*8]
jmp 0x14003bdd1
cmp r15, r12
je 0x14003be27
cmp qword [r15 + 0x20], r14
cmova r15, r12
cmp r15, r12
je 0x14003be27
mov rax, qword [r15 + 8]
test rax, rax
jne 0x14003be55
mov rax, qword [r15 + 0x10]
cmp qword [rax], r15
jne 0x14003be65
cmp qword [rsi + 0x50], r15
je 0x14003be88
dec qword [rsi + 0x60]
mov rdx, r15
call fcn.1400e0110
mov rcx, r15
call fcn.1400f0498
mov rcx, r14
call fcn.14003c0e0
mov rcx, r14
call fcn.1400f0498
cmp byte [rsi + 0x68], 0
jne 0x14003be44
cmp qword [rsi + 0x60], 0
je 0x14003be73
xor ebp, ebp
mov rcx, rdi
call rbx
test ebp, ebp
je 0x14003bd5c
jmp 0x14003be8e
mov rdx, qword [rax]
test rdx, rdx
je 0x14003be0d
mov rax, rdx
mov rdx, qword [rdx]
jmp 0x14003be58
mov rdx, qword [rax + 0x10]
cmp qword [rdx], rax
jne 0x14003be7a
mov rax, rdx
jmp 0x14003be0d
mov ebp, 5
jmp 0x14003be46
mov rax, qword [rdx + 0x10]
cmp qword [rax], rdx
je 0x14003be0d
jmp 0x14003bfb2
mov qword [rsi + 0x50], rax
jmp 0x14003be13
xorps xmm6, xmm6
lea rbx, [rsp + 0x60]
movups xmmword [rbx + 0xc], xmm6
xor eax, eax
mov qword [rbx + 0x1c], rax
mov eax, 1
mov dword [rbx], eax
mov r15, qword [rsp + 0x40]
mov qword [rbx + 4], r15
movabs r13, 0xaaaaaaaaaaaaaaaa
lea rbp, [rsp + 0x50]
mov qword [rbp], r13
mov r14d, 0xaaaaaaaa
mov dword [rbp + 8], r14d
mov rcx, rsi
mov rdx, rbx
mov r8, rbp
call fcn.14003c260
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], r13
mov dword [rbp + 8], r14d
mov rcx, rsi
mov rdx, rbx
mov r8, rbp
call fcn.14003c260
mov r14, qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rbp, qword [rsp + 0x38]
mov rcx, rbp
mov edx, 0xffffffff
call r14
mov rbx, qword [rsp + 0x30]
mov rcx, rbx
mov edx, 0xffffffff
call r14
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14003c06b
mov rax, qword [rsp + 0x48]
mov r14, qword [rax]
cmp r14, r12
jne 0x14003c078
mov rcx, qword [rsi + 0x58]
call fcn.14000e8d0
mov qword [rsi + 0x50], r12
xorps xmm0, xmm0
movups xmmword [rsi + 0x58], xmm0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test rbx, rbx
je 0x14003bf79
mov rcx, rbx
call fcn.14003c1e0
test rbp, rbp
je 0x14003bf86
mov rcx, rbp
call fcn.14003c1e0
mov rcx, qword [rsp + 0x88]
xor rcx, rsp
call fcn.1400f32c0
movaps xmm6, xmmword [rsp + 0x90]
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
add rdx, 0x10
mov rbp, qword [rdx]
lea rdx, [rbp + 0x10]
mov rax, qword [rbp + 0x10]
cmp qword [rax], rbp
je 0x14003be0d
jmp 0x14003bfb6
mov ebp, 5
jmp 0x14003be4b
mov rcx, rdi
call fcn.1400b0d10
jmp 0x14003bdb4
lea rdx, [0x1401de5a0]
lea rbp, [rsp + 0x60]
mov rcx, rbp
mov r8d, 0x149
call fcn.140163f80
mov rcx, rbp
call fcn.140163fa0
lea rdx, [0x1401de628]
mov r8d, 0xc
mov rcx, rax
call fcn.1400d6670
mov rcx, rbp
call fcn.140163fb0
jmp 0x14003bc77
lea rdx, [0x1401de5a0]
lea rbp, [rsp + 0x60]
mov rcx, rbp
mov r8d, 0x149
call fcn.140163f80
mov rcx, rbp
call fcn.140163fa0
lea rdx, [0x1401de628]
mov r8d, 0xc
mov rcx, rax
call fcn.1400d6670
mov rcx, rbp
call fcn.140163fb0
jmp 0x14003bd49
mov rcx, rdi
call fcn.1400b0d10
jmp 0x14003bf3e
mov rbx, qword [rsp + 0x30]
mov rbp, qword [r14 + 0x20]
test rbp, rbp
je 0x14003c096
mov rcx, rbp
call fcn.14003c0e0
mov rcx, rbp
call fcn.1400f0498
mov rcx, qword [r14 + 8]
test rcx, rcx
je 0x14003c0bd
mov rax, rcx
mov rcx, qword [rcx]
test rcx, rcx
jne 0x14003c09f
mov r14, rax
cmp rax, r12
mov rbp, qword [rsp + 0x38]
je 0x14003bf4f
jmp 0x14003c07d
mov rax, qword [r14 + 0x10]
cmp qword [rax], r14
je 0x14003c0aa
add r14, 0x10
mov rcx, qword [r14]
lea r14, [rcx + 0x10]
mov rax, qword [rcx + 0x10]
cmp qword [rax], rcx
jne 0x14003c0ca
jmp 0x14003c0aa