Function at 0x1800d22a0
Capabilities:
Print debug messages
Terminate thread

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0xa8
mov qword [rbp - 0x29], 0xfffffffffffffffe
mov rdx, qword [rcx + 0x18]
movsxd rax, dword [rcx + 0x28]
lea r8, [rdx + rax*8]
cmp rdx, r8
je 0x1800d22f0
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rdx]
mov byte [rax + 0x75], 1
add rdx, 8
cmp rdx, r8
jne 0x1800d22e0
mov r15, qword [rcx + 0x18]
movsxd rax, dword [rcx + 0x28]
lea r13, [r15 + rax*8]
cmp r15, r13
je 0x1800d2563
lea r14, str.___killing_thread_by_force___
lea rdi, [0x1802bccb0]
nop dword [rax]
nop word [rax + rax]
mov rsi, qword [r15]
lea r12, [rsi + 0x20]
mov qword [rbp + 7], r12
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov rax, qword [rsi + 0x10]
test rax, rax
je 0x1800d254d
mov byte [rsi + 0x75], 1
mov rcx, qword [rsi + 0x58]
call qword [sym.imp.KERNEL32.dll_SetEvent]
call qword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [0x180421b48]
cmp eax, ecx
jae 0x1800d236a
add ecx, 0xfffffc18
cmp eax, ecx
jae 0x1800d2370
mov dword [0x180421b48], eax
lea ebx, [rax + 0x1f4]
mov rax, qword [rsi + 0x10]
test rax, rax
je 0x1800d23d1
nop
call qword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [0x180421b48]
cmp eax, ecx
jae 0x1800d239a
add ecx, 0xfffffc18
cmp eax, ecx
jae 0x1800d23a0
mov dword [0x180421b48], eax
cmp eax, ebx
ja 0x1800d23d1
mov rcx, qword [0x180423540]
test rcx, rcx
jne 0x1800d23bd
mov ecx, 2
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x1800d23c8
mov edx, 2
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rax, qword [rsi + 0x10]
test rax, rax
jne 0x1800d2380
mov rax, qword [rsi + 0x10]
test rax, rax
je 0x1800d254d
mov qword [rbp + 0x6f], r14
lea rdx, [rbp + 0x6f]
lea rcx, [rbp + 0x67]
call fcn.18001a440
nop
mov rcx, qword [0x180421b30]
test rcx, rcx
je 0x1800d240b
mov rax, qword [rcx]
lea rdx, [rbp + 0x67]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x1800d2500
mov rax, qword [rbp + 0x67]
mov qword [rbp + 0x77], rax
mov qword [rbp - 0x41], rax
mov qword [rbp - 9], rax
lea rcx, [rax - 0x10]
cmp rcx, rdi
je 0x1800d242d
mov eax, 1
lock xadd dword [rcx], eax
lea r8, [0x1802c0924]
lea rdx, [rbp + 0x77]
lea rcx, [rbp - 0x49]
call fcn.1800eb4b0
mov r14, rax
mov rbx, qword [rax]
cmp byte [rbx], 0
jne 0x1800d2455
lea rbx, [0x1802bcf68]
jmp 0x1800d24c3
mov qword [rbp + 0x7f], rbx
lea rcx, [rbp + 0x7f]
call fcn.18001b380
or rdi, 0xffffffffffffffff
inc rdi
cmp byte [rbx + rdi], 0
jne 0x1800d2466
add rdi, 4
mov ecx, 0xfffffffc
and rdi, rcx
mov qword [rbp - 0x61], rbx
lea r8, [rax + 3]
add r8, rdi
lea rdx, [rbp - 0x61]
lea rcx, [rbp - 0x19]
call fcn.180012500
mov rax, qword [rax]
mov qword [r14], rax
mov qword [rbp - 0x39], rax
movsxd rbx, edi
add rbx, rax
mov qword [rbp - 0x31], rax
mov qword [rbp - 0x69], rbx
mov qword [rbp - 0x51], rax
lea rdx, [rbp - 0x51]
lea rcx, [rbp - 0x69]
call fcn.18001c460
lea rdi, [0x1802bccb0]
mov qword [rbp - 0x59], rbx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
nop
mov rax, qword [rbp - 0x49]
mov qword [rbp - 0x21], rax
mov qword [rbp - 0x11], rax
lea rcx, [rax - 0x10]
cmp rcx, rdi
je 0x1800d24f9
or eax, 0xffffffff
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x1800d24f9
call fcn.1800a0c6c
lea r14, str.___killing_thread_by_force___
mov rax, qword [rbp + 0x67]
mov qword [rbp - 1], rax
mov qword [rbp + 0xf], rax
lea rcx, [rax - 0x10]
cmp rcx, rdi
je 0x1800d2528
or eax, 0xffffffff
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x1800d2528
call fcn.1800a0c6c
mov rax, qword [rsi + 0x10]
test rax, rax
je 0x1800d253d
xor edx, edx
mov rcx, qword [rsi + 0x10]
call qword [sym.imp.KERNEL32.dll_TerminateThread]
mov qword [rsi + 0x10], 0
mov qword [rsi + 0x18], 0
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
add r15, 8
cmp r15, r13
jne 0x1800d2320
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret