Function at 0x41af90
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x4c
push ebx
push ebp
push esi
push edi
movsx edi, byte [0x4ab254]
mov esi, ecx
push 0x12
mov dword [esp + 0x1c], edi
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jge case.default.0x41afb6
cmp edi, 5
ja case.default.0x41afb6
jmp dword [edi*4 + 0x41b264]
mov dword [esp + 0x18], 2
jmp case.default.0x41afb6
mov dword [esp + 0x18], 0
mov eax, dword [esi + 0x130]
mov edx, dword [esi + 0x12c]
sub eax, edx
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x134]
mov dword [esp + 0x10], eax
call sub.MFC42.DLL_CWnd::GetCurrentMessage
mov ecx, eax
lea edx, [esp + 0x1c]
push edx
mov eax, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x20]
mov dword [esp + 0x24], ecx
push eax
call dword [sym.imp.USER32.dll_ScreenToClient]
mov ecx, dword [esi + 0x88]
mov eax, dword [esi + 0x90]
sub eax, ecx
lea edi, [esp + 0x38]
cdq
sub eax, edx
mov dword [esp + 0x34], 0x28
mov ebx, eax
mov eax, dword [esi + 0x94]
sar ebx, 1
add ebx, ecx
mov ecx, dword [esi + 0x8c]
sub eax, ecx
push 2
cdq
sub eax, edx
mov ebp, eax
xor eax, eax
sar ebp, 1
add ebp, ecx
mov ecx, 9
rep stosd dword es:[edi], eax
mov ecx, dword [esi + 0x20]
push ecx
call fcn.0041b2b0
xor edi, edi
add esp, 8
cmp eax, edi
je 0x41b08f
lea edx, [esp + 0x34]
push edx
push eax
call fcn.0041b2f0
add esp, 8
test eax, eax
je 0x41b08f
lea eax, [esp + 0x38]
lea ecx, [esp + 0x24]
push eax
push ecx
call dword [sym.imp.USER32.dll_CopyRect]
mov ecx, dword [esp + 0x30]
jmp 0x41b0aa
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], edi
push edi
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
call edi
push 1
mov dword [esp + 0x30], eax
call edi
mov ecx, eax
mov edx, dword [esp + 0x18]
lea eax, [edx - 2]
cmp eax, 3
ja case.default.0x41b0ba
jmp dword [eax*4 + 0x41b27c]
mov eax, dword [esi + 0x58]
mov edi, dword [esp + 0x20]
sub eax, edi
mov edx, dword [esp + 0x28]
imul eax, dword [esp + 0x14]
sub ecx, edx
lea eax, [eax + eax*2]
cdq
idiv ecx
mov ecx, dword [esi + 0x5c]
jmp 0x41b23e
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
sub ecx, edi
mov eax, ecx
sub eax, edx
imul eax, dword [esp + 0x14]
cdq
idiv ecx
jmp 0x41b240
mov eax, dword [esp + 0x1c]
mov edi, dword [esi + 0x54]
sub eax, edi
mov ecx, dword [esp + 0x2c]
imul eax, dword [esp + 0x14]
mov edx, dword [esp + 0x24]
lea eax, [eax + eax*2]
sub ecx, edx
cdq
idiv ecx
mov ecx, dword [esi + 0x5c]
jmp 0x41b23e
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
sub ecx, edi
sub eax, ecx
imul eax, dword [esp + 0x14]
cdq
idiv ecx
jmp 0x41b240
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
sub edi, ebp
sub ecx, ebx
test edi, edi
jle 0x41b188
test ecx, ecx
jge 0x41b16f
mov edx, ecx
neg edx
cmp edi, edx
jle 0x41b16b
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret 4
xor ebx, ebx
jmp 0x41b1a4
cmp edi, ecx
jle 0x41b181
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret 4
mov ebx, 5
jmp 0x41b1a4
test ecx, ecx
jge 0x41b196
xor ebx, ebx
cmp ecx, edi
setge bl
inc ebx
jmp 0x41b1a4
mov eax, edi
xor ebx, ebx
neg eax
cmp ecx, eax
setg bl
add ebx, 3
test edi, edi
jge 0x41b1aa
neg edi
test ecx, ecx
jge 0x41b1b2
neg ecx
test ecx, ecx
je 0x41b1e6
test edi, edi
jne 0x41b1bf
mov ecx, 0x64
jmp 0x41b1eb
cmp ecx, edi
jl 0x41b1d8
lea edi, [edi + edi*4]
lea eax, [edi + edi*4]
shl eax, 2
cdq
idiv ecx
mov ecx, 0x64
mov edi, eax
jmp 0x41b1eb
lea ecx, [ecx + ecx*4]
lea eax, [ecx + ecx*4]
shl eax, 2
cdq
idiv edi
mov ecx, eax
mov edi, 0x64
cmp ebx, 5
ja case.default.0x41b1f0
jmp dword [ebx*4 + 0x41b28c]
mov eax, 0x64
sub eax, edi
mov dword [esp + 0x10], eax
jmp case.default.0x41b1f0
mov dword [esp + 0x10], edi
jmp case.default.0x41b1f0
mov eax, 0x64
sub eax, ecx
mov dword [esp + 0x10], eax
jmp case.default.0x41b1f0
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x10]
lea eax, [ebx + ebx*4]
lea ecx, [eax + eax*4]
mov eax, 0x6d0b8037
lea ecx, [edx + ecx*4]
imul ecx, dword [esp + 0x14]
imul ecx
mov eax, edx
sar eax, 8
mov ecx, eax
shr ecx, 0x1f
add eax, ecx
mov ecx, dword [esi + 0x12c]
add eax, ecx
cmp eax, ecx
jge 0x41b24e
mov eax, ecx
mov esi, dword [esi + 0x130]
cmp eax, esi
jle 0x41b25a
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret 4