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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x1b0
mov esi, esp
mov dword [esi + 0x198], ebp
mov edi, ecx
mov dword [esi + 0x19c], esp
mov dword [esi + 0x1a8], 0xffffffff
lea eax, [esi + 0x1a0]
mov dword [esi + 0x1a4], 0x100dafc0
mov ecx, dword fs:[0]
mov dword [esi + 0x1a0], ecx
mov dword fs:[0], eax
mov ecx, dword [0x1012d368]
mov eax, dword [ecx]
call dword [eax + 0x68]
test al, al
je 0x100d6446
mov ecx, dword [ebp + 8]
cmp byte [edi + 0x1c4], 0
je 0x100d6452
vcvtsi2ss xmm0, xmm0, dword [edi + 0x1dc]
vaddss xmm0, xmm0, dword [0x100fe0bc]
vmovss dword [ecx + 0xb0], xmm0
cmp byte [edi + 0x1c5], 0
je 0x100d6477
vcvtsi2ss xmm0, xmm1, dword [edi + 0x1dc]
vmovss xmm1, dword [0x100f5618]
vsubss xmm0, xmm1, xmm0
vcvtsi2ss xmm1, xmm2, dword [edi + 0x1e0]
jmp 0x100d646b
mov byte [0x10132d5c], 0
jmp 0x100d69a8
cmp byte [edi + 0x1c5], 0
je 0x100d6477
vcvtsi2ss xmm0, xmm0, dword [edi + 0x1e0]
vmovss xmm1, dword [0x100f5618]
vaddss xmm0, xmm0, xmm1
vmovss dword [ecx + 0xb4], xmm0
mov eax, dword [0x1012d35c]
mov edx, dword [eax]
mov eax, dword [0x1012d494]
test al, 1
je 0x100d69be
mov ebx, dword [0x1012d490]
mov eax, dword [ebx + 4]
cmp dword [eax + edx], 0
jle 0x100d64b6
mov eax, dword [0x1012d49c]
test al, 1
je 0x100d6a36
mov ebx, dword [0x1012d498]
mov eax, dword [ebx + 4]
cmp byte [eax + edx], 0
je 0x100d6520
mov byte [0x10132d5c], 0
cmp byte [edi + 0x1bf], 0
je 0x100d69a8
mov eax, dword [0x1012d35c]
mov ecx, dword [eax]
mov eax, dword [0x10132db4]
test al, 1
je 0x100d6aae
mov ebx, dword [0x10132db0]
mov eax, dword [ebx + 4]
cmp dword [eax + ecx], 4
jne 0x100d69a8
mov ecx, dword [0x1012d35c]
mov edx, dword [ecx]
mov ecx, dword [0x10132db4]
test cl, 1
je 0x100d6c01
mov dword [eax + edx], 5
mov eax, dword [0x1012d38c]
mov byte [eax + 0xa9], 0
jmp 0x100d69a8
mov eax, dword [0x1012d32c]
cmp byte [eax + 0x40], 0
je 0x100d6566
mov byte [0x10132d5c], 1
mov eax, dword [0x1012d35c]
mov ebx, ecx
mov ecx, dword [eax]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
mov dword [esi + 0x1a8], 0xffffffff
call eax
vmovss xmm0, dword [eax + 8]
vaddss xmm0, xmm0, dword [0x10101340]
vmovss dword [ebx + 0xc0], xmm0
jmp 0x100d65ed
cmp byte [0x10132d5c], 1
jne 0x100d65ed
mov ebx, ecx
mov eax, dword [0x1012d320]
mov ecx, dword [eax + 0x1ac]
mov edx, 0x1b4e81b5
mov eax, ecx
imul edx
mov eax, edx
shr eax, 0x1f
sar edx, 4
add edx, eax
imul eax, edx, 0x96
sub ecx, eax
cmp ecx, 0x96
jae 0x100d7095
mov eax, dword [0x1012d338]
imul ecx, ecx, 0x858
vmovss xmm1, dword [eax + ecx + 0x1b4c]
vmovss xmm0, dword [eax + ecx + 0x1bf4]
vucomiss xmm1, xmm0
jne 0x100d65c8
jnp 0x100d65dc
vucomiss xmm0, dword [0x100f55c8]
jbe 0x100d65dc
mov eax, dword [0x1012d35c]
jmp 0x100d6539
mov byte [0x10132d5c], 0
mov dword [esi + 0x1a8], 0xffffffff
vcvtsi2ss xmm0, xmm2, dword [edi + 0x1e4]
vmovss dword [esi], xmm0
mov ecx, dword [0x1012d368]
mov dword [esi + 0x6c], 0
vxorps xmm0, xmm0, xmm0
vmovlps qword [esi + 0x64], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x48]
mov dword [esi + 0x1a8], 0xffffffff
lea edx, [esi + 0x64]
push edx
call eax
mov ecx, dword [0x1012d368]
mov dword [esi + 0x4c], 0
vxorps xmm0, xmm0, xmm0
vmovlps qword [esi + 0x44], xmm0
mov eax, dword [ecx]
lea edx, [esi + 0x44]
push edx
call dword [eax + 0x48]
vmovss xmm0, dword [esi]
vaddss xmm0, xmm0, dword [0x10101344]
vmovaps xmmword [esi + 0x80], xmm0
vmovss dword [esi + 0x4c], xmm0
vmovss xmm0, dword [0x100fe0c4]
vmulss xmm0, xmm0, dword [esi + 0x44]
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [esi + 0x10], xmm0
sub esp, 8
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
add esp, 8
fstp dword [esi + 0x60]
vmovss xmm0, dword [esi + 0x60]
vmovss dword [esi + 4], xmm0
sub esp, 8
vmovsd xmm0, qword [esi + 0x10]
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
add esp, 8
fstp dword [esi + 0x5c]
vmovss xmm0, dword [esi + 0x5c]
vmovaps xmmword [esi + 0x10], xmm0
vmovss xmm0, dword [0x100fe0c4]
vmulss xmm0, xmm0, dword [esi + 0x48]
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [esi + 0x20], xmm0
sub esp, 8
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
add esp, 8
fstp qword [esi + 0x120]
sub esp, 8
vmovsd xmm0, qword [esi + 0x20]
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
add esp, 8
fstp qword [esi + 0x118]
vmovss xmm0, dword [0x100fe0c4]
vmulss xmm0, xmm0, dword [esi + 0x4c]
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [esi + 0x30], xmm0
sub esp, 8
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
add esp, 8
fstp dword [esi + 0x58]
vmovss xmm0, dword [esi + 0x58]
vmovaps xmmword [esi + 0x20], xmm0
sub esp, 8
vmovsd xmm0, qword [esi + 0x30]
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
add esp, 8
fstp dword [esi + 0x54]
vmovsd xmm0, qword [esi + 0x118]
vmovhpd xmm3, xmm0, qword [esi + 0x120]
vmovss xmm5, dword [esi + 0x54]
vxorpd xmm0, xmm0, xmm0
vmovupd ymmword [esi + 0xd0], ymm0
vmovupd ymmword [esi + 0xbc], ymm0
vmovupd ymmword [esi + 0x9c], ymm0
mov eax, dword [0x1012d35c]
mov ecx, dword [eax]
mov edx, dword [0x1012d320]
mov edx, dword [edx + 0x34]
mov dword [esi + 0xf0], edx
mov dword [esi + 0xf4], ecx
mov dword [esi + 0xf8], 0
mov dword [esi + 0xfc], 0
mov ebx, dword [eax]
mov eax, dword [0x10132cc8]
test al, 1
mov dword [esi + 8], edi
je 0x100d6c74
mov edi, dword [0x10132cc4]
mov ecx, ebx
vbroadcastss xmm0, dword [0x100f54d8]
vmovaps xmm2, xmmword [esi + 0x20]
vxorps xmm1, xmm2, xmm0
vmovaps xmm6, xmm2
vmovss xmm4, dword [esi + 4]
vmulss xmm2, xmm4, xmm1
vmovaps xmm7, xmm4
vcvtpd2ps xmm3, xmm3
vxorps xmm0, xmm5, xmm0
vshufps xmm4, xmm3, xmm3, 0xe1
vinsertps xmm0, xmm5, xmm0, 0x10
vmulps xmm0, xmm4, xmm0
vbroadcastss xmm2, xmm2
vfmadd213ps xmm2, xmm3, xmm0
vmovaps xmmword [esi + 0x30], xmm2
vinsertps xmm0, xmm6, xmm1, 0x10
vmulps xmm0, xmm4, xmm0
vmulss xmm1, xmm7, xmm5
vbroadcastss xmm1, xmm1
vfmadd213ps xmm1, xmm3, xmm0
vmovaps xmmword [esi + 0x70], xmm1
vmovaps xmm1, xmmword [esi + 0x10]
vbroadcastss xmm0, xmm1
vmulps xmm0, xmm0, xmm3
vmovaps xmmword [esi + 0x100], xmm0
vmulss xmm0, xmm1, xmm5
vmovss dword [esi + 0xc], xmm0
mov edi, dword [edi + 4]
mov eax, dword [ecx]
vzeroupper
call dword [eax + 0x28]
vmovaps xmm0, xmmword [esi + 0x80]
vmulss xmm1, xmm0, dword [esi + 4]
vbroadcastss xmm0, xmm0
vmulps xmm3, xmm0, xmmword [esi + 0x100]
vmovaps xmm0, xmmword [esi + 0x10]
vmulss xmm2, xmm0, dword [esi + 0x20]
vmovss xmm0, dword [eax + 8]
vaddss xmm0, xmm0, dword [edi + ebx + 8]
vaddss xmm1, xmm1, xmm0
vsubss xmm1, xmm1, xmm2
vaddss xmm2, xmm1, dword [esi + 0xc]
vmovsd xmm1, qword [eax]
vmovsd xmm4, qword [edi + ebx]
vaddps xmm1, xmm1, xmm4
vsubss xmm2, xmm2, xmm0
vsubps xmm3, xmm1, xmm3
vaddps xmm3, xmm3, xmmword [esi + 0x30]
vaddps xmm3, xmm3, xmmword [esi + 0x70]
vsubps xmm3, xmm3, xmm1
vmulps xmm4, xmm3, xmm3
vmovshdup xmm4, xmm4
vfmadd231ss xmm4, xmm3, xmm3
vfmadd231ss xmm4, xmm2, xmm2
vxorps xmm5, xmm5, xmm5
vucomiss xmm4, xmm5
vmovlps qword [esi + 0x128], xmm1
vmovss dword [esi + 0x130], xmm0
mov dword [esi + 0x134], 0
vmovlps qword [esi + 0x138], xmm3
vmovss dword [esi + 0x140], xmm2
vxorps xmm0, xmm0, xmm0
vmovups ymmword [esi + 0x144], ymm0
mov dword [esi + 0x168], 0
mov dword [esi + 0x164], 0
mov byte [esi + 0x16c], 1
setp al
setne cl
or cl, al
mov byte [esi + 0x16d], cl
mov ecx, dword [0x1012d384]
mov eax, dword [ecx]
lea edx, [esi + 0x9c]
lea edi, [esi + 0xf0]
lea ebx, [esi + 0x128]
push edx
push edi
push 0x600400b
push ebx
vzeroupper
call dword [eax + 0x14]
vmovss xmm0, dword [esi]
vmulss xmm0, xmm0, dword [esi + 0xc8]
vmovss dword [esi + 0x6c], xmm0
mov eax, dword [esi + 8]
cmp byte [eax + 0x1be], 0
je 0x100d6984
mov eax, dword [eax + 0x1d8]
test eax, eax
je 0x100d6984
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
setne al
jmp 0x100d6986
xor eax, eax
mov ecx, dword [0x1012d38c]
mov byte [ecx + 0xa9], al
vmovsd xmm0, qword [esi + 0x64]
vmovsd qword [ecx + 0xac], xmm0
mov eax, dword [esi + 0x6c]
mov dword [ecx + 0xb4], eax
mov eax, dword [esi + 0x1a0]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4
mov dword [esi + 0x20], edx
mov dword [esi + 8], edi
or eax, 1
mov dword [0x1012d494], eax
mov eax, dword [0x1012d324]
mov dword [esi + 0x80], eax
mov dword [esi + 0x1a8], 0
lea ecx, [esi + 0x9c]
mov dword [esi + 4], ecx
push str.CBasePlayer__m_iHealth
call fcn.100083b0
mov eax, dword [esi + 0xac]
mov dword [esi], eax
cmp dword [esi + 0xb0], 0x10
jb 0x100d6a0e
mov eax, dword [esi + 0x9c]
mov dword [esi + 4], eax
cmp dword [esi], 0
je 0x100d6b20
mov eax, dword [esi]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x10], ecx
cmp eax, 4
jae 0x100d6b27
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100d6b70
mov dword [esi + 0x20], edx
mov dword [esi + 8], edi
or eax, 1
mov dword [0x1012d49c], eax
mov eax, dword [0x1012d324]
mov dword [esi + 0x80], eax
mov dword [esi + 0x1a8], 2
lea ecx, [esi + 0x9c]
mov dword [esi + 4], ecx
push str.CBasePlayer__m_lifeState
call fcn.100083b0
mov eax, dword [esi + 0xac]
mov dword [esi], eax
cmp dword [esi + 0xb0], 0x10
jb 0x100d6a86
mov eax, dword [esi + 0x9c]
mov dword [esi + 4], eax
cmp dword [esi], 0
je 0x100d6cff
mov eax, dword [esi]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x10], ecx
cmp eax, 4
jae 0x100d6d06
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100d6d4f
mov dword [esi + 8], ecx
or eax, 1
mov dword [0x10132db4], eax
mov eax, dword [0x1012d324]
mov dword [esi + 0x20], eax
mov dword [esi + 0x1a8], 6
lea ecx, [esi + 0x9c]
mov dword [esi + 4], ecx
push str.CBasePlayer__m_iObserverMode
call fcn.100083b0
mov eax, dword [esi + 0xac]
mov dword [esi], eax
cmp dword [esi + 0xb0], 0x10
jb 0x100d6af8
mov eax, dword [esi + 0x9c]
mov dword [esi + 4], eax
cmp dword [esi], 0
je 0x100d6de0
mov eax, dword [esi]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x10], ecx
cmp eax, 4
jae 0x100d6de7
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100d6e30
mov ecx, 0x811c9dc5
jmp 0x100d6b8d
mov edi, dword [esi]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 4]
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 0x100d6b36
cmp dword [esi + 0x10], 0
je 0x100d6b8d
add edx, dword [esi + 4]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x10], edi
jne 0x100d6b7b
mov edx, dword [esi + 0x80]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x100d70a4
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi]
cmp eax, dword [ebx + 0x18]
jne 0x100d6bd2
cmp dword [ebx + 0x1c], 0x10
jb 0x100d6bbd
mov eax, dword [ebx + 8]
jmp 0x100d6bc0
lea eax, [ebx + 8]
push dword [esi]
push eax
push dword [esi + 4]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x100d6bdf
cmp ebx, edi
je 0x100d70a4
mov ebx, dword [ebx + 4]
jmp 0x100d6bab
add ebx, 0x20
lea ecx, [esi + 0x9c]
call fcn.100029d0
mov dword [0x1012d490], ebx
mov edi, dword [esi + 8]
mov ecx, dword [ebp + 8]
mov edx, dword [esi + 0x20]
jmp 0x100d6491
mov dword [esi + 8], edx
or ecx, 1
mov dword [0x10132db4], ecx
mov eax, dword [0x1012d324]
mov dword [esi + 0x20], eax
mov dword [esi + 0x1a8], 8
lea ecx, [esi + 0x9c]
mov dword [esi + 4], ecx
push str.CBasePlayer__m_iObserverMode
call fcn.100083b0
mov eax, dword [esi + 0xac]
mov dword [esi], eax
cmp dword [esi + 0xb0], 0x10
jb 0x100d6c4c
mov eax, dword [esi + 0x9c]
mov dword [esi + 4], eax
cmp dword [esi], 0
je 0x100d6eb8
mov eax, dword [esi]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x10], ecx
cmp eax, 4
jae 0x100d6ec9
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100d6f12
vmovapd xmmword [esi + 0x170], xmm3
vmovaps xmmword [esi + 0x180], xmm5
mov dword [esi + 0x50], ebx
or eax, 1
mov dword [0x10132cc8], eax
mov eax, dword [0x1012d324]
mov dword [esi + 0x100], eax
mov dword [esi + 0x1a8], 4
lea ecx, [esi + 0x128]
mov dword [esi + 0x70], ecx
push str.CBasePlayer__m_vecViewOffset_0_
vzeroupper
call fcn.100083b0
mov eax, dword [esi + 0x138]
mov dword [esi + 0x30], eax
cmp dword [esi + 0x13c], 0x10
jb 0x100d6cd5
mov eax, dword [esi + 0x128]
mov dword [esi + 0x70], eax
cmp dword [esi + 0x30], 0
je 0x100d6ebf
mov eax, dword [esi + 0x30]
mov ecx, eax
and ecx, 3
mov dword [esi + 0xc], ecx
cmp eax, 4
jae 0x100d6f9d
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100d6fe7
mov ecx, 0x811c9dc5
jmp 0x100d6d6c
mov edi, dword [esi]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 4]
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 0x100d6d15
cmp dword [esi + 0x10], 0
je 0x100d6d6c
add edx, dword [esi + 4]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x10], edi
jne 0x100d6d5a
mov edx, dword [esi + 0x80]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x100d70bb
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi]
cmp eax, dword [ebx + 0x18]
jne 0x100d6db1
cmp dword [ebx + 0x1c], 0x10
jb 0x100d6d9c
mov eax, dword [ebx + 8]
jmp 0x100d6d9f
lea eax, [ebx + 8]
push dword [esi]
push eax
push dword [esi + 4]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x100d6dbe
cmp ebx, edi
je 0x100d70bb
mov ebx, dword [ebx + 4]
jmp 0x100d6d8a
add ebx, 0x20
lea ecx, [esi + 0x9c]
call fcn.100029d0
mov dword [0x1012d498], ebx
mov edi, dword [esi + 8]
mov ecx, dword [ebp + 8]
mov edx, dword [esi + 0x20]
jmp 0x100d64ad
mov ecx, 0x811c9dc5
jmp 0x100d6e4d
mov edi, dword [esi]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 4]
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 0x100d6df6
cmp dword [esi + 0x10], 0
je 0x100d6e4d
add edx, dword [esi + 4]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x10], edi
jne 0x100d6e3b
mov edx, dword [esi + 0x20]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x100d70d2
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi]
cmp eax, dword [ebx + 0x18]
jne 0x100d6e8f
cmp dword [ebx + 0x1c], 0x10
jb 0x100d6e7a
mov eax, dword [ebx + 8]
jmp 0x100d6e7d
lea eax, [ebx + 8]
push dword [esi]
push eax
push dword [esi + 4]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x100d6e9c
cmp ebx, edi
je 0x100d70d2
mov ebx, dword [ebx + 4]
jmp 0x100d6e68
add ebx, 0x20
lea ecx, [esi + 0x9c]
call fcn.100029d0
mov dword [0x10132db0], ebx
mov ecx, dword [esi + 8]
jmp 0x100d64e4
mov ecx, 0x811c9dc5
jmp 0x100d6f2f
mov ecx, 0x811c9dc5
jmp 0x100d7004
mov edi, dword [esi]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 4]
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 0x100d6ed8
cmp dword [esi + 0x10], 0
je 0x100d6f2f
add edx, dword [esi + 4]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x10], edi
jne 0x100d6f1d
mov edx, dword [esi + 0x20]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x100d70e9
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi]
cmp eax, dword [ebx + 0x18]
jne 0x100d6f71
cmp dword [ebx + 0x1c], 0x10
jb 0x100d6f5c
mov eax, dword [ebx + 8]
jmp 0x100d6f5f
lea eax, [ebx + 8]
push dword [esi]
push eax
push dword [esi + 4]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x100d6f7e
cmp ebx, edi
je 0x100d70e9
mov ebx, dword [ebx + 4]
jmp 0x100d6f4a
lea edi, [ebx + 0x20]
lea ecx, [esi + 0x9c]
call fcn.100029d0
mov dword [0x10132db0], edi
mov eax, dword [ebx + 0x24]
mov edx, dword [esi + 8]
jmp 0x100d6508
mov edi, dword [esi + 0x30]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 0x70]
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 0x100d6fad
cmp dword [esi + 0xc], 0
je 0x100d7004
add edx, dword [esi + 0x70]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0xc], edi
jne 0x100d6ff2
mov edx, dword [esi + 0x100]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x100d7100
add ecx, ecx
mov ebx, dword [eax + ecx*4]
mov eax, dword [esi + 0x30]
cmp eax, dword [edi + 0x18]
jne 0x100d704b
cmp dword [edi + 0x1c], 0x10
jb 0x100d7035
mov eax, dword [edi + 8]
jmp 0x100d7038
lea eax, [edi + 8]
push dword [esi + 0x30]
push eax
push dword [esi + 0x70]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x100d7058
cmp edi, ebx
je 0x100d7100
mov edi, dword [edi + 4]
jmp 0x100d7022
add edi, 0x20
lea ecx, [esi + 0x128]
call fcn.100029d0
mov dword [0x10132cc4], edi
mov eax, dword [0x1012d35c]
mov ecx, dword [eax]
mov dword [esi + 0x1a8], 0xffffffff
mov ebx, dword [esi + 0x50]
vmovaps xmm5, xmmword [esi + 0x180]
vmovapd xmm3, xmmword [esi + 0x170]
jmp 0x100d67be
mov dword [esi + 0x1a8], 0xffffffff
call fcn.1007cfb0
mov dword [esi + 0x1a8], 1
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
mov dword [esi + 0x1a8], 3
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
mov dword [esi + 0x1a8], 7
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
mov dword [esi + 0x1a8], 9
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
mov dword [esi + 0x1a8], 5
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
nop word [eax + eax]
push ebp
sub esp, 0x10
lea esi, [ebp - 0x1ac]
mov ebp, dword [esi + 0x198]
lea ecx, [esi + 0x128]
call fcn.100029d0
add esp, 0x10
pop ebp
ret