Function at 0x1000dd80
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
push ebx
mov ebx, edx
mov eax, ecx
push esi
push edi
mov dword [esp + 0x28], ebx
test byte [ebx + 0x24], 0x20
mov dword [esp + 0x14], eax
jne 0x1000e2a1
movss xmm0, dword [eax + 0xe0]
mov ecx, dword [eax + 0x134]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [eax + 0xe4]
movss dword [esp + 0x1c], xmm0
movss xmm0, dword [eax + 0xe8]
mov dword [esp + 0x24], ecx
mov ecx, eax
movss dword [esp + 0x2c], xmm0
mov byte [esp + 0xf], 0
mov byte [esp + 0x10], 1
mov byte [esp + 0xe], 0
call fcn.10002ab0
mov al, byte [eax]
not al
and al, 1
cmp byte [0x100d3936], 0
je 0x1000de08
test al, al
mov edi, 1
cmovne edi, dword [ebp + 8]
jmp 0x1000de0b
mov edi, dword [ebp + 8]
mov eax, dword [0x100d3f3c]
xorps xmm2, xmm2
sub eax, edi
cdq
xor eax, edx
sub eax, edx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm2, xmm0
jbe 0x1000de2b
xorps xmm0, xmm0
jmp 0x1000de33
minss xmm0, dword [0x10038b1c]
cmp byte [0x100d3934], 0
mov eax, dword [0x100d3938]
cvttss2si esi, xmm0
je 0x1000df2f
test eax, eax
jne 0x1000de62
mov edx, dword [0x100c21e8]
test esi, esi
setg al
test esi, esi
setle cl
jmp 0x1000df77
cmp eax, 1
jne 0x1000de99
mov cl, al
mov dword [esp + 0x20], 0x1e
mov eax, dword [ebx + 4]
cdq
idiv dword [esp + 0x20]
cmp edx, 0xf
mov edx, dword [0x100c21e8]
jge 0x1000df73
test esi, esi
jle 0x1000df73
mov al, cl
xor cl, cl
jmp 0x1000df77
cmp eax, 2
jne 0x1000df2f
movss xmm0, dword [esp + 0x18]
movss xmm1, dword [esp + 0x1c]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.10002950
mov edx, dword [0x100c21e8]
lea eax, [edi - 2]
movaps xmm1, xmm0
mulss xmm1, dword [edx + 0x1c]
cmp eax, 0xe
jg 0x1000df23
movss xmm2, dword [0x10038b54]
nop dword [eax]
mov eax, edi
sub edi, 2
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
comiss xmm0, xmm2
ja 0x1000df23
dec edi
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
comiss xmm0, xmm2
ja 0x1000df23
mov edi, eax
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
comiss xmm0, xmm2
ja 0x1000df23
add edi, 5
lea eax, [edi - 2]
cmp eax, 0xe
jle 0x1000dee0
mov cl, 1
test esi, esi
jle 0x1000df73
mov al, cl
xor cl, cl
jmp 0x1000df77
mov edx, dword [0x100c21e8]
mov cl, 1
cmp eax, 3
jne 0x1000df73
movss xmm0, dword [esp + 0x18]
movss xmm1, dword [esp + 0x1c]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.10002950
mulss xmm0, dword [edx + 0x1c]
comiss xmm0, xmm2
jbe 0x1000df69
mov edi, dword [0x100d393c]
test esi, esi
jle 0x1000df73
mov al, cl
xor cl, cl
jmp 0x1000df77
mov al, byte [esp + 0xe]
cmp byte [0x100c4dad], 0
jne 0x1000df97
mov byte [0x100c4dae], cl
test al, al
je 0x1000df9f
mov eax, dword [0x100d3f3c]
cmp eax, 0xe
jge 0x1000df97
inc eax
jmp 0x1000dfa1
mov cl, 1
mov byte [0x100c4dae], cl
xor eax, eax
cmp byte [0x100d38ec], 0
mov dword [0x100d3f3c], eax
je 0x1000e29a
mov esi, dword [edx + 0x14]
mov dword [esp + 0x20], esi
cmp esi, 1
jl 0x1000e022
mov ebx, dword [esp + 0x14]
mov ecx, dword [0x100c21e0]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
cmp esi, eax
je 0x1000e00e
mov ecx, dword [0x100c21ec]
push esi
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
test eax, eax
je 0x1000e00e
mov ecx, eax
call fcn.10002960
mov ecx, ebx
mov esi, eax
call fcn.10002960
mov ecx, dword [esi]
xor esi, esi
mov edx, dword [esp + 0x10]
movzx edx, dl
cmp ecx, dword [eax]
cmovne edx, esi
mov esi, dword [esp + 0x20]
mov dword [esp + 0x10], edx
dec esi
mov dword [esp + 0x20], esi
cmp esi, 1
jge 0x1000dfc3
mov cl, byte [0x100c4dae]
mov ebx, dword [esp + 0x28]
cmp byte [0x100d38f0], 0
je 0x1000e036
cmp byte [esp + 0x10], 0
jne 0x1000e2a1
cmp dword [esp + 0x24], 9
jne 0x1000e04e
mov eax, dword [ebx + 0x24]
test al, 4
je 0x1000e04e
test cl, cl
jne 0x1000e04e
and eax, 0xfffffffb
mov dword [ebx + 0x24], eax
push 0xa4
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1000e09d
cmp edi, 0xf
jge 0x1000e099
mov ecx, dword [0x100c21e8]
movss xmm0, dword [ecx + 0xc]
comiss xmm0, dword [0x102b0964]
jbe 0x1000e099
and dword [ebx + 0x24], 0xfffffffb
xor al, al
mov byte [0x100c4dae], al
movss xmm0, dword [ecx + 0xc]
addss xmm0, dword [0x10038a2c]
movss dword [0x102b0964], xmm0
jmp 0x1000e0a2
or dword [ebx + 0x24], 4
mov al, byte [0x100c4dae]
cmp byte [0x100d38f1], 0
mov esi, dword [esp + 0x14]
je 0x1000e0c0
push ebx
push esi
mov ecx, 0x102a20d0
call fcn.1002a180
mov al, byte [0x100c4dae]
cmp byte [0x100d38ee], 0
je 0x1000e1b2
movss xmm0, dword [esp + 0x1c]
movss xmm1, dword [esp + 0x18]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm1, xmm0
movss xmm0, dword [esp + 0x2c]
mulss xmm0, xmm0
addss xmm1, xmm0
movss xmm0, dword [0x10038c18]
comiss xmm0, xmm1
jbe 0x1000e1b2
mov ecx, dword [0x100d3914]
test ecx, ecx
jne 0x1000e11d
push ebx
push esi
xorps xmm3, xmm3
call fcn.1002a3c0
jmp 0x1000e1b6
cmp ecx, 1
jne 0x1000e135
test al, al
je 0x1000e183
push ebx
xorps xmm3, xmm3
push esi
call fcn.1002a3c0
jmp 0x1000e1b6
cmp ecx, 2
jne 0x1000e15b
test al, al
je 0x1000e14f
movss xmm3, dword [0x10038bbc]
push ebx
push esi
call fcn.1002a3c0
jmp 0x1000e1b6
push ebx
xorps xmm3, xmm3
push esi
call fcn.1002a3c0
jmp 0x1000e1b6
cmp ecx, 3
jne 0x1000e1b2
test al, al
je 0x1000e194
cmp byte [0x100c2ea2], 0
sete al
mov byte [0x100c2ea2], al
test al, al
je 0x1000e183
push ebx
xorps xmm3, xmm3
push esi
call fcn.1002a3c0
jmp 0x1000e1b6
movss xmm3, dword [0x10038bbc]
push ebx
push esi
call fcn.1002a3c0
jmp 0x1000e1b6
mov al, byte [0x100c2ea2]
test al, al
setne byte [0x100c4dac]
test al, al
je 0x1000e183
push ebx
xorps xmm3, xmm3
push esi
call fcn.1002a3c0
jmp 0x1000e1b6
mov al, byte [esp + 0xf]
cmp dword [esp + 0x24], 9
je 0x1000e29a
test al, al
je 0x1000e1da
mov dword [ebx + 0xc], 0x42b20000
mov byte [0x100c4dad], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [0x100d38f6], 0
je 0x1000e242
push 0x46
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x1000e200
cmp byte [0x100d38f7], 0
sete al
mov byte [0x100d38f7], al
jmp 0x1000e205
mov al, byte [0x100d38f7]
mov ecx, ebx
test al, al
je 0x1000e244
call fcn.1000ca70
cmp byte [0x100c4dae], 0
mov edx, esi
mov ecx, ebx
je 0x1000e237
push 0
push 0
call fcn.1000d560
add esp, 8
mov byte [0x100c4dad], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 1
push 1
call fcn.1000d560
jmp 0x1000e279
mov ecx, ebx
call fcn.1000ca70
cmp byte [0x100c4dae], 0
mov edx, esi
mov ecx, ebx
je 0x1000e270
push 0
push 0
call fcn.1000cb80
add esp, 8
mov byte [0x100c4dad], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 1
push 1
call fcn.1000cb80
add esp, 8
cmp byte [0x100d38ef], 0
je 0x1000e29a
movss xmm0, dword [esi + 0xe8]
comiss xmm0, dword [0x10038964]
jbe 0x1000e29a
or dword [ebx + 0x24], 4
mov byte [0x100c4dad], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret