Function at 0x100894b0
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 + 0x104]
push eax
lea eax, [ebp - 0x160]
push eax
lea ecx, [esi + 0x90]
call fcn.10085c20
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.100857b0
cmp dword [eax + 4], 0
jne 0x1008959a
push dword [ebp - 0xc]
lea eax, [ebp + 0x28]
add esi, 0xd0
push eax
lea eax, [ebp - 0x170]
mov dword [ebp - 4], esi
push eax
mov ecx, esi
call fcn.100857b0
cmp dword [eax + 4], 0
je 0x10089e5a
lea eax, [ebp + 0x28]
mov ecx, esi
push eax
lea eax, [ebp - 0x178]
push eax
call fcn.10085a20
mov ecx, dword [ebp - 4]
mov esi, dword [eax]
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 0x180]
push eax
call fcn.10085a20
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.10087790
lea eax, [ebp + 0x28]
mov ecx, edi
push eax
lea eax, [ebp - 0x188]
push eax
call fcn.10085870
lea ecx, [ebp + 0x28]
push ecx
lea ecx, [ebp - 0x190]
mov esi, dword [eax]
mov eax, dword [ebp - 8]
add eax, 0xd0
push ecx
mov ecx, eax
mov dword [ebp - 4], eax
call fcn.10085a20
mov ecx, dword [eax]
mov eax, dword [esi + 0x30]
cmp eax, dword [ecx + 0x18]
je 0x10089689
mov esi, dword [ebp - 4]
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 0x198]
mov ecx, esi
push eax
call fcn.10085a20
mov ecx, esi
mov ebx, dword [eax]
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 0x1a0]
push eax
call fcn.10085a20
mov ecx, esi
mov edi, dword [eax]
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 0x1a8]
push eax
call fcn.10085a20
mov ecx, dword [ebp - 4]
mov esi, dword [eax]
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 0x1b0]
push eax
call fcn.10085a20
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.10088fb0
mov ecx, dword [ebp - 4]
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 0x1b8]
push eax
call fcn.10085a20
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.10085870
mov eax, dword [eax]
mov dword [eax + 0x30], esi
mov esi, dword [ebp - 8]
lea ecx, [ebx + 0x214]
lea eax, [esi + 0xf4]
push eax
lea eax, [ebp - 0x128]
push eax
call fcn.10086080
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.10085870
mov eax, dword [eax]
cmp byte [eax + 0x40], 0
jne 0x100896d9
lea eax, [ebp + 0x28]
mov ecx, edi
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.10085870
lea eax, [ebp + 0x28]
mov ecx, edi
push eax
lea eax, [ebp - 0x140]
push eax
call fcn.10085870
mov eax, dword [eax]
cmp byte [eax + 0x40], 0
je 0x1008997b
lea eax, [ebp + 0x28]
mov ecx, edi
push eax
lea eax, [ebp - 0x148]
push eax
call fcn.10085870
mov eax, dword [eax]
cmp byte [eax + 0x41], 0
jne 0x1008976a
lea eax, [ebp + 0x28]
mov ecx, edi
push eax
lea eax, [ebp - 0x150]
push eax
call fcn.10085870
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.10085870
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.10085870
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.10085870
mov ecx, edi
mov esi, dword [eax]
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 0xf8]
push eax
call fcn.10085870
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.10085870
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.10087440
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.10086230
test eax, eax
jne 0x100898f1
mov eax, dword [ebx + 0x238]
lea ecx, [ebx + 0x234]
cmp eax, dword [ecx + 8]
je 0x100898d4
mov edx, dword [ebp - 0x18]
mov dword [eax], edx
mov dword [eax + 4], 1
add dword [ecx + 4], 8
jmp 0x100898de
lea edx, [ebp - 0x24]
push edx
push eax
call fcn.100856a0
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebx + 0x240]
call fcn.1008ca40
lea eax, [ebp + 0x28]
mov ecx, edi
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.10085870
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.10085870
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.10085870
mov esi, dword [ebp - 8]
mov eax, dword [eax]
mov byte [eax + 0x41], 0
cmp byte [ebx + 0x1cc], 0
jne 0x100899d6
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 0x100899dd
mov byte [ebx + 0x1cc], 0
push 0x90
lea eax, [ebp - 0x248]
push 0
push eax
call fcn.100a3330
fld dword [0x1010850c]
add esp, 0xc
fmul dword [0x10108514]
fld1
fld st(0)
mov eax, dword [esi + 0x110]
fdivrp st(2)
fxch st(1)
fstp dword [ebp - 0x18]
fld dword [ebp - 0x18]
fadd st(0), st(0)
fild dword [esi + 0x110]
test eax, eax
jns 0x10089a25
fadd dword [0x100cf570]
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 + 0x114]
fsub st(2)
fstp dword [ebp - 0xc]
fld dword [0x10108510]
fmul dword [0x10108518]
fdivr st(2)
fstp dword [ebp + 8]
fld dword [ebp + 8]
fmul qword [0x100dab88]
fild dword [esi + 0x114]
test eax, eax
jns 0x10089a6b
fadd dword [0x100cf570]
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 [0x100cf578]
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.100880c0
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.100880c0
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.100880c0
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.100880c0
mov ebx, dword [ebp - 0x10]
mov ecx, dword [ebx + 0x1c8]
lea eax, [ecx + 0x90]
cmp eax, dword [ebx + 0x1c4]
jb 0x10089bd3
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.10085870
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.10085870
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.10087440
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.100857b0
cmp dword [eax + 4], 0
jne 0x10089d79
mov eax, dword [ebx + 0x238]
lea ecx, [ebx + 0x234]
cmp eax, dword [ecx + 8]
je 0x10089d59
mov edx, dword [ebp + 0x38]
mov dword [eax], edx
mov dword [eax + 4], 0
add dword [ecx + 4], 8
jmp 0x10089d63
lea edx, [ebp - 0x14]
push edx
push eax
call fcn.100856a0
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x100]
push eax
lea ecx, [ebx + 0x240]
call fcn.1008ca40
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 0xf8]
push eax
lea ecx, [ebx + 0x1f4]
call fcn.10085870
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.10087440
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.100857b0
cmp dword [eax + 4], 0
jne 0x10089e50
mov edx, dword [ebx + 0x238]
lea ecx, [ebx + 0x234]
cmp edx, dword [ecx + 8]
je 0x10089e30
mov eax, dword [ebp + 0x38]
mov dword [edx], eax
mov dword [edx + 4], 1
add dword [ecx + 4], 8
jmp 0x10089e3a
lea eax, [ebp - 0x14]
push eax
push edx
call fcn.100856a0
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0xe8]
push eax
lea ecx, [ebx + 0x240]
call fcn.1008ca40
add dword [ebx + 0x1c8], 0x90
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x34