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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [0x100f7c18]
add eax, 0xffffffa3
mov dword [ebp - 0x10], ecx
xor eax, 0x8d9bebc7
mov dword [ebp - 0x14], edx
push ebx
push esi
push edi
mov eax, dword [eax + ecx]
mov ecx, dword [0x100f7924]
push ecx
mov edx, esp
movss dword [ebp - 4], xmm1
mov esi, dword [ecx]
mov esi, dword [esi + 0x10]
mov dword [edx], eax
call esi
test eax, eax
jne 0x10080194
xorps xmm0, xmm0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x100fd30c]
test cl, 1
jne 0x10080224
or ecx, 1
mov dword [0x100fd30c], ecx
mov ebx, dword [0x100f791c]
mov ebx, dword [ebx + 0x30]
mov dword [ebp - 8], ebx
test ebx, ebx
je 0x10080209
nop dword [eax]
mov esi, dword [ebx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x100801d0
xor edx, edx
test ecx, ecx
je 0x100801f9
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100801e0
cmp edi, 0x874b1932
je 0x10080216
mov ebx, dword [ebx + 4]
mov dword [ebp - 8], ebx
test ebx, ebx
jne 0x100801c0
mov ecx, dword [0x100fd30c]
xor ebx, ebx
mov dword [ebp - 8], ebx
mov dword [0x100fd328], ebx
jmp 0x1008022c
mov ecx, dword [0x100fd30c]
mov dword [0x100fd328], ebx
jmp 0x1008022c
mov eax, dword [0x100fd328]
mov dword [ebp - 8], eax
test cl, 2
jne 0x100802b4
or ecx, 2
mov dword [0x100fd30c], ecx
mov eax, dword [0x100f791c]
mov ebx, dword [eax + 0x30]
mov dword [ebp - 0xc], ebx
test ebx, ebx
je 0x10080299
nop dword [eax]
mov esi, dword [ebx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x10080260
xor edx, edx
test ecx, ecx
je 0x10080289
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10080270
cmp edi, 0x227932f
je 0x100802a6
mov ebx, dword [ebx + 4]
mov dword [ebp - 0xc], ebx
test ebx, ebx
jne 0x10080250
mov ecx, dword [0x100fd30c]
xor ebx, ebx
mov dword [ebp - 0xc], ebx
mov dword [0x100fd324], ebx
jmp 0x100802bc
mov ecx, dword [0x100fd30c]
mov dword [0x100fd324], ebx
jmp 0x100802bc
mov eax, dword [0x100fd324]
mov dword [ebp - 0xc], eax
test cl, 4
jne 0x1008031e
or ecx, 4
mov dword [0x100fd30c], ecx
mov eax, dword [0x100f791c]
mov ebx, dword [eax + 0x30]
test ebx, ebx
je 0x10080316
mov esi, dword [ebx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x100802e0
xor edx, edx
test ecx, ecx
je 0x10080309
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100802f0
cmp edi, 0x51c2378
je 0x10080336
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x100802d6
mov ecx, dword [0x100fd30c]
xor ebx, ebx
mov dword [0x100fd340], ebx
test cl, 8
jne 0x10080386
or ecx, 8
mov dword [0x100fd30c], ecx
mov eax, dword [0x100f791c]
mov ebx, dword [eax + 0x30]
jmp 0x1008037c
mov ecx, dword [0x100fd30c]
jmp 0x10080318
mov esi, dword [ebx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x10080350
xor edx, edx
test ecx, ecx
je 0x10080379
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10080360
cmp edi, 0x2d45f02d
je 0x10080380
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x10080340
mov dword [0x100fd310], ebx
mov eax, dword [0x100f7b4c]
mov ebx, dword [ebp - 0x10]
add eax, 0xffffffd6
xor eax, 0x8d9beb94
cmp dword [eax + ebx], 3
jne 0x100803ac
mov ecx, dword [ebp - 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x10], eax
call dword [ebp - 0x10]
jmp 0x100803ba
mov ecx, dword [ebp - 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x10], eax
call dword [ebp - 0x10]
mov eax, dword [0x100f7b4c]
add eax, 0xffffffd6
xor eax, 0x8d9beb94
fstp dword [ebp - 0xc]
cmp dword [eax + ebx], 3
jne 0x100803e3
mov ecx, dword [0x100fd340]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x10], eax
call dword [ebp - 0x10]
jmp 0x100803f4
mov ecx, dword [0x100fd310]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x10], eax
call dword [ebp - 0x10]
mov eax, dword [0x100f7bd8]
movss xmm3, dword [0x100a7558]
add eax, 0xffffffb3
xor eax, 0x8d9bebb7
fstp dword [ebp - 8]
movss xmm0, dword [ebp - 8]
mov ecx, dword [eax + ebx]
mov eax, dword [0x100f7bc4]
add eax, 0xffffffb8
xor eax, 0x8d9bebb2
mov dl, byte [eax + ebx]
test dl, dl
je 0x1008042c
mulss xmm0, xmm3
mov esi, dword [ebp - 0x14]
lea eax, [esi - 1]
cmp eax, 6
ja case.default.0x10080437
jmp dword [eax*4 + 0x10080508]
mulss xmm0, dword [0x100a7618]
mulss xmm0, dword [ebp - 4]
movaps xmm5, xmm0
jmp 0x10080489
movss xmm5, dword [ebp - 0xc]
mulss xmm5, dword [ebp - 4]
jmp 0x10080489
movss xmm5, dword [ebp - 0xc]
mulss xmm5, dword [0x100a75ac]
mulss xmm5, dword [ebp - 4]
jmp 0x10080489
movss xmm5, dword [ebp - 0xc]
mulss xmm5, dword [0x100a7578]
mulss xmm5, dword [ebp - 4]
jmp 0x10080489
movss xmm5, dword [ebp - 4]
test ecx, ecx
jle case.default.0x10080492
cmp esi, 5
ja case.default.0x10080492
jmp dword [esi*4 + 0x10080524]
mov eax, dword [0x100f7bbc]
add eax, 0xffffffba
xor eax, 0x8d9bebb0
cmp byte [eax + ebx], 0
je case.default.0x10080492
movss xmm2, dword [0x100a75a4]
movaps xmm1, xmm3
test dl, dl
je 0x100804ce
movss xmm3, dword [0x100a7534]
movss xmm1, dword [0x100a7528]
movaps xmm2, xmm3
mulss xmm1, xmm5
movaps xmm0, xmm5
mulss xmm2, xmm3
subss xmm0, xmm1
movd xmm4, ecx
cvtdq2ps xmm4, xmm4
mulss xmm2, xmm0
comiss xmm2, xmm4
jbe 0x100804f8
divss xmm4, xmm3
movaps xmm1, xmm5
subss xmm1, xmm4
movaps xmm5, xmm1
pop edi
pop esi
movaps xmm0, xmm5
pop ebx
mov esp, ebp
pop ebp
ret