Function at 0x4af0c0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5035f0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x14
mov eax, dword [ebp + 8]
test eax, eax
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
jne 0x4af0ed
mov dword [ebp - 0x1c], eax
jmp 0x4af0f3
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ecx + 4]
call dword [sym.imp.USER32.dll_GetFocus]
push eax
mov dword [ebp - 0x20], eax
call fcn.004d9ef0
cmp ebx, 0x100
mov dword [ebp - 0x14], eax
jb 0x4af11b
cmp ebx, 0x109
jbe 0x4af133
cmp ebx, 0x200
jb 0x4af1c5
cmp ebx, 0x209
ja 0x4af1c5
test eax, eax
je 0x4af1c5
mov edi, dword [sym.imp.USER32.dll_GetParent]
mov esi, eax
mov eax, dword [esi + 0x4c]
test eax, eax
jne 0x4af2b6
mov edx, dword [esi + 0x1c]
push edx
call edi
push eax
call fcn.004d9ef0
cmp eax, dword [ebp + 8]
je 0x4af2b6
mov eax, dword [esi + 0x1c]
push eax
call edi
push eax
call fcn.004d9ef0
mov esi, eax
test esi, esi
jne 0x4af143
cmp ebx, 0x101
je 0x4af18d
cmp ebx, 0x100
je 0x4af18d
cmp ebx, 0x102
jne 0x4af1c5
test esi, esi
je 0x4af1c5
mov esi, dword [esi + 0x4c]
test esi, esi
je 0x4af1c5
mov eax, dword [ebp + 0xc]
mov ax, word [eax + 8]
cmp ax, 0xd
jne 0x4af1b2
test byte [esi + 0x80], 1
jne 0x4af328
cmp ax, 0x1b
jne 0x4af1c5
test byte [esi + 0x80], 2
jne 0x4af328
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
push edx
call fcn.004d9ef0
mov esi, eax
mov eax, ebx
sub eax, 0x100
mov dword [ebp - 0x18], 0
mov edi, 2
je 0x4af36d
sub eax, edi
je 0x4af2f6
sub eax, 4
jne case.0x4af38e.4
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0x4af20c
push 0x12
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jge case.0x4af38e.4
mov edi, dword [ebp + 0xc]
cmp word [edi + 8], 0x20
jne 0x4af2f9
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x1c]
push edx
push ecx
call dword [sym.imp.USER32.dll_IsDialogMessageA]
mov esi, eax
test esi, esi
je 0x4af257
call dword [sym.imp.USER32.dll_GetFocus]
push eax
call fcn.004d9ef0
cmp eax, dword [ebp - 0x14]
je 0x4af257
call dword [sym.imp.USER32.dll_GetFocus]
push eax
call fcn.004d9ef0
push eax
call fcn.004aed00
add esp, 4
mov edx, dword [ebp - 0x20]
mov edi, dword [sym.imp.USER32.dll_IsWindow]
push edx
call edi
test eax, eax
je 0x4af2a1
call dword [sym.imp.USER32.dll_GetFocus]
push eax
call fcn.004d9ef0
mov ebx, dword [ebp - 0x14]
push eax
push ebx
call fcn.004aed70
mov eax, dword [ebp - 0x1c]
add esp, 8
push eax
call edi
test eax, eax
je 0x4af2a1
call dword [sym.imp.USER32.dll_GetFocus]
push eax
call fcn.004d9ef0
mov ecx, dword [ebp + 8]
push eax
push ebx
push ecx
call fcn.004aef30
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [esi + 0x4c]
test eax, eax
je 0x4af175
mov eax, dword [eax + 0x54]
test eax, eax
je 0x4af175
mov edx, dword [ebp + 0xc]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x14]
test eax, eax
jne 0x4af175
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
push edi
push esi
call fcn.004ae7f0
cmp ebx, 0x102
jne 0x4af310
test al, 0x84
jne case.0x4af38e.4
mov cx, word [edi + 8]
cmp cx, 9
jne 0x4af322
test al, 2
jne case.0x4af38e.4
cmp cx, 0x20
jne 0x4af33d
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
xor eax, eax
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 8]
push edi
push esi
push eax
call fcn.004aebc0
test eax, eax
je case.0x4af38e.4
mov eax, dword [eax + 4]
test eax, eax
je case.0x4af38e.4
push edi
mov ecx, eax
call fcn.004a7610
mov esi, 1
jmp 0x4af257
mov ebx, dword [ebp + 0xc]
push ebx
push esi
call fcn.004ae7f0
movzx ecx, word [ebx + 8]
add ecx, 0xfffffffd
cmp ecx, 0x28
ja case.0x4af38e.4
movzx ecx, byte [ecx + 0x4af5b0]
jmp dword [ecx*4 + 0x4af598]
test al, 2
jne case.0x4af38e.4
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, dword [ebp + 8]
xor edx, edx
test ax, ax
setl dl
mov edi, edx
push edi
push 0
call fcn.004d6570
test eax, eax
je case.0x4af38e.4
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x4af3df
mov edx, dword [ebp + 0xc]
mov eax, dword [ecx]
push edx
call dword [eax + 0xac]
mov esi, 1
jmp 0x4af257
mov eax, dword [eax]
test eax, eax
je 0x4af3ed
push eax
call fcn.004d9ef0
jmp 0x4af3f7
mov ecx, dword [ebp + 8]
push edi
push esi
call fcn.004a3790
mov esi, eax
test esi, esi
je 0x4af41d
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x48]
push esi
mov dword [ecx + 0x6c], 0
call fcn.004ae8a0
mov edx, dword [ebp - 0x14]
push esi
push edx
call fcn.004aed70
add esp, 8
mov esi, 1
jmp 0x4af257
mov dword [ebp - 0x18], 1
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x14]
push eax
push ecx
call fcn.004ae7f0
test al, 1
jne case.0x4af38e.4
mov eax, dword [ebp - 0x18]
test eax, eax
mov ecx, dword [ebp + 8]
push 0
je 0x4af456
call fcn.004d6680
jmp 0x4af45b
call fcn.004d6780
mov esi, eax
test esi, esi
je case.0x4af38e.4
mov eax, dword [esi + 8]
test eax, eax
je 0x4af475
mov ecx, dword [ebp + 8]
push esi
call fcn.004d6880
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x4af492
mov eax, dword [ebp + 0xc]
mov edx, dword [ecx]
push eax
call dword [edx + 0xac]
mov esi, 1
jmp 0x4af257
mov eax, dword [esi]
test eax, eax
je 0x4af4a0
push eax
call fcn.004d9ef0
jmp 0x4af4b0
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
push ecx
mov ecx, dword [ebp + 8]
push edx
call fcn.004ae870
mov edi, eax
test edi, edi
je case.0x4af38e.4
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x48]
push edi
mov dword [ecx + 0x6c], 0
call fcn.004ae8a0
mov eax, dword [esi + 8]
test eax, eax
je 0x4af4e7
mov edx, dword [edi + 0x1c]
push 0
push 1
push 0xf1
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov esi, 1
jmp 0x4af257
test al, 4
jne case.0x4af38e.4
mov esi, dword [ebp - 0x14]
push esi
call fcn.004ae840
add esp, 4
test al, 0x10
je 0x4af541
mov ecx, esi
call fcn.004d6270
test esi, esi
mov edi, eax
jne 0x4af52a
mov ecx, dword [ebp + 8]
push edi
push ecx
call fcn.004aee00
mov esi, eax
test esi, esi
je case.0x4af38e.4
mov ecx, esi
call fcn.004d6340
test eax, eax
jne 0x4af54e
push eax
call dword [sym.imp.USER32.dll_MessageBeep]
jmp case.0x4af38e.4
mov eax, dword [ebp + 8]
push eax
call fcn.004aef00
mov edi, eax
jmp case.0x4af38e.3
mov eax, dword [esi + 0x4c]
test eax, eax
je case.0x4af38e.4
push 0
push 0
push 0
push 1
push 0xfffffdd9
push esi
mov dword [ebp - 4], 0
call fcn.004d63c0
add esp, 0x18
mov dword [ebp - 4], 0xffffffff
mov esi, 1
jmp 0x4af257