Function at 0x1008dcd0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34
mov dword [ecx], 0
mov eax, dword [0x10107740]
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, dword [eax + 8]
mov dword [esp + 0x14], ecx
mov ecx, dword [edi]
mov esi, dword [ecx + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
push eax
mov ecx, edi
call esi
mov edi, dword [esp + 0x14]
mov dword [edi], eax
test eax, eax
je 0x1008e694
mov eax, dword [0x10107740]
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x128]
call eax
test eax, eax
je 0x1008e694
mov ecx, dword [edi]
lea esi, [eax + 8]
mov eax, dword [0x100f51e8]
mov dword [esp + 0x14], esi
mov edx, dword [eax + ecx]
test edx, edx
je 0x1008e694
mov eax, dword [0x10107740]
push edx
mov ecx, dword [eax + 8]
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp byte [0x10105774], 0
mov dword [esp + 0x10], eax
jne 0x1008dd6e
push eax
push ecx
mov ecx, edi
call fcn.1008f6b0
mov eax, dword [esp + 0x10]
cmp byte [0x10105875], 0
je 0x1008dd81
push esi
push eax
push ebx
mov ecx, edi
call fcn.100903e0
cmp byte [0x101055bb], 0
jne 0x1008e694
cmp byte [0x101055b8], 0
jne 0x1008e694
cmp byte [0x101058c8], 0
je 0x1008ddaf
push esi
push dword [esp + 0x14]
push ebx
call fcn.1008eb00
cmp byte [0x101058ef], 0
je 0x1008ddc5
push esi
push dword [esp + 0x14]
push ecx
mov ecx, edi
call fcn.1008e6a0
cmp byte [0x1010581c], 0
mov eax, dword [esp + 0x10]
je 0x1008df63
test eax, eax
je 0x1008df63
mov eax, dword fs:[0x2c]
mov ecx, dword [0x10106354]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x10106390]
cmp eax, dword [ecx + 4]
jle 0x1008de32
push 0x10106390
call fcn.100d8ed3
add esp, 4
cmp dword [0x10106390], 0xffffffff
jne 0x1008de32
push str.client.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
add eax, 0x151a0
push 0x10106390
mov dword [0x10106394], eax
call fcn.100d8e89
add esp, 4
mov eax, dword [0x10106394]
mov ecx, dword [esp + 0x10]
call eax
push str.weapon_spitter_claw
lea ecx, [esp + 0x2c]
mov esi, eax
call fcn.10007b20
lea edx, [esi + 6]
mov ecx, eax
call fcn.10007000
mov ecx, dword [esp + 0x3c]
mov byte [esp + 0x1f], al
cmp ecx, 0x10
jb 0x1008de97
mov edx, dword [esp + 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1008de89
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1008de89
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.100d8ffc
mov al, byte [esp + 0x27]
add esp, 8
test al, al
je 0x1008df30
mov ecx, dword [edi]
mov eax, dword [0x100edbd0]
mov esi, dword [esp + 0x14]
cmp dword [eax + ecx], 0x15
jne 0x1008df36
cmp byte [0x10105cc1], 0
mov byte [0x10105cc0], 0
sete al
mov byte [0x10105cc1], al
test al, al
je 0x1008df4d
mov eax, dword [esi]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101003a0]
cvtpd2ps xmm0, xmm0
addss xmm0, dword [0x100ff520]
call fcn.100d97f0
mov dword [esi], eax
mov eax, dword [0x10107740]
mov esi, dword [eax + 0x48]
mov eax, dword [esi + 0x4a44]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101003a0]
cvtpd2ps xmm0, xmm0
addss xmm0, dword [0x100ff520]
call fcn.100d97f0
mov dword [esi + 0x4a44], eax
mov esi, dword [esp + 0x14]
jmp 0x1008df5f
cmp byte [0x10105cc0], 0
jne 0x1008df5f
mov byte [0x10105cc1], 0
mov byte [0x10105cc0], 1
mov eax, dword [0x10107740]
mov eax, dword [eax + 0x48]
mov dword [eax + 0x4a44], 0
mov eax, dword [esp + 0x10]
cmp byte [0x10105854], 0
je 0x1008df76
push esi
push eax
push ebx
mov ecx, edi
call fcn.1008f4a0
cmp byte [0x10105864], 0
je 0x1008df8a
push esi
push dword [esp + 0x14]
push ebx
call fcn.1008f050
cmp byte [0x101058d5], 0
je 0x1008df9e
push esi
push dword [esp + 0x14]
push ebx
call fcn.1008ed40
cmp byte [0x101058d4], 0
je 0x1008dfb2
push esi
push dword [esp + 0x14]
push ebx
call fcn.1008f270
movss xmm0, dword [0x10105698]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x1008dfcf
cmp byte [0x101055b9], 0
je 0x1008dfdb
push dword [esp + 0x10]
mov ecx, edi
push ebx
call fcn.1008ff10
cmp byte [0x10105820], 0
mov eax, dword [esp + 0x10]
je 0x1008e098
test eax, eax
je 0x1008e098
cmp dword [ebx + 0x2c], 0
je 0x1008e072
mov eax, dword [esi]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101003a0]
cvtpd2ps xmm0, xmm0
addss xmm0, dword [0x100ff464]
call fcn.100d97f0
mov dword [esi], eax
mov eax, dword [0x10107740]
mov esi, dword [eax + 0x48]
mov eax, dword [esi + 0x4a44]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101003a0]
cvtpd2ps xmm0, xmm0
addss xmm0, dword [0x100ff464]
call fcn.100d97f0
cmp byte [0x10105cc2], 0
mov dword [esi + 0x4a44], eax
mov eax, dword [esp + 0x10]
je 0x1008e098
mov byte [0x10105cc2], 0
jmp 0x1008e098
cmp byte [0x10105cc2], 0
jne 0x1008e098
mov eax, dword [0x10107740]
mov byte [0x10105cc2], 1
mov eax, dword [eax + 0x48]
mov dword [eax + 0x4a44], 0
mov eax, dword [esp + 0x10]
cmp byte [0x1010581d], 0
mov esi, dword [esp + 0x14]
je 0x1008e0ad
push esi
push eax
push ebx
call fcn.1008fa30
cmp byte [0x1010581e], 0
je 0x1008e0c1
push esi
push dword [esp + 0x14]
push ebx
call fcn.1008f850
cmp byte [0x1010581f], 0
je 0x1008e1c7
mov eax, dword [0x10107740]
mov esi, dword [0x1010553c]
push esi
mov dword [esp + 0x24], esi
mov ecx, dword [eax + 0x60]
mov eax, dword [ecx]
mov eax, dword [eax + 0x80]
call eax
test eax, eax
jne 0x1008e0fb
push esi
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jmp 0x1008e11f
mov eax, dword [0x10107740]
push dword [esp + 0x20]
mov esi, dword [eax + 0x60]
mov ecx, esi
mov eax, dword [esi]
mov eax, dword [eax + 0x80]
call eax
mov ecx, dword [esi]
push eax
mov edx, dword [ecx + 0x2c]
mov ecx, esi
call edx
test al, al
je 0x1008e1a5
or dword [ebx + 0x24], 0x28
cmp byte [0x10107800], 0
je 0x1008e1c7
mov esi, dword [esp + 0x14]
mov eax, dword [esi]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101003a0]
cvtpd2ps xmm0, xmm0
addss xmm0, dword [0x1010582c]
call fcn.100d97f0
mov dword [esi], eax
mov eax, dword [0x10107740]
mov esi, dword [eax + 0x48]
mov eax, dword [esi + 0x4a44]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101003a0]
cvtpd2ps xmm0, xmm0
addss xmm0, dword [0x1010582c]
call fcn.100d97f0
mov dword [esi + 0x4a44], eax
mov byte [0x10107800], 0
jmp 0x1008e1c7
cmp byte [0x10107800], 0
jne 0x1008e1c7
mov eax, dword [0x10107740]
mov byte [0x10107800], 1
mov eax, dword [eax + 0x48]
mov dword [eax + 0x4a44], 0
mov eax, dword [0x10105694]
mov dword [esp + 0x24], eax
test eax, eax
je 0x1008e2b5
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mov eax, dword [0x10107740]
mov esi, dword [0x101055a8]
push esi
mov dword [esp + 0x24], esi
mov ecx, dword [eax + 0x60]
divsd xmm0, qword [0x100ff2e0]
mov eax, dword [ecx]
mov eax, dword [eax + 0x80]
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x1c], xmm0
call eax
test eax, eax
jne 0x1008e21f
push esi
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jmp 0x1008e243
mov eax, dword [0x10107740]
push dword [esp + 0x20]
mov esi, dword [eax + 0x60]
mov ecx, esi
mov eax, dword [esi]
mov eax, dword [eax + 0x80]
call eax
mov ecx, dword [esi]
push eax
mov edx, dword [ecx + 0x2c]
mov ecx, esi
call edx
test al, al
mov esi, dword [esp + 0x14]
je 0x1008e287
mov edx, dword [esp + 0x24]
add dword [esi], edx
mov eax, dword [0x10107740]
movss xmm0, dword [esp + 0x18]
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x48]
mulss xmm0, dword [ecx + 0x1c]
add dword [eax + 0x4a44], edx
cmp byte [0x101077fa], 0
cvttss2si ecx, xmm0
mov dword [0x10107540], ecx
jne 0x1008e2b9
mov byte [0x101077fa], 1
jmp 0x1008e2b9
cmp byte [0x101077fa], 0
je 0x1008e2b9
mov eax, dword [0x10107740]
mov dword [0x10107540], 0
mov byte [0x101077fa], 0
mov eax, dword [eax + 0x48]
mov dword [eax + 0x4a44], 0
jmp 0x1008e2b9
mov esi, dword [esp + 0x14]
cmp dword [0x10105658], 0
je 0x1008e2ca
push ebx
mov ecx, edi
call fcn.10092030
cmp dword [0x101055e4], 0
je 0x1008e2da
push esi
push ebx
call fcn.10090210
cmp byte [0x101055e8], 0
je 0x1008e391
mov eax, dword [edi]
add eax, dword [0x100ecac4]
movss xmm2, dword [0x100ff594]
movss xmm1, dword [0x100ff328]
mov byte [0x1010638c], 0
movq xmm0, qword [eax]
movq qword [esp + 0x28], xmm0
movss xmm0, dword [esp + 0x28]
comiss xmm0, xmm2
jbe 0x1008e320
comiss xmm1, xmm0
ja 0x1008e391
movss xmm0, dword [esp + 0x2c]
comiss xmm0, xmm2
jbe 0x1008e330
comiss xmm1, xmm0
ja 0x1008e391
mov eax, dword [0x10107740]
mov esi, dword [0x10105578]
push esi
mov dword [esp + 0x1c], esi
mov ecx, dword [eax + 0x60]
mov eax, dword [ecx]
mov eax, dword [eax + 0x80]
call eax
test eax, eax
jne 0x1008e35d
push esi
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jmp 0x1008e381
mov eax, dword [0x10107740]
push dword [esp + 0x18]
mov esi, dword [eax + 0x60]
mov ecx, esi
mov eax, dword [esi]
mov eax, dword [eax + 0x80]
call eax
mov ecx, dword [esi]
push eax
mov edx, dword [ecx + 0x2c]
mov ecx, esi
call edx
test al, al
je 0x1008e391
mov byte [0x1010638c], 1
mov dword [ebx + 0xc], 0x7cf0bdc2
mov eax, dword [edi]
cmp dword [eax + 0x144], 9
je 0x1008e694
mov eax, dword [0x101055ec]
cmp eax, 1
jne 0x1008e463
cmp byte [0x101077d9], 0
jne 0x1008e3d0
cmp byte [0x101077d8], 0
je 0x1008e3d0
or dword [ebx + 0x24], 2
mov byte [0x101077d8], 0
jmp 0x1008e470
test byte [ebx + 0x24], 2
je 0x1008e453
mov eax, dword [0x10107740]
mov esi, dword [0x1010552c]
push esi
mov dword [esp + 0x1c], esi
mov ecx, dword [eax + 0x60]
mov eax, dword [ecx]
mov eax, dword [eax + 0x80]
call eax
test eax, eax
jne 0x1008e403
push esi
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jmp 0x1008e427
mov eax, dword [0x10107740]
push dword [esp + 0x18]
mov esi, dword [eax + 0x60]
mov ecx, esi
mov eax, dword [esi]
mov eax, dword [eax + 0x80]
call eax
mov ecx, dword [esi]
push eax
mov edx, dword [ecx + 0x2c]
mov ecx, esi
call edx
test al, al
je 0x1008e453
mov ecx, dword [edi]
mov eax, dword [0x100f50a4]
test byte [eax + ecx], 1
je 0x1008e446
mov al, 1
mov byte [0x101077d8], 1
mov byte [0x101077d9], al
jmp 0x1008e470
and dword [ebx + 0x24], 0xfffffffd
xor al, al
mov byte [0x101077d9], al
jmp 0x1008e470
mov byte [0x101077d9], 0
mov byte [0x101077d8], 0
jmp 0x1008e470
cmp eax, 2
jne 0x1008e470
push ebx
mov ecx, edi
call fcn.10093730
mov eax, dword [0x101055f8]
cmp eax, 1
jne 0x1008e4c0
mov ecx, dword [edi]
mov eax, dword [0x100f50a4]
mov byte [0x10107787], 0
test byte [eax + ecx], 1
jne 0x1008e5c2
movzx eax, word [ebx + 0x38]
mov byte [0x10107787], 1
test ax, ax
jns 0x1008e4ae
mov dword [ebx + 0x1c], 0xc3e10000
jmp 0x1008e5c2
jle 0x1008e5c2
mov dword [ebx + 0x1c], 0x43e10000
jmp 0x1008e5c2
cmp eax, 2
jne 0x1008e4d2
push ebx
mov ecx, edi
call fcn.100934d0
jmp 0x1008e5c2
cmp eax, 3
jne 0x1008e5b0
mov ecx, dword [edi]
mov eax, dword [0x100f50a4]
test byte [eax + ecx], 1
jne 0x1008e5c2
mov eax, dword [0x100f522c]
movq xmm0, qword [eax + ecx]
movq qword [esp + 0x28], xmm0
movss xmm0, dword [ebx + 0x10]
movss xmm1, dword [esp + 0x28]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [esp + 0x2c]
call fcn.10007dc0
movss xmm3, dword [0x100ff430]
mulss xmm0, xmm3
movss xmm1, dword [esp + 0x18]
movss xmm4, dword [0x100ff5a8]
movaps xmm2, xmm1
divss xmm0, dword [0x100ff2a0]
subss xmm2, xmm0
movss xmm0, dword [0x100ff48c]
comiss xmm4, xmm2
jbe 0x1008e559
nop
addss xmm2, xmm0
comiss xmm4, xmm2
ja 0x1008e550
comiss xmm2, xmm3
jbe 0x1008e569
nop
subss xmm2, xmm0
comiss xmm2, xmm3
ja 0x1008e560
xorps xmm5, xmm5
comiss xmm2, xmm5
jbe 0x1008e57b
movss xmm5, dword [0x100ff5ac]
jmp 0x1008e583
movss xmm5, dword [0x100ff4b0]
subss xmm1, xmm2
movss dword [ebx + 0x1c], xmm5
comiss xmm4, xmm1
jbe 0x1008e59a
addss xmm1, xmm0
comiss xmm4, xmm1
ja 0x1008e591
comiss xmm1, xmm3
jbe 0x1008e5a9
nop
subss xmm1, xmm0
comiss xmm1, xmm3
ja 0x1008e5a0
movss dword [ebx + 0x10], xmm1
jmp 0x1008e5c2
cmp eax, 4
je 0x1008e5ba
cmp eax, 5
jne 0x1008e5c2
push ebx
mov ecx, edi
call fcn.10093210
cmp byte [0x1010562b], 0
je 0x1008e66c
mov ecx, dword [edi]
mov eax, dword [0x100f50a4]
mov byte [0x1010638b], 0
test byte [eax + ecx], 1
jne 0x1008e66c
call dword [sym.imp.KERNEL32.dll_GetTickCount64]
test edx, edx
jb 0x1008e66c
ja 0x1008e5fb
cmp eax, dword [0x101077e0]
jbe 0x1008e66c
mov eax, dword [0x10107740]
mov esi, dword [0x10105528]
push esi
mov dword [esp + 0x1c], esi
mov ecx, dword [eax + 0x60]
mov eax, dword [ecx]
mov eax, dword [eax + 0x80]
call eax
test eax, eax
jne 0x1008e628
push esi
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jmp 0x1008e64c
mov eax, dword [0x10107740]
push dword [esp + 0x18]
mov esi, dword [eax + 0x60]
mov ecx, esi
mov eax, dword [esi]
mov eax, dword [eax + 0x80]
call eax
mov ecx, dword [esi]
push eax
mov edx, dword [ecx + 0x2c]
mov ecx, esi
call edx
test al, al
je 0x1008e65c
mov byte [0x1010638b], 1
mov dword [ebx + 0xc], 0x7cf0bdc2
call dword [sym.imp.KERNEL32.dll_GetTickCount64]
add eax, 0x2bc
mov dword [0x101077e0], eax
cmp byte [0x1010565d], 0
mov esi, dword [esp + 0x10]
je 0x1008e682
push esi
push ebx
mov ecx, edi
call fcn.100919d0
cmp dword [0x1010562c], 0
je 0x1008e694
push esi
push ebx
mov ecx, edi
call fcn.100906d0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4