Function at 0x100ae0c0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x40
mov ebx, ecx
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x100b1cc0
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov eax, dword [0x1012d344]
cmp byte [eax + 0x14], 0
je 0x100ae343
cmp byte [eax + 0x17], 0
je 0x100ae343
mov esi, dword [ebp + 8]
test byte [esi + 0x30], 2
jne 0x100ae343
mov eax, dword [0x1012d35c]
mov ecx, dword [eax]
mov eax, dword [0x1012d48c]
test al, 1
je 0x100ae375
mov edi, dword [0x1012d488]
mov eax, dword [edi + 4]
test byte [eax + ecx], 1
je 0x100ae343
mov dword [ebx + 0x48], 0x43820000
mov eax, dword [0x1012d320]
mov ecx, dword [eax + 0x1c8]
test ecx, ecx
je 0x100ae166
mov eax, dword [ecx]
mov eax, dword [eax + 0x6e8]
mov dword [ebp - 0x10], 0xffffffff
call eax
fstp dword [ebx + 0x48]
mov eax, dword [0x1012d35c]
mov edx, dword [eax]
mov ecx, dword [0x10132bc0]
test cl, 1
je 0x100ae3d6
mov edi, dword [0x10132bbc]
mov ecx, dword [edi + 4]
vmovss xmm0, dword [ecx + edx]
vmovss dword [ebx + 0x44], xmm0
mov ecx, dword [eax]
mov eax, dword [0x10132c18]
test al, 1
je 0x100ae438
mov edi, dword [0x10132c14]
mov eax, dword [edi + 4]
vmovss xmm0, dword [eax + ecx]
vmovss xmm1, dword [eax + ecx + 4]
vmulss xmm1, xmm1, xmm1
vfmadd231ss xmm1, xmm0, xmm0
vucomiss xmm1, dword [0x100f55a4]
ja 0x100ae343
mov eax, dword [0x1012d35c]
mov ecx, dword [eax]
mov eax, dword [0x10132be8]
test al, 1
je 0x100ae571
mov edi, dword [0x10132be4]
mov eax, dword [edi + 4]
cmp dword [ecx + eax - 0x14], 0
je 0x100ae343
mov ecx, dword [esi + 0x30]
mov eax, ecx
and eax, 0xfffdffff
mov dword [esi + 0x30], eax
mov eax, dword [0x1012d35c]
mov edx, dword [eax]
mov eax, dword [0x10132c28]
test cl, 4
jne 0x100ae257
test al, 1
je 0x100ae794
mov edi, dword [0x10132c24]
mov ecx, edx
mov eax, dword [edi + 4]
vmovss xmm1, dword [eax + edx]
mov eax, dword [0x10132cb8]
test al, 1
je 0x100ae850
mov edi, dword [0x10132cb4]
mov eax, dword [edi + 4]
vmovss xmm0, dword [eax + ecx]
vmaxss xmm0, xmm0, dword [0x100fd690]
mov eax, dword [0x1012d364]
vfnmadd231ss xmm1, xmm0, dword [eax + 0x20]
jmp 0x100ae2a5
test al, 1
je 0x100ae7f2
mov edi, dword [0x10132c24]
mov ecx, edx
mov eax, dword [edi + 4]
vmovss xmm1, dword [eax + edx]
mov eax, dword [0x1012d364]
vmovss xmm0, dword [eax + 0x20]
mov eax, dword [0x10132cb8]
test al, 1
je 0x100ae8b3
mov edi, dword [0x10132cb4]
vmulss xmm0, xmm0, dword [0x100f55d4]
mov eax, dword [edi + 4]
vfmadd231ss xmm1, xmm0, dword [eax + ecx]
vminss xmm1, xmm1, dword [0x100f54d0]
test byte [esi + 0x30], 4
jne 0x100ae2fb
mov eax, dword [0x1012d35c]
mov ecx, dword [eax]
mov eax, dword [0x10132ce8]
test al, 1
je 0x100ae91b
mov edi, dword [0x10132ce4]
mov eax, dword [edi + 4]
cmp byte [eax + ecx], 0
jne 0x100ae2fb
mov eax, dword [0x1012d35c]
mov ecx, dword [eax]
mov eax, dword [0x1012d48c]
test al, 1
je 0x100aea4f
mov edi, dword [0x1012d488]
mov eax, dword [edi + 4]
test byte [eax + ecx], 4
jne 0x100ae2fb
vmovss xmm0, dword [0x100f5634]
jmp 0x100ae31c
vmovss xmm0, dword [0x100fe418]
vfmadd213ss xmm0, xmm1, dword [0x100f54d0]
vsubss xmm0, xmm0, xmm1
vmovss xmm1, dword [0x100f5634]
vdivss xmm0, xmm1, xmm0
vbroadcastss xmm1, dword [0x100f550c]
vmovss xmm2, dword [esi + 0x24]
vandps xmm2, xmm2, xmm1
vucomiss xmm2, xmm0
ja 0x100ae343
vmovss xmm2, dword [esi + 0x28]
vandps xmm1, xmm2, xmm1
vucomiss xmm1, xmm0
jbe 0x100ae359
xor eax, eax
mov ecx, dword [ebp - 0x18]
mov dword fs:[0], ecx
add esp, 0x40
pop esi
pop edi
pop ebx
pop ebp
ret 4
test byte [esi + 4], 1
jne 0x100ae36c
vbroadcastss xmm1, dword [0x100f54d8]
vxorps xmm0, xmm0, xmm1
vmovss dword [esi + 0x24], xmm0
mov al, 1
jmp 0x100ae345
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x2c], ebx
or eax, 1
mov dword [0x1012d48c], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x20], ecx
push str.CBasePlayer__m_fFlags
call fcn.100083b0
mov esi, dword [ebp - 0x38]
cmp dword [ebp - 0x34], 0x10
jb 0x100ae3b1
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x100ae496
mov eax, esi
and eax, 3
mov dword [ebp - 0x24], eax
cmp esi, 4
jae 0x100ae49d
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100ae4e6
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], ebx
or ecx, 1
mov dword [0x10132bc0], ecx
mov eax, dword [0x1012d324]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], 2
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x20], ecx
push str.CBasePlayer__m_flMaxspeed
call fcn.100083b0
mov esi, dword [ebp - 0x38]
cmp dword [ebp - 0x34], 0x10
jb 0x100ae413
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x100ae5cf
mov eax, esi
and eax, 3
mov dword [ebp - 0x24], eax
cmp esi, 4
jae 0x100ae5e0
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100ae629
mov dword [ebp - 0x28], ecx
or eax, 1
mov dword [0x10132c18], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x10], 4
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x20], ecx
push str.CBasePlayer__m_vecVelocity_0_
call fcn.100083b0
mov esi, dword [ebp - 0x38]
cmp dword [ebp - 0x34], 0x10
jb 0x100ae471
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x100ae5d6
mov eax, esi
and eax, 3
mov dword [ebp - 0x24], eax
cmp esi, 4
jae 0x100ae6b9
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100ae702
mov ecx, 0x811c9dc5
jmp 0x100ae503
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 0x100ae4ac
cmp dword [ebp - 0x24], 0
je 0x100ae503
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 - 0x24], edi
jne 0x100ae4f1
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 0x100aeff8
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
je 0x100ae533
cmp edi, ebx
je 0x100aeff8
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
jne 0x100ae523
cmp dword [edi + 0x1c], 0x10
jb 0x100ae53e
mov eax, dword [edi + 8]
jmp 0x100ae541
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x100ae523
add edi, 0x20
lea ecx, [ebp - 0x48]
call fcn.100029d0
mov dword [0x1012d488], edi
mov esi, dword [ebp + 8]
mov ebx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x30]
jmp 0x100ae12f
mov dword [ebp - 0x28], ecx
or eax, 1
mov dword [0x10132be8], 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.CCSPlayer__m_bIsScoped
call fcn.100083b0
mov esi, dword [ebp - 0x38]
cmp dword [ebp - 0x34], 0x10
jb 0x100ae5aa
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x100ae78a
mov eax, esi
and eax, 3
mov dword [ebp - 0x24], eax
cmp esi, 4
jae 0x100ae97e
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100ae9c7
mov ecx, 0x811c9dc5
jmp 0x100ae646
mov ecx, 0x811c9dc5
jmp 0x100ae71f
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 0x100ae5ef
cmp dword [ebp - 0x24], 0
je 0x100ae646
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 - 0x24], edi
jne 0x100ae634
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 0x100af00c
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
je 0x100ae676
cmp edi, ebx
je 0x100af00c
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
jne 0x100ae666
cmp dword [edi + 0x1c], 0x10
jb 0x100ae681
mov eax, dword [edi + 8]
jmp 0x100ae684
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x100ae666
add edi, 0x20
lea ecx, [ebp - 0x48]
call fcn.100029d0
mov dword [0x10132bbc], edi
mov eax, dword [0x1012d35c]
mov esi, dword [ebp + 8]
mov ebx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x30]
jmp 0x100ae182
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 0x100ae6c8
cmp dword [ebp - 0x24], 0
je 0x100ae71f
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 - 0x24], edi
jne 0x100ae70d
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 0x100af020
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
je 0x100ae74f
cmp edi, ebx
je 0x100af020
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
jne 0x100ae73f
cmp dword [edi + 0x1c], 0x10
jb 0x100ae75a
mov eax, dword [edi + 8]
jmp 0x100ae75d
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x100ae73f
add edi, 0x20
lea ecx, [ebp - 0x48]
call fcn.100029d0
mov dword [0x10132c14], edi
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 0x28]
jmp 0x100ae1a4
mov ecx, 0x811c9dc5
jmp 0x100ae9e4
mov dword [ebp - 0x2c], edx
or eax, 1
mov dword [0x10132c28], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], 0xc
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x20], ecx
push str.m_flDuckAmount
call fcn.100083b0
mov esi, dword [ebp - 0x38]
cmp dword [ebp - 0x34], 0x10
jb 0x100ae7cd
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x100aeab2
mov eax, esi
and eax, 3
mov dword [ebp - 0x24], eax
cmp esi, 4
jae 0x100aeae4
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100aeb2d
mov dword [ebp - 0x2c], edx
or eax, 1
mov dword [0x10132c28], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], 8
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x20], ecx
push str.m_flDuckAmount
call fcn.100083b0
mov esi, dword [ebp - 0x38]
cmp dword [ebp - 0x34], 0x10
jb 0x100ae82b
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x100aeabc
mov eax, esi
and eax, 3
mov dword [ebp - 0x24], eax
cmp esi, 4
jae 0x100aebbc
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100aec05
mov dword [ebp - 0x30], ecx
vmovss dword [ebp - 0x2c], xmm1
or eax, 1
mov dword [0x10132cb8], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], 0xe
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x20], ecx
push str.CBasePlayer__m_flDuckSpeed
call fcn.100083b0
mov esi, dword [ebp - 0x38]
cmp dword [ebp - 0x34], 0x10
jb 0x100ae88e
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x100aeac6
mov eax, esi
and eax, 3
mov dword [ebp - 0x24], eax
cmp esi, 4
jae 0x100aec94
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100aecdd
vmovss dword [ebp - 0x4c], xmm0
vmovss dword [ebp - 0x30], xmm1
mov dword [ebp - 0x28], ecx
or eax, 1
mov dword [0x10132cb8], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x10], 0xa
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x20], ecx
push str.CBasePlayer__m_flDuckSpeed
call fcn.100083b0
mov esi, dword [ebp - 0x38]
cmp dword [ebp - 0x34], 0x10
jb 0x100ae8f6
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x100aead0
mov eax, esi
and eax, 3
mov dword [ebp - 0x24], eax
cmp esi, 4
jae 0x100aed6a
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100aedb3
mov dword [ebp - 0x30], ecx
vmovss dword [ebp - 0x2c], xmm1
or eax, 1
mov dword [0x10132ce8], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], 0x10
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x20], ecx
push str.CBasePlayer__m_bDucking
call fcn.100083b0
mov esi, dword [ebp - 0x38]
cmp dword [ebp - 0x34], 0x10
jb 0x100ae959
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x100aeada
mov eax, esi
and eax, 3
mov dword [ebp - 0x24], eax
cmp esi, 4
jae 0x100aee45
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100aee8e
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 0x100ae98d
cmp dword [ebp - 0x24], 0
je 0x100ae9e4
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 - 0x24], edi
jne 0x100ae9d2
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 0x100af034
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
je 0x100aea14
cmp edi, ebx
je 0x100af034
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
jne 0x100aea04
cmp dword [edi + 0x1c], 0x10
jb 0x100aea1f
mov eax, dword [edi + 8]
jmp 0x100aea22
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x100aea04
add edi, 0x20
lea ecx, [ebp - 0x48]
call fcn.100029d0
mov dword [0x10132be4], edi
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 0x28]
jmp 0x100ae1e3
mov dword [ebp - 0x30], ecx
vmovss dword [ebp - 0x2c], xmm1
or eax, 1
mov dword [0x1012d48c], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], 0x12
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x20], ecx
push str.CBasePlayer__m_fFlags
call fcn.100083b0
mov esi, dword [ebp - 0x38]
cmp dword [ebp - 0x34], 0x10
jb 0x100aea8d
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x100aef1b
mov eax, esi
and eax, 3
mov dword [ebp - 0x24], eax
cmp esi, 4
jae 0x100aef22
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100aef6b
mov ecx, 0x811c9dc5
jmp 0x100aeb4a
mov ecx, 0x811c9dc5
jmp 0x100aec22
mov ecx, 0x811c9dc5
jmp 0x100aecfa
mov ecx, 0x811c9dc5
jmp 0x100aedd0
mov ecx, 0x811c9dc5
jmp 0x100aeeab
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 0x100aeaf3
cmp dword [ebp - 0x24], 0
je 0x100aeb4a
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 - 0x24], edi
jne 0x100aeb38
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 0x100af048
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
je 0x100aeb7a
cmp edi, ebx
je 0x100af048
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
jne 0x100aeb6a
cmp dword [edi + 0x1c], 0x10
jb 0x100aeb85
mov eax, dword [edi + 8]
jmp 0x100aeb88
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x100aeb6a
add edi, 0x20
lea ecx, [ebp - 0x48]
call fcn.100029d0
mov dword [0x10132c24], edi
mov eax, dword [0x1012d35c]
mov ecx, dword [eax]
mov esi, dword [ebp + 8]
mov edx, dword [ebp - 0x2c]
jmp 0x100ae21f
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 0x100aebcb
cmp dword [ebp - 0x24], 0
je 0x100aec22
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 - 0x24], edi
jne 0x100aec10
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 0x100af05c
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
je 0x100aec52
cmp edi, ebx
je 0x100af05c
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
jne 0x100aec42
cmp dword [edi + 0x1c], 0x10
jb 0x100aec5d
mov eax, dword [edi + 8]
jmp 0x100aec60
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x100aec42
add edi, 0x20
lea ecx, [ebp - 0x48]
call fcn.100029d0
mov dword [0x10132c24], edi
mov eax, dword [0x1012d35c]
mov ecx, dword [eax]
mov esi, dword [ebp + 8]
mov edx, dword [ebp - 0x2c]
jmp 0x100ae267
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 0x100aeca3
cmp dword [ebp - 0x24], 0
je 0x100aecfa
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 - 0x24], edi
jne 0x100aece8
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 0x100af070
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
je 0x100aed2a
cmp edi, ebx
je 0x100af070
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
jne 0x100aed1a
cmp dword [edi + 0x1c], 0x10
jb 0x100aed35
mov eax, dword [edi + 8]
jmp 0x100aed38
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x100aed1a
add edi, 0x20
lea ecx, [ebp - 0x48]
call fcn.100029d0
mov dword [0x10132cb4], edi
mov esi, dword [ebp + 8]
vmovss xmm1, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x30]
jmp 0x100ae23a
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 0x100aed79
cmp dword [ebp - 0x24], 0
je 0x100aedd0
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 - 0x24], edi
jne 0x100aedbe
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 0x100af084
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
je 0x100aee00
cmp edi, ebx
je 0x100af084
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
jne 0x100aedf0
cmp dword [edi + 0x1c], 0x10
jb 0x100aee0b
mov eax, dword [edi + 8]
jmp 0x100aee0e
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x100aedf0
add edi, 0x20
lea ecx, [ebp - 0x48]
call fcn.100029d0
mov dword [0x10132cb4], edi
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 0x28]
vmovss xmm1, dword [ebp - 0x30]
vmovss xmm0, dword [ebp - 0x4c]
jmp 0x100ae28c
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 0x100aee54
cmp dword [ebp - 0x24], 0
je 0x100aeeab
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 - 0x24], edi
jne 0x100aee99
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 0x100af098
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
je 0x100aeedb
cmp edi, ebx
je 0x100af098
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
jne 0x100aeecb
cmp dword [edi + 0x1c], 0x10
jb 0x100aeee6
mov eax, dword [edi + 8]
jmp 0x100aeee9
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x100aeecb
add edi, 0x20
lea ecx, [ebp - 0x48]
call fcn.100029d0
mov dword [0x10132ce4], edi
mov esi, dword [ebp + 8]
vmovss xmm1, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x30]
jmp 0x100ae2c5
mov ecx, 0x811c9dc5
jmp 0x100aef88
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 0x100aef31
cmp dword [ebp - 0x24], 0
je 0x100aef88
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 - 0x24], edi
jne 0x100aef76
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 0x100af0ac
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
je 0x100aefb8
cmp edi, ebx
je 0x100af0ac
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
jne 0x100aefa8
cmp dword [edi + 0x1c], 0x10
jb 0x100aefc3
mov eax, dword [edi + 8]
jmp 0x100aefc6
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x100aefa8
add edi, 0x20
lea ecx, [ebp - 0x48]
call fcn.100029d0
mov dword [0x1012d488], edi
mov esi, dword [ebp + 8]
vmovss xmm1, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x30]
jmp 0x100ae2e8
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
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], 0xd
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
mov dword [ebp - 0x10], 9
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
mov dword [ebp - 0x10], 0xf
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
mov dword [ebp - 0x10], 0xb
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
mov dword [ebp - 0x10], 0x11
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
mov dword [ebp - 0x10], 0x13
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
push ebp
sub esp, 0xc
add ebp, 0xc
lea ecx, [ebp - 0x48]
call fcn.100029d0
add esp, 0xc
pop ebp
ret