Function at 0x1000dec5
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x24
cmp byte [0x10020a84], 0
push ebx
push ebp
mov ebp, dword [esp + 0x34]
push esi
push edi
lea edi, [esp + 0x28]
movss xmm0, dword [ebp + 0x18]
lea esi, [ebp + 0xc]
movsd dword es:[edi], dword [esi]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [ebp + 0x1c]
movss dword [esp + 0x18], xmm0
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [ebp + 0xc]
lea edi, [esp + 0x1c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
je 0x1000e05e
xor ebx, ebx
inc ebx
test byte [ebp + 0x24], bl
jne 0x1000e05e
mov eax, dword [0x10020ab8]
test eax, eax
je 0x1000df57
cmp eax, ebx
jne 0x1000df2a
movss xmm0, dword [0x1001a098]
jmp 0x1000df5d
cmp eax, 2
jne 0x1000df39
movss xmm0, dword [0x1001a08c]
jmp 0x1000df5d
cmp eax, 3
jne 0x1000df48
movss xmm0, dword [0x1001a034]
jmp 0x1000df5d
cmp eax, 4
jne 0x1000df57
movss xmm0, dword [0x1001a00c]
jmp 0x1000df5d
movss xmm0, dword [esp + 0x1c]
mov eax, dword [0x10020af8]
movss dword [esp + 0x10], xmm0
test eax, eax
je 0x1000e181
movss xmm1, dword [0x1001a010]
cmp eax, ebx
jne 0x1000df88
movss xmm0, dword [esp + 0x20]
subss xmm0, xmm1
jmp 0x1000dffc
cmp eax, 2
jne 0x1000df99
movss xmm0, dword [esp + 0x20]
addss xmm0, xmm1
jmp 0x1000dffc
cmp eax, 3
jne 0x1000dfae
movss xmm0, dword [esp + 0x20]
subss xmm0, dword [0x1001a028]
jmp 0x1000dffc
cmp eax, 4
jne 0x1000dfbd
movss xmm0, dword [0x1001a090]
jmp 0x1000dffc
cmp eax, 5
jne 0x1000dff6
call dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
movss xmm1, dword [0x1001a010]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov eax, dword [0x10020af8]
divss xmm0, dword [0x1001a070]
mulss xmm0, dword [0x1001a038]
subss xmm0, dword [0x1001a024]
jmp 0x1000dffc
movss xmm0, dword [esp + 0x20]
movss dword [esp + 0x3c], xmm0
cmp eax, 6
jne 0x1000e06e
mov eax, dword [0x1001f094]
cmp byte [eax], 0
je 0x1000e068
addss xmm0, xmm1
movss dword [esp + 0x3c], xmm0
movss xmm0, dword [esp + 0x3c]
movss xmm1, dword [esp + 0x10]
lea esi, [esp + 0x28]
movss xmm3, dword [esp + 0x14]
sub esp, 0xc
movss xmm2, dword [esp + 0x24]
mov edi, esp
movss dword [ebp + 0x10], xmm0
mov ecx, ebp
movss xmm0, dword [esp + 0x30]
movss dword [ebp + 0xc], xmm1
movsd dword es:[edi], dword [esi]
movss dword [ebp + 0x14], xmm0
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.1000ddd3
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret 8
subss xmm0, xmm1
jmp 0x1000e015
cmp eax, 7
jne 0x1000e07f
mov eax, dword [0x1001f094]
cmp byte [eax], 0
je 0x1000e011
jmp 0x1000e068
cmp eax, 8
jne 0x1000e09b
mov eax, dword [0x1001f094]
cmp byte [eax], 0
jne 0x1000e068
addss xmm0, dword [0x10019f48]
jmp 0x1000e015
cmp eax, 9
jne 0x1000e0b7
mov eax, dword [0x1001f094]
cmp byte [eax], 0
je 0x1000e0c6
addss xmm0, dword [0x1001a01c]
jmp 0x1000e015
cmp eax, 0xa
jne 0x1000e0d3
mov eax, dword [0x1001f094]
cmp byte [eax], 0
je 0x1000e0aa
subss xmm0, dword [0x1001a01c]
jmp 0x1000e015
cmp eax, 0xb
jne 0x1000e0e7
mov eax, dword [0x1001f094]
cmp byte [eax], 0
je 0x1000e08e
jmp 0x1000e011
cmp eax, 0xc
jne 0x1000e01b
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x25
call esi
test bl, al
je 0x1000e10d
mov byte [0x1002151c], 0
mov byte [0x1002151d], bl
jmp 0x1000e137
push 0x27
call esi
test bl, al
je 0x1000e124
xor al, al
mov byte [0x1002151c], bl
mov byte [0x1002151d], al
jmp 0x1000e12f
mov bl, byte [0x1002151c]
mov al, byte [0x1002151d]
test al, al
je 0x1000e154
test bl, bl
jne 0x1000e15c
mov eax, dword [0x1001f094]
movss xmm0, dword [esp + 0x3c]
cmp byte [eax], 0
je 0x1000e174
subss xmm0, dword [0x1001a010]
jmp 0x1000e021
test bl, bl
je 0x1000e01b
movss xmm0, dword [esp + 0x3c]
test al, al
jne 0x1000e021
mov eax, dword [0x1001f094]
cmp byte [eax], 0
je 0x1000e147
addss xmm0, dword [0x1001a010]
jmp 0x1000e021
movss xmm0, dword [esp + 0x20]
jmp 0x1000e021