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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x18
push esi
push edi
mov edi, ecx
mov ecx, dword [0x100b99e0]
mov dword [ebp - 8], edi
mov al, byte [ecx + 0x30]
and al, 1
cmp dword [0x100b9988], 0x40
jne 0x10020211
test dword [ecx + 0x30], 0x800
je 0x10020211
mov cl, 1
jmp 0x10020213
xor cl, cl
test al, al
jne 0x1002021f
test cl, cl
je 0x100204e6
mov eax, dword [0x10117d04]
test al, 1
jne 0x100202a1
or eax, 1
mov dword [0x10117d04], eax
mov eax, dword [0x10112024]
mov eax, dword [eax + 0x30]
mov dword [ebp - 4], eax
test eax, eax
je 0x10020289
nop
mov edi, dword [eax + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + edi], 0
jne 0x10020250
xor edx, edx
test ecx, ecx
je 0x1002027c
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10020260
cmp esi, 0x39b43527
je 0x10020293
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov dword [ebp - 4], eax
test eax, eax
jne 0x10020240
mov edi, dword [ebp - 8]
xor ecx, ecx
mov dword [0x10117d00], ecx
jmp 0x100202a7
mov ecx, dword [ebp - 4]
mov edi, dword [ebp - 8]
mov dword [0x10117d00], ecx
jmp 0x100202a7
mov ecx, dword [0x10117d00]
mov eax, dword [0x100bf98c]
test eax, eax
jne 0x100202ba
mov eax, dword [0x100b99b8]
mov byte [eax], 1
jmp 0x10020323
cmp eax, 1
jne 0x10020304
cmp dword [0x100b99ac], 0xe
mov eax, dword [0x100b99b8]
setge cl
mov byte [eax], cl
cmp dword [0x100b99ac], 0xe
jl 0x10020323
cmp dword [0x100b9988], 0x40
mov eax, dword [0x100b99e0]
jne 0x100202f7
and dword [eax + 0x30], 0xfffff7ff
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
and dword [eax + 0x30], 0xfffffffe
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
cmp eax, 2
jne 0x10020323
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
call eax
test eax, eax
jle 0x10020323
mov ecx, dword [0x10117d00]
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
call eax
cmp dword [edi + 0x439c4], 0
je 0x100203c4
mov eax, dword [edi + 0x439ec]
test eax, eax
je 0x1002036e
cmp byte [eax + 0x6b4], 0
jne 0x1002036e
movss xmm0, dword [eax + 0x14]
addss xmm0, dword [0x100b99c4]
mov eax, dword [0x10112084]
divss xmm0, dword [eax + 0x20]
mov eax, dword [0x100b99e0]
addss xmm0, dword [0x100ad710]
cvttss2si ecx, xmm0
mov dword [eax + 8], ecx
mov ecx, dword [0x100b99e0]
lea edx, [edi + 0x439c8]
mov eax, dword [edx]
mov dword [ecx + 0xc], eax
mov eax, dword [edx + 4]
mov dword [ecx + 0x10], eax
mov eax, dword [edx + 8]
mov dword [ecx + 0x14], eax
cmp byte [0x100bb5a4], 0
jne 0x100203a2
mov ecx, dword [0x10112028]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x4c]
call eax
cmp byte [0x100bc118], 0
je 0x100203c4
push dword [0x100bc3a0]
movss xmm3, dword [0x100bc2cc]
push dword [edi + 0x439ec]
call fcn.10097250
cmp byte [0x100bc8fc], 0
je 0x100203db
cmp dword [0x100cbf28], 1
jne 0x100203db
call fcn.100204f0
cmp byte [0x100bc984], 0
je 0x1002045e
mov ecx, dword [0x10112114]
mov esi, dword [0x101122dc]
add esi, 0xffffffae
xor esi, 0x7e881230
mov eax, dword [ecx]
add esi, dword [0x100b92e0]
mov eax, dword [eax + 0x30]
mov dword [ebp - 8], eax
call dword [ebp - 8]
mov eax, dword [0x100b99e0]
movss xmm1, dword [esi]
movss xmm2, dword [esi + 4]
movss xmm4, dword [esi + 8]
movss xmm0, dword [eax + 0xc]
fstp dword [ebp - 8]
movss xmm3, dword [ebp - 8]
mulss xmm1, xmm3
subss xmm0, xmm1
movaps xmm1, xmm3
mulss xmm1, xmm2
mulss xmm3, xmm4
movss dword [eax + 0xc], xmm0
movss xmm0, dword [eax + 0x10]
subss xmm0, xmm1
movss dword [eax + 0x10], xmm0
movss xmm0, dword [eax + 0x14]
subss xmm0, xmm3
movss dword [eax + 0x14], xmm0
mov edx, dword [edi + 0x439c4]
cvttss2si ecx, dword [edi + 0x439e8]
test edx, edx
je 0x10020496
movq xmm0, qword [edi + 0x439d4]
mov eax, dword [edi + 0x439dc]
mov esi, dword [edi + 0x439ec]
movss xmm2, dword [edi + 0x439e0]
movq qword [ebp - 0x14], xmm0
mov dword [ebp - 0xc], eax
jmp 0x100204b7
movss xmm2, dword [0x100ad964]
xor esi, esi
mov dword [ebp - 0x14], 0
xor edx, edx
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
push ecx
cvttss2si ecx, dword [edi + 0x439e4]
lea eax, [ebp - 0x14]
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
push ecx
sub esp, 0xc
mov ecx, esp
push esi
push ecx
movq qword [ecx], xmm0
push edx
mov dword [ecx + 8], eax
call fcn.1007c6a0
mov byte [0x100b92fd], 1
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret