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

Disassembly:
mov eax, 0x6bedcd
call fcn.00692bd4
push ecx
push ecx
push esi
mov esi, ecx
cmp byte [esi + 0x9b], 0
jne 0x42deae
cmp byte [esi + 0x9a], 0
je 0x42dcde
push 0x66c
call fcn.006918d6
pop ecx
mov dword [ebp - 0x14], eax
and dword [ebp - 4], 0
test eax, eax
je 0x42dcb0
mov ecx, eax
call fcn.004316c5
jmp 0x42dcb2
xor eax, eax
fld dword [0x6d05b4]
or dword [ebp - 4], 0xffffffff
push ecx
push ecx
fstp dword [esp + 4]
mov ecx, eax
fld dword [0x6d05b0]
fstp dword [esp]
push 0
push 0x9f4168
call fcn.004321e3
jmp 0x42deae
push ebx
push edi
push 0
push 0
push 8
push dword [esi + 4]
call sub.imm32.dll_ImmGetCompositionStringA
mov ecx, dword [esi + 0x88]
mov edi, dword [esi + 0x94]
mov edx, ecx
sub edx, edi
cmp eax, edx
mov dword [esi + 0x8c], eax
jbe 0x42dd23
mov ebx, edi
sub ebx, ecx
add ebx, eax
test bl, 1
je 0x42dd1d
cmp byte [esi + 0x99], 0
je 0x42dd1d
dec edx
mov dword [esi + 0x8c], edx
mov eax, dword [esi + 0x8c]
inc eax
push eax
call fcn.0069197a
pop ecx
mov ecx, dword [esi + 0x8c]
inc ecx
mov edx, ecx
mov ebx, eax
shr ecx, 2
xor eax, eax
mov edi, ebx
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
push dword [esi + 0x8c]
push ebx
push 8
push dword [esi + 4]
call sub.imm32.dll_ImmGetCompositionStringA
mov eax, dword [esi + 0x8c]
push 0xffffffffffffffff
mov byte [ebx + eax], 0
push 0
lea eax, [esi + 0x40]
lea edi, [esi + 8]
push eax
mov ecx, edi
call fcn.00403ece
push ebx
push dword [esi + 0x94]
mov ecx, edi
call fcn.004267bf
push ebx
lea ecx, [esi + 0x24]
call fcn.0040403d
push ebx
call fcn.00693d31
mov eax, dword [esi + 0x88]
xor ebx, ebx
cmp dword [esi + 0x1c], eax
pop ecx
jbe 0x42ddad
push ebx
push eax
mov ecx, edi
call fcn.0042eeef
cmp dword [esi + 0xa0], 2
je 0x42deac
push ebx
push ebx
push 0x80
push dword [esi + 4]
call sub.imm32.dll_ImmGetCompositionStringA
mov ecx, dword [esi + 0x8c]
cmp eax, ecx
jbe 0x42ddd5
mov eax, ecx
mov ecx, dword [esi + 0x94]
add eax, ecx
cmp eax, dword [esi + 0x88]
ja 0x42ddeb
mov dword [esi + 0x90], eax
push ebx
push ebx
push 0x10
push dword [esi + 4]
call sub.imm32.dll_ImmGetCompositionStringA
mov ebx, eax
lea eax, [ebx + 1]
push eax
call fcn.0069197a
pop ecx
mov edi, eax
mov ecx, ebx
mov edx, ecx
shr ecx, 2
mov dword [ebp - 0x14], edi
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [ebp - 0x14]
push ebx
push edi
push 0x10
push dword [esi + 4]
call sub.imm32.dll_ImmGetCompositionStringA
push ebx
push edi
lea ecx, [esi + 0x5c]
mov byte [edi + ebx], 0
call fcn.00403f5d
push edi
call fcn.00693d31
pop ecx
push 0
push 0
push 0x20
push dword [esi + 4]
call sub.imm32.dll_ImmGetCompositionStringA
mov ebx, eax
mov dword [ebp - 0x10], ebx
shr ebx, 2
mov eax, ebx
shl eax, 2
push eax
call fcn.0069197a
pop ecx
mov ecx, dword [ebp - 0x10]
mov edx, ecx
mov edi, eax
shr ecx, 2
mov dword [ebp - 0x14], edi
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [ebp - 0x14]
push edx
push edi
push 0x20
push dword [esi + 4]
call sub.imm32.dll_ImmGetCompositionStringA
add esi, 0x78
mov ecx, esi
call fcn.00432b77
test ebx, ebx
jbe 0x42dea3
push edi
mov ecx, esi
call fcn.0042f31c
add edi, 4
dec ebx
jne 0x42de95
push dword [ebp - 0x14]
call fcn.00693d31
pop ecx
pop edi
pop ebx
mov ecx, dword [ebp - 0xc]
pop esi
mov dword fs:[0], ecx
leave
ret 4