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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c
mov eax, dword [0x6d0fb630]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0xc]
mov esi, ecx
push 8
mov dword [ebp - 0x24], eax
pop ecx
and dword [ebp - 0x24], ecx
mov dword [esi], eax
je 0x6d09320b
mov edi, 0x800
push 4
pop ebx
mov dword [ebp - 0x2c], ecx
test edi, eax
je 0x6d09321f
push 0x38
call fcn.6d0af517
pop ecx
test eax, eax
je 0x6d0931f9
mov ecx, eax
call fcn.6d0930b8
jmp 0x6d0931fb
xor eax, eax
push edi
push dword [ebp - 0x20]
mov ecx, eax
mov dword [esi + 0xc], eax
call fcn.6d0931aa
jmp 0x6d09321f
test eax, 0x800
je 0x6d093393
xor ebx, ebx
mov dword [ebp - 0x2c], 3
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x18], ecx
lea edi, [ebp - 0x14]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
mov dword [ebp - 0x44], ecx
lea edi, [ebp - 0x40]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ebp - 0x1c], ecx
cmp ebx, dword [ebp - 0x2c]
jg 0x6d0932b3
mov dword [ebp - 0x28], ebx
lea ebx, [ebx*4 + 0x6d0d4230]
push 0
push 0
push dword [ebx]
push dword [ebp - 0x20]
call sub.IMM32.dll_ImmGetCompositionStringW
mov edi, dword [ebp - 0x1c]
lea edi, [ebp + edi*4 - 0x18]
mov dword [ebp - 0x30], eax
mov dword [edi], eax
test eax, eax
jne 0x6d093273
mov eax, dword [ebp - 0x1c]
and dword [ebp + eax*4 - 0x44], 0
jmp 0x6d0932a0
push eax
call fcn.6d0af517
pop ecx
push dword [ebp - 0x30]
mov dword [ebp - 0x48], eax
push eax
push dword [ebx]
push dword [ebp - 0x20]
call sub.IMM32.dll_ImmGetCompositionStringW
mov dword [edi], eax
cmp eax, 0xfffffffe
je 0x6d09338b
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp + ecx*4 - 0x44], eax
inc dword [ebp - 0x1c]
add ebx, 4
inc dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x2c]
jle 0x6d09324b
xor ecx, ecx
mov eax, dword [ebp - 0x18]
shr eax, 1
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0x44]
mov dword [esi + 0x24], eax
mov eax, dword [ebp - 0x14]
shr eax, 1
mov dword [esi + 0x14], eax
mov eax, dword [ebp - 0x40]
mov dword [esi + 0x28], eax
mov eax, dword [ebp - 0x10]
shr eax, 2
dec eax
mov dword [esi + 0x18], eax
mov eax, dword [ebp - 0x3c]
mov dword [esi + 0x2c], eax
mov eax, dword [ebp - 0xc]
shr eax, 2
dec eax
mov dword [esi + 0x1c], eax
mov eax, dword [ebp - 0x38]
mov dword [esi + 0x30], eax
mov eax, dword [ebp - 8]
cmp eax, ecx
jle 0x6d0932ff
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0x34]
mov dword [esi + 0x34], eax
cmp dword [ebp - 0x24], ecx
je 0x6d093316
push ecx
push ecx
push 0x80
push dword [ebp - 0x20]
call sub.IMM32.dll_ImmGetCompositionStringW
mov dword [esi + 4], eax
push 0x10002
push dword [0x6d0fe4b4]
call sub.java.dll__JNU_GetEnv_8
mov edi, eax
mov eax, dword [esi + 0x10]
test eax, eax
jle 0x6d09334c
push eax
push dword [esi + 0x24]
push edi
call fcn.6d093154
add esp, 0xc
mov dword [esi + 8], eax
mov eax, dword [edi]
push edi
call dword [eax + 0x390]
test al, al
jne 0x6d093393
mov eax, dword [esi + 0xc]
test eax, eax
je 0x6d0933b9
mov ecx, dword [esi + 8]
mov eax, dword [eax + 8]
test ecx, ecx
je 0x6d0933ab
test eax, eax
je 0x6d0933a7
push ecx
push str._Ljava_lang_String__Ljava_lang_String_
push str.concat
push eax
push 0
push edi
call sub.java.dll_JNU_CallMethodByName
add esp, 0x18
push dword [esi + 8]
mov ebx, eax
mov eax, dword [edi]
push edi
mov dword [ebp - 0x48], edx
call dword [eax + 0x5c]
mov dword [esi + 8], ebx
jmp 0x6d0933b9
mov eax, dword [ebp - 0x1c]
and dword [ebp + eax*4 - 0x44], 0
or eax, 0xffffffff
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.6d0b3eb2
leave
ret 8
test ecx, ecx
jne 0x6d0933b9
test eax, eax
je 0x6d0933b9
mov ecx, dword [edi]
push eax
push edi
call dword [ecx + 0x64]
mov dword [esi + 8], eax
xor eax, eax
jmp 0x6d093396