Function at 0x18001c910
Capabilities:
Log keystrokes via input method manager

Disassembly:
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov r10, rdx
mov rbx, rcx
mov r8, qword [rcx + 8]
sub r8, qword [rcx]
movabs r11, 0x6666666666666667
mov rax, r11
imul r8
mov r9, rdx
sar r9, 4
mov r8, r9
shr r8, 0x3f
add r9, r8
mov rcx, qword [r10 + 8]
sub rcx, qword [r10]
mov rax, r11
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp r9, rdx
je 0x18001c9ba
xor r9d, r9d
xor r8d, r8d
mov edx, 0x80
xor ecx, ecx
call sub.IMM32.dll_ImmGetCompositionStringW
test eax, eax
je 0x18001c9b3
xor esi, esi
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rsi
xor r9d, r9d
xor r8d, r8d
lea edx, [rsi + 0x12]
xor ecx, ecx
call sub.IMM32.dll_ImmSetCompositionStringW
xor al, al
jmp 0x18001ce54
xor esi, esi
mov qword [rbp - 0x40], rsi
mov qword [rbp - 0x38], rsi
lea ecx, [rsi + 0x40]
call fcn.180063980
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rax + 0x10], rax
mov word [rax + 0x18], 0x101
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x50], rsi
mov qword [rbp - 0x48], rsi
lea ecx, [rsi + 0x40]
call fcn.180063980
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rax + 0x10], rax
mov word [rax + 0x18], 0x101
mov qword [rbp - 0x50], rax
mov r13d, 0x92
mov dword [rbp + 0x50], r13d
mov r15, qword [rbp - 0x40]
nop dword [rax]
nop dword [rax + rax]
mov eax, r13d
sub eax, 0x90
je 0x18001cb4e
cmp eax, 2
jne 0x18001cb3c
mov rdi, qword [rbx]
mov r12, qword [rbx + 8]
cmp rdi, r12
je 0x18001cb3c
nop word [rax + rax]
mov rbx, qword [r15 + 8]
mov qword [rbp - 0x20], rbx
mov dword [rbp - 0x18], esi
mov r14, r15
cmp byte [rbx + 0x19], 0
jne 0x18001caa3
nop dword [rax]
nop dword [rax + rax]
mov qword [rbp - 0x20], rbx
lea rcx, [rbx + 0x20]
mov rdx, rdi
call fcn.180063460
shr eax, 0x1f
test al, al
je 0x18001ca90
mov dword [rbp - 0x18], esi
mov rbx, qword [rbx + 0x10]
jmp 0x18001ca9d
mov dword [rbp - 0x18], 1
mov r14, rbx
mov rbx, qword [rbx]
cmp byte [rbx + 0x19], 0
je 0x18001ca70
cmp byte [r14 + 0x19], 0
jne 0x18001cabd
lea rdx, [r14 + 0x20]
mov rcx, rdi
call fcn.180063460
shr eax, 0x1f
test al, al
je 0x18001cb2b
movabs rax, 0x3ffffffffffffff
cmp qword [rbp - 0x38], rax
je 0x18001ce6f
lea rax, [rbp - 0x40]
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], rsi
mov ecx, 0x40
call fcn.180063980
mov rbx, rax
mov qword [rbp - 0x28], rax
lea rcx, [rax + 0x20]
mov rdx, rdi
call fcn.18001bd10
mov qword [rbx], r15
mov qword [rbx + 8], r15
mov qword [rbx + 0x10], r15
mov word [rbx + 0x18], 0
mov qword [rbp - 0x28], rsi
movups xmm0, xmmword [rbp - 0x20]
movaps xmmword [rbp - 0x20], xmm0
mov r8, rbx
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x40]
call fcn.180061230
mov r15, qword [rbp - 0x40]
add rdi, 0x28
cmp rdi, r12
jne 0x18001ca50
mov rbx, qword [rbp + 0x40]
inc r13d
cmp r13d, 0x94
jb 0x18001ca20
jmp 0x18001cb86
xor edx, edx
mov ecx, 0x9d
call fcn.1800304b0
mov rdx, rbx
mov ecx, 0x65
test eax, eax
je 0x18001cb81
call fcn.180030690
mov qword [rbp + 0x40], rax
lea r8, [rbp + 0x40]
xor edx, edx
mov ecx, 0xe9
call fcn.180027780
jmp 0x18001cb86
call fcn.180030690
mov r15, qword [rbp - 0x50]
mov r14d, 0x92
mov eax, r14d
sub eax, 0x90
je 0x18001ccc1
cmp eax, 2
jne 0x18001ccac
mov r12, qword [rbp + 0x48]
mov rdi, qword [r12]
mov r12, qword [r12 + 8]
cmp rdi, r12
je 0x18001ccac
nop dword [rax]
mov rbx, qword [r15 + 8]
mov qword [rbp - 0x20], rbx
mov dword [rbp - 0x18], esi
mov r14, r15
cmp byte [rbx + 0x19], 0
jne 0x18001cc13
nop dword [rax]
nop dword [rax + rax]
mov qword [rbp - 0x20], rbx
lea rcx, [rbx + 0x20]
mov rdx, rdi
call fcn.180063460
shr eax, 0x1f
test al, al
je 0x18001cc00
mov dword [rbp - 0x18], esi
mov rbx, qword [rbx + 0x10]
jmp 0x18001cc0d
mov dword [rbp - 0x18], 1
mov r14, rbx
mov rbx, qword [rbx]
cmp byte [rbx + 0x19], 0
je 0x18001cbe0
cmp byte [r14 + 0x19], 0
jne 0x18001cc2d
lea rdx, [r14 + 0x20]
mov rcx, rdi
call fcn.180063460
shr eax, 0x1f
test al, al
je 0x18001cc9b
movabs rax, 0x3ffffffffffffff
cmp qword [rbp - 0x48], rax
je 0x18001ce6f
lea rax, [rbp - 0x50]
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], rsi
mov ecx, 0x40
call fcn.180063980
mov rbx, rax
mov qword [rbp - 0x28], rax
lea rcx, [rax + 0x20]
mov rdx, rdi
call fcn.18001bd10
mov qword [rbx], r15
mov qword [rbx + 8], r15
mov qword [rbx + 0x10], r15
mov word [rbx + 0x18], 0
mov qword [rbp - 0x28], rsi
movups xmm0, xmmword [rbp - 0x20]
movaps xmmword [rbp - 0x20], xmm0
mov r8, rbx
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x50]
call fcn.180061230
mov r15, qword [rbp - 0x50]
add rdi, 0x28
cmp rdi, r12
jne 0x18001cbc0
mov r14d, dword [rbp + 0x50]
inc r14d
mov dword [rbp + 0x50], r14d
cmp r14d, 0x94
jae 0x18001ccfe
jmp 0x18001cb90
xor edx, edx
mov ecx, 0x9d
call fcn.1800304b0
mov rdx, qword [rbp + 0x48]
mov ecx, 0x65
test eax, eax
je 0x18001ccf5
call fcn.180030690
mov qword [rbp + 0x48], rax
lea r8, [rbp + 0x48]
xor edx, edx
mov ecx, 0xe9
call fcn.180027780
jmp 0x18001ccfa
call fcn.180030690
mov r15, qword [rbp - 0x50]
mov rax, qword [rbp - 0x48]
cmp qword [rbp - 0x38], rax
jne 0x18001ce0c
mov rsi, qword [rbp - 0x40]
mov rbx, qword [rsi]
mov rdi, qword [r15]
cmp rbx, rsi
je 0x18001ce08
nop
lea rdx, [rdi + 0x20]
cmp qword [rdi + 0x38], 0x10
jb 0x18001cd2f
mov rdx, qword [rdi + 0x20]
lea rcx, [rbx + 0x20]
cmp qword [rbx + 0x38], 0x10
jb 0x18001cd3e
mov rcx, qword [rbx + 0x20]
mov r8, qword [rbx + 0x30]
cmp r8, qword [rdi + 0x30]
jne 0x18001ce0c
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x18001ce0c
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0x19], 0
je 0x18001cd88
mov rax, qword [rbx + 8]
cmp byte [rax + 0x19], 0
jne 0x18001cd83
nop dword [rax]
cmp rbx, qword [rax + 0x10]
jne 0x18001cd83
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], 0
je 0x18001cd70
mov rbx, rax
jmp 0x18001cdaf
mov rbx, rax
mov rcx, qword [rax]
cmp byte [rcx + 0x19], 0
jne 0x18001cdaf
nop dword [rax]
nop dword [rax + rax]
mov rbx, rcx
mov rax, qword [rcx]
mov rcx, rax
cmp byte [rax + 0x19], 0
je 0x18001cda0
mov rax, qword [rdi + 0x10]
cmp byte [rax + 0x19], 0
je 0x18001cddb
mov rax, qword [rdi + 8]
cmp byte [rax + 0x19], 0
jne 0x18001cdd6
cmp rdi, qword [rax + 0x10]
jne 0x18001cdd6
mov rdi, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], 0
je 0x18001cdc3
mov rdi, rax
jmp 0x18001cdff
mov rdi, rax
mov rcx, qword [rax]
cmp byte [rcx + 0x19], 0
jne 0x18001cdff
nop word [rax + rax]
mov rdi, rcx
mov rax, qword [rcx]
mov rcx, rax
cmp byte [rax + 0x19], 0
je 0x18001cdf0
cmp rbx, rsi
jne 0x18001cd20
mov bl, 1
jmp 0x18001ce0e
xor bl, bl
mov r8, qword [r15 + 8]
lea rdx, [rbp - 0x50]
lea rcx, [rbp - 0x50]
call fcn.18001b060
mov edx, 0x40
mov rcx, qword [rbp - 0x50]
call fcn.1800639bc
nop
mov r8, qword [rbp - 0x40]
mov r8, qword [r8 + 8]
lea rdx, [rbp - 0x40]
lea rcx, [rbp - 0x40]
call fcn.18001b060
mov edx, 0x40
mov rcx, qword [rbp - 0x40]
call fcn.1800639bc
movzx eax, bl
mov rbx, qword [rsp + 0xd8]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.180061560
nop
int3