Function at 0x1000c7a0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
mov ebx, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 8]
push edi
push ebx
push dword [ebp + 0xc]
mov ecx, dword [esi + 4]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xf0]
mov dword [ebp + 8], eax
test eax, eax
js 0x1000ca96
test ebx, ebx
je 0x1000ca96
mov ecx, dword [ebx]
test ecx, ecx
je 0x1000ca96
mov eax, dword [ecx]
push ecx
call dword [eax + 0x28]
sub eax, 3
je 0x1000c9a7
sub eax, 1
je 0x1000c8d1
sub eax, 1
je 0x1000c807
pop edi
pop esi
mov eax, 0x8876086c
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov edx, dword [ebx]
mov esi, dword [esi + 0xc]
mov dword [ebp + 0xc], edx
mov dword [ebp + 0x10], edx
test edx, edx
je 0x1000ca8f
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, edx
shr eax, 8
movzx eax, al
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x10
movzx eax, al
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
lea ecx, [esi + 0x68]
push eax
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp - 8]
push eax
call fcn.1000ab60
mov edi, dword [eax + 4]
test edi, edi
jne 0x1000c870
mov edi, dword [esi + 0x6c]
cmp edi, dword [esi + 0x6c]
jne 0x1000ca1e
push 0x10
call fcn.10016b34
mov edi, eax
add esp, 4
test edi, edi
je 0x1000ca8f
mov ecx, dword [esi + 4]
lea esi, [edi + 4]
mov eax, dword [ebp + 0xc]
mov dword [edi + 8], eax
mov dword [ebp + 0x10], eax
lea eax, [ebp + 0x10]
mov dword [edi + 0xc], ecx
push eax
mov dword [edi], vtable.m_IDirect3DCubeTexture8.0
lea eax, [ebp - 8]
mov dword [esi], vtable.m_IDirect3DCubeTexture8.1.0
mov ecx, dword [ecx + 0xc]
push eax
add ecx, 0x68
call fcn.1000abd0
mov eax, dword [eax]
mov dword [eax + 0xc], esi
mov eax, dword [ebp + 8]
mov dword [ebx], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov edx, dword [ebx]
mov esi, dword [esi + 0xc]
mov dword [ebp + 0xc], edx
mov dword [ebp + 0x10], edx
test edx, edx
je 0x1000ca8f
mov eax, edx
shr eax, 8
movzx ecx, al
movzx eax, dl
xor eax, 0x811c9dc5
imul eax, eax, 0x1000193
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x10
movzx eax, al
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
lea ecx, [esi + 0x148]
push eax
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp - 8]
push eax
call fcn.1000ab60
mov edi, dword [eax + 4]
test edi, edi
jne 0x1000c940
mov edi, dword [esi + 0x14c]
cmp edi, dword [esi + 0x14c]
jne 0x1000ca1e
push 0x10
call fcn.10016b34
mov edi, eax
add esp, 4
test edi, edi
je 0x1000ca8f
mov ecx, dword [esi + 4]
lea esi, [edi + 4]
mov eax, dword [ebp + 0xc]
mov dword [edi + 8], eax
mov dword [ebp + 0x10], eax
lea eax, [ebp + 0x10]
mov dword [edi + 0xc], ecx
push eax
mov dword [edi], vtable.m_IDirect3DVolumeTexture8.0
lea eax, [ebp - 8]
mov dword [esi], vtable.m_IDirect3DVolumeTexture8.1.0
mov ecx, dword [ecx + 0xc]
push eax
add ecx, 0x148
call fcn.1000abd0
mov eax, dword [eax]
mov dword [eax + 0xc], esi
mov eax, dword [ebp + 8]
mov dword [ebx], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov edx, dword [ebx]
mov esi, dword [esi + 0xc]
mov dword [ebp + 0xc], edx
mov dword [ebp + 0x10], edx
test edx, edx
je 0x1000ca8f
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, edx
shr eax, 8
movzx eax, al
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x10
movzx eax, al
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
lea ecx, [esi + 0xe8]
push eax
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp - 8]
push eax
call fcn.1000ab60
mov edi, dword [eax + 4]
test edi, edi
jne 0x1000ca16
mov edi, dword [esi + 0xec]
cmp edi, dword [esi + 0xec]
je 0x1000ca38
mov edi, dword [edi + 0xc]
lea eax, [edi - 4]
neg edi
sbb edi, edi
and edi, eax
mov eax, dword [ebp + 8]
mov dword [ebx], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push 0x10
call fcn.10016b34
mov edi, eax
add esp, 4
test edi, edi
je 0x1000ca8f
mov ecx, dword [esi + 4]
lea esi, [edi + 4]
mov eax, dword [ebp + 0xc]
mov dword [edi + 8], eax
mov dword [ebp + 0x10], eax
lea eax, [ebp + 0x10]
mov dword [edi + 0xc], ecx
push eax
mov dword [edi], vtable.m_IDirect3DTexture8.0
lea eax, [ebp - 8]
mov dword [esi], vtable.m_IDirect3DTexture8.1.0
mov ecx, dword [ecx + 0xc]
push eax
add ecx, 0xe8
call fcn.1000abd0
mov eax, dword [eax]
mov dword [eax + 0xc], esi
mov eax, dword [ebp + 8]
mov dword [ebx], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebp + 8]
xor edi, edi
mov dword [ebx], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc