Function at 0x10035810
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
mov eax, dword [0x1009400c]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [0x100fdbf0], 0
mov dword [ebp - 0x3c], edx
jne 0x10035df6
cmp dword [0x100fdbf4], 3
jne 0x10035df6
test ecx, ecx
jne 0x10035db4
push ebx
movzx eax, dl
lea ebx, [ecx + 1]
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, edx
shr eax, 8
movzx eax, al
push esi
xor ecx, eax
mov eax, edx
shr eax, 0x10
movzx eax, al
imul ecx, ecx, 0x1000193
shr edx, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.10036b40
mov esi, dword [0x101f4d28]
mov eax, dword [eax + 4]
test eax, eax
cmovne esi, eax
cmp esi, dword [0x101f4d28]
setne byte [ebp - 0x2d]
je 0x10035a99
mov edx, dword [esi + 0xc]
test edx, edx
je 0x10035a99
test byte [0x101f42c0], 4
jne 0x10035a7e
mov eax, dword [0x101f41e4]
cmp eax, dword [0x101f41dc]
je 0x10035a53
mov eax, dword [0x101f3f18]
lea edx, [ebp - 0x38]
push edx
push 0x16
push eax
mov ecx, dword [eax]
call dword [ecx + 0xe8]
cmp dword [0x101f42c8], 0
mov dword [ebp - 0x34], 0
je 0x1003590f
mov eax, dword [0x101f3f18]
lea edx, [ebp - 0x34]
push edx
push ebx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x100]
cmp dword [0x100fdbf4], 7
je 0x1003593e
mov eax, dword [0x101f41a8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x108]
mov eax, dword [0x101f41a8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10c]
mov dword [0x100fdbf4], 7
mov eax, dword [0x101f41a8]
push dword [0x101f41e4]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xe8]
mov eax, dword [0x101f41a8]
push 0
push 0x101f4264
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x101f41a8]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x100]
movaps xmm0, xmmword [0x1008ba50]
lea ecx, [ebp - 0x2c]
movups xmmword [ebp - 0x2c], xmm0
mov edx, 0xa
mov dword [0x100fdbf4], 3
movaps xmm0, xmmword [0x1008ba70]
movups xmmword [ebp - 0x1c], xmm0
mov dword [ebp - 0xc], 9
mov dword [ebp - 8], 0xa
call fcn.10046c20
mov eax, dword [0x101f3f18]
push 2
push 6
push 5
mov ecx, dword [eax]
push eax
call dword [ecx + 0x114]
mov eax, dword [0x101f3f18]
push 2
push 5
push 5
mov ecx, dword [eax]
push eax
call dword [ecx + 0x114]
mov eax, dword [0x101f3f18]
push 2
push 7
push 5
mov ecx, dword [eax]
push eax
call dword [ecx + 0x114]
mov eax, dword [0x101f3f18]
push dword [0x101f41e0]
push 7
mov ecx, dword [eax]
push eax
call dword [ecx + 0x104]
mov eax, dword [0x101f3f18]
push dword [ebp - 0x38]
push 0x16
mov ecx, dword [eax]
push eax
call dword [ecx + 0xe4]
mov ecx, 5
call fcn.100417f0
cmp dword [0x101f42c8], 0
je 0x10035a53
mov eax, dword [0x101f3f18]
push dword [ebp - 0x34]
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x104]
cmp dword [0x101f42c8], 0
je 0x10035a53
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x10035a53
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [0x101f41a8]
push dword [0x101f42c8]
push str.iTextureState
mov ecx, dword [eax]
push eax
call dword [ecx + 0x68]
mov eax, dword [0x101f41a8]
push 1
push str.g_bNormalMap
push eax
mov ecx, dword [eax]
call dword [ecx + 0x58]
mov edx, dword [esi + 0xc]
mov eax, dword [0x101f3f18]
push edx
push 3
push eax
mov ecx, dword [eax]
call dword [ecx + 0x104]
mov ebx, 5
jmp 0x10035c5b
test byte [0x101f42c0], 4
je 0x10035c5b
mov eax, dword [0x101f41e4]
cmp eax, dword [0x101f41dc]
je 0x10035c33
mov eax, dword [0x101f3f18]
lea edx, [ebp - 0x38]
push edx
push 0x16
push eax
mov ecx, dword [eax]
call dword [ecx + 0xe8]
cmp dword [0x101f42c8], 0
mov dword [ebp - 0x34], 0
je 0x10035aef
mov eax, dword [0x101f3f18]
lea edx, [ebp - 0x34]
push edx
push 1
push eax
mov ecx, dword [eax]
call dword [ecx + 0x100]
cmp dword [0x100fdbf4], 7
je 0x10035b1e
mov eax, dword [0x101f41a8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x108]
mov eax, dword [0x101f41a8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10c]
mov dword [0x100fdbf4], 7
mov eax, dword [0x101f41a8]
push dword [0x101f41dc]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xe8]
mov eax, dword [0x101f41a8]
push 0
push 0x101f4264
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x101f41a8]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x100]
movaps xmm0, xmmword [0x1008ba50]
lea ecx, [ebp - 0x2c]
movups xmmword [ebp - 0x2c], xmm0
mov edx, 0xa
mov dword [0x100fdbf4], 3
movaps xmm0, xmmword [0x1008ba70]
movups xmmword [ebp - 0x1c], xmm0
mov dword [ebp - 0xc], 9
mov dword [ebp - 8], 0xa
call fcn.10046c20
mov eax, dword [0x101f3f18]
push 2
push 6
push 5
mov ecx, dword [eax]
push eax
call dword [ecx + 0x114]
mov eax, dword [0x101f3f18]
push 2
push 5
push 5
mov ecx, dword [eax]
push eax
call dword [ecx + 0x114]
mov eax, dword [0x101f3f18]
push 2
push 7
push 5
mov ecx, dword [eax]
push eax
call dword [ecx + 0x114]
mov eax, dword [0x101f3f18]
push dword [0x101f41e0]
push 7
mov ecx, dword [eax]
push eax
call dword [ecx + 0x104]
mov eax, dword [0x101f3f18]
push dword [ebp - 0x38]
push 0x16
mov ecx, dword [eax]
push eax
call dword [ecx + 0xe4]
mov ecx, 5
call fcn.100417f0
cmp dword [0x101f42c8], 0
je 0x10035c33
mov eax, dword [0x101f3f18]
push dword [ebp - 0x34]
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x104]
cmp dword [0x101f42c8], 0
je 0x10035c33
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x10035c33
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [0x101f41a8]
push dword [0x101f42c8]
push str.iTextureState
mov ecx, dword [eax]
push eax
call dword [ecx + 0x68]
mov eax, dword [0x101f41a8]
push 0
push str.g_bNormalMap
push eax
mov ecx, dword [eax]
call dword [ecx + 0x58]
mov al, byte [ebp - 0x2d]
test al, al
je 0x10035c91
mov edx, dword [esi + 0x14]
test edx, edx
je 0x10035c91
mov eax, dword [0x101f3f18]
push edx
push 8
push eax
mov ecx, dword [eax]
call dword [ecx + 0x104]
mov eax, dword [0x101f41a8]
or ebx, 0x20
push 1
push str.g_bHeightMap
push eax
mov ecx, dword [eax]
call dword [ecx + 0x58]
jmp 0x10035cb3
test byte [0x101f42c0], 0x20
je 0x10035caf
mov eax, dword [0x101f41a8]
push 0
push str.g_bHeightMap
push eax
mov ecx, dword [eax]
call dword [ecx + 0x58]
mov al, byte [ebp - 0x2d]
test al, al
je 0x10035cee
mov edx, dword [esi + 0x10]
test edx, edx
je 0x10035cee
test byte [0x101f42c0], 8
jne 0x10035cd8
mov eax, dword [0x101f41a8]
push 1
push str.g_bSpecMap
push eax
mov ecx, dword [eax]
call dword [ecx + 0x58]
mov edx, dword [esi + 0x10]
mov eax, dword [0x101f3f18]
push edx
push 4
push eax
mov ecx, dword [eax]
call dword [ecx + 0x104]
or ebx, 8
jmp 0x10035d0f
test byte [0x101f42c0], 8
je 0x10035d09
mov eax, dword [0x101f41a8]
push 0
push str.g_bSpecMap
push eax
mov ecx, dword [eax]
call dword [ecx + 0x58]
cmp byte [ebp - 0x2d], 0
je 0x10035d4a
test bl, 8
je 0x10035d4a
test byte [0x101f42c0], 0x10
jne 0x10035d2f
mov eax, dword [0x101f41a8]
push 1
push str.g_bEnvMap
push eax
mov ecx, dword [eax]
call dword [ecx + 0x58]
mov eax, dword [0x101f3f18]
push dword [0x101f41d8]
push 5
mov ecx, dword [eax]
push eax
call dword [ecx + 0x104]
or ebx, 0x10
jmp 0x10035d65
test byte [0x101f42c0], 0x10
je 0x10035d65
mov eax, dword [0x101f41a8]
push 0
push str.g_bEnvMap
push eax
mov ecx, dword [eax]
call dword [ecx + 0x58]
mov ecx, dword [0x101f41a8]
xor eax, eax
cmp dword [0x101f41cc], eax
setne al
mov edx, dword [ecx]
push eax
push str.g_bDetailMap
push ecx
call dword [edx + 0x58]
mov edx, dword [0x101f41cc]
test edx, edx
je 0x10035d9d
mov eax, dword [0x101f3f18]
push edx
push 6
push eax
mov ecx, dword [eax]
call dword [ecx + 0x104]
mov ax, word [0x101f42c0]
pop esi
mov word [0x101f42c0], bx
mov word [0x101f42c4], ax
pop ebx
jmp 0x10035dca
cmp ecx, 1
jne 0x10035dca
cmp dword [0x101f42c8], 0
je 0x10035dca
or word [0x101f42c0], 2
mov eax, dword [0x101f41a8]
movss xmm0, dword [0x100b302c]
mov ecx, dword [eax]
push ecx
movss dword [esp], xmm0
push str.g_fHealth
push eax
call dword [ecx + 0x78]
mov eax, dword [0x101f41a8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x104]
mov ecx, dword [ebp - 4]
xor al, al
xor ecx, ebp
call fcn.1004d763
mov esp, ebp
pop ebp
ret