Function at 0x4a73be
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 0x4a76ae
je 0x4a75c9
cmp edi, 0xa8
ja 0x4a743e
cmp edi, 0xa7
jae 0x4a7421
cmp edi, 0x7b
je 0x4a7475
cmp edi, 0xa0
jbe 0x4a7528
cmp edi, 0xa2
jbe 0x4a7421
lea eax, [edi - 0xa4]
cmp eax, 1
ja 0x4a7528
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.004d8a53
jmp 0x4a7520
sub edi, 0x100
je 0x4a7539
sub edi, 4
jne 0x4a7528
mov ecx, dword [ebx + 0x230]
test ecx, ecx
je 0x4a7475
push dword [esi + 0xc]
push dword [esi + 8]
push ebx
call fcn.00515956
test eax, eax
je 0x4a7475
xor eax, eax
inc eax
jmp 0x4a7530
mov eax, dword [0x61f480]
mov edi, 0x61f480
test eax, eax
jne 0x4a7492
mov ecx, edi
call fcn.00439401
xor eax, eax
inc eax
mov dword [0x61f480], eax
cmp dword [0x61f624], 0
jne 0x4a74db
test eax, eax
jne 0x4a74ae
mov ecx, edi
call fcn.00439401
xor eax, eax
inc eax
mov dword [0x61f480], eax
cmp dword [0x61f620], 0
jne 0x4a74db
test eax, eax
jne 0x4a74cc
mov ecx, edi
call fcn.00439401
mov dword [0x61f480], 1
mov dword [0x61f620], 1
call fcn.00459061
mov eax, dword [0x620c50]
test eax, eax
je 0x4a7510
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4a7510
cmp dword [esi + 8], 0x12
jne 0x4a7510
mov eax, dword [0x620c50]
xor edi, edi
push edi
push edi
push 0x10
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x4a746d
push 0
push dword [esi + 8]
lea ecx, [ebx + 0x134]
call fcn.004d8771
test eax, eax
jne 0x4a746d
push esi
mov ecx, ebx
call fcn.0047c772
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push esi
call fcn.004d707d
test eax, eax
jne 0x4a755d
lea eax, [ebp - 4]
push eax
push dword [esi + 8]
lea ecx, [ebx + 0x134]
call fcn.004d8771
test eax, eax
jne 0x4a746d
cmp dword [esi + 8], 0x1b
jne 0x4a75b8
xor edi, edi
cmp dword [ebx + 0x204], edi
je 0x4a7579
push ebx
lea ecx, [ebx + 0x1ec]
call fcn.00523f6b
mov ecx, dword [ebx + 0x3f0]
test ecx, ecx
je 0x4a7592
cmp dword [ecx + 8], edi
je 0x4a7592
cmp dword [ecx + 4], edi
je 0x4a7592
call fcn.004bd812
call dword [sym.imp.USER32.dll_GetCapture]
push eax
call fcn.0041630d
push eax
push 0x59fab8
call fcn.0040b181
pop ecx
pop ecx
test eax, eax
je 0x4a75b8
push edi
push edi
push 0x1f
jmp 0x4a7502
cmp dword [ebp - 4], 0
jne 0x4a7528
xor eax, eax
jmp 0x4a7530
mov ecx, dword [ebx + 0x230]
test ecx, ecx
je 0x4a75e7
push dword [esi + 0xc]
push dword [esi + 8]
push ebx
call fcn.00515a91
test eax, eax
jne 0x4a746d
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 0x4a7621
push eax
call sub.IMM32.dll_ImmGetOpenStatus
mov dword [ebp - 8], 1
test eax, eax
jne 0x4a7624
mov dword [ebp - 8], edi
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x4a7634
push eax
push dword [ebx + 0x20]
call sub.IMM32.dll_ImmReleaseContext
cmp dword [ebx + 0x1e0], edi
je 0x4a7693
cmp dword [esi + 8], 0x12
je 0x4a765c
cmp dword [esi + 8], 0x79
jne 0x4a7693
mov eax, 0x8000
test dword [ebp - 0x10], eax
jne 0x4a7693
test dword [ebp - 0x14], eax
jne 0x4a7693
cmp dword [ebp - 8], edi
jne 0x4a7693
call dword [sym.imp.USER32.dll_GetFocus]
push eax
call fcn.0041630d
mov ecx, dword [ebx + 0x1e0]
cmp ecx, eax
jne 0x4a7676
mov ecx, ebx
jmp 0x4a7689
cmp dword [esi + 8], 0x12
je 0x4a7689
test dword [esi + 0xc], 0x20000000
jne 0x4a746d
call fcn.00412ed5
jmp 0x4a746d
mov eax, dword [0x620c50]
test eax, eax
je 0x4a7528
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_IsWindow]
jmp 0x4a7520
cmp edi, 0x200
je 0x4a7773
cmp edi, 0x201
je 0x4a770c
cmp edi, 0x203
jbe 0x4a7528
cmp edi, 0x205
jbe 0x4a770c
cmp edi, 0x206
jbe 0x4a7528
cmp edi, 0x208
jbe 0x4a770c
cmp edi, 0x20a
jne 0x4a7528
push dword [esi + 0xc]
lea ecx, [ebx + 0x134]
push dword [esi + 8]
call fcn.004d91af
jmp 0x4a7520
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.0041630d
mov edi, eax
test edi, edi
je 0x4a7740
push dword [esi]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4a7740
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.004d8a53
test eax, eax
jne 0x4a746d
push dword [esi]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x4a7528
jmp 0x4a746d
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.0041630d
test eax, eax
je 0x4a7799
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.004d90bd
jmp 0x4a7520