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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov esi, dword [ebp + 8]
mov ecx, esi
push edi
mov eax, dword [esi]
mov eax, dword [eax + 0x260]
call eax
test al, al
je 0x100c6a05
mov eax, dword [0x10123594]
mov ecx, dword [0x10129518]
add eax, 0xffffffd6
xor eax, 0x920a48dc
mov eax, dword [eax + esi]
mov dword [ebp - 0xc], eax
test cl, 1
jne 0x100c65b4
or ecx, 1
mov dword [0x10129518], ecx
mov ebx, dword [0x10123348]
mov ebx, dword [ebx + 0x30]
mov dword [ebp - 4], ebx
test ebx, ebx
je 0x100c6599
nop dword [eax + eax]
mov edi, dword [ebx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + edi], 0
jne 0x100c6560
xor edx, edx
test ecx, ecx
je 0x100c6589
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x100c6570
cmp esi, 0x51c2378
je 0x100c65a6
mov ebx, dword [ebx + 4]
mov dword [ebp - 4], ebx
test ebx, ebx
jne 0x100c6550
mov ecx, dword [0x10129518]
xor ebx, ebx
mov dword [ebp - 4], ebx
mov dword [0x101294b4], ebx
jmp 0x100c65bc
mov ecx, dword [0x10129518]
mov dword [0x101294b4], ebx
jmp 0x100c65bc
mov eax, dword [0x101294b4]
mov dword [ebp - 4], eax
test cl, 2
jne 0x100c6644
or ecx, 2
mov dword [0x10129518], ecx
mov eax, dword [0x10123348]
mov ebx, dword [eax + 0x30]
mov dword [ebp - 8], ebx
test ebx, ebx
je 0x100c6629
nop dword [eax]
mov edi, dword [ebx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + edi], 0
jne 0x100c65f0
xor edx, edx
test ecx, ecx
je 0x100c6619
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x100c6600
cmp esi, 0x2d45f02d
je 0x100c6636
mov ebx, dword [ebx + 4]
mov dword [ebp - 8], ebx
test ebx, ebx
jne 0x100c65e0
mov ecx, dword [0x10129518]
xor ebx, ebx
mov dword [ebp - 8], ebx
mov dword [0x10129510], ebx
jmp 0x100c664c
mov ecx, dword [0x10129518]
mov dword [0x10129510], ebx
jmp 0x100c664c
mov eax, dword [0x10129510]
mov dword [ebp - 8], eax
test cl, 4
jne 0x100c66ae
or ecx, 4
mov dword [0x10129518], ecx
mov eax, dword [0x10123348]
mov ebx, dword [eax + 0x30]
test ebx, ebx
je 0x100c66a6
mov edi, dword [ebx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x100c6670
xor edx, edx
test ecx, ecx
je 0x100c6699
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x100c6680
cmp esi, 0x874b1932
je 0x100c66c6
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x100c6666
mov ecx, dword [0x10129518]
xor ebx, ebx
mov dword [0x10129514], ebx
test cl, 8
jne 0x100c6716
or ecx, 8
mov dword [0x10129518], ecx
mov eax, dword [0x10123348]
mov ebx, dword [eax + 0x30]
jmp 0x100c670c
mov ecx, dword [0x10129518]
jmp 0x100c66a8
mov edi, dword [ebx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + edi], 0
jne 0x100c66e0
xor edx, edx
test ecx, ecx
je 0x100c6709
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x100c66f0
cmp esi, 0x227932f
je 0x100c6710
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x100c66d0
mov dword [0x10129508], ebx
cmp dword [ebp - 0xc], 3
jne 0x100c672c
mov ecx, dword [ebp - 4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0xc], eax
call dword [ebp - 0xc]
jmp 0x100c673a
mov ecx, dword [ebp - 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0xc], eax
call dword [ebp - 0xc]
mov ecx, dword [0x10129514]
fstp dword [ebp - 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0xc], eax
call dword [ebp - 0xc]
mov eax, dword [0x10123600]
mov edi, dword [ebp + 8]
add eax, 0xffffffbb
xor eax, 0x920a48f8
mov ecx, dword [ebp + 0x18]
dec ecx
fstp dword [ebp - 4]
mov dl, byte [eax + edi]
mov eax, dword [0x10123608]
add eax, 0xffffffb9
xor eax, 0x920a48fa
mov bh, byte [eax + edi]
mov eax, dword [0x1012361c]
add eax, 0xffffffb4
xor eax, 0x920a48ff
movd xmm0, dword [eax + edi]
cvtdq2ps xmm0, xmm0
comiss xmm0, dword [0x100e9aac]
jbe 0x100c67b6
cmp ecx, 4
ja case.default.0x100c679b
jmp dword [ecx*4 + 0x100c6a10]
mov bl, 1
jmp 0x100c67b8
test dl, dl
jne case.0x100c679b.1
test bh, bh
je 0x100c67b6
mov bl, 1
jmp 0x100c67b8
mov bl, bh
jmp 0x100c67b8
xor bl, bl
mov ecx, dword [0x10123670]
mov eax, dword [0x100f5024]
add ecx, 0xffffff9f
xor ecx, 0x920a4914
mov eax, dword [ecx + eax]
mov ecx, dword [0x10123350]
push ecx
mov edx, dword [ecx]
mov esi, dword [edx + 0x10]
mov edx, esp
mov dword [edx], eax
call esi
test eax, eax
je 0x100c6826
mov ecx, dword [0x10123670]
mov eax, dword [0x100f5024]
add ecx, 0xffffff9f
xor ecx, 0x920a4914
mov eax, dword [ecx + eax]
mov ecx, dword [0x10123350]
push ecx
mov edx, dword [ecx]
mov esi, dword [edx + 0x10]
mov edx, esp
mov dword [edx], eax
call esi
mov ecx, dword [0x10123688]
add ecx, 0xffffff99
xor ecx, 0x920a491a
cmp dword [ecx + eax], 0x1f
sete cl
jmp 0x100c6828
xor cl, cl
mov eax, dword [0x1012361c]
movss xmm1, dword [ebp - 8]
add eax, 0xffffffb4
xor eax, 0x920a48ff
movd xmm0, dword [eax + edi]
cvtdq2ps xmm0, xmm0
movss dword [ebp + 8], xmm0
test bh, bh
je 0x100c6853
mulss xmm1, dword [0x100e9b6c]
mov edi, dword [ebp + 0x14]
test cl, cl
jne case.0x100c6863.2
mov eax, dword [ebp + 0x18]
dec eax
cmp eax, 6
ja case.0x100c6863.2
jmp dword [eax*4 + 0x100c6a24]
movss xmm0, dword [edi]
mulss xmm0, dword [0x100e9c40]
mulss xmm0, xmm1
jmp 0x100c689b
movss xmm0, dword [edi]
mulss xmm0, dword [0x100e9bd0]
jmp 0x100c6896
movss xmm0, dword [edi]
mulss xmm0, dword [0x100e9b90]
mulss xmm0, dword [ebp - 4]
movss dword [edi], xmm0
mov ecx, dword [0x100f5024]
test ecx, ecx
je 0x100c6a05
mov eax, dword [0x10123670]
add eax, 0xffffff9f
xor eax, 0x920a4914
mov eax, dword [eax + ecx]
mov ecx, dword [0x10123350]
push ecx
mov edx, dword [ecx]
mov esi, dword [edx + 0x10]
mov edx, esp
mov dword [edx], eax
call esi
test eax, eax
je 0x100c6a05
mov ecx, dword [0x10123670]
mov eax, dword [0x100f5024]
add ecx, 0xffffff9f
xor ecx, 0x920a4914
mov eax, dword [ecx + eax]
mov ecx, dword [0x10123350]
push ecx
mov edx, dword [ecx]
mov esi, dword [edx + 0x10]
mov edx, esp
mov dword [edx], eax
call esi
mov ecx, dword [eax]
mov edx, dword [ecx + 0x6f8]
mov ecx, eax
call edx
test eax, eax
je 0x100c6a05
mov ecx, dword [0x10123670]
mov eax, dword [0x100f5024]
add ecx, 0xffffff9f
xor ecx, 0x920a4914
mov eax, dword [ecx + eax]
mov ecx, dword [0x10123350]
push ecx
mov edx, dword [ecx]
mov esi, dword [edx + 0x10]
mov edx, esp
mov dword [edx], eax
call esi
mov ecx, dword [eax]
mov edx, dword [ecx + 0x6f8]
mov ecx, eax
call edx
movss xmm1, dword [eax + 0xf0]
test bl, bl
je 0x100c69b3
movss xmm4, dword [edi]
test bh, bh
je 0x100c6977
movss xmm2, dword [0x100e9c24]
movss xmm3, dword [0x100e9b10]
mulss xmm1, dword [0x100e9b34]
jmp 0x100c698b
movss xmm3, dword [0x100e9b6c]
movss xmm2, dword [0x100e9c14]
mulss xmm1, xmm3
mulss xmm1, xmm4
movaps xmm0, xmm4
subss xmm0, xmm1
mulss xmm0, xmm3
movss xmm3, dword [ebp + 8]
comiss xmm0, xmm3
jbe 0x100c69af
mulss xmm2, xmm3
movaps xmm1, xmm4
subss xmm1, xmm2
movss dword [edi], xmm1
movss xmm3, dword [edi]
movss xmm4, dword [0x100e9d84]
movaps xmm0, xmm3
movss xmm2, dword [0x100e9d7c]
andps xmm4, xmm3
xorps xmm0, xmm4
movss xmm5, dword [0x100e9bc4]
cmpltss xmm0, xmm2
movaps xmm1, xmm3
andps xmm2, xmm0
orps xmm2, xmm4
addss xmm1, xmm2
subss xmm1, xmm2
movaps xmm0, xmm1
subss xmm0, xmm3
cmpnless xmm0, xmm4
andps xmm0, xmm5
subss xmm1, xmm0
movss dword [edi], xmm1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14