Function at 0x10024dd0
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x20
push ebx
push ebp
push esi
push edi
mov edi, edx
mov esi, ecx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], esi
test byte [edi + 0x24], 0x20
jne 0x100252d3
cmp byte [0x1010e891], 0
je 0x10024e37
push dword [0x1010e8a0]
mov ebx, dword [sym.imp.USER32.dll_GetAsyncKeyState]
call ebx
test ax, ax
je 0x10024e18
movss xmm0, dword [edi + 0x10]
addss xmm0, dword [0x10054120]
jmp 0x10024e32
push dword [0x1010e89c]
call ebx
test ax, ax
je 0x10024e37
movss xmm0, dword [edi + 0x10]
subss xmm0, dword [0x10054120]
movss dword [edi + 0x10], xmm0
movss xmm0, dword [esi + 0xe0]
mov ecx, esi
mov eax, dword [esi + 0x134]
xor bl, bl
movss dword [esp + 0x28], xmm0
movss xmm0, dword [esi + 0xe4]
movss dword [esp + 0x24], xmm0
movss xmm0, dword [esi + 0xe8]
mov dword [esp + 0x20], eax
movss dword [esp + 0x2c], xmm0
mov byte [esp + 0x13], 0
mov byte [esp + 0x14], 1
call fcn.1001d420
mov ecx, 1
mov al, byte [eax]
not al
and al, 1
cmp byte [0x1010e8da], bl
je 0x10024e9a
test al, al
cmovne ecx, dword [esp + 0x34]
jmp 0x10024e9e
mov ecx, dword [esp + 0x34]
mov ebp, dword [0x102fe8ec]
xorps xmm1, xmm1
mov eax, ebp
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x10024ec1
xorps xmm0, xmm0
jmp 0x10024ec9
minss xmm0, dword [0x100540c8]
cmp byte [0x1010e8d8], 0
cvttss2si edx, xmm0
je 0x10024f82
mov eax, dword [0x1010e8dc]
test eax, eax
jne 0x10024f0f
mov eax, dword [0x102feaac]
test eax, eax
js 0x10024eed
inc eax
xor ecx, ecx
cmp eax, 0xb
cmove eax, ecx
test edx, edx
mov dword [0x102feaac], eax
setg bl
test edx, edx
mov dl, byte [0x1010e890]
setle cl
jmp 0x10024fa5
cmp eax, 1
jne 0x10024f54
mov eax, dword [0x10111a78]
cvttss2si ebx, dword [eax + 0x1c]
mov eax, ebx
neg eax
cmp eax, 0x44
jle 0x10024f31
cmp edx, ecx
setle al
setg ah
jmp 0x10024f35
mov al, 1
xor ah, ah
test edx, edx
movzx ebx, al
mov ecx, 1
movzx eax, ah
cmovg ebx, ecx
xor ecx, ecx
test edx, edx
mov dl, byte [0x1010e890]
cmovle ecx, eax
jmp 0x10024fa5
cmp eax, 2
jne 0x10024f6b
test edx, edx
setg bl
test edx, edx
mov dl, byte [0x1010e890]
setle cl
jmp 0x10024fa5
mov cl, 1
cmp eax, 4
jne 0x10024f7a
test edx, edx
jle 0x10024f7a
mov bl, cl
xor cl, cl
mov dl, byte [0x1010e890]
jmp 0x10024fa5
mov dl, byte [0x1010e890]
mov cl, 1
test dl, dl
je 0x10024fa5
cmp byte [0x102febf0], 0
sete al
mov byte [0x102febf0], al
test al, al
je 0x10024fa5
mov bl, cl
xor cl, cl
cmp byte [0x102fe8f1], 0
jne 0x10024fc2
mov byte [0x102fe8f2], cl
test bl, bl
je 0x10024fc9
cmp ebp, 0xe
jge 0x10024fc2
lea eax, [ebp + 1]
jmp 0x10024fcb
mov byte [0x102fe8f2], 1
xor eax, eax
mov dword [0x102fe8ec], eax
test dl, dl
je 0x100252cc
mov eax, dword [0x10111a78]
mov ebx, dword [eax + 0x14]
cmp ebx, 1
jl 0x10025050
mov edi, esi
nop word [eax + eax]
mov ecx, dword [0x10111a70]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
cmp ebx, eax
je 0x10025042
mov ecx, dword [0x10111a7c]
push ebx
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov ebp, eax
test ebp, ebp
je 0x10025042
cmp dword [ebp + 0x87], 0
jne 0x10025042
mov ecx, edi
call fcn.1001d2d0
mov ecx, ebp
mov esi, eax
call fcn.1001d2d0
xor edx, edx
mov ecx, dword [eax]
mov eax, dword [esp + 0x14]
cmp ecx, dword [esi]
movzx eax, al
cmovne eax, edx
mov dword [esp + 0x14], eax
dec ebx
cmp ebx, 1
jge 0x10024ff0
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
cmp byte [0x1010e896], 0
je 0x10025064
cmp byte [esp + 0x14], 0
jne 0x100252d3
mov ebx, dword [esp + 0x20]
cmp ebx, 9
jne 0x10025083
mov eax, dword [edi + 0x24]
test al, 4
je 0x10025083
cmp byte [0x102fe8f2], 0
jne 0x10025083
and eax, 0xfffffffb
mov dword [edi + 0x24], eax
mov eax, dword [0x1010e8c0]
cmp eax, 1
jne 0x10025096
push edi
push esi
call fcn.1003f000
jmp 0x100250a7
cmp eax, 2
jne 0x100250a7
push edi
push esi
mov ecx, 0x102f0164
call fcn.1003f240
cmp byte [0x1010e894], 0
movss xmm3, dword [0x1005414c]
je 0x1002518a
movss xmm0, dword [esp + 0x28]
movss xmm1, dword [esp + 0x24]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm1, xmm0
movss xmm0, dword [esp + 0x2c]
mulss xmm0, xmm0
addss xmm1, xmm0
movss xmm0, dword [0x100541a4]
comiss xmm0, xmm1
jbe 0x1002518a
mov eax, dword [0x1010e8bc]
test eax, eax
jne 0x1002510b
push edi
push esi
xorps xmm3, xmm3
call fcn.1003f480
jmp 0x1002518e
cmp eax, 1
jne 0x10025125
cmp byte [0x102fe8f2], 0
je 0x1002511c
xorps xmm3, xmm3
push edi
push esi
call fcn.1003f480
jmp 0x1002518e
cmp eax, 2
jne 0x1002513f
cmp byte [0x102fe8f2], 0
jne 0x10025136
xorps xmm3, xmm3
push edi
push esi
call fcn.1003f480
jmp 0x1002518e
cmp eax, 3
jne 0x1002518a
cmp byte [0x102fe8f2], 0
je 0x1002516c
cmp byte [0x10112606], 0
sete al
mov byte [0x10112606], al
test al, al
je 0x10025163
xorps xmm3, xmm3
push edi
push esi
call fcn.1003f480
jmp 0x1002518e
mov al, byte [0x10112606]
test al, al
setne byte [0x102fe8f0]
test al, al
je 0x10025181
xorps xmm3, xmm3
push edi
push esi
call fcn.1003f480
jmp 0x1002518e
mov al, byte [esp + 0x13]
cmp ebx, 9
je 0x100252cc
test al, al
je 0x100251b1
mov dword [edi + 0xc], 0x42b20000
mov byte [0x102fe8f1], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
mov eax, dword [0x1010e898]
dec eax
cmp eax, 0xa
ja case.default.0x100251c0
jmp dword [eax*4 + 0x100252dc]
mov dword [edi + 0xc], 0x43340000
jmp case.default.0x100251c0
mov dword [edi + 0xc], 0xc3340000
jmp case.default.0x100251c0
mov dword [edi + 0xc], 0x428c0000
jmp case.default.0x100251c0
mov dword [edi + 0xc], 0xc2b20000
jmp case.default.0x100251c0
call dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
cdq
mov ecx, 0x32
idiv ecx
movd xmm0, edx
cvtdq2ps xmm0, xmm0
movss dword [edi + 0xc], xmm0
jmp case.default.0x100251c0
cmp byte [0x102fe8f2], 0
je 0x1002522b
movss xmm0, dword [0x100541b8]
movss dword [edi + 0xc], xmm0
jmp case.default.0x100251c0
movss xmm0, dword [0x100541ac]
movss dword [edi + 0xc], xmm0
jmp case.default.0x100251c0
cmp byte [0x102fe8f2], 0
je 0x10025252
movss xmm0, dword [0x100541ac]
movss dword [edi + 0xc], xmm0
jmp case.default.0x100251c0
movss xmm0, dword [0x100541b8]
movss dword [edi + 0xc], xmm0
jmp case.default.0x100251c0
mov dword [edi + 0xc], 0x46074c0f
jmp case.default.0x100251c0
mov dword [edi + 0xc], 0x43d4615c
jmp case.default.0x100251c0
mov dword [edi + 0xc], 0x42b20000
cmp byte [0x102fe8f2], 0
mov edx, esi
mov ecx, edi
je 0x100252a2
push 0
push 0
call fcn.10024680
add esp, 8
mov byte [0x102fe8f1], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
push 1
push 1
call fcn.10024680
add esp, 8
cmp byte [0x1010e895], 0
je 0x100252cc
movss xmm0, dword [esi + 0xe8]
comiss xmm0, dword [0x10053f14]
jbe 0x100252cc
or dword [edi + 0x24], 4
mov byte [0x102fe8f1], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret