Function at 0x5b07b0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x733a83
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x78
mov eax, dword [0x7a1244]
push esi
test eax, eax
push edi
mov esi, ecx
je 0x5b0bc7
mov eax, dword [esi + 0x3dc]
test eax, eax
jne 0x5b0bc7
lea eax, [ebp - 0x48]
push 0x27f
push eax
mov ecx, 0x83a9e0
call fcn.006e76b0
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 4], 0
test eax, eax
jle 0x5b082a
mov eax, dword [esi + 0x578]
mov ecx, dword [esi + 0x57c]
cmp eax, ecx
jle 0x5b0821
mov dword [esi + 0x57c], eax
add eax, 4
mov dword [esi + 0x578], eax
mov edi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x10
call edi
xor ecx, ecx
mov cl, ah
test cl, cl
je 0x5b0965
mov eax, dword [0x7a1244]
test eax, eax
jle 0x5b0851
fld dword [0x73a758]
jmp 0x5b0857
fld dword [0x749550]
mov eax, dword [esi + 0x294]
mov dword [ebp + 8], 0x41200000
test eax, eax
je 0x5b086f
mov dword [ebp + 8], 0x42280000
mov edx, dword [esi + 0xb8]
fld dword [edx + 0x44]
fsub st(1)
fstp dword [0x78c91c]
mov eax, dword [esi + 0x298]
test eax, eax
fstp st(0)
je 0x5b08ce
movsx eax, word [esi + 0x2aa]
mov dword [ebp + 8], eax
fild dword [ebp + 8]
fld dword [0x78c91c]
fcomp st(1)
fnstsw ax
test ah, 1
je 0x5b08bd
fstp dword [0x78c91c]
movsx ecx, word [esi + 0x2a8]
mov dword [ebp + 8], ecx
fild dword [ebp + 8]
jmp 0x5b0926
movsx ecx, word [esi + 0x2a8]
fstp st(0)
mov dword [ebp + 8], ecx
fild dword [ebp + 8]
jmp 0x5b0926
fld dword [0x74979c]
fsub dword [ebp + 8]
fld dword [0x78c91c]
fcomp st(1)
fnstsw ax
test ah, 1
je 0x5b08ee
fstp dword [0x78c91c]
jmp 0x5b08f0
fstp st(0)
push 0x11
call edi
xor edx, edx
mov dl, ah
test dl, dl
je 0x5b091d
mov eax, dword [esi + 0xb8]
fld dword [eax + 0x4c]
fcomp dword [0x78c914]
fnstsw ax
test ah, 0x41
je 0x5b091d
fld dword [ebp + 8]
fsub dword [0x749798]
jmp 0x5b0926
fld dword [ebp + 8]
fsub dword [0x7497f8]
fld dword [0x78c91c]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x5b094f
fstp dword [0x78c91c]
fld dword [0x78c91c]
mov ecx, dword [esi + 0xb8]
fstp dword [ecx + 0x44]
jmp 0x5b0bbb
mov ecx, dword [esi + 0xb8]
fstp st(0)
fld dword [0x78c91c]
fstp dword [ecx + 0x44]
jmp 0x5b0bbb
mov eax, dword [ebp + 8]
test eax, eax
je 0x5b097c
push 0x11
call edi
xor edx, edx
mov dl, ah
test dl, dl
je 0x5b0bbb
cmp dword [0x83e06c], 1
jne 0x5b09e0
mov eax, dword [0x7a1244]
mov ecx, dword [0x7dada8]
test eax, eax
mov dword [0x83e074], 1
jle 0x5b09bf
test ecx, ecx
je 0x5b09d7
mov eax, dword [ecx]
push 0
push 0
push 0
push 7
push 0x29
push 0
call dword [eax + 0x90]
mov eax, dword [ebp - 0x18]
push eax
jmp 0x5b0bbf
test ecx, ecx
je 0x5b09d7
mov edx, dword [ecx]
push 0
push 0
push 0
push 6
push 0x29
push 0
call dword [edx + 0x90]
mov eax, dword [ebp - 0x18]
push eax
jmp 0x5b0bbf
mov eax, dword [0x7a1244]
test eax, eax
jle 0x5b09f1
fld dword [0x7497f4]
jmp 0x5b09f7
fld dword [0x7497f0]
mov ecx, dword [esi + 0xb8]
mov edx, dword [0x78c918]
mov dword [ebp + 8], edx
fld dword [ecx + 0x4c]
fsub st(1)
fstp dword [0x78c920]
mov eax, dword [esi + 0x294]
test eax, eax
fstp st(0)
je 0x5b0a25
mov eax, dword [0x78c914]
mov dword [ebp + 8], eax
lea ecx, [ebp - 0x84]
push 0x1b9
push ecx
mov ecx, 0x83a9e0
call fcn.006e76b0
mov eax, dword [ebp - 0x78]
mov byte [ebp - 4], 1
test eax, eax
jg 0x5b0b07
mov ecx, 0x83a9e0
call fcn.006dcf60
cmp eax, 0xfcf
jne 0x5b0b07
mov edx, dword [esi + 0xb4]
mov ecx, dword [edx + 0x3c]
cmp dword [ecx + 0x5c], 6
jne 0x5b0b07
mov eax, dword [esi + 0x298]
test eax, eax
jne 0x5b0b11
push 0x14e
call fcn.0058fca0
test eax, eax
jne 0x5b0b07
fld dword [0x78c920]
fcomp dword [0x78c910]
fnstsw ax
test ah, 1
je 0x5b0aab
mov eax, dword [0x78c910]
mov dword [0x78c920], eax
fld dword [ebp + 8]
fmul dword [0x73a8f0]
fld dword [0x78c920]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x5b0acb
fstp dword [0x78c920]
jmp 0x5b0acd
fstp st(0)
fld dword [0x78c920]
fcomp dword [ebp + 8]
fnstsw ax
test ah, 0x41
jne 0x5b0ba0
mov ecx, dword [esi + 0xb8]
fld dword [ecx + 0x44]
fcomp dword [0x7497ec]
fnstsw ax
test ah, 0x41
jne 0x5b0ba0
mov dword [ecx + 0x44], 0xc2480000
jmp 0x5b0ba0
mov eax, dword [esi + 0x298]
test eax, eax
je 0x5b0b64
movsx ecx, word [esi + 0x29c]
mov dword [ebp + 8], ecx
fild dword [ebp + 8]
fld dword [0x78c920]
fcomp st(1)
fnstsw ax
test ah, 1
je 0x5b0b35
fstp dword [0x78c920]
jmp 0x5b0b37
fstp st(0)
movsx edx, word [esi + 0x29e]
movsx eax, word [esi + 0x29c]
add edx, eax
mov dword [ebp + 8], edx
fild dword [ebp + 8]
fld dword [0x78c920]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x5b0b9e
fstp dword [0x78c920]
jmp 0x5b0ba0
fld dword [0x78c920]
fcomp dword [0x78c910]
fnstsw ax
test ah, 1
je 0x5b0b83
mov ecx, dword [0x78c910]
mov dword [0x78c920], ecx
fld dword [0x78c920]
fcomp dword [ebp + 8]
fnstsw ax
test ah, 0x41
jne 0x5b0ba0
mov edx, dword [ebp + 8]
mov dword [0x78c920], edx
jmp 0x5b0ba0
fstp st(0)
fld dword [0x78c920]
mov eax, dword [esi + 0xb8]
fstp dword [eax + 0x4c]
mov ecx, dword [ebp - 0x54]
push ecx
call fcn.00703996
add esp, 4
mov edx, dword [ebp - 0x18]
push edx
call fcn.00703996
add esp, 4
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4