Function at 0x1006e980
Capabilities:
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x54
mov esi, dword [ebp + 8]
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x1007d910
mov edx, dword fs:[0]
mov dword [ebp - 0x18], edx
mov dword fs:[0], eax
mov eax, dword [esi + 4]
mov ebx, dword [eax + 0x14]
cmp ebx, 3
jae 0x1006ede5
mov dword [ebp - 0x34], eax
mov eax, dword [esi]
mov esi, dword [eax]
mov eax, dword [esi + 0x2950]
mov edx, dword [eax]
mov eax, dword [0x10132ba0]
test al, 1
mov dword [ebp - 0x58], ecx
je 0x1006edea
mov edi, dword [0x10132b9c]
mov eax, dword [edi + 4]
mov eax, dword [eax + esi]
mov dword [ebp - 0x28], eax
add edx, dword [edx + 0xb0]
mov eax, dword [0x1012d320]
mov eax, dword [eax + 0x1c8]
mov dword [ebp - 0x20], eax
mov eax, dword [0x1012d47c]
test al, 1
mov dword [ebp - 0x2c], edx
je 0x1006ee4e
mov edi, dword [0x1012d478]
mov edx, dword [ebp + 0xc]
imul esi, ebx, 0x1b50
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0x20]
movzx eax, word [eax + ecx]
mov word [ebp - 0x20], ax
mov eax, edx
and eax, 1
mov ecx, edx
shr ecx, 1
and ecx, 1
bt edx, 3
adc ecx, eax
inc ecx
mov eax, edx
shr eax, 4
and eax, 1
bt edx, 5
adc eax, ecx
mov ecx, dword [ebp - 0x28]
lea ebx, [ecx + ecx*2]
mov dword [ebp - 0x50], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x14]
sub ecx, dword [edx + 0xc]
sar ecx, 2
imul ecx, ecx, 0xc4ec4ec5
add edx, 0xc
mov dword [ebp - 0x24], edx
cmp ecx, eax
jae 0x1006ea87
mov dword [ebp - 0x10], 0xffffffff
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0x50]
push eax
call fcn.1007cfc0
mov eax, dword [ebp - 0x34]
lea edi, [eax + esi]
add edi, 0x35c
mov eax, dword [ebp - 0x2c]
lea eax, [eax + ebx*4]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x58]
add eax, 0x3c
mov dword [ebp - 0x30], eax
xor ecx, ecx
vxorps xmm5, xmm5, xmm5
vmovss xmm6, dword [0x100f54dc]
jmp 0x1006eacd
mov ecx, dword [ebp - 0x28]
inc ecx
cmp ecx, 6
je 0x1006ec52
mov eax, dword [ebp + 0xc]
mov edx, ecx
mov dword [ebp - 0x28], ecx
bt eax, ecx
jae 0x1006eac0
mov eax, dword [ebp - 0x28]
lea eax, [eax + eax*2]
mov ecx, dword [ebp - 0x30]
mov ebx, dword [ecx + eax*4]
mov eax, dword [ecx + eax*4 + 4]
mov dword [ebp - 0x2c], eax
cmp ebx, eax
jne 0x1006eb28
jmp 0x1006eac0
mov dword [ebp - 0x10], 0xffffffff
mov ecx, dword [ebp - 0x24]
lea esi, [ebp - 0x60]
push esi
push edx
push ebx
lea edx, [ebp - 0x35]
push edx
lea edx, [ebp - 0x50]
push edx
push eax
call fcn.1007d080
vmovss xmm6, dword [0x100f54dc]
vxorps xmm5, xmm5, xmm5
nop dword [eax]
add ebx, 4
cmp ebx, dword [ebp - 0x2c]
je 0x1006eac0
cmp word [ebp - 0x20], 0x1f
setne dl
mov ecx, dword [ebx]
cmp ecx, 3
sete dh
mov esi, dword [ebp - 0x34]
mov eax, dword [esi + 8]
add eax, esi
je 0x1006eb20
or dl, dh
je 0x1006eb20
mov edx, ecx
shl edx, 6
lea ecx, [edx + ecx*4]
mov dword [ebp - 0x48], 0
vmovlps qword [ebp - 0x50], xmm5
mov edx, dword [eax + ecx]
lea edx, [edx + edx*2]
vmovss xmm0, dword [eax + ecx + 0x10]
vaddss xmm0, xmm0, dword [eax + ecx + 0x1c]
shl edx, 4
vmovss xmm1, dword [eax + ecx + 0xc]
vaddss xmm1, xmm1, dword [eax + ecx + 0x18]
vmovss xmm2, dword [eax + ecx + 8]
vaddss xmm2, xmm2, dword [eax + ecx + 0x14]
vmulss xmm0, xmm0, xmm6
vmulss xmm1, xmm1, xmm6
vmulss xmm2, xmm2, xmm6
vmulss xmm3, xmm1, dword [edi + edx + 4]
vfmadd231ss xmm3, xmm2, dword [edi + edx]
vfmadd231ss xmm3, xmm0, dword [edi + edx + 8]
vaddss xmm3, xmm3, dword [edi + edx + 0xc]
vmulss xmm4, xmm1, dword [edi + edx + 0x14]
vfmadd231ss xmm4, xmm2, dword [edi + edx + 0x10]
vfmadd231ss xmm4, xmm0, dword [edi + edx + 0x18]
vaddss xmm4, xmm4, dword [edi + edx + 0x1c]
vmulss xmm1, xmm1, dword [edi + edx + 0x24]
vfmadd231ss xmm1, xmm2, dword [edi + edx + 0x20]
vfmadd231ss xmm1, xmm0, dword [edi + edx + 0x28]
vaddss xmm0, xmm1, dword [edi + edx + 0x2c]
vmovss dword [ebp - 0x50], xmm3
vmovss dword [ebp - 0x4c], xmm4
vmovss dword [ebp - 0x48], xmm0
mov dword [ebp - 0x60], 0
lea edx, [eax + ecx + 4]
mov byte [ebp - 0x35], 1
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x10]
cmp eax, dword [ecx + 0x14]
je 0x1006eaf3
mov ecx, dword [edx]
mov edx, dword [ebx]
mov esi, dword [ebp - 0x48]
mov dword [eax + 8], esi
mov esi, dword [ebp + 8]
vmovsd xmm0, qword [ebp - 0x50]
vmovsd qword [eax], xmm0
vmovups xmmword [eax + 0xc], xmm5
mov dword [eax + 0x1c], 0
mov word [eax + 0x20], 1
mov dword [eax + 0x24], 0
mov dword [eax + 0x28], edx
mov dword [eax + 0x2c], ecx
mov dword [eax + 0x30], 0
add dword [esi + 0x10], 0x34
jmp 0x1006eb20
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
mov esi, dword [ecx + 4]
mov ecx, dword [esi + 0x14]
mov dword [ebp - 0x2c], ecx
mov ebx, dword [eax]
mov eax, dword [0x10132ba8]
test al, 1
je 0x1006eeac
mov edi, dword [0x10132ba4]
mov dword [ebp - 0x10], 0xffffffff
lea eax, [esi + 0x60]
mov ecx, dword [edi + 4]
mov edx, dword [eax + 8]
mov dword [ecx + ebx + 8], edx
vmovsd xmm0, qword [eax]
vmovsd qword [ecx + ebx], xmm0
mov edx, dword [0x1012d320]
mov ecx, ebx
push eax
call dword [edx + 0x18]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0xc]
test eax, eax
je 0x1006ecf5
lea ecx, [esi + 0x6c]
mov dword [ebp - 0x28], ecx
lea edx, [esi + 0x78]
vmovss xmm0, dword [ebx + 0x9920]
vmovss dword [ebp - 0x20], xmm0
vmovss xmm0, dword [ebx + 0x9924]
vmovss dword [ebp - 0x34], xmm0
mov edi, dword [0x1012d320]
mov ecx, eax
push edx
push dword [ebp - 0x28]
call dword [edi + 0x28]
vmovss xmm0, dword [ebp - 0x20]
vmovss dword [ebx + 0x9920], xmm0
vmovss xmm0, dword [ebp - 0x34]
vmovss dword [ebx + 0x9924], xmm0
mov eax, dword [ebp - 0x2c]
cmp eax, 3
jae 0x1006ede5
imul edi, eax, 0x1b50
lea eax, [esi + edi]
add eax, 0x35c
mov dword [ebp - 0x2c], eax
vmovss xmm0, dword [esi + edi + 0x1b60]
mov dword [ebp - 0x50], 0
vmovss dword [ebp - 0x4c], xmm0
mov dword [ebp - 0x48], 0
mov eax, dword [0x1012d320]
mov ecx, ebx
lea edx, [ebp - 0x50]
push edx
call dword [eax + 0x14]
mov eax, dword [esi + edi + 0x1b5c]
shl eax, 4
lea eax, [eax + eax*2]
push eax
push dword [ebp - 0x2c]
push dword [ebx + 0x2914]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [0x1012d320]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0xa]
mov eax, dword [eax]
mov dword [ebx + 0x2690], eax
mov edi, dword [ebp + 8]
mov esi, dword [edi + 0xc]
mov ebx, dword [edi + 0x10]
cmp esi, ebx
vmovss xmm1, dword [ebp + 0x18]
vmovss xmm2, dword [ebp + 0x14]
vmovss xmm0, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x58]
je 0x1006edd2
nop dword [eax]
sub esp, 0x18
vmovss dword [esp + 0x14], xmm1
vmovss dword [esp + 0x10], xmm2
vmovss dword [esp + 0xc], xmm0
mov dword [esp + 4], esi
mov dword [esp], edi
mov dword [esp + 8], 1
call fcn.1006dab0
mov ecx, dword [ebp - 0x58]
vmovss xmm0, dword [ebp + 0x10]
vmovss xmm2, dword [ebp + 0x14]
vmovss xmm1, dword [ebp + 0x18]
add esi, 0x34
cmp esi, ebx
jne 0x1006ed90
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
add esp, 0x54
pop esi
pop edi
pop ebx
pop ebp
ret 0x14
call fcn.1007cfb0
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x2c], edx
or eax, 1
mov dword [0x10132ba0], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x20], ecx
push str.CBaseAnimating__m_nHitboxSet
call fcn.100083b0
mov esi, dword [ebp - 0x40]
cmp dword [ebp - 0x3c], 0x10
jb 0x1006ee29
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x1006ef09
mov eax, esi
and eax, 3
mov dword [ebp - 0x28], eax
cmp esi, 4
jae 0x1006ef24
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1006ef6d
mov dword [ebp - 0x54], ebx
or eax, 1
mov dword [0x1012d47c], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x10], 2
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x24], ecx
push str.CBaseAttributableItem__m_iItemDefinitionIndex
call fcn.100083b0
mov esi, dword [ebp - 0x40]
cmp dword [ebp - 0x3c], 0x10
jb 0x1006ee87
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x24], eax
test esi, esi
je 0x1006ef10
mov eax, esi
and eax, 3
mov dword [ebp - 0x30], eax
cmp esi, 4
jae 0x1006effa
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1006f043
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x24], ebx
or eax, 1
mov dword [0x10132ba8], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], 4
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x20], ecx
push str.CBaseEntity__m_vecOrigin
call fcn.100083b0
mov esi, dword [ebp - 0x40]
cmp dword [ebp - 0x3c], 0x10
jb 0x1006eee8
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x1006ef1a
mov eax, esi
and eax, 3
mov dword [ebp - 0x34], eax
cmp esi, 4
jae 0x1006f0ca
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1006f113
mov ecx, 0x811c9dc5
jmp 0x1006ef8a
mov ecx, 0x811c9dc5
jmp 0x1006f060
mov ecx, 0x811c9dc5
jmp 0x1006f130
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 0x1006ef33
cmp dword [ebp - 0x28], 0
je 0x1006ef8a
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 0x1006ef78
mov edx, dword [ebp - 0x24]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x1006f1a0
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
jne 0x1006efc9
cmp dword [edi + 0x1c], 0x10
jb 0x1006efb5
mov eax, dword [edi + 8]
jmp 0x1006efb8
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x1006efdb
cmp edi, ebx
je 0x1006f1a0
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
je 0x1006efaa
jmp 0x1006efc9
add edi, 0x20
lea ecx, [ebp - 0x50]
call fcn.100029d0
mov dword [0x10132b9c], edi
mov edx, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x30]
jmp 0x1006e9e4
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 0x1006f009
cmp dword [ebp - 0x30], 0
je 0x1006f060
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 - 0x30], edi
jne 0x1006f04e
mov edx, dword [ebp - 0x5c]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x1006f1b4
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
jne 0x1006f09f
cmp dword [edi + 0x1c], 0x10
jb 0x1006f08b
mov eax, dword [edi + 8]
jmp 0x1006f08e
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x24]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x1006f0b1
cmp edi, ebx
je 0x1006f1b4
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
je 0x1006f080
jmp 0x1006f09f
add edi, 0x20
lea ecx, [ebp - 0x50]
call fcn.100029d0
mov dword [0x1012d478], edi
mov ebx, dword [ebp - 0x54]
jmp 0x1006ea17
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 0x1006f0d9
cmp dword [ebp - 0x34], 0
je 0x1006f130
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 - 0x34], edi
jne 0x1006f11e
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 0x1006f1c8
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
jne 0x1006f16f
cmp dword [edi + 0x1c], 0x10
jb 0x1006f15b
mov eax, dword [edi + 8]
jmp 0x1006f15e
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x1006f17d
cmp edi, ebx
je 0x1006f1c8
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
je 0x1006f150
jmp 0x1006f16f
add edi, 0x20
lea ecx, [ebp - 0x50]
call fcn.100029d0
mov dword [0x10132ba4], edi
mov dword [ebp - 0x10], 0xffffffff
mov ebx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x30]
jmp 0x1006ec7c
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], 5
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
nop dword [eax]
push ebp
sub esp, 0x18
add ebp, 0xc
lea ecx, [ebp - 0x50]
call fcn.100029d0
add esp, 0x18
pop ebp
ret