Function at 0x5ad090
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x72f903
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x78
mov eax, dword [0x79ce44]
push esi
test eax, eax
push edi
mov esi, ecx
je 0x5ad4a7
mov eax, dword [esi + 0x3dc]
test eax, eax
jne 0x5ad4a7
lea eax, [ebp - 0x48]
push 0x27f
push eax
mov ecx, 0x8365d0
call fcn.006e3740
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 4], 0
test eax, eax
jle 0x5ad10a
mov eax, dword [esi + 0x574]
mov ecx, dword [esi + 0x578]
cmp eax, ecx
jle 0x5ad101
mov dword [esi + 0x578], eax
add eax, 4
mov dword [esi + 0x574], eax
mov edi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x10
call edi
xor ecx, ecx
mov cl, ah
test cl, cl
je 0x5ad245
mov eax, dword [0x79ce44]
test eax, eax
jle 0x5ad131
fld dword [0x736758]
jmp 0x5ad137
fld dword [0x7454b8]
mov eax, dword [esi + 0x294]
mov dword [ebp + 8], 0x41200000
test eax, eax
je 0x5ad14f
mov dword [ebp + 8], 0x42280000
mov edx, dword [esi + 0xb8]
fld dword [edx + 0x44]
fsub st(1)
fstp dword [0x78854c]
mov eax, dword [esi + 0x298]
test eax, eax
fstp st(0)
je 0x5ad1ae
movsx eax, word [esi + 0x2aa]
mov dword [ebp + 8], eax
fild dword [ebp + 8]
fld dword [0x78854c]
fcomp st(1)
fnstsw ax
test ah, 1
je 0x5ad19d
fstp dword [0x78854c]
movsx ecx, word [esi + 0x2a8]
mov dword [ebp + 8], ecx
fild dword [ebp + 8]
jmp 0x5ad206
movsx ecx, word [esi + 0x2a8]
fstp st(0)
mov dword [ebp + 8], ecx
fild dword [ebp + 8]
jmp 0x5ad206
fld dword [0x745704]
fsub dword [ebp + 8]
fld dword [0x78854c]
fcomp st(1)
fnstsw ax
test ah, 1
je 0x5ad1ce
fstp dword [0x78854c]
jmp 0x5ad1d0
fstp st(0)
push 0x11
call edi
xor edx, edx
mov dl, ah
test dl, dl
je 0x5ad1fd
mov eax, dword [esi + 0xb8]
fld dword [eax + 0x4c]
fcomp dword [0x788544]
fnstsw ax
test ah, 0x41
je 0x5ad1fd
fld dword [ebp + 8]
fsub dword [0x745700]
jmp 0x5ad206
fld dword [ebp + 8]
fsub dword [0x745760]
fld dword [0x78854c]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x5ad22f
fstp dword [0x78854c]
fld dword [0x78854c]
mov ecx, dword [esi + 0xb8]
fstp dword [ecx + 0x44]
jmp 0x5ad49b
mov ecx, dword [esi + 0xb8]
fstp st(0)
fld dword [0x78854c]
fstp dword [ecx + 0x44]
jmp 0x5ad49b
mov eax, dword [ebp + 8]
test eax, eax
je 0x5ad25c
push 0x11
call edi
xor edx, edx
mov dl, ah
test dl, dl
je 0x5ad49b
cmp dword [0x839c5c], 1
jne 0x5ad2c0
mov eax, dword [0x79ce44]
mov ecx, dword [0x7d6994]
test eax, eax
mov dword [0x839c64], 1
jle 0x5ad29f
test ecx, ecx
je 0x5ad2b7
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 0x5ad49f
test ecx, ecx
je 0x5ad2b7
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 0x5ad49f
mov eax, dword [0x79ce44]
test eax, eax
jle 0x5ad2d1
fld dword [0x74575c]
jmp 0x5ad2d7
fld dword [0x745758]
mov ecx, dword [esi + 0xb8]
mov edx, dword [0x788548]
mov dword [ebp + 8], edx
fld dword [ecx + 0x4c]
fsub st(1)
fstp dword [0x788550]
mov eax, dword [esi + 0x294]
test eax, eax
fstp st(0)
je 0x5ad305
mov eax, dword [0x788544]
mov dword [ebp + 8], eax
lea ecx, [ebp - 0x84]
push 0x1b9
push ecx
mov ecx, 0x8365d0
call fcn.006e3740
mov eax, dword [ebp - 0x78]
mov byte [ebp - 4], 1
test eax, eax
jg 0x5ad3e7
mov ecx, 0x8365d0
call fcn.006d8ff0
cmp eax, 0xfcf
jne 0x5ad3e7
mov edx, dword [esi + 0xb4]
mov ecx, dword [edx + 0x3c]
cmp dword [ecx + 0x5c], 6
jne 0x5ad3e7
mov eax, dword [esi + 0x298]
test eax, eax
jne 0x5ad3f1
push 0x14e
call fcn.0058cd90
test eax, eax
jne 0x5ad3e7
fld dword [0x788550]
fcomp dword [0x788540]
fnstsw ax
test ah, 1
je 0x5ad38b
mov eax, dword [0x788540]
mov dword [0x788550], eax
fld dword [ebp + 8]
fmul dword [0x7368f0]
fld dword [0x788550]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x5ad3ab
fstp dword [0x788550]
jmp 0x5ad3ad
fstp st(0)
fld dword [0x788550]
fcomp dword [ebp + 8]
fnstsw ax
test ah, 0x41
jne 0x5ad480
mov ecx, dword [esi + 0xb8]
fld dword [ecx + 0x44]
fcomp dword [0x745754]
fnstsw ax
test ah, 0x41
jne 0x5ad480
mov dword [ecx + 0x44], 0xc2480000
jmp 0x5ad480
mov eax, dword [esi + 0x298]
test eax, eax
je 0x5ad444
movsx ecx, word [esi + 0x29c]
mov dword [ebp + 8], ecx
fild dword [ebp + 8]
fld dword [0x788550]
fcomp st(1)
fnstsw ax
test ah, 1
je 0x5ad415
fstp dword [0x788550]
jmp 0x5ad417
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 [0x788550]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x5ad47e
fstp dword [0x788550]
jmp 0x5ad480
fld dword [0x788550]
fcomp dword [0x788540]
fnstsw ax
test ah, 1
je 0x5ad463
mov ecx, dword [0x788540]
mov dword [0x788550], ecx
fld dword [0x788550]
fcomp dword [ebp + 8]
fnstsw ax
test ah, 0x41
jne 0x5ad480
mov edx, dword [ebp + 8]
mov dword [0x788550], edx
jmp 0x5ad480
fstp st(0)
fld dword [0x788550]
mov eax, dword [esi + 0xb8]
fstp dword [eax + 0x4c]
mov ecx, dword [ebp - 0x54]
push ecx
call fcn.006ffa16
add esp, 4
mov edx, dword [ebp - 0x18]
push edx
call fcn.006ffa16
add esp, 4
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4