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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x168
mov rax, qword [0x2bc041fd0]
mov rax, qword [rax]
mov ebx, edx
mov rsi, rcx
mov r12, r8
mov rbp, r9
mov r14d, ebx
mov edx, 0x10
lea rcx, [0x2bc063460]
call qword [rax + 0x998]
and r14d, 0xfffffffb
mov r13, rax
cmp r14d, 0x20a
je 0x2bbf0f220
mov rcx, rsi
call sym.tcl9tk90.dll_Tk_HWNDToWindow
mov r10, rax
test rax, rax
je 0x2bbf0f178
cmp qword [rax + 0x28], 0
jne 0x2bbf0f190
add rsp, 0x168
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea r15, [rsp + 0xa0]
xor eax, eax
mov ecx, 0x18
mov rdi, r15
rep stosq qword [rdi], rax
mov rax, qword [r10]
mov edx, dword [rax + 0x90]
mov qword [rsp + 0xb0], rax
lea ecx, [rdx + 1]
mov dword [rsp + 0xa4], edx
mov dword [rax + 0x90], ecx
mov rax, qword [r10 + 0x28]
mov qword [rsp + 0xb8], rax
cmp ebx, 0x10
je 0x2bbf0f4c8
ja 0x2bbf0f240
cmp ebx, 8
ja 0x2bbf0f440
cmp ebx, 6
jbe 0x2bbf0f178
mov rcx, r12
mov qword [rsp + 0x30], r10
call sym.tcl9tk90.dll_Tk_HWNDToWindow
mov r10, qword [rsp + 0x30]
jmp 0x2bbf0f20d
mov r10, qword [r10 + 0x40]
test r10, r10
je 0x2bbf0f178
test byte [r10 + 0xf4], 2
je 0x2bbf0f200
jmp 0x2bbf0f401
mov eax, ebp
movsx ecx, bp
sar eax, 0x10
shl rax, 0x20
or rcx, rax
call qword [sym.imp.USER32.dll_WindowFromPoint]
mov rsi, rax
jmp 0x2bbf0f161
cmp ebx, 0x307
je 0x2bbf0f518
ja 0x2bbf0f178
cmp ebx, 0x109
ja 0x2bbf0f728
cmp ebx, 0xff
jbe 0x2bbf0f178
mov eax, 0x237
bt rax, rbx
jae 0x2bbf0f178
mov qword [rsp + 0x30], r10
call sym.tcl9tk90.dll_TkWinGetModifierState
cmp r14d, 0x100
mov r10, qword [rsp + 0x30]
mov ecx, eax
jne 0x2bbf0f7e0
shr rbp, 0x10
mov r8d, ebp
and ebp, 0x4000
cmp r12, 0x12
je 0x2bbf0f8d2
jbe 0x2bbf0f806
cmp r12, 0x90
je 0x2bbf0f82d
cmp r12, 0x91
je 0x2bbf0f957
cmp r12, 0x14
jne 0x2bbf0f850
mov eax, ecx
and eax, 2
cmp eax, ebp
je 0x2bbf0fa83
mov eax, 0xfffffffd
and ecx, eax
mov ebp, ecx
mov eax, ebp
or eax, 0x40000
test r8w, 0x100
cmovne ebp, eax
mov qword [rsp + 0x38], r10
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rsp + 0x30], eax
call qword [sym.imp.USER32.dll_GetMessagePos]
lea rdx, [rsp + 0x48]
mov rcx, rsi
mov r14d, eax
movsx edi, ax
sar r14d, 0x10
mov dword [rsp + 0x48], edi
mov dword [rsp + 0x4c], r14d
call qword [sym.imp.USER32.dll_ScreenToClient]
mov r10, qword [rsp + 0x38]
movd xmm0, dword [rsp + 0x48]
movd xmm1, edi
movd xmm5, dword [rsp + 0x4c]
movd xmm4, r14d
mov r8d, dword [rsp + 0x30]
movsxd rdx, dword [r10 + 0x10]
mov rcx, qword [r10]
punpckldq xmm1, xmm4
punpckldq xmm0, xmm5
mov rax, rdx
punpcklqdq xmm0, xmm1
shl rax, 4
sub rax, rdx
mov rdx, qword [rcx + 0xe0]
lea rax, [rdx + rax*8]
mov rax, qword [rax + 0x10]
mov dword [rsp + 0xe4], ebp
mov qword [rsp + 0xc8], 0
mov qword [rsp + 0xc0], rax
mov dword [rsp + 0xd0], r8d
mov dword [rsp + 0xec], 1
movups xmmword [rsp + 0xd4], xmm0
cmp ebx, 0x109
ja 0x2bbf0f750
cmp ebx, 0xff
jbe case.0x2bbf0f3ea.259
lea eax, [rbx - 0x100]
cmp eax, 9
ja case.0x2bbf0f3ea.259
lea rdx, [0x2bbffba04]
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
test byte [rax + 0xf4], 2
jne 0x2bbf0f858
mov rax, qword [rax + 0x40]
test rax, rax
jne 0x2bbf0f3f0
cmp ebx, 7
je 0x2bbf0f96d
mov dword [rsp + 0xa0], 0xa
mov rax, qword [r10 + 0x28]
mov qword [rsp + 0xb8], rax
mov rax, qword [0x2bbffbac8]
mov qword [rsp + 0xc0], rax
call qword [sym.imp.USER32.dll_DestroyCaret]
jmp case.0x2bbf0f3ea.259
cmp ebx, 0xf
jne 0x2bbf0f178
lea rbx, [rsp + 0x50]
mov rcx, rsi
mov dword [rsp + 0xa0], 0xc
mov rdx, rbx
call qword [sym.imp.USER32.dll_BeginPaint]
mov ecx, dword [rsp + 0x60]
mov eax, dword [rsp + 0x5c]
mov edi, dword [rsp + 0x64]
mov edx, dword [rsp + 0x68]
movd xmm3, ecx
movd xmm0, eax
sub edx, ecx
sub edi, eax
punpckldq xmm0, xmm3
mov rcx, rsi
movd xmm2, edx
movd xmm1, edi
mov rdx, rbx
punpckldq xmm1, xmm2
punpcklqdq xmm0, xmm1
movups xmmword [rsp + 0xc0], xmm0
call qword [sym.imp.USER32.dll_EndPaint]
mov dword [rsp + 0xd0], 0
xor edx, edx
mov rcx, r15
call sym.tcl9tk90.dll_Tk_QueueWindowEvent
jmp 0x2bbf0f178
mov rcx, r10
mov qword [rsp + 0x30], r10
lea rdx, [0x2bbffb9dc]
mov dword [rsp + 0xa0], 0x21
call sym.tcl9tk90.dll_Tk_InternAtom
mov rcx, qword [rsp + 0x30]
lea rdx, str.WM_DELETE_WINDOW
mov dword [rsp + 0xc4], 0x20
mov dword [rsp + 0xc0], eax
call sym.tcl9tk90.dll_Tk_InternAtom
mov dword [rsp + 0xc8], eax
jmp case.0x2bbf0f3ea.259
cmp dword [r13 + 8], 1
je 0x2bbf0f178
lea rdx, [0x2bbffb9fa]
mov rcx, r10
mov dword [rsp + 0xa0], 0x1d
call sym.tcl9tk90.dll_Tk_InternAtom
mov dword [rsp + 0xc0], eax
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rsp + 0xc4], eax
jmp case.0x2bbf0f3ea.259
mov dword [rsp + 0xa0], 3
mov dword [rsp + 0xe8], r12d
mov byte [rsp + 0xf7], 0
jmp case.0x2bbf0f3ea.259
cmp ebx, 0x100
mov dword [rsp + 0xe8], r12d
mov rsi, qword [sym.imp.USER32.dll_PeekMessageA]
setne bl
mov rdi, qword [sym.imp.USER32.dll_GetMessageA]
xor eax, eax
mov dword [rsp + 0xa0], 2
mov dword [rsp + 0xa8], 0xffffffff
movzx ebx, bl
lea ebx, [rbx*4 + 0x102]
mov byte [rsp + 0xf7], al
lea rbp, [rsp + 0x50]
jmp 0x2bbf0f5f4
movzx r8d, byte [rsp + 0xf7]
mov rcx, qword [rsp + 0x60]
lea eax, [r8 + 1]
mov byte [rsp + r8 + 0xf0], cl
mov byte [rsp + 0xf7], al
cmp cx, 0xff
ja 0x2bbf0fa70
cmp al, 6
ja case.0x2bbf0f3ea.259
xor edx, edx
mov dword [rsp + 0x20], 0
mov r9d, ebx
mov r8d, ebx
mov rcx, rbp
call rsi
test eax, eax
je case.0x2bbf0f3ea.259
cmp ebx, dword [rsp + 0x58]
jne case.0x2bbf0f3ea.259
xor edx, edx
mov r9d, ebx
mov r8d, ebx
mov rcx, rbp
call rdi
cmp dword [rsp + 0x58], 0x102
jne 0x2bbf0f5c8
test byte [rsp + 0x6b], 0x20
je 0x2bbf0f5c8
mov dword [rsp + 0xe4], 0
jmp 0x2bbf0f5c8
mov dword [rsp + 0xa0], 2
mov dword [rsp + 0xa8], 0xfffffffd
mov dword [rsp + 0xe8], r12d
mov byte [rsp + 0xf7], 0
xor edx, edx
mov rcx, r15
call sym.tcl9tk90.dll_Tk_QueueWindowEvent
mov dword [rsp + 0xa0], 3
jmp case.0x2bbf0f3ea.259
mov dword [rsp + 0xa0], 2
mov dword [rsp + 0xa8], 0xffffffff
mov dword [rsp + 0xe8], 0
test r12d, 0xff00
je 0x2bbf0f9e0
mov edx, r12d
movzx eax, r12w
and edx, 0xfc00
cmp edx, 0xd800
je 0x2bbf0fa8d
cmp edx, 0xdc00
jne 0x2bbf0f703
mov eax, dword [r13 + 0xc]
and r12d, 0x3ff
mov dword [r13 + 0xc], 0
shl eax, 0xa
and eax, 0xffc00
or eax, r12d
or eax, 0x10000
mov dword [rsp + 0xa8], 0xfffffffd
mov byte [rsp + 0xf7], 0
mov dword [rsp + 0xe8], eax
jmp 0x2bbf0f677
cmp r14d, 0x20a
jne 0x2bbf0f178
mov qword [rsp + 0x30], r10
call sym.tcl9tk90.dll_TkWinGetModifierState
mov r10, qword [rsp + 0x30]
mov ecx, eax
mov ebp, ecx
jmp 0x2bbf0f2fe
cmp ebx, 0x20a
je 0x2bbf0f86f
cmp ebx, 0x20e
jne case.0x2bbf0f3ea.259
shr r12, 0x10
movsx rdx, r12w
mov rcx, rdx
imul rdx, rdx, 0xffffffff88888889
mov eax, ecx
sar eax, 0x1f
shr rdx, 0x20
add edx, ecx
sar edx, 6
sub edx, eax
imul eax, edx, 0x78
mov edx, ecx
sub edx, eax
mov eax, edx
or eax, dword [0x2bc0634dc]
jne 0x2bbf0f8dc
mov eax, ebp
mov byte [rsp + 0xf7], 0
mov dword [rsp + 0xa0], 0x26
or eax, 1
mov dword [rsp + 0xa8], 0xffffffff
mov dword [rsp + 0xe4], eax
mov dword [rsp + 0xe8], ecx
mov dword [0x2bc0634dc], edx
jmp case.0x2bbf0f3ea.259
cmp r14d, 0x101
jne 0x2bbf0f746
shr rbp, 0x10
mov r8d, ebp
and ebp, 0x4000
cmp r12, 0x12
je 0x2bbf0f8d2
ja 0x2bbf0f850
mov eax, 1
cmp r12, 0x10
je 0x2bbf0f820
mov eax, 4
cmp r12, 0x11
jne 0x2bbf0f850
nop dword [rax]
test ebp, ebp
je 0x2bbf0f840
or ecx, eax
mov ebp, ecx
jmp 0x2bbf0f2ee
and eax, 8
xor edx, edx
cmp eax, ebp
mov eax, 8
sete dl
test edx, edx
jne 0x2bbf0f824
not eax
jmp 0x2bbf0f2ea
xor eax, eax
jmp 0x2bbf0f820
cmp ebx, 7
je 0x2bbf0f9b2
cmp r10, rax
jne 0x2bbf0f40f
jmp 0x2bbf0f178
shr r12, 0x10
movsx rax, r12w
mov rdx, rax
imul rax, rax, 0xffffffff88888889
mov ecx, edx
sar ecx, 0x1f
shr rax, 0x20
add eax, edx
sar eax, 6
sub eax, ecx
imul ecx, eax, 0x78
mov eax, edx
sub eax, ecx
mov edi, eax
or edi, dword [0x2bc0634dc]
jne 0x2bbf0f91c
mov dword [rsp + 0xa0], 0x26
mov dword [rsp + 0xa8], 0xffffffff
mov byte [rsp + 0xf7], 0
mov dword [rsp + 0xe8], edx
mov dword [0x2bc0634dc], eax
jmp case.0x2bbf0f3ea.259
mov eax, 0x20000
jmp 0x2bbf0f820
mov eax, dword [0x2bc0634d8]
shl ecx, 0x10
mov dword [rsp + 0xa0], 0x27
mov dword [rsp + 0xa8], 0xffffffff
neg ecx
lea r8d, [rax + 1]
mov byte [rsp + 0xf7], 0
mov dword [0x2bc0634d8], r8d
mov dword [rsp + 0xa4], eax
jmp 0x2bbf0f7c9
mov ecx, dword [0x2bc0634d8]
mov byte [rsp + 0xf7], 0
mov dword [rsp + 0xa0], 0x27
lea r8d, [rcx + 1]
mov dword [rsp + 0xa4], ecx
mov dword [rsp + 0xa8], 0xffffffff
mov dword [0x2bc0634d8], r8d
jmp 0x2bbf0f8c0
mov eax, ecx
xor edx, edx
and eax, 0x20
cmp eax, ebp
mov eax, 0x20
sete dl
jmp 0x2bbf0f83c
mov rcx, r10
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x30], r10
call sym.tcl9tk90.dll_Tk_SetCaretPos
mov r10, qword [rsp + 0x30]
mov dword [rsp + 0xa0], 9
mov rax, qword [r10 + 0x28]
mov qword [rsp + 0xb8], rax
mov rax, qword [0x2bbffbac8]
mov qword [rsp + 0xc0], rax
jmp case.0x2bbf0f3ea.259
mov rcx, r10
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r10
call sym.tcl9tk90.dll_Tk_SetCaretPos
mov r10, qword [rsp + 0x30]
mov rax, qword [rsp + 0x38]
cmp r10, rax
jne 0x2bbf0f987
jmp 0x2bbf0f178
mov byte [rsp + 0xf7], 1
movzx ecx, r12b
mov byte [rsp + 0xf0], r12b
call qword [sym.imp.KERNEL32.dll_IsDBCSLeadByte]
test eax, eax
je 0x2bbf0f677
lea rbx, [rsp + 0x50]
xor edx, edx
mov dword [rsp + 0x20], 0
mov r9d, 0x102
mov r8d, 0x102
mov rcx, rbx
call qword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x2bbf0f677
cmp dword [rsp + 0x58], 0x102
jne 0x2bbf0f677
mov r9d, 0x102
mov r8d, 0x102
xor edx, edx
mov rcx, rbx
call qword [sym.imp.USER32.dll_GetMessageW]
mov rax, qword [rsp + 0x60]
mov byte [rsp + 0xf7], 2
mov byte [rsp + 0xf1], al
jmp 0x2bbf0f677
movzx eax, al
mov byte [rsp + rax + 0xf0], ch
lea eax, [r8 + 2]
jmp 0x2bbf0f5b7
mov eax, 2
jmp 0x2bbf0f824
mov dword [r13 + 0xc], eax
jmp 0x2bbf0f178