Function at 0x4221b0
Capabilities:
Terminate thread

Disassembly:
mov qword [rsp + 8], rcx
mov r11, rsp
sub rsp, 0x88
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rbp
mov qword [r11 + 0x20], rsi
mov qword [r11 - 8], rdi
mov qword [r11 - 0x10], r12
mov rbx, rcx
lea rax, [0x004eb2b8]
mov qword [rcx], rax
lea rax, vtable.q.0
mov qword [rcx + 8], rax
lea rax, [0x004eb298]
mov qword [rcx + 0x50], rax
lea rax, [0x004eb288]
mov qword [rcx + 0x60], rax
xor ebp, ebp
mov dword [rsp + 0x40], ebp
mov rcx, qword [rcx + 0x58]
test rcx, rcx
je 0x4222ce
mov rax, qword [rcx]
lea r8, [r11 - 0x48]
mov edx, 0x10000102
call qword [rax + 0x18]
cmp dword [rsp + 0x40], 2
jne 0x4222ce
mov dword [rsp + 0x38], ebp
mov rcx, qword [rbx + 0x58]
test rcx, rcx
je 0x4222ce
mov rax, qword [rcx]
lea r8, [rsp + 0x38]
mov edx, 0x10000103
call qword [rax + 0x18]
cmp dword [rsp + 0x38], 3
jne 0x4222ce
mov dword [rsp + 0x2c], ebp
mov rcx, qword [rbx + 0x58]
test rcx, rcx
je 0x4222ce
mov rax, qword [rcx]
lea r8, [rsp + 0x2c]
mov edx, 0x1000296
call qword [rax + 0x18]
cmp dword [rsp + 0x2c], ebp
je 0x4222ce
mov dword [rsp + 0x3c], ebp
mov rcx, qword [rbx + 0x58]
test rcx, rcx
je 0x4222ce
mov rax, qword [rcx]
lea r8, [rsp + 0x3c]
mov edx, 0x1000297
call qword [rax + 0x18]
cmp dword [rsp + 0x3c], 0xe
jne 0x4222ce
mov rcx, qword [rbx + 0x738]
test rcx, rcx
je 0x4222ce
xor edx, edx
call qword [sym.imp.KERNEL32.dll_TerminateThread]
mov rcx, qword [rbx + 0x738]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbx + 0x738], rbp
mov rcx, qword [rbx + 0x78]
test rcx, rcx
je 0x4222df
xor edx, edx
call qword [sym.imp.KERNEL32.dll_TerminateThread]
cmp dword [rbx + 0x744], 2
jne 0x422302
mov rdx, rbx
mov rcx, qword [0x00526530]
call qword [sym.imp.USER32.dll_KillTimer]
mov dword [rbx + 0x744], 1
mov dword [rsp + 0x34], ebp
mov rcx, qword [rbx + 0x58]
mov r12d, 8
test rcx, rcx
je 0x422413
mov rax, qword [rcx]
lea r8, [rsp + 0x34]
mov edx, 0x10000107
call qword [rax + 0x18]
cmp dword [rsp + 0x34], 0xd
jne 0x422413
mov dword [rbx + 0x76c], ebp
mov edi, dword [rbx + 0x770]
mov edx, edi
mov rcx, rbx
call fcn.004109b0
test eax, eax
jne 0x42235d
mov edx, ebp
test edi, edi
sete dl
mov rcx, rbx
call fcn.00421b70
mov dword [rsp + 0x24], ebp
mov rcx, qword [rbx + 0x58]
test rcx, rcx
je 0x422413
mov rax, qword [rcx]
lea r8, [rsp + 0x24]
mov edx, 0x10000102
call qword [rax + 0x18]
cmp dword [rsp + 0x24], 2
jne 0x422413
mov eax, ebp
mov dword [rsp + 0x28], ebp
mov rcx, qword [rbx + 0x58]
test rcx, rcx
je 0x4223ac
mov rax, qword [rcx]
lea r8, [rsp + 0x28]
mov edx, 0x10000d5
call qword [rax + 0x18]
mov eax, dword [rsp + 0x28]
bt eax, 0x16
jae 0x422413
mov eax, ebp
mov dword [rsp + 0x30], ebp
mov rcx, qword [rbx + 0x58]
test rcx, rcx
je 0x4223d5
mov rax, qword [rcx]
lea r8, [rsp + 0x30]
mov edx, 0x1000292
call qword [rax + 0x18]
mov eax, dword [rsp + 0x30]
mov edx, dword [rbx + 0x770]
test edx, edx
je 0x4223e7
shr eax, 4
and eax, 1
jmp 0x4223ed
shr eax, 3
and eax, 1
test eax, eax
je 0x422413
mov rcx, qword [rbx + 0x58]
mov rax, qword [rcx]
mov r8d, 0x10
test edx, edx
cmovne r8d, r12d
or r8d, 0xc0
mov edx, 0x1000292
call qword [rax + 0x30]
mov dword [rsp + 0x20], ebp
mov rcx, qword [rbx + 0x58]
test rcx, rcx
je 0x42244d
mov rax, qword [rcx]
lea r8, [rsp + 0x20]
mov edx, 0x10000102
call qword [rax + 0x18]
cmp dword [rsp + 0x20], r12d
jne 0x42244d
cmp dword [rbx + 0x748], ebp
je 0x42244d
mov dword [rbx + 0x748], ebp
mov rcx, rbx
call fcn.0040cc90
mov rdi, qword [rbx + 0x6c8]
test rdi, rdi
je 0x422470
mov rcx, rdi
call fcn.0044de90
mov rcx, rdi
call fcn.004a6f90
mov qword [rbx + 0x6c8], rbp
mov rcx, qword [rbx + 0x890]
test rcx, rcx
je 0x42248d
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov qword [rbx + 0x890], rbp
mov rcx, qword [rbx + 0x898]
test rcx, rcx
je 0x4224aa
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov qword [rbx + 0x898], rbp
mov rcx, qword [rbx + 0x868]
test rcx, rcx
je 0x4224c7
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov qword [rbx + 0x868], rbp
mov rcx, rbx
call fcn.00414f80
mov rdi, qword [rbx + 0x10]
mov qword [rsp + 0x48], rdi
test rdi, rdi
je 0x422552
nop
test rdi, rdi
je 0x42254d
mov rcx, qword [rdi + 0x10]
test rcx, rcx
je 0x4224f8
mov rax, qword [rdi + 8]
mov qword [rcx + 8], rax
jmp 0x422500
mov rax, qword [rdi + 8]
mov qword [rbx + 0x10], rax
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x422513
mov rax, qword [rdi + 0x10]
mov qword [rcx + 0x10], rax
jmp 0x42251b
mov rax, qword [rdi + 0x10]
mov qword [rbx + 0x18], rax
mov rsi, qword [rdi + 8]
cmp dword [rbx + 0x24], ebp
je 0x422539
mov rcx, qword [rdi]
test rcx, rcx
je 0x422539
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov qword [rdi], rbp
mov rcx, rdi
call fcn.004a6f90
mov rdi, rsi
add dword [rbx + 0x20], 0xffffffff
test rsi, rsi
jne 0x4224e0
mov qword [rsp + 0x48], rdi
lea rcx, [rbx + 0x7d0]
lea r9, [fcn.004011f0]
mov r8d, 2
mov rdx, r12
call fcn.004a8ed0
nop
lea rax, method.h.virtual_0
mov qword [rbx + 0x6e0], rax
mov rcx, qword [rbx + 0x6e8]
test rcx, rcx
je 0x422590
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
lea rcx, [rbx + 0x6d0]
lea r9, [fcn.004011f0]
mov r8d, 2
mov rdx, r12
call fcn.004a8ed0
nop
mov rdi, qword [rbx + 0x6c0]
test rdi, rdi
je 0x4225f8
mov eax, 0xffffffff
lock xadd dword [rdi + 0x10], eax
add eax, 0xffffffff
jne 0x4225f1
test rdi, rdi
je 0x4225f1
mov rcx, qword [rdi]
test rcx, rcx
je 0x4225db
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x4225e9
call fcn.004a8850
mov rcx, rdi
call fcn.004a6f90
mov qword [rbx + 0x6c0], rbp
lea rax, method.h.virtual_0
mov qword [rbx + 0x50], rax
mov rcx, qword [rbx + 0x58]
test rcx, rcx
je 0x422613
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
lea rax, [0x004eabd0]
mov qword [rbx + 8], rax
mov rdi, qword [rbx + 0x10]
test rdi, rdi
je 0x422695
test rdi, rdi
je 0x422695
mov rcx, qword [rdi + 0x10]
test rcx, rcx
je 0x42263f
mov rax, qword [rdi + 8]
mov qword [rcx + 8], rax
jmp 0x422647
mov rax, qword [rdi + 8]
mov qword [rbx + 0x10], rax
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x42265a
mov rax, qword [rdi + 0x10]
mov qword [rcx + 0x10], rax
jmp 0x422662
mov rax, qword [rdi + 0x10]
mov qword [rbx + 0x18], rax
mov rsi, qword [rdi + 8]
cmp dword [rbx + 0x24], 0
je 0x422681
mov rcx, qword [rdi]
test rcx, rcx
je 0x422681
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov qword [rdi], rbp
mov rcx, rdi
call fcn.004a6f90
mov rdi, rsi
add dword [rbx + 0x20], 0xffffffff
test rsi, rsi
jne 0x422627
lea rcx, [rbx + 0x28]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
nop
lea rax, [0x004e7e98]
mov qword [rbx], rax
mov rbx, qword [rsp + 0x98]
mov rbp, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0xa8]
mov rdi, qword [rsp + 0x80]
mov r12, qword [rsp + 0x78]
add rsp, 0x88
ret