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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1848
call fcn.100ca340
mov eax, dword [0x100e800c]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [0x101a9a48]
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov dword [ebp - 0x183c], eax
mov eax, dword [ecx]
push esi
push edi
push edx
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x182c], edx
call eax
mov esi, eax
test esi, esi
je 0x10045100
mov ecx, dword [esi]
mov edx, dword [ecx + 0x260]
mov ecx, esi
call edx
test al, al
je 0x10045100
mov eax, dword [esi + 8]
lea ecx, [esi + 8]
mov eax, dword [eax + 0x28]
call eax
cmp eax, 0x40
jg 0x10045100
mov eax, dword [esi + 8]
lea ecx, [esi + 8]
mov eax, dword [eax + 0x28]
call eax
test eax, eax
jle 0x10045100
mov eax, dword [esi + 8]
lea ecx, [esi + 8]
mov eax, dword [eax + 8]
call eax
test eax, eax
je 0x10045100
mov eax, dword [0x101a9ca8]
add eax, 0xffffffc3
xor eax, 0x976fd34c
cmp dword [eax + esi], 0
jne 0x10045100
mov eax, dword [0x101a9c14]
cmp byte [eax + esi], 0
jne 0x10045100
mov edx, dword [0x101a9c60]
mov eax, dword [0x101ae588]
add edx, 0xffffffd5
xor edx, 0x976fd33a
mov ecx, dword [edx + esi]
cmp ecx, dword [edx + eax]
jne 0x100449f8
mov ecx, dword [0x101a9b30]
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
call eax
test eax, eax
je 0x10045100
mov eax, dword [esi + 8]
lea ecx, [esi + 8]
mov eax, dword [eax + 0x24]
call eax
test al, al
jne 0x10045100
mov eax, dword [0x101a9cf8]
add eax, 0xffffffaf
xor eax, 0x976fd360
movss xmm0, dword [eax + esi]
ucomiss xmm0, dword [0x100dcba4]
lahf
test ah, 0x44
jp 0x10045100
imul eax, dword [ebp - 0x182c], 0x10c
lea edi, [eax + 0x10141f18]
mov dword [ebp - 0x1818], edi
test edi, edi
je 0x10045100
mov eax, dword [edi + 0x18]
test eax, eax
je 0x10045100
cmp byte [edi + 0x108], 0
jne 0x10045100
cmp eax, 2
jb 0x10045100
cmp eax, 3
jb 0x10045100
mov ecx, dword [0x101a9a44]
mov eax, dword [ecx]
mov eax, dword [eax + 0x138]
call eax
test eax, eax
je 0x10045100
mov eax, dword [0x101b523c]
test al, 1
jne 0x10044b20
or eax, 1
mov dword [0x101b523c], eax
mov eax, dword [0x101a9a40]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x181c], eax
test eax, eax
je 0x10044b02
mov edi, dword [eax + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop
inc ecx
cmp byte [ecx + edi], 0
jne 0x10044ac0
xor edx, edx
test ecx, ecx
je 0x10044aef
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10044ad0
cmp esi, 0x8c8dc452
je 0x10044b0c
mov eax, dword [ebp - 0x181c]
mov eax, dword [eax + 4]
mov dword [ebp - 0x181c], eax
test eax, eax
jne 0x10044ab5
mov edi, dword [ebp - 0x1818]
xor ecx, ecx
mov dword [0x101b5238], ecx
jmp 0x10044b26
mov ecx, dword [ebp - 0x181c]
mov edi, dword [ebp - 0x1818]
mov dword [0x101b5238], ecx
jmp 0x10044b26
mov ecx, dword [0x101b5238]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [edi + 0x14]
fstp st(0)
mov esi, dword [edi + 8]
lea eax, [ecx + 1]
mov dword [ebp - 0x181c], eax
mov eax, dword [edi + 0x14]
add eax, dword [edi + 0x18]
mov dword [ebp - 0x182c], ecx
cmp ecx, eax
je 0x10045100
test esi, esi
je 0x10044b5a
mov eax, dword [esi]
jmp 0x10044b5c
xor eax, eax
mov edx, ecx
shr edx, 1
mov dword [ebp - 0x1838], edx
mov edx, ecx
mov ecx, dword [eax + 8]
and edx, 1
mov eax, dword [eax + 4]
dec ecx
and ecx, dword [ebp - 0x1838]
shl edx, 3
mov dword [ebp - 0x1834], edx
mov eax, dword [eax + ecx*4]
mov ecx, dword [0x101a9a44]
mov eax, dword [edx + eax]
mov dword [ebp - 0x1828], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x138]
call eax
test eax, eax
je 0x10044f04
cmp dword [0x101ae588], 0
je 0x10044f04
mov eax, dword [ebp - 0x1828]
cmp byte [eax + 0x420], 0
je 0x10044f04
mov ecx, dword [0x101a9a44]
mov eax, dword [ecx]
mov eax, dword [eax + 0x138]
call eax
mov dword [ebp - 0x1814], eax
test eax, eax
je 0x10044cef
cmp dword [0x101ae588], 0
je 0x10044cef
mov ecx, dword [eax]
push 0
mov ecx, dword [ecx + 0x24]
mov dword [ebp - 0x1820], ecx
mov ecx, eax
call dword [ebp - 0x1820]
mov ecx, dword [ebp - 0x1814]
fstp dword [ebp - 0x1820]
push 1
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x1814], eax
call dword [ebp - 0x1814]
mov ecx, dword [0x101a9af8]
fstp dword [ebp - 0x1814]
movss xmm0, dword [ebp - 0x1814]
addss xmm0, dword [ebp - 0x1820]
mov eax, dword [ecx]
addss xmm0, dword [0x101b1c4c]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x1814], eax
movss dword [ebp - 0x1820], xmm0
call dword [ebp - 0x1814]
movss xmm0, dword [ebp - 0x1820]
fstp dword [ebp - 0x1814]
movss xmm1, dword [ebp - 0x1814]
comiss xmm0, xmm1
ja 0x10044c87
movaps xmm1, xmm0
maxss xmm1, dword [0x100dcba4]
mov eax, dword [0x101a9ca8]
mov ecx, dword [0x101ae588]
add eax, 0xffffffc3
xor eax, 0x976fd34c
cmp dword [eax + ecx], 0
jne 0x10044cc1
mov eax, dword [0x101a9cc0]
add eax, 0xffffffbd
xor eax, 0x976fd352
movd xmm0, dword [eax + ecx]
mov eax, dword [0x101a9aa4]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [eax + 0x20]
jmp 0x10044ccb
mov eax, dword [0x101a9aa4]
movss xmm0, dword [eax + 0x10]
mov eax, dword [ebp - 0x1828]
subss xmm0, dword [eax + 0x24]
subss xmm1, xmm0
movaps xmm0, xmm1
call fcn.10035c10
comiss xmm0, dword [0x100dcc48]
ja 0x10044f04
mov eax, dword [edi + 0x14]
add eax, dword [edi + 0x18]
mov ecx, dword [ebp - 0x181c]
cmp ecx, eax
je 0x10044f04
test esi, esi
je 0x10044d0b
mov eax, dword [esi]
jmp 0x10044d0d
xor eax, eax
mov edx, ecx
mov edi, ecx
mov ecx, dword [eax + 8]
and edi, 1
mov eax, dword [eax + 4]
dec ecx
shr edx, 1
and ecx, edx
mov dword [ebp - 0x1830], edx
mov eax, dword [eax + ecx*4]
mov ecx, dword [0x101a9a44]
mov eax, dword [eax + edi*8]
mov dword [ebp - 0x1828], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x138]
call eax
test eax, eax
je 0x10044e8f
cmp dword [0x101ae588], 0
je 0x10044e8f
mov eax, dword [ebp - 0x1828]
cmp byte [eax + 0x420], 0
je 0x10044e8f
mov ecx, dword [0x101a9a44]
mov eax, dword [ecx]
mov eax, dword [eax + 0x138]
call eax
mov dword [ebp - 0x1820], eax
test eax, eax
je 0x10044efe
cmp dword [0x101ae588], 0
je 0x10044efe
mov ecx, dword [eax]
push 0
mov ecx, dword [ecx + 0x24]
mov dword [ebp - 0x1814], ecx
mov ecx, eax
call dword [ebp - 0x1814]
mov ecx, dword [ebp - 0x1820]
fstp dword [ebp - 0x1824]
push 1
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x1814], eax
call dword [ebp - 0x1814]
mov ecx, dword [0x101a9af8]
fstp dword [ebp - 0x1814]
movss xmm0, dword [ebp - 0x1814]
addss xmm0, dword [ebp - 0x1824]
mov eax, dword [ecx]
addss xmm0, dword [0x101b1c4c]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x1824], eax
movss dword [ebp - 0x1814], xmm0
call dword [ebp - 0x1824]
movss xmm0, dword [ebp - 0x1814]
fstp dword [ebp - 0x1824]
movss xmm1, dword [ebp - 0x1824]
comiss xmm0, xmm1
ja 0x10044e2b
movaps xmm1, xmm0
maxss xmm1, dword [0x100dcba4]
mov eax, dword [0x101a9ca8]
mov ecx, dword [0x101ae588]
add eax, 0xffffffc3
xor eax, 0x976fd34c
cmp dword [eax + ecx], 0
jne 0x10044e65
mov eax, dword [0x101a9cc0]
add eax, 0xffffffbd
xor eax, 0x976fd352
movd xmm0, dword [eax + ecx]
mov eax, dword [0x101a9aa4]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [eax + 0x20]
jmp 0x10044e6f
mov eax, dword [0x101a9aa4]
movss xmm0, dword [eax + 0x10]
mov eax, dword [ebp - 0x1828]
subss xmm0, dword [eax + 0x24]
subss xmm1, xmm0
movaps xmm0, xmm1
call fcn.10035c10
comiss xmm0, dword [0x100dcc48]
jbe 0x10044efe
test esi, esi
je 0x10044e97
mov eax, dword [esi]
jmp 0x10044e99
xor eax, eax
mov ecx, dword [eax + 8]
mov edx, dword [ebp - 0x1830]
dec ecx
mov eax, dword [eax + 4]
and ecx, edx
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + edi*8]
cmp byte [eax + 0x1c], 0
jne 0x10044efe
test esi, esi
je 0x10044ebc
mov eax, dword [esi]
jmp 0x10044ebe
xor eax, eax
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
dec ecx
and ecx, edx
mov eax, dword [eax + ecx*4]
mov edi, dword [eax + edi*8]
mov dword [ebp - 0x1830], edi
test esi, esi
je 0x10044edb
mov eax, dword [esi]
jmp 0x10044edd
xor eax, eax
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
dec ecx
and ecx, dword [ebp - 0x1838]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x1834]
mov ecx, dword [ecx + eax]
test edi, edi
je 0x10044efe
test ecx, ecx
jne 0x10044f16
mov edi, dword [ebp - 0x1818]
mov ecx, dword [ebp - 0x182c]
inc ecx
inc dword [ebp - 0x181c]
jmp 0x10044b3e
mov eax, dword [ecx + 0x38]
xorps xmm7, xmm7
movq xmm0, qword [ecx + 0x30]
movss xmm4, dword [ecx + 0x24]
movss xmm5, dword [edi + 0x24]
movss xmm6, dword [ecx + 0x3760]
mov dword [ebp - 0x1840], eax
mov eax, dword [0x101a9aa4]
movq qword [ebp - 0x1848], xmm0
movaps xmm0, xmm4
subss xmm0, xmm5
movss xmm2, dword [0x100dccd8]
movss xmm3, dword [eax + 0x10]
movaps xmm1, xmm3
subss xmm1, xmm6
divss xmm1, xmm0
movaps xmm0, xmm2
subss xmm0, xmm1
comiss xmm7, xmm0
ja 0x10044f76
comiss xmm0, xmm2
jbe 0x10044f86
movss dword [ecx + 0x3760], xmm3
movaps xmm6, xmm3
movss xmm5, dword [edi + 0x24]
subss xmm3, xmm6
movaps xmm1, xmm2
subss xmm4, xmm5
divss xmm3, xmm4
subss xmm1, xmm3
comiss xmm1, xmm2
jbe 0x10044fa3
movaps xmm1, xmm2
jmp 0x10044fa7
maxss xmm1, xmm7
movq xmm0, qword [edi + 0x30]
subss xmm2, xmm1
mov eax, dword [edi + 0x38]
lea esi, [ebp - 0x1804]
movq qword [ebp - 0x1810], xmm0
movaps xmm3, xmm1
mulss xmm3, dword [ebp - 0x1810]
mov edi, 0x80
mov dword [ebp - 0x1808], eax
movaps xmm0, xmm2
mulss xmm0, dword [ebp - 0x1848]
addss xmm3, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [ebp - 0x1844]
mulss xmm2, dword [ebp - 0x1840]
movss dword [ebp - 0x1824], xmm3
movaps xmm3, xmm1
mulss xmm3, dword [ebp - 0x180c]
mulss xmm1, dword [ebp - 0x1808]
addss xmm3, xmm0
addss xmm1, xmm2
movss dword [ebp - 0x1814], xmm3
movss dword [ebp - 0x1834], xmm1
nop dword [eax]
mov ecx, esi
call fcn.100363d0
add esi, 0x30
sub edi, 1
jne 0x10045030
mov edi, dword [ebp - 0x1830]
push 0x1800
lea eax, [edi + 0x424]
push eax
lea eax, [ebp - 0x1804]
push eax
call sub.VCRUNTIME140.dll_memcpy
movss xmm3, dword [ebp - 0x1834]
lea eax, [ebp - 0x17e8]
movss xmm4, dword [ebp - 0x1824]
lea ecx, [edi + 0x440]
movss xmm5, dword [ebp - 0x1814]
add esp, 0xc
mov edx, 0x80
nop dword [eax]
movss xmm2, dword [ecx - 0x10]
movss xmm1, dword [ecx]
movss xmm0, dword [ecx + 0x10]
add ecx, 0x30
subss xmm2, dword [edi + 0x30]
subss xmm1, dword [edi + 0x34]
subss xmm0, dword [edi + 0x38]
addss xmm2, xmm4
addss xmm1, xmm5
addss xmm0, xmm3
movss dword [eax - 0x10], xmm2
movss dword [eax], xmm1
movss dword [eax + 0x10], xmm0
add eax, 0x30
sub edx, 1
jne 0x10045090
push 0x1800
lea eax, [ebp - 0x1804]
push eax
push dword [ebp - 0x183c]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov al, 1
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100c8fa5
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp - 4]
xor al, al
pop edi
xor ecx, ebp
pop esi
call fcn.100c8fa5
mov esp, ebp
pop ebp
ret 8