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

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x88
lea rbp, [rsp + 0x80]
mov qword [rbp], 0xfffffffffffffffe
mov rdi, rcx
mov r14, qword [rdx + 8]
lea rcx, [rbp - 0x48]
mov rdx, r14
mov r8d, 8
call fcn.140290170
mov rax, qword [rbp - 0x48]
movabs rsi, 0x8000000000000000
cmp rax, rsi
jne 0x14028fc7b
mov qword [rdi], 2
jmp 0x1402900a2
mov qword [rbp - 0x28], rax
mov rax, qword [rbp - 0x40]
mov qword [rbp - 8], rax
mov rbx, qword [rbp - 0x38]
lea rcx, [rbp - 0x48]
mov rdx, r14
mov r8d, 0x10
call fcn.1402902c0
mov qword [rbp - 0x58], r14
mov qword [rbp - 0x20], rdi
mov rdx, qword [rbp - 0x48]
xor r15d, r15d
cmp rdx, rsi
mov rax, qword [rbp - 0x38]
cmove rax, r15
mov ecx, 1
cmovne rcx, qword [rbp - 0x40]
cmove rdx, r15
mov qword [rbp - 0x18], rbx
mov r10, qword [rbp - 8]
lea r14, [r10 + rbx]
test rax, rax
je 0x14028fedd
mov qword [rbp - 0x50], rdx
xor r8d, r8d
xor ebx, ebx
mov qword [rbp - 0x10], rcx
mov rcx, qword [rbp - 0x10]
xor r15d, r15d
xor r9d, r9d
jmp 0x14028fd0f
add r9, rsi
inc r8
cmp rax, r8
je 0x14028fef2
cmp r10, r14
je 0x14028fef2
movzx edi, byte [rcx + r8]
movzx r12d, byte [r10]
movzx r11d, r12b
test r11b, r11b
js 0x14028fd50
inc r10
cmp dil, 1
jne 0x14028fde0
mov sil, 1
cmp rbx, 1
jne 0x14028fdf4
jmp 0x14028fe26
mov rdx, r15
mov esi, r11d
and esi, 0x1f
movzx r15d, byte [r10 + 1]
and r15d, 0x3f
cmp r11b, 0xdf
jbe 0x14028fdc5
mov rcx, r14
movzx r14d, byte [r10 + 2]
shl r15d, 6
and r14d, 0x3f
or r14d, r15d
cmp r12b, 0xf0
jb 0x14028feb7
movzx r11d, byte [r10 + 3]
and esi, 7
shl esi, 0x12
shl r14d, 6
and r11d, 0x3f
or r11d, r14d
or r11d, esi
cmp r11d, 0x110000
mov r15, rdx
je 0x14028feeb
add r10, 4
mov r14, rcx
mov rcx, qword [rbp - 0x10]
cmp dil, 1
je 0x14028fd37
jmp 0x14028fde0
add r10, 2
shl esi, 6
or esi, r15d
mov r11d, esi
mov r15, rdx
cmp dil, 1
je 0x14028fd37
nop
cmp dil, 3
sete sil
cmp rbx, 1
je 0x14028fe20
cmp dil, 3
jne 0x14028fe20
mov qword [rbp - 0x30], r9
mov ebx, 1
mov esi, 1
cmp r11d, 0x80
jb 0x14028fd00
jmp 0x14028fe90
cmp rbx, 1
jne 0x14028fe6d
mov ebx, 1
cmp r15, 1
jne 0x14028fe4b
mov r15d, 1
mov esi, 1
cmp r11d, 0x80
jb 0x14028fd00
jmp 0x14028fe90
test sil, sil
cmove r13, r9
xor sil, 1
movzx r15d, sil
mov esi, 1
cmp r11d, 0x80
jae 0x14028fe90
jmp 0x14028fd00
xor ebx, ebx
mov esi, 1
cmp r11d, 0x80
jb 0x14028fd00
nop word cs:[rax + rax]
mov esi, 2
cmp r11d, 0x800
jb 0x14028fd00
cmp r11d, 0x10000
mov esi, 4
sbb rsi, 0
jmp 0x14028fd00
add r10, 3
shl esi, 0xc
or r14d, esi
mov r11d, r14d
mov r14, rcx
mov r15, rdx
mov rcx, qword [rbp - 0x10]
cmp dil, 1
je 0x14028fd37
jmp 0x14028fde0
mov rbx, 0xffffffffffffffff
test rdx, rdx
jne 0x14028fefe
jmp 0x14028ff09
mov r14, rcx
mov rcx, qword [rbp - 0x10]
dec rbx
mov rdx, qword [rbp - 0x50]
test rdx, rdx
je 0x14028ff09
mov r8d, 1
call fcn.140120550
mov edx, 1
test rbx, rbx
jne 0x14028ff33
cmp r15, 1
je 0x14028ff33
mov rsi, qword [rbp - 0x18]
mov r13, rsi
mov r15d, 1
mov rdi, qword [rbp - 0x20]
mov r11, qword [rbp - 8]
jmp 0x14029007f
test rbx, rbx
je 0x140290073
mov rcx, qword [rbp - 0x58]
mov edx, 0x80
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.imm32.dll_ImmGetCompositionStringW]
mov rdi, qword [rbp - 0x20]
mov rsi, qword [rbp - 0x18]
mov r11, qword [rbp - 8]
test eax, eax
js 0x1402900b9
je 0x1402900c0
mov eax, eax
xor ebx, ebx
mov rcx, r11
mov r15d, 1
jmp 0x14028ff9d
inc rcx
mov r13d, 1
add r13, rbx
mov rbx, r13
mov edx, 1
dec rax
je 0x140290083
cmp rcx, r14
je 0x1402900d2
movzx r8d, byte [rcx]
test r8b, r8b
jns 0x14028ff80
movzx edx, r8b
and edx, 0x1f
movzx r10d, byte [rcx + 1]
and r10d, 0x3f
cmp r8b, 0xe0
jb 0x140290014
movzx r9d, byte [rcx + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp r8b, 0xf0
jb 0x140290030
movzx r8d, byte [rcx + 3]
and edx, 7
shl edx, 0x12
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
or r8d, edx
cmp r8d, 0x110000
je 0x1402900e2
add rcx, 4
cmp r8d, 0x80
jb 0x14028ff83
jmp 0x14029004a
add rcx, 2
shl edx, 6
or edx, r10d
mov r8d, edx
cmp r8d, 0x80
jb 0x14028ff83
jmp 0x14029004a
add rcx, 3
shl edx, 0xc
or r9d, edx
mov r8d, r9d
cmp r8d, 0x80
jb 0x14028ff83
mov r13d, 2
cmp r8d, 0x800
jb 0x14028ff89
cmp r8d, 0x10000
mov r13d, 4
sbb r13, 0
jmp 0x14028ff89
mov rdi, qword [rbp - 0x20]
mov r11, qword [rbp - 8]
mov rsi, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x30]
mov rax, qword [rbp - 0x28]
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], r11
mov qword [rdi + 0x20], rsi
mov qword [rdi], rdx
mov qword [rdi + 8], rbx
mov qword [rdi + 0x28], r15
mov qword [rdi + 0x30], r13
mov rax, rdi
add rsp, 0x88
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
xor r15d, r15d
xor edx, edx
jmp 0x140290083
xor r13d, r13d
mov r15d, 1
xor ebx, ebx
mov edx, 1
jmp 0x140290083
mov r13, rbx
mov r15d, 1
mov edx, 1
jmp 0x140290083
mov r15d, 1
mov r13, rbx
mov edx, 1
jmp 0x140290083