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

Disassembly:
push ebp
mov ebp, esp
push ecx
cmp byte [0x101394fc], 0
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, ecx
push edi
mov dword [ebp - 4], esi
je 0x1003152a
test dword [ebx + 0x30], 0x10000
je 0x1003152a
mov eax, dword [0x1014095c]
test al, 1
jne 0x1003151c
or eax, 1
mov dword [0x1014095c], eax
mov dword [0x10140954], 0
push 0x1014094c
call dword [0x1013b604]
add esp, 4
push ebx
mov ecx, esi
call fcn.10030410
cmp byte [esi + 0xf], 0
je 0x100317a7
push 0
call fcn.10030630
mov ecx, esi
call fcn.10030910
push ebx
mov ecx, esi
call fcn.10031270
push 1
call fcn.10030630
mov eax, dword [0x1014090c]
mov byte [0x10122b6d], 0
test al, 1
jne 0x100315de
or eax, 1
mov dword [0x1014090c], eax
mov eax, dword [0x1013b4a8]
mov edi, dword [eax + 0x30]
test edi, edi
je 0x100315c6
nop dword [eax]
mov esi, dword [edi + 0xc]
mov ebx, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x10031590
xor edx, edx
test ecx, ecx
je 0x100315b9
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, ebx
imul ebx, eax, 0x1000193
cmp edx, ecx
jb 0x100315a0
cmp ebx, 0x2437fe
je 0x100315d0
mov edi, dword [edi + 4]
test edi, edi
jne 0x10031580
mov ebx, dword [ebp + 8]
mov esi, dword [ebp - 4]
xor edi, edi
mov dword [0x10140914], edi
jmp 0x100315e4
mov ebx, dword [ebp + 8]
mov esi, dword [ebp - 4]
mov dword [0x10140914], edi
jmp 0x100315e4
mov edi, dword [0x10140914]
cmp byte [0x101296e4], 0
mov eax, dword [edi]
je 0x10031602
movss xmm0, dword [0x10129770]
mov eax, dword [eax + 0x3c]
push ecx
movss dword [esp], xmm0
jmp 0x10031607
mov eax, dword [eax + 0x40]
push 0x10
mov ecx, edi
call eax
mov ecx, dword [0x1013b6c8]
mov eax, dword [0x10122b60]
add ecx, 0xffffffc7
xor ecx, 0xee847b80
cmp dword [ecx + eax], 0
jne 0x1003163f
cmp byte [0x10122aa8], 0
je 0x100316dc
mov ecx, dword [0x1013b4ac]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
cmp byte [0x10122aa8], 0
je 0x100316dc
cmp byte [0x101040c4], 0
je 0x1003169e
mov eax, dword [0x10122f40]
mov ecx, 0
test byte [eax + 0x30], 1
mov eax, dword [0x1013b364]
cmovne eax, ecx
inc eax
mov dword [0x1013b364], eax
cmp eax, 0x28
jl 0x100316dc
cvttss2si eax, dword [0x1012962c]
mov byte [0x10122b6c], 1
mov dword [0x10122b64], ecx
mov dword [0x1013b364], ecx
mov byte [0x101040c4], cl
mov dword [0x10122b68], eax
jmp 0x100316dc
cmp byte [0x10122b6e], 0
je 0x100316dc
mov eax, dword [0x10122f40]
mov byte [0x10122b6d], 1
test byte [eax + 0x30], 1
je 0x100316dc
mov eax, dword [0x10122f18]
mov byte [0x101040c4], 1
mov byte [eax], 1
cvttss2si eax, dword [0x1012962c]
mov byte [0x10122b6e], 0
mov dword [0x10122b64], eax
mov eax, dword [0x1013b4c4]
mov byte [eax + 8], 0
mov eax, dword [0x1013b664]
mov dword [eax], 0xffffffff
mov eax, dword [0x1013b508]
movss xmm0, dword [0x1013b3fc]
mov dword [0x1013b668], 0
movss dword [eax + 0x10], xmm0
mov eax, dword [0x1013b508]
movss xmm0, dword [0x1013b400]
movss dword [eax + 0x14], xmm0
lea eax, [esi + 0x400]
push eax
push ebx
call fcn.100d0c10
mov ecx, dword [0x1013b6d0]
mov eax, dword [0x10122b60]
add ecx, 0xffffffc5
xor ecx, 0xee847b82
cmp dword [ecx + eax], 9
je 0x100317a7
cmp byte [0x101318a8], 0
je 0x100317a7
movss xmm1, dword [ebx + 0x28]
xorps xmm0, xmm0
comiss xmm0, xmm1
jbe 0x1003176b
mov eax, dword [ebx + 0x30]
and eax, 0xfffffdff
or eax, 0x400
mov dword [ebx + 0x30], eax
comiss xmm1, xmm0
jbe 0x10031780
mov eax, dword [ebx + 0x30]
and eax, 0xfffffbff
or eax, 0x200
mov dword [ebx + 0x30], eax
movss xmm1, dword [ebx + 0x24]
comiss xmm1, xmm0
jbe 0x10031796
mov eax, dword [ebx + 0x30]
and eax, 0xfffffff7
or eax, 0x10
mov dword [ebx + 0x30], eax
comiss xmm0, xmm1
jbe 0x100317a7
mov eax, dword [ebx + 0x30]
and eax, 0xffffffef
or eax, 8
mov dword [ebx + 0x30], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4