Function at 0x4af9e0
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 0x4afcd0
je 0x4afbeb
cmp edi, 0xa8
ja 0x4afa60
cmp edi, 0xa7
jae 0x4afa43
cmp edi, 0x7b
je 0x4afa97
cmp edi, 0xa0
jbe 0x4afb4a
cmp edi, 0xa2
jbe 0x4afa43
lea eax, [edi - 0xa4]
cmp eax, 1
ja 0x4afb4a
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.004e1077
jmp 0x4afb42
sub edi, 0x100
je 0x4afb5b
sub edi, 4
jne 0x4afb4a
mov ecx, dword [ebx + 0x230]
test ecx, ecx
je 0x4afa97
push dword [esi + 0xc]
push dword [esi + 8]
push ebx
call fcn.0051d9e0
test eax, eax
je 0x4afa97
xor eax, eax
inc eax
jmp 0x4afb52
mov eax, dword [0x62f888]
mov edi, 0x62f888
test eax, eax
jne 0x4afab4
mov ecx, edi
call fcn.00441a23
xor eax, eax
inc eax
mov dword [0x62f888], eax
cmp dword [0x62fa2c], 0
jne 0x4afafd
test eax, eax
jne 0x4afad0
mov ecx, edi
call fcn.00441a23
xor eax, eax
inc eax
mov dword [0x62f888], eax
cmp dword [0x62fa28], 0
jne 0x4afafd
test eax, eax
jne 0x4afaee
mov ecx, edi
call fcn.00441a23
mov dword [0x62f888], 1
mov dword [0x62fa28], 1
call fcn.00461685
mov eax, dword [0x631058]
test eax, eax
je 0x4afb32
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4afb32
cmp dword [esi + 8], 0x12
jne 0x4afb32
mov eax, dword [0x631058]
xor edi, edi
push edi
push edi
push 0x10
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x4afa8f
push 0
push dword [esi + 8]
lea ecx, [ebx + 0x134]
call fcn.004e0d95
test eax, eax
jne 0x4afa8f
push esi
mov ecx, ebx
call fcn.00484d90
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push esi
call fcn.004df6a1
test eax, eax
jne 0x4afb7f
lea eax, [ebp - 4]
push eax
push dword [esi + 8]
lea ecx, [ebx + 0x134]
call fcn.004e0d95
test eax, eax
jne 0x4afa8f
cmp dword [esi + 8], 0x1b
jne 0x4afbda
xor edi, edi
cmp dword [ebx + 0x204], edi
je 0x4afb9b
push ebx
lea ecx, [ebx + 0x1ec]
call fcn.0052bff5
mov ecx, dword [ebx + 0x3f0]
test ecx, ecx
je 0x4afbb4
cmp dword [ecx + 8], edi
je 0x4afbb4
cmp dword [ecx + 4], edi
je 0x4afbb4
call fcn.004c5e36
call dword [sym.imp.USER32.dll_GetCapture]
push eax
call fcn.0041f3fb
push eax
push 0x5a8ac8
call fcn.004137e2
pop ecx
pop ecx
test eax, eax
je 0x4afbda
push edi
push edi
push 0x1f
jmp 0x4afb24
cmp dword [ebp - 4], 0
jne 0x4afb4a
xor eax, eax
jmp 0x4afb52
mov ecx, dword [ebx + 0x230]
test ecx, ecx
je 0x4afc09
push dword [esi + 0xc]
push dword [esi + 8]
push ebx
call fcn.0051db1b
test eax, eax
jne 0x4afa8f
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 0x4afc43
push eax
call sub.IMM32.dll_ImmGetOpenStatus
mov dword [ebp - 8], 1
test eax, eax
jne 0x4afc46
mov dword [ebp - 8], edi
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x4afc56
push eax
push dword [ebx + 0x20]
call sub.IMM32.dll_ImmReleaseContext
cmp dword [ebx + 0x1e0], edi
je 0x4afcb5
cmp dword [esi + 8], 0x12
je 0x4afc7e
cmp dword [esi + 8], 0x79
jne 0x4afcb5
mov eax, 0x8000
test dword [ebp - 0x10], eax
jne 0x4afcb5
test dword [ebp - 0x14], eax
jne 0x4afcb5
cmp dword [ebp - 8], edi
jne 0x4afcb5
call dword [sym.imp.USER32.dll_GetFocus]
push eax
call fcn.0041f3fb
mov ecx, dword [ebx + 0x1e0]
cmp ecx, eax
jne 0x4afc98
mov ecx, ebx
jmp 0x4afcab
cmp dword [esi + 8], 0x12
je 0x4afcab
test dword [esi + 0xc], 0x20000000
jne 0x4afa8f
call fcn.0041bfc3
jmp 0x4afa8f
mov eax, dword [0x631058]
test eax, eax
je 0x4afb4a
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_IsWindow]
jmp 0x4afb42
cmp edi, 0x200
je 0x4afd95
cmp edi, 0x201
je 0x4afd2e
cmp edi, 0x203
jbe 0x4afb4a
cmp edi, 0x205
jbe 0x4afd2e
cmp edi, 0x206
jbe 0x4afb4a
cmp edi, 0x208
jbe 0x4afd2e
cmp edi, 0x20a
jne 0x4afb4a
push dword [esi + 0xc]
lea ecx, [ebx + 0x134]
push dword [esi + 8]
call fcn.004e17d3
jmp 0x4afb42
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.0041f3fb
mov edi, eax
test edi, edi
je 0x4afd62
push dword [esi]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4afd62
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.004e1077
test eax, eax
jne 0x4afa8f
push dword [esi]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x4afb4a
jmp 0x4afa8f
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.0041f3fb
test eax, eax
je 0x4afdbb
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.004e16e1
jmp 0x4afb42