Function at 0x4b2e00
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x28
mov eax, dword [0x5681d8]
push ebx
mov eax, dword [eax + 0x1b0]
push esi
cmp eax, 4
push edi
mov esi, ecx
push ebp
je 0x4b2e2c
cmp eax, 6
je 0x4b2e2c
cmp eax, 7
je 0x4b2e2c
cmp eax, 5
jne 0x4b3123
mov ecx, dword [0x5681d8]
call fcn.004e9490
test eax, eax
jne 0x4b3123
mov eax, dword [0x5681d8]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 0x8c0]
test edx, edx
je 0x4b3123
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ecx, dword [esi + 0x20]
cmp eax, dword [ecx + 4]
jne 0x4b3123
mov ecx, 0x56d5f8
call fcn.00421440
test eax, eax
jne 0x4b3123
mov ecx, 0x56d5f8
call fcn.00421420
test eax, eax
je 0x4b2e99
mov ecx, 0x56d5f8
call fcn.00421420
cmp eax, esi
jne 0x4b3123
xor edi, edi
mov eax, dword [esi + 0x374]
cmp eax, edi
jne 0x4b3123
lea eax, [esp + 0x28]
mov ecx, dword [esi + 0x20]
push eax
mov edx, dword [ecx + 4]
push edx
call dword [sym.imp.USER32.dll_GetWindowRect]
lea ecx, [esp + 0x20]
mov ebx, dword [sym.imp.USER32.dll_GetCursorPos]
push ecx
call ebx
xor bx, bx
mov eax, dword [0x5681d8]
push 1
nop
mov ebp, dword [eax + 0xc]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jl 0x4b3101
push 2
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jl 0x4b3101
mov ecx, dword [ebp + 0x8c4]
mov eax, dword [esp + 0x28]
add eax, ecx
mov edx, dword [esp + 0x20]
cmp eax, edx
jle 0x4b2f10
mov di, 0xffff
jmp 0x4b2f22
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x20]
sub eax, ecx
cmp eax, edx
jge 0x4b2f22
mov di, 1
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
add eax, ecx
cmp eax, edx
jle 0x4b2f36
mov bx, 0xffff
jmp 0x4b2f48
mov eax, dword [esp + 0x34]
sub eax, ecx
mov ecx, dword [esp + 0x24]
cmp eax, ecx
jge 0x4b2f48
mov bx, 1
test di, di
jne 0x4b2f56
test bx, bx
je 0x4b3101
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, eax
mov edx, dword [esi + 0x360]
sub ecx, edx
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x364]
test eax, eax
jne 0x4b2f88
mov dword [esi + 0x364], 1
mov dword [esp + 0x10], 0x3f800000
jmp 0x4b2ff0
mov eax, dword [ebp + 0x8d0]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0
fild qword [esp + 0x14]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0
fild qword [esp + 0x14]
fdivr st(1)
fst st(1)
call fcn.005351bc
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
mov dword [esp + 0x14], 0
fstp dword [esp + 0x10]
fsub dword [esp + 0x10]
fcomp dword [0x55159c]
fnstsw ax
test ah, 1
jne 0x4b2fe4
mov dword [esp + 0x14], 0x3f000000
fld dword [esp + 0x14]
fadd dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [ebp + 0x8cc]
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 1
je 0x4b300b
mov eax, dword [ebp + 0x8cc]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
test eax, eax
jle 0x4b3101
fld dword [esp + 0x10]
fmul dword [0x5515a4]
cmp di, 0xffff
jne 0x4b304c
fstp dword [esp + 0x14]
mov ecx, dword [esi + 0x100]
sub esp, 4
fld dword [ecx + 0x118]
fsub dword [esp + 0x14]
fld dword [ecx + 0x114]
fsub dword [esp + 0x14]
fxch st(1)
jmp 0x4b3075
fstp dword [esp + 0x14]
cmp di, 1
jne 0x4b3083
mov ecx, dword [esi + 0x100]
sub esp, 4
fld dword [ecx + 0x118]
fadd dword [esp + 0x14]
fld dword [ecx + 0x114]
fadd dword [esp + 0x14]
fxch st(1)
fstp dword [esp]
sub esp, 4
fstp dword [esp]
call fcn.004656c0
cmp bx, 0xffff
jne 0x4b30aa
mov ecx, dword [esi + 0x100]
sub esp, 4
fld dword [ecx + 0x118]
fsub dword [esp + 0x18]
fld dword [ecx + 0x114]
fadd dword [esp + 0x18]
fxch st(1)
jmp 0x4b30cf
cmp bx, 1
jne 0x4b30dd
mov ecx, dword [esi + 0x100]
sub esp, 4
fld dword [ecx + 0x118]
fadd dword [esp + 0x18]
fld dword [ecx + 0x114]
fsub dword [esp + 0x18]
fxch st(1)
fstp dword [esp]
sub esp, 4
fstp dword [esp]
call fcn.004656c0
push 1
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x20]
mov ecx, dword [esi + 0x35c]
test ecx, ecx
je 0x4b30f7
push 1
mov eax, dword [ecx]
call dword [eax + 0x20]
mov eax, dword [esp + 0x1c]
mov dword [esi + 0x360], eax
test di, di
jne 0x4b3115
test bx, bx
jne 0x4b3115
mov dword [esi + 0x364], 0
mov eax, dword [esi + 0x364]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x28
ret
xor eax, eax
pop ebp
mov dword [esi + 0x364], 0
pop edi
pop esi
pop ebx
add esp, 0x28
ret