Function at 0x4c1a20
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5158b2
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 0x4c2e35
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 0x4c2e35
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 0x4c2e35
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.004b7f60
mov eax, dword [eax]
mov eax, dword [eax]
cmp byte [eax + 0xd], bl
jne 0x4c1c1c
mov ecx, dword [eax + 0x10]
cmp ecx, 0x1e
jne 0x4c1b2a
test bh, bh
je 0x4c1b1b
mov ecx, dword [eax + 0x14]
mov edx, dword [ebp - 0x38]
cmp dword [ecx], edx
jne 0x4c1c5c
mov ecx, dword [eax + 0x14]
mov bh, 1
mov ecx, dword [ecx]
mov dword [ebp - 0x38], ecx
jmp 0x4c1bd6
cmp ecx, 0x1f
jne 0x4c1b50
test bl, bl
je 0x4c1b41
mov ecx, dword [eax + 0x14]
mov edx, dword [ebp - 0x20]
cmp dword [ecx], edx
jne 0x4c1c96
mov ecx, dword [eax + 0x14]
mov bl, 1
mov ecx, dword [ecx]
mov dword [ebp - 0x20], ecx
jmp 0x4c1bd6
cmp ecx, 0x20
jne 0x4c1b8a
cmp dword [ebp - 0x24], 3
jne 0x4c1cf2
cmp esi, 4
jne 0x4c1cf2
cmp byte [ebp - 0x12], 0
je 0x4c1b7c
mov ecx, dword [eax + 0x14]
mov edx, dword [ebp - 0x30]
cmp dword [ecx], edx
jne 0x4c1cd0
mov ecx, dword [eax + 0x14]
mov byte [ebp - 0x12], 1
mov ecx, dword [ecx]
mov dword [ebp - 0x30], ecx
jmp 0x4c1bd6
cmp ecx, 0xb
je 0x4c1e4f
cmp ecx, 0xf
jne 0x4c1b9e
mov byte [ebp - 0x11], 1
jmp 0x4c1bd6
cmp ecx, 0x1499
jne 0x4c1bac
mov byte [ebp - 0x14], 1
jmp 0x4c1bd6
cmp ecx, 0x14a5
jne 0x4c1bd6
cmp esi, 4
jne 0x4c1d92
mov ecx, dword [ebp - 0x10]
movzx ecx, word [ecx + 0x1e]
cmp ecx, 0x1c
je 0x4c1bd2
cmp ecx, 0x1d
jne 0x4c1d2c
mov byte [ebp - 0x13], 1
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
je 0x4c1bfc
mov ecx, dword [eax + 4]
cmp byte [ecx + 0xd], 0
jne 0x4c1bf8
cmp eax, dword [ecx + 8]
jne 0x4c1bf8
mov eax, ecx
mov ecx, dword [ecx + 4]
cmp byte [ecx + 0xd], 0
je 0x4c1be8
mov eax, ecx
jmp 0x4c1c12
mov eax, ecx
mov edx, dword [eax]
cmp byte [edx + 0xd], 0
jne 0x4c1c12
mov ecx, dword [edx]
mov eax, edx
mov edx, ecx
cmp byte [ecx + 0xd], 0
je 0x4c1c06
cmp byte [eax + 0xd], 0
je 0x4c1b01
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 0x4c2e35
movzx ecx, word [ecx]
mov eax, dword [edx]
mov eax, dword [eax + ecx*4]
cmp eax, 0x1494
ja case.default.0x4c1c55
je 0x4c1e70
dec eax
cmp eax, 3
ja case.default.0x4c1c55
jmp dword [eax*4 + 0x4c2e60]
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.00432f90
mov esi, dword [esi + 0xe8]
lea ecx, [ebp - 0x4a8]
add esp, 8
jmp 0x4c1df6
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.00432f90
mov esi, dword [esi + 0xe8]
lea ecx, [ebp - 0x598]
add esp, 8
jmp 0x4c1df6
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 0x4c1d12
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.00432f90
mov esi, dword [esi + 0xe8]
lea ecx, [ebp - 0x3b8]
add esp, 8
jmp 0x4c1df6
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.00470920
mov esi, eax
push str.PerVertexKHR_must_be_declared_as_arrays
push esi
call fcn.00432f90
mov esi, dword [esi + 0xe8]
lea ecx, [ebp - 0x120]
add esp, 8
call fcn.004016b0
lea ecx, [ebp - 0x688]
jmp 0x4c1df6
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.00470920
mov esi, eax
push str.PerVertexKHR_can_only_be_applied_to_Fragment_Execution_Models
push esi
call fcn.00432f90
mov esi, dword [esi + 0xe8]
lea ecx, [ebp - 0x108]
add esp, 8
call fcn.004016b0
lea ecx, [ebp - 0x2c8]
call fcn.00461de0
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 0x4c1e2a
cmp dword [ebp - 0x24], 3
je case.default.0x4c1c55
cmp byte [ebp - 0x11], 0
jmp 0x4c1e7a
cmp dword [ebp - 0x24], 3
setne al
test al, al
jne 0x4c1e7c
mov eax, dword [ebp - 0x10]
movzx esi, word [eax + 0x1e]
cmp esi, 0x1e
jne 0x4c1ec4
mov ecx, dword [ebp + 8]
push 0xb
push dword [ebp - 0x28]
call fcn.004c2e70
test al, al
je 0x4c1ec4
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.0x4c1c55
cmp byte [ebp - 0x13], 0
je case.default.0x4c1c55
jmp 0x4c1e7c
cmp dword [ebp - 0x24], 3
jne case.default.0x4c1c55
cmp byte [ebp - 0x14], 0
jne case.default.0x4c1c55
mov eax, dword [ebp - 0x10]
movzx eax, word [eax + 0x1e]
cmp eax, 0x1c
je 0x4c1e8d
cmp eax, 0x1d
jne case.default.0x4c1c55
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 0x4c2e35
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 0x4c1e31
mov ecx, dword [ebp + 8]
push 2
push dword [ebp - 0x28]
call fcn.004c2e70
test bh, bh
jne 0x4c1fa1
test al, al
jne 0x4c1fa1
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 0x4c1f2b
mov eax, dword [eax]
push ecx
push eax
push esi
call fcn.004333b0
push str.Variable_must_be_decorated_with_a_location
push esi
call fcn.00432f90
mov edx, dword [ebp - 0xdc]
add esp, 0x14
mov esi, dword [esi + 0xe8]
cmp edx, 0x10
jb 0x4c1f81
mov ecx, dword [ebp - 0xf0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c1f77
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c2e30
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 0x4c1df0
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 0x4c1fd0
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x64]
call fcn.004019c0
mov dword [ebp - 4], 0xa
test bh, bh
je 0x4c22ce
mov esi, dword [ebp - 0x10]
mov edi, 1
mov dword [ebp - 0x2c], edi
cmp word [esi + 0x1e], 0x1c
jne 0x4c2077
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
sub eax, ecx
sar eax, 4
cmp eax, 2
jbe 0x4c2e35
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 0x4c2044
test dl, dl
jne 0x4c204c
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 0x4c2e3a
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 0x4c207a
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x48]
mov dword [ebp - 0x48], 0
push eax
push esi
push ebx
call fcn.004c3050
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4c2a55
push dword [ebp - 0x10]
push ebx
call fcn.004c2f20
add esp, 8
mov dword [ebp - 0x18], eax
xor ebx, ebx
test edi, edi
je 0x4c2a53
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 0x4c2a53
lea esi, [eax + edx]
mov eax, dword [ebp - 0x18]
shl esi, 2
test eax, eax
je 0x4c20e8
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 0x4c20f9
cmp dword [ebp - 0x30], 1
cmove edi, dword [ebp + 0x18]
mov dword [ebp - 0x10], ecx
cmp ecx, esi
jae 0x4c2129
lea eax, [ebp - 0x10]
mov ecx, edi
push eax
lea eax, [ebp - 0xe0]
push eax
call fcn.00465990
cmp byte [ebp - 0xdc], 0
je 0x4c2134
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, esi
jb 0x4c2100
mov edx, dword [ebp - 0x48]
inc ebx
cmp ebx, dword [ebp - 0x2c]
jb 0x4c20b5
jmp 0x4c2a53
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 0x4c2177
push 0x2212
lea eax, [ebp - 0x120]
push eax
call fcn.004dd300
mov byte [ebp - 4], 0xc
mov ebx, 1
jmp 0x4c2194
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 0x4c21a2
mov eax, dword [eax]
push ecx
push eax
push edi
call fcn.004333b0
push str.Entry_point_has_conflicting
push edi
call fcn.00432f90
cmp dword [ebp - 0x50], 0x10
lea eax, [ebp - 0x64]
push dword [ebp - 0x54]
cmovae eax, dword [ebp - 0x64]
push eax
push edi
call fcn.004333b0
push str._location_assignment_at_location
push edi
call fcn.00432f90
mov esi, dword [ebp - 0x10]
add esp, 0x28
mov eax, esi
mov ecx, edi
shr eax, 2
push eax
call fcn.0045d450
push str.__component
push edi
call fcn.00432f90
add esp, 8
and esi, 3
mov ecx, edi
push esi
call fcn.0045d450
mov esi, dword [edi + 0xe8]
test bl, 2
je 0x4c2264
mov edx, dword [ebp - 0xf4]
and ebx, 0xfffffffd
cmp edx, 0x10
jb 0x4c2249
mov ecx, dword [ebp - 0x108]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c223f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c2e3f
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 0x4c22be
mov edx, dword [ebp - 0x10c]
cmp edx, 0x10
jb 0x4c22a3
mov ecx, dword [ebp - 0x120]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c2299
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c2e3f
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.00461de0
jmp 0x4c2a55
lea ecx, [ebp - 0x84]
call fcn.0042a630
lea ecx, [ebp - 0xb4]
mov byte [ebp - 4], 0xe
call fcn.0042a630
push dword [ebp - 0x28]
mov ecx, dword [ebp + 8]
mov byte [ebp - 4], 0xf
call fcn.004b7f60
mov esi, dword [eax]
mov esi, dword [esi]
cmp byte [esi + 0xd], 0
jne 0x4c2646
mov edi, dword [ebp - 0x80]
jmp 0x4c2310
mov eax, dword [esi + 0x10]
cmp eax, 0x1e
jne 0x4c254b
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.0045c060
mov edx, dword [esi + 0x14]
mov ecx, edi
mov eax, dword [eax + 4]
test eax, eax
cmovne ecx, eax
cmp ecx, edi
jne 0x4c24ef
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.0045c060
mov edi, dword [ebp - 0x88]
test edi, edi
jne 0x4c24e1
cmp dword [ebp - 0x7c], 0xfffffff
je 0x4c2e44
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 0x4c2426
fadd dword [0x51a9b0]
fstp dword [ebp - 0x18]
fld dword [ebp - 0x18]
mov eax, dword [ebp - 0x68]
fild dword [ebp - 0x68]
test eax, eax
jns 0x4c243c
fadd dword [0x51a9b0]
fstp dword [ebp - 0x18]
fdiv dword [ebp - 0x18]
fcompi st(1)
fstp st(0)
jbe 0x4c247d
lea ecx, [ebp - 0x84]
call fcn.00469d00
push ebx
lea eax, [edi + 8]
push eax
lea eax, [ebp - 0x180]
push eax
lea ecx, [ebp - 0x84]
call fcn.0045c060
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x8c], edx
mov dword [ebp - 0x88], eax
jmp 0x4c2483
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 0x4c24b9
mov dword [ecx + eax*8], edi
jmp 0x4c24d9
cmp dword [ecx + eax*8], edx
jne 0x4c24d3
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 0x4c25fa
cmp dword [ecx + eax*8 + 4], ebx
jne 0x4c24dd
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 0x4c25fa
mov eax, dword [ecx + 0xc]
cmp eax, dword [edx]
je 0x4c25fa
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.00432f90
add esp, 8
mov ecx, edi
push dword [esi + 0x20]
call fcn.0045d2a0
push str._has_conflicting_location_assignments
push edi
call fcn.00432f90
mov esi, dword [edi + 0xe8]
lea ecx, [ebp - 0x778]
add esp, 8
jmp 0x4c2df3
cmp eax, 0x1f
jne 0x4c25fa
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.0045c060
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 0x4c25ec
mov edi, dword [eax]
lea ecx, [ebp - 0xb4]
lea eax, [ebp - 0xc0]
mov dword [ebp - 0xc0], ebx
push eax
call fcn.00466b60
mov dword [eax], edi
mov edi, dword [ebp - 0x80]
jmp 0x4c25fa
mov ecx, dword [esi + 0x14]
mov eax, dword [edx + 0xc]
cmp eax, dword [ecx]
jne 0x4c286f
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x4c2624
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x4c2620
lea esp, [esp]
cmp esi, dword [eax + 8]
jne 0x4c2620
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x4c2610
mov esi, eax
jmp 0x4c263c
mov esi, eax
mov ecx, dword [esi]
cmp byte [ecx + 0xd], 0
jne 0x4c263c
mov edi, edi
mov eax, dword [ecx]
mov esi, ecx
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x4c2630
cmp byte [esi + 0xd], 0
je 0x4c2310
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 0x4c2a3d
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.0045c060
mov edx, dword [ebp - 0x80]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [ebp - 0x80]
je 0x4c2d23
mov eax, dword [edx + 0xc]
sub esi, edi
sar esi, 4
mov dword [ebp - 0x18], eax
cmp esi, dword [ebp - 0x20]
jbe 0x4c2e35
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.004c3050
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4c2df8
push edi
push dword [ebp + 8]
call fcn.004c2f20
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.0045c060
cmp dword [eax + 4], 0
je 0x4c2935
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.0045c060
mov esi, dword [ebp - 0x90]
test esi, esi
jne 0x4c292a
cmp dword [ebp - 0xac], 0xfffffff
je 0x4c2e44
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 0x4c280e
fadd dword [0x51a9b0]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
mov eax, dword [ebp - 0x98]
fild dword [ebp - 0x98]
test eax, eax
jns 0x4c282a
fadd dword [0x51a9b0]
fstp dword [ebp - 0x1c]
fdiv dword [ebp - 0x1c]
fcompi st(1)
fstp st(0)
jbe 0x4c28c0
lea ecx, [ebp - 0xb4]
call fcn.00469d00
push edi
lea eax, [esi + 8]
push eax
lea eax, [ebp - 0x1a0]
push eax
lea ecx, [ebp - 0xb4]
call fcn.0045c060
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x90], eax
jmp 0x4c28c6
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.00432f90
add esp, 8
mov ecx, edi
push dword [esi + 0x20]
call fcn.0045d2a0
push str._has_conflicting_component_assignments
push edi
call fcn.00432f90
mov esi, dword [edi + 0xe8]
lea ecx, [ebp - 0x868]
add esp, 8
jmp 0x4c2df3
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 0x4c2905
mov dword [eax + edi*8], esi
jmp 0x4c2922
cmp dword [eax + edi*8], ecx
jne 0x4c291c
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 0x4c2937
cmp dword [eax + edi*8 + 4], edx
jne 0x4c2926
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 0x4c2937
xor edx, edx
mov esi, dword [ebp - 0x18]
lea eax, [esi*4]
mov ecx, eax
mov dword [ebp - 0x1c], eax
cmp ecx, 0x4000
jae 0x4c2a1a
mov eax, dword [ebp - 0x4c]
cmp word [eax + 0x1e], 0x1c
jne 0x4c29d6
lea eax, [edi - 1]
cmp eax, 2
ja 0x4c29d6
mov ecx, dword [ebp - 0x2c]
mov edi, esi
lea eax, [ecx + esi]
cmp esi, eax
jae 0x4c2a1a
mov ebx, dword [ebp - 0x44]
add ebx, edx
lea esp, [esp]
mov esi, edx
cmp edx, ebx
jae 0x4c29c7
jmp 0x4c2990
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.00465990
cmp byte [ebp - 0x124], 0
je 0x4c2a8c
inc esi
cmp esi, ebx
jb 0x4c2990
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x18]
inc edi
add eax, ecx
cmp edi, eax
jb 0x4c2980
mov ebx, dword [ebp + 0x14]
jmp 0x4c2a1a
add esi, dword [ebp - 0x2c]
shl esi, 2
test edi, edi
je 0x4c29e9
mov esi, dword [ebp - 0x1c]
add ecx, edx
add esi, edi
add esi, edx
mov dword [ebp - 0x28], ecx
cmp ecx, esi
jae 0x4c2a1a
lea eax, [ebp - 0x28]
mov ecx, ebx
push eax
lea eax, [ebp - 0x178]
push eax
call fcn.00465990
cmp byte [ebp - 0x174], 0
je 0x4c2c22
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
cmp eax, esi
jb 0x4c29f0
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 0x4c2670
lea ecx, [ebp - 0xb4]
call fcn.0042aab0
lea ecx, [ebp - 0x84]
call fcn.0042aab0
xor esi, esi
mov edx, dword [ebp - 0x50]
cmp edx, 0x10
jb 0x4c1dfb
mov ecx, dword [ebp - 0x64]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c2e13
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c2e4e
jmp 0x4c2e13
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 0x4c2ad0
push 0x2212
lea eax, [ebp - 0x158]
push eax
call fcn.004dd300
mov byte [ebp - 4], 0x19
mov ebx, 4
jmp 0x4c2aed
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 0x4c2afb
mov eax, dword [eax]
push ecx
push eax
push dword [ebp + 0xc]
call fcn.004333b0
push str.Entry_point_has_conflicting
push dword [ebp + 0xc]
call fcn.00432f90
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.004333b0
push str._location_assignment_at_location
push dword [ebp + 0xc]
call fcn.00432f90
add esp, 0x28
push edi
mov edi, dword [ebp + 0xc]
mov ecx, edi
call fcn.0045d450
push str.__component
push edi
call fcn.00432f90
add esp, 8
mov ecx, edi
push esi
call fcn.0045d450
mov esi, dword [edi + 0xe8]
test bl, 8
je 0x4c2bbd
mov edx, dword [ebp - 0x12c]
and ebx, 0xfffffff7
cmp edx, 0x10
jb 0x4c2ba2
mov ecx, dword [ebp - 0x140]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c2b98
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c2e53
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 0x4c2c17
mov edx, dword [ebp - 0x144]
cmp edx, 0x10
jb 0x4c2bfc
mov ecx, dword [ebp - 0x158]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c2bf2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c2e53
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 0x4c2df3
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 0x4c2c65
push 0x2212
lea eax, [ebp - 0x1d8]
push eax
call fcn.004dd300
mov byte [ebp - 4], 0x1c
mov ebx, 0x10
jmp 0x4c2c82
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 0x4c2c90
mov eax, dword [eax]
push ecx
push eax
push edi
call fcn.004333b0
push str.Entry_point_has_conflicting
push edi
call fcn.00432f90
cmp dword [ebp - 0x50], 0x10
lea eax, [ebp - 0x64]
push dword [ebp - 0x54]
cmovae eax, dword [ebp - 0x64]
push eax
push edi
call fcn.004333b0
push str._location_assignment_at_location
push edi
call fcn.00432f90
mov esi, dword [ebp - 0x28]
add esp, 0x28
mov eax, esi
mov ecx, edi
shr eax, 2
push eax
call fcn.0045d450
push str.__component
push edi
call fcn.00432f90
add esp, 8
and esi, 3
mov ecx, edi
push esi
call fcn.0045d450
mov esi, dword [edi + 0xe8]
test bl, 0x20
je 0x4c2d08
lea ecx, [ebp - 0x1c0]
and ebx, 0xffffffdf
call fcn.004016b0
test bl, 0x10
je 0x4c2d18
lea ecx, [ebp - 0x1d8]
call fcn.004016b0
lea ecx, [ebp - 0xa48]
jmp 0x4c2df3
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 0x4c2d62
mov eax, dword [eax]
push ecx
push eax
push esi
call fcn.004333b0
push str.Member_index
push esi
call fcn.00432f90
mov eax, dword [ebp - 0x20]
add esp, 0x14
dec eax
mov ecx, esi
push eax
call fcn.0045d450
push str._is_missing_a_location_assignment
push esi
call fcn.00432f90
mov edx, dword [ebp - 0x15c]
add esp, 8
mov esi, dword [esi + 0xe8]
cmp edx, 0x10
jb 0x4c2dd2
mov ecx, dword [ebp - 0x170]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c2dc8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c2e58
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.00461de0
lea ecx, [ebp - 0xb4]
call fcn.0042aab0
lea ecx, [ebp - 0x84]
call fcn.0042aab0
jmp 0x4c2a55
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.00461750
call fcn.00461750
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]
push cs
push ds
dec esp
add byte [edi], dl
push ds
dec esp
add byte [ebx], ah
push ds
dec esp
add byte [edx + 0x1e], ah
dec esp
add byte [ebp - 0x75], dl
push ebp
mov ebp, esp