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

Disassembly:
mov eax, dword [0x697b34]
push ebx
xor ebx, ebx
cmp eax, ebx
jne 0x413080
xor eax, eax
pop ebx
ret
mov ecx, dword [esp + 0x10]
test cl, 0x80
je 0x4130a6
push ebx
push ebx
push 0x80
push eax
call sub.IMM32.dll_ImmGetCompositionStringA
mov ecx, dword [esp + 0x10]
mov dword [0x697b4c], eax
mov eax, dword [0x697b34]
jmp 0x4130ac
mov dword [0x697b4c], ebx
test cl, 8
je 0x4130d9
push 0x200
push 0x696860
push 8
push eax
call sub.IMM32.dll_ImmGetCompositionStringA
mov ecx, dword [esp + 0x10]
mov dword [0x697b50], eax
mov byte [eax + 0x696860], bl
mov eax, dword [0x697b34]
jmp 0x4130e5
mov dword [0x697b50], ebx
mov byte [0x696860], bl
test cl, 0x10
je 0x41310c
push 0x200
push 0x697110
push 0x10
push eax
call sub.IMM32.dll_ImmGetCompositionStringA
mov ecx, dword [esp + 0x10]
mov dword [0x697b54], eax
mov eax, dword [0x697b34]
jmp 0x413118
mov dword [0x697b54], ebx
mov byte [0x697110], bl
test cl, 0x20
je 0x41313f
push 0x200
push 0x697718
push 0x20
push eax
call sub.IMM32.dll_ImmGetCompositionStringA
mov ecx, dword [esp + 0x10]
mov dword [0x697b58], eax
mov eax, dword [0x697b34]
jmp 0x413151
mov dword [0x697b58], ebx
mov dword [0x697718], ebx
mov dword [0x69771c], ebx
test cl, 1
je 0x41317e
push 0x200
push 0x697918
push 1
push eax
call sub.IMM32.dll_ImmGetCompositionStringA
mov ecx, dword [esp + 0x10]
mov dword [0x697b5c], eax
mov byte [eax + 0x697918], bl
mov eax, dword [0x697b34]
jmp 0x41318a
mov dword [0x697b5c], ebx
mov byte [0x697918], bl
test cl, 2
je 0x4131b1
push 0x200
push 0x696d10
push 2
push eax
call sub.IMM32.dll_ImmGetCompositionStringA
mov ecx, dword [esp + 0x10]
mov dword [0x697b60], eax
mov eax, dword [0x697b34]
jmp 0x4131bd
mov dword [0x697b60], ebx
mov byte [0x696d10], bl
test cl, 4
je 0x4131e4
push 0x200
push 0x695dd4
push 4
push eax
call sub.IMM32.dll_ImmGetCompositionStringA
mov ecx, dword [esp + 0x10]
mov dword [0x697b64], eax
mov eax, dword [0x697b34]
jmp 0x4131f6
mov dword [0x697b64], ebx
mov dword [0x695dd4], ebx
mov dword [0x695dd8], ebx
test ch, 8
je 0x413290
test ch, 0x10
je 0x413225
push 0x200
push 0x697310
push 0x1000
push eax
call sub.IMM32.dll_ImmGetCompositionStringA
mov dword [0x697b6c], eax
mov eax, dword [0x697b34]
jmp 0x413237
mov dword [0x697b6c], ebx
mov dword [0x697310], ebx
mov dword [0x697314], ebx
push esi
push 0x200
push 0x695fd8
push 0x800
push eax
call sub.IMM32.dll_ImmGetCompositionStringA
cmp eax, ebx
mov dword [0x697b68], eax
mov byte [eax + 0x695fd8], bl
je 0x41327d
xor esi, esi
cmp eax, ebx
jbe 0x41327d
movsx eax, byte [esi + 0x695fd8]
push ebx
push eax
call fcn.00412a60
mov eax, dword [0x697b68]
add esp, 8
inc esi
cmp esi, eax
jb 0x413262
mov eax, dword [0x697b34]
mov ecx, dword [esp + 0x14]
mov byte [0x697b3d], 1
pop esi
jmp 0x4132ae
mov dword [0x697b68], ebx
mov byte [0x695fd8], bl
mov dword [0x697b6c], ebx
mov dword [0x697310], ebx
mov dword [0x697314], ebx
test ch, 2
je 0x413312
test ch, 4
je 0x4132d9
push 0x200
push 0x697510
push 0x400
push eax
call sub.IMM32.dll_ImmGetCompositionStringA
mov dword [0x697b74], eax
mov eax, dword [0x697b34]
jmp 0x4132eb
mov dword [0x697b74], ebx
mov dword [0x697510], ebx
mov dword [0x697514], ebx
push 0x200
push 0x695a9c
push 0x200
push eax
call sub.IMM32.dll_ImmGetCompositionStringA
mov dword [0x697b70], eax
mov byte [eax + 0x695a9c], bl
mov eax, 1
pop ebx
ret
mov dword [0x697b70], ebx
mov byte [0x695a9c], bl
mov dword [0x697b74], ebx
mov dword [0x697510], ebx
mov dword [0x697514], ebx
mov eax, 1
pop ebx
ret