Function at 0x100afad0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x10240f1c]
mov ecx, 0x168
mov dword [0x102413d8], eax
sub esp, 0x14
mov dword [0x10240e9c], eax
cvttss2si eax, dword [0x1024186c]
mov byte [0x102fdb16], 0
push esi
mov esi, dword [ebp + 8]
mov word [0x102fdb14], 0
movq xmm0, qword [0x10240f14]
cdq
idiv ecx
cvttss2si eax, dword [0x10241870]
movq qword [0x102413d0], xmm0
movq qword [0x10240e94], xmm0
movd xmm0, edx
cdq
idiv ecx
cmp byte [0x102fd894], 0
cvtdq2ps xmm0, xmm0
movss dword [0x1024186c], xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
movss dword [0x10241870], xmm0
je 0x100afbc3
cmp dword [0x102fd998], 1
jne 0x100afbc3
cmp byte [0x103023f8], 0
je 0x100afbc3
movss xmm2, dword [esi + 0xc]
lea eax, [ebp - 0x14]
movss xmm0, dword [esi + 0x10]
movss dword [ebp - 0x14], xmm2
xorps xmm2, xmmword [0x1022bdc0]
subss xmm2, dword [0x1022b958]
movss dword [ebp - 0x10], xmm0
movss xmm0, dword [esi + 0x14]
movss dword [ebp - 0xc], xmm0
movss xmm0, dword [esi + 0x10]
addss xmm2, dword [0x1022b8ec]
addss xmm0, dword [0x1022b8ec]
push ecx
push eax
push esi
mov byte [0x102fdb11], 0
movss dword [esi + 0xc], xmm2
movss dword [esi + 0x10], xmm0
call fcn.100aea90
cmp byte [0x10241794], 0
jne 0x100b0373
cmp byte [0x10241793], 0
jne 0x100b0373
mov eax, dword fs:[0x2c]
mov ecx, dword [0x10243ad0]
push edi
mov edi, dword [eax + ecx*4]
mov eax, dword [0x10306b90]
cmp eax, dword [edi + 4]
jle 0x100afc31
push 0x10306b90
call fcn.10189be4
add esp, 4
cmp dword [0x10306b90], 0xffffffff
jne 0x100afc31
push 0x10306b90
mov dword [0x10306b80], 0
mov dword [0x10306b7c], 0x103024d0
call fcn.10189b93
add esp, 4
mov eax, dword [0x10306b7c]
cmp dword [0x10306b80], 0
sete byte [ebp + 0xb]
mov eax, dword [eax]
test eax, eax
jne 0x100afc4e
mov dword [0x10306b80], eax
jmp 0x100afc78
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
movzx eax, al
mov dword [0x10306b80], eax
je 0x100afc78
cmp byte [ebp + 0xb], 0
je 0x100afc78
cmp byte [0x10302440], 0
sete byte [0x10302440]
mov eax, dword [0x10306b78]
cmp eax, dword [edi + 4]
jle 0x100afcbc
push 0x10306b78
call fcn.10189be4
add esp, 4
cmp dword [0x10306b78], 0xffffffff
jne 0x100afcbc
push 0x10306b78
mov dword [0x10306b8c], 0
mov dword [0x10306b88], 0x103023b0
call fcn.10189b93
add esp, 4
mov eax, dword [0x10306b88]
cmp dword [0x10306b8c], 0
sete byte [ebp + 0xb]
mov eax, dword [eax]
test eax, eax
jne 0x100afe97
mov dword [0x10306b8c], eax
mov al, byte [0x1024187c]
mov byte [0x1024187c], al
mov eax, dword [0x10306b98]
cmp eax, dword [edi + 4]
jle 0x100afd29
push 0x10306b98
call fcn.10189be4
add esp, 4
cmp dword [0x10306b98], 0xffffffff
jne 0x100afd29
push 0x10306b98
mov dword [0x10306b74], 0
mov dword [0x10306b70], 0x10302368
call fcn.10189b93
add esp, 4
mov eax, dword [0x10306b70]
mov eax, dword [eax]
test eax, eax
jne 0x100afeca
mov dword [0x10306b74], eax
xor al, al
cmp byte [0x10302440], 0
mov byte [0x1024187d], al
je 0x100b0372
cmp byte [0x102fdb17], 0
jne 0x100b0372
cmp byte [0x102fd880], 0
jne 0x100b0372
mov edi, dword [0x102412a0]
test edi, edi
je 0x100b036b
mov ecx, edi
call fcn.1006ad90
test al, al
jne 0x100b0372
push 7
mov ecx, edi
call fcn.100788b0
test al, al
jne 0x100b0372
push 0x52
mov ecx, edi
call fcn.100788b0
test al, al
jne 0x100b0372
push 0x4d
mov ecx, edi
call fcn.100788b0
test al, al
jne 0x100b0372
mov eax, dword [edi + 0x1a4]
cmp eax, 8
je 0x100b0372
cmp eax, 9
je 0x100b0372
cmp eax, 0xa
je 0x100b0372
push 0x11
mov ecx, edi
call fcn.100788b0
test al, al
jne 0x100b0372
cmp byte [0x102fd894], al
jne 0x100b0372
cmp byte [0x1024187d], al
je 0x100aff67
cmp byte [0x1024187e], al
jne 0x100afe61
mov ecx, dword [0x10243e1c]
lea edx, [ebp - 0x14]
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 0
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x4c]
call eax
movss xmm0, dword [ebp - 0x14]
movss dword [0x10241880], xmm0
movss xmm0, dword [ebp - 0x10]
movss dword [0x10241884], xmm0
movss xmm0, dword [ebp - 0xc]
movss dword [0x10241888], xmm0
mov byte [0x1024187e], 1
movzx eax, word [esi + 0x38]
cwde
cdq
mov ecx, eax
movzx eax, word [esi + 0x3a]
xor ecx, edx
cwde
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
jle 0x100aff18
movzx eax, word [esi + 0x38]
cmp ax, 0x19
jle 0x100aff01
mov word [0x1024188e], 0
jmp 0x100aff42
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
movzx eax, al
mov dword [0x10306b8c], eax
je 0x100afcdb
cmp byte [ebp + 0xb], 0
je 0x100afcdb
cmp byte [0x1024187c], 0
sete al
jmp 0x100afce0
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
movzx eax, al
mov dword [0x10306b74], eax
je 0x100afd3d
cmp dword [0x103023d4], 0xe
je 0x100afefa
cmp dword [0x10302344], 0xe
jne 0x100afd3d
mov al, 1
jmp 0x100afd3f
cmp ax, 0xffe7
jge 0x100aff53
mov word [ebp + 8], 1
mov word [0x1024188e], 0x100
jmp 0x100aff48
movzx eax, word [esi + 0x3a]
cmp ax, 0x19
jle 0x100aff33
mov word [ebp + 8], pe_nt_image_headers32
mov word [0x1024188e], 1
jmp 0x100aff48
cmp ax, 0xffe7
jge 0x100aff53
mov word [0x1024188e], 1
mov word [ebp + 8], 0
mov eax, dword [ebp + 8]
shr eax, 8
mov byte [0x10241890], al
mov ecx, dword [0x10243e1c]
push 0x10241880
mov eax, dword [ecx]
mov eax, dword [eax + 0x50]
call eax
jmp 0x100affa7
cmp byte [0x1024187e], 0
je 0x100affa7
mov ecx, dword [0x10243e1c]
push 0x10241880
mov eax, dword [ecx]
mov eax, dword [eax + 0x50]
call eax
mov byte [0x1024187e], 0
mov dword [0x10241880], 0
mov dword [0x10241884], 0
mov dword [0x10241888], 0
cmp dword [0x10302488], 0
setne byte [ebp - 1]
cmp dword [0x10302344], 0
jne 0x100affcb
cmp dword [0x103023d4], 0
jne 0x100affcb
xor al, al
mov byte [ebp + 0xb], al
jmp 0x100affcf
mov byte [ebp + 0xb], 1
movss xmm0, dword [esi + 0xc]
movss dword [ebp - 0x14], xmm0
movss xmm0, dword [esi + 0x10]
push esi
push edi
push dword [0x10302464]
movss dword [ebp - 0x10], xmm0
movss xmm0, dword [esi + 0x14]
movss dword [ebp - 0xc], xmm0
call fcn.100af8d0
mov ecx, dword [0x10302488]
movss xmm1, dword [0x1022b8b8]
movss dword [0x10241868], xmm0
lea eax, [ecx - 1]
cmp eax, 9
ja case.default.0x100b001c
jmp dword [eax*4 + 0x100b037c]
mov dword [esi + 0xc], 0
mov dword [0x10240e94], 0
jmp case.default.0x100b001c
mov dword [esi + 0xc], 0xc2b20000
jmp 0x100b0198
mov dword [esi + 0xc], 0x42b20000
mov dword [0x10240e94], 0x42b20000
jmp case.default.0x100b001c
mov dword [esi + 0xc], 0xc3878000
jmp 0x100b0198
mov dword [esi + 0xc], 0x43878000
mov dword [0x10240e94], 0x42b20000
jmp case.default.0x100b001c
mov eax, dword [0x10302224]
mov ecx, 0x10241898
lea eax, [eax + eax*4]
add eax, eax
push eax
call fcn.1007fdb0
test al, al
je 0x100b00e1
mov ecx, 0x1025d7c0
call fcn.1007fb40
xorps xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1022bcd0]
cvtpd2ps xmm0, xmm0
subss xmm0, xmm1
addss xmm0, xmm1
movss xmm1, dword [0x1022b8b8]
mulss xmm0, dword [0x1022b5c8]
mulss xmm0, dword [0x1022b8e8]
subss xmm0, xmm1
jmp 0x100b00f1
movss xmm0, dword [0x10241874]
movss xmm1, dword [0x1022b8b8]
movss dword [0x10241874], xmm0
movss dword [esi + 0xc], xmm0
movss xmm0, dword [0x10241874]
movss dword [0x10240e94], xmm0
jmp case.default.0x100b001c
mov dword [esi + 0xc], 0xc2340000
mov dword [0x10240e94], 0xc2340000
jmp case.default.0x100b001c
cmp byte [0x1024187b], 0
movss xmm0, dword [0x1022ba4c]
je 0x100b013a
movaps xmm0, xmm1
movss dword [esi + 0xc], xmm0
mov al, byte [0x1024187b]
mov dword [0x10240e94], 0x42b20000
test al, al
jne 0x100b015c
mov dword [0x10240e94], 0xc2b20000
sete byte [0x1024187b]
jmp case.default.0x100b001c
movss xmm0, dword [0x103022b4]
cmp ecx, 0xa
jne 0x100b018b
addss xmm0, dword [0x1022b958]
movss dword [esi + 0xc], xmm0
mov dword [0x10240e94], 0x42b20000
jmp case.default.0x100b001c
subss xmm0, dword [0x1022b958]
movss dword [esi + 0xc], xmm0
mov dword [0x10240e94], 0xc2b20000
mov eax, dword [0x10302344]
cmp eax, 7
je 0x100b01b5
cmp dword [0x103023d4], 7
jne 0x100b01ec
movss xmm0, dword [0x102413d0]
push dword [0x102412a0]
ucomiss xmm0, xmm1
movss xmm1, dword [0x10241868]
lahf
test ah, 0x44
jp 0x100b01dd
call fcn.100af360
xor al, 1
jmp 0x100b01e2
call fcn.100af360
mov byte [0x1024187a], al
mov eax, dword [0x10302344]
cmp byte [0x10241878], 0
je 0x100b02c6
test eax, eax
je 0x100b02c6
cmp byte [0x1024188c], 0
push eax
sete byte [0x1024188c]
call fcn.100af420
addss xmm0, dword [0x10241868]
movss dword [esi + 0x10], xmm0
cmp dword [0x103023d4], 0
je 0x100b02b0
cmp byte [0x10302248], 0
je 0x100b02b0
push dword [0x10302344]
call fcn.100af420
push dword [0x103023d4]
movss dword [ebp - 8], xmm0
call fcn.100af420
movss xmm1, dword [ebp - 8]
subss xmm1, xmm0
movaps xmm0, xmm1
call fcn.10068310
movss xmm1, dword [0x1022b884]
movss xmm2, dword [esi + 0x10]
comiss xmm1, xmm0
seta al
test al, al
je 0x100b02b0
movss xmm0, dword [0x103022fc]
xorps xmm3, xmm3
ucomiss xmm0, xmm3
lahf
test ah, 0x44
jp 0x100b0297
movss xmm1, dword [0x1022ba48]
addss xmm2, xmm1
movss dword [esi + 0x10], xmm2
addss xmm1, dword [0x10241870]
movss dword [0x10241870], xmm1
movss xmm0, dword [esi + 0x10]
movss dword [0x102413d4], xmm0
mov byte [0x102fdb14], 1
jmp 0x100b031e
mov eax, dword [0x103023d4]
test eax, eax
je 0x100b031e
cmp byte [0x1024188d], 0
push eax
sete byte [0x1024188d]
call fcn.100af420
addss xmm0, dword [0x10241868]
movss dword [esi + 0x10], xmm0
movss xmm0, dword [esi + 0xc]
movss dword [0x10240e94], xmm0
movss xmm0, dword [esi + 0x10]
movss dword [0x10240e98], xmm0
movss xmm0, dword [esi + 0x14]
movss dword [0x10240e9c], xmm0
mov byte [0x102fdb15], 1
mov al, byte [ebp + 0xb]
mov ecx, dword [ebp + 0xc]
test al, al
je 0x100b033c
cmp byte [0x10241878], 0
sete al
mov byte [0x10241878], al
mov byte [ecx], al
mov al, byte [ebp + 0xb]
cmp dword [0x103023d4], 0
jne 0x100b034f
mov byte [0x10241878], 1
mov byte [ecx], 1
cmp byte [ebp - 1], 0
jne 0x100b0359
test al, al
je 0x100b035b
mov al, 1
mov byte [0x102fdb16], al
lea eax, [ebp - 0x14]
push ecx
push eax
push esi
call fcn.100aea90
mov byte [0x10241879], 0
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8