Function at 0x1400a385c
Capabilities:
Check for time delay via gettickcount

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x57]
sub rsp, 0xb0
mov r12d, r9d
mov r14d, edx
mov rdi, rcx
mov ebx, 1
xor r13d, r13d
test rcx, rcx
jne 0x1400a389a
mov r15b, r13b
jmp 0x1400a38d5
mov eax, dword [rcx + 0x1c1c]
test eax, eax
jg 0x1400a38aa
mov eax, dword [rcx + 0x1c04]
cmp eax, ebx
jle 0x1400a400b
mov eax, dword [rcx + 0x1c20]
test eax, eax
jg 0x1400a38c2
mov eax, dword [rcx + 0x1c08]
cmp eax, ebx
jle 0x1400a400b
cmp dword [rcx + 0x1b50], r13d
setne r15b
mov rcx, qword [rcx + 0x58]
mov byte [rsp + 0x20], r13b
mov r9d, dword [rbp + 0x7f]
mov r8d, r12d
lea rdx, [rbp - 0x3d]
mov rcx, qword [rcx]
call fcn.140117d28
mov eax, dword [rdi + 0x1c1c]
test eax, eax
jg 0x1400a3901
mov eax, dword [rdi + 0x1c04]
lea ecx, [rax - 1]
movzx eax, word [rbp - 0x3d]
test ax, ax
jns 0x1400a3914
mov word [rbp - 0x3d], r13w
jmp 0x1400a391f
cmp ax, cx
cmovg ax, cx
mov word [rbp - 0x3d], ax
mov eax, dword [rdi + 0x1c20]
test eax, eax
jg 0x1400a392f
mov eax, dword [rdi + 0x1c08]
lea ecx, [rax - 1]
movzx eax, word [rbp - 0x3b]
test ax, ax
jns 0x1400a3942
mov word [rbp - 0x3b], r13w
jmp 0x1400a394d
cmp ax, cx
cmovg ax, cx
mov word [rbp - 0x3b], ax
mov r8d, dword [rbp - 0x3d]
lea rdx, [rbp + 0x5f]
mov rcx, rdi
call fcn.1400a5db8
lea eax, [r14 - 0x201]
cmp eax, ebx
ja 0x1400a3974
mov rcx, rdi
call fcn.1400a79d8
test al, al
jne 0x1400a3977
mov bl, r13b
mov esi, 0x300
cmp r14d, 0x201
jne 0x1400a3989
test bl, bl
je 0x1400a39b2
cmp r14d, 0x203
jne 0x1400a3e35
mov ebx, dword [rdi + 0x1b50]
mov edx, ebx
and edx, esi
setne cl
bt ebx, 0xa
setb al
test al, cl
je 0x1400a3dc9
mov r14b, r13b
test dword [rdi + 0x1b50], 0x400
je 0x1400a39e4
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, eax
sub ebx, dword [rdi + 0x1b64]
call qword [sym.imp.USER32.dll_GetDoubleClickTime]
cmp ebx, eax
ja 0x1400a39e4
mov r12d, 1
mov r13b, r12b
jmp 0x1400a39ea
mov r12d, 1
mov eax, dword [rdi + 0x1b50]
test esi, eax
je 0x1400a3a02
mov r15d, eax
shr r15d, 9
and r15b, r12b
xor esi, esi
jmp 0x1400a3a45
mov dl, r12b
mov rcx, qword [0x14021c5d8]
call fcn.140027c2c
xor esi, esi
test eax, eax
je 0x1400a400b
shr eax, 9
and al, r12b
movzx edx, al
mov r15b, dl
add edx, 0x7d7
xor r8d, r8d
mov rcx, qword [0x14021c740]
call fcn.14007d690
mov r14d, eax
mov eax, dword [rdi + 0x1b50]
movzx edx, r14b
shl edx, 0x18
and eax, 0xffffff
or edx, eax
mov rcx, rdi
call fcn.1400a6b2c
mov eax, dword [rbp + 0x5f]
mov dword [rbp - 0x41], eax
test r13b, r13b
je 0x1400a3d80
mov word [rbp + 0x5f], si
movzx eax, word [rdi + 0x1ba0]
sub ax, r12w
mov word [rbp - 0x41], ax
lea rax, vtable.CRefGuard_class_CRConData_.0
mov qword [rbp + 0x17], rax
mov qword [rbp + 0x1f], rsi
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rbp + 0x27], eax
lea rax, vtable.CRConDataGuard.0
mov qword [rbp + 0x17], rax
lea rdx, [rbp + 0x17]
mov rcx, rdi
call fcn.1400a0568
test al, al
je 0x1400a3d35
xorps xmm0, xmm0
movups xmmword [rbp - 0x31], xmm0
movups xmmword [rbp - 0x21], xmm0
xorps xmm1, xmm1
movups xmmword [rbp - 0x11], xmm1
movups xmmword [rbp - 1], xmm1
xor edx, edx
mov rcx, qword [rdi + 0x58]
call fcn.1400af5c0
mov edx, eax
mov rcx, qword [0x14021c740]
call fcn.14007d0e0
mov rbx, rax
test rax, rax
je 0x1400a3b01
mov rcx, rax
call fcn.1400cb1d0
mov rcx, rbx
call fcn.1400cb2c0
movzx r14d, al
jmp 0x1400a3b04
mov r14d, r12d
mov rcx, qword [rbp + 0x1f]
movsx r12d, word [rcx + 0x4c]
movsx edx, word [rbp - 0x3f]
sub edx, r12d
lea r8, [rbp - 0x31]
call fcn.14009b3b8
test al, al
je 0x1400a3bee
cmp dword [rbp - 0x19], 4
jle 0x1400a3bee
movsx ebx, word [rbp - 0x3f]
movsx eax, word [rdi + 0x1bb0]
cmp ebx, eax
jge 0x1400a3bee
mov esi, ebx
sub esi, r12d
inc ebx
inc esi
lea r8, [rbp - 0x11]
mov edx, esi
mov rcx, qword [rbp + 0x1f]
call fcn.14009b3b8
test al, al
je 0x1400a3bee
cmp dword [rbp + 7], 4
jle 0x1400a3bee
mov rax, qword [rbp - 0x11]
cmp word [rax], 0x20
jne 0x1400a3b7d
cmp word [rax + 2], 0x20
je 0x1400a3bee
movsxd rcx, dword [rbp - 0x19]
mov rax, qword [rbp - 0x31]
movzx edx, word [rax + rcx*2 - 2]
lea rcx, [0x1401e7080]
call fcn.14013a9b0
test rax, rax
jne 0x1400a3bee
mov rax, qword [rbp - 0x11]
movzx edx, word [rax]
lea rcx, [0x1401e7080]
call fcn.14013a9b0
test rax, rax
jne 0x1400a3bee
movsxd rax, dword [rbp - 0x19]
mov rcx, qword [rbp - 0x31]
cmp word [rcx + rax*2 - 2], 0x20
jne 0x1400a3bcb
cmp word [rcx + rax*2 - 4], 0x20
je 0x1400a3bee
mov word [rbp - 0x3f], bx
movups xmm0, xmmword [rbp - 0x11]
movups xmmword [rbp - 0x31], xmm0
movups xmm1, xmmword [rbp - 1]
movups xmmword [rbp - 0x21], xmm1
movsx eax, word [rdi + 0x1bb0]
cmp ebx, eax
jl 0x1400a3b47
movsx ebx, word [rbp + 0x61]
mov esi, ebx
sub esi, r12d
lea r8, [rbp - 0x11]
mov edx, esi
mov rcx, qword [rbp + 0x1f]
call fcn.14009b3b8
test al, al
je 0x1400a3cc4
cmp dword [rbp + 7], 4
jle 0x1400a3cc4
jmp 0x1400a3cb5
dec ebx
dec esi
lea r8, [rbp - 0x31]
mov edx, esi
mov rcx, qword [rbp + 0x1f]
call fcn.14009b3b8
test al, al
je 0x1400a3cc4
cmp dword [rbp - 0x19], 4
jle 0x1400a3cc4
mov rax, qword [rbp - 0x11]
cmp word [rax], 0x20
jne 0x1400a3c53
cmp word [rax + 2], 0x20
je 0x1400a3cc4
movsxd rcx, dword [rbp - 0x19]
mov rax, qword [rbp - 0x31]
movzx edx, word [rax + rcx*2 - 2]
lea rcx, [0x1401e7080]
call fcn.14013a9b0
test rax, rax
jne 0x1400a3cc4
mov rax, qword [rbp - 0x11]
movzx edx, word [rax]
lea rcx, [0x1401e7080]
call fcn.14013a9b0
test rax, rax
jne 0x1400a3cc4
movsxd rax, dword [rbp - 0x19]
mov rcx, qword [rbp - 0x31]
cmp word [rcx + rax*2 - 2], 0x20
jne 0x1400a3ca1
cmp word [rcx + rax*2 - 4], 0x20
je 0x1400a3cc4
mov word [rbp + 0x61], bx
movups xmm0, xmmword [rbp - 0x31]
movups xmmword [rbp - 0x11], xmm0
movups xmm1, xmmword [rbp - 0x21]
movups xmmword [rbp - 1], xmm1
movsx eax, word [rdi + 0x1bac]
cmp ebx, eax
jg 0x1400a3c1d
xor esi, esi
test r14d, r14d
je 0x1400a3d2f
movsx edx, word [rbp - 0x3f]
sub edx, r12d
lea r8, [rbp - 0x11]
mov rcx, qword [rbp + 0x1f]
call fcn.14009b3b8
test al, al
je 0x1400a3d2f
mov eax, dword [rbp + 7]
cmp eax, 2
jle 0x1400a3d2f
movsx ecx, word [rbp - 0x41]
mov dword [rbp - 0x35], ecx
dec eax
mov dword [rbp - 0x39], eax
mov dword [rbp + 0xf], esi
lea rdx, [rbp - 0x35]
lea r8, [rbp - 0x39]
cmp ecx, eax
cmovge rdx, r8
lea rax, [rbp + 0xf]
cmp dword [rdx], esi
cmovg rax, rdx
mov ecx, dword [rax]
test ecx, ecx
jle 0x1400a3d2b
mov rdx, qword [rbp - 0x11]
mov eax, ecx
cmp word [rdx + rax*2], 0x20
jne 0x1400a3d2b
dec ecx
test ecx, ecx
jg 0x1400a3d1c
mov word [rbp - 0x41], cx
mov r12d, 1
mov edx, dword [rdi + 0x1b50]
bts edx, 0xe
mov rcx, rdi
call fcn.1400a6b2c
nop
lea rax, vtable.CRefGuard_class_CRConData_.0
mov qword [rbp + 0x17], rax
mov rcx, qword [rbp + 0x1f]
test rcx, rcx
je 0x1400a3d80
mov eax, dword [rcx + 8]
mov edx, 0x7fffffff
cmp eax, edx
je 0x1400a3d80
lock dec dword [rcx + 8]
mov eax, dword [rcx + 8]
test eax, eax
jg 0x1400a3d7d
mov dword [rcx + 8], edx
mov rax, qword [rcx]
call qword [rax]
jmp 0x1400a3d80
mov eax, dword [rcx + 8]
mov al, r13b
neg al
sbb r8, r8
lea rcx, [rbp - 0x41]
and r8, rcx
movzx ecx, r13b
lea ecx, [rcx*2 + 0x201]
mov dword [rsp + 0x38], esi
mov qword [rsp + 0x30], r8
mov dword [rsp + 0x28], ecx
mov byte [rsp + 0x20], r12b
movzx r9d, word [rbp + 0x61]
movzx r8d, word [rbp + 0x5f]
mov dl, r15b
mov rcx, rdi
call fcn.1400a6d24
mov al, r12b
jmp 0x1400a400d
test edx, edx
je 0x1400a400b
mov dword [rbp - 0x39], r13d
mov dword [rbp - 0x35], r13d
mov qword [rsp + 0x28], r13
mov dword [rsp + 0x20], 1
lea r9, [rbp - 0x35]
lea r8, [rbp - 0x39]
mov edx, dword [rbp + 0x5f]
mov rcx, rdi
call fcn.14009efa8
shr ebx, 9
and bl, 1
mov dword [rsp + 0x38], r13d
lea rax, [rbp - 0x35]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x203
mov byte [rsp + 0x20], 1
movzx r9d, word [rbp - 0x37]
movzx r8d, word [rbp - 0x39]
mov dl, bl
mov rcx, rdi
call fcn.1400a6d24
mov al, 1
jmp 0x1400a400d
lea rsi, [rdi + 0x1b50]
cmp r14d, 0x200
jne 0x1400a3e70
mov eax, dword [rsi]
test al, 8
je 0x1400a400b
and eax, 0xc
cmp al, 0xc
jne 0x1400a3ee6
mov ecx, 1
call fcn.1401239d4
test al, al
jne 0x1400a3ee6
mov r14d, 0x202
jmp 0x1400a3e8a
cmp r14d, 0x202
jne 0x1400a3f70
test byte [rsi], 4
jne 0x1400a3e8a
test bl, bl
je 0x1400a400b
mov eax, dword [rsi]
test al, 4
jne 0x1400a3ea6
test bl, bl
je 0x1400a3ea2
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rdi + 0x1b60], eax
mov eax, dword [rsi]
test al, 4
je 0x1400a3ebe
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, eax
sub ebx, dword [rdi + 0x1b60]
call qword [sym.imp.USER32.dll_GetDoubleClickTime]
cmp ebx, eax
jbe 0x1400a3f07
test dword [rsi], 0x400
je 0x1400a3ede
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, eax
sub ebx, dword [rdi + 0x1b64]
call qword [sym.imp.USER32.dll_GetDoubleClickTime]
cmp ebx, eax
jbe 0x1400a3f07
test dword [rsi], 0x4000
jne 0x1400a3f07
mov r9b, r15b
movzx r8d, word [rbp + 0x61]
movzx edx, word [rbp + 0x5f]
mov rcx, rdi
call fcn.14009ea58
cmp r14d, 0x202
jne 0x1400a3e2e
mov rcx, rdi
call fcn.1400a4058
mov rax, qword [0x14021c740]
cmp byte [rax + 0x11020], r13b
je 0x1400a3e2e
test dword [rsi], 0x4400
je 0x1400a3f33
mov esi, dword [rdi + 0x1b64]
jmp 0x1400a3f39
mov esi, dword [rdi + 0x1b60]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, eax
sub ebx, esi
call qword [sym.imp.USER32.dll_GetDoubleClickTime]
mov rcx, qword [rdi + 0x58]
cmp ebx, eax
jbe 0x1400a3f5b
call fcn.1400aa5a4
jmp 0x1400a3e2e
call fcn.1400c2374
lea rcx, [rax + 0x18]
mov dl, 1
call fcn.14010b328
jmp 0x1400a3e2e
mov eax, 0x205
cmp r14d, eax
je 0x1400a3f87
cmp r14d, 0x208
jne 0x1400a400b
mov edx, dword [rdi + 0x1b50]
mov esi, 0x300
test esi, edx
je 0x1400a400b
cmp r14d, eax
mov rax, qword [0x14021c740]
jne 0x1400a3faa
mov cl, byte [rax + 0x11030]
jmp 0x1400a3fb0
mov cl, byte [rax + 0x11031]
cmp cl, 3
jne 0x1400a3fe9
test dl, 8
jne 0x1400a3fd6
cmp byte [rax + 0x11012], r13b
je 0x1400a3ff1
mov r8d, dword [rbp + 0x7f]
mov edx, r12d
mov rcx, rdi
call fcn.1400a7a28
test al, al
je 0x1400a3ff1
mov r8b, 1
mov dl, r8b
mov rcx, rdi
call fcn.14009d57c
jmp 0x1400a3e2e
cmp cl, 1
mov dl, r13b
jne 0x1400a3ff3
mov dl, 1
mov qword [rsp + 0x20], r13
xor r9d, r9d
xor r8d, r8d
mov rcx, rdi
call fcn.14009e830
jmp 0x1400a3e2e
xor al, al
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret