Function at 0x10069903
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1011e06d
mov eax, dword fs:[0]
push eax
sub esp, 0x24
push esi
push edi
mov eax, dword [0x101c7100]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 4], 0
cmp byte [0x101ce08a], 0
je 0x100698d8
mov eax, dword [ebp + 8]
add eax, 7
sar eax, 3
cmp eax, 3
jb 0x100698d8
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], 0
push eax
lea ecx, [ebp + 8]
mov byte [ebp - 0xd], 0
call fcn.1006b5f0
push 1
push 8
lea eax, [ebp - 0xd]
push eax
lea ecx, [ebp + 8]
call fcn.100ba600
mov ecx, dword [ebp - 0x14]
xorps xmm0, xmm0
movzx eax, cx
mov dword [ebp - 0x20], eax
movzx eax, cl
xor eax, 0x811c9dc5
movzx esi, cx
imul eax, eax, 0x1000193
shr esi, 8
movlpd qword [ebp - 0x30], xmm0
mov dword [ebp - 0x28], esi
xor eax, esi
imul eax, eax, 0x1000193
push eax
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.1007b460
mov edi, dword [0x10828c44]
mov ecx, edi
mov eax, dword [eax + 4]
test eax, eax
cmovne ecx, eax
cmp ecx, edi
jne 0x10069717
mov ecx, dword [ebp - 0x14]
call fcn.100786b0
mov edi, dword [0x10828c44]
mov eax, dword [ebp - 0x14]
movzx eax, al
xor eax, 0x811c9dc5
imul eax, eax, 0x1000193
xor eax, esi
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.1007b460
mov ecx, edi
mov eax, dword [eax + 4]
test eax, eax
cmovne ecx, eax
cmp ecx, edi
je 0x100697e4
cmp byte [ecx + 0xc], 0
je 0x100697e4
cmp byte [ecx + 0x84], 0x34
movss xmm0, dword [ecx + 0x94]
mulss xmm0, dword [0x101b28e4]
movss xmm1, dword [0x101b297c]
movss dword [ecx + 0x94], xmm0
movss xmm0, dword [ecx + 0xa4]
mulss xmm0, xmm1
movss dword [ecx + 0xa4], xmm0
jne 0x100697a1
movss xmm0, dword [0x101b27b0]
jmp 0x100697a9
movss xmm0, dword [0x101b2730]
mulss xmm0, xmm1
mulss xmm0, dword [ecx + 0x8c]
movss dword [ecx + 0x8c], xmm0
movss xmm0, dword [ecx + 0x14]
divss xmm0, dword [0x101b2974]
mulss xmm0, dword [ecx + 0xd8]
movss dword [ecx + 0xd8], xmm0
mov byte [ecx + 0xc], 0
mov edi, dword [0x10828c44]
movzx esi, byte [ebp - 0xd]
test esi, esi
je 0x1006985b
nop dword [eax]
push 1
push 8
lea eax, [ebp - 0xd]
push eax
lea ecx, [ebp + 8]
call fcn.100ba600
mov cl, byte [ebp - 0xd]
add dword [ebp + 0x10], 8
call fcn.10078410
movzx ecx, al
dec ecx
mov byte [ebp - 0xe], al
cmp ecx, 3
ja case.default.0x10069818
jmp dword [ecx*4 + 0x1006998c]
push 1
push 8
lea ecx, [ebp + 8]
lea eax, [ebp - 0x2c]
push eax
call fcn.100ba600
test al, al
je case.default.0x10069818
mov al, byte [ebp - 0xe]
push dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x14]
mov byte [ebp - 0x2f], al
mov al, byte [ebp - 0xd]
mov byte [ebp - 0x30], al
push dword [ebp - 0x30]
call fcn.10078ec0
add esp, 8
sub esi, 1
jne 0x100697f0
mov edi, dword [0x10828c44]
mov eax, dword [ebp - 0x14]
push dword [ebp - 0x24]
movzx eax, ax
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.1007b460
mov ecx, edi
mov eax, dword [eax + 4]
test eax, eax
cmovne ecx, eax
cmp ecx, edi
jne 0x10069890
mov ecx, dword [ebp - 0x14]
call fcn.100786b0
mov edi, dword [0x10828c44]
mov eax, dword [ebp - 0x14]
movzx eax, al
xor eax, 0x811c9dc5
imul eax, eax, 0x1000193
xor eax, dword [ebp - 0x28]
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.1007b460
mov esi, edi
mov eax, dword [eax + 4]
test eax, eax
cmovne esi, eax
cmp esi, edi
je 0x100698d8
cmp byte [esi + 0xc], 0
jne 0x100698d8
lea ecx, [esi + 0x10]
call fcn.100785f0
mov byte [esi + 0xc], 1
cmp byte [ebp + 0x18], 0
je 0x100698f2
cmp dword [ebp + 0xc], 0x800
jle 0x100698f2
push dword [ebp + 0x14]
call fcn.100fcb2a
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
call fcn.100ba860
lea ecx, [ebp + 8]
push 1
push 0x20
test al, al
je 0x10069826
lea eax, [ebp - 0x18]
push eax
call fcn.100ba600
test al, al
je 0x10069983
mov al, byte [ebp - 0x15]
mov byte [ebp - 0x2c], al
mov al, byte [ebp - 0x16]
mov byte [ebp - 0x2b], al
mov al, byte [ebp - 0x17]
mov byte [ebp - 0x2a], al
mov al, byte [ebp - 0x18]
mov byte [ebp - 0x29], al
mov al, 1
jmp 0x1006982f
call fcn.100ba860
push 1
push 0x20
test al, al
je 0x10069823
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp + 8]
call fcn.100ba600
test al, al
je 0x10069983
mov al, byte [ebp - 0x1d]
mov byte [ebp - 0x2c], al
mov al, byte [ebp - 0x1e]
mov byte [ebp - 0x2b], al
mov al, byte [ebp - 0x1f]
mov byte [ebp - 0x2a], al
mov al, byte [ebp - 0x20]
mov byte [ebp - 0x29], al
mov al, 1
jmp 0x1006982f
xor al, al
jmp 0x1006982f