Function at 0x41ab20
Capabilities:
Log keystrokes via polling

Disassembly:
push 0xffffffffffffffff
push 0x4d2a70
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10
push esi
mov esi, ecx
mov ecx, dword [esi + 0x1640]
call fcn.004a8889
mov eax, dword [0x510634]
mov dword [esp + 4], eax
lea ecx, [esp + 4]
mov dword [esp + 0x1c], 0
push ecx
mov ecx, dword [esi + 0x1640]
call fcn.004a619b
mov edx, dword [esp + 4]
mov eax, dword [edx - 8]
test eax, eax
jne 0x41ab93
lea ecx, [esp + 4]
mov dword [esp + 0x1c], 0xffffffff
call fcn.004a9169
pop esi
mov ecx, dword [esp + 0x10]
mov dword fs:[0], ecx
add esp, 0x1c
ret
push ebx
mov ebx, dword [sym.imp.USER32.dll_GetKeyState]
push edi
push 0x11
call ebx
push 0x10
mov edi, eax
call ebx
test di, di
jl 0x41ac5c
test ax, ax
jge 0x41ac25
lea eax, [esp + 0xc]
lea ecx, [esi + 0x2644]
push eax
lea edx, [esp + 0x18]
push ecx
push edx
call fcn.004a9398
lea ecx, [esi + 0x2650]
lea edx, [esp + 0x18]
push ecx
mov bl, 5
push eax
push edx
mov byte [esp + 0x30], bl
call fcn.004a9398
push eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x28], 6
call fcn.004a92a2
lea ecx, [esp + 0x18]
mov byte [esp + 0x24], bl
call fcn.004a9169
mov byte [esp + 0x24], 0
lea ecx, [esp + 0x14]
call fcn.004a9169
mov eax, dword [esi + 0x128]
test eax, eax
jne 0x41ac2d
mov eax, dword [esp + 0xc]
mov ecx, dword [esi + 0x1640]
push eax
call fcn.004a86f6
mov eax, dword [esi + 0x128]
test eax, eax
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
je 0x41ad91
mov ecx, dword [esi + 0x2510]
mov edx, dword [esi + 0x2500]
mov eax, dword [edx + ecx*4]
cmp dword [eax + 0x40], 2
jne 0x41ad1a
mov ecx, dword [esp + 0xc]
push ecx
jmp 0x41ad96
test ax, ax
jge 0x41acb9
lea eax, [esp + 0xc]
lea ecx, [esi + 0x2648]
push eax
lea edx, [esp + 0x1c]
push ecx
push edx
call fcn.004a9398
lea ecx, [esi + 0x2654]
lea edx, [esp + 0x14]
push ecx
push eax
push edx
mov byte [esp + 0x30], 1
call fcn.004a9398
push eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x28], 2
call fcn.004a92a2
lea ecx, [esp + 0x14]
mov byte [esp + 0x24], 1
call fcn.004a9169
mov byte [esp + 0x24], 0
lea ecx, [esp + 0x18]
jmp 0x41ac06
test di, di
jge 0x41abb3
lea eax, [esp + 0xc]
lea ecx, [esi + 0x2640]
push eax
lea edx, [esp + 0x18]
push ecx
push edx
call fcn.004a9398
lea ecx, [esi + 0x264c]
lea edx, [esp + 0x18]
push ecx
mov bl, 3
push eax
push edx
mov byte [esp + 0x30], bl
call fcn.004a9398
push eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x28], 4
call fcn.004a92a2
lea ecx, [esp + 0x18]
mov byte [esp + 0x24], bl
call fcn.004a9169
mov byte [esp + 0x24], 0
lea ecx, [esp + 0x14]
jmp 0x41ac06
mov eax, dword [esp + 0xc]
lea ecx, [esi + 0x24c0]
push eax
push 1
push 0
push eax
call fcn.004054d0
mov eax, dword [0x515f58]
test eax, eax
jne 0x41ada1
mov eax, dword [esi + 0x2510]
mov ecx, dword [esi + 0x2500]
lea edx, [esp + 0xc]
mov ecx, dword [ecx + eax*4]
push edx
call fcn.0042c820
mov edx, dword [esp + 0xc]
push str.about:blank
push edx
call fcn.004372d8
add esp, 8
test eax, eax
je 0x41ada1
mov eax, dword [esp + 0xc]
mov ecx, dword [esi + 0x1640]
push eax
call fcn.004a86f6
mov eax, dword [esi + 0x1640]
push 0xffff0000
push 0
push 0x142
mov ecx, dword [eax + 0x1c]
push ecx
call edi
jmp 0x41ada1
mov edx, dword [esp + 0xc]
push edx
lea ecx, [esi + 0x24c0]
call fcn.00405480
lea eax, [esp + 0xc]
lea ecx, [esp + 0x10]
push eax
call fcn.004a8ede
mov eax, dword [esi + 0x1640]
mov ecx, dword [esp + 0x10]
push ecx
push 0xffffffffffffffff
mov edx, dword [eax + 0x1c]
push 0x158
push edx
mov byte [esp + 0x34], 7
call edi
cmp eax, 0xffffffff
jne 0x41ae9d
push 1
push 0x2f
lea ecx, [esp + 0x1c]
call fcn.004a0f70
lea eax, [esp + 0x18]
push 1
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x2c], 8
call fcn.004a1308
mov ecx, dword [esp + 0x14]
mov eax, dword [eax]
push ecx
push eax
call fcn.004372d8
add esp, 8
lea ecx, [esp + 0x18]
test eax, eax
sete bl
call fcn.004a9169
lea ecx, [esp + 0x14]
mov byte [esp + 0x24], 7
call fcn.004a9169
test bl, bl
je 0x41ae5d
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x10]
mov eax, dword [edx - 8]
dec eax
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.004a1384
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x28], 9
call fcn.004a92a2
lea ecx, [esp + 0x18]
mov byte [esp + 0x24], 7
call fcn.004a9169
jmp 0x41ae68
push 0x2f
lea ecx, [esp + 0x14]
call fcn.004a956c
mov eax, dword [esi + 0x1640]
mov ecx, dword [esp + 0x10]
push ecx
push 0xffffffffffffffff
mov edx, dword [eax + 0x1c]
push 0x158
push edx
call edi
cmp eax, 0xffffffff
jne 0x41ae9d
mov esi, dword [esi + 0x1640]
mov eax, dword [esp + 0xc]
push eax
push 0
mov ecx, dword [esi + 0x1c]
push 0x14a
push ecx
call edi
lea ecx, [esp + 0x10]
mov byte [esp + 0x24], 0
call fcn.004a9169
lea ecx, [esp + 0xc]
mov dword [esp + 0x24], 0xffffffff
call fcn.004a9169
mov ecx, dword [esp + 0x1c]
pop edi
pop ebx
pop esi
mov dword fs:[0], ecx
add esp, 0x1c
ret