Function at 0x180007860
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 0x18], rbx
push rsi
push rdi
push r14
sub rsp, 0x80
mov rax, qword [rdx + 0x180]
mov r14, rdx
mov rsi, qword [rdx]
mov rdi, rcx
bt rax, 0xd
jae 0x1800078e1
lea rcx, [rdx + 0x18]
bt rax, 0xe
jae 0x1800078c0
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, [r14 + 0x108]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
jne 0x1800078de
lea rcx, [0x1800edbf0]
call fcn.180004050
xor al, al
jmp 0x180007b2a
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
jne 0x1800078de
lea rcx, [0x1800edc00]
call fcn.180004050
xor al, al
jmp 0x180007b2a
add rsi, rax
test rsi, rsi
je 0x180007b4d
xor edx, edx
mov rcx, rsi
call fcn.1800059d0
lea rdx, [r14 + 0x1d0]
mov r8, rsi
lea rcx, str.:__s__p
call fcn.180004050
mov ecx, 0xc350
call fcn.1800baf44
mov qword [rdi + 0xac0], rax
mov rcx, qword [0x180117e10]
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x180007937
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, rdi
mov rdx, r14
mov r8d, 0xa08
call fcn.1800e3e70
mov qword [rdi + 0xa08], rsi
mov rcx, qword [0x180117e10]
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x180007966
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov rax, qword [r14 + 0x180]
mov qword [rdi + 0xa10], rax
bt rax, 0x17
jae 0x1800079bf
xor eax, eax
lea r8, [0x1800071a0]
mov qword [rsp + 0x28], rax
mov r9, rdi
xor edx, edx
mov dword [rsp + 0x20], eax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov qword [rdi + 0xa20], rax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rdi + 0xa28], rax
mov al, 1
jmp 0x180007b2a
mov rcx, qword [rdi + 0xa08]
bt rax, 0x16
jae 0x180007a0f
lea rax, vtable.std::_Func_impl_no_alloc_class_std::_Binder_struct_std::_Unforced__bool_____thiscall_TextHook::__struct__CONTEXT____ptr64___class_TextHook____ptr64__struct_std::_Ph_1__const____ptr64___bool__struct__CONTEXT____ptr64_.0
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x40], rax
lea rdx, [rsp + 0x40]
lea rax, [0x180008530]
xor r8d, r8d
mov qword [rsp + 0x48], rax
movzx eax, byte [rsp + 0x30]
mov byte [rsp + 0x50], al
lea rax, [rsp + 0x40]
mov qword [rsp + 0x78], rax
call fcn.1800908e0
jmp 0x180007b2a
mov edx, 0xa
lea r9, [0x180117ed0]
lea r8d, [rdx + 0x36]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov rcx, qword [rdi + 0xa08]
lea rbx, [rdi + 0xa31]
mov rdx, rbx
lea r8, [rsp + 0x38]
call fcn.1800981b0
test eax, eax
je 0x180007a74
cmp eax, 3
jne 0x180007b3e
mov rcx, qword [rdi + 0xa08]
lea edx, [rax + 6]
call fcn.1800059d0
mov rcx, qword [rdi + 0xa08]
lea r8, [rsp + 0x38]
mov rdx, rbx
call fcn.1800981b0
test eax, eax
jne 0x180007a44
movsxd rax, dword [0x180115318]
lea rdx, [0x180115290]
lea rcx, [fcn.180007d60]
mov qword [rax + rdx], rdi
movsxd rax, dword [0x18011531c]
mov qword [rax + rdx], rcx
movsxd rcx, dword [0x180115320]
mov rax, qword [rsp + 0x38]
mov qword [rcx + rdx], rax
movaps xmm0, xmmword [0x180115290]
mov rcx, qword [rdi + 0xa08]
movups xmmword [rbx], xmm0
movaps xmm1, xmmword [0x1801152a0]
movups xmmword [rbx + 0x10], xmm1
movaps xmm0, xmmword [0x1801152b0]
movups xmmword [rbx + 0x20], xmm0
movaps xmm1, xmmword [0x1801152c0]
movups xmmword [rbx + 0x30], xmm1
movaps xmm0, xmmword [0x1801152d0]
movups xmmword [rbx + 0x40], xmm0
movaps xmm1, xmmword [0x1801152e0]
movups xmmword [rbx + 0x50], xmm1
movaps xmm0, xmmword [0x1801152f0]
movups xmmword [rbx + 0x60], xmm0
movaps xmm1, xmmword [0x180115300]
movups xmmword [rbx + 0x70], xmm1
mov eax, dword [0x180115310]
mov dword [rbx + 0x80], eax
movzx eax, word [0x180115314]
mov word [rbx + 0x84], ax
call fcn.180098450
test eax, eax
sete al
mov rbx, qword [rsp + 0xb0]
add rsp, 0x80
pop r14
pop rdi
pop rsi
ret
mov ecx, eax
call fcn.1800986d0
mov rcx, rax
call fcn.180004050
xor al, al
jmp 0x180007b2a