Function at 0x781cec
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd4
push ebx
push esi
push edi
mov byte [ebp - 0x11], cl
mov dword [ebp - 8], edx
xor ebx, ebx
mov eax, dword [0x7a7124]
cmp byte [eax], 0
je 0x782069
push 0x11
call sub.user32.dll_GetAsyncKeyState
test ax, ax
je 0x781d27
push 0x10
call sub.user32.dll_GetAsyncKeyState
test ax, ax
jne 0x782069
mov dword [ebp - 0x10], 0x5f5e0ff
mov eax, dword [ebp - 8]
mov edx, dword [eax]
mov dword [ebp - 0x28], edx
mov edx, dword [eax + 4]
mov dword [ebp - 0x24], edx
mov eax, dword [0x7a6efc]
cmp byte [eax], 0
je 0x781d7d
fld dword [0x782074]
mov eax, dword [0x7a640c]
fdiv qword [eax]
call fcn.00404d4c
mov dword [ebp - 0xc], eax
push ebp
mov eax, dword [0x7a6ab4]
call fcn.00781ca4
pop ecx
test al, al
je 0x781d7d
mov eax, dword [0x7a6ab4]
mov edx, dword [eax]
mov dword [ebp - 0x28], edx
mov edx, dword [eax + 4]
mov dword [ebp - 0x24], edx
mov bl, 1
test bl, bl
jne 0x781e3c
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edi, dword [eax + 8]
dec edi
test edi, edi
jl 0x781e3c
inc edi
mov dword [ebp - 4], 0
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
call fcn.00447f1c
mov esi, eax
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
call fcn.00447f1c
call fcn.0063a198
test al, al
je 0x781e32
cmp byte [ebp - 0x11], 0
je 0x781ddb
cmp byte [ebp - 0x11], 0
je 0x781e32
cmp byte [esi + 0x15], 0
jne 0x781e32
movzx eax, byte [esi]
cmp al, 2
je 0x781de6
cmp al, 8
jne 0x781e32
push ebp
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
call fcn.00447f1c
call fcn.00781af4
pop ecx
mov dword [ebp - 0xc], eax
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
call fcn.00447f1c
lea edx, [ebp - 0x20]
call fcn.006494f4
push ebp
lea eax, [ebp - 0x20]
call fcn.00781ca4
pop ecx
test al, al
je 0x781e32
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
mov bl, 1
inc dword [ebp - 4]
dec edi
jne 0x781da0
test bl, bl
jne 0x78205b
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edi, dword [eax + 8]
dec edi
test edi, edi
jl 0x78205b
inc edi
mov dword [ebp - 4], 0
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
call fcn.00447f1c
mov esi, eax
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
call fcn.00447f1c
call fcn.0063a198
test al, al
je 0x782051
cmp byte [ebp - 0x11], 0
je 0x781ea6
cmp byte [ebp - 0x11], 0
je 0x782051
cmp byte [esi + 0x15], 0
jne 0x782051
movzx eax, byte [esi]
cmp al, 6
je 0x781eb1
cmp al, 4
jne 0x781f1a
push ebp
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
call fcn.00447f1c
call fcn.00781af4
pop ecx
mov dword [ebp - 0xc], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x781f1a
inc eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x18], 0
mov edx, dword [ebp - 0x18]
mov eax, dword [esi + 0x18]
call fcn.00447f1c
mov edx, dword [eax]
mov dword [ebp - 0x20], edx
mov edx, dword [eax + 4]
mov dword [ebp - 0x1c], edx
push ebp
lea eax, [ebp - 0x20]
call fcn.00781ca4
pop ecx
test al, al
je 0x781f12
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
mov bl, 1
inc dword [ebp - 0x18]
dec dword [ebp - 0x2c]
jne 0x781ee0
cmp byte [esi], 5
jne 0x782051
push ebp
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
call fcn.00447f1c
call fcn.00781af4
pop ecx
mov dword [ebp - 0xc], eax
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
call fcn.00447f1c
mov edx, dword [eax + 1]
mov dword [ebp - 0x20], edx
mov edx, dword [eax + 5]
mov dword [ebp - 0x1c], edx
push ebp
lea eax, [ebp - 0x20]
call fcn.00781ca4
pop ecx
test al, al
je 0x781f73
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
mov bl, 1
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
call fcn.00447f1c
mov eax, dword [eax + 0x1f]
push eax
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
call fcn.00447f1c
pop edx
cmp edx, dword [eax + 0x11]
je 0x782051
fild dword [esi + 0x1f]
fdiv dword [0x782078]
add esp, 0xfffffff8
fstp qword [esp]
wait
fld dword [esi + 9]
fsub dword [esi + 0xd]
fdiv dword [0x78207c]
fsubr dword [esi + 9]
add esp, 0xfffffff8
fstp qword [esp]
wait
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
call fcn.00447f1c
lea edx, [ebp - 0x20]
call fcn.00643188
push ebp
lea eax, [ebp - 0x20]
call fcn.00781ca4
pop ecx
test al, al
je 0x781ff8
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
mov bl, 1
fild dword [esi + 0x11]
fdiv dword [0x782078]
add esp, 0xfffffff8
fstp qword [esp]
wait
fld dword [esi + 9]
fsub dword [esi + 0xd]
fdiv dword [0x78207c]
fsubr dword [esi + 9]
add esp, 0xfffffff8
fstp qword [esp]
wait
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
call fcn.00447f1c
lea edx, [ebp - 0x20]
call fcn.00643188
push ebp
lea eax, [ebp - 0x20]
call fcn.00781ca4
pop ecx
test al, al
je 0x782051
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
mov bl, 1
inc dword [ebp - 4]
dec edi
jne 0x781e5f
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x28]
mov dword [eax], edx
mov edx, dword [ebp - 0x24]
mov dword [eax + 4], edx
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret