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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov rbx, r8
mov rdi, rdx
mov rcx, qword [rsp + 0xc0]
mov rax, qword [0x1401ec028]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov rax, qword [rcx]
mov qword [rcx + 8], rax
mov rax, qword [r9 + 8]
test rax, rax
je 0x1400722a3
mov r15, qword [rax + 8]
jmp 0x1400722a6
xor r15d, r15d
mov r13d, r15d
mov r12d, r15d
test bl, 0x10
je 0x14007235f
mov rcx, rdi
mov edx, 0x10
xor r8d, r8d
xor r9d, r9d
call sub.IMM32.dll_ImmGetCompositionStringW
mov r13d, r15d
mov r12d, r15d
test eax, eax
je 0x14007235f
mov rsi, r15
mov r15d, eax
mov rcx, r15
call fcn.14013a754
mov r14, rax
xor eax, eax
mov rcx, r14
add rcx, rax
je 0x140072648
mov byte [rcx], 0
inc rax
cmp r15, rax
jne 0x1400722e9
mov rcx, rdi
mov edx, 0x10
mov r8, r14
mov r9d, r15d
call sub.IMM32.dll_ImmGetCompositionStringW
xor r13d, r13d
mov al, byte [r14 + r13]
and al, 0xfd
cmp al, 1
je 0x14007232d
inc r13
cmp r15d, r13d
jne 0x140072316
mov r13d, r15d
jmp 0x140072347
cmp r13d, r15d
jae 0x14007234c
mov r12, r13
mov al, byte [r14 + r12]
and al, 0xfd
cmp al, 1
jne 0x14007234f
inc r12
cmp r15d, r12d
jne 0x140072335
mov r12d, r15d
jmp 0x14007234f
mov r12d, r13d
test r14, r14
mov r15, rsi
je 0x14007235f
mov rcx, r14
call fcn.14013a790
mov rsi, qword [rsp + 0xc8]
mov ecx, ebx
and ecx, 0x4080
xor eax, eax
cmp ecx, 0x80
jne 0x14007238c
mov rcx, rdi
mov edx, 0x80
xor r8d, r8d
xor r9d, r9d
call sub.IMM32.dll_ImmGetCompositionStringW
mov dword [rsi], eax
test bl, 0x20
je 0x1400724e7
mov rcx, rdi
mov edx, 0x20
xor r8d, r8d
xor r9d, r9d
call sub.IMM32.dll_ImmGetCompositionStringW
cmp eax, 4
jb 0x1400724e7
mov ebp, eax
test eax, eax
js 0x140072674
mov qword [rsp + 0x28], r15
mov esi, ebp
sar esi, 2
movsxd r14, esi
shl r14, 2
mov rcx, r14
call fcn.14013a754
mov rbx, rax
xor eax, eax
mov rcx, rbx
add rcx, rax
je 0x140072648
mov dword [rcx], 0
add rax, 4
cmp r14, rax
jne 0x1400723db
mov rcx, rdi
mov edx, 0x20
mov r8, rbx
mov r9d, ebp
call sub.IMM32.dll_ImmGetCompositionStringW
cmp ebp, 8
mov rcx, qword [rsp + 0xc0]
jl 0x1400724d5
mov r14d, esi
cmp esi, 2
mov r15d, 1
cmovae r15d, esi
dec r15d
cmp esi, 3
mov ebp, 2
cmovge ebp, esi
dec ebp
xor edi, edi
mov esi, 0xff000000
cmp r14, rdi
je 0x14007261c
cmp r15, rdi
je 0x14007261c
mov eax, dword [rbx + rdi*4]
mov r9d, dword [rbx + rdi*4 + 4]
cmp eax, r13d
setae dl
cmp r9d, r12d
setbe r8b
and r8b, dl
movzx edx, r8b
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x34], r9d
mov qword [rsp + 0x38], rsi
mov dword [rsp + 0x40], edx
mov dword [rsp + 0x44], 0
mov rax, qword [rcx + 8]
cmp rax, qword [rcx + 0x10]
jae 0x1400724b7
test rax, rax
je 0x140072648
mov rdx, qword [rsp + 0x40]
mov qword [rax + 0x10], rdx
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [rax], xmm0
add rax, 0x18
mov qword [rcx + 8], rax
jmp 0x1400724c9
lea rdx, [rsp + 0x30]
call fcn.140072a50
mov rcx, qword [rsp + 0xc0]
inc rdi
cmp rbp, rdi
jne 0x140072441
test rbx, rbx
mov r15, qword [rsp + 0x28]
je 0x1400724e7
mov rcx, rbx
call fcn.14013a790
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rcx + 8]
cmp rax, qword [rcx]
jne 0x1400725fd
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], 0
mov dword [rsp + 0x38], 0xff000000
test r13d, r13d
je 0x14007255b
mov dword [rsp + 0x34], r13d
cmp rax, qword [rcx + 0x10]
je 0x140072549
test rax, rax
je 0x140072648
mov rdx, qword [rsp + 0x40]
mov qword [rax + 0x10], rdx
movaps xmm0, xmmword [rsp + 0x30]
movups xmmword [rax], xmm0
add rax, 0x18
mov qword [rcx + 8], rax
jmp 0x14007255b
lea rdx, [rsp + 0x30]
call fcn.140072a50
mov rcx, qword [rsp + 0xc0]
cmp r12d, r13d
jbe 0x1400725b2
mov dword [rsp + 0x30], r13d
mov dword [rsp + 0x34], r12d
mov dword [rsp + 0x40], 1
mov rax, qword [rcx + 8]
cmp rax, qword [rcx + 0x10]
je 0x1400725a0
test rax, rax
je 0x140072648
mov rdx, qword [rsp + 0x40]
mov qword [rax + 0x10], rdx
movaps xmm0, xmmword [rsp + 0x30]
movups xmmword [rax], xmm0
add rax, 0x18
mov qword [rcx + 8], rax
jmp 0x1400725b2
lea rdx, [rsp + 0x30]
call fcn.140072a50
mov rcx, qword [rsp + 0xc0]
cmp r12d, r15d
jae 0x1400725fd
mov dword [rsp + 0x30], r12d
mov dword [rsp + 0x34], r15d
mov dword [rsp + 0x40], 0
mov rax, qword [rcx + 8]
cmp rax, qword [rcx + 0x10]
je 0x1400725f3
test rax, rax
je 0x140072648
mov rdx, qword [rsp + 0x40]
mov qword [rax + 0x10], rdx
movaps xmm0, xmmword [rsp + 0x30]
movups xmmword [rax], xmm0
add rax, 0x18
mov qword [rcx + 8], rax
jmp 0x1400725fd
lea rdx, [rsp + 0x30]
call fcn.140072a50
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.14013bb80
nop
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rax, str.vector___index_out_of_bounds
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude_vector
lea r9, str.__n___size__
mov r8d, 0x587
call fcn.140170320
lea rax, str.null_pointer_given_to_construct_at
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude__memoryconstruct_at.h
lea r9, str.__location___nullptr
mov r8d, 0x23
call fcn.140170320
call fcn.140153cb0
int3