Function at 0x4a73d2
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
mov esi, dword [ebp + 8]
mov eax, 0x105
push edi
mov ebx, ecx
mov dword [ebp - 4], 1
mov edi, dword [esi + 4]
cmp edi, eax
ja 0x4a76c2
je 0x4a75dd
cmp edi, 0xa8
ja 0x4a7452
cmp edi, 0xa7
jae 0x4a7435
cmp edi, 0x7b
je 0x4a7489
cmp edi, 0xa0
jbe 0x4a753c
cmp edi, 0xa2
jbe 0x4a7435
lea eax, [edi - 0xa4]
cmp eax, 1
ja 0x4a753c
push dword [esi]
movsx ecx, word [esi + 0xe]
movsx edx, word [esi + 0xc]
push ecx
push edx
push edi
lea ecx, [ebx + 0x134]
call fcn.004d8a6c
jmp 0x4a7534
sub edi, 0x100
je 0x4a754d
sub edi, 4
jne 0x4a753c
mov ecx, dword [ebx + 0x230]
test ecx, ecx
je 0x4a7489
push dword [esi + 0xc]
push dword [esi + 8]
push ebx
call fcn.00515970
test eax, eax
je 0x4a7489
xor eax, eax
inc eax
jmp 0x4a7544
mov eax, dword [0x61f890]
mov edi, 0x61f890
test eax, eax
jne 0x4a74a6
mov ecx, edi
call fcn.0043941c
xor eax, eax
inc eax
mov dword [0x61f890], eax
cmp dword [0x61fa34], 0
jne 0x4a74ef
test eax, eax
jne 0x4a74c2
mov ecx, edi
call fcn.0043941c
xor eax, eax
inc eax
mov dword [0x61f890], eax
cmp dword [0x61fa30], 0
jne 0x4a74ef
test eax, eax
jne 0x4a74e0
mov ecx, edi
call fcn.0043941c
mov dword [0x61f890], 1
mov dword [0x61fa30], 1
call fcn.0045907b
mov eax, dword [0x621060]
test eax, eax
je 0x4a7524
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4a7524
cmp dword [esi + 8], 0x12
jne 0x4a7524
mov eax, dword [0x621060]
xor edi, edi
push edi
push edi
push 0x10
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x4a7481
push 0
push dword [esi + 8]
lea ecx, [ebx + 0x134]
call fcn.004d878a
test eax, eax
jne 0x4a7481
push esi
mov ecx, ebx
call fcn.0047c786
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push esi
call fcn.004d7096
test eax, eax
jne 0x4a7571
lea eax, [ebp - 4]
push eax
push dword [esi + 8]
lea ecx, [ebx + 0x134]
call fcn.004d878a
test eax, eax
jne 0x4a7481
cmp dword [esi + 8], 0x1b
jne 0x4a75cc
xor edi, edi
cmp dword [ebx + 0x204], edi
je 0x4a758d
push ebx
lea ecx, [ebx + 0x1ec]
call fcn.00523f89
mov ecx, dword [ebx + 0x3f0]
test ecx, ecx
je 0x4a75a6
cmp dword [ecx + 8], edi
je 0x4a75a6
cmp dword [ecx + 4], edi
je 0x4a75a6
call fcn.004bd82b
call dword [sym.imp.USER32.dll_GetCapture]
push eax
call fcn.0041631c
push eax
push 0x59fab8
call fcn.0040b190
pop ecx
pop ecx
test eax, eax
je 0x4a75cc
push edi
push edi
push 0x1f
jmp 0x4a7516
cmp dword [ebp - 4], 0
jne 0x4a753c
xor eax, eax
jmp 0x4a7544
mov ecx, dword [ebx + 0x230]
test ecx, ecx
je 0x4a75fb
push dword [esi + 0xc]
push dword [esi + 8]
push ebx
call fcn.00515aab
test eax, eax
jne 0x4a7481
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
push 0x10
mov dword [ebp - 0x10], eax
call dword [sym.imp.USER32.dll_GetKeyState]
push dword [ebx + 0x20]
cwde
mov dword [ebp - 0x14], eax
call sub.IMM32.dll_ImmGetContext
xor edi, edi
mov dword [ebp - 0xc], eax
test eax, eax
je 0x4a7635
push eax
call sub.IMM32.dll_ImmGetOpenStatus
mov dword [ebp - 8], 1
test eax, eax
jne 0x4a7638
mov dword [ebp - 8], edi
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x4a7648
push eax
push dword [ebx + 0x20]
call sub.IMM32.dll_ImmReleaseContext
cmp dword [ebx + 0x1e0], edi
je 0x4a76a7
cmp dword [esi + 8], 0x12
je 0x4a7670
cmp dword [esi + 8], 0x79
jne 0x4a76a7
mov eax, 0x8000
test dword [ebp - 0x10], eax
jne 0x4a76a7
test dword [ebp - 0x14], eax
jne 0x4a76a7
cmp dword [ebp - 8], edi
jne 0x4a76a7
call dword [sym.imp.USER32.dll_GetFocus]
push eax
call fcn.0041631c
mov ecx, dword [ebx + 0x1e0]
cmp ecx, eax
jne 0x4a768a
mov ecx, ebx
jmp 0x4a769d
cmp dword [esi + 8], 0x12
je 0x4a769d
test dword [esi + 0xc], 0x20000000
jne 0x4a7481
call fcn.00412ee4
jmp 0x4a7481
mov eax, dword [0x621060]
test eax, eax
je 0x4a753c
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_IsWindow]
jmp 0x4a7534
cmp edi, 0x200
je 0x4a7787
cmp edi, 0x201
je 0x4a7720
cmp edi, 0x203
jbe 0x4a753c
cmp edi, 0x205
jbe 0x4a7720
cmp edi, 0x206
jbe 0x4a753c
cmp edi, 0x208
jbe 0x4a7720
cmp edi, 0x20a
jne 0x4a753c
push dword [esi + 0xc]
lea ecx, [ebx + 0x134]
push dword [esi + 8]
call fcn.004d91c8
jmp 0x4a7534
movsx eax, word [esi + 0xc]
push dword [esi]
mov dword [ebp - 0x18], eax
movsx eax, word [esi + 0xe]
mov dword [ebp - 0x14], eax
call fcn.0041631c
mov edi, eax
test edi, edi
je 0x4a7754
push dword [esi]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4a7754
lea eax, [ebp - 0x18]
push eax
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_ClientToScreen]
push dword [esi]
lea ecx, [ebx + 0x134]
push dword [ebp - 0x14]
push dword [ebp - 0x18]
push dword [esi + 4]
call fcn.004d8a6c
test eax, eax
jne 0x4a7481
push dword [esi]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x4a753c
jmp 0x4a7481
movsx eax, word [esi + 0xc]
push dword [esi]
mov dword [ebp - 0x18], eax
movsx eax, word [esi + 0xe]
mov dword [ebp - 0x14], eax
call fcn.0041631c
test eax, eax
je 0x4a77ad
lea ecx, [ebp - 0x18]
push ecx
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_ClientToScreen]
push dword [ebp - 0x14]
lea ecx, [ebx + 0x134]
push dword [ebp - 0x18]
call fcn.004d90d6
jmp 0x4a7534