Function at 0x10102e20
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, 0x670
push esi
push edi
lea edi, [ebp - 0x430]
mov ecx, 0x10c
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
mov ecx, 0x101997a0
call fcn.1014e9b0
mov esi, esp
push 0x70
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
cmp esi, esp
call fcn.1014e980
cwde
and eax, 1
je 0x10102f56
mov eax, dword [0x101980f0]
cmp dword [eax], 0
jne 0x10102f56
movzx eax, byte [0x10197bf3]
test eax, eax
jne 0x10102e9a
mov dword [ebp - 0x668], 1
jmp 0x10102ea4
mov dword [ebp - 0x668], 0
mov cl, byte [ebp - 0x668]
mov byte [0x10197bf3], cl
movzx eax, byte [0x10197bf3]
test eax, eax
je 0x10102f15
movss xmm0, dword [0x10172c34]
movss dword [0x10197c2c], xmm0
mov eax, 1
imul ecx, eax, 0
mov byte [ecx + 0x10198294], 0x37
mov eax, 1
shl eax, 0
mov byte [eax + 0x10198294], 0x39
mov eax, 1
shl eax, 1
mov dword [ebp - 0x248], eax
cmp dword [ebp - 0x248], 4
jae 0x10102f01
jmp 0x10102f06
call fcn.1014fb80
mov ecx, dword [ebp - 0x248]
mov byte [ecx + 0x10198294], 0
jmp 0x10102f56
xorps xmm0, xmm0
movss dword [0x10197c2c], xmm0
mov eax, 1
imul ecx, eax, 0
mov byte [ecx + 0x10198294], 0x30
mov dword [ebp - 0x254], 1
cmp dword [ebp - 0x254], 4
jae 0x10102f44
jmp 0x10102f49
call fcn.1014fb80
mov eax, dword [ebp - 0x254]
mov byte [eax + 0x10198294], 0
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
lea ecx, [ebp - 0x26c]
call fcn.1000b110
push eax
push 2
call fcn.1002c9c0
add esp, 8
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
push 3
call fcn.1002ccc0
add esp, 8
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
push 2
call fcn.1002ccc0
add esp, 8
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
lea ecx, [ebp - 0x27c]
call fcn.1000af90
mov dword [ebp - 0x668], eax
push ecx
movss xmm0, dword [0x1017cb50]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x1017cb54]
movss dword [esp], xmm0
lea ecx, [ebp - 0x28c]
call fcn.1000af90
mov dword [ebp - 0x66c], eax
mov eax, dword [ebp - 0x668]
push eax
push 0
mov ecx, dword [ebp - 0x66c]
push ecx
call fcn.10032940
add esp, 0xc
push 0
push 0x101981bc
call fcn.10032a30
add esp, 8
push 0x87
push 0
push str.Angle_controller
call fcn.1000e470
add esp, 0xc
push ecx
movss xmm0, dword [0x10162c70]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x10162c70]
movss dword [esp], xmm0
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
lea ecx, [ebp - 0x2a4]
call fcn.1000b110
push eax
push 0
call fcn.1002c9c0
add esp, 8
push 0x10198294
push str.Angle:__s
call fcn.100aa1d0
add esp, 8
push 2
call fcn.1002bf60
add esp, 4
call fcn.10016cc0
push 2
call fcn.1002c000
add esp, 4
mov ecx, 0xec
mov esi, 0x10197c80
lea edi, [ebp - 0x660]
rep movsd dword es:[edi], dword [esi]
call fcn.1001c960
mov ecx, 0xec
lea esi, [ebp - 0x660]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret