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

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xb0]
sub rsp, 0x1b0
mov rax, qword [0x1401e7e78]
xor rax, rsp
mov qword [rbp + 0xa0], rax
mov qword [rsp + 0x58], r8
mov r14d, edx
mov rsi, rcx
mov dword [rsp + 0x48], r9d
mov bl, 1
mov byte [rsp + 0x40], bl
lea r9, [rbp + 0x118]
lea r8, [rbp + 0x110]
lea rdx, [rsp + 0x48]
call fcn.1400a427c
xor r12d, r12d
test al, al
jne 0x1400a2bdb
test rsi, rsi
je 0x1400a2bd3
cmp dword [rsi + 0x1b50], r12d
jne 0x1400a2e59
mov bl, r12b
jmp 0x1400a2e59
mov ebx, dword [rbp + 0x118]
mov dword [rsi + 0x1a5e], ebx
mov eax, dword [rsi + 0x1b50]
test eax, eax
setne r15b
test eax, eax
jne 0x1400a2c22
cmp dword [rsi + 0x1b74], r12d
jne 0x1400a2c17
lea eax, [r14 - 0x201]
test eax, 0xfffffff8
jne 0x1400a2c22
cmp r14d, 0x206
je 0x1400a2c22
mov rcx, rsi
call fcn.1400a7b70
mov r15b, al
mov dl, 1
mov rcx, qword [0x14021c5d8]
call fcn.140027c2c
mov edi, eax
mov dword [rsp + 0x60], eax
xor edx, edx
mov rcx, qword [0x14021c5d8]
call fcn.140027c2c
mov r12d, eax
mov r13d, dword [rbp + 0x110]
test r15b, r15b
je 0x1400a2f26
mov rax, qword [0x14021c740]
cmp byte [rax + 0x11012], 0
je 0x1400a2f26
mov rax, qword [rsi + 0x58]
cmp dword [rax + 0x2706c], 0
jne 0x1400a2f26
cmp dword [rsi + 0x1b50], 0
jne 0x1400a2f26
test edi, edi
jne 0x1400a2f26
mov r15d, 0x201
cmp r14d, r15d
jne 0x1400a2cca
mov edx, r13d
mov ecx, dword [rsp + 0x48]
call fcn.140127674
mov qword [rsi + 0x1b7c], rax
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rsi + 0x1b78], eax
mov dword [rsi + 0x1b74], 1
jmp 0x1400a2f66
cmp dword [rsi + 0x1b74], 0
je 0x1400a2cef
mov ecx, 1
call fcn.1401239d4
test al, al
jne 0x1400a2da5
mov dword [rsi + 0x1b74], 2
cmp r14d, 0x202
jne 0x1400a2fea
test dword [rsi + 0x1b50], 0x4408
jne 0x1400a3005
mov rax, qword [0x14021c740]
cmp byte [rax + 0x11012], 0
je 0x1400a2fc3
cmp dword [rsi + 0x1b50], 0
je 0x1400a2fc3
mov rcx, rsi
call fcn.1400a79d8
test al, al
jne 0x1400a2fc3
mov r8d, r13d
mov edx, dword [rsp + 0x48]
mov rcx, rsi
call fcn.1400a7a28
mov dil, al
test al, al
jne 0x1400a2d69
and qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call fcn.14009e830
cmp r14d, r15d
jne 0x1400a2f93
mov edx, r13d
mov ecx, dword [rsp + 0x48]
call fcn.140127674
mov qword [rsi + 0x1b7c], rax
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rsi + 0x1b78], eax
mov dword [rsi + 0x1b74], 1
mov ecx, 0x202
jmp 0x1400a2f9d
mov rcx, qword [0x14021c5c8]
call fcn.140054598
mov edi, eax
mov rcx, qword [0x14021c5c8]
call fcn.14005434c
cmp edi, eax
cmovl edi, eax
mov eax, dword [rsp + 0x48]
sub eax, dword [rsi + 0x1b7c]
mov ecx, r13d
sub ecx, dword [rsi + 0x1b80]
cmp r14d, 0x200
jne 0x1400a2e97
cmp dword [rsi + 0x1b74], 1
jne 0x1400a2ff3
cdq
xor eax, edx
sub eax, edx
cmp eax, edi
jl 0x1400a2dff
mov ebx, r14d
jmp 0x1400a2e13
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, edi
jl 0x1400a2ff3
mov ebx, 0x100
mov edx, ebx
mov rcx, qword [0x14021c5d8]
call fcn.140013f70
or ebx, dword [rsi + 0x1b50]
mov edx, ebx
mov rcx, rsi
call fcn.1400a6b2c
mov eax, dword [rsi + 0x1b80]
mov dword [rsp + 0x20], eax
mov r9d, dword [rsi + 0x1b7c]
mov r8, qword [rsp + 0x58]
mov edx, r15d
mov rcx, rsi
call fcn.1400a385c
xor r12d, r12d
mov bl, byte [rsp + 0x40]
cmp r14d, dword [rsi + 0x1b84]
jne 0x1400a2e6b
mov dword [rsi + 0x1b84], r12d
mov bl, 1
mov al, bl
mov rcx, qword [rbp + 0xa0]
xor rcx, rsp
call fcn.140139b10
mov rbx, qword [rsp + 0x200]
add rsp, 0x1b0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
cmp r14d, 0x203
jne 0x1400a2cef
cmp dword [rsi + 0x1b74], 2
jne 0x1400a3005
cdq
xor eax, edx
sub eax, edx
cmp eax, edi
jge 0x1400a3005
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, edi
jge 0x1400a3005
test dword [rsi + 0x1b50], 0x300
jne 0x1400a2ee5
lea edx, [r14 + 1]
mov rcx, rsi
call fcn.1400a6b2c
mov dword [rsp + 0x20], r13d
mov r9d, dword [rsp + 0x48]
mov r8, qword [rsp + 0x58]
mov edx, 0x203
mov rcx, rsi
call fcn.1400a385c
mov edx, dword [rsi + 0x1b50]
xor r12d, r12d
test edx, edx
je 0x1400a2f1a
bts edx, 0xa
mov rcx, rsi
call fcn.1400a6b2c
mov dword [rsi + 0x1b74], r12d
jmp 0x1400a2e55
cmp dword [rsi + 0x1b74], 0
je 0x1400a2f4e
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, eax
sub edi, dword [rsi + 0x1b78]
call qword [sym.imp.USER32.dll_GetDoubleClickTime]
cmp edi, eax
ja 0x1400a2f4e
and dword [rsi + 0x1b74], 0
test r15b, r15b
je 0x1400a3060
mov r15d, 0x201
cmp r14d, r15d
jne 0x1400a2cef
test dword [rsi + 0x1b50], 0x400
je 0x1400a2d0c
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, eax
sub edi, dword [rsi + 0x1b64]
call qword [sym.imp.USER32.dll_GetDoubleClickTime]
cmp edi, eax
jbe 0x1400a2fc8
jmp 0x1400a2d0c
mov ecx, 0x202
cmp r14d, ecx
je 0x1400a2fac
test dil, dil
jne 0x1400a2fc3
cmp r14d, r15d
jne 0x1400a2fea
test r12d, r12d
jne 0x1400a2fc8
xor r12d, r12d
mov eax, r12d
cmp r14d, r15d
cmove eax, ecx
mov dword [rsi + 0x1b84], eax
jmp 0x1400a2e55
cmp r14d, r15d
jne 0x1400a2fea
mov dword [rsp + 0x20], r13d
mov r9d, dword [rsp + 0x48]
mov r8, qword [rsp + 0x58]
mov edx, r15d
mov rcx, rsi
call fcn.1400a385c
test al, al
jne 0x1400a2e52
cmp r14d, 0x200
jne 0x1400a3005
cmp dword [rsi + 0x1b50], 0
jne 0x1400a3005
test r12d, r12d
jne 0x1400a2e52
mov rax, qword [0x14021c740]
mov cl, byte [rax + 0x11030]
mov edi, 0x7d9
cmp cl, 2
je 0x1400a3140
cmp cl, 3
jne 0x1400a3035
xor r12d, r12d
cmp dword [rsi + 0x1b50], r12d
je 0x1400a3143
mov rax, qword [0x14021c740]
mov cl, byte [rax + 0x11031]
cmp cl, 2
je 0x1400a31f5
cmp cl, 3
jne 0x1400a3060
xor r12d, r12d
cmp dword [rsi + 0x1b50], r12d
je 0x1400a31f8
mov rax, qword [0x14021c740]
mov cl, byte [rax + 0x11031]
mov edi, 0x205
mov r8b, 4
cmp cl, r8b
je 0x1400a3087
cmp byte [rax + 0x11030], r8b
jne 0x1400a323e
lea eax, [r14 - 0x207]
mov edx, 0xfffffffd
test edx, eax
jne 0x1400a30a0
cmp cl, r8b
je 0x1400a2e52
lea eax, [r14 - 0x204]
test edx, eax
jne 0x1400a30bf
mov rax, qword [0x14021c740]
cmp byte [rax + 0x11030], r8b
je 0x1400a2e52
cmp r14d, 0x208
jne 0x1400a30cd
cmp cl, r8b
je 0x1400a30ea
cmp r14d, edi
jne 0x1400a323e
mov rax, qword [0x14021c740]
cmp byte [rax + 0x11030], r8b
jne 0x1400a323e
mov eax, 0xffff8300
mov dword [rsp + 0x60], eax
mov dword [rsp + 0x64], eax
lea rcx, [rsp + 0x60]
call qword [sym.imp.USER32.dll_GetCursorPos]
mov r8b, 1
mov dl, r8b
lea rcx, str.EditMenu_called_by_mouse_click
call fcn.14002b004
mov rcx, qword [rsi + 0x58]
call fcn.1400c2374
mov rdx, rax
xor r9d, r9d
mov r8, qword [rsp + 0x60]
mov rcx, qword [0x14021c5d8]
mov rcx, qword [rcx + 0x3fb0]
call fcn.140079b98
jmp 0x1400a2e52
xor r12d, r12d
lea eax, [r14 - 0x204]
cmp eax, 1
ja 0x1400a3035
xor edx, edx
mov rcx, qword [rsi + 0x58]
call fcn.1400c3124
test al, al
jne 0x1400a3172
mov rax, qword [rsi + 0x58]
cmp dword [rax + 0x2706c], r12d
mov r8b, 1
je 0x1400a3175
mov r8b, r12b
mov edx, edi
mov rcx, qword [0x14021c740]
call fcn.14007ed38
test al, al
je 0x1400a3035
mov edi, 0x205
cmp r14d, edi
jne 0x1400a2e55
cmp dword [rsi + 0x1b50], r12d
je 0x1400a31c5
mov rax, qword [0x14021c740]
cmp byte [rax + 0x11012], r12b
je 0x1400a31c5
mov r8b, 1
mov dl, r8b
mov rcx, rsi
call fcn.14009d57c
jmp 0x1400a2e55
mov qword [rsp + 0x20], r12
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call fcn.14009e830
mov byte [rsp + 0x20], r12b
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, qword [rsi + 0x58]
call fcn.1400b604c
jmp 0x1400a2e55
xor r12d, r12d
lea eax, [r14 - 0x207]
cmp eax, 1
ja 0x1400a3060
xor edx, edx
mov rcx, qword [rsi + 0x58]
call fcn.1400c3124
test al, al
sete r8b
mov edx, edi
mov rcx, qword [0x14021c740]
call fcn.14007ed38
test al, al
je 0x1400a3060
cmp r14d, 0x208
jne 0x1400a2e55
jmp 0x1400a31da
xor r12d, r12d
cmp dword [rsi + 0x1b50], r12d
jne 0x1400a327e
xor edx, edx
mov rcx, qword [rsi + 0x58]
call fcn.1400b2290
test al, al
je 0x1400a327e
lea eax, [r14 - 0x200]
cmp eax, 3
ja 0x1400a327e
mov r9b, 1
mov r8d, ebx
mov edx, r14d
mov rcx, rsi
call fcn.1400a4aac
test al, al
jne 0x1400a2e55
mov rcx, qword [rsi + 0x58]
call fcn.1400c3140
mov r12b, al
mov rax, qword [0x14021c740]
cmp byte [rax + 0x11005], 0
jne 0x1400a32ac
mov rcx, qword [rsi + 0x58]
call fcn.1400c3ad4
test al, al
je 0x1400a32ac
mov r15b, 1
jmp 0x1400a32af
xor r15b, r15b
xor cl, cl
lea eax, [r14 - 0x20a]
mov edx, 0xfffffffb
test edx, eax
jne 0x1400a32ef
cmp byte [rsi + 0x1c24], cl
je 0x1400a32ef
cmp dword [rsi], 1
jne 0x1400a32ef
test r12b, r12b
je 0x1400a32ef
test r15b, r15b
je 0x1400a32ef
mov rax, qword [rsi + 0x58]
mov rcx, qword [rax]
add rcx, 0x18
call fcn.140109634
mov cl, al
mov edx, 0xfffffffb
cmp byte [rsi + 0x1c24], 0
je 0x1400a33d2
cmp dword [rsi], 1
jne 0x1400a33a9
test r12b, r12b
je 0x1400a33a9
xor r12d, r12d
test r15b, r15b
je 0x1400a33ac
test cl, cl
jne 0x1400a33ac
lea eax, [r14 - 0x20a]
test edx, eax
jne 0x1400a33d5
cmp dword [rsi + 0x1b50], r12d
jne 0x1400a33ac
cmp dword [rsi], 1
jne 0x1400a3382
mov rax, qword [0x14021c740]
cmp byte [rax + 0x11079], r12b
je 0x1400a3382
mov eax, 0x204
cmp r14d, eax
jne 0x1400a3401
movsx ecx, word [rsi + 0x1ba2]
dec ecx
movsx eax, word [rbp + 0x11a]
cmp eax, ecx
jne 0x1400a3382
mov rcx, qword [rsi + 0x58]
call fcn.1400c31bc
test al, al
jne 0x1400a3429
cmp byte [rsi + 0x1c3d], r12b
je 0x1400a3392
mov byte [rsi + 0x1c3d], r12b
cmp dword [rsp + 0x60], r12d
je 0x1400a33c7
cmp r14d, 0x200
jne 0x1400a33c7
mov bl, 1
jmp 0x1400a2e59
xor r12d, r12d
lea eax, [r14 - 0x20a]
test edx, eax
je 0x1400a2e55
mov rcx, rsi
call fcn.1400a7680
test al, al
jne 0x1400a33d5
cmp dword [rsi], 1
setne bl
jmp 0x1400a2e59
xor r12d, r12d
cmp dword [rsi + 0x1b50], r12d
je 0x1400a333a
mov dword [rsp + 0x20], r13d
mov r9d, dword [rsp + 0x48]
mov r8, qword [rsp + 0x58]
mov edx, r14d
mov rcx, rsi
call fcn.1400a385c
jmp 0x1400a2e55
cmp r14d, 0x200
je 0x1400a3413
cmp r14d, edi
jne 0x1400a3382
cmp byte [rsi + 0x1c3d], r12b
je 0x1400a3392
cmp r14d, eax
jne 0x1400a368f
lea rcx, [rbp - 0x80]
call fcn.1401277b4
nop
mov qword [rbp - 0x70], r12
mov dword [rsp + 0x50], r12d
mov byte [rsp + 0x20], r12b
mov r9b, 1
mov r8d, ebx
lea rdx, [rsp + 0x58]
mov rcx, rsi
call fcn.14009cbf0
lea r13, vtable.CRefGuard_class_CRConData_.0
mov qword [rsp + 0x68], r13
mov qword [rsp + 0x70], r12
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rsp + 0x78], eax
lea rax, vtable.CRConDataGuard.0
mov qword [rsp + 0x68], rax
movsx r15d, word [rsp + 0x5a]
lea rax, [rbp - 0x80]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x70]
mov r8d, r15d
lea rdx, [rsp + 0x68]
mov rcx, rsi
call fcn.1400a036c
test al, al
je 0x1400a3589
mov r9, qword [rbp - 0x70]
cmp word [r9], 0x31
jne 0x1400a3589
mov edx, r12d
mov r8d, 2
cmp dword [rsp + 0x50], 1
jle 0x1400a3589
mov r10d, r12d
lea r11d, [r8 - 0xa]
add r9, 4
lea ebx, [r8 + 0x2e]
lea edi, [rbx - 0x27]
mov eax, dword [rsp + 0x58]
movzx ecx, word [r9 - 2]
sub cx, bx
cmp cx, di
ja 0x1400a3574
cmp r8d, edi
jg 0x1400a352d
movzx ecx, word [r9 - 2]
sub ecx, ebx
cmp ecx, r8d
jne 0x1400a3574
cmp word [r9 - 4], 0x20
jne 0x1400a3574
movzx ecx, word [r9]
sub cx, bx
cmp cx, di
jbe 0x1400a3574
movsx ecx, ax
cmp ecx, r10d
jg 0x1400a356b
cmp ecx, edx
jge 0x1400a35ca
jmp 0x1400a356b
cmp r11d, 2
jg 0x1400a35d4
cmp word [r9 - 2], 0x31
jne 0x1400a3574
movzx ecx, word [r9]
sub ecx, ebx
cmp ecx, r11d
jne 0x1400a3574
cmp word [r9 - 4], 0x20
jne 0x1400a3574
movzx ecx, word [r9 + 2]
sub cx, bx
cmp cx, di
jbe 0x1400a3574
movsx ecx, ax
cmp ecx, r10d
jg 0x1400a356b
cmp ecx, edx
jge 0x1400a35c8
inc r8d
inc r11d
mov edx, r10d
inc r10d
add r9, 2
lea ecx, [r10 + 1]
cmp ecx, dword [rsp + 0x50]
jl 0x1400a34e9
mov qword [rsp + 0x68], r13
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x1400a3681
mov eax, dword [rcx + 8]
mov edx, 0x7fffffff
cmp eax, edx
je 0x1400a367c
lock dec dword [rcx + 8]
mov eax, dword [rcx + 8]
test eax, eax
jg 0x1400a3679
mov dword [rcx + 8], edx
mov rax, qword [rcx]
call qword [rax]
jmp 0x1400a367c
inc edx
lea edi, [r8 + 0x6e]
test edi, edi
je 0x1400a3589
jmp 0x1400a35db
inc edx
mov edi, 0x7b
mov byte [rsi + 0x1c3d], 1
mov dword [rsi + 0x1c3e], eax
lea rbx, [rsi + 0x1c44]
mov r8d, r12d
cmp edi, 0x70
setne r8b
inc edx
add r8d, edx
mov rcx, qword [rsi + 0x58]
mov r9d, r15d
lea rdx, [rsp + 0x60]
mov rcx, qword [rcx]
call fcn.140117e40
mov rcx, qword [rax]
mov qword [rbx], rcx
mov rcx, qword [rsi + 0x58]
call fcn.1400b16a4
mov rcx, rax
mov rdx, rbx
call qword [sym.imp.USER32.dll_ClientToScreen]
mov dword [rsi + 0x1c4c], edi
mov qword [rsp + 0x68], r13
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x1400a366b
mov eax, dword [rcx + 8]
mov edx, 0x7fffffff
cmp eax, edx
je 0x1400a3666
lock dec dword [rcx + 8]
mov eax, dword [rcx + 8]
test eax, eax
jg 0x1400a3663
mov dword [rcx + 8], edx
mov rax, qword [rcx]
call qword [rax]
jmp 0x1400a3666
mov eax, dword [rcx + 8]
mov qword [rsp + 0x70], r12
lea rcx, [rbp - 0x80]
call fcn.14012782c
jmp 0x1400a2e55
mov eax, dword [rcx + 8]
mov qword [rsp + 0x70], r12
lea rcx, [rbp - 0x80]
call fcn.14012782c
jmp 0x1400a3392
cmp r14d, edi
jne 0x1400a3847
call qword [sym.imp.USER32.dll_CreatePopupMenu]
mov r15, rax
mov rdi, r12
lea r13, [0x14019d9d0]
mov ebx, 0x80
mov word [rbp - 0x60], r12w
mov ecx, dword [r13 + rdi*4]
test cl, 8
je 0x1400a36d7
lea r8, str.Ctrl_
mov rdx, rbx
lea rcx, [rbp - 0x60]
call fcn.140001f38
mov ecx, dword [r13 + rdi*4]
test cl, 2
je 0x1400a36f4
lea r8, str.Alt_
mov rdx, rbx
lea rcx, [rbp - 0x60]
call fcn.140001f38
mov ecx, dword [r13 + rdi*4]
test cl, 4
je 0x1400a3711
lea r8, str.RCtrl_
mov rdx, rbx
lea rcx, [rbp - 0x60]
call fcn.140001f38
mov ecx, dword [r13 + rdi*4]
test cl, 1
je 0x1400a372e
lea r8, str.RAlt_
mov rdx, rbx
lea rcx, [rbp - 0x60]
call fcn.140001f38
mov ecx, dword [r13 + rdi*4]
test cl, 0x10
je 0x1400a3746
lea r8, str.Shift_
mov rdx, rbx
lea rcx, [rbp - 0x60]
call fcn.140001f38
mov ebx, dword [rsi + 0x1c4c]
lea rcx, [rbp - 0x60]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rcx, eax
lea rax, [rbp - 0x60]
lea rcx, [rax + rcx*2]
lea r9d, [rbx - 0x6f]
lea r8, [0x14019eba8]
mov edx, 8
call fcn.14012091c
lea rbx, [rdi + 1]
and dil, 3
neg dil
sbb edx, edx
not edx
and edx, 0x40
lea r9, [rbp - 0x60]
mov r8, rbx
mov rcx, r15
call qword [sym.imp.USER32.dll_AppendMenuW]
mov rdi, rbx
cmp rbx, 0xc
mov ebx, 0x80
jb 0x1400a36b0
mov edx, dword [rsi + 0x1c44]
lea eax, [rdx - 1]
mov dword [rbp - 0x70], eax
mov ecx, dword [rsi + 0x1c48]
lea eax, [rcx - 1]
mov dword [rbp - 0x6c], eax
lea eax, [rdx + 1]
mov dword [rbp - 0x68], eax
lea eax, [rcx + 1]
mov dword [rbp - 0x64], eax
lea rax, [rbp - 0x70]
mov qword [rsp + 0x38], rax
mov rax, qword [0x14021c5e0]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], edx
mov r9d, 0x122
mov r8, r15
lea edx, [rbx - 0x7b]
mov rcx, qword [0x14021c5d8]
mov rcx, qword [rcx + 0x3fb0]
call fcn.14007ab5c
lea ebx, [rax - 1]
mov rcx, r15
call qword [sym.imp.USER32.dll_DestroyMenu]
cmp ebx, 0xb
ja 0x1400a383b
xor r9d, r9d
movsxd rax, ebx
or dword [rsp + 0x20], 0xffffffff
mov r8d, dword [r13 + rax*4]
movzx edx, word [rsi + 0x1c4c]
mov rcx, qword [rsi + 0x58]
call fcn.1400b70f0
mov byte [rsi + 0x1c3d], r12b
jmp 0x1400a2e55
cmp r14d, 0x200
je 0x1400a2e55
jmp 0x1400a3392