Function at 0x5053d0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x25c
push ebx
push esi
push edi
sub esp, 8
mov dword [ebp - 0x54], edx
xor ebx, ebx
mov dword [ebp - 0x3c], 0xf
xorps xmm0, xmm0
mov dword [ebp - 0x88], ebx
movups xmmword [ebp - 0x50], xmm0
push ecx
lea ecx, [ebp - 0x258]
mov dword [ebp - 0x40], ebx
mov byte [ebp - 0x50], bl
call fcn.00427d40
mov eax, dword fs:[0x2c]
xorps xmm0, xmm0
mov dword [ebp - 0x124], ebx
mov byte [ebp - 0x120], bl
movups xmmword [ebp - 0x11c], xmm0
mov esi, dword [eax]
mov eax, dword [0x74f0a4]
mov dword [ebp - 0x10c], ebx
mov byte [ebp - 0x108], bl
mov dword [ebp - 0x104], ebx
mov dword [ebp - 0x100], ebx
mov byte [ebp - 0xfc], bl
mov dword [ebp - 0xf8], ebx
mov dword [ebp - 0xf4], ebx
mov byte [ebp - 0xf0], bl
cmp eax, dword [esi + 0x98]
jg 0x5060b9
mov eax, dword [0x74f0bc]
cmp eax, dword [esi + 0x98]
jg 0x506111
mov eax, dword [0x74f0c0]
cmp eax, dword [esi + 0x98]
jg 0x50614a
mov eax, dword [0x74f0c4]
cmp eax, dword [esi + 0x98]
jg 0x506183
nop dword [eax]
mov eax, dword [ebp - 0x258]
mov eax, dword [eax + 4]
mov eax, dword [ebp + eax - 0x228]
mov esi, dword [eax + 4]
mov ecx, esi
mov dword [ebp - 0x128], esi
mov eax, dword [esi]
call dword [eax + 4]
lea eax, [ebp - 0x12c]
push eax
call fcn.00411440
add esp, 4
mov ecx, eax
mov edx, dword [eax]
push 0xa
mov edx, dword [edx + 0x20]
call edx
mov byte [ebp - 0x80], al
mov ecx, esi
mov eax, dword [esi]
call dword [eax + 8]
test eax, eax
je 0x5054f2
mov ecx, dword [eax]
push 1
mov edx, dword [ecx]
mov ecx, eax
call edx
push dword [ebp - 0x80]
lea edx, [ebp - 0x50]
lea ecx, [ebp - 0x258]
call fcn.004acf10
add esp, 4
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
test byte [ecx + eax + 0xc], 6
jne 0x506068
cmp dword [ebp - 0x3c], 0xf
lea eax, [ebp - 0x50]
push 7
cmova eax, dword [ebp - 0x50]
push str.uniform
push eax
call fcn.005d7c20
add esp, 0xc
test eax, eax
jne 0x505ceb
cmp dword [ebp - 0x3c], 0xf
lea ecx, [ebp - 0x50]
mov edx, dword [ebp - 0x50]
lea edi, [ebp - 0x50]
mov eax, dword [ebp - 0x40]
cmova ecx, edx
cmova edi, edx
add eax, ecx
cmp dword [ebp - 0x3c], 0xf
lea ecx, [ebp - 0x50]
push edi
cmova ecx, edx
mov edx, 0x74f0a8
push ecx
push eax
push ecx
lea ecx, [ebp - 0x124]
call fcn.004ad6e0
add esp, 0x10
test al, al
je 0x5054a0
mov ecx, dword [ebp - 0x118]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x11c]
sub ecx, esi
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 3
jb 0x5054a0
cmp byte [esi + 0x20], 0
je 0x5055b7
mov edx, dword [esi + 0x1c]
mov ecx, edx
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x88], edx
jmp 0x5055bd
xor eax, eax
xor edx, edx
xor ecx, ecx
mov dword [ebp - 0x10], 0
xorps xmm0, xmm0
mov dword [ebp - 0xc], 0
movups xmmword [ebp - 0x20], xmm0
cmp eax, edx
jne 0x5055e6
mov dword [ebp - 0xc], 0xf
lea eax, [ebp - 0x20]
mov byte [ebp - 0x20], 0
jmp 0x5055fd
sub ecx, eax
push ecx
push eax
lea ecx, [ebp - 0x20]
call fcn.00414570
cmp dword [ebp - 0xc], 0xf
lea eax, [ebp - 0x20]
cmova eax, dword [ebp - 0x20]
push eax
call fcn.005cef57
mov ecx, dword [ebp - 0xc]
add esp, 4
mov dword [ebp - 8], eax
cmp ecx, 0xf
jbe 0x50563d
mov edx, dword [ebp - 0x20]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x505633
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x5061c6
push ecx
push edx
call fcn.005ab85c
add esp, 8
mov ecx, dword [ebp - 0x3c]
lea esi, [ebp - 0x50]
mov edi, dword [ebp - 0x50]
cmp ecx, 0xf
mov eax, dword [ebp - 0x40]
cmova esi, edi
cmp eax, 2
jb 0x5056af
lea edi, [esi + eax]
lea eax, [edi - 1]
sub eax, esi
push eax
push 0x2f
push esi
call fcn.005c3b00
mov edx, eax
add esp, 0xc
test edx, edx
je 0x5056a9
nop
movzx ecx, byte [edx]
cmp cl, 0x2f
jne 0x505684
movzx eax, byte [edx + 1]
cmp al, cl
jne 0x505684
xor eax, eax
jmp 0x505689
sbb eax, eax
or eax, 1
test eax, eax
je 0x5057f1
inc edx
lea eax, [edi - 1]
sub eax, edx
push eax
push 0x2f
push edx
call fcn.005c3b00
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x505670
mov ecx, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x50]
or edx, 0xffffffff
cmp edx, 0xffffffff
je 0x5054a0
cmp ecx, 0xf
mov byte [ebp - 0x18], 0
lea eax, [ebp - 0x50]
mov dword [ebp - 0x14], 0
cmova eax, edi
mov dword [ebp - 0x10], 0
add edx, 2
mov dword [ebp - 0xc], 0
add edx, eax
mov dword [ebp - 0x28], 0
and dword [ebp - 0x18], 0xfffffeff
mov ecx, edx
xorps xmm0, xmm0
mov dword [ebp - 0x24], 0
movups xmmword [ebp - 0x38], xmm0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x505703
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x38]
call fcn.00414570
push 0
lea edx, [ebp - 0x20]
or ebx, 1
lea ecx, [ebp - 0x38]
call fcn.00414680
add esp, 4
test al, al
je 0x505737
cmp byte [ebp - 0x18], 7
mov byte [ebp - 1], 1
je 0x50573b
mov byte [ebp - 1], 0
mov eax, dword [ebp - 0x24]
and ebx, 0xfffffffe
cmp eax, 0xf
jbe 0x505756
push eax
push dword [ebp - 0x38]
lea eax, [ebp - 0x38]
push eax
call fcn.00414390
add esp, 0xc
cmp byte [ebp - 1], 0
je 0x505df2
lea ecx, [ebp - 0x190]
call fcn.005061d0
mov eax, dword [ebp - 8]
lea ecx, [ebp - 0x20]
push str.material
mov dword [ebp - 0x190], eax
call fcn.004662a0
test eax, eax
je 0x5057aa
cmp byte [eax + 8], 4
jne 0x5057aa
lea ecx, [ebp - 0x38]
push ecx
mov ecx, eax
call fcn.00465130
push eax
lea ecx, [ebp - 0x15c]
call fcn.0040c1c0
lea ecx, [ebp - 0x38]
call fcn.004143d0
push str.default
lea ecx, [ebp - 0x20]
call fcn.004662a0
push str.combo
lea ecx, [ebp - 0x20]
mov esi, eax
call fcn.004662a0
mov edi, eax
test esi, esi
je 0x5057fe
cmp byte [esi + 8], 4
jne 0x5057fe
lea eax, [ebp - 0xbc]
mov ecx, esi
push eax
or ebx, 2
call fcn.00465130
mov esi, eax
lea eax, [ebp - 0x18c]
cmp eax, esi
je 0x505850
jmp 0x50581d
mov ecx, dword [ebp - 0x3c]
sub edx, esi
mov edi, dword [ebp - 0x50]
jmp 0x5056b2
xorps xmm0, xmm0
mov dword [ebp - 0x28], 0
movups xmmword [ebp - 0x38], xmm0
or ebx, 4
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x38], 0
lea esi, [ebp - 0x38]
lea ecx, [ebp - 0x18c]
call fcn.004143d0
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x18c], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x17c], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
test bl, 4
je 0x505870
mov eax, dword [ebp - 0x24]
and ebx, 0xfffffffb
cmp eax, 0xf
jbe 0x505870
push eax
push dword [ebp - 0x38]
lea eax, [ebp - 0x38]
push eax
call fcn.00414390
add esp, 0xc
test bl, 2
je 0x505883
lea ecx, [ebp - 0xbc]
and ebx, 0xfffffffd
call fcn.004143d0
test edi, edi
je 0x5058ac
cmp byte [edi + 8], 4
jne 0x5058ac
lea eax, [ebp - 0xbc]
mov ecx, edi
push eax
or ebx, 8
call fcn.00465130
mov esi, eax
lea eax, [ebp - 0x174]
cmp eax, esi
je 0x5058fe
jmp 0x5058cb
xorps xmm0, xmm0
mov dword [ebp - 0x28], 0
movups xmmword [ebp - 0x38], xmm0
or ebx, 0x10
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x38], 0
lea esi, [ebp - 0x38]
lea ecx, [ebp - 0x174]
call fcn.004143d0
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x174], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x164], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
test bl, 0x10
je 0x50591e
mov eax, dword [ebp - 0x24]
and ebx, 0xffffffef
cmp eax, 0xf
jbe 0x50591e
push eax
push dword [ebp - 0x38]
lea eax, [ebp - 0x38]
push eax
call fcn.00414390
add esp, 0xc
test bl, 8
je 0x505931
lea ecx, [ebp - 0xbc]
and ebx, 0xfffffff7
call fcn.004143d0
push 0x73620a
push str.components
lea ecx, [ebp - 0x20]
call fcn.00465fd0
mov edx, eax
cmp byte [edx + 8], 6
jne 0x505afe
lea eax, [ebp - 0x94]
mov ecx, edx
push eax
call fcn.00466e90
lea eax, [ebp - 0xa4]
mov ecx, edx
push eax
call fcn.00466ed0
mov edi, dword [ebp - 0xa4]
mov esi, dword [ebp - 0x138]
nop word [eax + eax]
cmp byte [ebp - 0x90], 0
mov ecx, dword [ebp - 0x94]
je 0x505997
mov al, byte [ebp - 0xa0]
jmp 0x50599c
cmp ecx, edi
sete al
test al, al
jne 0x505afe
add ecx, 0x18
cmp byte [ecx + 8], 7
jne 0x505aee
xorps xmm0, xmm0
mov dword [ebp - 0xdc], 0
movups xmmword [ebp - 0xec], xmm0
push str.combo
movups xmmword [ebp - 0xd4], xmm0
mov dword [ebp - 0xd8], 0xf
mov byte [ebp - 0xec], al
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xc0], 0xf
mov byte [ebp - 0xd4], al
call fcn.004662a0
test eax, eax
je 0x505a27
cmp byte [eax + 8], 4
jne 0x505a27
lea ecx, [ebp - 0xbc]
or ebx, 0x20
push ecx
mov ecx, eax
call fcn.00465130
lea ecx, [ebp - 0xd4]
cmp ecx, eax
je 0x505a6e
jmp 0x505a46
xorps xmm0, xmm0
mov dword [ebp - 0x28], 0
movups xmmword [ebp - 0x38], xmm0
or ebx, 0x40
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x38], 0
lea eax, [ebp - 0x38]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0xd4], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0xc4], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
test bl, 0x40
je 0x505a8e
mov eax, dword [ebp - 0x24]
and ebx, 0xffffffbf
cmp eax, 0xf
jbe 0x505a8e
push eax
push dword [ebp - 0x38]
lea eax, [ebp - 0x38]
push eax
call fcn.00414390
add esp, 0xc
test bl, 0x20
je 0x505aa1
lea ecx, [ebp - 0xbc]
and ebx, 0xffffffdf
call fcn.004143d0
lea eax, [ebp - 0xec]
push eax
cmp esi, dword [ebp - 0x134]
je 0x505ad1
mov ecx, esi
call fcn.004141c0
lea eax, [ebp - 0xd4]
push eax
lea ecx, [esi + 0x18]
call fcn.004141c0
add esi, 0x30
mov dword [ebp - 0x138], esi
jmp 0x505ae3
push esi
lea ecx, [ebp - 0x13c]
call fcn.0045eb30
mov esi, dword [ebp - 0x138]
lea ecx, [ebp - 0xec]
call fcn.00406c80
lea ecx, [ebp - 0x94]
call fcn.00428d00
jmp 0x505980
cmp byte [ebp - 0x18], 0
je 0x505b70
mov edi, dword [ebp - 0x20]
lea eax, [ebp - 0x9c]
push eax
lea eax, [ebp - 0x19c]
mov dword [ebp - 0x9c], str.formatcombo
push eax
mov ecx, edi
mov dword [ebp - 0x98], 0x2c
call fcn.004679d0
mov esi, dword [ebp - 0x194]
cmp byte [esi + 0xd], 0
jne 0x505b4f
lea eax, [esi + 0x10]
push eax
lea ecx, [ebp - 0x9c]
call fcn.004645e0
test al, al
je 0x505b51
mov esi, dword [edi]
mov eax, dword [ebp - 0x20]
cmp esi, dword [eax]
je 0x505b70
lea ecx, [esi + 0x18]
test ecx, ecx
je 0x505b70
cmp byte [ecx + 8], 5
jne 0x505b70
call fcn.00465720
mov byte [ebp - 0x144], al
movzx eax, byte [ebp - 8]
xor eax, 0x811c9dc5
mov esi, dword [ebp - 0x54]
imul ecx, eax, 0x1000193
movzx eax, byte [ebp - 7]
xor ecx, eax
movzx eax, byte [ebp - 6]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [ebp - 5]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, esi
push eax
mov dword [ebp - 0x74], eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x7c]
push eax
call fcn.004301e0
mov edi, dword [ebp - 0x78]
test edi, edi
jne 0x505ccc
cmp dword [esi + 8], 0x25ed097
je 0x5061bc
push 0x6c
call fcn.005ab82c
mov ecx, dword [ebp - 8]
add esp, 4
mov edi, eax
push 0x60
lea esi, [edi + 0xc]
mov dword [edi + 8], ecx
push 0
push esi
call fcn.005c3040
add esp, 0xc
mov ecx, esi
call fcn.005061d0
mov esi, dword [ebp - 0x54]
mov ecx, dword [esi + 8]
inc ecx
mov eax, ecx
shr eax, 0x1f
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x739f30]
mov eax, dword [esi + 0x1c]
cvtpd2ps xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x739f30]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, dword [esi]
jbe 0x505c71
push ecx
mov ecx, esi
call fcn.0042cd50
push eax
mov ecx, esi
call fcn.0044a6f0
push dword [ebp - 0x74]
lea eax, [edi + 8]
mov ecx, esi
push eax
lea eax, [ebp - 0x1a4]
push eax
call fcn.004301e0
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x7c], edx
mov dword [ebp - 0x78], eax
jmp 0x505c74
mov edx, dword [ebp - 0x7c]
mov esi, dword [edx + 4]
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x88], esi
inc dword [eax + 8]
mov dword [edi + 4], esi
mov dword [edi], edx
mov dword [esi], edi
mov dword [edx + 4], edi
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x18]
and eax, dword [ebp - 0x74]
mov dword [ebp - 0x84], ecx
mov esi, dword [ecx + eax*8]
mov ecx, dword [ebp - 0x54]
cmp esi, dword [ecx + 4]
mov ecx, dword [ebp - 0x84]
mov esi, dword [ebp - 0x88]
jne 0x505cb8
mov dword [ecx + eax*8], edi
jmp 0x505cc8
cmp dword [ecx + eax*8], edx
jne 0x505cc2
mov dword [ecx + eax*8], edi
jmp 0x505ccc
cmp dword [ecx + eax*8 + 4], esi
jne 0x505ccc
mov dword [ecx + eax*8 + 4], edi
lea eax, [ebp - 0x190]
push eax
lea ecx, [edi + 0xc]
call fcn.004ffc40
lea ecx, [ebp - 0x190]
call fcn.004fa620
jmp 0x505df2
cmp dword [0x7485e0], 0xf
lea eax, [ebp - 0x50]
mov ecx, 0x7485cc
cmova ecx, dword [0x7485cc]
cmp dword [ebp - 0x3c], 0xf
push 4
cmova eax, dword [ebp - 0x50]
push ecx
push eax
call fcn.005d7c20
add esp, 0xc
test eax, eax
jne 0x5054a0
cmp dword [0x7485f8], 0xf
lea eax, [ebp - 0x50]
push dword [0x7485f4]
mov ecx, str.COMBO_
cmova ecx, dword [str.COMBO_]
cmp dword [ebp - 0x3c], 0xf
push ecx
cmova eax, dword [ebp - 0x50]
add eax, 4
push eax
call fcn.005d7c20
add esp, 0xc
test eax, eax
jne 0x505f57
cmp dword [ebp - 0x3c], 0xf
lea ecx, [ebp - 0x50]
mov edx, dword [0x7485f4]
xorps xmm0, xmm0
cmova ecx, dword [ebp - 0x50]
add edx, 4
add edx, ecx
mov byte [ebp - 0x18], al
and dword [ebp - 0x18], 0xfffffeff
mov ecx, edx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], eax
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 0x28], eax
lea esi, [ecx + 1]
mov dword [ebp - 0x24], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x505d91
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x38]
call fcn.00414570
push 0
lea edx, [ebp - 0x20]
lea ecx, [ebp - 0x38]
call fcn.00414680
mov ecx, dword [ebp - 0x24]
add esp, 4
mov byte [ebp - 1], al
cmp ecx, 0xf
jbe 0x505dee
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x505de1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x5061c6
push ecx
push edx
call fcn.005ab85c
mov al, byte [ebp - 1]
add esp, 8
test al, al
jne 0x505e18
lea ecx, [ebp - 0x20]
call fcn.00465f40
mov eax, dword [ebp - 0x14]
xorps xmm0, xmm0
movlpd qword [ebp - 0x20], xmm0
test eax, eax
je 0x5054a0
push eax
call fcn.004672a0
jmp 0x5054a0
push str.combo
lea ecx, [ebp - 0x20]
call fcn.004662a0
mov esi, eax
test esi, esi
je 0x505df2
cmp byte [esi + 8], 4
jne 0x505df2
push str.default
lea ecx, [ebp - 0x20]
call fcn.004662a0
mov edi, eax
mov dword [ebp - 0x60], 0
xorps xmm0, xmm0
mov dword [ebp - 0x5c], 0xf
lea eax, [ebp - 0xbc]
mov dword [ebp - 0x58], 0
movups xmmword [ebp - 0x70], xmm0
push eax
mov ecx, esi
mov byte [ebp - 0x70], 0
call fcn.00465130
mov esi, eax
lea eax, [ebp - 0x70]
cmp eax, esi
je 0x505ec3
mov eax, dword [ebp - 0x5c]
cmp eax, 0xf
jbe 0x505e8f
push eax
push dword [ebp - 0x70]
lea eax, [ebp - 0x70]
push eax
call fcn.00414390
add esp, 0xc
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
mov byte [ebp - 0x70], 0
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x70], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x60], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
lea ecx, [ebp - 0xbc]
call fcn.004143d0
test edi, edi
je 0x505ee9
mov ecx, edi
call fcn.00466b80
test al, al
je 0x505ee9
mov ecx, edi
call fcn.004652e0
mov dword [ebp - 0x58], eax
jmp 0x505ef0
mov dword [ebp - 0x58], 0
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x1ac]
push eax
call fcn.00506740
mov esi, dword [eax]
lea eax, [ebp - 0x70]
add esi, 0x20
cmp esi, eax
je 0x505f22
cmp dword [ebp - 0x5c], 0xf
mov ecx, esi
push dword [ebp - 0x60]
cmova eax, dword [ebp - 0x70]
push eax
call fcn.0040c060
mov eax, dword [ebp - 0x58]
mov dword [esi + 0x18], eax
mov eax, dword [ebp - 0x5c]
cmp eax, 0xf
jbe 0x505f40
push eax
push dword [ebp - 0x70]
lea eax, [ebp - 0x70]
push eax
call fcn.00414390
add esp, 0xc
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
mov byte [ebp - 0x70], 0
jmp 0x505df2
cmp dword [0x7485c8], 0xf
lea eax, [ebp - 0x50]
push dword [0x7485c4]
mov ecx, str.PASS_
cmova ecx, dword [str.PASS_]
cmp dword [ebp - 0x3c], 0xf
push ecx
cmova eax, dword [ebp - 0x50]
add eax, 4
push eax
call fcn.005d7c20
add esp, 0xc
test eax, eax
jne 0x5054a0
cmp dword [ebp - 0x3c], 0xf
lea ecx, [ebp - 0x50]
mov esi, dword [0x7485c4]
cmova ecx, dword [ebp - 0x50]
add esi, 4
add esi, ecx
mov al, byte [esi]
test al, al
je 0x505fc8
nop dword [eax]
movsx eax, al
push eax
call fcn.005d8160
add esp, 4
test eax, eax
je 0x505fc8
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x505fb0
push 6
push esi
push str.shadow
call fcn.005d7c20
add esp, 0xc
test eax, eax
jne 0x5054a0
mov al, byte [esi]
mov byte [ebp - 1], al
test al, al
je 0x506049
nop dword [eax]
movsx eax, al
push eax
call fcn.005d7fb0
add esp, 4
test eax, eax
jne 0x506020
cmp byte [ebp - 1], 0x5f
je 0x506020
movsx eax, byte [esi]
push eax
call fcn.005d8040
add esp, 4
test eax, eax
jne 0x506020
mov al, byte [esi]
cmp al, 0x2e
je 0x506020
cmp al, 0x2d
jne 0x50602d
mov al, byte [esi + 1]
inc esi
mov byte [ebp - 1], al
test al, al
jne 0x505ff0
jmp 0x506049
test al, al
je 0x506049
movsx eax, al
push eax
call fcn.005d8160
add esp, 4
test eax, eax
je 0x506049
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x506031
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x506050
sub ecx, edx
push ecx
mov ecx, dword [ebp + 0xc]
push esi
call fcn.0040c060
jmp 0x5054a0
lea ecx, [ebp - 0x11c]
call fcn.004ab2e0
lea ecx, [ebp - 0x258]
call fcn.00414750
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0xf
jbe 0x5060b2
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x5060a8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x5061c6
push ecx
push edx
call fcn.005ab85c
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x74f0a4
call fcn.005ab9bf
add esp, 4
cmp dword [0x74f0a4], 0xffffffff
jne 0x505469
mov ecx, 0x74f0ac
call fcn.004ab550
push ecx
push 0x73623e
push str.uniform__s__sampler2D_w____s_g_Texture__d__
mov ecx, 0x74f0a8
call fcn.004ac430
push 0x6daa50
call fcn.005abc5f
add esp, 4
push 0x74f0a4
call fcn.005ab96e
add esp, 4
jmp 0x505469
push 0x74f0bc
call fcn.005ab9bf
add esp, 4
cmp dword [0x74f0bc], 0xffffffff
jne 0x50547a
push 0x6da9f0
call fcn.005abc5f
add esp, 4
push 0x74f0bc
call fcn.005ab96e
add esp, 4
jmp 0x50547a
push 0x74f0c0
call fcn.005ab9bf
add esp, 4
cmp dword [0x74f0c0], 0xffffffff
jne 0x50548b
push 0x6da990
call fcn.005abc5f
add esp, 4
push 0x74f0c0
call fcn.005ab96e
add esp, 4
jmp 0x50548b
push 0x74f0c4
call fcn.005ab9bf
add esp, 4
cmp dword [0x74f0c4], 0xffffffff
jne 0x5054a0
push 0x6da930
call fcn.005abc5f
add esp, 4
push 0x74f0c4
call fcn.005ab96e
add esp, 4
jmp 0x5054a0
push str.unordered_map_set_too_long
call fcn.005acb94
call fcn.005c695f
int3