Function at 0x10093730
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0xc8
mov eax, dword [0x1010502c]
xor eax, ebp
mov dword [ebp - 4], eax
movss xmm0, dword [0x101077d4]
mov eax, ecx
addss xmm0, dword [0x10105814]
push esi
push edi
mov dword [ebp - 0xc8], eax
comiss xmm0, dword [0x100ff29c]
movss dword [0x101077d4], xmm0
jbe 0x1009378b
mov dword [0x101077d4], 0
mov edi, dword [eax]
mov esi, dword [0x100ecac4]
push 0x54
push 0
mov eax, dword [edi + esi + 8]
movq xmm0, qword [edi + esi]
mov dword [ebp - 0xbc], eax
lea eax, [ebp - 0xb8]
push eax
movq qword [ebp - 0xc4], xmm0
call sub.VCRUNTIME140.dll_memset
movq xmm0, qword [edi + esi]
add esp, 0xc
movss xmm3, dword [ebp - 0xc4]
movss xmm2, dword [ebp - 0xc0]
movss xmm1, dword [ebp - 0xbc]
subss xmm1, dword [0x100ff328]
movq qword [ebp - 0x5c], xmm0
mov eax, dword [edi + esi + 8]
movss xmm4, dword [ebp - 0x5c]
movss xmm5, dword [ebp - 0x58]
subss xmm3, xmm4
movss xmm0, dword [ebp - 0xc8]
subss xmm2, xmm5
mov dword [ebp - 0x54], eax
movss xmm6, dword [ebp - 0x54]
subss xmm1, xmm6
movss dword [ebp - 0x34], xmm0
movss dword [ebp - 0x40], xmm3
xorps xmm0, xmm0
movss dword [ebp - 0x3c], xmm2
mulss xmm2, xmm2
mov byte [ebp - 0xb], 1
mulss xmm3, xmm3
movss dword [ebp - 0x38], xmm1
mulss xmm1, xmm1
addss xmm2, xmm3
addss xmm2, xmm1
ucomiss xmm2, xmm0
lahf
test ah, 0x44
jp 0x1009384d
mov byte [ebp - 0xb], 0
mov eax, dword [0x10107740]
lea edx, [ebp - 0xb8]
movss xmm0, dword [ebp - 0xc8]
push edx
mov dword [ebp - 0x18], 0
lea edx, [ebp - 0x5c]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x10], 0
mov byte [ebp - 0xc], 1
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
movss dword [ebp - 0x50], xmm4
movss dword [ebp - 0x4c], xmm5
movss dword [ebp - 0x48], xmm6
movss dword [ebp - 0x44], xmm0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x5c], vtable.CTraceFilter.0
mov dword [ebp - 0x54], edi
mov ecx, dword [eax + 0x10]
push edx
push 0x4600400b
lea edx, [ebp - 0x50]
mov eax, dword [ecx]
push edx
call dword [eax + 0x14]
cmp byte [0x101077d3], 0
jne 0x10093980
cmp byte [0x101077d2], 0
je 0x10093980
movss xmm0, dword [0x100ff1b8]
comiss xmm0, dword [0x101077d4]
jb 0x10093980
movss xmm0, dword [0x100ff0cc]
comiss xmm0, dword [ebp - 0x8c]
jb 0x10093ac7
mov eax, dword [0x10107740]
mov ch, 0x5e
mov cl, 0x34
mov dl, 0x2b
mov dh, 0x2e
xor cl, ch
xor dl, ch
xor dh, ch
mov esi, dword [eax + 4]
mov al, 0x75
xor al, ch
mov byte [ebp - 0xc0], ch
mov ah, 0x33
mov byte [ebp - 0xba], 0
xor ah, ch
mov byte [ebp - 0xbe], cl
mov byte [ebp - 0xbf], al
lea ecx, [ebp - 0xbf]
mov byte [ebp - 0xbd], dl
mov byte [ebp - 0xbc], ah
mov byte [ebp - 0xbb], dh
mov word [ebp - 0xba], 0x100
mov eax, dword [esi]
push ecx
mov ecx, esi
mov eax, dword [eax + 0x19c]
call eax
mov byte [0x101077d1], 0
movss xmm0, dword [0x100ff0cc]
comiss xmm0, dword [ebp - 0x8c]
jb 0x10093ac7
mov eax, dword [0x10107740]
mov edi, dword [0x1010552c]
push edi
mov ecx, dword [eax + 0x60]
mov eax, dword [ecx]
mov eax, dword [eax + 0x80]
call eax
push edi
test eax, eax
jne 0x100939c3
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x100939e9
jmp 0x10093ac7
mov eax, dword [0x10107740]
mov esi, dword [eax + 0x60]
mov ecx, esi
mov eax, dword [esi]
mov eax, dword [eax + 0x80]
call eax
mov ecx, dword [esi]
push eax
mov edx, dword [ecx + 0x2c]
mov ecx, esi
call edx
test al, al
jne 0x10093ac7
cmp byte [0x101077d1], 0
jne 0x10093ac7
mov eax, dword [0x10107740]
mov ch, 0x27
mov cl, 0x4d
mov dl, 0x52
mov dh, 0x57
xor cl, ch
xor dl, ch
xor dh, ch
mov esi, dword [eax + 4]
mov al, 0xc
xor al, ch
mov byte [ebp - 0xc0], ch
mov ah, 0x4a
mov byte [ebp - 0xba], 0
xor ah, ch
mov byte [ebp - 0xbe], cl
mov byte [ebp - 0xbf], al
lea ecx, [ebp - 0xbf]
mov byte [ebp - 0xbd], dl
mov byte [ebp - 0xbc], ah
mov byte [ebp - 0xbb], dh
mov word [ebp - 0xba], 0x100
mov eax, dword [esi]
push ecx
mov ecx, esi
mov eax, dword [eax + 0x19c]
call eax
mov eax, dword [0x10107740]
mov ch, 1
mov cl, 0x6b
mov dl, 0x74
mov dh, 0x71
xor cl, ch
xor dl, ch
xor dh, ch
mov esi, dword [eax + 4]
mov al, 0x2c
xor al, ch
mov byte [ebp - 0xc0], ch
mov ah, 0x6c
mov byte [ebp - 0xba], 0
xor ah, ch
mov byte [ebp - 0xbe], cl
mov byte [ebp - 0xbf], al
lea ecx, [ebp - 0xbf]
mov byte [ebp - 0xbd], dl
mov byte [ebp - 0xbc], ah
mov byte [ebp - 0xbb], dh
mov word [ebp - 0xba], 0x100
mov eax, dword [esi]
push ecx
mov ecx, esi
mov eax, dword [eax + 0x19c]
call eax
mov byte [0x101077d1], 1
mov eax, dword [ebx + 8]
test byte [eax + 0x24], 2
je 0x10093c45
mov eax, dword [0x10107740]
mov edi, dword [0x1010552c]
push edi
mov ecx, dword [eax + 0x60]
mov eax, dword [ecx]
mov eax, dword [eax + 0x80]
call eax
push edi
test eax, eax
jne 0x10093afd
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jmp 0x10093b1d
mov eax, dword [0x10107740]
mov esi, dword [eax + 0x60]
mov ecx, esi
mov eax, dword [esi]
mov eax, dword [eax + 0x80]
call eax
mov ecx, dword [esi]
push eax
mov edx, dword [ecx + 0x2c]
mov ecx, esi
call edx
test al, al
je 0x10093c45
mov ecx, dword [ebp - 0xc8]
mov eax, dword [0x100f50a4]
mov ecx, dword [ecx]
test byte [eax + ecx], 1
je 0x10093b57
cmp byte [0x101077d0], 0
mov byte [0x101077d3], 1
sete byte [0x101077d0]
mov byte [0x101077d2], 1
jmp 0x10093c45
movss xmm0, dword [0x100ff1b8]
comiss xmm0, dword [0x101077d4]
jb 0x10093c45
cmp byte [0x101077d0], 0
je 0x10093bd9
mov eax, dword [0x10107740]
mov ch, 0x75
xor dl, dl
mov cl, 0x1f
mov dh, 5
xor cl, ch
xor dh, ch
mov esi, dword [eax + 4]
mov al, 0x58
mov byte [ebp - 0xba], dl
xor al, ch
mov ah, 0x18
mov byte [ebp - 0xc0], ch
xor ah, ch
mov byte [ebp - 0xbe], cl
xor dl, ch
mov byte [ebp - 0xbf], al
mov byte [ebp - 0xbd], dl
lea ecx, [ebp - 0xbf]
mov byte [ebp - 0xbc], ah
mov byte [ebp - 0xbb], dh
mov word [ebp - 0xba], 0x100
mov eax, dword [esi]
push ecx
mov ecx, esi
mov eax, dword [eax + 0x19c]
call eax
mov eax, dword [0x10107740]
mov ch, 0x6f
mov cl, 5
mov dl, 0x1a
mov dh, 0x1f
xor cl, ch
xor dl, ch
xor dh, ch
mov esi, dword [eax + 4]
mov al, 0x42
xor al, ch
mov byte [ebp - 0xc0], ch
mov ah, 2
mov byte [ebp - 0xba], 0
xor ah, ch
mov byte [ebp - 0xbe], cl
mov byte [ebp - 0xbf], al
lea ecx, [ebp - 0xbf]
mov byte [ebp - 0xbd], dl
mov byte [ebp - 0xbc], ah
mov byte [ebp - 0xbb], dh
mov word [ebp - 0xba], 0x100
mov eax, dword [esi]
push ecx
mov ecx, esi
mov eax, dword [eax + 0x19c]
call eax
mov byte [0x101077d3], 0
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.100d8a78
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4