Function at 0x559b80
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0xc0
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x38], edi
cmp dword [edi + 0x21c], 0
jg 0x559bbd
mov eax, dword [edi + 0x20c]
shr eax, 4
mov byte [ebp - 2], 0
test al, 1
je 0x559bc1
mov byte [ebp - 2], 1
mov eax, dword [edi + 0x344]
mov ecx, dword [eax + 0x170]
mov eax, dword [eax + 0x74]
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x30], eax
test eax, eax
je 0x559be8
mov eax, dword [eax + 0x10]
shr eax, 2
mov byte [ebp - 1], 1
test al, 1
jne 0x559bec
mov byte [ebp - 1], 0
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x64]
call eax
mov byte [ebp - 0x21], al
test al, al
je 0x559c12
mov ecx, dword [edi + 0x358]
cmp dword [ecx + 0x1dc], 0
jl 0x559c12
mov dl, 1
mov byte [ebp - 3], dl
jmp 0x559c1b
xor dl, dl
mov byte [ebp - 3], dl
test al, al
je 0x559c31
mov al, byte [ebp - 2]
mov cl, byte [ebp - 1]
test al, al
jne 0x559c37
test cl, cl
jne 0x559c37
test dl, dl
jne 0x559c37
mov ch, 1
jmp 0x559c39
mov al, byte [ebp - 2]
mov cl, byte [ebp - 1]
xor ch, ch
test byte [ebp - 0x4c], 0x18
mov byte [ebp - 2], ch
je 0x559c90
test al, al
jne 0x559c4e
test cl, cl
jne 0x559c4e
test dl, dl
je 0x559c90
mov eax, dword [edi + 0x34c]
mov cl, 1
mov byte [edi + 0x350], cl
test ch, ch
je 0x559c66
test eax, eax
je 0x559c6a
jmp 0x559c98
test eax, eax
je 0x559c98
mov ecx, dword [edi + 0x70]
push dword [edi + 0x348]
add ecx, 0x2968
call fcn.004f6340
mov cl, byte [edi + 0x350]
mov dword [edi + 0x348], 0
jmp 0x559c98
xor cl, cl
mov byte [edi + 0x350], cl
test byte [ebp - 0x4c], 8
movzx eax, word [edi + 0xb8]
je 0x559cad
or eax, 0x40
movzx eax, ax
jmp 0x559cb2
and eax, 0xffbf
mov word [edi + 0xb8], ax
test cl, cl
je 0x559f6e
cmp byte [ebp - 2], 0
jne 0x559f6e
cmp dword [edi + 0x348], 0
jne 0x55a171
push 0
lea ecx, [ebp - 0x80]
call fcn.00464790
push 0
lea ecx, [ebp - 0x68]
call fcn.00464790
cmp byte [edi + 0x350], 0
lea ecx, [ebp - 0x20]
je 0x559e51
mov eax, dword [ebp - 0x4c]
shr eax, 4
and eax, 1
push eax
call fcn.00464880
push 0x7315f0
push str.LIGHTING
lea ecx, [ebp - 0x68]
call fcn.00465fd0
push eax
lea ecx, [ebp - 0x20]
call fcn.00464cb0
lea ecx, [ebp - 0x20]
call fcn.00464c10
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0x20]
shr eax, 3
and eax, 1
push eax
call fcn.00464880
push 0x738356
push str.REFLECTION
lea ecx, [ebp - 0x68]
call fcn.00465fd0
push eax
lea ecx, [ebp - 0x20]
call fcn.00464cb0
lea ecx, [ebp - 0x20]
call fcn.00464c10
push 1
lea ecx, [ebp - 0x20]
call fcn.00464880
push 0x7383a7
push str.PRELIGHTING
lea ecx, [ebp - 0x68]
call fcn.00465fd0
push eax
lea ecx, [ebp - 0x20]
call fcn.00464cb0
lea ecx, [ebp - 0x20]
call fcn.00464c10
cmp byte [ebp - 0x21], 0
je 0x559ea8
push 1
lea ecx, [ebp - 0x20]
call fcn.00464880
push 0x738398
push str.SKINNING
lea ecx, [ebp - 0x68]
call fcn.00465fd0
push eax
lea ecx, [ebp - 0x20]
call fcn.00464cb0
lea ecx, [ebp - 0x20]
call fcn.00464c10
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x6c]
call eax
push eax
lea ecx, [ebp - 0x20]
call fcn.00464880
push 0x73836d
push str.BONECOUNT
lea ecx, [ebp - 0x68]
call fcn.00465fd0
push eax
lea ecx, [ebp - 0x20]
call fcn.00464cb0
lea ecx, [ebp - 0x20]
call fcn.00464c10
push 1
lea ecx, [ebp - 0x20]
call fcn.00464880
push 0x7383d9
push str.PRELIGHTINGDUALVERTEX
lea ecx, [ebp - 0x68]
call fcn.00465fd0
push eax
lea ecx, [ebp - 0x20]
call fcn.00464cb0
lea ecx, [ebp - 0x20]
call fcn.00464c10
mov eax, dword [edi + 0x358]
mov eax, dword [eax + 0xc]
test dword [eax + 0x2c], 0x10000
je 0x559ea8
push 1
lea ecx, [ebp - 0x20]
call fcn.00464880
push 0x7383b0
push str.MORPHING
jmp 0x559e8f
push 0
call fcn.00464880
push 0x7315f0
push str.LIGHTING
lea ecx, [ebp - 0x68]
call fcn.00465fd0
push eax
lea ecx, [ebp - 0x20]
call fcn.00464cb0
lea ecx, [ebp - 0x20]
call fcn.00464c10
push 0
lea ecx, [ebp - 0x20]
call fcn.00464880
push 0x738356
push str.REFLECTION
lea ecx, [ebp - 0x68]
call fcn.00465fd0
push eax
lea ecx, [ebp - 0x20]
call fcn.00464cb0
lea ecx, [ebp - 0x20]
call fcn.00464c10
push str.nocull
lea ecx, [ebp - 0x20]
call fcn.004649b0
push 0x734e40
push str.cullmode
lea ecx, [ebp - 0x80]
call fcn.00465fd0
push eax
lea ecx, [ebp - 0x20]
call fcn.00464cb0
lea ecx, [ebp - 0x20]
call fcn.00464c10
push 0x734cae
push str.combos
lea ecx, [ebp - 0x80]
call fcn.00465fd0
lea ecx, [ebp - 0x68]
push ecx
mov ecx, eax
call fcn.00464c40
mov eax, dword [edi + 0x344]
mov ecx, dword [edi + 0x70]
add eax, 0x174
add ecx, 0x2968
cmp dword [eax + 0x14], 0xf
jbe 0x559f11
mov eax, dword [eax]
lea edx, [ebp - 0x80]
push edx
push eax
call fcn.004f5ea0
mov ecx, dword [edi + 0x358]
mov edx, eax
mov dword [edi + 0x348], edx
test ecx, ecx
je 0x559f43
cmp dword [ecx + 4], 0
je 0x559f43
mov eax, dword [ecx + 0x224]
test eax, eax
je 0x559f43
mov dword [edx + 0x88], eax
cmp byte [edi + 0x350], 0
je 0x559f52
cmp byte [ebp - 0x21], 0
je 0x559f59
or dword [edi + 0x20c], 0x10
lea ecx, [ebp - 0x68]
call fcn.00464c10
lea ecx, [ebp - 0x80]
call fcn.00464c10
jmp 0x55a171
mov ecx, dword [edi + 0x348]
mov dword [ebp - 0x34], ecx
test ecx, ecx
je 0x55a171
mov esi, dword [edi + 0x70]
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x3c], ecx
mov eax, dword [esi + 0x296c]
mov edx, dword [eax]
mov dword [ebp - 0x48], edx
cmp edx, eax
je 0x55a06e
nop dword [eax + eax]
cmp dword [edx + 0x20], ecx
je 0x559fb3
mov edx, dword [edx]
mov dword [ebp - 0x48], edx
cmp edx, eax
jne 0x559fa0
jmp 0x55a06e
cmp dword [edx + 0x1c], 0xf
lea eax, [edx + 8]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 8], eax
mov dword [ebp - 0x50], ecx
jbe 0x559fca
mov eax, dword [eax]
mov dword [ebp - 8], eax
xor ecx, ecx
mov esi, 0x811c9dc5
cmp dword [ebp - 0x50], ecx
jbe 0x559ff7
mov edi, dword [ebp - 8]
mov edx, dword [ebp - 0x50]
nop dword [eax]
movzx eax, byte [edi + ecx]
inc ecx
xor eax, esi
imul esi, eax, 0x1000193
cmp ecx, edx
jb 0x559fe0
mov edx, dword [ebp - 0x48]
mov edi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [ecx + 0x2980]
and ecx, esi
mov esi, dword [ebp - 0x2c]
mov eax, dword [esi + 0x2974]
cmp dword [eax + ecx*8 + 4], edx
jne 0x55a040
cmp dword [eax + ecx*8], edx
jne 0x55a031
mov edi, dword [esi + 0x296c]
mov dword [ebp - 8], edi
mov esi, dword [ebp - 8]
mov dword [eax + ecx*8], edi
mov edi, dword [ebp - 0x38]
mov dword [eax + ecx*8 + 4], esi
mov esi, dword [ebp - 0x2c]
jmp 0x55a053
mov esi, dword [edx + 4]
mov dword [ebp - 8], esi
mov dword [eax + ecx*8 + 4], esi
mov esi, dword [ebp - 0x2c]
jmp 0x55a053
cmp dword [eax + ecx*8], edx
jne 0x55a053
mov edi, dword [esi + 0x2974]
mov eax, dword [edx]
mov dword [edi + ecx*8], eax
mov edi, dword [ebp - 0x38]
mov ecx, dword [edx]
dec dword [esi + 0x2970]
mov eax, dword [edx + 4]
mov dword [eax], ecx
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
call fcn.0042c6e0
mov ecx, dword [ebp - 0x34]
mov al, byte [ebp - 3]
add esi, 0x2988
mov byte [ebp - 3], al
movzx eax, cl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, byte [ebp - 0x3b]
xor ecx, eax
movzx eax, byte [ebp - 0x3a]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [ebp - 0x39]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, esi
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.004301e0
mov edx, dword [eax + 4]
test edx, edx
je 0x55a15e
mov eax, dword [esi + 4]
mov dword [ebp - 0x2c], eax
cmp edx, eax
je 0x55a15e
movzx eax, byte [edx + 8]
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, byte [edx + 9]
xor ecx, eax
movzx eax, byte [edx + 0xa]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [edx + 0xb]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, dword [esi + 0x18]
and ecx, eax
mov eax, dword [esi + 0xc]
cmp dword [eax + ecx*8 + 4], edx
jne 0x55a133
cmp dword [eax + ecx*8], edx
jne 0x55a127
mov edi, dword [ebp - 0x2c]
mov dword [eax + ecx*8], edi
mov dword [eax + ecx*8 + 4], edi
jmp 0x55a140
mov edi, dword [edx + 4]
mov dword [ebp - 0x2c], edi
mov dword [eax + ecx*8 + 4], edi
jmp 0x55a140
cmp dword [eax + ecx*8], edx
jne 0x55a143
mov edi, dword [esi + 0xc]
mov eax, dword [edx]
mov dword [edi + ecx*8], eax
mov edi, dword [ebp - 0x38]
mov ecx, dword [edx]
dec dword [esi + 8]
mov eax, dword [edx + 4]
push 0xc
push edx
mov dword [eax], ecx
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
call fcn.005ab85c
add esp, 8
mov ecx, dword [ebp - 0x34]
push 1
mov eax, dword [ecx]
call dword [eax]
mov dword [edi + 0x348], 0
mov eax, dword [edi + 0x358]
lea esi, [edi + 0x358]
test eax, eax
setne byte [ebp - 1]
cmp byte [ebp - 3], 0
je 0x55a75a
cmp dword [eax + 0x21c], 0
jne 0x55a34b
imul ecx, dword [eax + 0x1dc], 0x70
push 0
add ecx, dword [eax + 0xc]
mov dword [ebp - 8], ecx
lea ecx, [ebp - 0x80]
call fcn.00464790
mov byte [ebp - 0x18], 7
and dword [ebp - 0x18], 0xfffffeff
push 8
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
call fcn.005ab82c
mov esi, eax
add esp, 4
push 0x30
mov dword [esi], 0
mov dword [esi + 4], 0
call fcn.005ab82c
add esp, 4
mov dword [ebp - 0x20], esi
lea ecx, [ebp - 0x80]
mov dword [eax], eax
push 0x734cae
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
push str.combos
mov dword [esi], eax
call fcn.00465fd0
push eax
lea ecx, [ebp - 0x20]
call fcn.00464cb0
lea ecx, [ebp - 0x20]
call fcn.00465f40
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x55a237
push eax
call fcn.004672a0
mov eax, dword [ebp - 8]
lea ecx, [ebp - 0x80]
push 0x734cae
mov byte [ebp - 0x60], 1
and dword [ebp - 0x60], 0xfffffeff
mov eax, dword [eax + 0x10]
cdq
push str.combos
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
call fcn.00465fd0
push 0x7383c1
push str.BLENDROWCOUNT
mov ecx, eax
call fcn.00465fd0
push eax
lea ecx, [ebp - 0x68]
call fcn.00464cb0
lea ecx, [ebp - 0x68]
call fcn.00465f40
mov ecx, dword [ebp - 0x5c]
lea esi, [edi + 0x358]
test ecx, ecx
je 0x55a315
mov eax, 3
lea esi, [ecx + 0x48]
nop dword [eax]
mov ecx, dword [esi - 4]
lea esi, [esi - 0x18]
dec eax
mov dword [ebp - 0x40], eax
cmp ecx, 0xf
jbe 0x55a2ed
mov eax, dword [esi]
inc ecx
cmp ecx, 0x1000
jb 0x55a2e0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x55ad99
mov eax, edx
push ecx
push eax
call fcn.005ab85c
mov eax, dword [ebp - 0x40]
add esp, 8
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
test eax, eax
jne 0x55a2b0
push 0x48
push dword [ebp - 0x5c]
call fcn.005ab85c
add esp, 8
lea esi, [edi + 0x358]
mov eax, dword [ebp - 8]
lea edx, [ebp - 0x80]
mov ecx, dword [edi + 0x70]
push edx
add ecx, 0x2968
mov eax, dword [eax]
push dword [eax]
call fcn.004f5ea0
mov ecx, dword [esi]
mov dword [ecx + 0x21c], eax
lea ecx, [ebp - 0x80]
call fcn.00465f40
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x55a34b
push eax
call fcn.004672a0
cmp byte [edi + 0x350], 0
je 0x55a995
push dword [edi + 0xc]
lea ecx, [ebp - 0x80]
mov byte [ebp - 1], 0
push dword [edi + 8]
call fcn.00510550
lea eax, [ebp - 0x80]
mov edx, str._rt_imageLayerAlbedo_
push eax
lea ecx, [ebp - 0x68]
call fcn.00429cb0
add esp, 0xc
lea ecx, [ebp - 0x80]
call fcn.004143d0
mov eax, dword [esi]
mov ecx, dword [eax + 0x20c]
test ecx, ecx
je 0x55a3a5
mov eax, dword [ebp - 0x30]
push dword [eax + 0x20]
push dword [eax + 0x1c]
call fcn.004fd9b0
mov dword [ebp - 0x28], esi
jmp 0x55a409
mov eax, dword [edi + 0x70]
lea edx, [ebp - 0x68]
mov dword [ebp - 0x28], esi
lea ecx, [eax + 0x29b8]
mov eax, dword [eax + 0xd0]
and eax, 0x20000
mov dword [ebp - 0x40], ecx
neg eax
sbb eax, eax
and eax, 0xe
cmp dword [ebp - 0x54], 0xf
jbe 0x55a3de
mov edx, dword [ebp - 0x68]
lea ecx, [edi + 0x358]
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x40]
push 1
push 2
push 0x1a
push eax
mov eax, dword [ebp - 0x30]
push edx
push 1
push dword [eax + 0x20]
push dword [eax + 0x1c]
call fcn.0052d0f0
mov ecx, dword [esi]
mov dword [ecx + 0x20c], eax
mov eax, dword [esi]
mov eax, dword [eax + 0x20c]
inc dword [eax + 0x20]
mov eax, dword [esi]
cmp dword [eax + 0x220], 0
jne 0x55a5cc
push 0
lea ecx, [ebp - 0x80]
call fcn.00464790
push 6
lea ecx, [ebp - 0x20]
call fcn.00464790
push 0x734dcc
push str.textures
lea ecx, [ebp - 0x80]
mov esi, eax
call fcn.00465fd0
push eax
mov ecx, esi
call fcn.00464cb0
lea ecx, [ebp - 0x20]
call fcn.00464c10
push 0x734dcc
push str.textures
lea ecx, [ebp - 0x80]
call fcn.00465fd0
mov ecx, dword [ebp - 0x30]
mov esi, eax
mov eax, dword [ebp - 0x28]
add ecx, 0x28
mov dword [ebp - 0x28], eax
cmp dword [ecx + 0x14], 0xf
jbe 0x55a481
mov ecx, dword [ecx]
lea eax, [edi + 0x358]
mov dword [ebp - 0x28], eax
push ecx
lea ecx, [ebp - 0x20]
call fcn.004649b0
lea eax, [ebp - 0x20]
mov ecx, esi
push eax
call fcn.00466420
lea ecx, [ebp - 0x20]
call fcn.00464c10
mov byte [ebp - 0x18], 7
and dword [ebp - 0x18], 0xfffffeff
push 8
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
call fcn.005ab82c
mov esi, eax
add esp, 4
push 0x30
mov dword [esi], 0
mov dword [esi + 4], 0
call fcn.005ab82c
add esp, 4
mov dword [ebp - 0x20], esi
lea ecx, [ebp - 0x80]
mov dword [eax], eax
push 0x734cae
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
push str.combos
mov dword [esi], eax
call fcn.00465fd0
push eax
lea ecx, [ebp - 0x20]
call fcn.00464cb0
lea ecx, [ebp - 0x20]
call fcn.00465f40
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x55a523
push eax
call fcn.004672a0
xor cl, cl
call fcn.004f6b80
push eax
lea ecx, [ebp - 0x20]
call fcn.004649b0
push 0x734e1c
push str.blending
lea ecx, [ebp - 0x80]
call fcn.00465fd0
push eax
lea ecx, [ebp - 0x20]
call fcn.00464cb0
lea ecx, [ebp - 0x20]
call fcn.00464c10
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x10]
shr eax, 2
test al, 1
je 0x55a5a1
push 1
lea ecx, [ebp - 0x20]
call fcn.00464880
push 0x734cae
push str.combos
lea ecx, [ebp - 0x80]
call fcn.00465fd0
push 0x7383e7
push str.SPRITESHEET
mov ecx, eax
call fcn.00465fd0
push eax
lea ecx, [ebp - 0x20]
call fcn.00464cb0
lea ecx, [ebp - 0x20]
call fcn.00464c10
mov ecx, dword [edi + 0x70]
lea eax, [ebp - 0x80]
push eax
add ecx, 0x2968
push str.materials_util_fullscreenlayer.json
call fcn.004f5ea0
mov ecx, dword [edi + 0x358]
mov dword [ecx + 0x220], eax
lea ecx, [ebp - 0x80]
call fcn.00464c10
mov edx, dword [ebp - 0x30]
mov eax, dword [edi + 0x70]
mov cl, byte [eax + 0xd0]
mov eax, dword [edx + 0x1c]
mov dword [ebp - 0x98], 0x40400000
mov dword [ebp - 0x94], 0x3f800000
mov dword [ebp - 0x90], 0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x739f30]
mov eax, dword [edx + 0x14]
cvtpd2ps xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x739f30]
mov eax, dword [edx + 0x20]
cvtpd2ps xmm0, xmm0
divss xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addss xmm2, xmm2
addsd xmm0, qword [eax*8 + 0x739f30]
mov eax, dword [edx + 0x18]
movss dword [ebp - 0x8c], xmm2
cvtpd2ps xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x739f30]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
movaps xmm0, xmmword [0x739b60]
movss dword [ebp - 0xb0], xmm1
movss dword [ebp - 0x88], xmm1
movups xmmword [ebp - 0xc0], xmm0
movaps xmm0, xmmword [0x739b80]
movups xmmword [ebp - 0xac], xmm0
movaps xmm0, xmm1
xorps xmm0, xmmword [0x739fa0]
movss dword [ebp - 0x9c], xmm0
test cl, 1
je 0x55a6d5
mov dword [ebp - 0xb0], 0
movss dword [ebp - 0x9c], xmm2
mov dword [ebp - 0x88], 0
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
mov ecx, dword [eax + 0x210]
test ecx, ecx
je 0x55a6ea
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [edi + 0x70]
lea ecx, [ebp - 0x44]
mov edi, dword [eax + 0x28dc]
mov eax, dword [edi]
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 7
mov esi, dword [eax + 0x24]
lea eax, [ebp - 0x3c]
push eax
push ecx
call fcn.00473d50
add esp, 8
lea ecx, [ebp - 0xc0]
push 0
push 0
push 3
push ecx
push eax
mov ecx, edi
call esi
mov edx, dword [ebp - 0x28]
mov edi, dword [ebp - 0x38]
mov ecx, dword [edx]
mov dword [ecx + 0x210], eax
mov eax, dword [edx]
mov ecx, dword [edi + 0x348]
mov eax, dword [eax + 0x20c]
mov eax, dword [eax + 0x18]
mov dword [ecx + 0x74], eax
lea ecx, [ebp - 0x68]
call fcn.004143d0
lea esi, [edi + 0x358]
jmp 0x55a78d
test eax, eax
je 0x55a78d
mov eax, dword [eax + 0x21c]
mov ecx, esi
test eax, eax
je 0x55a77f
mov ecx, dword [edi + 0x70]
add ecx, 0x2968
push eax
call fcn.004f6340
lea ecx, [edi + 0x358]
mov eax, dword [esi]
mov esi, ecx
mov dword [eax + 0x21c], 0
cmp byte [edi + 0x350], 0
je 0x55a995
cmp byte [ebp - 0x21], 0
je 0x55a995
mov eax, dword [esi]
cmp dword [eax + 0x218], 0
jne 0x55a9c1
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x28], eax
mov edx, dword [eax + 0x2c]
or edx, 0x2000000
cmp dword [eax + 0x64], 0
mov dword [ebp - 0x2c], edx
jne 0x55a934
lea ecx, [eax + 0x30]
mov eax, dword [eax + 0x34]
cdq
idiv dword [ecx]
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x2c]
mov esi, eax
mov dword [ebp - 0x48], esi
call fcn.004b4330
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x40], eax
imul eax, esi
push eax
mov dword [edx + 0x60], eax
call fcn.005ab960
mov ecx, dword [ebp - 0x2c]
mov esi, eax
mov eax, dword [ebp - 0x28]
add esp, 4
mov edx, 2
mov dword [eax + 0x64], esi
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x3c], eax
call fcn.0054b230
mov edx, dword [ebp - 0x28]
xor ecx, ecx
mov dword [ebp - 0x84], eax
cmp dword [edx + 0x5c], ecx
je 0x55a8b2
mov dword [ebp - 0x34], ecx
cmp dword [ebp - 0x48], ecx
jbe 0x55a934
mov edi, eax
mov dword [ebp - 0x50], ecx
lea eax, [edi + esi]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x30]
push edi
mov eax, dword [eax]
imul eax, ecx
add eax, dword [ebp - 0x3c]
push eax
push esi
call fcn.005c3580
mov eax, dword [ebp - 0x28]
add esp, 0xc
mov edx, dword [ebp - 8]
mov eax, dword [eax + 0x5c]
add eax, dword [ebp - 0x50]
movq xmm0, qword [eax]
movq qword [edx], xmm0
mov eax, dword [eax + 8]
mov dword [edx + 8], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax]
mov eax, ecx
sub eax, edi
push eax
mov eax, dword [ebp - 0x34]
imul eax, ecx
add eax, edi
add eax, dword [ebp - 0x3c]
push eax
lea eax, [edx + 0xc]
push eax
call fcn.005c3580
mov ecx, dword [ebp - 0x34]
add esp, 0xc
mov edx, dword [ebp - 0x40]
inc ecx
add dword [ebp - 0x50], 0xc
add esi, edx
add dword [ebp - 8], edx
mov dword [ebp - 0x34], ecx
cmp ecx, dword [ebp - 0x48]
jb 0x55a843
jmp 0x55a931
mov dword [ebp - 8], ecx
cmp dword [ebp - 0x48], ecx
jbe 0x55a934
mov edi, dword [ebp - 0x84]
lea eax, [edi + esi]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x30]
push edi
mov eax, dword [eax]
imul eax, ecx
add eax, dword [ebp - 0x3c]
push eax
push esi
call fcn.005c3580
mov eax, dword [ebp - 0x30]
add esp, 0xc
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x34]
mov eax, dword [eax]
imul eax, edx
add eax, dword [ebp - 0x3c]
movq xmm0, qword [eax]
movq qword [ecx], xmm0
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax]
mov eax, ecx
imul edx, ecx
sub eax, edi
push eax
mov eax, dword [ebp - 0x34]
add eax, 0xc
add edx, edi
add edx, dword [ebp - 0x3c]
push edx
push eax
call fcn.005c3580
mov ecx, dword [ebp - 8]
add esp, 0xc
mov eax, dword [ebp - 0x40]
inc ecx
add dword [ebp - 0x34], eax
add esi, eax
mov dword [ebp - 8], ecx
cmp ecx, dword [ebp - 0x48]
jb 0x55a8c6
mov edi, dword [ebp - 0x38]
mov eax, dword [edi + 0x70]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [eax + 0x28dc]
mov dword [ebp - 0x40], eax
mov eax, dword [eax]
mov edi, dword [eax + 0x20]
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x3c]
cdq
sub eax, edx
mov esi, eax
sar esi, 1
call fcn.004b4330
mov ecx, eax
mov eax, dword [ebp - 0x28]
push 0
push 0
push 0
mov eax, dword [eax + 0x60]
cdq
idiv ecx
mov ecx, dword [ebp - 0x28]
push esi
push dword [ecx + 0x40]
push eax
push dword [ecx + 0x64]
mov ecx, dword [ebp - 0x40]
push dword [ebp - 0x2c]
call edi
mov edi, dword [ebp - 0x38]
mov ecx, dword [edi + 0x358]
lea esi, [edi + 0x358]
mov dword [ecx + 0x218], eax
jmp 0x55a9c1
mov ecx, dword [esi]
test ecx, ecx
je 0x55a9c1
mov ecx, dword [ecx + 0x218]
mov edx, esi
test ecx, ecx
je 0x55a9b3
mov eax, dword [ecx]
push 1
call dword [eax]
lea edx, [edi + 0x358]
mov eax, dword [esi]
mov esi, edx
mov dword [eax + 0x218], 0
cmp byte [ebp - 1], 0
je 0x55aa57
mov eax, dword [esi]
mov eax, dword [eax + 0x220]
test eax, eax
je 0x55a9f1
mov ecx, dword [edi + 0x70]
add ecx, 0x2968
push eax
call fcn.004f6340
lea ecx, [edi + 0x358]
mov dword [ebp - 0x40], ecx
jmp 0x55a9f4
mov dword [ebp - 0x40], esi
mov eax, dword [esi]
mov dword [eax + 0x220], 0
mov eax, dword [esi]
mov eax, dword [eax + 0x20c]
test eax, eax
je 0x55aa24
mov ecx, dword [edi + 0x70]
dec dword [eax + 0x20]
add ecx, 0x29b8
cmp dword [eax + 0x20], 0
jg 0x55aa24
push eax
call fcn.0052d290
mov esi, dword [ebp - 0x40]
mov eax, dword [esi]
mov dword [eax + 0x20c], 0
mov eax, dword [esi]
mov ecx, dword [eax + 0x210]
test ecx, ecx
je 0x55aa45
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [esi]
lea esi, [edi + 0x358]
mov dword [eax + 0x210], 0
mov cl, byte [ebp - 2]
test cl, cl
je 0x55ad0b
cmp dword [edi + 0x34c], 0
jne 0x55ad0b
mov byte [ebp - 0x78], 0
lea ecx, [ebp - 0x68]
and dword [ebp - 0x78], 0xfffffeff
push 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0
call fcn.00464790
push 0x738398
mov byte [ebp - 0x18], 1
lea ecx, [ebp - 0x68]
and dword [ebp - 0x18], 0xfffffeff
push str.SKINNING
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x20], 1
mov dword [ebp - 0x1c], 0
call fcn.00465fd0
push eax
lea ecx, [ebp - 0x20]
call fcn.00464cb0
lea ecx, [ebp - 0x20]
call fcn.00465f40
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x55aafd
push eax
call fcn.004672a0
lea esi, [edi + 0x358]
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x6c]
call eax
cdq
lea ecx, [ebp - 0x68]
push 0x73836d
mov byte [ebp - 0x18], 1
and dword [ebp - 0x18], 0xfffffeff
push str.BONECOUNT
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edx
call fcn.00465fd0
push eax
lea ecx, [ebp - 0x20]
call fcn.00464cb0
lea ecx, [ebp - 0x20]
call fcn.00465f40
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x55ab5d
push eax
call fcn.004672a0
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
shr eax, 2
test al, 1
je 0x55ab99
push 1
lea ecx, [ebp - 0x20]
call fcn.00464880
push 0x73838e
push str.SKINNING_ALPHA
lea ecx, [ebp - 0x68]
call fcn.00465fd0
push eax
lea ecx, [ebp - 0x20]
call fcn.00464cb0
lea ecx, [ebp - 0x20]
call fcn.00464c10
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
test dword [eax + 0x2c], 0x10000
je 0x55abd4
push 1
lea ecx, [ebp - 0x20]
call fcn.00464880
push 0x7383b0
push str.MORPHING
lea ecx, [ebp - 0x68]
call fcn.00465fd0
push eax
lea ecx, [ebp - 0x20]
call fcn.00464cb0
lea ecx, [ebp - 0x20]
call fcn.00464c10
cmp byte [edi + 0x350], 0
lea ecx, [ebp - 0x20]
je 0x55ac0e
push 0
call fcn.00464880
push 0x7315f0
push str.LIGHTING
lea ecx, [ebp - 0x68]
call fcn.00465fd0
push eax
lea ecx, [ebp - 0x20]
call fcn.00464cb0
lea ecx, [ebp - 0x20]
call fcn.00464c10
push 0
jmp 0x55ac4a
mov eax, dword [ebp - 0x4c]
shr eax, 4
and eax, 1
push eax
call fcn.00464880
push 0x7315f0
push str.LIGHTING
lea ecx, [ebp - 0x68]
call fcn.00465fd0
push eax
lea ecx, [ebp - 0x20]
call fcn.00464cb0
lea ecx, [ebp - 0x20]
call fcn.00464c10
mov eax, dword [ebp - 0x4c]
shr eax, 3
and eax, 1
push eax
lea ecx, [ebp - 0x20]
call fcn.00464880
push 0x738356
push str.REFLECTION
lea ecx, [ebp - 0x68]
call fcn.00465fd0
push eax
lea ecx, [ebp - 0x20]
call fcn.00464cb0
lea ecx, [ebp - 0x20]
call fcn.00464c10
push 0x734cae
push str.combos
lea ecx, [ebp - 0x80]
call fcn.00465fd0
lea ecx, [ebp - 0x68]
push ecx
mov ecx, eax
call fcn.00464c40
mov eax, dword [edi + 0x344]
mov ecx, dword [edi + 0x70]
add eax, 0x174
add ecx, 0x2968
cmp dword [eax + 0x14], 0xf
jbe 0x55acae
mov eax, dword [eax]
lea edx, [ebp - 0x80]
push edx
push eax
call fcn.004f5ea0
mov ecx, dword [edi + 0x358]
mov dword [edi + 0x34c], eax
mov ecx, dword [ecx + 0x224]
test ecx, ecx
je 0x55acd4
mov dword [eax + 0x88], ecx
lea ecx, [ebp - 0x68]
call fcn.00465f40
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x55ace9
push eax
call fcn.004672a0
lea ecx, [ebp - 0x80]
call fcn.00465f40
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x55ad90
push eax
call fcn.004672a0
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov al, byte [edi + 0xb8]
shr al, 2
test al, 1
je 0x55ad69
mov eax, dword [edi + 0x144]
cmp eax, dword [edi + 0x148]
je 0x55ad69
cmp dword [edi + 0x34c], 0
jne 0x55ad90
mov eax, dword [edi + 0x20c]
mov esi, dword [edi + 0x70]
shr eax, 1
test al, 1
je 0x55ad45
mov eax, str.materials_util_fullscreenlayer.json
jmp 0x55ad4c
mov ecx, edi
call fcn.005406d0
push 0
push eax
lea ecx, [esi + 0x2968]
call fcn.004f5ea0
mov dword [edi + 0x34c], eax
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
test cl, cl
jne 0x55ad90
mov eax, dword [edi + 0x34c]
test eax, eax
je 0x55ad90
mov ecx, dword [edi + 0x70]
push eax
add ecx, 0x2968
call fcn.004f6340
mov dword [edi + 0x34c], 0
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.005c695f
int3