Function at 0x10022cfe
Capabilities:
Log keystrokes via polling

Disassembly:
push 0x40
mov eax, 0x10036f8d
call fcn.10033a06
cmp byte [0x100520e8], 0
lea edi, [ebp - 0x4c]
mov ebx, dword [ebp + 0xc]
movss xmm0, dword [ebx + 0x18]
lea esi, [ebx + 0xc]
movsd dword es:[edi], dword [esi]
movss dword [ebp - 0x18], xmm0
movss xmm0, dword [ebx + 0x1c]
movss dword [ebp - 0x1c], xmm0
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [ebx + 0xc]
lea edi, [ebp - 0x28]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
je 0x100232bb
push str.m_lifeState
push str.DT_BasePlayer
call fcn.10015df6
mov ecx, dword [ebp + 8]
cmp byte [eax + ecx], 0
jne 0x100232bb
test byte [ebx + 0x24], 1
jne 0x100232bb
mov eax, dword [0x10052120]
mov edi, dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
test eax, eax
je 0x10022e61
cmp eax, 1
jne 0x10022d88
movss xmm0, dword [0x10044348]
jmp 0x10022dfb
cmp eax, 2
jne 0x10022d97
movss xmm0, dword [0x1004433c]
jmp 0x10022dfb
cmp eax, 3
jne 0x10022da6
movss xmm0, dword [0x100442dc]
jmp 0x10022dfb
cmp eax, 4
jne 0x10022db5
movss xmm0, dword [0x100442a4]
jmp 0x10022dfb
cmp eax, 5
jne 0x10022dc4
movss xmm0, dword [0x10044338]
jmp 0x10022dfb
cmp eax, 6
jne 0x10022df6
call edi
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mov eax, dword [0x10052120]
divss xmm1, dword [0x1004431c]
mulss xmm1, dword [0x100442cc]
subss xmm1, dword [0x100442a4]
movss dword [ebp + 8], xmm1
jmp 0x10022e00
movss xmm0, dword [ebp - 0x28]
movss dword [ebp + 8], xmm0
cmp eax, 7
jne 0x10022e30
call edi
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mov eax, dword [0x10052120]
divss xmm1, dword [0x1004431c]
mulss xmm1, dword [0x1004426c]
addss xmm1, dword [0x10044294]
movss dword [ebp + 8], xmm1
cmp eax, 8
jne 0x10022e6b
call edi
movss xmm1, dword [0x1004432c]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, dword [0x1004431c]
mulss xmm0, dword [0x1004432c]
subss xmm1, xmm0
movss dword [ebp + 8], xmm1
jmp 0x10022e6b
movss xmm0, dword [ebp - 0x28]
movss dword [ebp + 8], xmm0
mov eax, dword [0x10052160]
test eax, eax
je 0x100231ef
movss xmm1, dword [0x100442a8]
cmp eax, 1
jne 0x10022e90
movss xmm0, dword [ebp - 0x24]
subss xmm0, xmm1
jmp 0x10022ef8
cmp eax, 2
jne 0x10022ea0
movss xmm0, dword [ebp - 0x24]
addss xmm0, xmm1
jmp 0x10022ef8
cmp eax, 3
jne 0x10022eb4
movss xmm0, dword [ebp - 0x24]
subss xmm0, dword [0x100442d0]
jmp 0x10022ef8
cmp eax, 4
jne 0x10022ec3
movss xmm0, dword [0x10044340]
jmp 0x10022ef8
cmp eax, 5
jne 0x10022ef3
call edi
movss xmm1, dword [0x100442a8]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, dword [0x1004431c]
mulss xmm0, dword [0x100442e4]
subss xmm0, dword [0x100442cc]
jmp 0x10022ef8
movss xmm0, dword [ebp - 0x24]
mov eax, dword [0x10052160]
movss dword [ebp + 0xc], xmm0
cmp eax, 6
jne 0x10022f1a
mov eax, dword [0x1004d0b0]
cmp byte [eax], 0
je 0x10022f29
addss xmm0, xmm1
jmp 0x10023024
cmp eax, 7
jne 0x10022f32
mov eax, dword [0x1004d0b0]
cmp byte [eax], 0
je 0x10022f11
subss xmm0, xmm1
jmp 0x10023024
cmp eax, 8
jne 0x10022f4e
mov eax, dword [0x1004d0b0]
cmp byte [eax], 0
jne 0x10022f29
addss xmm0, dword [0x100441ac]
jmp 0x10023024
cmp eax, 9
jne 0x10022f6a
mov eax, dword [0x1004d0b0]
cmp byte [eax], 0
je 0x10022f79
addss xmm0, dword [0x100442b8]
jmp 0x10023024
cmp eax, 0xa
jne 0x10022f86
mov eax, dword [0x1004d0b0]
cmp byte [eax], 0
je 0x10022f5d
subss xmm0, dword [0x100442b8]
jmp 0x10023024
cmp eax, 0xb
jne 0x10022f9a
mov eax, dword [0x1004d0b0]
cmp byte [eax], 0
je 0x10022f41
jmp 0x10022f11
cmp eax, 0xc
jne 0x10023029
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x25
call esi
test al, 1
je 0x10022fc1
mov byte [0x10055635], 0
mov byte [0x10055634], 1
jmp 0x10022fed
push 0x27
call esi
test al, 1
je 0x10022fda
mov al, 1
xor cl, cl
mov byte [0x10055635], al
mov byte [0x10055634], cl
jmp 0x10022fe5
mov al, byte [0x10055635]
mov cl, byte [0x10055634]
test cl, cl
je 0x10023006
test al, al
jne 0x1002300a
mov eax, dword [0x1004d0b0]
movss xmm0, dword [ebp + 0xc]
cmp byte [eax], 0
jne 0x1002301c
addss xmm0, dword [0x100442a8]
jmp 0x10023024
test al, al
je 0x10023029
test cl, cl
jne 0x10023029
mov eax, dword [0x1004d0b0]
movss xmm0, dword [ebp + 0xc]
cmp byte [eax], cl
jne 0x10022ffc
subss xmm0, dword [0x100442a8]
movss dword [ebp + 0xc], xmm0
cmp dword [0x10052160], 0xd
jne 0x10023058
call edi
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, dword [0x1004431c]
mulss xmm0, dword [0x100442cc]
subss xmm0, dword [0x100442a4]
movss dword [ebp + 0xc], xmm0
cmp dword [0x10052160], 0xe
jne 0x10023087
call edi
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, dword [0x1004431c]
mulss xmm0, dword [0x1004426c]
addss xmm0, dword [0x10044294]
movss dword [ebp + 0xc], xmm0
mov eax, dword [0x10052160]
cmp eax, 0xf
jne 0x100230a9
imul eax, dword [ebx + 8], 0xa
mov ecx, 0x168
cdq
idiv ecx
movd xmm0, edx
cvtdq2ps xmm0, xmm0
jmp 0x100231b9
cmp eax, 0x10
jne 0x100230b8
mov eax, dword [ebx + 8]
push 0x14
add eax, eax
pop ecx
jmp 0x1002309a
cmp eax, 0x11
jne 0x100231be
mov eax, dword fs:[0x2c]
mov ecx, dword [0x1004dcf4]
mov esi, dword [eax + ecx*4]
mov eax, dword [0x10055820]
cmp eax, dword [esi + 4]
jle 0x1002310f
push 0x10055820
call fcn.100328ab
cmp dword [0x10055820], 0xffffffff
pop ecx
jne 0x1002310f
and dword [ebp - 4], 0
xorps xmm0, xmm0
movlpd qword [0x10055818], xmm0
or dword [ebp - 4], 0xffffffff
push 0x10055820
call fcn.10032861
pop ecx
mov eax, dword [0x10055810]
cmp eax, dword [esi + 4]
jle 0x1002314e
mov esi, 0x10055810
push esi
call fcn.100328ab
cmp dword [0x10055810], 0xffffffff
pop ecx
jne 0x1002314e
mov dword [ebp - 4], 1
xorps xmm0, xmm0
movlpd qword [0x10055808], xmm0
or dword [ebp - 4], 0xffffffff
push esi
call fcn.10032861
pop ecx
movss xmm0, dword [ebp + 0xc]
mov ecx, 0x10055818
subss xmm0, dword [0x100442a8]
push 0x7d0
movss dword [ebp + 0xc], xmm0
call fcn.1001782c
test al, al
je 0x10023185
movss xmm0, dword [ebp + 0xc]
addss xmm0, dword [0x100442a8]
movss dword [ebp + 0xc], xmm0
push 0xfa0
mov ecx, 0x10055808
call fcn.1001782c
test al, al
je 0x100231be
call edi
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, dword [0x1004431c]
mulss xmm0, dword [0x100442e4]
subss xmm0, dword [0x100442cc]
movss dword [ebp + 0xc], xmm0
cmp dword [0x10052160], 0x12
jne 0x100231f9
call edi
movss xmm1, dword [0x1004432c]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, dword [0x1004431c]
mulss xmm0, xmm1
subss xmm1, xmm0
movss dword [ebp + 0xc], xmm1
jmp 0x100231f9
movss xmm0, dword [ebp - 0x24]
movss dword [ebp + 0xc], xmm0
movss xmm2, dword [ebx + 0x18]
movss xmm1, dword [ebx + 0x1c]
movss xmm0, dword [ebx + 0x20]
movss dword [ebp - 0x30], xmm1
movss dword [ebp - 0x34], xmm2
mulss xmm1, xmm1
mulss xmm2, xmm2
movss dword [ebp - 0x2c], xmm0
addss xmm1, xmm2
cvtps2pd xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
cvtsd2ss xmm0, xmm0
lea edx, [ebp - 0x40]
lea ecx, [ebp - 0x34]
movss dword [ebp - 0x10], xmm0
call fcn.10012fd0
movss xmm0, dword [ebp + 0xc]
subss xmm0, dword [ebx + 0x10]
addss xmm0, dword [ebp - 0x3c]
mulss xmm0, dword [0x100441c8]
movss dword [ebp - 0x14], xmm0
call fcn.10012af0
mulss xmm0, dword [ebp - 0x10]
movss dword [ebx + 0x18], xmm0
movss xmm0, dword [ebp - 0x14]
call fcn.10012b30
mulss xmm0, dword [ebp - 0x10]
lea esi, [ebp - 0x4c]
sub esp, 0xc
mov ecx, ebx
movss xmm3, dword [ebp - 0x18]
mov edi, esp
movss xmm2, dword [ebp - 0x1c]
movss dword [ebx + 0x1c], xmm0
movss xmm0, dword [ebp + 8]
movsd dword es:[edi], dword [esi]
movss dword [ebx + 0xc], xmm0
movss xmm0, dword [ebp + 0xc]
movss dword [ebx + 0x10], xmm0
movss xmm0, dword [ebp - 0x20]
movsd dword es:[edi], dword [esi]
movss dword [ebx + 0x14], xmm0
movsd dword es:[edi], dword [esi]
call fcn.10022c09
add esp, 0xc
call fcn.100339e3
ret 8