Function at 0x1401f50b0
Capabilities:
Log keystrokes

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x57]
sub rsp, 0xf0
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
mov r14, r9
mov r15d, r8d
mov r12, rdx
mov rsi, rcx
cmp r8d, 0x100
ja 0x1401f56c1
je case.0x1401f56fd.260
lea eax, [r8 - 6]
cmp eax, 0xa1
ja case.0x1401f5cb2.515
lea rbx, [0x140000000]
movzx eax, byte [rbx + rax + 0x1f6198]
mov ecx, dword [rbx + rax*4 + 0x1f613c]
add rcx, rbx
jmp rcx
mov eax, dword [rsi + 0x10]
test al, 4
je 0x1401f516c
mov rax, 0xffffffffffffffff
jmp 0x1401f597b
mov rcx, rsi
call fcn.1401f3110
xor eax, eax
jmp 0x1401f597b
cmp r14, 1
je case.0x1401f5122.160
mov rcx, rsi
call fcn.1401f3110
mov eax, dword [rsi + 0x10]
shr eax, 3
test al, 1
jne case.0x1401f5cb2.515
xor eax, eax
jmp 0x1401f597b
mov eax, dword [rsi + 0x10]
shr eax, 3
test al, 1
jne case.0x1401f5cb2.515
mov eax, 1
jmp 0x1401f597b
mov rdx, qword [rbp + 0x7f]
mov rcx, rsi
call fcn.1401f4c80
jmp 0x1401f597b
mov rax, qword [rsi]
mov rbx, qword [rax + 0x58]
call qword [sym.imp.USER32.dll_GetMessagePos]
mov ecx, eax
cwde
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbp - 0x39], xmm0
shr rcx, 0x10
movsx eax, cx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbp - 0x35], xmm0
lea r8, [rbp - 0x39]
lea rdx, [rbp - 0x51]
mov rcx, rsi
call rbx
nop
mov rax, qword [rsi]
mov r9, qword [rax + 0x90]
movss xmm0, dword [rbp - 0x51]
call fcn.140182a20
mov dword [rbp - 0x49], eax
movss xmm0, dword [rbp - 0x4d]
call fcn.140182a20
mov dword [rbp - 0x45], eax
xor r8d, r8d
lea rdx, [rbp - 0x49]
mov rcx, rsi
call r9
test al, al
je 0x1401f5236
movss xmm0, dword [rbp - 0x51]
movss dword [rsp + 0x40], xmm0
movss xmm1, dword [rbp - 0x4d]
movss dword [rbp - 0x7d], xmm1
lea rdx, [rsp + 0x40]
mov rcx, rsi
call fcn.1401f38b0
mov rcx, rsi
call fcn.1401ed490
test al, al
je case.0x1401f5122.136
mov rcx, rsi
call fcn.1401ede80
cmp byte [rsi + 0x50], 0
jne case.0x1401f5cb2.515
xor eax, eax
jmp 0x1401f597b
call fcn.1401f1e50
mov rcx, rsi
call fcn.1401ee0c0
jmp case.0x1401f5cb2.515
cmp byte [rsi + 0x83], 0
je 0x1401f5277
mov byte [rsi + 0x83], 0
call qword [sym.imp.USER32.dll_DestroyCaret]
mov rcx, rsi
call fcn.1401ee260
jmp case.0x1401f5cb2.515
test r14, r14
jne 0x1401f5342
mov rbx, qword [0x14036ed68]
test rbx, rbx
jne 0x1401f52ba
mov ecx, 0x168
call fcn.14022d994
mov qword [rsp + 0x40], rax
mov rcx, rax
call fcn.1401a8d50
mov rbx, rax
mov qword [0x14036ed68], rax
lea rsi, [rbx + 0xe0]
cmp byte [rsi], 0
jne 0x1401f5342
mov qword [rsp + 0x40], rsi
mov byte [rbp - 0x79], 0
mov byte [rsi], 1
mov r14, qword [rbx + 0xc8]
test r14, r14
je 0x1401f533f
xor edi, edi
mov qword [rbx + 0xc8], rdi
mov dword [rsp + 0x20], edi
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, r14
call sub.VCRUNTIME140.dll___RTDynamicCast
test rax, rax
je 0x1401f5312
mov dl, 1
mov rcx, rax
call fcn.1401ef270
mov eax, dword [rbx + 0xdc]
mov dword [rsp + 0x20], eax
mov r9d, dword [rbx + 0xd8]
mov r8d, dword [rbx + 0xd4]
mov edx, dword [rbx + 0xd0]
mov rcx, r14
call fcn.1401a2540
mov qword [rbx + 0xc8], rdi
mov byte [rsi], 0
mov rcx, qword [0x14036ed70]
test rcx, rcx
je 0x1401f5358
mov edx, 0xa
call fcn.1401fedf0
mov rdx, 0xffffffffffffffff
mov dword [0x14036fbcc], edx
xor eax, eax
jmp 0x1401f597b
lea eax, [r9 - 1]
cmp ax, 1
ja case.0x1401f5cb2.515
mov rdx, 0xffffffffffffffff
mov dword [0x14036fbcc], edx
call fcn.1401f1e50
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x68]
xor edi, edi
test al, al
je 0x1401f53d5
mov rcx, qword [rsi + 8]
mov edx, dword [rcx + 0x2c]
mov eax, dword [rcx + 0x28]
mov qword [rsp + 0x40], rdi
mov dword [rbp - 0x79], eax
mov dword [rbp - 0x75], edx
mov r8b, 1
lea rdx, [rsp + 0x40]
call fcn.1401a3b10
mov rcx, rsi
call fcn.1401ede80
mov rcx, rsi
call fcn.1401ed490
test al, al
je case.0x1401f5122.136
mov rbx, qword [rsi + 8]
lea rdx, [rsp + 0x40]
mov rcx, rbx
call fcn.1401a70c0
mov rdx, rax
mov rcx, rbx
call fcn.1401a2e90
test rax, rax
jne 0x1401f53fa
mov rax, qword [rsi + 8]
mov rcx, rax
call fcn.1401a3870
test al, al
je 0x1401f546d
cmp r14w, 2
jne 0x1401f5457
call fcn.14019fec0
mov r8d, edi
mov ecx, dword [rax + 0x28]
sub ecx, 1
movsxd rdx, ecx
js 0x1401f5444
mov r9, qword [rax + 0x18]
mov rcx, qword [r9 + rdx*8]
cmp byte [rcx + 0x6c], 0
je 0x1401f5438
mov eax, r8d
inc r8d
test eax, eax
je 0x1401f5440
sub rdx, 1
js 0x1401f5444
jmp 0x1401f5424
mov rdi, qword [rcx + 0x48]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x150]
xor eax, eax
jmp 0x1401f597b
call fcn.14019fec0
mov dl, 1
mov rcx, rax
call fcn.1401a9f00
xor eax, eax
jmp 0x1401f597b
mov eax, dword [0x14036fcb8]
mov dword [0x14036fc74], eax
mov rcx, qword [rsi + 8]
call fcn.1401a6350
xor eax, eax
jmp 0x1401f597b
test r14, r14
jne case.0x1401f5cb2.515
cmp byte [0x1403563a8], r14b
jne case.0x1401f5cb2.515
mov r14d, 1
jmp case.0x1401f5cb2.515
mov rax, qword [rsi + 8]
cmp byte [rax + 0xc0], 0
jge case.0x1401f5cb2.515
mov eax, 3
jmp 0x1401f597b
test r14, r14
je case.0x1401f5cb2.515
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
mov dl, 1
call qword [rax + 0x50]
mov eax, dword [0x14036fcb8]
mov dword [0x14036fc74], eax
mov rcx, qword [rsi + 8]
call fcn.1401a6350
jmp case.0x1401f5cb2.515
mov rcx, qword [rsi + 8]
call fcn.1401a3870
test al, al
jne case.0x1401f5122.136
mov eax, dword [0x14036fcb8]
mov dword [0x14036fc74], eax
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
call qword [rax + 0x68]
xor eax, eax
jmp 0x1401f597b
mov rcx, qword [0x14036ed98]
test rcx, rcx
je 0x1401f6132
mov rax, qword [rcx]
call qword [rax + 0x38]
call fcn.1401fd8e0
movzx eax, byte [rax + 8]
jmp 0x1401f597b
xor r8d, r8d
xor edx, edx
mov rcx, r12
call qword [sym.imp.USER32.dll_InvalidateRect]
mov rbx, qword [0x14036ed68]
test rbx, rbx
jne 0x1401f5581
mov ecx, 0x168
call fcn.14022d994
mov qword [rsp + 0x40], rax
mov rcx, rax
call fcn.1401a8d50
mov rbx, rax
mov qword [0x14036ed68], rax
mov rcx, qword [rbx + 0xa0]
call fcn.1401a97e0
cmp byte [rsi + 0x80], 0
je case.0x1401f5cb2.515
mov rdx, qword [rsi]
mov rcx, rsi
call qword [rdx + 0x68]
test al, al
jne case.0x1401f5cb2.515
mov rbx, qword [rbx + 0xa0]
mov rcx, qword [rsi + 8]
xor edi, edi
mov qword [rsp + 0x40], rdi
mov eax, dword [rcx + 0x28]
mov dword [rbp - 0x79], eax
mov eax, dword [rcx + 0x2c]
mov dword [rbp - 0x75], eax
lea r8, [rsp + 0x40]
lea rdx, [rbp - 0x49]
call fcn.1401a24a0
mov eax, dword [rbp - 0x41]
cdq
sub eax, edx
sar eax, 1
add eax, dword [rbp - 0x49]
mov dword [rsp + 0x40], eax
mov eax, dword [rbp - 0x3d]
cdq
sub eax, edx
sar eax, 1
add eax, dword [rbp - 0x45]
mov dword [rbp - 0x7d], eax
lea rdx, [rsp + 0x40]
mov rcx, rbx
call fcn.1401a96e0
movsd xmm2, qword [rax + 0x20]
lea rdx, [rsp + 0x40]
mov rcx, rax
call fcn.1400f40b0
mov dword [rsp + 0x30], 0x614
mov ecx, dword [rax + 0xc]
mov dword [rsp + 0x28], ecx
mov ecx, dword [rax + 8]
mov dword [rsp + 0x20], ecx
mov r9d, dword [rax + 4]
mov r8d, dword [rax]
xor edx, edx
mov rcx, qword [rsi + 0x58]
call qword [sym.imp.USER32.dll_SetWindowPos]
jmp case.0x1401f5cb2.515
mov rcx, rsi
call fcn.1401f63e0
test al, al
jne case.0x1401f5cb2.515
cmp r14, 4
je 0x1401f5665
lea rax, [r14 - 0xa]
cmp rax, 7
ja case.0x1401f5cb2.515
cmp qword [rsi + 0x28], 0
je 0x1401f568a
mov eax, dword [rsi + 0x10]
and eax, 0x18
cmp al, 0x18
jne 0x1401f568a
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x80]
test al, al
jne 0x1401f568a
mov al, 1
jmp 0x1401f568c
xor al, al
test al, al
je case.0x1401f5cb2.515
mov byte [rsi + 0x84], 1
mov rcx, qword [rsi + 0x28]
mov rax, qword [rcx]
call qword [rax + 0x10]
jmp case.0x1401f5cb2.515
mov rcx, rsi
call fcn.1401f63e0
jmp case.0x1401f5cb2.515
mov eax, 4
jmp 0x1401f597b
cmp r15d, 0x200
ja 0x1401f5c74
je 0x1401f5c39
lea eax, [r8 - 0x101]
cmp eax, 0x1f
ja case.0x1401f5cb2.515
lea rbx, [0x140000000]
movzx eax, byte [rbx + rax + 0x1f6268]
mov ecx, dword [rbx + rax*4 + 0x1f623c]
add rcx, rbx
jmp rcx
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x31], xmm0
movups xmmword [rbp - 0x21], xmm0
movups xmmword [rbp - 0x11], xmm0
mov qword [rbp - 1], rax
mov dword [rbp - 0x31], 0x38
mov rax, qword [0x1403700f8]
test rax, rax
je case.0x1401f5cb2.515
lea rdx, [rbp - 0x31]
mov rcx, qword [rbp + 0x7f]
call rax
test eax, eax
je case.0x1401f5cb2.515
call fcn.1401f1e50
mov qword [rbp - 0x51], 0
lea rdx, [rbp - 0x51]
mov rcx, rsi
call fcn.1401f3ce0
mov rbx, rax
test rax, rax
je case.0x1401f5cb2.515
cmp dword [rbp - 0x29], 3
jne case.0x1401f5cb2.515
cmp dword [rbp - 0x2d], 1
je 0x1401f5807
mov rcx, qword [rsi + 0x78]
test rcx, rcx
je 0x1401f5807
mov rdx, qword [rbp - 9]
xorps xmm0, xmm0
test rdx, rdx
js 0x1401f5796
cvtsi2sd xmm0, rdx
jmp 0x1401f57ab
mov rax, rdx
shr rax, 1
and edx, 1
or rax, rdx
cvtsi2sd xmm0, rax
addsd xmm0, xmm0
xorps xmm1, xmm1
test rcx, rcx
js 0x1401f57ba
cvtsi2sd xmm1, rcx
jmp 0x1401f57cf
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2sd xmm1, rax
addsd xmm1, xmm1
divsd xmm0, xmm1
cvtpd2ps xmm6, xmm0
call fcn.1401f0890
movss xmm0, dword [rbp - 0x51]
movss dword [rsp + 0x40], xmm0
movss xmm1, dword [rbp - 0x4d]
movss dword [rbp - 0x7d], xmm1
movss dword [rsp + 0x20], xmm6
mov r9, rax
lea r8, [rsp + 0x40]
mov rcx, rbx
call fcn.1401ed890
mov rax, qword [rbp - 9]
mov qword [rsi + 0x78], rax
xor eax, eax
jmp 0x1401f597b
mov rdx, r14
mov rcx, rsi
call fcn.1401f4600
jmp 0x1401f589e
mov rdx, r14
mov rcx, rsi
call fcn.1401f44a0
jmp 0x1401f589e
mov r13d, r14d
call fcn.1401f1e50
mov r8d, r14d
mov rax, qword [rbp + 0x7f]
sar rax, 0x10
movzx ecx, al
mov rdx, 0xffffffffffffffff
lea eax, [r14 - 0x30]
cmp eax, 9
ja 0x1401f58d1
lea eax, [rcx - 0x47]
cmp eax, 0xb
ja case.0x1401f586a.74
cdqe
mov ecx, dword [rbx + rax*4 + 0x1f6288]
add rcx, rbx
jmp rcx
add r13d, 0x10030
mov eax, dword [0x14036fcb8]
mov dword [0x14036fc74], eax
and eax, 0xffffff8f
mov dword [rsp + 0x40], r13d
mov dword [rbp - 0x7d], edx
mov dword [rbp - 0x79], eax
mov dword [rbp - 0x75], r8d
lea rdx, [rsp + 0x40]
mov rcx, rsi
call fcn.1401edad0
test al, al
jne case.0x1401f5122.136
mov rcx, qword [rsi + 0x58]
call qword [sym.imp.USER32.dll_GetParent]
test rax, rax
je case.0x1401f5cb2.515
mov r9, qword [rbp + 0x7f]
mov r8, r14
mov edx, r15d
mov rcx, rax
call qword [sym.imp.USER32.dll_PostMessageW]
jmp case.0x1401f5cb2.515
mov edx, 1
call qword [sym.imp.USER32.dll_MapVirtualKeyW]
mov edi, eax
mov edx, 2
mov ecx, eax
call qword [sym.imp.USER32.dll_MapVirtualKeyW]
mov ebx, eax
xor edx, edx
mov ecx, edi
call qword [sym.imp.USER32.dll_MapVirtualKeyW]
mov edx, eax
movzx eax, bx
test eax, eax
cmovne r13d, eax
mov r8d, r14d
cmp r14d, 0x20
jae case.0x1401f586a.74
mov eax, dword [0x14036fcb8]
test al, 6
mov edi, 0
cmovne r8d, edi
jmp 0x1401f5879
mov eax, 0x10000
jmp 0x1401f597b
mov eax, dword [rsi + 0x10]
shr eax, 3
test al, 1
jne case.0x1401f5cb2.515
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x78]
test al, al
je 0x1401f59a6
xor r8d, r8d
mov edx, 0xf120
mov rcx, r14
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov edx, 0xf010
mov r8d, 1
mov rcx, r14
call qword [sym.imp.USER32.dll_EnableMenuItem]
mov r9, qword [rbp + 0x7f]
mov r8, r14
mov edx, r15d
mov rcx, r12
call qword [sym.imp.USER32.dll_DefWindowProcW]
lea r11, [rsp + 0xf0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x68]
test al, al
jne case.0x1401f5cb2.515
mov edx, 0xf030
jmp 0x1401f5959
mov rax, r14
and eax, 0xfff0
sub rax, 0xf020
je 0x1401f5aeb
sub rax, 0x10
je 0x1401f5ac9
sub rax, 0x30
je 0x1401f5a91
sub rax, 0xa0
je 0x1401f5a69
cmp rax, 0x20
jne case.0x1401f5cb2.515
mov rcx, rsi
call fcn.1401f63e0
test al, al
jne case.0x1401f5122.136
mov rdx, qword [rsi]
mov eax, dword [rsi + 0x10]
shr eax, 3
mov rcx, rsi
test al, 1
je 0x1401f5a31
call qword [rdx + 0x78]
test al, al
je case.0x1401f5cb2.515
mov rax, qword [rsi]
xor edx, edx
mov rcx, rsi
call qword [rax + 0x70]
xor eax, eax
jmp 0x1401f597b
call qword [rdx + 0x68]
mov r8, qword [rsi]
mov rcx, rsi
test al, al
je 0x1401f5a4b
xor edx, edx
call qword [r8 + 0x60]
xor eax, eax
jmp 0x1401f597b
call qword [r8 + 0x78]
test al, al
je case.0x1401f5122.136
mov rax, qword [rsi]
xor edx, edx
mov rcx, rsi
call qword [rax + 0x70]
xor eax, eax
jmp 0x1401f597b
mov eax, dword [rsi + 0x10]
shr eax, 3
test al, 1
je case.0x1401f5cb2.515
call qword [sym.imp.USER32.dll_GetCapture]
cmp r12, rax
jne case.0x1401f5cb2.515
call qword [sym.imp.USER32.dll_ReleaseCapture]
jmp case.0x1401f5cb2.515
mov rcx, rsi
call fcn.1401f63e0
test al, al
jne case.0x1401f5122.136
mov eax, dword [rsi + 0x10]
shr eax, 3
test al, 1
je case.0x1401f5cb2.515
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x10]
mov rcx, r12
call qword [sym.imp.USER32.dll_PostMessageW]
xor eax, eax
jmp 0x1401f597b
mov rcx, rsi
call fcn.1401f63e0
test al, al
jne case.0x1401f5122.136
mov rax, qword [rsi]
mov dl, 1
mov rcx, rsi
call qword [rax + 0x70]
xor eax, eax
jmp 0x1401f597b
mov rcx, rsi
call fcn.1401f63e0
test al, al
jne case.0x1401f5122.136
mov eax, dword [rsi + 0x10]
shr eax, 3
test al, 1
jne case.0x1401f5cb2.515
mov rax, qword [rsi]
mov dl, 1
mov rcx, rsi
call qword [rax + 0x60]
xor eax, eax
jmp 0x1401f597b
mov qword [rsi + 0xf0], 0xffffffffffffffff
mov byte [rsi + 0xf8], 0
mov rcx, rsi
call fcn.1401ede00
test rax, rax
je case.0x1401f5122.136
mov r8, qword [rax]
lea rdx, [0x140356150]
mov rcx, rax
call qword [r8 + 0x30]
xor eax, eax
jmp 0x1401f597b
lea rbx, [rsi + 0xf0]
cmp byte [rbx + 8], 0
je 0x1401f5c0c
mov rcx, rsi
call fcn.1401ede00
mov rsi, rax
test rax, rax
je 0x1401f5bdc
mov rcx, qword [rax]
mov r8, qword [rcx + 0x18]
mov rdx, rbx
mov rcx, rax
call r8
mov rcx, qword [rsi]
mov r8, qword [rcx + 0x30]
lea rdx, [0x140356150]
mov rcx, rsi
call r8
mov ecx, dword [rbx]
mov dword [rbx + 4], ecx
mov rax, qword [rsi]
mov dword [rsp + 0x40], ecx
mov dword [rbp - 0x7d], ecx
lea rdx, [rsp + 0x40]
mov rcx, rsi
call qword [rax + 0x18]
mov rax, qword [rsi]
xor edi, edi
mov qword [rsp + 0x40], rdi
mov dword [rbp - 0x79], edi
mov dword [rbp - 0x71], edi
lea rdx, [rsp + 0x40]
mov rcx, rsi
call qword [rax + 0x20]
nop
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, r12
call qword [sym.imp.IMM32.dll_ImmGetContext]
mov rdi, rax
test rax, rax
je 0x1401f5c0c
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x11]
mov rcx, rax
call qword [sym.imp.IMM32.dll_ImmNotifyIME]
mov rdx, rdi
mov rcx, r12
call qword [sym.imp.IMM32.dll_ImmReleaseContext]
mov qword [rbx], 0xffffffffffffffff
mov byte [rbx + 8], 0
jmp case.0x1401f5cb2.515
lea rcx, [rsi + 0xf0]
mov r9, qword [rbp + 0x7f]
mov r8, r12
mov rdx, rsi
call fcn.1401f6460
xor eax, eax
jmp 0x1401f597b
mov rcx, qword [rbp + 0x7f]
movsx eax, cx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rsp + 0x40], xmm0
shr rcx, 0x10
movsx eax, cx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbp - 0x7d], xmm0
lea rdx, [rsp + 0x40]
mov rcx, rsi
call fcn.1401f39b0
xor eax, eax
jmp 0x1401f597b
cmp r15d, 0x319
ja case.0x1401f5cb2.515
je 0x1401f60b2
lea eax, [r8 - 0x201]
cmp eax, 0xdf
ja case.0x1401f5cb2.515
lea rbx, [0x140000000]
movzx eax, byte [rbx + rax + 0x1f62f4]
mov ecx, dword [rbx + rax*4 + 0x1f62b8]
add rcx, rbx
jmp rcx
movzx eax, r14w
mov dword [rbp - 0x71], eax
mov rdx, qword [rbp + 0x7f]
movsx eax, dx
imul ecx, eax, 0x64
mov dword [rsp + 0x40], ecx
shr rdx, 0x10
movsx eax, dx
imul ecx, eax, 0x64
xor r9d, r9d
mov dword [rbp - 0x7d], ecx
xor r8d, r8d
lea rdx, [rsp + 0x40]
mov rcx, rsi
call fcn.1401f4090
xor eax, eax
jmp 0x1401f597b
mov byte [rsi + 0x82], 0
mov rax, qword [rsi]
mov rbx, qword [rax + 0x58]
call qword [sym.imp.USER32.dll_GetMessagePos]
mov ecx, eax
cwde
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rsp + 0x40], xmm0
shr rcx, 0x10
movsx eax, cx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbp - 0x7d], xmm0
lea r8, [rsp + 0x40]
lea rdx, [rbp - 0x49]
mov rcx, rsi
call rbx
nop
lea rdx, [rbp - 0x49]
mov rcx, rsi
call fcn.1401f38b0
xor eax, eax
jmp 0x1401f597b
movzx eax, r14w
mov dword [rbp - 0x71], eax
mov rdx, qword [rbp + 0x7f]
movsx eax, dx
imul ecx, eax, 0x64
mov dword [rsp + 0x40], ecx
shr rdx, 0x10
movsx eax, dx
imul ecx, eax, 0x64
mov dword [rbp - 0x7d], ecx
xor r9d, r9d
mov r8b, 1
lea rdx, [rsp + 0x40]
mov rcx, rsi
call fcn.1401f4090
xor eax, eax
jmp 0x1401f597b
mov rcx, qword [rbp + 0x7f]
movsx eax, cx
movd xmm6, eax
cvtdq2ps xmm6, xmm6
shr rcx, 0x10
movsx eax, cx
movd xmm7, eax
cvtdq2ps xmm7, xmm7
cmp qword [0x140370108], 0
je 0x1401f5dc7
call qword [sym.imp.USER32.dll_GetMessageExtraInfo]
mov ecx, 0xffffff00
and rax, rcx
mov ecx, 0xff515700
cmp rax, rcx
je case.0x1401f5122.136
mov rbx, qword [rsi + 0x58]
call qword [sym.imp.USER32.dll_GetCapture]
cmp rax, rbx
je 0x1401f5ddf
mov rcx, rbx
call qword [sym.imp.USER32.dll_SetCapture]
movss dword [rsp + 0x40], xmm6
movss dword [rbp - 0x7d], xmm7
lea rdx, [rsp + 0x40]
mov rcx, rsi
call fcn.1401f39b0
mov rcx, rsi
call fcn.1401ed490
test al, al
je case.0x1401f5122.136
mov rcx, r14
shl rcx, 4
and ecx, 0x10
movzx eax, r14b
mov edx, ecx
or edx, 0x20
and al, 2
cmove edx, ecx
mov ecx, edx
or ecx, 0x40
and r14b, 0x10
cmove ecx, edx
mov eax, dword [0x14036fcb8]
and eax, 0xffffff8f
or ecx, eax
mov dword [0x14036fcb8], ecx
call fcn.1401f1e50
mov byte [rsi + 0x81], 1
movss dword [rsp + 0x40], xmm6
movss dword [rbp - 0x7d], xmm7
lea rdx, [rsp + 0x40]
mov rcx, rsi
call fcn.1401f38b0
xor eax, eax
jmp 0x1401f597b
movzx eax, r14w
mov dword [rbp - 0x71], eax
mov rdx, qword [rbp + 0x7f]
movsx eax, dx
imul ecx, eax, 0x64
mov dword [rsp + 0x40], ecx
shr rdx, 0x10
movsx eax, dx
imul ecx, eax, 0x64
mov r9b, 1
jmp 0x1401f5cd6
mov rcx, qword [rbp + 0x7f]
movsx eax, cx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rsp + 0x40], xmm0
shr rcx, 0x10
movsx eax, cx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbp - 0x7d], xmm0
mov r8, r14
lea rdx, [rsp + 0x40]
mov rcx, rsi
call fcn.1401f3bf0
xor eax, eax
jmp 0x1401f597b
mov r8b, 1
mov rdx, r14
mov rcx, rsi
call fcn.1401f3dd0
xor eax, eax
jmp 0x1401f597b
xor r8d, r8d
mov rdx, r14
mov rcx, rsi
call fcn.1401f3dd0
xor eax, eax
jmp 0x1401f597b
cmp byte [rsi + 0x84], 0
je 0x1401f5f15
mov rcx, qword [rsi + 0x28]
test rcx, rcx
je 0x1401f5f0e
mov rax, qword [rcx]
call qword [rax + 0x18]
mov byte [rsi + 0x84], 0
cmp byte [rsi + 0x81], 0
je case.0x1401f5122.136
mov rax, qword [rsi]
mov rbx, qword [rax + 0x58]
call qword [sym.imp.USER32.dll_GetMessagePos]
mov ecx, eax
cwde
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rsp + 0x40], xmm0
shr rcx, 0x10
movsx eax, cx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbp - 0x7d], xmm0
lea r8, [rsp + 0x40]
lea rdx, [rbp - 0x49]
mov rcx, rsi
call rbx
nop
cmp qword [0x140370108], 0
je 0x1401f5f87
call qword [sym.imp.USER32.dll_GetMessageExtraInfo]
mov ecx, 0xffffff00
and rax, rcx
mov ecx, 0xff515700
cmp rax, rcx
je case.0x1401f5122.136
and dword [0x14036fcb8], 0xffffff8f
call fcn.1401f1e50
movzx ebx, byte [rsi + 0x81]
mov byte [rsi + 0x81], 0
call qword [sym.imp.USER32.dll_GetCapture]
cmp qword [rsi + 0x58], rax
jne 0x1401f5fb3
call qword [sym.imp.USER32.dll_ReleaseCapture]
test bl, bl
je case.0x1401f5122.136
movss xmm0, dword [rbp - 0x49]
movss dword [rbp - 0x39], xmm0
movss xmm1, dword [rbp - 0x45]
movss dword [rbp - 0x35], xmm1
lea rdx, [rbp - 0x39]
mov rcx, rsi
call fcn.1401f38b0
xor eax, eax
jmp 0x1401f597b
cmp qword [0x140370118], 0
je case.0x1401f5cb2.515
mov r8, qword [rbp + 0x7f]
mov edx, r14d
mov rcx, rsi
call fcn.1401f3f60
jmp 0x1401f597b
mov r8, r14
mov rdx, qword [rbp + 0x7f]
mov rcx, rsi
call fcn.1401f49c0
jmp 0x1401f597b
mov rcx, qword [0x14036ed98]
test rcx, rcx
je case.0x1401f5cb2.515
cmp r14, 2
je 0x1401f6048
cmp r14, 4
je 0x1401f6053
lea rax, [r9 - 6]
cmp rax, 1
jbe 0x1401f6048
cmp r14, 0x12
jne case.0x1401f5cb2.515
mov rax, qword [rcx]
call qword [rax + 0x48]
jmp case.0x1401f5cb2.515
mov rax, qword [rcx]
call qword [rax + 0x40]
jmp case.0x1401f5cb2.515
cmp byte [rsi + 0xf8], 0
je 0x1401f60a5
cmp r14, 1
je 0x1401f60a5
mov byte [rsi + 0xf8], 0
mov rcx, r12
call qword [sym.imp.IMM32.dll_ImmGetContext]
mov rbx, rax
test rax, rax
je 0x1401f60a5
xor r9d, r9d
lea edx, [r9 + 0x15]
lea r8d, [r9 + 1]
mov rcx, rax
call qword [sym.imp.IMM32.dll_ImmNotifyIME]
mov rdx, rbx
mov rcx, r12
call qword [sym.imp.IMM32.dll_ImmReleaseContext]
and qword [rbp + 0x7f], 0x7fffffff
jmp case.0x1401f5cb2.515
mov rcx, qword [rbp + 0x7f]
shr rcx, 0x10
and ecx, 0xfff
sub ecx, 0xb
je 0x1401f60ed
sub ecx, 1
je 0x1401f60e6
sub ecx, 1
je 0x1401f60df
cmp ecx, 1
jne case.0x1401f5cb2.515
mov ebx, 0x30000
jmp 0x1401f60f2
mov ebx, 0x30001
jmp 0x1401f60f2
mov ebx, 0x30003
jmp 0x1401f60f2
mov ebx, 0x30002
call fcn.1401f1e50
call qword [sym.imp.USER32.dll_GetActiveWindow]
cmp qword [rsi + 0x58], rax
jne case.0x1401f5cb2.515
mov eax, dword [0x14036fcb8]
mov dword [0x14036fc74], eax
and eax, 0xffffff8f
mov dword [rsp + 0x40], ebx
xor edi, edi
mov dword [rbp - 0x7d], edi
mov dword [rbp - 0x79], eax
mov dword [rbp - 0x75], edi
lea rdx, [rsp + 0x40]
mov rcx, rsi
call fcn.1401edad0
mov eax, 1
jmp 0x1401f597b