Function at 0x462538
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
push esi
push edi
add esp, 0xffffff00
mov ebx, eax
mov edi, 0x46b250
push esp
call sub.user32.dll_GetKeyboardState
push 0xcc0020
push 0
push 0
mov eax, dword [ebx + 0x3a8]
call sub.RtlVcl160.bpl__Vcl_Extctrls_TImage_GetCanvas_qqrv
call sub.RtlVcl160.bpl__Vcl_Graphics_TCanvas_GetHandle_qqrv
push eax
mov esi, dword [ebx + 0x390]
mov eax, dword [esi + 0x54]
push eax
mov eax, dword [esi + 0x50]
push eax
push 0
push 0
mov eax, ebx
call sub.RtlVcl160.bpl__Vcl_Forms_TCustomForm_GetCanvas_qqrv
call sub.RtlVcl160.bpl__Vcl_Graphics_TCanvas_GetHandle_qqrv
push eax
call sub.gdi32.dll_BitBlt
test byte [esp + 0x14], 1
je 0x4625de
push 0xcc0020
push 0
push 0
mov eax, dword [ebx + 0x394]
call sub.RtlVcl160.bpl__Vcl_Extctrls_TImage_GetCanvas_qqrv
call sub.RtlVcl160.bpl__Vcl_Graphics_TCanvas_GetHandle_qqrv
push eax
mov esi, dword [0x46c534]
add esi, esi
add esi, esi
mov eax, dword [edi + esi*8 + 0xc]
push eax
mov eax, dword [edi + esi*8 + 8]
push eax
mov eax, dword [edi + esi*8 + 4]
push eax
mov eax, dword [edi + esi*8]
push eax
mov eax, ebx
call sub.RtlVcl160.bpl__Vcl_Forms_TCustomForm_GetCanvas_qqrv
call sub.RtlVcl160.bpl__Vcl_Graphics_TCanvas_GetHandle_qqrv
push eax
call sub.gdi32.dll_BitBlt
jmp 0x462627
push 0xcc0020
push 0
push 0
mov eax, dword [ebx + 0x39c]
call sub.RtlVcl160.bpl__Vcl_Extctrls_TImage_GetCanvas_qqrv
call sub.RtlVcl160.bpl__Vcl_Graphics_TCanvas_GetHandle_qqrv
push eax
mov esi, dword [0x46c534]
add esi, esi
add esi, esi
mov eax, dword [edi + esi*8 + 0xc]
push eax
mov eax, dword [edi + esi*8 + 8]
push eax
mov eax, dword [edi + esi*8 + 4]
push eax
mov eax, dword [edi + esi*8]
push eax
mov eax, ebx
call sub.RtlVcl160.bpl__Vcl_Forms_TCustomForm_GetCanvas_qqrv
call sub.RtlVcl160.bpl__Vcl_Graphics_TCanvas_GetHandle_qqrv
push eax
call sub.gdi32.dll_BitBlt
cmp byte [0x46c53c], 0
je 0x46267b
push 0xcc0020
push 0
push 0
mov eax, dword [ebx + 0x398]
call sub.RtlVcl160.bpl__Vcl_Extctrls_TImage_GetCanvas_qqrv
call sub.RtlVcl160.bpl__Vcl_Graphics_TCanvas_GetHandle_qqrv
push eax
mov esi, dword [0x46c538]
add esi, esi
add esi, esi
mov eax, dword [edi + esi*8 + 0xc]
push eax
mov eax, dword [edi + esi*8 + 8]
push eax
mov eax, dword [edi + esi*8 + 4]
push eax
mov eax, dword [edi + esi*8]
push eax
mov eax, ebx
call sub.RtlVcl160.bpl__Vcl_Forms_TCustomForm_GetCanvas_qqrv
call sub.RtlVcl160.bpl__Vcl_Graphics_TCanvas_GetHandle_qqrv
push eax
call sub.gdi32.dll_BitBlt
jmp 0x4626c4
push 0xcc0020
push 0
push 0
mov eax, dword [ebx + 0x3a0]
call sub.RtlVcl160.bpl__Vcl_Extctrls_TImage_GetCanvas_qqrv
call sub.RtlVcl160.bpl__Vcl_Graphics_TCanvas_GetHandle_qqrv
push eax
mov esi, dword [0x46c538]
add esi, esi
add esi, esi
mov eax, dword [edi + esi*8 + 0xc]
push eax
mov eax, dword [edi + esi*8 + 8]
push eax
mov eax, dword [edi + esi*8 + 4]
push eax
mov eax, dword [edi + esi*8]
push eax
mov eax, ebx
call sub.RtlVcl160.bpl__Vcl_Forms_TCustomForm_GetCanvas_qqrv
call sub.RtlVcl160.bpl__Vcl_Graphics_TCanvas_GetHandle_qqrv
push eax
call sub.gdi32.dll_BitBlt
push 0xcc0020
push 0
push 0
mov esi, dword [ebx + 0x3a4]
mov eax, esi
call sub.RtlVcl160.bpl__Vcl_Extctrls_TImage_GetCanvas_qqrv
call sub.RtlVcl160.bpl__Vcl_Graphics_TCanvas_GetHandle_qqrv
push eax
mov eax, dword [esi + 0x54]
push eax
mov eax, dword [esi + 0x50]
push eax
mov eax, dword [esi + 0x4c]
push eax
mov eax, dword [esi + 0x48]
push eax
mov eax, ebx
call sub.RtlVcl160.bpl__Vcl_Forms_TCustomForm_GetCanvas_qqrv
call sub.RtlVcl160.bpl__Vcl_Graphics_TCanvas_GetHandle_qqrv
push eax
call sub.gdi32.dll_BitBlt
add esp, 0x100
pop edi
pop esi
pop ebx
ret