Function at 0x10009b70
Capabilities:
Check for time delay via gettickcount
Log keystrokes via polling
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c
mov eax, dword [0x10019040]
xor eax, esp
mov dword [esp + 0x78], eax
cmp dword [0x1001a5c4], 1
push ebx
push esi
push edi
jne 0x1000a009
mov eax, dword [0x1001b8bc]
cmp dword [eax], 1
jne 0x1000a009
lea ecx, [esp + 0x48]
mov dword [esp + 0x48], 0
push ecx
lea eax, [esp + 0x60]
mov dword [esp + 0x50], 8
push eax
push ecx
lea ecx, [esp + 0x1c]
mov dword [esp + 0x5c], 4
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0x114
call fcn.1000c610
mov edx, dword [esp + 0x14]
xor eax, eax
mov ecx, dword [esp + 0x10]
sub edx, ecx
mov esi, dword [0x1001b8c0]
sar edx, 2
test edx, edx
je 0x10009c05
mov esi, dword [esi]
test esi, esi
je 0x10009c00
add esi, dword [ecx + eax*4]
inc eax
cmp eax, edx
jb 0x10009bf7
test ecx, ecx
je 0x10009c54
mov edx, dword [esp + 0x18]
mov eax, ecx
sub edx, ecx
and edx, 0xfffffffc
cmp edx, 0x1000
jb 0x10009c32
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10009c32
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.1000e288
add esp, 8
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
lea ecx, [esp + 0x5c]
mov dword [esp + 0x5c], 0
push ecx
lea eax, [esp + 0x74]
mov dword [esp + 0x64], 8
push eax
push ecx
lea ecx, [esp + 0x2c]
mov dword [esp + 0x70], 4
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0x11c
call fcn.1000c610
mov edx, dword [esp + 0x24]
xor eax, eax
mov ecx, dword [esp + 0x20]
sub edx, ecx
mov edi, dword [0x1001b8c0]
sar edx, 2
test edx, edx
je 0x10009cbe
nop dword [eax]
mov edi, dword [edi]
test edi, edi
je 0x10009cb9
add edi, dword [ecx + eax*4]
inc eax
cmp eax, edx
jb 0x10009cb0
test ecx, ecx
je 0x10009d0d
mov edx, dword [esp + 0x28]
mov eax, ecx
sub edx, ecx
and edx, 0xfffffffc
cmp edx, 0x1000
jb 0x10009ceb
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10009ceb
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.1000e288
add esp, 8
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
lea ecx, [esp + 0x70]
mov dword [esp + 0x70], 0
push ecx
lea eax, [esp + 0x88]
mov dword [esp + 0x78], 8
push eax
push ecx
lea ecx, [esp + 0x3c]
mov dword [esp + 0x84], 4
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0x124
call fcn.1000c610
mov edx, dword [esp + 0x34]
xor eax, eax
mov ecx, dword [esp + 0x30]
sub edx, ecx
mov ebx, dword [0x1001b8c0]
sar edx, 2
test edx, edx
je 0x10009d7e
nop
mov ebx, dword [ebx]
test ebx, ebx
je 0x10009d79
add ebx, dword [ecx + eax*4]
inc eax
cmp eax, edx
jb 0x10009d70
test ecx, ecx
je 0x10009dcd
mov edx, dword [esp + 0x38]
mov eax, ecx
sub edx, ecx
and edx, 0xfffffffc
cmp edx, 0x1000
jb 0x10009dab
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10009dab
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.1000e288
add esp, 8
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
cmp byte [0x1001a0b2], 0
jne 0x10009e30
push 0x45
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
je 0x10009e29
cmp byte [0x1001c2f0], 0
je 0x10009e0e
cmp dword [0x1001c2f4], 0
je 0x10009e30
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [0x1001c2f4]
add ecx, 0x96
cmp ecx, eax
ja 0x10009e30
mov byte [0x1001c2f0], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x1001c2f4], eax
mov byte [0x1001a0b2], 1
jmp 0x10009e3d
mov byte [0x1001c2f0], 0
cmp byte [0x1001a0b2], 1
jne 0x1000a009
movss xmm0, dword [0x1001a03c]
addss xmm0, dword [0x10016a88]
movss xmm1, dword [0x1001a0c4]
subss xmm1, dword [0x1001a304]
movss xmm2, dword [0x1001a014]
subss xmm2, dword [0x1001a32c]
movss dword [esp + 0x40], xmm0
subss xmm0, dword [0x10019f98]
mulss xmm1, xmm1
mulss xmm2, xmm2
mulss xmm0, xmm0
addss xmm1, xmm2
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x10009ea1
sqrtsd xmm0, xmm0
jmp 0x10009ea6
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
cmp byte [0x1001a0b1], 0
cvtsd2ss xmm0, xmm0
movss dword [esp + 0x44], xmm0
jne 0x10009f12
movss xmm0, dword [0x1001a0c4]
movss dword [0x1001a304], xmm0
movss xmm0, dword [0x1001a014]
movss dword [0x1001a32c], xmm0
movss xmm0, dword [esp + 0x40]
movss dword [0x10019f98], xmm0
movss xmm0, dword [esi]
movss dword [0x1001a000], xmm0
movss xmm0, dword [edi]
movss dword [0x1001a054], xmm0
movss xmm0, dword [ebx]
movss dword [0x1001a250], xmm0
mov byte [0x1001a0b1], 1
push 0x45
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
je 0x10009f91
cmp byte [0x1001c2f0], 0
je 0x10009f4a
cmp dword [0x1001c2f4], 0
je 0x10009f98
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [0x1001c2f4]
add ecx, 0x96
cmp ecx, eax
ja 0x10009f98
mov byte [0x1001c2f0], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
movss xmm0, dword [0x10016aa8]
comiss xmm0, dword [esp + 0x44]
mov dword [0x1001c2f4], eax
jbe 0x10009f98
movss xmm0, dword [0x1001a000]
movss dword [esi], xmm0
movss xmm0, dword [0x1001a054]
movss dword [edi], xmm0
movss xmm0, dword [0x1001a250]
movss dword [ebx], xmm0
jmp 0x10009f98
mov byte [0x1001c2f0], 0
push 0x52
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
je 0x1000a002
cmp byte [0x1001c358], 0
je 0x10009fd0
cmp dword [0x1001c35c], 0
je 0x1000a009
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [0x1001c35c]
add ecx, 0xc8
cmp ecx, eax
ja 0x1000a009
mov byte [0x1001c358], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x1001c35c], eax
mov byte [0x1001a0b2], 0
mov byte [0x1001a0b1], 0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.1000df38
mov esp, ebp
pop ebp
ret
mov byte [0x1001c358], 0
mov ecx, dword [esp + 0x84]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1000df38
mov esp, ebp
pop ebp
ret