Function at 0x1006dab0
Capabilities:
Encode data using xor
Hash data using fnv
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x4c
mov dword [ebp - 0x24], ecx
vmovss xmm0, dword [ebp + 0x1c]
vmovss xmm1, dword [ebp + 0x18]
vmovss xmm2, dword [ebp + 0x14]
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x1007d900
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
vmovss dword [ebp - 0x58], xmm2
vmovss dword [ebp - 0x54], xmm1
vmovss dword [ebp - 0x50], xmm0
mov eax, dword [0x1012d320]
mov ebx, dword [eax + 0x1c8]
mov ecx, dword [0x1012d47c]
test cl, 1
je 0x1006dd03
mov edi, dword [0x1012d478]
mov esi, dword [ebp + 8]
mov ecx, dword [edi + 4]
xor edx, edx
cmp word [ecx + ebx], 0x1f
sete dl
mov eax, dword [eax + 0x1cc]
mov ecx, dword [esi]
mov esi, dword [ecx]
mov ecx, dword [0x1012d35c]
mov edi, dword [ecx]
mov ebx, dword [ebp + 0xc]
mov ecx, dword [0x1012d33c]
sub esp, 0x24
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov dword [esp + 8], esi
mov dword [esp + 4], edi
lea eax, [ebp - 0x48]
mov dword [esp], eax
mov dword [esp + 0x20], ebx
vmovss dword [esp + 0x1c], xmm0
vmovss dword [esp + 0x18], xmm1
vmovss dword [esp + 0x14], xmm2
call fcn.10091930
mov eax, dword [ebp - 0x38]
mov dword [ebx + 0x1c], eax
vmovups xmm0, xmmword [ebp - 0x48]
vmovups xmmword [ebx + 0xc], xmm0
cmp dword [ebx + 0x10], 0
jle 0x1006dcf0
mov eax, dword [0x1012d494]
test al, 1
je 0x1006dd62
cmp byte [ebp + 0x10], 0
jne 0x1006dc07
mov eax, dword [ebp - 0x24]
mov esi, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
inc esi
test eax, eax
je 0x1006dbca
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x1006dbca
mov eax, dword [ebp - 0x24]
mov esi, dword [eax + 0x20]
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0xa], 0
je 0x1006dbfb
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov ecx, dword [eax]
mov eax, dword [0x1012d494]
test al, 1
je 0x1006df1a
mov edi, dword [0x1012d490]
mov eax, dword [edi + 4]
mov eax, dword [eax + ecx]
add eax, 5
cmp eax, esi
cmovl esi, eax
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x10], esi
jl 0x1006dcf0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x24], ecx
mov edx, dword [eax]
mov eax, dword [edx + 0x2950]
mov esi, dword [eax]
mov eax, dword [0x10132ba0]
test al, 1
je 0x1006ddbd
mov edi, dword [0x10132b9c]
mov ebx, dword [ebp - 0x24]
lea eax, [ebx + 0x35c]
mov dword [ebp - 0x20], eax
mov ecx, dword [edi + 4]
mov ecx, dword [ecx + edx]
add esi, dword [esi + 0xb0]
lea ecx, [ecx + ecx*2]
lea edx, [esi + ecx*4]
add edx, dword [esi + ecx*4 + 8]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x28]
mov esi, ecx
shl esi, 6
lea ecx, [esi + ecx*4]
lea esi, [edx + ecx]
mov edi, dword [edx + ecx]
lea eax, [edi + edi*2]
shl eax, 4
add eax, dword [ebp - 0x20]
add ebx, 0x1eac
lea ecx, [ebp - 0x58]
mov edx, dword [ebp + 0xc]
push eax
push esi
call fcn.1006e360
add esp, 8
test al, al
je 0x1006dc90
mov eax, dword [ebp + 0xc]
inc dword [eax + 0x24]
mov edi, dword [esi]
add dword [ebp - 0x24], 0x39fc
lea eax, [edi + edi*2]
shl eax, 4
add ebx, eax
lea ecx, [ebp - 0x58]
mov edx, dword [ebp + 0xc]
push ebx
push esi
call fcn.1006e360
add esp, 8
test al, al
je 0x1006dcbb
mov eax, dword [ebp + 0xc]
inc dword [eax + 0x24]
mov edi, dword [esi]
lea eax, [edi + edi*2]
shl eax, 4
mov edi, dword [ebp - 0x24]
add edi, eax
lea ecx, [ebp - 0x58]
mov ebx, dword [ebp + 0xc]
mov edx, ebx
push edi
push esi
call fcn.1006e360
add esp, 8
mov ecx, dword [ebx + 0x24]
test al, al
je 0x1006dce6
inc ecx
mov eax, dword [ebp + 0xc]
mov dword [eax + 0x24], ecx
mov eax, dword [ebp + 0xc]
cmp ecx, dword [eax + 0x30]
setge byte [eax + 0x21]
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
add esp, 0x4c
pop esi
pop edi
pop ebx
pop ebp
ret 0x18
mov dword [ebp - 0x30], ebx
or ecx, 1
mov dword [0x1012d47c], ecx
mov eax, dword [0x1012d324]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x20], ecx
push str.CBaseAttributableItem__m_iItemDefinitionIndex
call fcn.100083b0
mov esi, dword [ebp - 0x38]
cmp dword [ebp - 0x34], 0x10
jb 0x1006dd3d
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x1006de1e
mov eax, esi
and eax, 3
mov dword [ebp - 0x28], eax
cmp esi, 4
jae 0x1006de25
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1006de6e
or eax, 1
mov dword [0x1012d494], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x10], 2
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x20], ecx
push str.CBasePlayer__m_iHealth
call fcn.100083b0
mov esi, dword [ebp - 0x38]
cmp dword [ebp - 0x34], 0x10
jb 0x1006dd98
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x1006df10
mov eax, esi
and eax, 3
mov dword [ebp - 0x28], eax
cmp esi, 4
jae 0x1006df7b
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1006dfc4
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x30], esi
or eax, 1
mov dword [0x10132ba0], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x10], 6
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x20], ecx
push str.CBaseAnimating__m_nHitboxSet
call fcn.100083b0
mov esi, dword [ebp - 0x38]
cmp dword [ebp - 0x34], 0x10
jb 0x1006ddf9
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x1006e052
mov eax, esi
and eax, 3
mov dword [ebp - 0x28], eax
cmp esi, 4
jae 0x1006e059
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1006e0a2
mov ecx, 0x811c9dc5
jmp 0x1006de8b
mov edi, esi
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [ebp - 0x20]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x1006de34
cmp dword [ebp - 0x28], 0
je 0x1006de8b
add edx, dword [ebp - 0x20]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [ebp - 0x28], edi
jne 0x1006de79
mov edx, dword [ebp - 0x2c]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x1006e202
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
jne 0x1006deca
cmp dword [edi + 0x1c], 0x10
jb 0x1006deb6
mov eax, dword [edi + 8]
jmp 0x1006deb9
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x1006dedc
cmp edi, ebx
je 0x1006e202
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
je 0x1006deab
jmp 0x1006deca
add edi, 0x20
lea ecx, [ebp - 0x48]
call fcn.100029d0
mov dword [0x1012d478], edi
mov eax, dword [0x1012d320]
mov dword [ebp - 0x10], 0xffffffff
vmovss xmm0, dword [ebp + 0x1c]
vmovss xmm1, dword [ebp + 0x18]
vmovss xmm2, dword [ebp + 0x14]
mov ebx, dword [ebp - 0x30]
jmp 0x1006db1e
mov ecx, 0x811c9dc5
jmp 0x1006dfe1
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x2c], esi
or eax, 1
mov dword [0x1012d494], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], 4
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x24], ecx
push str.CBasePlayer__m_iHealth
call fcn.100083b0
mov esi, dword [ebp - 0x38]
cmp dword [ebp - 0x34], 0x10
jb 0x1006df56
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x24], eax
test esi, esi
je 0x1006e12c
mov eax, esi
and eax, 3
mov dword [ebp - 0x20], eax
cmp esi, 4
jae 0x1006e133
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1006e17c
mov edi, esi
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [ebp - 0x20]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x1006df8a
cmp dword [ebp - 0x28], 0
je 0x1006dfe1
add edx, dword [ebp - 0x20]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [ebp - 0x28], edi
jne 0x1006dfcf
mov edx, dword [ebp - 0x2c]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x1006e216
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
jne 0x1006e020
cmp dword [edi + 0x1c], 0x10
jb 0x1006e00c
mov eax, dword [edi + 8]
jmp 0x1006e00f
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x1006e032
cmp edi, ebx
je 0x1006e216
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
je 0x1006e001
jmp 0x1006e020
add edi, 0x20
lea ecx, [ebp - 0x48]
call fcn.100029d0
mov dword [0x1012d490], edi
cmp byte [ebp + 0x10], 0
je 0x1006dbaa
jmp 0x1006dc07
mov ecx, 0x811c9dc5
jmp 0x1006e0bf
mov edi, esi
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [ebp - 0x20]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x1006e068
cmp dword [ebp - 0x28], 0
je 0x1006e0bf
add edx, dword [ebp - 0x20]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [ebp - 0x28], edi
jne 0x1006e0ad
mov edx, dword [ebp - 0x2c]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x1006e22a
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
jne 0x1006e0fe
cmp dword [edi + 0x1c], 0x10
jb 0x1006e0ea
mov eax, dword [edi + 8]
jmp 0x1006e0ed
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x1006e110
cmp edi, ebx
je 0x1006e22a
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
je 0x1006e0df
jmp 0x1006e0fe
add edi, 0x20
lea ecx, [ebp - 0x48]
call fcn.100029d0
mov dword [0x10132b9c], edi
mov esi, dword [ebp - 0x30]
mov edx, dword [ebp - 0x4c]
jmp 0x1006dc2f
mov ecx, 0x811c9dc5
jmp 0x1006e199
mov edi, esi
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [ebp - 0x24]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x1006e142
cmp dword [ebp - 0x20], 0
je 0x1006e199
add edx, dword [ebp - 0x24]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [ebp - 0x20], edi
jne 0x1006e187
mov edx, dword [ebp - 0x28]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x1006e23e
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
jne 0x1006e1d8
cmp dword [edi + 0x1c], 0x10
jb 0x1006e1c4
mov eax, dword [edi + 8]
jmp 0x1006e1c7
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x24]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x1006e1e6
cmp edi, ebx
je 0x1006e23e
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
je 0x1006e1b9
jmp 0x1006e1d8
add edi, 0x20
lea ecx, [ebp - 0x48]
call fcn.100029d0
mov dword [0x1012d490], edi
mov esi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x30]
jmp 0x1006dbed
mov dword [ebp - 0x10], 1
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
mov dword [ebp - 0x10], 3
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
mov dword [ebp - 0x10], 7
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
mov dword [ebp - 0x10], 5
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
nop word cs:[eax + eax]
push ebp
sub esp, 0x24
add ebp, 0xc
lea ecx, [ebp - 0x48]
call fcn.100029d0
add esp, 0x24
pop ebp
ret