Function at 0x1401228f0
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 [0x1403a7038]
xor rax, rsp
mov qword [rsp + 0x98], rax
call fcn.140182c00
mov rbx, rax
lea r12, [rsi + 0x50]
lea rax, [rsi + 0x48]
mov qword [rsp + 0x38], rax
mov rbp, qword [rsi + 0x38]
cmp rbp, 0xffffffffffffffff
jne 0x14012299d
mov rcx, rsi
mov dl, 1
call fcn.140101230
mov rbp, rax
cmp rax, 0xffffffffffffffff
jne 0x1401229a5
lea rdx, [0x14038de10]
lea rbp, [rsp + 0x70]
mov rcx, rbp
mov r8d, 0x13b
call fcn.1402ad1e0
mov rcx, rbp
call fcn.1402ad110
lea rdx, str.CreateNamedPipe
mov r8d, 0xf
mov rcx, rax
call fcn.14020f8f0
mov rcx, rbp
call fcn.1402ad120
mov rbp, 0xffffffffffffffff
jmp 0x1401229a5
mov qword [rsi + 0x38], 0xffffffffffffffff
mov ecx, 0x40
call fcn.1401cfd80
mov rcx, qword [rsi + 0x20]
mov qword [rax], rcx
lea rdi, [0x140337340]
mov qword [rax + 8], rdi
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], r12
mov qword [rax + 0x38], rbx
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
lea r8, [0x140122e60]
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 0x140122d5e
mov rbp, qword [rsi + 0x38]
cmp rbp, 0xffffffffffffffff
jne 0x140122a76
mov rcx, rsi
xor edx, edx
call fcn.140101230
mov rbp, rax
cmp rax, 0xffffffffffffffff
jne 0x140122a7e
lea rdx, [0x14038de10]
lea rbp, [rsp + 0x70]
mov rcx, rbp
mov r8d, 0x13b
call fcn.1402ad1e0
mov rcx, rbp
call fcn.1402ad110
lea rdx, str.CreateNamedPipe
mov r8d, 0xf
mov rcx, rax
call fcn.14020f8f0
mov rcx, rbp
call fcn.1402ad120
mov rbp, 0xffffffffffffffff
jmp 0x140122a7e
mov qword [rsi + 0x38], 0xffffffffffffffff
mov ecx, 0x40
call fcn.1401cfd80
mov rcx, qword [rsi + 0x20]
mov qword [rax], rcx
mov qword [rax + 8], rdi
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], r12
mov qword [rsp + 0x58], rbx
mov qword [rax + 0x38], rbx
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
lea r8, [0x140122e60]
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 0x140122da2
mov qword [rsp + 0x50], r12
mov rcx, r15
call fcn.140039ae0
lea r13, [rsi + 0x58]
xor r14d, r14d
lea rbp, [rsp + 0x94]
lea rdi, [rsp + 0x60]
mov rbx, qword [rsp + 0x38]
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x60], r14
mov dword [rsp + 0x94], 0
mov rcx, qword [rsi + 0x20]
mov dword [rsp + 0x20], 0xffffffff
mov rdx, rbp
mov r8, rdi
lea r9, [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_GetQueuedCompletionStatus]
mov r15, qword [rsp + 0x60]
test r15, r15
je 0x140122c2d
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140122d51
mov rcx, qword [r13]
test rcx, rcx
je 0x140122bbe
mov rax, rcx
mov r12, r13
xor edx, edx
cmp qword [rax + 0x20], r15
setb dl
cmovae r12, rax
mov rax, qword [rax + rdx*8]
test rax, rax
jne 0x140122b6e
cmp r12, r13
je 0x140122bbe
cmp qword [r12 + 0x20], r15
ja 0x140122bbe
mov rdx, qword [r12 + 8]
test rdx, rdx
jne 0x140122c11
mov rax, qword [r12 + 0x10]
cmp qword [rax], r12
jne 0x140122be9
cmp qword [rsi + 0x50], r12
je 0x140122c1e
dec qword [rsi + 0x60]
mov rdx, r12
call fcn.14016caf0
mov rcx, r12
call fcn.1401cfdbc
mov rcx, r15
call fcn.140122f80
mov rcx, r15
call fcn.1401cfdbc
cmp byte [rsi + 0x68], 0
jne 0x140122bdb
cmp qword [rsi + 0x60], 0
je 0x140122c24
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x140122b0e
lea rdx, [r12 + 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 0x140122ba4
jmp 0x140122bee
mov rax, rdx
mov rdx, qword [rdx]
test rdx, rdx
je 0x140122ba4
jmp 0x140122c11
mov qword [rsi + 0x50], rax
jmp 0x140122baa
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov r14, 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 + 0x58]
mov qword [rbx + 4], r15
movabs r12, 0xaaaaaaaaaaaaaaaa
lea rbp, [rsp + 0x60]
mov qword [rbp], r12
mov edi, 0xaaaaaaaa
mov dword [rbp + 8], edi
mov rcx, rsi
mov rdx, rbx
mov r8, rbp
call fcn.140100f10
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], r12
mov dword [rbp + 8], edi
mov rcx, rsi
mov rdx, rbx
mov r8, rbp
call fcn.140100f10
mov rdi, qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rbp, qword [rsp + 0x48]
mov rcx, rbp
mov edx, 0xffffffff
call rdi
mov rbx, qword [rsp + 0x40]
mov rcx, rbx
mov edx, 0xffffffff
call rdi
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140122de6
mov rcx, qword [rsp + 0x50]
mov rdi, qword [rcx]
cmp rdi, r13
jne 0x140122df5
mov rdx, qword [rsi + 0x58]
call fcn.1400f0cb0
mov qword [rsi + 0x50], r13
xorps xmm0, xmm0
movups xmmword [rsi + 0x58], xmm0
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test rbx, rbx
je 0x140122d18
mov rcx, rbx
call fcn.140103780
test rbp, rbp
je 0x140122d25
mov rcx, rbp
call fcn.140103780
mov rcx, qword [rsp + 0x98]
xor rcx, rsp
call fcn.1401d1390
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.140189380
jmp 0x140122b5f
lea rdx, [0x14038de10]
lea rbp, [rsp + 0x70]
mov rcx, rbp
mov r8d, 0x14a
call fcn.1402ad1e0
mov rcx, rbp
call fcn.1402ad110
lea rdx, [0x14034bc9a]
mov r8d, ntohl
mov rcx, rax
call fcn.14020f8f0
mov rcx, rbp
call fcn.1402ad120
jmp 0x140122a11
lea rdx, [0x14038de10]
lea rbp, [rsp + 0x70]
mov rcx, rbp
mov r8d, 0x14a
call fcn.1402ad1e0
mov rcx, rbp
call fcn.1402ad110
lea rdx, [0x14034bc9a]
mov r8d, ntohl
mov rcx, rax
call fcn.14020f8f0
mov rcx, rbp
call fcn.1402ad120
jmp 0x140122ae8
mov rcx, qword [rsp + 0x38]
call fcn.140189380
jmp 0x140122cdb
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rdi + 0x20]
test rbp, rbp
je 0x140122e13
mov rcx, rbp
call fcn.140122f80
mov rcx, rbp
call fcn.1401cfdbc
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x140122e3f
mov rax, rcx
mov rcx, qword [rcx]
test rcx, rcx
jne 0x140122e1c
mov rdi, rax
cmp rax, r13
mov rcx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x48]
je 0x140122cec
jmp 0x140122dfa
mov rax, qword [rdi + 0x10]
cmp qword [rax], rdi
je 0x140122e27
add rdi, 0x10
mov rcx, qword [rdi]
lea rdi, [rcx + 0x10]
mov rax, qword [rcx + 0x10]
cmp qword [rax], rcx
jne 0x140122e4c
jmp 0x140122e27