Function at 0x1001db57
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
push ebx
mov ebx, dword [0x1023d288]
push esi
push edi
mov edi, ecx
test ebx, ebx
je 0x1001e050
mov eax, dword [0x1023d284]
test eax, eax
jne 0x1001daf3
mov edx, 0xe80c2f78
mov ecx, 0x1021170d
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x10211635
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
mov dword [0x1023d284], eax
cmp dword [eax + ebx], 0
jle 0x1001e050
mov ecx, edi
call fcn.100273c0
call fcn.10027ab0
cmp dword [0x1027347c], 0
je 0x1001db1f
cmp byte [0x10273419], 0
jne 0x1001dbd0
mov ecx, dword [0x10237424]
mov eax, dword [0x102733f8]
cmp ecx, 3
ja case.0x1001db2f.0
jmp dword [ecx*4 + 0x1001e058]
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
setne al
jmp 0x1001db67
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
setne al
jmp 0x1001db67
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
sete al
test al, al
je 0x1001e04b
mov eax, dword [0x1023d2c0]
mov ebx, dword [0x1023d288]
test eax, eax
jne 0x1001dbac
mov edx, 0xe80c2f78
mov ecx, 0x10211851
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x10211635
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
mov dword [0x1023d2c0], eax
test byte [eax + ebx], 1
je 0x1001e04b
cmp byte [0x1027340b], 0
je 0x1001e04b
cmp byte [0x1027343c], 0
je 0x1001e04b
mov ecx, dword [0x1023d1c8]
push str.sv_gravity
mov eax, dword [ecx]
call dword [eax + 0x44]
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x30]
mov dword [esp + 0x14], ecx
mov ecx, eax
call dword [esp + 0x14]
mov eax, dword [0x1023d214]
mov ebx, dword [0x1023d288]
fstp dword [esp + 0x14]
movss xmm0, dword [esp + 0x14]
mulss xmm0, dword [eax + 0x20]
mov eax, dword [0x1023d21c]
mov dword [esp + 0x18], ebx
movss dword [esp + 0x10], xmm0
test eax, eax
jne 0x1001dc50
mov edx, 0xe80c2f78
mov ecx, 0x10211651
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x1021165d
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
mov ebx, dword [0x1023d288]
mov dword [0x1023d21c], eax
mov esi, dword [esp + 0x18]
mov edx, dword [0x1023d310]
add esi, eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], ebx
test edx, edx
jne 0x1001dca8
mov edx, 0xe80c2f78
mov ecx, 0x102119f5
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x1021165d
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
mov ebx, dword [0x1023d288]
mov edx, eax
mov eax, dword [0x1023d21c]
mov esi, dword [esp + 0x18]
mov dword [0x1023d310], edx
mov ecx, dword [0x1023d214]
movss xmm0, dword [esp + 0x10]
mulss xmm0, dword [0x1022f964]
movss xmm1, dword [ecx + 0x20]
mov ecx, dword [esp + 0x1c]
movaps xmm3, xmm1
movaps xmm2, xmm1
mulss xmm1, dword [ecx + edx + 8]
mulss xmm3, dword [ecx + edx]
mulss xmm2, dword [ecx + edx + 4]
addss xmm1, dword [esi + 8]
addss xmm3, dword [esi]
addss xmm2, dword [esi + 4]
subss xmm1, xmm0
movss dword [esp + 0x20], xmm3
movss dword [esp + 0x18], xmm2
movss dword [esp + 0x1c], xmm1
test eax, eax
jne 0x1001dd44
mov edx, 0xe80c2f78
mov ecx, 0x10211651
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x1021165d
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
movss xmm1, dword [esp + 0x1c]
movss xmm2, dword [esp + 0x18]
movss xmm3, dword [esp + 0x20]
mov dword [0x1023d21c], eax
subss xmm2, dword [ebx + eax + 4]
subss xmm3, dword [ebx + eax]
subss xmm1, dword [ebx + eax + 8]
xorps xmm5, xmm5
mov dword [esp + 0x28], 0
movss dword [esp + 0x18], xmm2
movss dword [esp + 0x1c], xmm3
mulss xmm2, xmm2
movaps xmm0, xmm1
mulss xmm3, xmm3
mulss xmm0, xmm1
addss xmm2, xmm3
addss xmm2, xmm0
movss dword [esp + 0x20], xmm2
sqrtss xmm0, dword [esp + 0x20]
movss dword [esp + 0x28], xmm0
movss xmm4, dword [0x1022fee0]
lea edx, [edi + 0xc]
xorps xmm1, xmm4
mov dword [esp + 0x30], 0
movss dword [esp + 0x20], xmm1
lea ecx, [esp + 0x20]
fld dword [esp + 0x20]
lea esi, [edi + 0x10]
fld dword [esp + 0x1c]
lea eax, [esp + 0x28]
fst dword [esp + 0x20]
movss xmm1, dword [esp + 0x20]
fld dword [esp + 0x18]
fst dword [esp + 0x20]
movss xmm0, dword [esp + 0x20]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm1, xmm0
xorps xmm0, xmm0
sqrtss xmm0, xmm1
movss dword [esp + 0x20], xmm0
fld dword [esp + 0x20]
fxch st(1)
fxch st(3)
movss xmm0, dword [edx]
fxch st(1)
fpatan
fstp dword [esp + 0x20]
movss xmm2, dword [esp + 0x20]
fpatan
mulss xmm2, dword [0x1022fb40]
fstp dword [esp + 0x20]
movss xmm3, dword [esp + 0x20]
mulss xmm3, dword [0x1022fb40]
movaps xmm1, xmm2
xorps xmm1, xmm4
movss dword [esp + 0x28], xmm2
comiss xmm0, xmm1
movss dword [esp + 0x20], xmm1
movaps xmm1, xmm3
xorps xmm1, xmm4
movss dword [esp + 0x2c], xmm3
cmovae ecx, edx
comiss xmm2, xmm0
movss xmm0, dword [esi]
cmovae eax, ecx
lea ecx, [esp + 0x20]
comiss xmm0, xmm1
movss xmm6, dword [eax]
lea eax, [esp + 0x2c]
movss dword [esp + 0x20], xmm1
cmovae ecx, esi
movss dword [esp + 0x28], xmm6
comiss xmm3, xmm0
movss xmm0, dword [edi + 0x14]
movss dword [esp + 0x1c], xmm6
cmovae eax, ecx
lea ecx, [esp + 0x20]
comiss xmm0, dword [0x1022fc38]
movss xmm4, dword [eax]
lea eax, [edi + 0x14]
movss dword [esp + 0x18], xmm4
cmovae ecx, eax
movss dword [esp + 0x2c], xmm4
mov dword [esp + 0x20], VariantInit
lea eax, [esp + 0x30]
mov ebx, dword [0x1023d288]
comiss xmm5, xmm0
mov dword [esp + 0x24], ebx
cmovae eax, ecx
movss xmm5, dword [eax]
mov eax, dword [0x1023d21c]
movss dword [esp + 0x20], xmm5
test eax, eax
jne 0x1001df24
mov edx, 0xe80c2f78
mov ecx, 0x10211651
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x1021165d
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
mov ebx, dword [0x1023d288]
lea edx, [edi + 0xc]
movss xmm6, dword [esp + 0x1c]
lea esi, [edi + 0x10]
movss xmm4, dword [esp + 0x18]
movss xmm5, dword [esp + 0x20]
mov dword [0x1023d21c], eax
cmp byte [0x10273464], 0
mov ecx, dword [esp + 0x24]
movss xmm0, dword [ecx + eax + 8]
subss xmm0, dword [esp + 0x10]
movss dword [esp + 0x10], xmm0
je 0x1001e04b
cmp dword [0x1023732c], 1
jne 0x1001e04b
mov eax, dword [0x1023d214]
movss xmm2, dword [esp + 0x14]
movss xmm0, dword [edi + 0x24]
movaps xmm1, xmm2
movss xmm3, dword [0x1022f964]
mulss xmm1, dword [eax + 0x20]
mulss xmm0, xmm3
mulss xmm1, xmm0
movss xmm0, dword [edi + 0x28]
mulss xmm0, xmm3
movss dword [edi + 0x24], xmm1
movaps xmm1, xmm2
mulss xmm1, dword [eax + 0x20]
mulss xmm1, xmm0
movss xmm0, dword [edi + 0x2c]
mulss xmm0, xmm3
movss dword [edi + 0x28], xmm1
mulss xmm2, dword [eax + 0x20]
mov eax, dword [0x1023d310]
movss dword [edx], xmm6
movss dword [esi], xmm4
mulss xmm2, xmm0
movss dword [edi + 0x14], xmm5
movss dword [edi + 0x2c], xmm2
test eax, eax
jne 0x1001dff6
mov edx, 0xe80c2f78
mov ecx, 0x102119f5
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x1021165d
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
mov dword [0x1023d310], eax
movss xmm0, dword [esp + 0x10]
movss dword [ebx + eax + 8], xmm0
mov eax, dword [0x1023d21c]
mov edi, dword [0x1023d288]
test eax, eax
jne 0x1001e045
mov edx, 0xe80c2f78
mov ecx, 0x10211651
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x1021165d
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
movss xmm0, dword [esp + 0x10]
mov dword [0x1023d21c], eax
movss dword [edi + eax + 8], xmm0
call fcn.10027840
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret