Function at 0x4590f0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
push esi
push edi
mov esi, ecx
xor edi, edi
cmp dword [esi + 0x7620], edi
jne 0x459113
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jge 0x459113
mov ecx, esi
call fcn.0044c8f8
cmp dword [esi + 0x1b88], edi
je 0x459129
mov eax, dword [esi + 0x1b94]
mov dword [esi + 0x1ba0], eax
jmp 0x45913d
cmp dword [esi + 0x1ba8], edi
je 0x45913d
mov eax, dword [esi + 0x1bac]
mov dword [esi + 0x1bb8], eax
cmp dword [esi + 0x1bc4], edi
je 0x459153
mov eax, dword [esi + 0x1bcc]
mov dword [esi + 0x1bd8], eax
jmp 0x459167
cmp dword [esi + 0x1be0], edi
je 0x459167
mov eax, dword [esi + 0x1be4]
mov dword [esi + 0x1bf0], eax
cmp dword [esi + 0x1bf8], edi
je 0x45917d
mov eax, dword [esi + 0x1c00]
mov dword [esi + 0x1c0c], eax
jmp 0x459191
cmp dword [esi + 0x1c14], edi
je 0x459191
mov eax, dword [esi + 0x1c18]
mov dword [esi + 0x1c24], eax
cmp dword [esi + 0x1c2c], edi
je 0x4591a7
mov eax, dword [esi + 0x1c34]
mov dword [esi + 0x1c40], eax
jmp 0x4591bb
cmp dword [esi + 0x1c48], edi
je 0x4591bb
mov eax, dword [esi + 0x1c4c]
mov dword [esi + 0x1c58], eax
cmp dword [esi + 0x1c60], edi
je 0x4591cf
mov eax, dword [esi + 0x1c64]
mov dword [esi + 0x1c70], eax
mov eax, dword [esi + 0x1af4]
cmp eax, edi
je 0x4591e5
mov ecx, dword [esi + 0x1af8]
mov dword [esi + 0x1b04], ecx
cmp dword [esi + 0x1c78], edi
je 0x4591f9
mov ecx, dword [esi + 0x1c7c]
mov dword [esi + 0x1c88], ecx
cmp dword [esi + 0x1b34], edi
je 0x45920d
mov ecx, dword [esi + 0x1b38]
mov dword [esi + 0x1b44], ecx
cmp dword [esi + 0x1c90], edi
je 0x459221
mov ecx, dword [esi + 0x1c94]
mov dword [esi + 0x1ca0], ecx
xor ebx, ebx
inc ebx
cmp dword [esi + 0x1b14], edi
je 0x459242
mov ecx, dword [esi + 0x1b1c]
mov dword [esi + 0x1b28], ecx
cmp eax, edi
je 0x459242
mov dword [esi + 0x1ce2c], ebx
cmp dword [esi + 0x1b4c], edi
je 0x45927f
mov ecx, esi
mov dword [esi + 0x1cdbc], edi
call fcn.0044d23d
lea eax, [esi + 0x1b54]
xor edx, edx
cmp dword [eax], edi
jbe 0x459273
lea ecx, [esi + 0x1b78]
mov dword [ecx], ebx
inc edx
add ecx, 4
cmp edx, dword [eax]
jb 0x459269
mov dword [esi + 0x1cdc4], ebx
mov dword [esi + 0x380c], edi
cmp dword [esi + 0x1ca8], edi
je 0x4592a1
mov eax, dword [esi + 0x1cac]
mov dword [esi + 0x1cb8], eax
cmp dword [esi + 0x1c60], edi
je 0x4592a1
mov dword [esi + 0x1ce30], ebx
cmp dword [esi + 0x1cc0], edi
je 0x4592b5
mov eax, dword [esi + 0x1cc4]
mov dword [esi + 0x1cc8], eax
cmp dword [esi + 0x1cf0], edi
je 0x459386
cmp dword [esi + 0x1cf8], edi
jne 0x4592f9
cmp dword [esi + 0x1cfc], edi
jne 0x4592f9
xor ecx, ecx
cmp dword [esi + 0x1d08], edi
jbe 0x4592f1
lea eax, [esi + 0x1d18]
fldz
inc ecx
fstp dword [eax]
add eax, 0xc
cmp ecx, dword [esi + 0x1d08]
jb 0x4592e1
mov dword [esi + 0x1cf4], edi
jmp 0x459326
xor ecx, ecx
cmp dword [esi + 0x1d08], edi
jbe 0x459326
lea eax, [esi + 0x1d14]
fld dword [eax + 0x600]
inc ecx
fstp dword [eax]
add eax, 0xc
fld dword [eax + 0x5f0]
fstp dword [eax - 0x10]
cmp ecx, dword [esi + 0x1d08]
jb 0x459309
mov eax, dword [esi + 0x2914]
cmp eax, edi
je 0x459353
xor ecx, ecx
cmp eax, edi
jbe 0x459353
lea eax, [esi + 0x2920]
fld dword [eax - 8]
inc ecx
fstp dword [eax]
add eax, 0x10
fld dword [eax - 0x14]
fstp dword [eax - 0xc]
cmp ecx, dword [esi + 0x2914]
jb 0x45933c
mov eax, dword [esi + 0x2958]
cmp eax, edi
je 0x459380
xor ecx, ecx
cmp eax, edi
jbe 0x459380
lea eax, [esi + 0x2964]
fld dword [eax - 8]
inc ecx
fstp dword [eax]
add eax, 0x10
fld dword [eax - 0x14]
fstp dword [eax - 0xc]
cmp ecx, dword [esi + 0x2958]
jb 0x459369
mov dword [esi + 0x2910], edi
push 0xffffffffffffffff
mov ecx, esi
call fcn.0044a570
push ebx
push ebx
push edi
mov ecx, esi
call fcn.004563af
cmp dword [esi + 0x1cf8], edi
jne 0x4593ac
cmp dword [esi + 0x1cfc], edi
jne 0x4593ac
push ebx
jmp 0x4593ad
push edi
mov ecx, esi
call fcn.004471b2
mov ecx, esi
call fcn.00448dd1
mov ecx, esi
call fcn.004491ed
mov ecx, esi
call fcn.0044d2f4
mov ecx, esi
call fcn.00445d7b
mov ecx, esi
call fcn.00445d98
mov ecx, esi
call fcn.00445dbc
mov ecx, esi
call fcn.0044ec1a
mov ecx, esi
call fcn.0044ecdd
mov ecx, esi
call fcn.00449930
mov ecx, esi
call fcn.004443e0
mov ecx, esi
call fcn.004454a5
mov ecx, esi
call fcn.00445aa5
push edi
mov ecx, esi
call fcn.00454076
pop edi
pop esi
pop ebx
ret