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

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x78]
sub rsp, 0x140
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
mov rax, qword [0x180110318]
xor rax, rsp
mov qword [rbp + 0x10], rax
mov qword [rsp + 0x68], r9
mov r15d, r8d
mov dword [rbp - 0x7c], r8d
mov r8, rdx
mov qword [rsp + 0x70], rdx
mov rdi, rcx
movdqa xmm0, xmmword [0x18010b3a0]
movdqa xmmword [rbp - 0x30], xmm0
mov byte [rbp - 0x40], 0
movdqa xmm1, xmm0
movdqa xmmword [rbp - 0x10], xmm0
mov byte [rbp - 0x20], 0
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x60], xmm0
xor r13d, r13d
mov qword [rbp - 0x50], r13
mov eax, r15d
mov dword [rbp - 0x78], eax
lea r12d, [r15 + 0x18]
mov dword [rsp + 0x40], r12d
lea rcx, [0x180000000]
mov r10, qword [rbp]
mov r14, qword [rbp]
mov r11, qword [rbp]
mov qword [rsp + 0x58], r10
mov qword [rsp + 0x60], r11
cmp r15d, r12d
jae 0x18007f2fd
lea rbx, [0x180013ae0]
movss xmm6, dword [0x18010b39c]
mov rcx, qword [rbp]
mov qword [rsp + 0x48], rcx
mov r13d, dword [rbp - 0x7c]
mov r15d, dword [rbp - 0x7c]
mov r12, qword [rbp]
movzx esi, byte [rsp + 0x78]
mov ecx, dword [rsp + 0x40]
lea rdx, [0x180012b30]
add eax, 0xffffffe9
cmp eax, 0x79
ja case.default.0x18007ebcc
lea rcx, [0x180000000]
movzx eax, byte [rcx + rax + 0x7f708]
mov ecx, dword [rcx + rax*4 + 0x7f6a4]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
movzx eax, word [r9]
mov word [rsp + 0x78], ax
mov r9, r8
lea r8, [rbp - 0x60]
lea rdx, [rsp + 0x78]
mov ecx, 0x89
call fcn.180011960
mov r10, qword [rsp + 0x58]
mov r8, qword [rsp + 0x70]
mov r9, qword [rsp + 0x68]
mov r11, qword [rsp + 0x60]
jmp case.0x18007ebcc.26
movss xmm0, dword [r9 + 0xc]
movss dword [rsp + 0x78], xmm0
mov rax, qword [rdi]
mov qword [rbp], rax
lea r8, [rbp]
mov edx, 0xfb
lea rcx, [rsp + 0x78]
call fcn.180060140
mov rcx, qword [rsp + 0x58]
mov qword [rbp], rcx
mov qword [rsp + 0x20], 0
xor r9d, r9d
mov r8d, 0x99
mov rdx, rax
lea rcx, [rbp]
call fcn.18001cad0
add dword [rbp - 0x80], eax
jmp 0x18007ebed
movss xmm0, dword [r9]
comiss xmm0, dword [0x18010b384]
jbe 0x18007ec76
mov dword [r9], 0x7f7fc99e
lea r14, [rbp + 0xb]
jmp case.0x18007ebcc.26
comiss xmm6, xmm0
jbe 0x18007ec82
mov dword [r9], 0xff7fc99e
lea r14, [rbp + 0xb]
jmp case.0x18007ebcc.26
cmp dword [rbp - 0x80], 0
je case.0x18007ebcc.26
mov ebx, 0x123
nop word [rax + rax]
mov eax, ebx
sub eax, 0x123
je 0x18007ed22
cmp eax, 0x59
jne 0x18007ed48
mov rbx, qword [rsp + 0x50]
mov rdi, qword [rbp - 0x60]
test rdi, rdi
je 0x18007f665
mov rsi, qword [rbp - 0x58]
cmp rdi, rsi
je 0x18007ece7
nop dword [rax]
xor edx, edx
mov rcx, rdi
call fcn.1800036c0
add rdi, 0x20
cmp rdi, rsi
jne 0x18007ecd0
mov rdi, qword [rbp - 0x60]
mov rdx, qword [rbp - 0x50]
sub rdx, rdi
and rdx, 0xffffffffffffffe0
mov rax, rdi
cmp rdx, 0x1000
jb 0x18007f64d
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18007f64d
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
mov qword [rbp], r10
xor r9d, r9d
mov r8d, 0x8d
lea rdx, [rbp]
xor ecx, ecx
call fcn.18003eb90
mov qword [rsp + 0x50], 0
mov r10, qword [rsp + 0x58]
add ebx, 0x59
cmp ebx, 0x1d5
jb 0x18007eca0
mov r9, qword [rsp + 0x68]
mov r8, qword [rsp + 0x70]
mov r11, qword [rsp + 0x60]
lea rbx, [0x180013ae0]
jmp case.0x18007ebcc.26
lea rdx, [r11 + 0x4011c]
lea rcx, [r11 + 0x4019b]
mov r9d, 0x153
lea r8, str.Adobe
call fcn.18004d390
jmp 0x18007ebed
test r10, r10
je 0x18007f2b3
movss xmm0, dword [r9]
jmp 0x18007ec0c
mov qword [r11 + 0x40220], rdx
mov qword [r11 + 0x40228], rbx
jmp case.0x18007ebcc.26
mov rax, qword [rdi]
mov qword [rbp], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x31]
lea rcx, [rbp]
call fcn.180022fa0
test eax, eax
jne 0x18007ebed
mov ecx, 0xde
mov eax, ecx
sub eax, 0xde
je 0x18007edf8
cmp eax, 0x61
je case.0x18007ebcc.25
jmp 0x18007ee00
mov dword [rsp + 0x50], 0
add ecx, 0x61
cmp ecx, 0x1a0
jb 0x18007ede4
jmp 0x18007ebed
mov rax, qword [rdi]
mov r11, qword [rax + 0xd0]
mov qword [rsp + 0x60], r11
jmp case.0x18007ebcc.26
xor ecx, ecx
mov dword [rbp - 0x80], ecx
mov rax, qword [rdi]
mov qword [rbp], rax
mov qword [rsp + 0x20], rcx
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp]
mov ecx, 0xeb
call fcn.18000ee60
mov r10, rax
mov qword [rsp + 0x58], rax
mov r8, qword [rsp + 0x70]
mov r9, qword [rsp + 0x68]
mov r11, qword [rsp + 0x60]
jmp case.0x18007ebcc.26
lea r9, [rbp - 0x60]
xor edx, edx
lea r8d, [rdx + 0x3a]
lea rcx, [rbp - 0x20]
call fcn.180079110
test al, al
jne 0x18007ebed
mov byte [rsp + 0x50], 0
jmp case.0x18007ebcc.25
movss xmm0, dword [r9 + 4]
movss dword [rsp + 0x78], xmm0
mov rax, qword [rdi]
mov qword [rbp], rax
lea r8, [rbp]
mov edx, 0xfb
lea rcx, [rsp + 0x78]
call fcn.180060140
mov rcx, qword [rsp + 0x58]
mov qword [rbp], rcx
mov qword [rsp + 0x20], 0
xor r9d, r9d
mov r8d, 0x99
mov rdx, rax
lea rcx, [rbp]
call fcn.18001cad0
mov ebx, eax
mov rax, qword [rsp + 0x68]
movss xmm0, dword [rax + 8]
movss dword [rsp + 0x78], xmm0
mov rax, qword [rdi]
mov qword [rbp], rax
lea r8, [rbp]
mov edx, 0xfb
lea rcx, [rsp + 0x78]
call fcn.180060140
mov rcx, qword [rsp + 0x58]
mov qword [rbp], rcx
mov qword [rsp + 0x20], 0
xor r9d, r9d
mov r8d, 0x99
mov rdx, rax
lea rcx, [rbp]
call fcn.18001cad0
lea ecx, [rax + rbx]
add dword [rbp - 0x80], ecx
mov r9, qword [rsp + 0x68]
mov r8, qword [rsp + 0x70]
mov r10, qword [rsp + 0x58]
mov r11, qword [rsp + 0x60]
lea rbx, [0x180013ae0]
jmp case.0x18007ebcc.26
mov rax, qword [rdi]
mov qword [rbp], rax
lea r8, [rbp]
mov edx, 0xc9
lea rcx, [0x1800bf4a0]
call fcn.180076df0
test eax, eax
je 0x18007ebed
mov edx, 0x111
nop dword [rax]
mov ecx, edx
sub ecx, 0x111
je 0x18007ef95
cmp ecx, 1
je case.0x18007ebcc.25
jmp 0x18007ef99
mov dword [rsp + 0x50], eax
inc edx
cmp edx, 0x113
jb 0x18007ef80
jmp 0x18007ebed
mov rdx, rdi
mov qword [rsp + 0x48], rdx
mov ecx, dword [rsp + 0x40]
jmp 0x18007f17b
mov eax, dword [0x180092734]
mov dword [rbp - 0x70], eax
movzx eax, word [0x180092738]
mov word [rbp - 0x6c], ax
mov rax, qword [rdi]
mov qword [rbp], rax
mov r9d, 0xf7
xor r8d, r8d
lea rdx, [rbp - 0x70]
lea rcx, [rbp]
call fcn.180079d90
test eax, eax
je 0x18007ebed
mov edx, 0x116
nop word [rax + rax]
mov eax, edx
sub eax, 0x115
je case.0x18007ebcc.25
cmp eax, 1
jne 0x18007f022
mov rax, qword [rdi]
mov rcx, qword [rax + 0x90]
mov eax, dword [rcx]
mov dword [rsp + 0x50], eax
dec edx
cmp edx, 0x114
ja 0x18007f000
jmp 0x18007ebed
mov rax, qword [rdi]
mov qword [rbp], rax
xor r9d, r9d
lea r8, [rbp]
lea edx, [r9 + 0x72]
lea rcx, [0x18009a4b0]
call fcn.18002a760
jmp 0x18007ebed
mov eax, 0xf9
nop dword [rax]
cmp eax, 0xf9
je 0x18007f2ba
add eax, 0xc6
cmp eax, 0x1bf
jb 0x18007f060
mov rax, qword [rdi]
mov qword [rbp], rax
xor r9d, r9d
lea r8, [rbp]
mov edx, 0xce
xor ecx, ecx
call fcn.18002d060
test eax, eax
jne 0x18007f2e2
jmp 0x18007ebed
mov rax, qword [rdi]
mov qword [rbp], rax
mov r9d, 0x55
lea r8, [rbp]
xor edx, edx
xor ecx, ecx
call fcn.1800775f0
test eax, eax
je 0x18007ebed
mov edx, 0x104
mov ecx, edx
sub ecx, 0x104
je 0x18007f0da
cmp ecx, 1
je case.0x18007ebcc.25
jmp 0x18007f0de
mov dword [rsp + 0x50], eax
inc edx
cmp edx, 0x106
jb 0x18007f0c5
jmp 0x18007ebed
test rdi, rdi
je 0x18007f0f9
test r9, r9
jne 0x18007f130
jmp 0x18007f102
test r9, r9
jne 0x18007f2f0
mov ecx, 0x98
nop word [rax + rax]
mov eax, ecx
sub eax, 0x97
je case.0x18007ebcc.25
cmp eax, 1
jne 0x18007f126
mov dword [rsp + 0x50], eax
dec ecx
cmp ecx, 0x96
ja 0x18007f110
movzx eax, byte [r9]
cmp byte [rdi], al
jne case.0x18007ebcc.26
nop dword [rax + rax]
mov ecx, 0xb7
mov eax, ecx
sub eax, 0xb7
je 0x18007f1a3
cmp eax, 1
jne 0x18007f1ae
cmp byte [rdi], 0
je case.0x18007ebcc.24
cmp byte [r9], 0
jne 0x18007f1ae
mov dword [rbp - 0x78], 0x18
movzx eax, byte [r9]
movzx ecx, byte [rdi]
sub ecx, eax
mov dword [rsp + 0x50], ecx
mov ecx, dword [rsp + 0x40]
mov rdx, qword [rsp + 0x48]
mov eax, dword [rbp - 0x78]
inc eax
mov dword [rbp - 0x78], eax
cmp eax, ecx
jb 0x18007eb99
mov r15d, dword [rbp - 0x7c]
mov r12d, dword [rsp + 0x40]
xor r13d, r13d
lea rcx, [0x180000000]
jmp 0x18007f306
inc rdi
inc r9
mov qword [rsp + 0x68], r9
inc ecx
cmp ecx, 0xb9
jb 0x18007f145
movzx eax, byte [r9]
cmp byte [rdi], al
je 0x18007f140
jmp case.0x18007ebcc.26
xor eax, eax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0xc5
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8, [rbp - 0x40]
xor edx, edx
mov rcx, rdi
call fcn.180041a10
test al, al
jne 0x18007ebed
mov ebx, 5
nop dword [rax]
cmp ebx, 5
ja case.default.0x18007f218
mov eax, ebx
lea rdx, [0x180000000]
mov ecx, dword [rdx + rax*4 + 0x7f784]
add rcx, rdx
jmp rcx
mov r9d, r13d
xor r8d, r8d
mov edx, r15d
mov rcx, r12
call sub.IMM32.dll_ImmGetCompositionStringW
mov dword [rbp - 0x74], eax
jmp case.default.0x18007f218
xor edx, edx
mov ecx, edx
movzx eax, sil
cmp dword [rbp - 0x74], edx
cmovne ecx, eax
movzx esi, cl
test cl, cl
je case.default.0x18007f218
mov dword [rsp + 0x28], edx
mov qword [rsp + 0x20], rdx
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x12]
mov rcx, r12
call sub.IMM32.dll_ImmSetCompositionStringW
mov r15d, 0x12
jmp case.default.0x18007f218
xor r12d, r12d
mov r15d, 0x80
jmp case.default.0x18007f218
xor r13d, r13d
jmp case.default.0x18007f218
mov sil, 1
dec ebx
lea eax, [rbx + 0x5f]
cmp eax, 0x5e
ja 0x18007f200
jmp 0x18007ef30
mov rax, qword [rdi]
mov qword [rbp], rax
lea r8, [rbp]
mov edx, 0xc9
lea rcx, [0x1800b9530]
call fcn.180076df0
test eax, eax
jne 0x18007f2e2
jmp 0x18007ebed
xor ebx, ebx
jmp 0x18007ecb7
mov rax, qword [rdi]
mov rcx, qword [rax + 0x10]
mov qword [rbp], rcx
mov qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
mov edx, 0x104
lea rcx, [rbp]
call fcn.1800554f0
mov dword [rsp + 0x50], eax
jmp case.0x18007ebcc.25
mov dword [rsp + 0x50], 0xffffffff
jmp case.0x18007ebcc.25
mov rdx, qword [rbp]
mov qword [rsp + 0x48], rdx
cmp r15d, r12d
jae case.0x18007ebcc.25
xorps xmm7, xmm7
movsd xmm6, qword [0x18010b2d0]
mov esi, dword [rbp - 0x7c]
mov ebx, dword [rbp - 0x7c]
lea eax, [r15 - 0x2f]
cmp eax, 0x54
ja case.0x18007f346.70
movzx eax, byte [rcx + rax + 0x7f7fc]
mov ecx, dword [rcx + rax*4 + 0x7f79c]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
inc r14
jmp case.0x18007f346.70
mov byte [r14], 0x30
jmp case.0x18007f346.70
mov ecx, 0x53
nop
mov eax, ecx
sub eax, 0x53
je 0x18007f372
cmp eax, 1
je case.0x18007ebcc.25
jmp 0x18007f37f
cmp byte [rdi], 0
je 0x18007f37a
inc rdi
mov qword [rsp + 0x50], rdi
inc ecx
cmp ecx, 0x55
jb 0x18007f360
mov dword [r11 + 0x40238], 0xa
jmp case.0x18007f346.70
lea rdx, [r11 + 0x4019c]
lea rcx, [r11 + 0x4021b]
mov r9d, 0x153
lea r8, [0x180108500]
call fcn.18004d390
mov rdx, qword [rsp + 0x48]
mov r10, qword [rsp + 0x58]
mov r11, qword [rsp + 0x60]
jmp case.0x18007f346.70
mov r9d, 5
mov r8d, 0x89
mov eax, r8d
sub eax, 0x89
je 0x18007f3ea
cmp eax, 1
jne 0x18007f412
dec r14
jmp 0x18007f412
mov eax, 0x66666667
imul esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub sil, cl
add sil, 0x30
mov byte [r14], sil
mov esi, edx
inc r8d
cmp r8d, 0x8b
jb 0x18007f3d6
sub r9, 1
jne 0x18007f3d0
mov rdx, qword [rsp + 0x48]
jmp case.0x18007f346.70
mov byte [r14], 0
dec r14
comiss xmm7, dword [r9]
jbe case.0x18007f346.70
mov byte [rdi], 0x2d
movss xmm0, dword [r9]
xorps xmm0, xmmword [0x18010b3e0]
movss dword [r9], xmm0
inc rdi
jmp case.0x18007f346.70
mov dword [r11 + 0x40230], 0xffffffff
mov dword [r11 + 0x40234], 1
jmp case.0x18007f346.70
cmp rdi, rdx
jbe case.0x18007f346.70
nop
mov ecx, 0xd4
mov eax, ecx
sub eax, 0xd3
je 0x18007f4d1
cmp eax, 1
jne 0x18007f4d4
cmp byte [rdi], 0x30
jne 0x18007f49d
mov byte [rdi], 0
jmp 0x18007f4d4
mov eax, 0xcb
cmp eax, 0xcb
je 0x18007f4bb
cmp eax, 0x189
jne 0x18007f4c3
mov r15d, 0x82
jmp case.0x18007f346.70
cmp byte [rdi], 0x2e
jne 0x18007f4c3
mov byte [rdi], 0
add eax, 0xbe
cmp eax, 0x247
jb 0x18007f4a2
jmp 0x18007f4d4
dec rdi
dec ecx
cmp ecx, 0xd2
ja 0x18007f485
cmp rdi, rdx
ja 0x18007f480
jmp case.0x18007f346.70
dec rdi
jmp case.0x18007f346.70
mov byte [r14], 0x2e
dec r14
jmp case.0x18007f346.70
mov byte [rsp + 0x50], 1
jmp case.0x18007f346.70
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
movss xmm1, dword [r9]
subss xmm1, xmm0
cvtps2pd xmm2, xmm1
addsd xmm2, xmm6
cvtpd2ps xmm0, xmm2
mulss xmm0, dword [0x18010b380]
cvttss2si esi, xmm0
jmp case.0x18007f346.70
movss xmm0, dword [r9]
cvtps2pd xmm0, xmm0
addsd xmm0, xmm6
cvttsd2si ebx, xmm0
jmp case.0x18007f346.70
lea rax, [r14 - 1]
test ebx, ebx
cmovne rax, r14
mov r14, rax
jle case.0x18007f346.70
nop word [rax + rax]
mov r8d, 0x69
mov eax, r8d
sub eax, 0x68
je 0x18007f59b
cmp eax, 1
jne 0x18007f59e
mov eax, 0x66666667
imul ebx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub bl, cl
add bl, 0x30
mov byte [r14], bl
mov ebx, edx
jmp 0x18007f59e
dec r14
dec r8d
cmp r8d, 0x67
ja 0x18007f566
test ebx, ebx
jg 0x18007f560
mov rdx, qword [rsp + 0x48]
jmp case.0x18007f346.70
mov dword [r11 + 0x4023c], 0x6322
mov dword [r11 + 0x40118], 1
jmp case.0x18007f346.70
mov ecx, 0x4d
nop
mov eax, ecx
sub eax, 0x4d
je 0x18007f5e2
cmp eax, 1
je case.0x18007ebcc.25
jmp 0x18007f5e7
mov dword [rsp + 0x50], r13d
inc ecx
cmp ecx, 0x4f
jb 0x18007f5d0
mov rax, qword [rdi]
mov dword [rax + 0x98], 1
jmp case.0x18007f346.70
mov dword [r11 + 0x4021c], 2
jmp case.0x18007f346.70
mov qword [rsp + 0x50], r10
jmp case.0x18007f346.70
cmp rdi, r8
ja case.0x18007f346.70
movzx eax, byte [r14]
test al, al
je case.0x18007f346.70
mov byte [rdi], al
inc rdi
inc r14
cmp rdi, r8
jbe 0x18007f616
inc r15d
cmp r15d, r12d
jae case.0x18007ebcc.25
mov r9, qword [rsp + 0x68]
mov r8, qword [rsp + 0x70]
lea rcx, [0x180000000]
jmp 0x18007f320
mov rcx, rdi
call fcn.18008fd64
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x60], xmm0
mov qword [rbp - 0x50], 0
lea rcx, [rbp - 0x40]
call fcn.180002dd0
mov rax, rbx
mov rcx, qword [rbp + 0x10]
xor rcx, rsp
call fcn.180090270
lea r11, [rsp + 0x140]
mov rbx, qword [r11 + 0x50]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret