Function at 0x4153b0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x90
push ebx
push esi
mov esi, ecx
cmp dword [esi + 0x40e4], 0x51f
push edi
mov byte [esi + 0x414c], 0
jne 0x415712
cmp dword [esi + 0x40a4], 0
jne 0x415712
mov eax, dword [0x52fe14]
push eax
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
setne al
test al, al
jne 0x415712
mov ecx, dword [0x52fe30]
cmp byte [ecx + 0x1220], al
je 0x415415
cmp byte [esi + 0x40ee], al
jne 0x415712
cmp byte [esi + 0x4090], 0
jne 0x415433
mov edx, dword [0x52fe14]
push edx
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x415712
mov edi, dword [ebp + 8]
test edi, edi
jne 0x415476
mov ecx, esi
call fcn.004099b0
test al, al
jne 0x415712
mov ecx, esi
call fcn.00409980
test al, al
jne 0x415712
push 0
mov ecx, esi
call fcn.004098e0
test al, al
jne 0x415712
cmp dword [esi + 0x79dc], 0
jne 0x415712
xor eax, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], eax
mov dword [ebp - 4], eax
test edi, edi
je 0x4154a1
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov edx, dword [edi + 8]
mov dword [ebp - 0x10], eax
mov eax, dword [edi + 0xc]
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
jmp 0x4154b2
mov edx, dword [0x52fe14]
lea ecx, [ebp - 0x10]
push ecx
push edx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
push 0
push eax
push ecx
mov ecx, dword [0x52fe34]
call fcn.0045b9c0
test byte [esi + 0x4148], 0x80
je 0x4154f0
push 1
call dword [sym.imp.USER32.dll_GetKeyState]
mov edx, 0x8000
and ax, dx
mov ecx, edx
cmp ax, cx
je 0x415514
push 0
mov ecx, esi
call fcn.00416b10
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov dword [esi + 0x5550], edx
mov edx, dword [ebp - 4]
mov dword [esi + 0x5554], eax
mov dword [esi + 0x5558], ecx
mov dword [esi + 0x555c], edx
push 0
call fcn.004b6400
add esp, 4
test al, al
je 0x415712
mov ebx, dword [esi + 0x40f0]
mov esi, dword [esi + 0x410c]
xor eax, eax
mov edi, ebx
sar edi, 0x18
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
test edi, edi
je 0x41556f
test esi, 0xff000000
jne 0x4155df
lea eax, [ebp - 0x90]
push 0
push eax
call fcn.004b8d90
mov ecx, dword [eax]
mov edx, dword [eax + 4]
add esp, 8
mov dword [ebp - 0x80], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x7c], edx
test edi, edi
jne 0x4155b6
test ecx, ecx
jg 0x41559e
lea ecx, [edi + 0x50]
jmp 0x4155ab
cmp ecx, 0x3e8
jle 0x4155ab
mov ecx, 0x3e8
and ecx, 0xffffff
mov ebx, ecx
mov dword [ebp - 0x2c], ebx
test esi, 0xff000000
jne 0x4155df
test eax, eax
jg 0x4155c9
mov eax, 0x19
jmp 0x4155d5
cmp eax, 0x1f4
jle 0x4155d5
mov eax, 0x1f4
and eax, 0xffffff
mov esi, eax
mov dword [ebp - 0x48], esi
mov edi, ebx
sar edi, 0x18
cmp edi, 2
je 0x4155fb
mov eax, esi
and eax, 0xff000000
cmp eax, 0x2000000
jne 0x4156a5
push 0
lea ecx, [ebp - 0x10]
push ecx
lea edx, [ebp - 0x70]
push 0
push edx
call fcn.0044c7f0
add esp, 0x10
cmp edi, 2
mov edi, dword [ebp - 8]
jne 0x41564c
mov ecx, dword [ebp - 0x54]
sub ecx, dword [ebp - 0x5c]
mov eax, edi
sub eax, dword [ebp - 0x10]
imul eax, eax, 0x64
cdq
idiv ecx
test eax, eax
jg 0x415633
mov eax, 0x32
jmp 0x41563d
cmp eax, 0x64
jle 0x41563d
mov eax, 0x64
and eax, 0xffffff
or eax, 0x2000000
mov ebx, eax
mov dword [ebp - 0x2c], ebx
mov ecx, dword [ebp - 4]
mov edx, esi
and edx, 0xff000000
cmp edx, 0x2000000
jne 0x4156ab
mov esi, dword [ebp - 0x50]
sub esi, dword [ebp - 0x58]
mov eax, ecx
sub eax, dword [ebp - 0xc]
imul eax, eax, 0x64
cdq
idiv esi
test eax, eax
jg 0x41568a
mov eax, 0x1e
and eax, 0xffffff
or eax, 0x2000000
mov esi, eax
mov dword [ebp - 0x48], esi
jmp 0x4156ab
cmp eax, 0x64
jle 0x415694
mov eax, 0x64
and eax, 0xffffff
or eax, 0x2000000
mov esi, eax
mov dword [ebp - 0x48], esi
jmp 0x4156ab
mov ecx, dword [ebp - 4]
mov edi, dword [ebp - 8]
and ebx, 0xff000000
cmp ebx, 0x1000000
jne 0x4156ca
sub edi, dword [ebp - 0x10]
mov eax, edi
je 0x4156ca
and eax, 0xffffff
or eax, ebx
mov dword [ebp - 0x2c], eax
and esi, 0xff000000
cmp esi, 0x1000000
jne 0x4156e9
sub ecx, dword [ebp - 0xc]
mov eax, ecx
je 0x4156e9
and eax, 0xffffff
or eax, esi
mov dword [ebp - 0x48], eax
sub esp, 0x1c
mov edi, esp
mov ecx, 7
lea esi, [ebp - 0x48]
rep movsd dword es:[edi], dword [esi]
sub esp, 0x1c
mov edi, esp
mov ecx, 7
lea esi, [ebp - 0x2c]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x52fe34]
call fcn.0045fc20
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4