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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x183c
call fcn.10098a30
mov eax, dword [0x100b100c]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [0x100f7924]
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x1830], eax
push esi
mov eax, dword [ecx]
push edi
mov edi, dword [ebp + 8]
push edi
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x1814], 0
call eax
mov esi, eax
test esi, esi
je 0x1002d787
mov ecx, dword [esi]
mov edx, dword [ecx + 0x260]
mov ecx, esi
call edx
test al, al
je 0x1002d787
mov eax, dword [0x100f7b74]
add eax, 0xffffffcc
xor eax, 0x8d9beb9e
cmp dword [eax + esi], 0
jne 0x1002d787
mov eax, dword [0x100f7adc]
cmp byte [eax + esi], 0
jne 0x1002d787
mov edx, dword [0x100f7b4c]
mov eax, dword [0x100df7e0]
add edx, 0xffffffd6
xor edx, 0x8d9beb94
mov ecx, dword [edx + esi]
cmp ecx, dword [edx + eax]
jne 0x1002d2e2
mov ecx, dword [0x100f7a00]
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
call eax
test eax, eax
je 0x1002d787
imul eax, edi, 0xb4c
lea ecx, [eax + 0x100b0788]
mov dword [ebp - 0x1824], ecx
test ecx, ecx
je 0x1002d787
mov eax, dword [ecx + 0x18]
test eax, eax
je 0x1002d787
cmp eax, 2
jb 0x1002d787
cmp eax, 3
jb 0x1002d787
mov ecx, dword [0x100f7920]
mov eax, dword [ecx]
mov eax, dword [eax + 0x138]
call eax
test eax, eax
je 0x1002d787
mov eax, dword [0x100f791c]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x1818], eax
test eax, eax
je 0x1002d38c
mov edi, dword [eax + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop dword [eax]
inc ecx
cmp byte [ecx + edi], 0
jne 0x1002d350
xor edx, edx
test ecx, ecx
je 0x1002d37f
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x1002d360
cmp esi, 0x8c8dc452
je 0x1002d3c8
mov eax, dword [ebp - 0x1818]
mov eax, dword [eax + 4]
mov dword [ebp - 0x1818], eax
test eax, eax
jne 0x1002d343
xor ecx, ecx
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov edx, dword [ebp - 0x1824]
fstp st(0)
mov ecx, dword [edx + 0x14]
mov esi, dword [edx + 8]
lea edi, [ecx + 1]
mov eax, dword [edx + 0x14]
add eax, dword [edx + 0x18]
mov dword [ebp - 0x1818], edi
mov dword [ebp - 0x1820], ecx
cmp ecx, eax
je 0x1002d787
test esi, esi
je 0x1002d3d0
mov eax, dword [esi]
jmp 0x1002d3d2
mov ecx, dword [ebp - 0x1818]
jmp 0x1002d38e
xor eax, eax
mov edx, ecx
shr edx, 1
mov dword [ebp - 0x181c], edx
mov edx, ecx
mov ecx, dword [eax + 8]
and edx, 1
mov eax, dword [eax + 4]
dec ecx
and ecx, dword [ebp - 0x181c]
shl edx, 3
mov dword [ebp - 0x182c], edx
mov ecx, dword [eax + ecx*4]
mov ecx, dword [ecx + edx]
call fcn.1002cbb0
mov edx, dword [ebp - 0x1814]
test al, al
je 0x1002d4cb
mov ecx, dword [ebp - 0x1824]
or edx, 3
mov dword [ebp - 0x1814], edx
mov eax, dword [ecx + 0x14]
add eax, dword [ecx + 0x18]
cmp edi, eax
je 0x1002d4cb
or edx, 4
mov dword [ebp - 0x1814], edx
test esi, esi
je 0x1002d456
mov eax, dword [esi]
test eax, eax
je 0x1002d456
mov eax, dword [eax]
test eax, eax
je 0x1002d456
mov eax, dword [eax]
test eax, eax
je 0x1002d456
mov eax, dword [eax]
test eax, eax
je 0x1002d456
mov eax, dword [eax]
jmp 0x1002d458
xor eax, eax
mov ecx, dword [eax + 8]
mov edx, edi
mov eax, dword [eax + 4]
dec ecx
shr edx, 1
and edi, 1
and ecx, edx
mov dword [ebp - 0x1828], edx
mov ecx, dword [eax + ecx*4]
mov ecx, dword [ecx + edi*8]
call fcn.1002cbb0
mov edx, dword [ebp - 0x1814]
test al, al
jne 0x1002d4cb
or edx, 8
mov dword [ebp - 0x1814], edx
test esi, esi
je 0x1002d4ac
mov eax, dword [esi]
test eax, eax
je 0x1002d4ac
mov eax, dword [eax]
test eax, eax
je 0x1002d4ac
mov eax, dword [eax]
test eax, eax
je 0x1002d4ac
mov eax, dword [eax]
test eax, eax
je 0x1002d4ac
mov eax, dword [eax]
jmp 0x1002d4ae
xor eax, eax
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
dec ecx
and ecx, dword [ebp - 0x1828]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + edi*8]
cmp byte [eax + 0x14], 0
jne 0x1002d4cb
mov al, 1
jmp 0x1002d4cd
xor al, al
test dl, 8
je 0x1002d4db
and edx, 0xfffffff7
mov dword [ebp - 0x1814], edx
test dl, 4
je 0x1002d4e9
and edx, 0xfffffffb
mov dword [ebp - 0x1814], edx
test dl, 2
je 0x1002d4f7
and edx, 0xfffffffd
mov dword [ebp - 0x1814], edx
test dl, 1
je 0x1002d505
and edx, 0xfffffffe
mov dword [ebp - 0x1814], edx
test al, al
je 0x1002d578
test esi, esi
je 0x1002d529
mov eax, dword [esi]
test eax, eax
je 0x1002d529
mov eax, dword [eax]
test eax, eax
je 0x1002d529
mov eax, dword [eax]
test eax, eax
je 0x1002d529
mov edi, dword [eax]
test edi, edi
je 0x1002d529
mov edi, dword [edi]
jmp 0x1002d52b
xor edi, edi
mov ecx, dword [ebp - 0x1818]
mov edx, ecx
mov eax, dword [edi + 8]
and ecx, 1
dec eax
shr edx, 1
and edx, eax
mov eax, dword [edi + 4]
mov eax, dword [eax + edx*4]
mov edi, dword [eax + ecx*8]
mov dword [ebp - 0x1828], edi
test esi, esi
je 0x1002d555
mov eax, dword [esi]
jmp 0x1002d557
xor eax, eax
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
dec ecx
and ecx, dword [ebp - 0x181c]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x182c]
mov ecx, dword [ecx + eax]
test edi, edi
je 0x1002d578
test ecx, ecx
jne 0x1002d591
mov ecx, dword [ebp - 0x1820]
mov edi, dword [ebp - 0x1818]
inc ecx
mov edx, dword [ebp - 0x1824]
inc edi
jmp 0x1002d3a6
mov eax, dword [ecx + 0x34]
xorps xmm7, xmm7
movq xmm0, qword [ecx + 0x2c]
movss xmm4, dword [ecx + 0x1c]
movss xmm5, dword [edi + 0x1c]
movss xmm6, dword [ecx + 0x450]
mov dword [ebp - 0x1834], eax
mov eax, dword [0x100f7980]
movq qword [ebp - 0x183c], xmm0
movaps xmm0, xmm4
subss xmm0, xmm5
movss xmm2, dword [0x100a75a4]
movss xmm3, dword [eax + 0x10]
movaps xmm1, xmm3
subss xmm1, xmm6
divss xmm1, xmm0
movaps xmm0, xmm2
subss xmm0, xmm1
comiss xmm7, xmm0
ja 0x1002d5f1
comiss xmm0, xmm2
jbe 0x1002d601
movss dword [ecx + 0x450], xmm3
movaps xmm6, xmm3
movss xmm5, dword [edi + 0x1c]
subss xmm3, xmm6
movaps xmm1, xmm2
subss xmm4, xmm5
divss xmm3, xmm4
subss xmm1, xmm3
comiss xmm1, xmm2
jbe 0x1002d61e
movaps xmm1, xmm2
jmp 0x1002d622
maxss xmm1, xmm7
movq xmm0, qword [edi + 0x2c]
subss xmm2, xmm1
movq qword [ebp - 0x1810], xmm0
lea esi, [ebp - 0x1804]
movss xmm3, dword [ebp - 0x1810]
movss xmm0, dword [ebp - 0x183c]
mov eax, dword [edi + 0x34]
mov edi, 0x80
mulss xmm3, xmm1
mov dword [ebp - 0x1808], eax
mulss xmm0, xmm2
addss xmm3, xmm0
movss xmm0, dword [ebp - 0x1838]
mulss xmm0, xmm2
movss dword [ebp - 0x182c], xmm3
movss xmm3, dword [ebp - 0x180c]
mulss xmm3, xmm1
addss xmm3, xmm0
movss xmm0, dword [ebp - 0x1834]
mulss xmm0, xmm2
movss dword [ebp - 0x1820], xmm3
movss xmm3, dword [ebp - 0x1808]
mulss xmm3, xmm1
addss xmm3, xmm0
movss dword [ebp - 0x181c], xmm3
mov ecx, esi
call fcn.1001f080
add esi, 0x30
sub edi, 1
jne 0x1002d6b3
mov edi, dword [ebp - 0x1828]
lea eax, [ebp - 0x1804]
push 0x1800
push dword [edi + 0x410]
push eax
call sub.VCRUNTIME140.dll_memcpy
movss xmm3, dword [ebp - 0x182c]
add esp, 0xc
movss xmm4, dword [ebp - 0x1820]
xor ecx, ecx
movss xmm5, dword [ebp - 0x181c]
nop dword [eax]
mov eax, dword [edi + 0x410]
movss xmm2, dword [eax + ecx + 0xc]
movss xmm1, dword [eax + ecx + 0x1c]
movss xmm0, dword [eax + ecx + 0x2c]
subss xmm2, dword [edi + 0x2c]
subss xmm1, dword [edi + 0x30]
subss xmm0, dword [edi + 0x34]
addss xmm2, xmm3
addss xmm1, xmm4
addss xmm0, xmm5
movss dword [ebp + ecx - 0x17f8], xmm2
movss dword [ebp + ecx - 0x17e8], xmm1
movss dword [ebp + ecx - 0x17d8], xmm0
add ecx, 0x30
cmp ecx, 0x1800
jb 0x1002d700
push 0x1800
lea eax, [ebp - 0x1804]
push eax
push dword [ebp - 0x1830]
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.100977c9
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp - 4]
xor al, al
pop edi
xor ecx, ebp
pop esi
call fcn.100977c9
mov esp, ebp
pop ebp
ret 8