Function at 0x164f8a320
Capabilities:
Contain obfuscated stackstrings
Terminate thread

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xf0]
sub rsp, 0x1f0
mov rax, qword [0x16514b200]
xor rax, rsp
mov qword [rbp + 0xe8], rax
mov rsi, qword [rbp + 0x130]
xor r14d, r14d
mov qword [rbp + 0xd0], 0x1c9c380
mov rax, qword [0x1651beec8]
test rax, rax
jne 0x164f8a3a9
lea rcx, [0x1650a8458]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x164f8a3b7
lea rdx, str.RtlDllShutdownInProgress
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1651beec8], rax
test rax, rax
je 0x164f8a3b7
call qword [case.0x164e9d7b8.0]
test al, al
jne 0x164f8a704
mov rcx, qword [rsi + 0x18]
test rcx, rcx
je 0x164f8a3c9
cmp qword [rcx], r14
je 0x164f8a3c9
mov al, 1
jmp 0x164f8a3cb
xor al, al
test al, al
je 0x164f8a730
mov rax, qword [rsi + 8]
mov qword [rbp + 0xd8], rax
test rcx, rcx
je 0x164f8a3ef
mov rax, qword [rcx]
mov qword [rbp + 0xe0], rax
jmp 0x164f8a3f6
mov qword [rbp + 0xe0], r14
lea rcx, [rsp + 0x58]
call fcn.164ecffd0
movabs rdi, 0x7fffffffffffffff
mov r12d, 1
mov r13d, 0xff
mov rbx, qword [rbp + 0x138]
cmp rbx, rdi
jne 0x164f8a426
xor al, al
jmp 0x164f8a43d
cmp rbx, 0x1c9c380
jne 0x164f8a433
xor al, al
jmp 0x164f8a43a
mov eax, r12d
cmovl eax, r13d
shr al, 7
lea rcx, [rbp + 0x138]
lea rdx, [rbp + 0xd0]
test al, al
cmove rcx, rdx
call fcn.164f23f20
mov r9d, eax
xor r8d, r8d
lea rdx, [rbp + 0xd8]
lea ecx, [r8 + 2]
call qword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov r15d, eax
cmp eax, 0x102
jne 0x164f8a6a0
cmp rbx, rdi
je 0x164f8a499
cmp rbx, 0x1c9c380
je 0x164f8a494
setl al
test al, al
jne 0x164f8a69c
cmp rbx, rdi
jne 0x164f8a4a0
mov qword [rsp + 0x50], rbx
jmp 0x164f8a507
imul rbx, rbx, 0x3e8
add rbx, qword [rsp + 0x58]
lea rcx, [rsp + 0x20]
call fcn.164ecffd0
mov rax, qword [rsp + 0x20]
cmp rax, rbx
je 0x164f8a4d2
mov ecx, r12d
cmovl ecx, r13d
test cl, cl
jle 0x164f8a4d2
mov qword [rsp + 0x50], r14
jmp 0x164f8a507
sub rbx, rax
cmp rbx, rdi
je 0x164f8a502
test rbx, rbx
je 0x164f8a4ff
movabs rax, 0x20c49ba5e353f7cf
imul rbx
mov rdi, rdx
sar rdi, 7
mov rax, rdi
shr rax, 0x3f
add rdi, rax
jmp 0x164f8a502
mov rdi, r14
mov qword [rsp + 0x50], rdi
lea rcx, [rsp + 0x50]
call fcn.164f23f20
mov r9d, eax
mov ecx, dword [rsi + 0x10]
shr ecx, 2
test r12b, cl
je 0x164f8a5bf
mov dword [rsp + 0x20], 0x33423444
mov dword [rsp + 0x24], 0x44383335
mov dword [rsp + 0x30], 0x6b736174
mov qword [rsp + 0x34], 0x73
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x3c], rax
mov dword [rsp + 0x44], 0x66
lea rcx, [rsp + 0x58]
call fcn.164e47a70
lea r9, [rsp + 0x30]
mov r8d, 7
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.164e47510
nop
lea rdx, str.Thread_was_cancelled_before_start_and_was_not_ended_even_after
lea rcx, [rsp + 0x70]
call fcn.164ea21e0
mov qword [rsp + 0x20], 0x1e
lea rdx, [rsp + 0x20]
mov rcx, rax
call fcn.164f8c940
lea rdx, [0x1650ceff4]
mov rcx, rax
call fcn.164ea21e0
nop
lea rcx, [rsp + 0x70]
call fcn.164e47630
jmp 0x164f8a704
mov eax, dword [rsi + 0x10]
shr eax, 1
test r12b, al
jne 0x164f8a679
mov rax, qword [rsi + 0x18]
test rax, rax
je 0x164f8a5d9
mov r14, qword [rax]
xor edx, edx
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_TerminateThread]
mov dword [rsp + 0x20], 0x33423444
mov dword [rsp + 0x24], 0x44383335
mov dword [rsp + 0x30], 0x6b736174
mov qword [rsp + 0x34], 0x73
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x3c], rax
mov dword [rsp + 0x44], 0x6e
lea rcx, [rsp + 0x58]
call fcn.164e47a70
lea r9, [rsp + 0x30]
mov r8d, 7
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.164e47510
nop
lea rcx, [rsp + 0x70]
call fcn.164f8c990
mov qword [rsp + 0x20], 0x1e
lea rdx, [rsp + 0x20]
mov rcx, rax
call fcn.164f8c940
lea rdx, [0x1650ceff4]
mov rcx, rax
call fcn.164ea21e0
nop
lea rcx, [rsp + 0x70]
call fcn.164e47630
jmp 0x164f8a704
test r9d, r9d
je 0x164f8a69c
xor r8d, r8d
lea rdx, [rbp + 0xd8]
lea ecx, [r8 + 2]
call qword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov r15d, eax
cmp eax, 0x102
jne 0x164f8a6a0
xor al, al
jmp 0x164f8a706
mov eax, dword [rsi + 0x10]
test r12b, al
jne 0x164f8a6e5
mov rax, qword [rsi]
mov rcx, rsi
mov rax, qword [rax + 0x20]
call qword [case.0x164e9d7b8.0]
lea rcx, str.Thread_was_killed
lea rdx, str.Thread_ended_state_mismatch
test al, al
cmovne rdx, rcx
xchg dword [0x1651be6a4], r12d
test r12d, r12d
jne 0x164f8a6e5
xor r8d, r8d
lea ecx, [r12 + 3]
call fcn.164fb29d0
test r15d, r15d
jne 0x164f8a704
mov rax, qword [rsi + 0x18]
test rax, rax
je 0x164f8a6f6
mov r14, qword [rax]
mov edx, 0xa
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov al, 1
mov rcx, qword [rbp + 0xe8]
xor rcx, rsp
call fcn.165001080
mov rbx, qword [rsp + 0x240]
add rsp, 0x1f0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea rcx, [rsp + 0x30]
call fcn.164f8def0
lea rdx, [0x1651480c8]
lea rcx, [rsp + 0x30]
call fcn.165003be0
int3