Function at 0x10047810
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101c0618
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x50
mov eax, dword [0x1023c014]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov esi, dword [ebx + 8]
xor eax, eax
lea ecx, [esi - 0x100]
cmp ecx, 4
ja case.0x10047864.259
jmp dword [ecx*4 + 0x10047b1c]
mov ecx, dword [edi + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
cmp eax, sym.HncOfficeFramework.dll_protected_virtual:_unsigned_long_int___thiscall_CHDCEditBase::vGetStyle_void_const
jne 0x10047b02
mov eax, dword [ecx - 0x50]
mov eax, dword [eax + 4]
test eax, eax
je 0x1004788b
mov eax, dword [eax + 8]
test eax, 0x800
jne 0x10047a05
xorps xmm0, xmm0
lea eax, [ebp - 0x30]
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x38], 0
movzx eax, word [ebx + 0xc]
xor ecx, ecx
mov dword [ebp - 4], 0
mov word [ebp - 0x1c], ax
mov word [ebp - 0x1a], cx
cmp eax, 0x20
jb 0x10047921
push 1
push ecx
push ecx
push ecx
push 1
lea eax, [ebp - 0x1c]
mov ecx, edi
push eax
mov eax, dword [edi]
mov eax, dword [eax + 0x2c]
call eax
test eax, eax
jne 0x100478e4
push 0xffffffffffffffff
call dword [sym.imp.USER32.dll_MessageBeep]
push dword [ebp - 0x1c]
lea eax, [ebp - 0x28]
mov dword [ebp - 0x28], 0x2a0020
push eax
mov dword [ebp - 0x24], 0x2d002b
mov dword [ebp - 0x20], 0x2e
call dword [sym.imp.VCRUNTIME140.dll_wcschr]
add esp, 8
test eax, eax
je 0x10047921
push 0
push 0x162000
push 0x1402
push 0
call dword [sym.imp.HncIMM.dll_HimControl]
lea ecx, [ebp - 0x38]
call fcn.10002630
jmp 0x10047ae0
call dword [sym.imp.HncIMM.dll__HncImeGetWindowHandle_0]
mov ecx, dword [edi + 0xc]
mov edx, eax
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x40], esi
mov esi, dword [ebx + 0xc]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x3c], esi
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
cmp eax, sym.HncOfficeFramework.dll_protected_virtual:_unsigned_long_int___thiscall_CHDCEditBase::vGetStyle_void_const
jne 0x10047b09
mov eax, dword [ecx - 0x50]
mov eax, dword [eax + 4]
test eax, eax
je 0x10047968
mov eax, dword [eax + 8]
and eax, 4
mov dword [ebp - 0x18], 0x1023e2e8
or eax, 0x62
shr eax, 1
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x1c]
push eax
push edx
call dword [sym.imp.HncIMM.dll_HncTranslateAccelerator]
test eax, eax
jne 0x10047a05
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x10047ae0
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x10047ae0
push 0x12
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x10047ae0
cmp esi, 0x70
jb 0x100479ce
cmp esi, 0x7b
jbe 0x10047ae0
cmp esi, 0xd
je 0x10047ae0
cmp esi, 0x1b
je 0x10047ae0
mov ecx, edi
call fcn.100445e0
test eax, 0x800
jne 0x10047a05
sub esi, 8
je 0x10047a0f
sub esi, 1
jne 0x10047a05
push esi
push 0x101d46fc
mov ecx, edi
call fcn.10049e70
mov eax, 1
jmp case.0x10047864.259
push 1
push 1
push ecx
mov ecx, edi
call fcn.10047c40
jmp case.0x10047864.259
call dword [sym.imp.HncIMM.dll__HncImeGetWindowHandle_0]
mov edx, dword [edi + 0xc]
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x5c], esi
mov esi, dword [ebx + 0xc]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x54], ecx
mov ecx, dword [edx]
mov eax, dword [ecx + 0x10]
cmp eax, sym.HncOfficeFramework.dll_protected_virtual:_unsigned_long_int___thiscall_CHDCEditBase::vGetStyle_void_const
jne 0x10047b13
mov eax, dword [edx - 0x50]
mov eax, dword [eax + 4]
test eax, eax
je 0x10047a58
mov eax, dword [eax + 8]
and eax, 4
mov dword [ebp - 0x20], 0x1023e2e8
or eax, 0x62
shr eax, 1
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x24]
push eax
push dword [ebp - 0x60]
call dword [sym.imp.HncIMM.dll_HncTranslateAccelerator]
test eax, eax
jne 0x10047a05
cmp esi, 0xd
jne 0x10047ae0
call dword [sym.imp.HncIMM.dll__HncImeGetWindowHandle_0]
push 0
push 0x1a0020
push 0x1408
push eax
call dword [sym.imp.HncIMM.dll_HimControl]
jmp 0x10047ae0
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x10
call esi
test ax, ax
js 0x10047ae0
push 0x11
call esi
test ax, ax
js 0x10047ae0
push 0x12
call esi
test ax, ax
js 0x10047ae0
mov eax, dword [ebx + 0xc]
cmp eax, 0x70
jb 0x10047acd
cmp eax, 0x7b
jbe 0x10047ae0
cmp eax, 9
je 0x10047ae0
cmp eax, 0xd
je 0x10047ae0
cmp eax, 0x1b
jne 0x10047a05
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.1008548c
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x10
call eax
jmp 0x1004788b
call eax
mov edx, dword [ebp - 0x44]
jmp 0x10047968
mov ecx, edx
call eax
jmp 0x10047a58