Function at 0x434ae0
Capabilities:
Get keyboard layout
Log keystrokes via polling

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffe0
mov ebx, ecx
mov ebp, edx
mov esi, eax
cmp byte [esi + 0x1a8], 0
je 0x434b15
cmp byte [esi + 0x1a7], 0
je 0x434b15
cmp dword [esi + 0x17c], 0
je 0x434b15
mov eax, dword [esi + 0x17c]
mov edx, ebp
mov ecx, dword [eax]
call dword [ecx + 0x20]
mov eax, dword [esi + 0x198]
test eax, eax
je 0x434c02
xor edi, edi
test ebx, ebx
je 0x434b38
mov edx, ebx
call fcn.004139e8
mov edi, eax
test edi, edi
jge 0x434b38
xor edi, edi
mov eax, dword [esi + 0x198]
mov eax, dword [eax + 8]
mov dword [esp], eax
cmp edi, dword [esp]
jge 0x434c02
mov eax, dword [esi + 0x198]
mov edx, edi
call fcn.0041398c
mov ebx, eax
cmp byte [ebx + 0x57], 0
jne 0x434b76
test byte [ebx + 0x1c], 0x10
je 0x434bf8
test byte [ebx + 0x51], 4
jne 0x434bf8
mov eax, dword [ebx + 0x44]
add eax, dword [ebx + 0x4c]
push eax
lea eax, [esp + 0x14]
push eax
mov ecx, dword [ebx + 0x40]
add ecx, dword [ebx + 0x48]
mov edx, dword [ebx + 0x44]
mov eax, dword [ebx + 0x40]
call fcn.0041236c
lea eax, [esp + 0x10]
push eax
push ebp
call sub.user32.dll_GetKeyboardLayoutList
test eax, eax
je 0x434bf8
test byte [esi + 0x54], 0x80
je 0x434bae
or word [ebx + 0x54], 0x80
push ebp
call sub.user32.dll_GetLastActivePopup
mov dword [esp + 4], eax
mov ecx, dword [ebx + 0x44]
mov edx, dword [ebx + 0x40]
mov eax, ebp
call fcn.0042eefc
mov eax, dword [ebx + 0x4c]
push eax
mov eax, dword [ebx + 0x48]
push eax
push 0
push 0
push ebp
call sub.user32.dll_GetFocus
push 0
mov ecx, ebp
mov edx, 0xf
mov eax, ebx
call fcn.00431768
mov eax, dword [esp + 4]
push eax
push ebp
call sub.user32.dll_GetKeyboardState
and word [ebx + 0x54], 0xff7f
inc edi
cmp edi, dword [esp]
jl 0x434b4d
mov eax, dword [esi + 0x19c]
test eax, eax
je 0x434d08
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x434d08
inc eax
mov dword [esp + 0xc], eax
xor edi, edi
mov eax, dword [esi + 0x19c]
mov edx, edi
call fcn.0041398c
mov ebx, eax
cmp byte [ebx + 0x1a5], 0
je 0x434cfd
test byte [ebx + 0x50], 0x10
je 0x434cfd
cmp byte [ebx + 0x57], 0
jne 0x434c63
test byte [ebx + 0x1c], 0x10
je 0x434cfd
test byte [ebx + 0x51], 4
jne 0x434cfd
mov eax, 0x80000010
call fcn.0041dd34
push eax
call sub.user32.dll_EnableScrollBar
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
push eax
mov eax, dword [ebx + 0x44]
add eax, dword [ebx + 0x4c]
push eax
lea eax, [esp + 0x18]
push eax
mov ecx, dword [ebx + 0x40]
add ecx, dword [ebx + 0x48]
mov edx, dword [ebx + 0x44]
dec edx
mov eax, dword [ebx + 0x40]
dec eax
call fcn.0041236c
lea eax, [esp + 0x14]
push eax
push ebp
call fcn.00406b2c
mov eax, dword [esp + 8]
push eax
call sub.user32.dll_EndPaint
mov eax, 0x80000014
call fcn.0041dd34
push eax
call sub.user32.dll_EnableScrollBar
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
push eax
mov eax, dword [ebx + 0x44]
add eax, dword [ebx + 0x4c]
inc eax
push eax
lea eax, [esp + 0x18]
push eax
mov ecx, dword [ebx + 0x40]
add ecx, dword [ebx + 0x48]
inc ecx
mov edx, dword [ebx + 0x44]
mov eax, dword [ebx + 0x40]
call fcn.0041236c
lea eax, [esp + 0x14]
push eax
push ebp
call fcn.00406b2c
mov eax, dword [esp + 8]
push eax
call sub.user32.dll_EndPaint
inc edi
dec dword [esp + 0xc]
jne 0x434c23
add esp, 0x20
pop ebp
pop edi
pop esi
pop ebx
ret