Function at 0x4d3480
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5298c9
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2ec
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x3c], 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 0x4d46a7
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 0x4d46a7
mov ecx, dword [edi]
movzx eax, word [edx + 0x20]
mov ebx, dword [ebp + 8]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x2c], eax
movzx eax, word [edx]
push dword [ecx + eax*4]
mov ecx, ebx
call fcn.004eebd0
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0xc]
sub ecx, edx
sar ecx, 4
cmp ecx, 2
jbe 0x4d46a7
movzx ecx, word [edx + 0x20]
mov eax, dword [eax]
mov eax, dword [eax + ecx*4]
mov ecx, ebx
push eax
mov dword [ebp - 0x14], eax
call fcn.004eebd0
push dword [edi + 0x28]
mov ecx, dword [ebp + 8]
xor bh, bh
mov dword [ebp - 0x10], eax
xor bl, bl
mov byte [ebp - 0x15], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], 0
mov byte [ebp - 0x25], 0
mov dword [ebp - 0x24], 0
mov byte [ebp - 0x16], bh
call fcn.004c8d30
mov eax, dword [eax]
mov eax, dword [eax]
cmp byte [eax + 0xd], bl
jne 0x4d3639
mov ecx, dword [eax + 0x10]
cmp ecx, 0x1e
jne 0x4d3576
mov ecx, dword [eax + 0x14]
mov byte [ebp - 0x15], 1
mov ecx, dword [ecx]
mov dword [ebp - 0x1c], ecx
jmp 0x4d35f3
cmp ecx, 0x1f
jne 0x4d3585
mov ecx, dword [eax + 0x14]
mov ecx, dword [ecx]
mov dword [ebp - 0x20], ecx
jmp 0x4d35f3
cmp ecx, 0x20
jne 0x4d35ab
cmp dword [ebp - 0x2c], 3
jne 0x4d3679
cmp esi, 4
jne 0x4d3679
mov ecx, dword [eax + 0x14]
mov byte [ebp - 0x25], 1
mov ecx, dword [ecx]
mov dword [ebp - 0x24], ecx
jmp 0x4d35f3
cmp ecx, 0xb
je 0x4d379e
cmp ecx, 0xf
jne 0x4d35bd
mov bh, 1
jmp 0x4d35f3
cmp ecx, 0x1499
jne 0x4d35cb
mov byte [ebp - 0x16], 1
jmp 0x4d35f3
cmp ecx, 0x14a5
jne 0x4d35f3
cmp esi, 4
jne 0x4d3707
mov ecx, dword [ebp - 0x10]
movzx ecx, word [ecx + 0x1e]
cmp ecx, 0x1c
je 0x4d35f1
cmp ecx, 0x1d
jne 0x4d36c6
mov bl, 1
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
je 0x4d3619
mov ecx, dword [eax + 4]
cmp byte [ecx + 0xd], 0
jne 0x4d3615
cmp eax, dword [ecx + 8]
jne 0x4d3615
mov eax, ecx
mov ecx, dword [ecx + 4]
cmp byte [ecx + 0xd], 0
je 0x4d3605
mov eax, ecx
jmp 0x4d362f
mov eax, ecx
mov edx, dword [eax]
cmp byte [edx + 0xd], 0
jne 0x4d362f
mov ecx, dword [edx]
mov eax, edx
mov edx, ecx
cmp byte [ecx + 0xd], 0
je 0x4d3623
cmp byte [eax + 0xd], 0
je 0x4d3560
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 0x4d46a7
movzx ecx, word [ecx]
mov eax, dword [edx]
mov eax, dword [eax + ecx*4]
cmp eax, 0x1494
ja case.default.0x4d3672
je 0x4d37bd
dec eax
cmp eax, 3
ja case.default.0x4d3672
jmp dword [eax*4 + 0x4d46cc]
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x208]
push edi
push 0xfffffffffffffff2
push eax
call fcn.004f5350
mov esi, eax
push str.Index_can_only_be_applied_to_Fragment_output_variables
push esi
mov dword [ebp - 4], 0
call fcn.00438a80
mov esi, dword [esi + 0xe8]
add esp, 8
lea ecx, [ebp - 0x208]
call fcn.0046b990
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
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x208]
push edi
push 0xfffffffffffffff2
push eax
call fcn.004f5350
mov esi, eax
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x60]
push 0
push 0x1a7a
push eax
mov dword [ebp - 4], 3
call fcn.004f1460
push eax
mov ecx, esi
mov byte [ebp - 4], 4
call fcn.0047d670
push str.PerVertexKHR_must_be_declared_as_arrays
jmp 0x4d3746
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x208]
push edi
push 0xfffffffffffffff2
push eax
call fcn.004f5350
mov esi, eax
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x60]
push 0
push 0x1a79
push eax
mov dword [ebp - 4], 1
call fcn.004f1460
push eax
mov ecx, esi
mov byte [ebp - 4], 2
call fcn.0047d670
push str.PerVertexKHR_can_only_be_applied_to_Fragment_Execution_Models
mov esi, eax
push esi
call fcn.00438a80
mov esi, dword [esi + 0xe8]
lea ecx, [ebp - 0x60]
add esp, 8
call fcn.00401760
jmp 0x4d36a8
test bh, bh
sete al
jmp 0x4d377c
cmp dword [ebp - 0x2c], 3
je case.default.0x4d3672
test bh, bh
jmp 0x4d37c7
cmp dword [ebp - 0x2c], 3
setne al
test al, al
jne 0x4d37c9
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
movzx esi, word [eax + 0x1e]
cmp esi, 0x1e
jne 0x4d3805
mov ecx, dword [ebp + 8]
push 0xb
push ebx
call fcn.00482220
test al, al
je 0x4d3805
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 - 0x2c], 3
je case.default.0x4d3672
test bl, bl
je case.default.0x4d3672
jmp 0x4d37c9
cmp dword [ebp - 0x2c], 3
jne case.default.0x4d3672
cmp byte [ebp - 0x16], 0
jne case.default.0x4d3672
mov ebx, dword [ebp - 0x10]
movzx eax, word [ebx + 0x1e]
cmp eax, 0x1c
je 0x4d37da
cmp eax, 0x1d
jne case.default.0x4d3672
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
sub eax, ecx
sar eax, 4
cmp eax, 1
jbe 0x4d46a7
movzx ecx, word [ecx + 0x10]
mov eax, dword [ebx]
mov ebx, dword [eax + ecx*4]
mov ecx, dword [ebp + 8]
push ebx
call fcn.004eebd0
mov dword [ebp - 0x10], eax
jmp 0x4d3786
mov ecx, dword [ebp + 8]
push 2
push ebx
call fcn.00482220
cmp byte [ebp - 0x15], 0
jne 0x4d38d0
test al, al
jne 0x4d38d0
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x208]
xor ebx, ebx
cmp esi, 0x1e
push edi
push 0xfffffffffffffff2
sete bl
push eax
add ebx, 0x1334
call fcn.004f5350
mov esi, eax
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x60]
push 0
push ebx
push eax
mov dword [ebp - 4], 5
call fcn.004f1460
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
mov byte [ebp - 4], 6
jbe 0x4d3869
mov eax, dword [eax]
push ecx
push eax
push esi
call fcn.00438fa0
push str.Variable_must_be_decorated_with_a_location
push esi
call fcn.00438a80
mov ecx, dword [ebp - 0x4c]
add esp, 0x14
mov esi, dword [esi + 0xe8]
cmp ecx, 0xf
jbe 0x4d38b9
mov edx, dword [ebp - 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4d38af
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4d46a2
push ecx
push edx
call fcn.004fa253
add esp, 8
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0xf
mov byte [ebp - 0x60], 0
jmp 0x4d36a8
cmp dword [ebp - 0x2c], 3
mov eax, str.input
mov edx, str.output
cmovne edx, eax
xor eax, eax
mov ecx, edx
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], eax
lea esi, [ecx + 1]
mov dword [ebp - 0x74], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4d3900
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x88]
call fcn.004011f0
cmp byte [ebp - 0x15], 0
mov dword [ebp - 4], 7
je 0x4d3bec
mov ebx, dword [ebp - 0x10]
mov edi, 1
mov dword [ebp - 0x30], edi
cmp word [ebx + 0x1e], 0x1c
jne 0x4d39a6
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
sub eax, ecx
sar eax, 4
cmp eax, 2
jbe 0x4d46a7
movzx ecx, word [ecx + 0x20]
mov eax, dword [ebx]
mov esi, dword [ebp + 8]
push dword [eax + ecx*4]
lea eax, [ebp - 0x54]
mov ecx, esi
push eax
call fcn.004eeae0
cmp byte [eax + 8], 0
mov edi, dword [eax]
mov dl, byte [eax + 4]
mov dword [ebp - 0x30], edi
je 0x4d3976
test dl, dl
jne 0x4d397e
mov edi, 1
mov dword [ebp - 0x30], edi
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
sub eax, ecx
sar eax, 4
cmp eax, 1
jbe 0x4d46ac
movzx ecx, word [ecx + 0x10]
mov eax, dword [ebx]
push dword [eax + ecx*4]
mov ecx, esi
call fcn.004eebd0
mov ebx, eax
jmp 0x4d39a9
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x38]
mov dword [ebp - 0x38], 0
push eax
push ebx
push esi
call fcn.004d4810
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4d4285
push ebx
push dword [ebp + 8]
call fcn.004d46e0
add esp, 8
mov dword [ebp - 0x10], eax
xor ebx, ebx
test edi, edi
je 0x4d4283
mov edx, dword [ebp - 0x38]
mov eax, ebx
imul eax, edx
add eax, dword [ebp - 0x1c]
lea edi, [eax*4]
mov ecx, edi
cmp ecx, 0x4000
jae 0x4d4283
lea esi, [eax + edx]
mov eax, dword [ebp - 0x10]
shl esi, 2
test eax, eax
je 0x4d3a17
add ecx, dword [ebp - 0x20]
lea esi, [edi + eax]
add esi, dword [ebp - 0x20]
cmp byte [ebp - 0x25], 0
mov edi, dword [ebp + 0x14]
je 0x4d3a28
cmp dword [ebp - 0x24], 1
cmove edi, dword [ebp + 0x18]
mov dword [ebp - 0x14], ecx
cmp ecx, esi
jae 0x4d3a53
nop
lea eax, [ebp - 0x14]
mov ecx, edi
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.00471a00
cmp byte [ebp - 0x6c], 0
je 0x4d3a5e
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, esi
jb 0x4d3a30
mov edx, dword [ebp - 0x38]
inc ebx
cmp ebx, dword [ebp - 0x30]
jb 0x4d39e4
jmp 0x4d4283
mov edx, dword [ebp + 0xc]
lea eax, [ebp - 0x208]
mov ebx, dword [ebp + 8]
mov ecx, ebx
push edx
push 0xfffffffffffffff2
push eax
call fcn.004f5350
mov edi, eax
cmp dword [ebp - 0x2c], 3
mov ecx, ebx
mov byte [ebp - 4], 8
push 0
jne 0x4d3aa1
push 0x2212
lea eax, [ebp - 0xa0]
push eax
call fcn.004f1460
mov byte [ebp - 4], 9
mov ebx, 1
jmp 0x4d3abb
push 0x2211
lea eax, [ebp - 0x60]
push eax
call fcn.004f1460
mov dword [ebp - 4], 0xa
mov ebx, 2
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x3c], ebx
jbe 0x4d3ac9
mov eax, dword [eax]
push ecx
push eax
push edi
call fcn.00438fa0
push str.Entry_point_has_conflicting
push edi
call fcn.00438a80
cmp dword [ebp - 0x74], 0xf
lea eax, [ebp - 0x88]
push dword [ebp - 0x78]
cmova eax, dword [ebp - 0x88]
push eax
push edi
call fcn.00438fa0
push str._location_assignment_at_location
push edi
call fcn.00438a80
mov esi, dword [ebp - 0x14]
add esp, 0x28
mov eax, esi
mov ecx, edi
shr eax, 2
push eax
call fcn.00467600
push str.__component
push edi
call fcn.00438a80
add esp, 8
and esi, 3
mov ecx, edi
push esi
call fcn.00467600
mov esi, dword [edi + 0xe8]
test bl, 2
je 0x4d3b82
mov ecx, dword [ebp - 0x4c]
and ebx, 0xfffffffd
cmp ecx, 0xf
jbe 0x4d3b70
mov edx, dword [ebp - 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4d3b66
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4d46b1
push ecx
push edx
call fcn.004fa253
add esp, 8
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0xf
mov byte [ebp - 0x60], 0
test bl, 1
je 0x4d3bdc
mov ecx, dword [ebp - 0x8c]
cmp ecx, 0xf
jbe 0x4d3bc1
mov edx, dword [ebp - 0xa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4d3bb7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4d46b1
push ecx
push edx
call fcn.004fa253
add esp, 8
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0xf
mov byte [ebp - 0xa0], 0
lea ecx, [ebp - 0x208]
call fcn.0046b990
jmp 0x4d4285
lea ecx, [ebp - 0xc0]
call fcn.00430400
lea ecx, [ebp - 0xf8]
mov byte [ebp - 4], 0xb
call fcn.00430400
mov ecx, dword [ebp + 8]
push ebx
mov byte [ebp - 4], 0xc
call fcn.004c8d30
mov esi, dword [eax]
mov esi, dword [esi]
cmp byte [esi + 0xd], 0
jne 0x4d3f06
mov edi, dword [ebp - 0xbc]
jmp 0x4d3c30
mov eax, dword [esi + 0x10]
cmp eax, 0x1e
jne 0x4d3e17
mov edx, dword [esi + 0x20]
movzx eax, dl
xor eax, 0x811c9dc5
mov dword [ebp - 0x1c], edx
imul ecx, eax, 0x1000193
mov eax, edx
shr eax, 8
or byte [edi], cl
mov dh, 0xc0
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
lea eax, [ebp - 0x1c]
imul ebx, ecx, 0x1000193
lea ecx, [ebp - 0xc0]
push ebx
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.00465c40
mov edx, edi
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, edi
jne 0x4d3db8
mov eax, dword [esi + 0x14]
lea ecx, [ebp - 0xc0]
push ebx
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x68]
push eax
call fcn.00465c40
mov eax, dword [ebp - 0x64]
test eax, eax
jne 0x4d3da7
cmp dword [ebp - 0xb8], 0xfffffff
je 0x4d46b6
lea eax, [ebp - 0xbc]
mov dword [ebp - 0x48], eax
push 0x10
mov byte [ebp - 4], 0xd
mov dword [ebp - 0x44], 0
call fcn.004fa223
mov ecx, dword [ebp - 0x24]
mov edi, eax
add esp, 4
mov dword [ebp - 0x44], edi
mov dword [edi + 8], ecx
mov dword [edi + 0xc], 0
mov eax, dword [ebp - 0xb8]
fld dword [ebp - 0xc0]
add eax, 1
mov dword [ebp - 0x40], eax
fild dword [ebp - 0x40]
mov byte [ebp - 4], 0xe
jns 0x4d3d34
fadd dword [0x530074]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
mov eax, dword [ebp - 0xa4]
fild dword [ebp - 0xa4]
test eax, eax
jns 0x4d3d50
fadd dword [0x530074]
fstp dword [ebp - 0x1c]
fdiv dword [ebp - 0x1c]
fcompi st(1)
fstp st(0)
jbe 0x4d3d8b
lea ecx, [ebp - 0xc0]
call fcn.00475e70
push ebx
lea eax, [edi + 8]
push eax
lea eax, [ebp - 0x100]
push eax
lea ecx, [ebp - 0xc0]
call fcn.00465c40
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x64], eax
jmp 0x4d3d8e
mov ecx, dword [ebp - 0x68]
push edi
push ecx
push ebx
lea ecx, [ebp - 0xc0]
mov dword [ebp - 0x44], 0
call fcn.00431350
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x30]
mov dword [eax + 0xc], ecx
mov edi, dword [ebp - 0xbc]
jmp 0x4d3eba
mov ecx, dword [esi + 0x14]
mov eax, dword [edx + 0xc]
cmp eax, dword [ecx]
je 0x4d3eba
push dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x208]
push 0xfffffffffffffff2
push eax
call fcn.004f5350
mov edi, eax
push str.Member_index
push edi
mov byte [ebp - 4], 0xf
call fcn.00438a80
add esp, 8
mov ecx, edi
push dword [esi + 0x20]
call fcn.00467410
push str._has_conflicting_location_assignments
push edi
call fcn.00438a80
mov esi, dword [edi + 0xe8]
add esp, 8
lea ecx, [ebp - 0x208]
jmp 0x4d4682
cmp eax, 0x1f
jne 0x4d3eba
mov ebx, dword [esi + 0x20]
movzx eax, bl
xor eax, 0x811c9dc5
mov dword [ebp - 0x1c], 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 - 0xf8]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.00465c40
mov edx, dword [ebp - 0xf4]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [ebp - 0xf4]
jne 0x4d3eac
mov eax, dword [esi + 0x14]
lea ecx, [ebp - 0xf8]
mov edi, dword [eax]
lea eax, [ebp - 0x20]
push eax
mov dword [ebp - 0x20], ebx
call fcn.00472c10
mov dword [eax], edi
mov edi, dword [ebp - 0xbc]
jmp 0x4d3eba
mov ecx, dword [esi + 0x14]
mov eax, dword [edx + 0xc]
cmp eax, dword [ecx]
jne 0x4d4114
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x4d3ee4
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x4d3ee0
lea esp, [esp]
cmp esi, dword [eax + 8]
jne 0x4d3ee0
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x4d3ed0
mov esi, eax
jmp 0x4d3efc
mov esi, eax
mov ecx, dword [esi]
cmp byte [ecx + 0xd], 0
jne 0x4d3efc
mov edi, edi
mov eax, dword [ecx]
mov esi, ecx
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x4d3ef0
cmp byte [esi + 0xd], 0
je 0x4d3c30
mov eax, dword [ebp - 0x10]
mov ecx, 1
mov dword [ebp - 0x14], ecx
mov esi, dword [eax + 0x10]
mov edi, dword [eax + 0xc]
mov eax, esi
sub eax, edi
sar eax, 4
cmp eax, ecx
jbe 0x4d426d
mov ebx, dword [ebp + 0x14]
mov dword [ebp - 0x30], 0x10
lea edx, [ecx - 1]
movzx eax, dl
xor eax, 0x811c9dc5
mov dword [ebp - 0x24], 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
lea ecx, [ebp - 0xc0]
push eax
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x110]
push eax
call fcn.00465c40
mov edx, dword [ebp - 0xbc]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [ebp - 0xbc]
je 0x4d45dd
mov eax, dword [edx + 0xc]
sub esi, edi
sar esi, 4
mov dword [ebp - 0x20], eax
cmp esi, dword [ebp - 0x14]
jbe 0x4d46a7
mov eax, dword [ebp - 0x30]
mov esi, dword [ebp + 8]
movzx ecx, word [eax + edi]
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
push dword [eax + ecx*4]
mov ecx, esi
call fcn.004eebd0
mov edi, eax
mov dword [ebp - 0x38], 0
lea eax, [ebp - 0x38]
mov dword [ebp - 0x64], edi
push eax
push edi
push esi
call fcn.004d4810
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4d4687
push edi
push dword [ebp + 8]
call fcn.004d46e0
mov edi, eax
mov dword [ebp - 0x24], esi
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0xf8]
mov esi, dword [ebp - 0x1c]
add esp, 8
dec eax
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push esi
push eax
lea eax, [ebp - 0x118]
push eax
call fcn.00465c40
cmp dword [eax + 4], 0
je 0x4d4176
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0xf8]
dec eax
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x24]
push esi
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.00465c40
mov eax, dword [ebp - 0x44]
test eax, eax
jne 0x4d416e
cmp dword [ebp - 0xf0], 0xfffffff
je 0x4d46b6
lea eax, [ebp - 0xf4]
mov dword [ebp - 0x70], eax
push 0x10
mov byte [ebp - 4], 0x13
mov dword [ebp - 0x6c], 0
call fcn.004fa223
mov ecx, dword [ebp - 0x24]
add esp, 4
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x6c], eax
mov dword [eax + 8], ecx
mov dword [eax + 0xc], 0
mov eax, dword [ebp - 0xf0]
fld dword [ebp - 0xf8]
add eax, 1
mov dword [ebp - 0x34], eax
fild dword [ebp - 0x34]
mov byte [ebp - 4], 0x14
jns 0x4d40bd
fadd dword [0x530074]
fstp dword [ebp - 0x34]
fld dword [ebp - 0x34]
mov eax, dword [ebp - 0xdc]
fild dword [ebp - 0xdc]
test eax, eax
jns 0x4d40d9
fadd dword [0x530074]
fstp dword [ebp - 0x34]
fdiv dword [ebp - 0x34]
fcompi st(1)
fstp st(0)
jbe 0x4d4150
lea ecx, [ebp - 0xf8]
call fcn.00475e70
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0xf8]
push esi
add eax, 8
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.00465c40
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x44], eax
jmp 0x4d4153
push dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x208]
push 0xfffffffffffffff2
push eax
call fcn.004f5350
mov edi, eax
push str.Member_index
push edi
mov byte [ebp - 4], 0x10
call fcn.00438a80
add esp, 8
mov ecx, edi
push dword [esi + 0x20]
call fcn.00467410
push str._has_conflicting_component_assignments
jmp 0x4d3dfd
mov ecx, dword [ebp - 0x48]
push dword [ebp - 0x1c]
mov dword [ebp - 0x6c], 0
push ecx
push esi
lea ecx, [ebp - 0xf8]
call fcn.00431350
mov byte [ebp - 4], 0xc
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x24], edx
jmp 0x4d4178
xor edx, edx
mov esi, dword [ebp - 0x20]
lea eax, [esi*4]
mov ecx, eax
mov dword [ebp - 0x34], eax
cmp ecx, 0x4000
jae 0x4d424a
mov eax, dword [ebp - 0x64]
cmp word [eax + 0x1e], 0x1c
jne 0x4d4206
lea eax, [edi - 1]
cmp eax, 2
ja 0x4d4206
mov ecx, dword [ebp - 0x38]
mov edi, esi
lea eax, [ecx + esi]
cmp esi, eax
jae 0x4d424a
mov ebx, dword [ebp - 0x40]
add ebx, edx
lea ebx, [ebx]
mov esi, edx
cmp edx, ebx
jae 0x4d41f7
mov ecx, dword [ebp + 0x14]
lea eax, [esi + edi*4]
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.00471a00
cmp byte [ebp - 0xfc], 0
je 0x4d42d3
inc esi
cmp esi, ebx
jb 0x4d41c6
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
inc edi
add eax, ecx
cmp edi, eax
jb 0x4d41c0
mov ebx, dword [ebp + 0x14]
jmp 0x4d424a
add esi, dword [ebp - 0x38]
shl esi, 2
test edi, edi
je 0x4d4219
mov esi, dword [ebp - 0x34]
add ecx, edx
add esi, edi
add esi, edx
mov dword [ebp - 0x20], ecx
cmp ecx, esi
jae 0x4d424a
lea eax, [ebp - 0x20]
mov ecx, ebx
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.00471a00
cmp byte [ebp - 0x104], 0
je 0x4d4461
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x20], eax
cmp eax, esi
jb 0x4d4220
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
add dword [ebp - 0x30], 0x10
inc ecx
mov dword [ebp - 0x14], ecx
mov esi, dword [eax + 0x10]
mov edi, dword [eax + 0xc]
mov eax, esi
sub eax, edi
sar eax, 4
cmp ecx, eax
jb 0x4d3f30
lea ecx, [ebp - 0xf8]
call fcn.00430880
lea ecx, [ebp - 0xc0]
call fcn.00430880
xor esi, esi
mov ecx, dword [ebp - 0x74]
cmp ecx, 0xf
jbe 0x4d36b3
mov edx, dword [ebp - 0x88]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4d42b6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4d46c5
push ecx
push edx
call fcn.004fa253
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
mov edx, dword [ebp + 0xc]
lea eax, [ebp - 0x208]
mov ebx, dword [ebp + 8]
mov ecx, ebx
push edx
push 0xfffffffffffffff2
push eax
call fcn.004f5350
mov dword [ebp + 0xc], eax
cmp dword [ebp - 0x2c], 3
mov ecx, ebx
mov byte [ebp - 4], 0x15
push 0
jne 0x4d4314
push 0x2212
lea eax, [ebp - 0x60]
push eax
call fcn.004f1460
mov byte [ebp - 4], 0x16
mov ebx, 4
jmp 0x4d4331
push 0x2211
lea eax, [ebp - 0xa0]
push eax
call fcn.004f1460
mov dword [ebp - 4], 0x17
mov ebx, 8
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x3c], ebx
jbe 0x4d433f
mov eax, dword [eax]
push ecx
push eax
push dword [ebp + 0xc]
call fcn.00438fa0
push str.Entry_point_has_conflicting
push dword [ebp + 0xc]
call fcn.00438a80
cmp dword [ebp - 0x74], 0xf
lea eax, [ebp - 0x88]
push dword [ebp - 0x78]
cmova eax, dword [ebp - 0x88]
push eax
push dword [ebp + 0xc]
call fcn.00438fa0
push str._location_assignment_at_location
push dword [ebp + 0xc]
call fcn.00438a80
add esp, 0x28
push edi
mov edi, dword [ebp + 0xc]
mov ecx, edi
call fcn.00467600
push str.__component
push edi
call fcn.00438a80
add esp, 8
mov ecx, edi
push esi
call fcn.00467600
mov esi, dword [edi + 0xe8]
test bl, 8
je 0x4d4407
mov ecx, dword [ebp - 0x8c]
and ebx, 0xfffffff7
cmp ecx, 0xf
jbe 0x4d43ec
mov edx, dword [ebp - 0xa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4d43e2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4d46c0
push ecx
push edx
call fcn.004fa253
add esp, 8
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0xf
mov byte [ebp - 0xa0], 0
test bl, 4
je 0x4d3e0c
mov ecx, dword [ebp - 0x4c]
cmp ecx, 0xf
jbe 0x4d4444
mov edx, dword [ebp - 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4d443a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4d46c0
push ecx
push edx
call fcn.004fa253
add esp, 8
mov dword [ebp - 0x50], 0
lea ecx, [ebp - 0x208]
mov dword [ebp - 0x4c], 0xf
mov byte [ebp - 0x60], 0
jmp 0x4d4682
mov edx, dword [ebp + 0xc]
lea eax, [ebp - 0x2f8]
mov ebx, dword [ebp + 8]
mov ecx, ebx
push edx
push 0xfffffffffffffff2
push eax
call fcn.004f5350
mov edi, eax
cmp dword [ebp - 0x2c], 3
mov ecx, ebx
mov byte [ebp - 4], 0x18
push 0
jne 0x4d44a4
push 0x2212
lea eax, [ebp - 0xd8]
push eax
call fcn.004f1460
mov byte [ebp - 4], 0x19
mov ebx, 0x10
jmp 0x4d44c1
push 0x2211
lea eax, [ebp - 0xa0]
push eax
call fcn.004f1460
mov dword [ebp - 4], 0x1a
mov ebx, 0x20
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x3c], ebx
jbe 0x4d44cf
mov eax, dword [eax]
push ecx
push eax
push edi
call fcn.00438fa0
push str.Entry_point_has_conflicting
push edi
call fcn.00438a80
cmp dword [ebp - 0x74], 0xf
lea eax, [ebp - 0x88]
push dword [ebp - 0x78]
cmova eax, dword [ebp - 0x88]
push eax
push edi
call fcn.00438fa0
push str._location_assignment_at_location
push edi
call fcn.00438a80
mov esi, dword [ebp - 0x20]
add esp, 0x28
mov eax, esi
mov ecx, edi
shr eax, 2
push eax
call fcn.00467600
push str.__component
push edi
call fcn.00438a80
add esp, 8
and esi, 3
mov ecx, edi
push esi
call fcn.00467600
mov esi, dword [edi + 0xe8]
test bl, 0x20
je 0x4d4597
mov ecx, dword [ebp - 0x8c]
and ebx, 0xffffffdf
cmp ecx, 0xf
jbe 0x4d457c
mov edx, dword [ebp - 0xa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4d4572
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4d46c5
push ecx
push edx
call fcn.004fa253
add esp, 8
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0xf
mov byte [ebp - 0xa0], 0
test bl, 0x10
je 0x4d467c
mov ecx, dword [ebp - 0xc4]
cmp ecx, 0xf
jbe 0x4d4661
mov edx, dword [ebp - 0xd8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4d4657
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4d46c5
jmp 0x4d4657
push dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x2f8]
push 0xfffffffffffffff2
push eax
call fcn.004f5350
mov esi, eax
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0xd8]
push 0
push 0x1337
push eax
mov byte [ebp - 4], 0x11
call fcn.004f1460
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
mov byte [ebp - 4], 0x12
jbe 0x4d461c
mov eax, dword [eax]
push ecx
push eax
push esi
call fcn.00438fa0
push str.Member_index
push esi
call fcn.00438a80
mov eax, dword [ebp - 0x14]
add esp, 0x14
dec eax
mov ecx, esi
push eax
call fcn.00467600
push str._is_missing_a_location_assignment
push esi
call fcn.00438a80
mov esi, dword [esi + 0xe8]
add esp, 8
jmp 0x4d45a0
push ecx
push edx
call fcn.004fa253
add esp, 8
mov dword [ebp - 0xc8], 0
mov byte [ebp - 0xd8], 0
mov dword [ebp - 0xc4], 0xf
lea ecx, [ebp - 0x2f8]
call fcn.0046b990
lea ecx, [ebp - 0xf8]
call fcn.00430880
lea ecx, [ebp - 0xc0]
call fcn.00430880
jmp 0x4d4285
call fcn.004ff45f
call fcn.0046b360
call fcn.0046b360
call fcn.004ff45f
push str.unordered_map_set_too_long
call fcn.004f7e11
call fcn.004ff45f
call fcn.004ff45f
mov edi, edi
aaa
dec ebp
add byte [ebx + 0x37], ch
dec ebp
add byte [ebp + 0x37], dh
dec ebp
add byte [ecx - 0x33ffb2c9], dh
int3