Function at 0x4c1a10
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x514c82
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb2c
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x34], 0
push ebx
push esi
mov eax, dword [edx + 0x10]
mov ecx, dword [edx + 0xc]
sub eax, ecx
sar eax, 4
push edi
test eax, eax
je 0x4c2e25
mov eax, dword [edx]
movzx ecx, word [ecx]
mov edi, dword [ebp + 0x10]
mov esi, dword [eax + ecx*4]
mov eax, dword [edi + 0x10]
mov edx, dword [edi + 0xc]
sub eax, edx
sar eax, 4
cmp eax, 2
jbe 0x4c2e25
mov ecx, dword [edi]
movzx eax, word [edx + 0x20]
mov ebx, dword [ebp + 8]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x24], eax
movzx eax, word [edx]
push dword [ecx + eax*4]
mov ecx, ebx
call fcn.004dab90
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0xc]
sub ecx, edx
sar ecx, 4
cmp ecx, 2
jbe 0x4c2e25
movzx ecx, word [edx + 0x20]
mov eax, dword [eax]
mov eax, dword [eax + ecx*4]
mov ecx, ebx
push eax
mov dword [ebp - 0x28], eax
call fcn.004dab90
push dword [edi + 0x28]
mov ecx, dword [ebp + 8]
xor bl, bl
mov dword [ebp - 0x10], eax
xor bh, bh
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x20], 0
mov byte [ebp - 0x12], bl
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x11], bl
mov byte [ebp - 0x14], bl
mov byte [ebp - 0x13], bl
call fcn.004b7f30
mov eax, dword [eax]
mov eax, dword [eax]
cmp byte [eax + 0xd], bl
jne 0x4c1c0c
mov ecx, dword [eax + 0x10]
cmp ecx, 0x1e
jne 0x4c1b1a
test bh, bh
je 0x4c1b0b
mov ecx, dword [eax + 0x14]
mov edx, dword [ebp - 0x38]
cmp dword [ecx], edx
jne 0x4c1c4c
mov ecx, dword [eax + 0x14]
mov bh, 1
mov ecx, dword [ecx]
mov dword [ebp - 0x38], ecx
jmp 0x4c1bc6
cmp ecx, 0x1f
jne 0x4c1b40
test bl, bl
je 0x4c1b31
mov ecx, dword [eax + 0x14]
mov edx, dword [ebp - 0x20]
cmp dword [ecx], edx
jne 0x4c1c86
mov ecx, dword [eax + 0x14]
mov bl, 1
mov ecx, dword [ecx]
mov dword [ebp - 0x20], ecx
jmp 0x4c1bc6
cmp ecx, 0x20
jne 0x4c1b7a
cmp dword [ebp - 0x24], 3
jne 0x4c1ce2
cmp esi, 4
jne 0x4c1ce2
cmp byte [ebp - 0x12], 0
je 0x4c1b6c
mov ecx, dword [eax + 0x14]
mov edx, dword [ebp - 0x30]
cmp dword [ecx], edx
jne 0x4c1cc0
mov ecx, dword [eax + 0x14]
mov byte [ebp - 0x12], 1
mov ecx, dword [ecx]
mov dword [ebp - 0x30], ecx
jmp 0x4c1bc6
cmp ecx, 0xb
je 0x4c1e3f
cmp ecx, 0xf
jne 0x4c1b8e
mov byte [ebp - 0x11], 1
jmp 0x4c1bc6
cmp ecx, 0x1499
jne 0x4c1b9c
mov byte [ebp - 0x14], 1
jmp 0x4c1bc6
cmp ecx, 0x14a5
jne 0x4c1bc6
cmp esi, 4
jne 0x4c1d82
mov ecx, dword [ebp - 0x10]
movzx ecx, word [ecx + 0x1e]
cmp ecx, 0x1c
je 0x4c1bc2
cmp ecx, 0x1d
jne 0x4c1d1c
mov byte [ebp - 0x13], 1
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
je 0x4c1bec
mov ecx, dword [eax + 4]
cmp byte [ecx + 0xd], 0
jne 0x4c1be8
cmp eax, dword [ecx + 8]
jne 0x4c1be8
mov eax, ecx
mov ecx, dword [ecx + 4]
cmp byte [ecx + 0xd], 0
je 0x4c1bd8
mov eax, ecx
jmp 0x4c1c02
mov eax, ecx
mov edx, dword [eax]
cmp byte [edx + 0xd], 0
jne 0x4c1c02
mov ecx, dword [edx]
mov eax, edx
mov edx, ecx
cmp byte [ecx + 0xd], 0
je 0x4c1bf6
cmp byte [eax + 0xd], 0
je 0x4c1af1
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x10]
mov ecx, dword [edx + 0xc]
sub eax, ecx
sar eax, 4
test eax, eax
je 0x4c2e25
movzx ecx, word [ecx]
mov eax, dword [edx]
mov eax, dword [eax + ecx*4]
cmp eax, 0x1494
ja case.default.0x4c1c45
je 0x4c1e60
dec eax
cmp eax, 3
ja case.default.0x4c1c45
jmp dword [eax*4 + 0x4c2e50]
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x4a8]
push edi
push 0xfffffffffffffff2
push eax
call fcn.004e0a50
mov esi, eax
push str.Variable_has_conflicting_location_decorations
push esi
mov dword [ebp - 4], 0
call fcn.00432f60
mov esi, dword [esi + 0xe8]
lea ecx, [ebp - 0x4a8]
add esp, 8
jmp 0x4c1de6
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x598]
push edi
push 0xfffffffffffffff2
push eax
call fcn.004e0a50
mov esi, eax
push str.Variable_has_conflicting_component_decorations
push esi
mov dword [ebp - 4], 1
call fcn.00432f60
mov esi, dword [esi + 0xe8]
lea ecx, [ebp - 0x598]
add esp, 8
jmp 0x4c1de6
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x3b8]
push edi
push 0xfffffffffffffff2
push eax
call fcn.004e0a50
mov esi, eax
mov dword [ebp - 4], 3
push str.Variable_has_conflicting_index_decorations
jmp 0x4c1d02
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x3b8]
push edi
push 0xfffffffffffffff2
push eax
call fcn.004e0a50
mov esi, eax
mov dword [ebp - 4], 2
push str.Index_can_only_be_applied_to_Fragment_output_variables
push esi
call fcn.00432f60
mov esi, dword [esi + 0xe8]
lea ecx, [ebp - 0x3b8]
add esp, 8
jmp 0x4c1de6
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x688]
push edi
push 0xfffffffffffffff2
push eax
call fcn.004e0a50
mov esi, eax
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x120]
push 0
push 0x1a7a
push eax
mov dword [ebp - 4], 6
call fcn.004dd300
push eax
mov ecx, esi
mov byte [ebp - 4], 7
call fcn.004709d0
mov esi, eax
push str.PerVertexKHR_must_be_declared_as_arrays
push esi
call fcn.00432f60
mov esi, dword [esi + 0xe8]
lea ecx, [ebp - 0x120]
add esp, 8
call fcn.004016b0
lea ecx, [ebp - 0x688]
jmp 0x4c1de6
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x2c8]
push edi
push 0xfffffffffffffff2
push eax
call fcn.004e0a50
mov esi, eax
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x108]
push 0
push 0x1a79
push eax
mov dword [ebp - 4], 4
call fcn.004dd300
push eax
mov ecx, esi
mov byte [ebp - 4], 5
call fcn.004709d0
mov esi, eax
push str.PerVertexKHR_can_only_be_applied_to_Fragment_Execution_Models
push esi
call fcn.00432f60
mov esi, dword [esi + 0xe8]
lea ecx, [ebp - 0x108]
add esp, 8
call fcn.004016b0
lea ecx, [ebp - 0x2c8]
call fcn.00461eb0
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [ebp - 0x11], 0
sete al
jmp 0x4c1e1a
cmp dword [ebp - 0x24], 3
je case.default.0x4c1c45
cmp byte [ebp - 0x11], 0
jmp 0x4c1e6a
cmp dword [ebp - 0x24], 3
setne al
test al, al
jne 0x4c1e6c
mov eax, dword [ebp - 0x10]
movzx esi, word [eax + 0x1e]
cmp esi, 0x1e
jne 0x4c1eb4
mov ecx, dword [ebp + 8]
push 0xb
push dword [ebp - 0x28]
call fcn.004c2e60
test al, al
je 0x4c1eb4
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x24], 3
je case.default.0x4c1c45
cmp byte [ebp - 0x13], 0
je case.default.0x4c1c45
jmp 0x4c1e6c
cmp dword [ebp - 0x24], 3
jne case.default.0x4c1c45
cmp byte [ebp - 0x14], 0
jne case.default.0x4c1c45
mov eax, dword [ebp - 0x10]
movzx eax, word [eax + 0x1e]
cmp eax, 0x1c
je 0x4c1e7d
cmp eax, 0x1d
jne case.default.0x4c1c45
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
sub eax, ecx
sar eax, 4
cmp eax, 1
jbe 0x4c2e25
mov eax, dword [ebp - 0x10]
movzx ecx, word [ecx + 0x10]
mov eax, dword [eax]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp + 8]
push eax
mov dword [ebp - 0x28], eax
call fcn.004dab90
mov dword [ebp - 0x10], eax
jmp 0x4c1e21
mov ecx, dword [ebp + 8]
push 2
push dword [ebp - 0x28]
call fcn.004c2e60
test bh, bh
jne 0x4c1f91
test al, al
jne 0x4c1f91
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x2c8]
xor ebx, ebx
cmp esi, 0x1e
push edi
push 0xfffffffffffffff2
sete bl
push eax
add ebx, 0x1334
call fcn.004e0a50
mov esi, eax
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0xf0]
push 0
push ebx
push eax
mov dword [ebp - 4], 8
call fcn.004dd300
cmp dword [eax + 0x14], 0x10
mov ecx, dword [eax + 0x10]
mov byte [ebp - 4], 9
jb 0x4c1f1b
mov eax, dword [eax]
push ecx
push eax
push esi
call fcn.00433380
push str.Variable_must_be_decorated_with_a_location
push esi
call fcn.00432f60
mov edx, dword [ebp - 0xdc]
add esp, 0x14
mov esi, dword [esi + 0xe8]
cmp edx, 0x10
jb 0x4c1f71
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c1f67
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c2e20
push edx
push ecx
call fcn.004e5ccb
add esp, 8
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xdc], 0xf
mov byte [ebp - 0xf0], 0
jmp 0x4c1de0
cmp dword [ebp - 0x24], 3
mov edx, str.output
mov eax, str.input
mov dword [ebp - 0x64], 0
cmovne edx, eax
mov dword [ebp - 0x54], 0
mov ecx, edx
mov dword [ebp - 0x50], 0xf
mov byte [ebp - 0x64], 0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c1fc0
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x64]
call fcn.004019c0
mov dword [ebp - 4], 0xa
test bh, bh
je 0x4c22be
mov esi, dword [ebp - 0x10]
mov edi, 1
mov dword [ebp - 0x2c], edi
cmp word [esi + 0x1e], 0x1c
jne 0x4c2067
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
sub eax, ecx
sar eax, 4
cmp eax, 2
jbe 0x4c2e25
movzx ecx, word [ecx + 0x20]
mov eax, dword [esi]
mov ebx, dword [ebp + 8]
push dword [eax + ecx*4]
lea eax, [ebp - 0xe4]
mov ecx, ebx
push eax
call fcn.004daaa0
cmp byte [eax + 8], 0
mov edi, dword [eax]
mov dl, byte [eax + 4]
mov dword [ebp - 0x2c], edi
je 0x4c2034
test dl, dl
jne 0x4c203c
mov edi, 1
mov dword [ebp - 0x2c], edi
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
sub eax, ecx
sar eax, 4
cmp eax, 1
jbe 0x4c2e2a
movzx ecx, word [ecx + 0x10]
mov eax, dword [esi]
push dword [eax + ecx*4]
mov ecx, ebx
call fcn.004dab90
mov esi, eax
mov dword [ebp - 0x10], esi
jmp 0x4c206a
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x48]
mov dword [ebp - 0x48], 0
push eax
push esi
push ebx
call fcn.004c3040
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4c2a45
push dword [ebp - 0x10]
push ebx
call fcn.004c2f10
add esp, 8
mov dword [ebp - 0x18], eax
xor ebx, ebx
test edi, edi
je 0x4c2a43
mov edx, dword [ebp - 0x48]
mov eax, ebx
imul eax, edx
add eax, dword [ebp - 0x38]
lea edi, [eax*4]
mov ecx, edi
cmp ecx, 0x4000
jae 0x4c2a43
lea esi, [eax + edx]
mov eax, dword [ebp - 0x18]
shl esi, 2
test eax, eax
je 0x4c20d8
add ecx, dword [ebp - 0x20]
lea esi, [eax + edi]
add esi, dword [ebp - 0x20]
cmp byte [ebp - 0x12], 0
mov edi, dword [ebp + 0x14]
je 0x4c20e9
cmp dword [ebp - 0x30], 1
cmove edi, dword [ebp + 0x18]
mov dword [ebp - 0x10], ecx
cmp ecx, esi
jae 0x4c2119
lea eax, [ebp - 0x10]
mov ecx, edi
push eax
lea eax, [ebp - 0xe0]
push eax
call fcn.00465a30
cmp byte [ebp - 0xdc], 0
je 0x4c2124
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, esi
jb 0x4c20f0
mov edx, dword [ebp - 0x48]
inc ebx
cmp ebx, dword [ebp - 0x2c]
jb 0x4c20a5
jmp 0x4c2a43
mov edx, dword [ebp + 0xc]
lea eax, [ebp - 0x2c8]
mov ebx, dword [ebp + 8]
mov ecx, ebx
push edx
push 0xfffffffffffffff2
push eax
call fcn.004e0a50
mov edi, eax
cmp dword [ebp - 0x24], 3
mov ecx, ebx
mov byte [ebp - 4], 0xb
push 0
jne 0x4c2167
push 0x2212
lea eax, [ebp - 0x120]
push eax
call fcn.004dd300
mov byte [ebp - 4], 0xc
mov ebx, 1
jmp 0x4c2184
push 0x2211
lea eax, [ebp - 0x108]
push eax
call fcn.004dd300
mov dword [ebp - 4], 0xd
mov ebx, 2
cmp dword [eax + 0x14], 0x10
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x34], ebx
jb 0x4c2192
mov eax, dword [eax]
push ecx
push eax
push edi
call fcn.00433380
push str.Entry_point_has_conflicting
push edi
call fcn.00432f60
cmp dword [ebp - 0x50], 0x10
lea eax, [ebp - 0x64]
push dword [ebp - 0x54]
cmovae eax, dword [ebp - 0x64]
push eax
push edi
call fcn.00433380
push str._location_assignment_at_location
push edi
call fcn.00432f60
mov esi, dword [ebp - 0x10]
add esp, 0x28
mov eax, esi
mov ecx, edi
shr eax, 2
push eax
call fcn.0045d520
push str.__component
push edi
call fcn.00432f60
add esp, 8
and esi, 3
mov ecx, edi
push esi
call fcn.0045d520
mov esi, dword [edi + 0xe8]
test bl, 2
je 0x4c2254
mov edx, dword [ebp - 0xf4]
and ebx, 0xfffffffd
cmp edx, 0x10
jb 0x4c2239
mov ecx, dword [ebp - 0x108]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c222f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c2e2f
push edx
push ecx
call fcn.004e5ccb
add esp, 8
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xf4], 0xf
mov byte [ebp - 0x108], 0
test bl, 1
je 0x4c22ae
mov edx, dword [ebp - 0x10c]
cmp edx, 0x10
jb 0x4c2293
mov ecx, dword [ebp - 0x120]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c2289
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c2e2f
push edx
push ecx
call fcn.004e5ccb
add esp, 8
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x10c], 0xf
mov byte [ebp - 0x120], 0
lea ecx, [ebp - 0x2c8]
call fcn.00461eb0
jmp 0x4c2a45
lea ecx, [ebp - 0x84]
call fcn.0042a610
lea ecx, [ebp - 0xb4]
mov byte [ebp - 4], 0xe
call fcn.0042a610
push dword [ebp - 0x28]
mov ecx, dword [ebp + 8]
mov byte [ebp - 4], 0xf
call fcn.004b7f30
mov esi, dword [eax]
mov esi, dword [esi]
cmp byte [esi + 0xd], 0
jne 0x4c2636
mov edi, dword [ebp - 0x80]
jmp 0x4c2300
mov eax, dword [esi + 0x10]
cmp eax, 0x1e
jne 0x4c253b
mov ebx, dword [esi + 0x20]
movzx eax, bl
xor eax, 0x811c9dc5
mov dword [ebp - 0xb8], ebx
imul ecx, eax, 0x1000193
mov eax, ebx
shr eax, 8
movzx eax, al
xor ecx, eax
mov eax, ebx
imul ecx, ecx, 0x1000193
shr eax, 0x10
movzx eax, al
xor ecx, eax
mov eax, ebx
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
mov dword [ebp - 0x18], ecx
lea ecx, [ebp - 0x84]
push eax
lea eax, [ebp - 0xb8]
push eax
lea eax, [ebp - 0x1a8]
push eax
call fcn.0045c130
mov edx, dword [esi + 0x14]
mov ecx, edi
mov eax, dword [eax + 4]
test eax, eax
cmovne ecx, eax
cmp ecx, edi
jne 0x4c24df
mov eax, dword [edx]
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x38], ebx
imul ebx, dword [ebp - 0x18], 0x1000193
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x38]
push ebx
push eax
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x44], ebx
push eax
call fcn.0045c130
mov edi, dword [ebp - 0x88]
test edi, edi
jne 0x4c24d1
cmp dword [ebp - 0x7c], 0xfffffff
je 0x4c2e34
lea eax, [ebp - 0x80]
mov dword [ebp - 0xd0], eax
push 0x10
mov byte [ebp - 4], 0x10
mov dword [ebp - 0xcc], edi
call fcn.004e5c9b
mov ecx, dword [ebp - 0x38]
mov edi, eax
add esp, 4
mov dword [ebp - 0xcc], edi
mov dword [edi + 8], ecx
mov dword [edi + 0xc], 0
mov ecx, dword [ebp - 0x7c]
fld dword [ebp - 0x84]
add ecx, 1
mov dword [ebp - 0x4c], ecx
fild dword [ebp - 0x4c]
mov byte [ebp - 4], 0x11
jns 0x4c2416
fadd dword [0x5199b0]
fstp dword [ebp - 0x18]
fld dword [ebp - 0x18]
mov eax, dword [ebp - 0x68]
fild dword [ebp - 0x68]
test eax, eax
jns 0x4c242c
fadd dword [0x5199b0]
fstp dword [ebp - 0x18]
fdiv dword [ebp - 0x18]
fcompi st(1)
fstp st(0)
jbe 0x4c246d
lea ecx, [ebp - 0x84]
call fcn.00469db0
push ebx
lea eax, [edi + 8]
push eax
lea eax, [ebp - 0x180]
push eax
lea ecx, [ebp - 0x84]
call fcn.0045c130
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x8c], edx
mov dword [ebp - 0x88], eax
jmp 0x4c2473
mov edx, dword [ebp - 0x8c]
mov ebx, dword [edx + 4]
inc dword [ebp - 0x7c]
mov dword [edi + 4], ebx
mov dword [edi], edx
mov dword [ebx], edi
mov dword [edx + 4], edi
mov eax, dword [ebp - 0x6c]
and eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x78]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0xcc], 0
mov ebx, dword [ecx + eax*8]
cmp ebx, dword [ebp - 0x80]
mov ebx, dword [ebp - 0x18]
jne 0x4c24a9
mov dword [ecx + eax*8], edi
jmp 0x4c24c9
cmp dword [ecx + eax*8], edx
jne 0x4c24c3
mov dword [ecx + eax*8], edi
mov eax, dword [ebp - 0x40]
mov dword [edi + 0xc], eax
mov edi, dword [ebp - 0x80]
mov byte [ebp - 4], 0xf
jmp 0x4c25ea
cmp dword [ecx + eax*8 + 4], ebx
jne 0x4c24cd
mov dword [ecx + eax*8 + 4], edi
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x40]
mov dword [edi + 0xc], eax
mov edi, dword [ebp - 0x80]
jmp 0x4c25ea
mov eax, dword [ecx + 0xc]
cmp eax, dword [edx]
je 0x4c25ea
push dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x778]
push 0xfffffffffffffff2
push eax
call fcn.004e0a50
mov edi, eax
push str.Member_index
push edi
mov byte [ebp - 4], 0x12
call fcn.00432f60
add esp, 8
mov ecx, edi
push dword [esi + 0x20]
call fcn.0045d370
push str._has_conflicting_location_assignments
push edi
call fcn.00432f60
mov esi, dword [edi + 0xe8]
lea ecx, [ebp - 0x778]
add esp, 8
jmp 0x4c2de3
cmp eax, 0x1f
jne 0x4c25ea
mov ebx, dword [esi + 0x20]
movzx eax, bl
xor eax, 0x811c9dc5
mov dword [ebp - 0xbc], ebx
imul ecx, eax, 0x1000193
mov eax, ebx
shr eax, 8
movzx eax, al
xor ecx, eax
mov eax, ebx
imul ecx, ecx, 0x1000193
shr eax, 0x10
movzx eax, al
xor ecx, eax
mov eax, ebx
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
lea ecx, [ebp - 0xb4]
push eax
lea eax, [ebp - 0xbc]
push eax
lea eax, [ebp - 0x188]
push eax
call fcn.0045c130
mov edx, dword [ebp - 0xb0]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
mov eax, dword [esi + 0x14]
cmp edx, dword [ebp - 0xb0]
jne 0x4c25dc
mov edi, dword [eax]
lea ecx, [ebp - 0xb4]
lea eax, [ebp - 0xc0]
mov dword [ebp - 0xc0], ebx
push eax
call fcn.00466c00
mov dword [eax], edi
mov edi, dword [ebp - 0x80]
jmp 0x4c25ea
mov ecx, dword [esi + 0x14]
mov eax, dword [edx + 0xc]
cmp eax, dword [ecx]
jne 0x4c285f
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x4c2614
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x4c2610
lea esp, [esp]
cmp esi, dword [eax + 8]
jne 0x4c2610
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x4c2600
mov esi, eax
jmp 0x4c262c
mov esi, eax
mov ecx, dword [esi]
cmp byte [ecx + 0xd], 0
jne 0x4c262c
mov edi, edi
mov eax, dword [ecx]
mov esi, ecx
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x4c2620
cmp byte [esi + 0xd], 0
je 0x4c2300
mov eax, dword [ebp - 0x10]
mov ecx, 1
mov dword [ebp - 0x20], ecx
mov esi, dword [eax + 0x10]
mov edi, dword [eax + 0xc]
mov eax, esi
sub eax, edi
sar eax, 4
cmp eax, ecx
jbe 0x4c2a2d
mov ebx, dword [ebp + 0x14]
mov dword [ebp - 0x30], 0x10
lea edx, [ecx - 1]
movzx eax, dl
xor eax, 0x811c9dc5
mov dword [ebp - 0xc4], edx
imul ecx, eax, 0x1000193
mov eax, edx
shr eax, 8
movzx eax, al
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
mov dword [ebp - 0x40], ecx
lea ecx, [ebp - 0x84]
push eax
lea eax, [ebp - 0xc4]
push eax
lea eax, [ebp - 0x190]
push eax
call fcn.0045c130
mov edx, dword [ebp - 0x80]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [ebp - 0x80]
je 0x4c2d13
mov eax, dword [edx + 0xc]
sub esi, edi
sar esi, 4
mov dword [ebp - 0x18], eax
cmp esi, dword [ebp - 0x20]
jbe 0x4c2e25
mov eax, dword [ebp - 0x30]
mov esi, dword [ebp + 8]
movzx ecx, word [edi + eax]
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
push dword [eax + ecx*4]
mov ecx, esi
call fcn.004dab90
mov edi, eax
mov dword [ebp - 0x2c], 0
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x4c], edi
push eax
push edi
push esi
call fcn.004c3040
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4c2de8
push edi
push dword [ebp + 8]
call fcn.004c2f10
imul ecx, dword [ebp - 0x40], 0x1000193
add esp, 8
mov edi, eax
mov dword [ebp - 0x3c], esi
mov esi, dword [ebp - 0x20]
lea eax, [ebp - 0x1c]
dec esi
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x1c], esi
push ecx
push eax
lea eax, [ebp - 0x198]
push eax
lea ecx, [ebp - 0xb4]
call fcn.0045c130
cmp dword [eax + 4], 0
je 0x4c2925
imul edi, dword [ebp - 0x40], 0x1000193
lea eax, [ebp - 0x3c]
lea ecx, [ebp - 0xb4]
mov dword [ebp - 0x3c], esi
push edi
push eax
lea eax, [ebp - 0x94]
push eax
call fcn.0045c130
mov esi, dword [ebp - 0x90]
test esi, esi
jne 0x4c291a
cmp dword [ebp - 0xac], 0xfffffff
je 0x4c2e34
lea eax, [ebp - 0xb0]
mov dword [ebp - 0xd8], eax
push 0x10
mov byte [ebp - 4], 0x16
mov dword [ebp - 0xd4], esi
call fcn.004e5c9b
mov ecx, dword [ebp - 0x3c]
mov esi, eax
add esp, 4
mov dword [ebp - 0xd4], esi
mov dword [esi + 8], ecx
mov dword [esi + 0xc], 0
mov ecx, dword [ebp - 0xac]
fld dword [ebp - 0xb4]
add ecx, 1
mov dword [ebp - 0x1c], ecx
fild dword [ebp - 0x1c]
mov byte [ebp - 4], 0x17
jns 0x4c27fe
fadd dword [0x5199b0]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
mov eax, dword [ebp - 0x98]
fild dword [ebp - 0x98]
test eax, eax
jns 0x4c281a
fadd dword [0x5199b0]
fstp dword [ebp - 0x1c]
fdiv dword [ebp - 0x1c]
fcompi st(1)
fstp st(0)
jbe 0x4c28b0
lea ecx, [ebp - 0xb4]
call fcn.00469db0
push edi
lea eax, [esi + 8]
push eax
lea eax, [ebp - 0x1a0]
push eax
lea ecx, [ebp - 0xb4]
call fcn.0045c130
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x90], eax
jmp 0x4c28b6
push dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x868]
push 0xfffffffffffffff2
push eax
call fcn.004e0a50
mov edi, eax
push str.Member_index
push edi
mov byte [ebp - 4], 0x13
call fcn.00432f60
add esp, 8
mov ecx, edi
push dword [esi + 0x20]
call fcn.0045d370
push str._has_conflicting_component_assignments
push edi
call fcn.00432f60
mov esi, dword [edi + 0xe8]
lea ecx, [ebp - 0x868]
add esp, 8
jmp 0x4c2de3
mov ecx, dword [ebp - 0x94]
mov edx, dword [ecx + 4]
inc dword [ebp - 0xac]
mov dword [esi + 4], edx
mov dword [esi], ecx
mov dword [edx], esi
mov dword [ecx + 4], esi
and edi, dword [ebp - 0x9c]
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0xd4], 0
mov edx, dword [eax + edi*8]
cmp edx, dword [ebp - 0xb0]
mov edx, dword [ebp - 0x1c]
jne 0x4c28f5
mov dword [eax + edi*8], esi
jmp 0x4c2912
cmp dword [eax + edi*8], ecx
jne 0x4c290c
mov dword [eax + edi*8], esi
mov edx, dword [esi + 0xc]
mov edi, dword [ebp - 0x44]
mov byte [ebp - 4], 0xf
mov dword [ebp - 0x3c], edx
jmp 0x4c2927
cmp dword [eax + edi*8 + 4], edx
jne 0x4c2916
mov dword [eax + edi*8 + 4], esi
mov byte [ebp - 4], 0xf
mov edx, dword [esi + 0xc]
mov edi, dword [ebp - 0x44]
mov dword [ebp - 0x3c], edx
jmp 0x4c2927
xor edx, edx
mov esi, dword [ebp - 0x18]
lea eax, [esi*4]
mov ecx, eax
mov dword [ebp - 0x1c], eax
cmp ecx, 0x4000
jae 0x4c2a0a
mov eax, dword [ebp - 0x4c]
cmp word [eax + 0x1e], 0x1c
jne 0x4c29c6
lea eax, [edi - 1]
cmp eax, 2
ja 0x4c29c6
mov ecx, dword [ebp - 0x2c]
mov edi, esi
lea eax, [ecx + esi]
cmp esi, eax
jae 0x4c2a0a
mov ebx, dword [ebp - 0x44]
add ebx, edx
lea esp, [esp]
mov esi, edx
cmp edx, ebx
jae 0x4c29b7
jmp 0x4c2980
mov ecx, dword [ebp + 0x14]
lea eax, [esi + edi*4]
mov dword [ebp - 0xc8], eax
lea eax, [ebp - 0xc8]
push eax
lea eax, [ebp - 0x128]
push eax
call fcn.00465a30
cmp byte [ebp - 0x124], 0
je 0x4c2a7c
inc esi
cmp esi, ebx
jb 0x4c2980
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x18]
inc edi
add eax, ecx
cmp edi, eax
jb 0x4c2970
mov ebx, dword [ebp + 0x14]
jmp 0x4c2a0a
add esi, dword [ebp - 0x2c]
shl esi, 2
test edi, edi
je 0x4c29d9
mov esi, dword [ebp - 0x1c]
add ecx, edx
add esi, edi
add esi, edx
mov dword [ebp - 0x28], ecx
cmp ecx, esi
jae 0x4c2a0a
lea eax, [ebp - 0x28]
mov ecx, ebx
push eax
lea eax, [ebp - 0x178]
push eax
call fcn.00465a30
cmp byte [ebp - 0x174], 0
je 0x4c2c12
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
cmp eax, esi
jb 0x4c29e0
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x20]
add dword [ebp - 0x30], 0x10
inc ecx
mov dword [ebp - 0x20], ecx
mov esi, dword [eax + 0x10]
mov edi, dword [eax + 0xc]
mov eax, esi
sub eax, edi
sar eax, 4
cmp ecx, eax
jb 0x4c2660
lea ecx, [ebp - 0xb4]
call fcn.0042aa90
lea ecx, [ebp - 0x84]
call fcn.0042aa90
xor esi, esi
mov edx, dword [ebp - 0x50]
cmp edx, 0x10
jb 0x4c1deb
mov ecx, dword [ebp - 0x64]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c2e03
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c2e3e
jmp 0x4c2e03
mov edx, dword [ebp + 0xc]
lea eax, [ebp - 0x958]
mov ebx, dword [ebp + 8]
mov ecx, ebx
push edx
push 0xfffffffffffffff2
push eax
call fcn.004e0a50
mov dword [ebp + 0xc], eax
cmp dword [ebp - 0x24], 3
mov ecx, ebx
mov byte [ebp - 4], 0x18
push 0
jne 0x4c2ac0
push 0x2212
lea eax, [ebp - 0x158]
push eax
call fcn.004dd300
mov byte [ebp - 4], 0x19
mov ebx, 4
jmp 0x4c2add
push 0x2211
lea eax, [ebp - 0x140]
push eax
call fcn.004dd300
mov dword [ebp - 4], 0x1a
mov ebx, 8
cmp dword [eax + 0x14], 0x10
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x34], ebx
jb 0x4c2aeb
mov eax, dword [eax]
push ecx
push eax
push dword [ebp + 0xc]
call fcn.00433380
push str.Entry_point_has_conflicting
push dword [ebp + 0xc]
call fcn.00432f60
cmp dword [ebp - 0x50], 0x10
lea eax, [ebp - 0x64]
push dword [ebp - 0x54]
cmovae eax, dword [ebp - 0x64]
push eax
push dword [ebp + 0xc]
call fcn.00433380
push str._location_assignment_at_location
push dword [ebp + 0xc]
call fcn.00432f60
add esp, 0x28
push edi
mov edi, dword [ebp + 0xc]
mov ecx, edi
call fcn.0045d520
push str.__component
push edi
call fcn.00432f60
add esp, 8
mov ecx, edi
push esi
call fcn.0045d520
mov esi, dword [edi + 0xe8]
test bl, 8
je 0x4c2bad
mov edx, dword [ebp - 0x12c]
and ebx, 0xfffffff7
cmp edx, 0x10
jb 0x4c2b92
mov ecx, dword [ebp - 0x140]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c2b88
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c2e43
push edx
push ecx
call fcn.004e5ccb
add esp, 8
mov dword [ebp - 0x130], 0
mov dword [ebp - 0x12c], 0xf
mov byte [ebp - 0x140], 0
test bl, 4
je 0x4c2c07
mov edx, dword [ebp - 0x144]
cmp edx, 0x10
jb 0x4c2bec
mov ecx, dword [ebp - 0x158]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c2be2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c2e43
push edx
push ecx
call fcn.004e5ccb
add esp, 8
mov dword [ebp - 0x148], 0
mov dword [ebp - 0x144], 0xf
mov byte [ebp - 0x158], 0
lea ecx, [ebp - 0x958]
jmp 0x4c2de3
mov edx, dword [ebp + 0xc]
lea eax, [ebp - 0xa48]
mov ebx, dword [ebp + 8]
mov ecx, ebx
push edx
push 0xfffffffffffffff2
push eax
call fcn.004e0a50
mov edi, eax
cmp dword [ebp - 0x24], 3
mov ecx, ebx
mov byte [ebp - 4], 0x1b
push 0
jne 0x4c2c55
push 0x2212
lea eax, [ebp - 0x1d8]
push eax
call fcn.004dd300
mov byte [ebp - 4], 0x1c
mov ebx, 0x10
jmp 0x4c2c72
push 0x2211
lea eax, [ebp - 0x1c0]
push eax
call fcn.004dd300
mov dword [ebp - 4], 0x1d
mov ebx, 0x20
cmp dword [eax + 0x14], 0x10
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x34], ebx
jb 0x4c2c80
mov eax, dword [eax]
push ecx
push eax
push edi
call fcn.00433380
push str.Entry_point_has_conflicting
push edi
call fcn.00432f60
cmp dword [ebp - 0x50], 0x10
lea eax, [ebp - 0x64]
push dword [ebp - 0x54]
cmovae eax, dword [ebp - 0x64]
push eax
push edi
call fcn.00433380
push str._location_assignment_at_location
push edi
call fcn.00432f60
mov esi, dword [ebp - 0x28]
add esp, 0x28
mov eax, esi
mov ecx, edi
shr eax, 2
push eax
call fcn.0045d520
push str.__component
push edi
call fcn.00432f60
add esp, 8
and esi, 3
mov ecx, edi
push esi
call fcn.0045d520
mov esi, dword [edi + 0xe8]
test bl, 0x20
je 0x4c2cf8
lea ecx, [ebp - 0x1c0]
and ebx, 0xffffffdf
call fcn.004016b0
test bl, 0x10
je 0x4c2d08
lea ecx, [ebp - 0x1d8]
call fcn.004016b0
lea ecx, [ebp - 0xa48]
jmp 0x4c2de3
push dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0xb38]
push 0xfffffffffffffff2
push eax
call fcn.004e0a50
mov esi, eax
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x170]
push 0
push 0x1337
push eax
mov byte [ebp - 4], 0x14
call fcn.004dd300
cmp dword [eax + 0x14], 0x10
mov ecx, dword [eax + 0x10]
mov byte [ebp - 4], 0x15
jb 0x4c2d52
mov eax, dword [eax]
push ecx
push eax
push esi
call fcn.00433380
push str.Member_index
push esi
call fcn.00432f60
mov eax, dword [ebp - 0x20]
add esp, 0x14
dec eax
mov ecx, esi
push eax
call fcn.0045d520
push str._is_missing_a_location_assignment
push esi
call fcn.00432f60
mov edx, dword [ebp - 0x15c]
add esp, 8
mov esi, dword [esi + 0xe8]
cmp edx, 0x10
jb 0x4c2dc2
mov ecx, dword [ebp - 0x170]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c2db8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c2e48
push edx
push ecx
call fcn.004e5ccb
add esp, 8
mov dword [ebp - 0x160], 0
lea ecx, [ebp - 0xb38]
mov dword [ebp - 0x15c], 0xf
mov byte [ebp - 0x170], 0
call fcn.00461eb0
lea ecx, [ebp - 0xb4]
call fcn.0042aa90
lea ecx, [ebp - 0x84]
call fcn.0042aa90
jmp 0x4c2a45
push edx
push ecx
call fcn.004e5ccb
mov ecx, dword [ebp - 0xc]
add esp, 8
mov eax, esi
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.004ea5cf
call fcn.00461820
call fcn.00461820
call fcn.004ea5cf
push str.unordered_map_set_too_long
call fcn.004e3511
call fcn.004ea5cf
call fcn.004ea5cf
call fcn.004ea5cf
lea ecx, [ecx]
invalid