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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffec
push ebx
push esi
push edi
mov esi, dword [ebp + 0x14]
mov ebx, dword [ebp + 0xc]
mov dword [0x629850], 1
call fcn.0045d918
mov eax, ebx
cmp eax, 0x10f
jg 0x45d540
je 0x45d5a3
sub eax, 0x10d
je 0x45d569
dec eax
je 0x45d582
jmp 0x45d880
sub eax, 0x281
je 0x45d553
dec eax
je 0x45d6e7
jmp 0x45d880
xor esi, esi
push esi
mov eax, dword [ebp + 0x10]
push eax
push ebx
mov edx, dword [ebp + 8]
push edx
call sub.USER32.DLL_DefWindowProcA
jmp 0x45d882
xor ecx, ecx
mov dword [0x628c30], ecx
mov dword [0x628c2c], 1
xor eax, eax
jmp 0x45d882
push 0x400
push 0
push 0x628c34
call fcn.0045ea68
add esp, 0xc
xor edx, edx
mov dword [0x628c2c], edx
jmp 0x45d880
mov ecx, dword [ebp + 8]
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 4]
push eax
call sub.IMM32.DLL_ImmGetContext
test esi, 8
mov ebx, eax
je 0x45d5e2
push 0x400
push 0
push 0x628c34
call fcn.0045ea68
add esp, 0xc
push 0x400
push 0x628c34
push 8
push ebx
call sub.IMM32.DLL_ImmGetCompositionStringA
test esi, 0x800
je 0x45d671
push 0x400
push 0
push 0x628c34
call fcn.0045ea68
add esp, 0xc
push 0x400
push 0x628c34
push 0x800
push ebx
call sub.IMM32.DLL_ImmGetCompositionStringA
push 0x628c34
call sub.KERNEL32.DLL_lstrlenA
mov dword [ebp - 8], eax
xor eax, eax
mov dword [ebp - 0xc], eax
mov edi, 0x628c34
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 8]
jge 0x45d64b
mov dl, byte [edi]
push edx
call fcn.00461854
pop ecx
inc dword [ebp - 0xc]
inc edi
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [ebp - 8]
jl 0x45d636
push 0x400
push 0
push 0x628c34
call fcn.0045ea68
add esp, 0xc
push 0x400
push 0x628c34
push 8
push ebx
call sub.IMM32.DLL_ImmGetCompositionStringA
test esi, 0x80
je 0x45d69b
push 0
push 0
push 0x80
push ebx
call sub.IMM32.DLL_ImmGetCompositionStringA
push eax
push 0x628c34
call fcn.004619f4
add esp, 8
mov dword [0x628c30], eax
test esi, 0x20
je 0x45d6d8
push 0x400
push 0
push 0x62944c
call fcn.0045ea68
add esp, 0xc
push 0x400
push 0x62944c
push 0x20
push ebx
call sub.IMM32.DLL_ImmGetCompositionStringA
test eax, eax
jns 0x45d6d0
add eax, 3
sar eax, 2
mov dword [0x62984c], eax
push ebx
mov eax, dword [ebp - 4]
push eax
call sub.IMM32.DLL_ImmReleaseContext
jmp 0x45d880
mov edx, dword [ebp + 0x10]
add edx, 0xfffffffd
cmp edx, 6
ja case.0x45d6f6.6
jmp dword [edx*4 + 0x45d6fd]
cmp dword [0x5f0748], 0
jne 0x45d880
mov dword [0x5f0748], 1
push esi
mov ecx, dword [ebp + 0x10]
push ecx
push ebx
mov eax, dword [ebp + 8]
push eax
call sub.USER32.DLL_DefWindowProcA
push 0
call fcn.00460598
pop ecx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], edx
call fcn.0045ef68
test eax, eax
jne 0x45d774
push 0
call fcn.00460598
pop ecx
sub eax, dword [ebp - 0x14]
sbb edx, dword [ebp - 0x10]
cmp edx, 0
jne 0x45d772
cmp eax, 0x7d0
jb 0x45d74d
jmp 0x45d774
jl 0x45d74d
xor edx, edx
mov dword [0x5f0748], edx
mov esi, dword [ebp + 8]
push esi
call sub.IMM32.DLL_ImmGetContext
mov ebx, eax
push ebx
call sub.IMM32.DLL_ImmGetOpenStatus
mov dword [0x629440], eax
push ebx
push esi
call sub.IMM32.DLL_ImmReleaseContext
jmp 0x45d880
mov esi, dword [ebp + 8]
push esi
call sub.IMM32.DLL_ImmGetContext
mov ebx, eax
push 0
push 0
push 0
push ebx
call sub.IMM32.DLL_ImmGetCandidateListA
mov edi, eax
test edi, edi
jne 0x45d7d8
push ebx
push esi
call sub.IMM32.DLL_ImmReleaseContext
push ebx
push esi
push 0x5f1e65
call fcn.0045e1bc
add esp, 0xc
xor eax, eax
jmp 0x45d882
mov eax, dword [0x629438]
test eax, eax
je 0x45d7e8
push eax
call fcn.0045e400
pop ecx
push 0
push 0x5f1e9e
push edi
call fcn.0045e2c4
add esp, 0xc
mov dword [0x629438], eax
test eax, eax
jne 0x45d818
push ebx
push esi
call sub.IMM32.DLL_ImmReleaseContext
push edi
push 0x5f1e9f
call fcn.0045e290
add esp, 8
jmp 0x45d882
push edi
mov edx, dword [0x629438]
push edx
push 0
push ebx
call sub.IMM32.DLL_ImmGetCandidateListA
test eax, eax
jne 0x45d859
mov ecx, dword [0x629438]
push ecx
call fcn.0045e400
pop ecx
xor eax, eax
mov dword [0x629438], eax
push ebx
push esi
call sub.IMM32.DLL_ImmReleaseContext
push edi
push 0x5f1ef4
call fcn.0045e1bc
add esp, 8
xor eax, eax
jmp 0x45d882
push ebx
push esi
call sub.IMM32.DLL_ImmReleaseContext
jmp 0x45d880
mov eax, dword [0x629438]
test eax, eax
je 0x45d872
push eax
call fcn.0045e400
pop ecx
xor edx, edx
mov dword [0x629438], edx
jmp 0x45d880
xor eax, eax
jmp 0x45d882
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret