Function at 0x140187320
Capabilities:
Check for unmoving mouse cursor
Log keystrokes via polling

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x300
mov qword [rsp + 0x178], 0xfffffffffffffffe
mov qword [rsp + 0x348], rbx
mov rbx, rcx
test byte [rcx + 0x1e0], 0x40
je 0x1401883e8
movsx r8d, word [rdx + 0x1a]
movsx eax, word [rdx + 0x18]
mov dword [rsp + 0x58], eax
mov dword [rsp + 0x5c], r8d
mov rax, qword [rcx]
call qword [rax + 0x2d8]
mov rbp, rax
mov qword [rsp + 0x140], rax
xor r14d, r14d
mov qword [rsp + 0x20], r14
or r9d, 0xffffffff
xor r8d, r8d
mov rdx, rbx
lea rcx, [rsp + 0x80]
call fcn.1400a8990
nop
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0x80]
call fcn.1400a3e30
movzx ecx, byte [rbx + 0x23c]
movzx eax, byte [rsp + 0x88]
test cl, 4
je 0x1401873db
test cl, 1
jne 0x1401873db
test al, 2
je 0x1401873db
cmp dword [rsp + 0x8c], 0xffffffff
jne 0x1401873f1
jmp 0x14018839a
cmp dword [rsp + 0x8c], 0xffffffff
je 0x14018839a
test al, 2
je 0x14018839a
test byte [rbx + 0x1e1], 0x80
jne 0x140187402
mov rcx, rbx
call fcn.1400160e8
mov rax, qword [rbx + 0x170]
lea rcx, [rbx + 0x170]
call qword [rax + 0x18]
movzx edi, al
test al, al
jne 0x14018743d
mov rdx, qword [rbx + 0x170]
lea rcx, [rbx + 0x170]
call qword [rdx + reloc.OLEAUT32.dll_VariantClear]
xor edx, edx
lea r8d, [rdx + 2]
lea rcx, [rbx + 0x170]
call fcn.140075680
test byte [rbx + 0x1e1], 0x10
je 0x140187455
lea rcx, [rbx + 0x1c8]
or edx, 0xffffffff
call fcn.1400b0020
mov eax, dword [rsp + 0x8c]
mov dword [rbx + 0x240], eax
movzx eax, byte [rbx + 0x23c]
and al, 0xfd
or al, 5
mov byte [rbx + 0x23c], al
test dil, dil
jne 0x14018749e
mov r8d, 2
mov dl, 1
lea rcx, [rbx + 0x170]
call fcn.140075680
mov r11, qword [rbx + 0x170]
lea rcx, [rbx + 0x170]
call qword [r11 + 0x10]
xor edx, edx
lea r8d, [rdx + 1]
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_InvalidateRect]
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_UpdateWindow]
test rbp, rbp
je 0x1401874d6
mov rax, qword [rbx]
mov r9b, 1
mov r8d, dword [rbx + 0x240]
mov rdx, rbp
mov rcx, rbx
call qword [rax + 0x2f0]
mov eax, dword [rsp + 0x124]
mov dword [rsp + 0x48], eax
mov esi, eax
mov dword [rbx + 0x244], eax
or byte [rbx + 0x23c], 0x10
lea rdx, [rsp + 0x130]
lea rcx, [rsp + 0x80]
call fcn.1400a3f10
mov r13, qword [rbx + 0x40]
mov rcx, r13
call qword [sym.imp.USER32.dll_GetParent]
mov qword [rsp + 0x78], rax
mov byte [rsp + 0x350], 0
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x38], rcx
mov dword [rsp + 0x34], r14d
mov byte [rsp + 0x30], 0
mov ecx, 0x17
call qword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
sete byte [rsp + 0x340]
mov edx, dword [rsp + 0x8c]
sub edx, 1
je 0x14018758b
sub edx, 1
je 0x140187590
sub edx, 2
je 0x140187565
cmp edx, 1
je 0x14018756a
jmp 0x1401875a0
mov byte [rsp + 0x30], 1
mov eax, dword [rsp + 0x120]
mov dword [rsp + 0x34], eax
test eax, eax
jg 0x1401875a0
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x280]
mov dword [rsp + 0x34], eax
jmp 0x1401875a0
mov byte [rsp + 0x30], 1
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x280]
mov dword [rsp + 0x34], eax
mov byte [rsp + 0x358], 0
call fcn.1400794f0
test eax, eax
je 0x140187615
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_GetParent]
mov rcx, rax
call fcn.14001256c
mov rdi, rax
test rax, rax
je 0x140187615
nop dword [rax + rax]
lea rdx, str.CExtPopupMenuWnd
mov rcx, rdi
call fcn.14001b150
test eax, eax
jne 0x14018760d
mov rcx, rdi
call fcn.14000a5c4
bt eax, 0x1e
jae 0x140187615
mov rcx, qword [rdi + 0x40]
call qword [sym.imp.USER32.dll_GetParent]
mov rcx, rax
call fcn.14001256c
mov rdi, rax
test rax, rax
jne 0x1401875d0
jmp 0x140187615
mov byte [rsp + 0x358], 1
mov r15d, dword [rsp + 0x11c]
mov r14d, r15d
mov eax, dword [rsp + 0x120]
sub r14d, eax
inc r14d
sub r15d, dword [rsp + 0x118]
sub r15d, eax
inc r15d
mov edi, dword [rsp + 0x34]
cmp edi, r15d
cmovg edi, r15d
mov dword [rsp + 0x34], edi
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0x90]
mov rax, qword [rcx]
mov qword [rdx], rax
mov rax, qword [rcx + 8]
mov qword [rdx + 8], rax
test byte [rsp + 0x88], 1
je 0x140187697
mov eax, dword [rsp + 0xc8]
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0xd0]
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x74]
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x6c]
mov dword [rsp + 0x44], eax
jmp 0x1401876bd
mov eax, dword [rsp + 0xcc]
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0xd4]
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x70]
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x68]
mov dword [rsp + 0x4c], eax
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x2a0]
test edi, edi
je 0x1401876e2
xor r9d, r9d
mov edx, 0x113
lea r8d, [rdx + 0x7e]
mov rcx, r13
call qword [sym.imp.USER32.dll_PostMessageW]
mov rcx, r13
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x1401881c5
nop word [rax + rax]
mov dword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x148]
call qword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
jne 0x14018773e
mov rcx, r13
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x1401881c1
call qword [sym.imp.USER32.dll_WaitMessage]
jmp 0x1401881b0
xor dil, dil
mov byte [rsp + 0x40], dil
mov eax, dword [rsp + 0x150]
cmp eax, 0x113
ja 0x140187779
cmp eax, 0x113
je 0x14018790d
cmp eax, 0x1c
je 0x1401877b4
cmp eax, 0x1f
je 0x1401877b4
cmp eax, 0xff
jbe 0x1401877c1
cmp eax, 0x101
jbe 0x1401877b4
jmp 0x1401877c1
cmp eax, 0x200
je 0x14018783b
cmp eax, 0x201
jbe 0x1401877c1
cmp eax, 0x209
jbe 0x1401877b4
cmp eax, 0x215
jne 0x1401877c1
cmp qword [rsp + 0x158], r13
je 0x140187f3d
mov byte [rsp + 0x350], 1
jmp 0x140187f3d
mov byte [rsp + 0x350], 1
jmp 0x140187f3d
movzx eax, byte [rsp + 0x340]
neg al
sbb ecx, ecx
add ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
test cx, ax
je 0x14018782e
mov ecx, 4
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
jne 0x14018782e
xor ecx, ecx
cmp byte [rsp + 0x340], cl
setne cl
inc ecx
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
test cx, ax
jne 0x14018782e
cmp byte [rsp + 0x358], 0
jne 0x140187f3d
call fcn.1400794f0
test eax, eax
je 0x140187f3d
mov byte [rsp + 0x350], 1
jmp 0x140187f3d
cmp dword [rbx + 0x240], 3
jne 0x140187902
movzx eax, byte [rsp + 0x340]
neg al
sbb ecx, ecx
add ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
test cx, ax
je 0x1401878f5
mov ecx, 4
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
jne 0x1401878f5
xor ecx, ecx
cmp byte [rsp + 0x340], cl
setne cl
inc ecx
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
test cx, ax
jne 0x1401878f5
cmp byte [rsp + 0x358], 0
jne 0x1401878b1
call fcn.1400794f0
test eax, eax
jne 0x1401878f5
mov dword [rsp + 0x20], 1
mov r8d, dword [rsp + 0x150]
mov r9d, r8d
xor edx, edx
lea rcx, [rsp + 0x148]
call qword [sym.imp.USER32.dll_PeekMessageW]
mov dil, 1
lea rcx, [rsp + 0x38]
call qword [sym.imp.USER32.dll_GetCursorPos]
lea rdx, [rsp + 0x38]
mov rcx, r13
call qword [sym.imp.USER32.dll_ScreenToClient]
jmp 0x140187f3d
mov byte [rsp + 0x350], 1
jmp 0x140187f3d
cmp dword [rsp + 0x34], 0
je 0x140187f3d
movzx eax, byte [rsp + 0x340]
neg al
sbb ecx, ecx
add ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
test cx, ax
je 0x140187f35
mov ecx, 4
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
jne 0x140187f35
xor ecx, ecx
cmp byte [rsp + 0x340], cl
setne cl
inc ecx
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
test cx, ax
jne 0x140187f35
cmp byte [rsp + 0x358], 0
jne 0x140187982
call fcn.1400794f0
test eax, eax
jne 0x140187f35
cmp qword [rsp + 0x148], r13
jne 0x140187f3d
mov rax, qword [rsp + 0x158]
cmp rax, 0x191
je 0x1401879ea
cmp rax, 0x192
je 0x1401879b6
cmp rax, 0x193
jne 0x140187f3d
jmp 0x1401879ff
mov edx, 0x192
mov rcx, r13
call qword [sym.imp.USER32.dll_KillTimer]
mov r8b, 1
movzx edx, r8b
movzx ecx, dl
call fcn.1400a9180
xor r9d, r9d
mov edx, 0x193
lea r8d, [r9 + 0x64]
mov rcx, r13
call qword [sym.imp.USER32.dll_SetTimer]
jmp 0x1401879ff
xor r9d, r9d
mov edx, 0x192
lea r8d, [rdx - 2]
mov rcx, r13
call qword [sym.imp.USER32.dll_SetTimer]
mov dword [rsp + 0x20], 1
mov r8d, dword [rsp + 0x150]
mov r9d, r8d
xor edx, edx
lea rcx, [rsp + 0x148]
call qword [sym.imp.USER32.dll_PeekMessageW]
lea rcx, [rsp + 0x38]
call qword [sym.imp.USER32.dll_GetCursorPos]
lea rdx, [rsp + 0x38]
mov rcx, r13
call qword [sym.imp.USER32.dll_ScreenToClient]
xor dil, dil
mov rdx, qword [rsp + 0x38]
lea rcx, [rsp + 0x130]
call qword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x140187ef7
mov eax, dword [rbx + 0x240]
cmp eax, 4
je 0x140187a6d
cmp eax, 5
jne 0x140187b71
mov qword [rsp + 0x20], 0
or r9d, 0xffffffff
xor r8d, r8d
mov rdx, rbx
lea rcx, [rsp + 0x250]
call fcn.1400a8990
nop
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x250]
call fcn.1400a3e30
mov r11d, dword [rbx + 0x240]
cmp dword [rsp + 0x8c], r11d
je 0x140187ab9
mov dil, 1
jmp 0x140187b5b
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0x250]
call fcn.1400a3f10
mov rdx, qword [rsp + 0x38]
lea rcx, [rsp + 0x68]
call qword [sym.imp.USER32.dll_PtInRect]
test eax, eax
jne 0x140187ae4
mov dil, 1
jmp 0x140187b5b
test byte [rsp + 0x258], 1
je 0x140187b22
mov eax, dword [rbx + 0x240]
cmp eax, 4
jne 0x140187b0b
mov eax, dword [rsp + 0x2b0]
cmp dword [rsp + 0x38], eax
jl 0x140187b5b
mov dil, 1
jmp 0x140187b5b
cmp eax, 5
jne 0x140187b5b
mov eax, dword [rsp + 0x2b8]
cmp dword [rsp + 0x38], eax
jg 0x140187b5b
mov dil, 1
jmp 0x140187b5b
mov eax, dword [rbx + 0x240]
cmp eax, 4
jne 0x140187b3f
mov eax, dword [rsp + 0x2b4]
cmp dword [rsp + 0x3c], eax
jl 0x140187b5b
mov dil, 1
jmp 0x140187b5b
cmp eax, 5
jne 0x140187b5b
movzx edi, dil
mov eax, dword [rsp + 0x2bc]
cmp dword [rsp + 0x3c], eax
mov eax, 1
cmovle edi, eax
lea rcx, [rsp + 0x250]
call fcn.1400a3830
test dil, dil
jne 0x140187ef7
cmp byte [rsp + 0x30], 0
je 0x140187b8e
mov edi, dword [rsp + 0x34]
sub esi, edi
mov rax, qword [rsp + 0x118]
cmp esi, eax
jge 0x140187b9b
mov esi, eax
jmp 0x140187b9b
mov edi, dword [rsp + 0x34]
add esi, edi
cmp esi, r14d
cmovg esi, r14d
test byte [rbx + 0x1e2], 1
jne 0x140187bba
mov rax, qword [rbx]
mov dl, 1
mov rcx, rbx
call qword [rax + 0x2c8]
cmp eax, esi
je 0x140187d5a
mov r10, qword [rsp + 0x78]
test r10, r10
je 0x140187d3c
mov ecx, dword [rbx + 0x240]
sub ecx, 1
je 0x140187cf7
sub ecx, 1
je 0x140187cad
sub ecx, 1
je 0x140187c8e
sub ecx, 1
je 0x140187c41
cmp ecx, 1
jne 0x140187d3c
test byte [rbx + 0x1e1], 0x40
je 0x140187c22
mov dl, byte [rsp + 0x88]
not dl
and edx, ecx
or edx, 0x114
mov r9, qword [rbx + 0x40]
lea r8d, [rcx + 2]
mov rcx, r10
call qword [sym.imp.USER32.dll_SendMessageW]
mov rax, qword [rbx]
mov byte [rsp + 0x20], 1
mov r9b, 1
movzx r8d, r9b
mov edx, esi
mov rcx, rbx
call qword [rax + 0x2d0]
jmp 0x140187d3c
test byte [rbx + 0x1e1], 0x40
je 0x140187c6f
mov dl, byte [rsp + 0x88]
not dl
and edx, 1
or edx, 0x114
mov r9, qword [rbx + 0x40]
mov r8d, 2
mov rcx, r10
call qword [sym.imp.USER32.dll_SendMessageW]
mov rax, qword [rbx]
mov byte [rsp + 0x20], 1
mov r9b, 1
movzx r8d, r9b
mov edx, esi
mov rcx, rbx
call qword [rax + 0x2d0]
jmp 0x140187d3c
mov rax, qword [rbx]
mov byte [rsp + 0x20], 1
mov r9b, 1
movzx r8d, r9b
mov edx, esi
mov rcx, rbx
call qword [rax + 0x2d0]
jmp 0x140187d3c
test byte [rbx + 0x1e1], 0x40
je 0x140187cdb
mov dl, byte [rsp + 0x88]
not dl
and edx, 1
or edx, 0x114
mov r9, qword [rbx + 0x40]
mov r8d, 1
mov rcx, r10
call qword [sym.imp.USER32.dll_SendMessageW]
mov rax, qword [rbx]
mov byte [rsp + 0x20], 1
mov r9b, 1
movzx r8d, r9b
mov edx, esi
mov rcx, rbx
call qword [rax + 0x2d0]
jmp 0x140187d3c
test byte [rbx + 0x1e1], 0x40
je 0x140187d22
mov dl, byte [rsp + 0x88]
not dl
and edx, 1
or edx, 0x114
mov r9, qword [rbx + 0x40]
xor r8d, r8d
mov rcx, r10
call qword [sym.imp.USER32.dll_SendMessageW]
mov rax, qword [rbx]
mov byte [rsp + 0x20], 1
mov r9b, 1
movzx r8d, r9b
mov edx, esi
mov rcx, rbx
call qword [rax + 0x2d0]
test rbp, rbp
je 0x140187d5a
mov rax, qword [rbx]
mov r9b, 1
mov r8d, dword [rbx + 0x240]
mov rdx, rbp
mov rcx, rbx
call qword [rax + 0x2f0]
mov qword [rsp + 0x20], 0
or r9d, 0xffffffff
xor r8d, r8d
mov rdx, rbx
lea rcx, [rsp + 0x1a0]
call fcn.1400a8990
nop
lea rdx, [rsp + 0x110]
lea rcx, [rsp + 0x230]
mov rax, qword [rcx]
mov qword [rdx], rax
mov rax, qword [rcx + 8]
mov qword [rdx + 8], rax
mov rax, qword [rcx + 0x10]
mov qword [rdx + 0x10], rax
mov eax, dword [rcx + 0x18]
mov dword [rdx + 0x18], eax
mov rcx, qword [rsp + 0x238]
mov r15, rcx
shr r15, 0x20
mov r14d, r15d
mov eax, dword [rsp + 0x240]
sub r14d, eax
inc r14d
sub r15d, ecx
sub r15d, eax
inc r15d
cmp edi, r15d
cmovg edi, r15d
mov dword [rsp + 0x34], edi
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x80]
call fcn.1400a3e30
mov r8d, dword [rbx + 0x240]
cmp r8d, dword [rsp + 0x8c]
setne dil
lea rdx, [rsp + 0x190]
lea rcx, [rsp + 0x80]
call fcn.1400a3e50
lea rdx, [rsp + 0x130]
mov ecx, dword [rax]
mov dword [rdx], ecx
mov ecx, dword [rax + 4]
mov dword [rdx + 4], ecx
mov ecx, dword [rax + 8]
mov dword [rdx + 8], ecx
mov eax, dword [rax + 0xc]
mov dword [rdx + 0xc], eax
movzx eax, byte [rbx + 0x23c]
shr al, 1
and al, 1
cmp al, dil
je 0x140187ee3
mov rax, qword [rbx + 0x170]
lea rcx, [rbx + 0x170]
call qword [rax + 0x18]
movzx ebp, al
test al, al
jne 0x140187e81
mov rdx, qword [rbx + 0x170]
lea rcx, [rbx + 0x170]
call qword [rdx + reloc.OLEAUT32.dll_VariantClear]
xor edx, edx
lea r8d, [rdx + 3]
lea rcx, [rbx + 0x170]
call fcn.140075680
and byte [rbx + 0x23c], 0xfd
and dil, 1
add dil, dil
or byte [rbx + 0x23c], dil
test bpl, bpl
jne 0x140187ec1
mov r8d, 3
mov dl, 1
lea rcx, [rbx + 0x170]
call fcn.140075680
mov r11, qword [rbx + 0x170]
lea rcx, [rbx + 0x170]
call qword [r11 + 0x10]
xor edx, edx
lea r8d, [rdx + 1]
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_InvalidateRect]
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_UpdateWindow]
mov rbp, qword [rsp + 0x140]
lea rcx, [rsp + 0x1a0]
call fcn.1400a3830
movzx edi, byte [rsp + 0x40]
jmp 0x140187f3d
movzx eax, byte [rbx + 0x23c]
test al, 2
jne 0x140187f1a
or al, 2
mov byte [rbx + 0x23c], al
xor edx, edx
lea r8d, [rdx + 1]
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_InvalidateRect]
test rbp, rbp
je 0x1401881b0
mov rax, qword [rbp]
mov rcx, rbp
call qword [rax + 0x338]
jmp 0x1401881b0
mov byte [rsp + 0x350], 1
mov rcx, r13
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x1401881c1
cmp byte [rsp + 0x350], 0
jne 0x1401881c1
test r15d, r15d
je 0x1401881c1
test dil, dil
je 0x140188158
movzx eax, byte [rsp + 0x88]
and al, 1
je 0x140187f84
mov edi, dword [rsp + 0x38]
sub edi, dword [rsp + 0x58]
jmp 0x140187f8c
mov edi, dword [rsp + 0x3c]
sub edi, dword [rsp + 0x5c]
test al, al
je 0x140187fac
mov r8d, dword [rsp + 0xe0]
sub r8d, dword [rsp + 0xe8]
sub r8d, dword [rsp + 0x4c]
add r8d, dword [rsp + 0x60]
jmp 0x140187fc6
mov r8d, dword [rsp + 0xe4]
sub r8d, dword [rsp + 0xec]
sub r8d, dword [rsp + 0x44]
add r8d, dword [rsp + 0x50]
test r8d, r8d
jle 0x1401881c1
mov eax, edi
cdq
xor eax, edx
sub eax, edx
cmp eax, r8d
jle 0x140187fe9
test edi, edi
jns 0x140187fe6
mov edi, r8d
neg edi
jmp 0x140187fe9
mov edi, r8d
test edi, edi
je 0x140188019
mov eax, edi
cdq
xor eax, edx
sub eax, edx
mov edx, eax
mov ecx, r15d
call qword [sym.imp.KERNEL32.dll_MulDiv]
test edi, edi
jns 0x14018801b
mov esi, dword [rsp + 0x48]
sub esi, eax
mov rax, qword [rsp + 0x118]
cmp esi, eax
jge 0x140188029
mov esi, eax
jmp 0x140188029
xor eax, eax
mov ecx, dword [rsp + 0x48]
lea esi, [rax + rcx]
cmp esi, r14d
cmovg esi, r14d
test byte [rbx + 0x1e2], 1
jne 0x140188044
mov rax, qword [rbx]
mov dl, 1
mov rcx, rbx
call qword [rax + 0x2c8]
cmp eax, esi
je 0x14018807c
mov rax, qword [rbx]
mov byte [rsp + 0x20], 1
mov r9b, 1
movzx r8d, r9b
mov edx, esi
mov rcx, rbx
call qword [rax + 0x2d0]
test rbp, rbp
je 0x14018807c
mov rax, qword [rbx]
mov r9b, 1
mov r8d, dword [rbx + 0x240]
mov rdx, rbp
mov rcx, rbx
call qword [rax + 0x2f0]
mov qword [rsp + 0x20], 0
or r9d, 0xffffffff
xor r8d, r8d
mov rdx, rbx
lea rcx, [rsp + 0x1a0]
call fcn.1400a8990
nop
lea rdx, [rsp + 0x110]
lea rcx, [rsp + 0x230]
mov rax, qword [rcx]
mov qword [rdx], rax
mov rax, qword [rcx + 8]
mov qword [rdx + 8], rax
mov rax, qword [rcx + 0x10]
mov qword [rdx + 0x10], rax
mov eax, dword [rcx + 0x18]
mov dword [rdx + 0x18], eax
mov rcx, qword [rsp + 0x238]
mov rdx, rcx
shr rdx, 0x20
mov r14d, edx
mov eax, dword [rsp + 0x240]
sub r14d, eax
inc r14d
sub edx, ecx
sub edx, eax
inc edx
mov r15d, edx
mov edi, dword [rsp + 0x34]
cmp edi, edx
cmovg edi, edx
mov dword [rsp + 0x34], edi
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x80]
call fcn.1400a3e30
mov r8d, 3
lea rdx, [rsp + 0x180]
lea rcx, [rsp + 0x80]
call fcn.1400a3e50
lea rdx, [rsp + 0x130]
mov ecx, dword [rax]
mov dword [rdx], ecx
mov ecx, dword [rax + 4]
mov dword [rdx + 4], ecx
mov ecx, dword [rax + 8]
mov dword [rdx + 8], ecx
mov eax, dword [rax + 0xc]
mov dword [rdx + 0xc], eax
lea rcx, [rsp + 0x1a0]
call fcn.1400a3830
jmp 0x1401881b0
test byte [rbx + 0x1e1], 0x80
je 0x14018819b
mov r8d, dword [rsp + 0x150]
cmp r8d, 0x113
je 0x14018817e
lea eax, [r8 - 0x200]
cmp eax, 9
ja 0x14018819b
mov dword [rsp + 0x20], 1
mov r9d, r8d
xor edx, edx
lea rcx, [rsp + 0x148]
call qword [sym.imp.USER32.dll_PeekMessageW]
jmp 0x1401881b0
call fcn.14000d854
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0xb8]
test eax, eax
je 0x1401881c1
mov rcx, r13
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x140187700
mov edi, dword [rsp + 0x34]
mov rcx, r13
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x1401881e4
lea rcx, [rsp + 0x80]
call fcn.1400a3830
jmp 0x1401883e8
test edi, edi
je 0x140188204
mov edx, 0x192
mov rcx, r13
call qword [sym.imp.USER32.dll_KillTimer]
mov edx, 0x193
mov rcx, r13
call qword [sym.imp.USER32.dll_KillTimer]
mov rax, qword [rbx + 0x170]
lea rcx, [rbx + 0x170]
call qword [rax + 0x18]
movzx edi, al
test al, al
jne 0x140188260
mov rdx, qword [rbx + 0x170]
lea rcx, [rbx + 0x170]
call qword [rdx + reloc.OLEAUT32.dll_VariantClear]
mov r11, qword [rbx + 0x170]
mov dl, 1
lea rcx, [rbx + 0x170]
call qword [r11 + 0x30]
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x20]
test al, al
je 0x140188260
xor edx, edx
lea r8d, [rdx + 3]
lea rcx, [rbx + 0x170]
call fcn.140075680
mov rax, qword [rbx]
mov byte [rsp + 0x20], 1
mov r9b, 1
xor r8d, r8d
mov edx, esi
mov rcx, rbx
call qword [rax + 0x2d0]
mov dword [rbx + 0x240], 0xffffffff
and byte [rbx + 0x23c], 0xf8
test dil, dil
jne 0x1401882f0
lea rcx, [rsp + 0x38]
call qword [sym.imp.USER32.dll_GetCursorPos]
lea rdx, [rsp + 0x38]
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_ScreenToClient]
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x80]
call fcn.1400a3e30
mov r11d, dword [rsp + 0x8c]
mov dword [rbx + 0x240], r11d
mov r8d, 3
mov dl, 1
lea rcx, [rbx + 0x170]
call fcn.140075680
mov r11, qword [rbx + 0x170]
lea rcx, [rbx + 0x170]
call qword [r11 + 0x10]
xor edx, edx
lea r8d, [rdx + 1]
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_InvalidateRect]
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_UpdateWindow]
mov dword [rbx + 0x244], 0xffffffff
and byte [rbx + 0x23c], 0xef
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x2a8]
test rbp, rbp
je 0x140188346
mov rax, qword [rbx]
xor r9d, r9d
mov r8d, dword [rsp + 0x8c]
mov rdx, rbp
mov rcx, rbx
call qword [rax + 0x2f0]
mov dl, byte [rsp + 0x88]
not dl
and edx, 1
or edx, 0x114
mov r9, qword [rbx + 0x40]
mov r8d, 8
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.USER32.dll_SendMessageW]
test byte [rbx + 0x1e1], 0x10
je 0x14018838b
lea rcx, [rbx + 0x1c8]
mov r8b, 1
mov edx, 0x4000010f
call fcn.1400b0050
nop
lea rcx, [rsp + 0x80]
call fcn.1400a3830
jmp 0x1401883e8
test rbp, rbp
je 0x1401883ac
mov rax, qword [rbp]
mov rcx, rbp
call qword [rax + 0x338]
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x1f]
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
xor edx, edx
lea r8d, [rdx + 1]
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_InvalidateRect]
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_UpdateWindow]
nop
lea rcx, [rsp + 0x80]
call fcn.1400a3830
mov rbx, qword [rsp + 0x348]
add rsp, 0x300
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret