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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10191bcd
mov eax, dword fs:[0]
push eax
sub esp, 0xdc
mov eax, dword [0x102a67c0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x90], ecx
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x88], eax
mov dword [ebp - 0xa4], esi
call fcn.100d92a0
mov ecx, dword [0x10bfd778]
fstp dword [ebp - 0xb0]
mov eax, dword [ecx + 0x19b0]
mov byte [eax + 0x8c], 1
mov eax, dword [ecx + 0x19b0]
mov dword [ebp - 0x9c], eax
cmp byte [eax + 0x8f], 0
je 0x100ce1df
xor al, al
jmp 0x100cea0e
mov edi, dword [0x10bfd778]
mov dword [ebp - 0xb8], edi
call fcn.1006bb40
push 0
push dword [ebp - 0x88]
fstp st(0)
call fcn.1006dff0
mov eax, dword [ebp + 0x10]
mov ecx, eax
shr ecx, 1
not cl
mov dword [ebp - 0xb4], eax
and ecx, 0xffffff01
mov dword [ebp - 0x98], ecx
call fcn.1006b4f0
push dword [ebp - 0x88]
call fcn.10075840
mov ecx, dword [ebp + 0x10]
add esp, 0xc
test cl, 0x20
je 0x100ce241
and ecx, 0xe7ffffff
or ecx, 0x100008
test ecx, 0x18000000
jne 0x100ce256
mov eax, dword [edi + 0x2cdc]
and eax, 0x18000000
or ecx, eax
test ecx, 0x1800000
jne 0x100ce26b
mov eax, dword [edi + 0x2cdc]
and eax, 0x1800000
or ecx, eax
test ecx, 0x6000000
jne 0x100ce280
mov eax, dword [edi + 0x2cdc]
and eax, 0x6000000
or ecx, eax
mov eax, dword [edi + 0x2cdc]
movss xmm1, dword [esi]
and eax, 0xe07fffff
movss xmm2, dword [esi + 4]
or ecx, eax
cmp byte [ebp - 0x98], 0
movss xmm3, dword [esi + 8]
mov dword [ebp + 0x10], ecx
movss dword [ebp - 0x20], xmm1
movss dword [ebp - 0x1c], xmm2
movss dword [ebp - 0x18], xmm3
je 0x100ce2c5
movss xmm0, dword [esi + 0xc]
mulss xmm0, dword [0x101a1038]
jmp 0x100ce2cd
movss xmm0, dword [0x101a0e2c]
movss dword [ebp - 0x14], xmm0
test ecx, 0x200000
je 0x100ce316
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x20]
push eax
sub esp, 0xc
movss dword [esp + 8], xmm3
movss dword [esp + 4], xmm2
movss dword [esp], xmm1
call fcn.1006c870
movss xmm0, dword [ebp - 0x14]
add esp, 0x18
movss xmm3, dword [ebp - 0x18]
movss xmm2, dword [ebp - 0x1c]
movss xmm1, dword [ebp - 0x20]
movss xmm5, dword [0x101aaef0]
xorps xmm6, xmm6
comiss xmm1, xmm6
movss xmm4, dword [0x101a0e20]
jb 0x100ce333
movaps xmm7, xmm4
jmp 0x100ce336
movaps xmm7, xmm5
comiss xmm2, xmm6
mulss xmm1, dword [0x101a1054]
addss xmm1, xmm7
cvttss2si eax, xmm1
mov dword [ebp - 0xe0], eax
jb 0x100ce356
movaps xmm1, xmm4
jmp 0x100ce359
movaps xmm1, xmm5
comiss xmm3, xmm6
movss xmm7, dword [0x101a1054]
mulss xmm2, xmm7
addss xmm2, xmm1
cvttss2si eax, xmm2
mov dword [ebp - 0xdc], eax
jb 0x100ce37d
movaps xmm1, xmm4
jmp 0x100ce380
movaps xmm1, xmm5
comiss xmm0, xmm6
mulss xmm3, xmm7
addss xmm3, xmm1
cvttss2si eax, xmm3
mov dword [ebp - 0xd8], eax
jae 0x100ce39a
movaps xmm4, xmm5
mulss xmm0, xmm7
mov byte [ebp - 0x81], 0
addss xmm0, xmm4
cvttss2si eax, xmm0
mov dword [ebp - 0xd4], eax
call fcn.1006f420
mov ecx, dword [ebp + 0x10]
mov edx, eax
mov dword [ebp - 0x94], edx
mov byte [ebp - 0x82], 0
or dword [edx + 0x24], 3
test cl, 0x10
jne 0x100ce960
test cl, 0x20
jne 0x100ce3fc
movss xmm0, dword [edi + 0x1560]
sub esp, 8
movss dword [esp + 4], xmm0
mov dword [esp], 0
call fcn.10077a20
add esp, 8
cmp byte [ebp - 0x98], 0
je 0x100ce40c
movss xmm3, dword [esi + 0xc]
jmp 0x100ce414
movss xmm3, dword [0x101a0e2c]
movss xmm2, dword [esi + 8]
lea eax, [ebp - 0x50]
movss xmm1, dword [esi + 4]
mov ecx, 0x1029bda8
movss xmm0, dword [esi]
push eax
movss dword [ebp - 0xd0], xmm0
movss dword [ebp - 0xcc], xmm1
movss dword [ebp - 0xc8], xmm2
movss dword [ebp - 0xc4], xmm3
call fcn.10036660
mov edx, dword [ebp - 0x88]
xorps xmm0, xmm0
mov ecx, edx
mov dword [ebp - 4], 0
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100ce477
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x38]
call fcn.10011990
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 1
push eax
lea eax, [ebp - 0x38]
push eax
push dword [ebp - 0x94]
lea ecx, [ebp - 0x80]
call fcn.100cd420
mov ecx, dword [ebp - 0x24]
cmp ecx, 0xf
jbe 0x100ce4de
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
mov byte [ebp - 4], 4
cmp ecx, 0x1000
jb 0x100ce4d4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100ce4d4
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.101847fa
add esp, 8
mov eax, dword [ebp - 0x3c]
mov byte [ebp - 4], 5
cmp eax, 0xf
jbe 0x100ce4fa
push eax
push dword [ebp - 0x50]
lea eax, [ebp - 0x50]
push eax
call fcn.100163b0
add esp, 0xc
push dword [ebp + 0x10]
cmp dword [ebp - 0x6c], 0xf
lea ecx, [ebp - 0xd0]
lea eax, [ebp - 0x80]
cmova eax, dword [ebp - 0x80]
push ecx
mov ecx, dword [ebp - 0x90]
push eax
call fcn.100cda80
push ecx
mov byte [ebp - 0x89], al
mov dword [esp], 0
call fcn.10078550
mov eax, dword [ebp + 0x10]
add esp, 4
cmp byte [ebp - 0x89], 0
je 0x100ce5ee
test al, 4
jne 0x100ce5ee
movups xmm0, xmmword [ebp - 0xd0]
lea eax, [ebp - 0x50]
mov ecx, 0x1029bdc0
push eax
movups xmmword [edi + 0x2cf0], xmm0
call fcn.10029a70
cmp dword [ebp - 0x3c], 0xf
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 6
cmova eax, dword [ebp - 0x50]
push eax
call fcn.10075040
add esp, 4
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x50]
call fcn.10023b60
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xa8], 0
movss xmm0, dword [eax + 0x120]
movss xmm1, dword [eax + 0x12c]
lea eax, [ebp - 0xac]
subss xmm0, dword [0x101abe50]
subss xmm1, dword [0x101abe30]
push eax
lea eax, [ebp - 0xa0]
push 0
push eax
movss dword [ebp - 0xa0], xmm0
movss dword [ebp - 0x9c], xmm1
call fcn.10078580
mov eax, dword [ebp + 0x10]
add esp, 0xc
test al, 8
jne 0x100ce642
push 0
call fcn.10070830
add esp, 4
test al, al
je 0x100ce642
push 0
push 1
call fcn.100709a0
add esp, 8
test al, al
je 0x100ce642
lea eax, [ebp - 0x50]
mov ecx, 0x1029bdd8
push eax
call fcn.10036660
cmp dword [ebp - 0x3c], 0xf
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 7
cmova eax, dword [ebp - 0x50]
push eax
call fcn.10075040
add esp, 4
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x50]
call fcn.10023b60
mov esi, dword [edi + 0x19b0]
lea eax, [ebp - 0x38]
push eax
mov ecx, 0x1029bdf0
call fcn.10029a70
cmp dword [ebp - 0x24], 0xf
lea eax, [ebp - 0x38]
push 0x65
cmova eax, dword [ebp - 0x38]
mov ecx, esi
push 0
push eax
mov byte [ebp - 4], 8
call fcn.1006ed30
push eax
call fcn.1006b6a0
mov byte [ebp - 0x9c], al
add esp, 8
mov eax, dword [ebp - 0x24]
mov byte [ebp - 4], 5
cmp eax, 0xf
jbe 0x100ce69c
push eax
push dword [ebp - 0x38]
lea eax, [ebp - 0x38]
push eax
call fcn.100163b0
add esp, 0xc
lea eax, [ebp - 0x50]
mov ecx, 0x1029be08
push eax
call fcn.10029a70
mov edx, dword [ebp - 0x88]
xorps xmm0, xmm0
mov ecx, edx
mov byte [ebp - 4], 9
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
lea esi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100ce6d0
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x38]
call fcn.10011990
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0xa
push eax
lea eax, [ebp - 0x38]
push eax
push dword [ebp - 0x94]
lea ecx, [ebp - 0x68]
call fcn.100cd420
mov ecx, dword [ebp - 0x24]
cmp ecx, 0xf
jbe 0x100ce737
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
mov byte [ebp - 4], 0xd
cmp ecx, 0x1000
jb 0x100ce72d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100ce72d
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.101847fa
add esp, 8
mov eax, dword [ebp - 0x3c]
mov byte [ebp - 4], 0xe
cmp eax, 0xf
jbe 0x100ce753
push eax
push dword [ebp - 0x50]
lea eax, [ebp - 0x50]
push eax
call fcn.100163b0
add esp, 0xc
mov eax, dword [ebp - 0x90]
lea edi, [ebp - 0x68]
add eax, 0xa70
mov ecx, 0x811c9dc5
cmp dword [ebp - 0x54], 0xf
mov dword [ebp - 0x88], eax
cmova edi, dword [ebp - 0x68]
xor edx, edx
inc edx
cmp byte [edi + edx], 0
jne 0x100ce776
xor esi, esi
test edx, edx
je 0x100ce79a
movsx eax, byte [edi + esi]
inc esi
xor eax, ecx
imul ecx, eax, 0x1000193
cmp esi, edx
jb 0x100ce783
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x88], ecx
lea ecx, [ebp - 0x88]
push ecx
mov ecx, eax
call fcn.100ccd60
push 6
push ecx
mov ecx, dword [ebp - 0x90]
mov dword [esp], 0x3e99999a
lea esi, [eax + 8]
push dword [ebp - 0x9c]
push esi
call fcn.100d7a00
lea eax, [ebp - 0xc0]
push eax
call fcn.1006f440
call fcn.1006f420
movss xmm0, dword [ebp - 0xb0]
mov edi, eax
mulss xmm0, dword [esi]
mov dword [ebp - 0x30], 0x3d808081
mov dword [ebp - 0x2c], 0x3d808081
mov dword [ebp - 0x28], 0x3d808081
mulss xmm0, dword [0x101a1054]
cvttss2si eax, xmm0
movzx eax, al
movd xmm0, eax
lea eax, [ebp - 0x30]
cvtdq2ps xmm0, xmm0
push eax
mulss xmm0, dword [0x101a1038]
movss dword [ebp - 0x24], xmm0
call fcn.1006c660
mov esi, eax
lea eax, [ebp - 0xe8]
push eax
call fcn.1006f460
movss xmm1, dword [ebp - 0xc0]
add esp, 0xc
movss xmm0, dword [ebp - 0xbc]
addss xmm1, dword [eax]
addss xmm0, dword [eax + 4]
push 0xf
push ecx
mov dword [esp], 0x41200000
lea eax, [ebp - 0xac]
push esi
push eax
lea eax, [ebp - 0xc0]
movss dword [ebp - 0xac], xmm1
push eax
mov ecx, edi
movss dword [ebp - 0xa8], xmm0
call fcn.1007cf30
cmp byte [ebp - 0x9c], 0
je 0x100ce8f6
mov esi, dword [ebp - 0xb4]
push ecx
and esi, 0x7890002
mov byte [ebp - 0x82], 1
or esi, 0x18040080
mov dword [esp], 0x43300000
call fcn.10075950
mov eax, dword [ebp - 0xb8]
lea edx, [ebp - 0x68]
mov ecx, dword [ebp - 0x90]
add esp, 4
cmp dword [ebp - 0x54], 0xf
cmova edx, dword [ebp - 0x68]
add eax, 0x2cf0
push eax
push esi
mov esi, dword [ebp - 0xa4]
push esi
push edx
call fcn.100cea30
mov byte [ebp - 0x81], al
call fcn.100754e0
call fcn.1006d6d0
jmp 0x100ce8fc
mov esi, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x54]
cmp ecx, 0xf
jbe 0x100ce914
push ecx
push dword [ebp - 0x68]
lea eax, [ebp - 0x68]
push eax
call fcn.100163b0
add esp, 0xc
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0xf
mov byte [ebp - 0x68], 0
mov dword [ebp - 4], 0xffffffff
cmp eax, 0xf
jbe 0x100ce945
push eax
push dword [ebp - 0x80]
lea eax, [ebp - 0x80]
push eax
call fcn.100163b0
add esp, 0xc
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x94]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0xf
mov byte [ebp - 0x80], 0
and dword [edx + 0x24], 0xfffffffc
cmp byte [ebp - 0x82], 0
jne 0x100ce9fe
movups xmm0, xmmword [ebp - 0xe0]
cvtdq2ps xmm0, xmm0
mulps xmm0, xmmword [0x101aaf10]
movups xmmword [ebp - 0x20], xmm0
test ecx, 0x200000
je 0x100ce9c5
movss xmm0, dword [ebp - 0x18]
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x20]
push eax
sub esp, 0xc
movss dword [esp + 8], xmm0
movss xmm0, dword [ebp - 0x1c]
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0x20]
movss dword [esp], xmm0
call fcn.1006c710
add esp, 0x18
cmp byte [ebp - 0x81], 0
je 0x100ce9fe
cmp byte [ebp - 0x98], 0
movss xmm0, dword [ebp - 0x20]
movss dword [esi], xmm0
movss xmm0, dword [ebp - 0x1c]
movss dword [esi + 4], xmm0
movss xmm0, dword [ebp - 0x18]
movss dword [esi + 8], xmm0
je 0x100ce9fe
movss xmm0, dword [ebp - 0x14]
movss dword [esi + 0xc], xmm0
call fcn.10075470
call fcn.1006d490
mov al, byte [ebp - 0x81]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10184b39
mov esp, ebp
pop ebp
ret 0xc