Function at 0x1008c6a0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x248
push ebx
push esi
mov esi, ecx
push edi
mov dword [ebp - 8], esi
lea eax, [esi + 0x10c]
push eax
lea eax, [ebp - 0x160]
push eax
lea ecx, [esi + 0x98]
call fcn.10088e10
mov edx, dword [ebp + 0x28]
mov ebx, dword [eax]
movzx eax, dl
xor eax, 0x811c9dc5
mov dword [ebp - 0x10], ebx
imul ecx, eax, 0x1000193
movzx eax, dh
lea edi, [ebx + 0x1f4]
xor ecx, eax
movzx eax, byte [ebp + 0x2a]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [ebp + 0x2b]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, edi
push eax
mov dword [ebp - 0xc], eax
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 0x168]
push eax
call fcn.100889a0
cmp dword [eax + 4], 0
jne 0x1008c78a
push dword [ebp - 0xc]
lea eax, [ebp + 0x28]
add esi, 0xd8
push eax
lea eax, [ebp - 0x170]
mov dword [ebp - 4], esi
push eax
mov ecx, esi
call fcn.100889a0
cmp dword [eax + 4], 0
je 0x1008d04a
lea eax, [ebp + 0x28]
mov ecx, esi
push eax
lea eax, [ebp - 0x178]
push eax
call fcn.10088c10
mov ecx, dword [ebp - 4]
mov esi, dword [eax]
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 0x180]
push eax
call fcn.10088c10
push dword [esi + 0x14]
mov ecx, dword [ebp - 8]
mov eax, dword [eax]
push dword [eax + 0x10]
push dword [ebp + 0x28]
push dword [ebx + 0x10]
call fcn.1008a980
lea eax, [ebp + 0x28]
mov ecx, edi
push eax
lea eax, [ebp - 0x188]
push eax
call fcn.10088a60
lea ecx, [ebp + 0x28]
push ecx
lea ecx, [ebp - 0x190]
mov esi, dword [eax]
mov eax, dword [ebp - 8]
add eax, 0xd8
push ecx
mov ecx, eax
mov dword [ebp - 4], eax
call fcn.10088c10
mov ecx, dword [eax]
mov eax, dword [esi + 0x30]
cmp eax, dword [ecx + 0x18]
je 0x1008c879
mov esi, dword [ebp - 4]
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 0x198]
mov ecx, esi
push eax
call fcn.10088c10
mov ecx, esi
mov ebx, dword [eax]
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 0x1a0]
push eax
call fcn.10088c10
mov ecx, esi
mov edi, dword [eax]
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 0x1a8]
push eax
call fcn.10088c10
mov ecx, dword [ebp - 4]
mov esi, dword [eax]
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 0x1b0]
push eax
call fcn.10088c10
push dword [ebx + 0xc]
mov ecx, dword [edi + 0x10]
mov ebx, dword [ebp - 0x10]
mov eax, dword [eax]
shl ecx, 2
push ecx
mov ecx, dword [ebp - 8]
push 2
push dword [esi + 0x14]
push dword [eax + 0x10]
push 0
push 0
push dword [ebp + 0x28]
push dword [ebx + 0x10]
call fcn.1008c1a0
mov ecx, dword [ebp - 4]
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 0x1b8]
push eax
call fcn.10088c10
lea edi, [ebx + 0x1f4]
mov ecx, edi
mov eax, dword [eax]
mov esi, dword [eax + 0x18]
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 0x120]
push eax
call fcn.10088a60
mov eax, dword [eax]
mov dword [eax + 0x30], esi
mov esi, dword [ebp - 8]
lea ecx, [ebx + 0x214]
lea eax, [esi + 0xfc]
push eax
lea eax, [ebp - 0x128]
push eax
call fcn.10089270
mov ecx, edi
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
mov dword [ebp - 4], eax
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 0x130]
push eax
call fcn.10088a60
mov eax, dword [eax]
cmp byte [eax + 0x40], 0
jne 0x1008c8c9
lea eax, [ebp + 0x28]
mov ecx, edi
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.10088a60
lea eax, [ebp + 0x28]
mov ecx, edi
push eax
lea eax, [ebp - 0x140]
push eax
call fcn.10088a60
mov eax, dword [eax]
cmp byte [eax + 0x40], 0
je 0x1008cb6b
lea eax, [ebp + 0x28]
mov ecx, edi
push eax
lea eax, [ebp - 0x148]
push eax
call fcn.10088a60
mov eax, dword [eax]
cmp byte [eax + 0x41], 0
jne 0x1008c95a
lea eax, [ebp + 0x28]
mov ecx, edi
push eax
lea eax, [ebp - 0x150]
push eax
call fcn.10088a60
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x44]
push eax
push 1
push dword [ebp - 4]
mov dword [ebp - 0x40], 0x1301
mov dword [ebp - 0x3c], 0x1300
mov dword [ebp - 0x38], 0x1700
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 1
call sub.mantle32.dll_grCmdPrepareImages
lea eax, [ebp + 0x28]
mov dword [ebp - 0xdc], 0
push eax
lea eax, [ebp - 0x158]
mov dword [ebp - 0xd8], 0
push eax
mov ecx, edi
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xb4], 0
call fcn.10088a60
mov ecx, edi
mov eax, dword [eax]
mov eax, dword [eax + 0x28]
mov dword [ebp - 0xb0], eax
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 0xe8]
push eax
call fcn.10088a60
mov ecx, edi
mov eax, dword [eax]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0xac], eax
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 0xf0]
mov dword [ebp - 0xa8], 1
push eax
mov dword [ebp - 0xe0], 0x1700
mov dword [ebp - 0xc8], 0x1700
call fcn.10088a60
mov ecx, edi
mov esi, dword [eax]
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 0xf8]
push eax
call fcn.10088a60
lea ecx, [ebp - 0xe0]
push ecx
push 1
push dword [esi + 0x10]
mov eax, dword [eax]
mov esi, dword [ebp - 4]
push dword [eax + 0x1c]
push esi
call sub.mantle32.dll_grCmdCopyImage
lea eax, [ebp + 0x28]
mov ecx, edi
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.10088a60
lea ecx, [ebx + 0x1d4]
mov eax, dword [eax]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0xc]
push eax
call fcn.1008a630
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x20], 1
push ecx
lea ecx, [ebx + 0x240]
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x24], eax
call fcn.10089420
test eax, eax
jne 0x1008cae1
mov eax, dword [ebx + 0x238]
lea ecx, [ebx + 0x234]
cmp eax, dword [ecx + 8]
je 0x1008cac4
mov edx, dword [ebp - 0x18]
mov dword [eax], edx
mov dword [eax + 4], 1
add dword [ecx + 4], 8
jmp 0x1008cace
lea edx, [ebp - 0x24]
push edx
push eax
call fcn.10088890
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebx + 0x240]
call fcn.1008fc30
lea eax, [ebp + 0x28]
mov ecx, edi
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.10088a60
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x64], eax
lea eax, [ebp - 0x64]
push eax
push 1
push esi
mov dword [ebp - 0x60], 0x1300
mov dword [ebp - 0x5c], 0x1301
mov dword [ebp - 0x58], 0x1700
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 1
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 1
call sub.mantle32.dll_grCmdPrepareImages
lea eax, [ebp + 0x28]
mov ecx, edi
push eax
lea eax, [ebp - 0x110]
push eax
call fcn.10088a60
mov ecx, edi
mov eax, dword [eax]
mov byte [eax + 0x40], 0
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 0x118]
push eax
call fcn.10088a60
mov esi, dword [ebp - 8]
mov eax, dword [eax]
mov byte [eax + 0x41], 0
cmp byte [ebx + 0x1cc], 0
jne 0x1008cbc6
mov eax, dword [ebx + 0x1c0]
mov dword [ebp - 0x84], eax
mov eax, dword [ebx + 0x1c4]
mov dword [ebp - 0x6c], eax
lea eax, [ebp - 0x84]
push eax
push 1
push dword [ebp - 4]
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x80], 0x1201
mov dword [ebp - 0x7c], 0x1200
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x68], 0
call sub.mantle32.dll_grCmdPrepareMemoryRegions
jmp 0x1008cbcd
mov byte [ebx + 0x1cc], 0
push 0x90
lea eax, [ebp - 0x248]
push 0
push eax
call fcn.100a7070
fld dword [0x1010f55c]
add esp, 0xc
fmul dword [0x1010f564]
fld1
fld st(0)
mov eax, dword [esi + 0x118]
fdivrp st(2)
fxch st(1)
fstp dword [ebp - 0x18]
fld dword [ebp - 0x18]
fadd st(0), st(0)
fild dword [esi + 0x118]
test eax, eax
jns 0x1008cc15
fadd dword [0x100d5b98]
fstp dword [ebp - 0x18]
fdiv dword [ebp - 0x18]
fild dword [ebp + 8]
fstp dword [ebp + 8]
fld dword [ebp + 8]
fmul st(1)
mov eax, dword [esi + 0x11c]
fsub st(2)
fstp dword [ebp - 0xc]
fld dword [0x1010f560]
fmul dword [0x1010f568]
fdivr st(2)
fstp dword [ebp + 8]
fld dword [ebp + 8]
fmul qword [0x100e12d8]
fild dword [esi + 0x11c]
test eax, eax
jns 0x1008cc5b
fadd dword [0x100d5b98]
fstp dword [ebp + 8]
fdiv dword [ebp + 8]
lea ecx, [ebp - 0x248]
mov ebx, dword [ebp + 0x2c]
push ebx
sub esp, 0x14
fild dword [ebp + 0xc]
fstp dword [ebp + 8]
fld dword [ebp + 8]
fmul st(1)
fld qword [0x100d5ba0]
fsub st(1), st(0)
fxch st(1)
fstp dword [ebp + 8]
fild dword [ebp + 0x10]
fstp dword [ebp + 0xc]
fld dword [ebp + 0xc]
fmulp st(3)
fxch st(2)
fsubrp st(3)
fxch st(2)
fstp dword [ebp + 0x10]
fild dword [ebp + 0x14]
fstp dword [ebp + 0xc]
fld dword [ebp + 0xc]
fmulp st(2)
fsubp st(1)
fstp dword [ebp + 0xc]
fld dword [ebp + 0x1c]
fstp dword [esp + 0x10]
fld dword [ebp + 0x18]
fstp dword [esp + 0xc]
fld dword [ebp + 0x38]
fstp dword [esp + 8]
fld dword [ebp + 8]
fstp dword [esp + 4]
fld dword [ebp - 0xc]
fstp dword [esp]
call fcn.1008b2b0
mov esi, dword [ebp + 0x34]
lea ecx, [ebp - 0x224]
mov edi, dword [ebp + 0x30]
cmp esi, 1
fld dword [ebp + 0x1c]
mov eax, edi
cmovne eax, ebx
push eax
sub esp, 0x14
fstp dword [esp + 0x10]
fld dword [ebp + 0x20]
fstp dword [esp + 0xc]
fld dword [ebp + 0x38]
fstp dword [esp + 8]
fld dword [ebp + 8]
fstp dword [esp + 4]
fld dword [ebp + 0x10]
fstp dword [esp]
call fcn.1008b2b0
fld dword [ebp + 0x24]
lea ecx, [ebp - 0x200]
cmp esi, 1
mov eax, ebx
cmovne eax, edi
push eax
sub esp, 0x14
fstp dword [esp + 0x10]
fld dword [ebp + 0x18]
fstp dword [esp + 0xc]
fld dword [ebp + 0x38]
fstp dword [esp + 8]
fld dword [ebp + 0xc]
fstp dword [esp + 4]
fld dword [ebp - 0xc]
fstp dword [esp]
call fcn.1008b2b0
fld dword [ebp + 0x24]
cmp esi, 3
cmove edi, ebx
push edi
sub esp, 0x14
fstp dword [esp + 0x10]
fld dword [ebp + 0x20]
lea ecx, [ebp - 0x1dc]
fstp dword [esp + 0xc]
fld dword [ebp + 0x38]
fstp dword [esp + 8]
fld dword [ebp + 0xc]
fstp dword [esp + 4]
fld dword [ebp + 0x10]
fstp dword [esp]
call fcn.1008b2b0
mov ebx, dword [ebp - 0x10]
mov ecx, dword [ebx + 0x1c8]
lea eax, [ecx + 0x90]
cmp eax, dword [ebx + 0x1c4]
jb 0x1008cdc3
mov esi, dword [ebp - 8]
mov ecx, esi
mov dword [ebx + 0x1c8], 0
mov eax, dword [esi]
call dword [eax + 0x28]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x24]
push dword [ebx + 0x198]
call sub.mantle32.dll_grQueueWaitIdle
mov ecx, dword [ebx + 0x1c8]
mov edi, dword [ebp - 4]
lea eax, [ebp - 0x248]
push eax
push 0
push 0x90
push 0
push ecx
push dword [ebx + 0x1c0]
push edi
call sub.mantle32.dll_grCmdUpdateMemory
mov dword [ebp - 0x98], 0
mov eax, dword [ebx + 0x1c0]
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xa0], 0x1200
mov dword [ebp - 0x9c], 0x1201
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x90], 0
mov eax, dword [ebx + 0x1c4]
mov dword [ebp - 0x8c], eax
lea eax, [ebp - 0xa4]
push eax
push 1
push edi
mov dword [ebp - 0x88], 0
call sub.mantle32.dll_grCmdPrepareMemoryRegions
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 0x118]
push eax
lea ecx, [ebx + 0x1f4]
call fcn.10088a60
push 0
mov eax, dword [eax]
push dword [eax + 0x18]
push 0
push 0x1e01
push edi
call sub.mantle32.dll_grCmdBindDescriptorSet
mov eax, 0x38e38e39
mul dword [ebx + 0x1c8]
push 1
push 0
push 4
shr edx, 3
push edx
push edi
call sub.mantle32.dll_grCmdDraw
lea eax, [ebp + 0x28]
mov dword [ebp - 0x14], 0
push eax
lea eax, [ebp - 0x110]
mov dword [ebp - 0x10], 0
push eax
lea ecx, [ebx + 0x1f4]
call fcn.10088a60
lea ecx, [ebp + 0x38]
push ecx
lea ecx, [ebx + 0x1d4]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov dword [ebp + 0x38], eax
call fcn.1008a630
mov edx, dword [eax]
movzx eax, dl
xor eax, 0x811c9dc5
mov dword [ebp + 0x38], edx
imul ecx, eax, 0x1000193
mov eax, edx
shr eax, 8
movzx eax, al
mov dword [ebp - 0x14], edx
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, [ebx + 0x240]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.100889a0
cmp dword [eax + 4], 0
jne 0x1008cf69
mov eax, dword [ebx + 0x238]
lea ecx, [ebx + 0x234]
cmp eax, dword [ecx + 8]
je 0x1008cf49
mov edx, dword [ebp + 0x38]
mov dword [eax], edx
mov dword [eax + 4], 0
add dword [ecx + 4], 8
jmp 0x1008cf53
lea edx, [ebp - 0x14]
push edx
push eax
call fcn.10088890
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x100]
push eax
lea ecx, [ebx + 0x240]
call fcn.1008fc30
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 0xf8]
push eax
lea ecx, [ebx + 0x1f4]
call fcn.10088a60
lea ecx, [ebx + 0x1d4]
mov eax, dword [eax]
mov eax, dword [eax + 0x18]
mov dword [ebp + 0x1c], eax
lea eax, [ebp + 0x1c]
push eax
call fcn.1008a630
mov dword [ebp - 0x10], 1
mov edx, dword [eax]
movzx eax, dl
xor eax, 0x811c9dc5
mov dword [ebp + 0x38], edx
imul ecx, eax, 0x1000193
mov eax, edx
shr eax, 8
movzx eax, al
mov dword [ebp - 0x14], edx
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, [ebx + 0x240]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0xf0]
push eax
call fcn.100889a0
cmp dword [eax + 4], 0
jne 0x1008d040
mov edx, dword [ebx + 0x238]
lea ecx, [ebx + 0x234]
cmp edx, dword [ecx + 8]
je 0x1008d020
mov eax, dword [ebp + 0x38]
mov dword [edx], eax
mov dword [edx + 4], 1
add dword [ecx + 4], 8
jmp 0x1008d02a
lea eax, [ebp - 0x14]
push eax
push edx
call fcn.10088890
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0xe8]
push eax
lea ecx, [ebx + 0x240]
call fcn.1008fc30
add dword [ebx + 0x1c8], 0x90
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x34