Function at 0x4d51e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x178
mov eax, dword [0x648d30]
xor eax, esp
mov dword [esp + 0x174], eax
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, ecx
mov dword [esp + 0x80], esi
mov ecx, 0x65c1e2
mov dword [esp + 0xc0], edi
call fcn.004a73a0
movzx eax, byte [ebp + 0x1c]
sub esp, 0x24
movaps xmm0, xmmword [0x6031f0]
mov ecx, esp
movsd xmm3, qword [0x603210]
movups xmmword [esp + 0x17c], xmm0
mov dword [esp + 0x7c], 0
movsd xmm1, qword [edi + eax*8 + 0x2568]
movsd xmm2, qword [edi + eax*8 + 0x1d68]
movzx eax, byte [ebp + 0x20]
cvtpd2ps xmm0, xmm1
mov dword [esp + 0x15c], 0
mov dword [esp + 0x164], 0
mov dword [esp + 0x168], 0x3f800000
mov dword [esp + 0x16c], 0
mov dword [esp + 0x174], 0
xorps xmm1, xmm3
mov dword [esp + 0x194], 0
movss dword [esp + 0x190], xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm1
movsd xmm1, qword [edi + eax*8 + 0x2568]
movss dword [esp + 0x198], xmm0
movaps xmm0, xmm1
xorps xmm0, xmm3
cvtsd2ss xmm0, xmm0
cvtpd2ps xmm2, xmm2
movss dword [esp + 0x160], xmm0
cvtpd2ps xmm0, xmm1
movss dword [esp + 0x18c], xmm2
movss dword [esp + 0x19c], xmm2
movsd xmm2, qword [edi + eax*8 + 0x1d68]
movzx eax, byte [ebp + 0x24]
movss dword [esp + 0x170], xmm0
cvtpd2ps xmm2, xmm2
movsd xmm1, qword [edi + eax*8 + 0x2568]
movaps xmm0, xmm1
movss dword [esp + 0x158], xmm2
xorps xmm0, xmm3
movss dword [esp + 0x178], xmm2
movsd xmm2, qword [edi + eax*8 + 0x1d68]
lea eax, [esp + 0x74]
cvtsd2ss xmm0, xmm0
push eax
mov eax, dword [esp + 0x17c]
sub esp, 0x24
cvtpd2ps xmm2, xmm2
movss dword [esp + 0xa0], xmm0
cvtpd2ps xmm0, xmm1
movaps xmm1, xmmword [0x602c40]
movss dword [esp + 0xa8], xmm0
movss dword [esp + 0x9c], xmm2
movups xmm0, xmmword [esp + 0x9c]
movups xmmword [esp + 0xb0], xmm1
movups xmmword [ecx], xmm0
movss dword [esp + 0xac], xmm2
movups xmm0, xmmword [esp + 0xac]
psrldq xmm1, 0xc
movups xmmword [ecx + 0x10], xmm0
movups xmm0, xmmword [esp + 0x180]
movd dword [ecx + 0x20], xmm1
mov ecx, esp
movups xmmword [ecx], xmm0
movups xmm0, xmmword [esp + 0x190]
movups xmmword [ecx + 0x10], xmm0
mov dword [ecx + 0x20], eax
lea eax, [esp + 0x180]
push eax
lea ecx, [esp + 0x1a8]
call fcn.004a64a5
mov ecx, eax
call fcn.004a64a5
mov eax, dword [edi + 8]
mov esi, dword [eax + 0x2c]
imul esi, dword [eax + 0x28]
lea eax, [esi*8]
push eax
push str.IGraphics::DrawModelOn2D::zBuffer
call fcn.004a72f6
add esp, 8
mov dword [esp + 0x90], eax
test esi, esi
jle 0x4d5427
movsd xmm0, qword [0x6031e0]
lea ecx, [esi*8 - 8]
shr ecx, 2
lea edi, [eax + 8]
mov esi, eax
movsd qword [eax], xmm0
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0xc0]
mov ecx, dword [edi + 8]
mov esi, dword [esp + 0x80]
mov dword [esp + 0x8c], 0
mov eax, dword [ecx + 0x28]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x88], eax
mov eax, dword [ecx + 0x2c]
mov ecx, dword [esi + 0x18]
cdq
sub eax, edx
mov dword [esp + 0x1c], ecx
sub ecx, dword [esi + 0x14]
sar eax, 1
mov dword [esp + 0x44], eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
test eax, eax
jle 0x4d79bb
mov eax, dword [esp + 0x88]
add eax, eax
movd xmm1, eax
mov eax, dword [esp + 0x44]
cvtdq2pd xmm1, xmm1
add eax, eax
subsd xmm1, qword [0x603190]
movsd qword [esp + 0x120], xmm1
movd xmm1, eax
cvtdq2pd xmm1, xmm1
subsd xmm1, qword [0x603190]
movsd qword [esp + 0x128], xmm1
nop dword [eax + eax]
mov edx, dword [esp + 0x1c]
mov eax, 0x66666667
mov ecx, dword [esi + 0x14]
sub edx, ecx
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x8c], eax
jb 0x4d552c
push str.vector_subscript_out_of_range
push 0x5fe0d0
push 0
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x4d550a
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_class_IFace_class_std::allocator_class_IFace___::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov ecx, dword [esi + 0x14]
add esp, 0x14
mov eax, dword [esp + 0x8c]
lea eax, [eax + eax*4]
cmp byte [ecx + eax*4 + 0x10], 0
movups xmm0, xmmword [ecx + eax*4]
movups xmmword [esp + 0x134], xmm0
je 0x4d6695
cmp byte [ebp + 0x2c], 0
jne 0x4d6695
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x28]
sub eax, ecx
mov dword [esp + 0x18], ecx
sar eax, 4
mov dword [esp + 0x14], ecx
test eax, eax
jne 0x4d55be
push str.vector_subscript_out_of_range
push 0x5fe0d0
push eax
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x4d5594
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_class_std::vector_class_IVertex_class_std::allocator_class_IVertex____class_std::allocator_class_std::vector_class_IVertex_class_std::allocator_class_IVertex_______::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov ecx, dword [esi + 0x24]
add esp, 0x14
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
sub ecx, eax
mov dword [esp + 0x1c], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x134], eax
jb 0x4d5639
push str.vector_subscript_out_of_range
push 0x5fe0d0
push 0
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x4d560a
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_class_IVertex_class_std::allocator_class_IVertex___::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov eax, dword [esp + 0x2c]
add esp, 0x14
mov ecx, dword [esi + 0x24]
mov dword [esp + 0x14], ecx
mov edx, dword [eax + 4]
jmp 0x4d5641
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x134]
movsd xmm5, qword [ebp + 0x14]
cvtpd2ps xmm5, xmm5
mov dword [esp + 0x20], ecx
lea eax, [eax + eax*2]
movq xmm0, qword [edx + eax*4]
mov eax, dword [edx + eax*4 + 8]
movq qword [esp + 0xe4], xmm0
movss xmm4, dword [esp + 0xe8]
movss xmm2, dword [esp + 0xe4]
movaps xmm3, xmm4
mulss xmm3, dword [esp + 0x5c]
movaps xmm0, xmm2
mov dword [esp + 0xec], eax
mulss xmm0, dword [esp + 0x50]
mov eax, dword [esi + 0x28]
movss xmm1, dword [esp + 0xec]
sub eax, ecx
sar eax, 4
addss xmm3, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0x68]
addss xmm3, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esp + 0x54]
mulss xmm2, dword [esp + 0x58]
mulss xmm3, xmm5
movss dword [esp + 0x2c], xmm3
movaps xmm3, xmm4
mulss xmm3, dword [esp + 0x60]
mulss xmm4, dword [esp + 0x64]
addss xmm3, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0x6c]
mulss xmm1, dword [esp + 0x70]
addss xmm4, xmm2
addss xmm3, xmm0
addss xmm4, xmm1
mulss xmm3, xmm5
mulss xmm4, xmm5
movss dword [esp + 0x30], xmm3
movss dword [esp + 0xc4], xmm4
test eax, eax
jne 0x4d5769
push str.vector_subscript_out_of_range
push 0x5fe0d0
push eax
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x4d573f
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_class_std::vector_class_IVertex_class_std::allocator_class_IVertex____class_std::allocator_class_std::vector_class_IVertex_class_std::allocator_class_IVertex_______::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov ecx, dword [esi + 0x24]
add esp, 0x14
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
sub ecx, eax
mov dword [esp + 0x1c], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x13c], eax
jb 0x4d57e4
push str.vector_subscript_out_of_range
push 0x5fe0d0
push 0
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x4d57b5
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_class_IVertex_class_std::allocator_class_IVertex___::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov eax, dword [esp + 0x28]
add esp, 0x14
mov ecx, dword [esi + 0x24]
mov dword [esp + 0x20], ecx
mov edx, dword [eax + 4]
jmp 0x4d57ec
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x13c]
movsd xmm5, qword [ebp + 0x14]
cvtpd2ps xmm5, xmm5
lea eax, [eax + eax*2]
movq xmm0, qword [edx + eax*4]
mov eax, dword [edx + eax*4 + 8]
movq qword [esp + 0xf0], xmm0
movss xmm4, dword [esp + 0xf4]
movss xmm2, dword [esp + 0xf0]
movaps xmm3, xmm4
mulss xmm3, dword [esp + 0x5c]
movaps xmm0, xmm2
mov dword [esp + 0xf8], eax
mulss xmm0, dword [esp + 0x50]
mov eax, dword [esi + 0x28]
movss xmm1, dword [esp + 0xf8]
sub eax, ecx
sar eax, 4
addss xmm3, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0x68]
addss xmm3, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esp + 0x54]
mulss xmm2, dword [esp + 0x58]
mulss xmm3, xmm5
movss dword [esp + 0x28], xmm3
movaps xmm3, xmm4
mulss xmm3, dword [esp + 0x60]
mulss xmm4, dword [esp + 0x64]
addss xmm3, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0x6c]
mulss xmm1, dword [esp + 0x70]
addss xmm4, xmm2
addss xmm3, xmm0
addss xmm4, xmm1
mulss xmm3, xmm5
mulss xmm4, xmm5
movss dword [esp + 0x34], xmm3
movss dword [esp + 0xa4], xmm4
test eax, eax
jne 0x4d590c
push str.vector_subscript_out_of_range
push 0x5fe0d0
push eax
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x4d58e6
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_class_std::vector_class_IVertex_class_std::allocator_class_IVertex____class_std::allocator_class_std::vector_class_IVertex_class_std::allocator_class_IVertex_______::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov ecx, dword [esi + 0x24]
add esp, 0x14
mov dword [esp + 0x20], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
sub ecx, eax
mov dword [esp + 0x1c], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x140], eax
jb 0x4d5980
push str.vector_subscript_out_of_range
push 0x5fe0d0
push 0
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x4d5958
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_class_IVertex_class_std::allocator_class_IVertex___::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov eax, dword [esp + 0x34]
add esp, 0x14
mov ecx, dword [eax + 4]
jmp 0x4d5984
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x140]
movsd xmm5, qword [ebp + 0x14]
movd xmm7, dword [ebp + 0xc]
cvtpd2ps xmm5, xmm5
lea eax, [eax + eax*2]
movq xmm0, qword [ecx + eax*4]
mov eax, dword [ecx + eax*4 + 8]
movq qword [esp + 0xfc], xmm0
movss xmm4, dword [esp + 0x100]
movss xmm2, dword [esp + 0xfc]
movaps xmm3, xmm4
mulss xmm3, dword [esp + 0x64]
movaps xmm0, xmm2
mov dword [esp + 0x104], eax
mulss xmm0, dword [esp + 0x58]
mov ecx, dword [esi + 0x34]
movss xmm1, dword [esp + 0x104]
cvtdq2ps xmm7, xmm7
mov eax, dword [esi + 0x38]
mov dword [esp + 0x10], ecx
sub eax, ecx
sar eax, 4
addss xmm3, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0x70]
addss xmm3, xmm0
movss xmm0, dword [esp + 0x2c]
addss xmm0, xmm7
mulss xmm3, xmm5
movss dword [esp + 0x2c], xmm0
movss xmm0, dword [esp + 0x30]
movss dword [esp + 0x94], xmm3
movd xmm3, dword [ebp + 0x10]
cvtdq2ps xmm3, xmm3
addss xmm0, xmm3
movss dword [esp + 0x30], xmm0
movss xmm0, dword [esp + 0x28]
addss xmm0, xmm7
movss dword [esp + 0x28], xmm0
movss xmm0, dword [esp + 0x34]
addss xmm0, xmm3
movaps xmm3, xmm4
mulss xmm3, dword [esp + 0x5c]
mulss xmm4, dword [esp + 0x60]
movss dword [esp + 0x34], xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esp + 0x50]
mulss xmm2, dword [esp + 0x54]
addss xmm3, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0x68]
mulss xmm1, dword [esp + 0x6c]
addss xmm4, xmm2
addss xmm3, xmm0
movd xmm0, dword [ebp + 0x10]
cvtdq2ps xmm0, xmm0
addss xmm4, xmm1
mulss xmm3, xmm5
addss xmm3, xmm7
mulss xmm4, xmm5
movss dword [esp + 0x14], xmm3
addss xmm4, xmm0
movss dword [esp + 0x20], xmm4
test eax, eax
jne 0x4d5b0b
push str.vector_subscript_out_of_range
push 0x5fe0d0
push eax
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x4d5ae5
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_class_std::vector_class_IVertex_class_std::allocator_class_IVertex____class_std::allocator_class_std::vector_class_IVertex_class_std::allocator_class_IVertex_______::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov ecx, dword [esi + 0x34]
add esp, 0x14
mov dword [esp + 0x10], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
sub ecx, eax
mov dword [esp + 0xc], eax
mov eax, 0x2aaaaaab
imul ecx
mov ecx, dword [esp + 0x134]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jb 0x4d5b93
push str.vector_subscript_out_of_range
push 0x5fe0d0
push 0
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x4d5b59
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_class_IVertex_class_std::allocator_class_IVertex___::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov ecx, dword [esp + 0x24]
add esp, 0x14
mov eax, dword [ecx + 4]
mov ecx, dword [esi + 0x34]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x134]
mov dword [esp + 0xc], eax
jmp 0x4d5b97
mov eax, dword [esp + 0xc]
lea esi, [ecx + ecx*2]
movss xmm0, dword [eax + esi*4]
movss xmm3, dword [eax + esi*4 + 4]
movaps xmm1, xmm0
movss xmm2, dword [eax + esi*4 + 8]
mulss xmm1, xmm0
movss dword [esp + 0x24], xmm0
movaps xmm0, xmm3
mulss xmm0, xmm3
movss dword [esp + 0x1c], xmm3
movss dword [esp + 0x44], xmm2
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, xmm2
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
call fcn.004a604f
movss xmm3, dword [esp + 0x24]
movss xmm2, dword [esp + 0x1c]
movss xmm1, dword [esp + 0x44]
cvtsd2ss xmm0, xmm0
mov eax, dword [esp + 0xc]
divss xmm3, xmm0
divss xmm2, xmm0
divss xmm1, xmm0
movaps xmm4, xmm3
movss dword [eax + esi*4], xmm3
mulss xmm4, dword [esp + 0x50]
movaps xmm0, xmm2
mulss xmm0, dword [esp + 0x5c]
movss dword [eax + esi*4 + 4], xmm2
movss dword [eax + esi*4 + 8], xmm1
addss xmm4, xmm0
mov esi, dword [esp + 0x80]
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0x68]
mov eax, dword [esi + 0x38]
sub eax, dword [esp + 0x10]
addss xmm4, xmm0
sar eax, 4
movaps xmm0, xmm2
mulss xmm2, dword [esp + 0x64]
mulss xmm0, dword [esp + 0x60]
movss dword [esp + 0x84], xmm4
movaps xmm4, xmm3
mulss xmm4, dword [esp + 0x54]
mulss xmm3, dword [esp + 0x58]
addss xmm4, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0x6c]
mulss xmm1, dword [esp + 0x70]
addss xmm3, xmm2
addss xmm4, xmm0
addss xmm3, xmm1
movss dword [esp + 0x4c], xmm4
movss dword [esp + 0x24], xmm3
test eax, eax
jne 0x4d5ce8
push str.vector_subscript_out_of_range
push 0x5fe0d0
push eax
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x4d5cc9
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_class_std::vector_class_IVertex_class_std::allocator_class_IVertex____class_std::allocator_class_std::vector_class_IVertex_class_std::allocator_class_IVertex_______::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
add esp, 0x14
mov ecx, dword [esi + 0x34]
mov dword [esp + 0x10], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
sub ecx, eax
mov dword [esp + 0xc], eax
mov eax, 0x2aaaaaab
imul ecx
mov ecx, dword [esp + 0x13c]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jb 0x4d5d77
push str.vector_subscript_out_of_range
push 0x5fe0d0
push 0
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x4d5d3d
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_class_IVertex_class_std::allocator_class_IVertex___::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov ecx, dword [esp + 0x24]
add esp, 0x14
mov eax, dword [ecx + 4]
mov ecx, dword [esi + 0x34]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x13c]
mov dword [esp + 0xc], eax
jmp 0x4d5d7b
mov eax, dword [esp + 0xc]
lea esi, [ecx + ecx*2]
movss xmm0, dword [eax + esi*4]
movss xmm3, dword [eax + esi*4 + 4]
movaps xmm1, xmm0
movss xmm2, dword [eax + esi*4 + 8]
mulss xmm1, xmm0
movss dword [esp + 0x18], xmm0
movaps xmm0, xmm3
mulss xmm0, xmm3
movss dword [esp + 0x1c], xmm3
movss dword [esp + 0x44], xmm2
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, xmm2
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
call fcn.004a604f
movss xmm3, dword [esp + 0x18]
movss xmm2, dword [esp + 0x1c]
movss xmm1, dword [esp + 0x44]
cvtsd2ss xmm0, xmm0
mov eax, dword [esp + 0xc]
divss xmm3, xmm0
divss xmm2, xmm0
divss xmm1, xmm0
movaps xmm4, xmm3
movss dword [eax + esi*4], xmm3
mulss xmm4, dword [esp + 0x50]
movaps xmm0, xmm2
mulss xmm0, dword [esp + 0x5c]
movss dword [eax + esi*4 + 4], xmm2
movss dword [eax + esi*4 + 8], xmm1
addss xmm4, xmm0
mov esi, dword [esp + 0x80]
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0x68]
mov eax, dword [esi + 0x38]
sub eax, dword [esp + 0x10]
addss xmm4, xmm0
sar eax, 4
movaps xmm0, xmm2
mulss xmm2, dword [esp + 0x64]
mulss xmm0, dword [esp + 0x60]
movss dword [esp + 0xbc], xmm4
movaps xmm4, xmm3
mulss xmm4, dword [esp + 0x54]
mulss xmm3, dword [esp + 0x58]
addss xmm4, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0x6c]
mulss xmm1, dword [esp + 0x70]
addss xmm3, xmm2
addss xmm4, xmm0
addss xmm3, xmm1
movss dword [esp + 0x48], xmm4
movss dword [esp + 0x18], xmm3
test eax, eax
jne 0x4d5ecc
push str.vector_subscript_out_of_range
push 0x5fe0d0
push eax
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x4d5ead
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_class_std::vector_class_IVertex_class_std::allocator_class_IVertex____class_std::allocator_class_std::vector_class_IVertex_class_std::allocator_class_IVertex_______::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
add esp, 0x14
mov eax, dword [esi + 0x34]
mov esi, dword [esp + 0x140]
mov dword [esp + 0x1c], eax
mov edx, dword [eax + 4]
mov ecx, dword [eax + 8]
mov eax, 0x2aaaaaab
sub ecx, edx
mov dword [esp + 0xc], edx
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x4d5f4d
push str.vector_subscript_out_of_range
push 0x5fe0d0
push 0
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x4d5f21
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_class_IVertex_class_std::allocator_class_IVertex___::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov eax, dword [esp + 0x30]
add esp, 0x14
mov eax, dword [eax + 4]
mov dword [esp + 0xc], eax
jmp 0x4d5f51
mov eax, dword [esp + 0xc]
lea esi, [esi + esi*2]
movss xmm0, dword [eax + esi*4]
movss xmm3, dword [eax + esi*4 + 4]
movaps xmm1, xmm0
movss xmm2, dword [eax + esi*4 + 8]
mulss xmm1, xmm0
movss dword [esp + 0x10], xmm0
movaps xmm0, xmm3
mulss xmm0, xmm3
movss dword [esp + 0x1c], xmm3
movss dword [esp + 0x44], xmm2
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, xmm2
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
call fcn.004a604f
movss xmm2, dword [esp + 0x1c]
sub esp, 0x10
movss xmm4, dword [esp + 0x20]
movss xmm1, dword [esp + 0x54]
cvtsd2ss xmm0, xmm0
mov edx, dword [esp + 0x1c]
divss xmm4, xmm0
divss xmm2, xmm0
divss xmm1, xmm0
movaps xmm3, xmm4
movss dword [edx + esi*4], xmm4
mulss xmm3, dword [esp + 0x60]
movaps xmm0, xmm2
mulss xmm0, dword [esp + 0x6c]
movss dword [edx + esi*4 + 4], xmm2
movss dword [edx + esi*4 + 8], xmm1
addss xmm3, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0x78]
addss xmm3, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esp + 0x70]
mulss xmm2, dword [esp + 0x74]
movss dword [esp + 0x2c], xmm3
movaps xmm3, xmm4
mulss xmm3, dword [esp + 0x64]
mulss xmm4, dword [esp + 0x68]
addss xmm3, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0x7c]
mulss xmm1, dword [esp + 0x80]
addss xmm4, xmm2
addss xmm3, xmm0
xorps xmm2, xmm2
movss xmm0, dword [esp + 0x5c]
mulss xmm0, dword [0x5ffa18]
addss xmm4, xmm1
movss xmm1, dword [esp + 0x94]
mulss xmm1, xmm2
movss dword [esp + 0x54], xmm3
subss xmm1, xmm0
movss dword [esp + 0x20], xmm4
movss xmm0, dword [esp + 0x34]
mulss xmm0, xmm2
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
movsd qword [esp + 8], xmm0
xorps xmm0, xmm0
movsd qword [esp], xmm0
call dword [sym.imp.ucrtbased.dll_fmax]
movss xmm0, dword [esp + 0x58]
xorps xmm2, xmm2
mulss xmm0, dword [0x5ffa18]
movss xmm1, dword [esp + 0xcc]
mulss xmm1, xmm2
fstp dword [esp + 0xa8]
subss xmm1, xmm0
movss xmm0, dword [esp + 0x28]
mulss xmm0, xmm2
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
movsd qword [esp + 8], xmm0
xorps xmm0, xmm0
movsd qword [esp], xmm0
call dword [sym.imp.ucrtbased.dll_fmax]
movss xmm0, dword [esp + 0x54]
xorps xmm2, xmm2
mulss xmm0, dword [0x5ffa18]
movss xmm1, dword [esp + 0x2c]
mulss xmm1, xmm2
fstp dword [esp + 0xac]
subss xmm1, xmm0
movss xmm0, dword [esp + 0x20]
mulss xmm0, xmm2
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
movsd qword [esp + 8], xmm0
xorps xmm0, xmm0
movsd qword [esp], xmm0
call dword [sym.imp.ucrtbased.dll_fmax]
movss xmm0, dword [esp + 0x24]
add esp, 8
fstp dword [esp + 0xa8]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x30]
movss dword [esp], xmm0
call dword [sym.imp.ucrtbased.dll_fminf]
fstp dword [esp + 0x50]
movss xmm0, dword [esp + 0x50]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x34]
movss dword [esp], xmm0
call dword [sym.imp.ucrtbased.dll_fminf]
fstp qword [esp]
call fcn.004a698c
fstp qword [esp + 0xd0]
movsd xmm0, qword [esp + 0xd0]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
sub esp, 8
xorps xmm0, xmm0
movsd qword [esp], xmm0
call dword [sym.imp.ucrtbased.dll_fmax]
movss xmm0, dword [esp + 0x24]
add esp, 8
fstp qword [esp + 0xd0]
cvttsd2si esi, qword [esp + 0xd0]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x30]
mov dword [esp + 0xc4], esi
movss dword [esp], xmm0
call dword [sym.imp.ucrtbased.dll_fmaxf]
fstp dword [esp + 0x50]
movss xmm0, dword [esp + 0x50]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x34]
movss dword [esp], xmm0
call dword [sym.imp.ucrtbased.dll_fmaxf]
fstp qword [esp]
call fcn.004a5eb5
fstp qword [esp + 0xb8]
movsd xmm0, qword [esp + 0xb8]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
sub esp, 8
movsd xmm0, qword [esp + 0x130]
movsd qword [esp], xmm0
call dword [sym.imp.ucrtbased.dll_fmin]
movss xmm0, dword [esp + 0x30]
add esp, 8
fstp qword [esp + 0xb0]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x3c]
movss dword [esp], xmm0
call dword [sym.imp.ucrtbased.dll_fminf]
fstp dword [esp + 0x50]
movss xmm0, dword [esp + 0x50]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x38]
movss dword [esp], xmm0
call dword [sym.imp.ucrtbased.dll_fminf]
fstp qword [esp]
call fcn.004a698c
fstp qword [esp + 0xb8]
movsd xmm0, qword [esp + 0xb8]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
sub esp, 8
xorps xmm0, xmm0
movsd qword [esp], xmm0
call dword [sym.imp.ucrtbased.dll_fmax]
movss xmm0, dword [esp + 0x30]
add esp, 8
fstp qword [esp + 0x40]
cvttsd2si eax, qword [esp + 0x40]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x3c]
mov dword [esp + 0x18], eax
movss dword [esp], xmm0
call dword [sym.imp.ucrtbased.dll_fmaxf]
fstp dword [esp + 0x50]
movss xmm0, dword [esp + 0x50]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x38]
movss dword [esp], xmm0
call dword [sym.imp.ucrtbased.dll_fmaxf]
fstp qword [esp]
call fcn.004a5eb5
fstp qword [esp + 0xb8]
movsd xmm0, qword [esp + 0xb8]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
sub esp, 8
movsd xmm0, qword [esp + 0x138]
movsd qword [esp], xmm0
call dword [sym.imp.ucrtbased.dll_fmin]
movss xmm6, dword [esp + 0x24]
add esp, 0x10
movss xmm5, dword [esp + 0x2c]
movaps xmm1, xmm6
movss xmm7, dword [esp + 0x28]
subss xmm1, xmm5
movss xmm4, dword [esp + 0x30]
movaps xmm3, xmm7
movss xmm2, dword [esp + 0x34]
subss xmm3, xmm6
subss xmm2, dword [esp + 0x20]
cvttsd2si eax, qword [esp + 0x38]
movss dword [esp + 0x18], xmm1
movaps xmm1, xmm4
subss xmm1, dword [esp + 0x20]
movss xmm0, dword [esp + 0x18]
mulss xmm0, xmm2
fstp qword [esp + 0xb0]
cvttsd2si ecx, qword [esp + 0xb0]
mulss xmm1, xmm3
movss dword [esp + 0x1c], xmm2
movss dword [esp + 0x48], xmm3
addss xmm1, xmm0
cvtps2pd xmm2, xmm1
movsd qword [esp + 0xd0], xmm2
cmp eax, ecx
jg 0x4d668e
cvttsd2si edx, qword [esp + 0xa8]
mov ecx, eax
imul ecx, dword [esp + 0x88]
add ecx, ecx
mov dword [esp + 0xc], ecx
nop word [eax + eax]
cmp dword [esp + 0xbc], edx
jg 0x4d665a
movss xmm1, dword [esp + 0x20]
subss xmm5, xmm7
movd xmm0, eax
cvtdq2ps xmm0, xmm0
cvttsd2si eax, qword [esp + 0xa8]
movaps xmm3, xmm0
subss xmm3, xmm1
subss xmm1, xmm4
movaps xmm4, xmm0
subss xmm0, dword [esp + 0x34]
mulss xmm3, dword [esp + 0x48]
movss dword [esp + 0x44], xmm1
movss xmm1, dword [esp + 0x30]
subss xmm4, xmm1
mulss xmm5, xmm0
subss xmm1, dword [esp + 0x34]
movss dword [esp + 0x24], xmm3
movss dword [esp + 0x38], xmm5
mulss xmm4, dword [esp + 0x18]
movss dword [esp + 0x84], xmm1
movss dword [esp + 0x74], xmm4
nop dword [eax]
xorps xmm1, xmm1
movaps xmm0, xmm6
cvtsi2ss xmm1, esi
xorps xmm6, xmm6
subss xmm0, xmm1
mulss xmm0, dword [esp + 0x1c]
addss xmm0, xmm3
cvtss2sd xmm6, xmm0
movss xmm0, dword [esp + 0x2c]
divsd xmm6, xmm2
subss xmm0, xmm1
mulss xmm0, dword [esp + 0x44]
addss xmm0, xmm4
cvtps2pd xmm4, xmm0
movaps xmm0, xmm7
subss xmm0, xmm1
divsd xmm4, xmm2
mulss xmm0, dword [esp + 0x84]
addss xmm0, xmm5
xorps xmm5, xmm5
cvtss2sd xmm5, xmm0
xorps xmm0, xmm0
comisd xmm6, xmm0
divsd xmm5, xmm2
jb 0x4d6626
movsd xmm3, qword [0x603190]
comisd xmm3, xmm6
jb 0x4d6620
comisd xmm4, xmm0
jb 0x4d6620
comisd xmm3, xmm4
jb 0x4d6620
comisd xmm5, xmm0
jb 0x4d6620
comisd xmm3, xmm5
jb 0x4d6620
movss xmm2, dword [esp + 0xc4]
add ecx, esi
movss xmm0, dword [esp + 0xa4]
cvtps2pd xmm0, xmm0
mov eax, dword [esp + 0x90]
cvtps2pd xmm2, xmm2
mulsd xmm0, xmm4
mulsd xmm2, xmm6
cvtpd2ps xmm1, xmm6
addsd xmm2, xmm0
movss xmm0, dword [esp + 0x94]
mulss xmm1, dword [esp + 0x98]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm5
addsd xmm2, xmm0
cvtpd2ps xmm0, xmm4
comisd xmm2, xmmword [eax + ecx*8]
mulss xmm0, dword [esp + 0x9c]
movsd qword [esp + 0x78], xmm2
addss xmm1, xmm0
cvtpd2ps xmm0, xmm5
mulss xmm0, dword [esp + 0xa0]
addss xmm1, xmm0
cvtps2pd xmm1, xmm1
jbe 0x4d660a
mov eax, dword [edi]
sub esp, 8
movsd xmm0, qword [0x603180]
add eax, 0x44
comisd xmm1, xmm0
mov dword [esp + 0x54], eax
mov ecx, edi
jbe 0x4d65c8
addsd xmm1, xmm1
subsd xmm1, xmm3
movsd qword [esp], xmm1
push 0xffffff
jmp 0x4d65d3
subsd xmm0, xmm1
movsd qword [esp], xmm0
push 0
push dword [ebp + 0x28]
call fcn.004a505a
push eax
push dword [esp + 0x14]
mov eax, dword [esp + 0x54]
mov ecx, edi
push esi
push dword [edi + 0xc]
call dword [eax]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x90]
add ecx, esi
movsd xmm0, qword [esp + 0x78]
movss xmm7, dword [esp + 0x28]
movsd qword [eax + ecx*8], xmm0
cvttsd2si eax, qword [esp + 0xa8]
mov ecx, dword [esp + 0xc]
movsd xmm2, qword [esp + 0xd0]
movss xmm3, dword [esp + 0x24]
movss xmm4, dword [esp + 0x74]
inc esi
movss xmm5, dword [esp + 0x38]
movss xmm6, dword [esp + 0x14]
cmp esi, eax
jle 0x4d6470
movss xmm5, dword [esp + 0x2c]
movss xmm4, dword [esp + 0x30]
mov eax, dword [esp + 0x10]
cvttsd2si edx, qword [esp + 0xa8]
cvttsd2si esi, qword [esp + 0xb0]
mov edi, dword [esp + 0x88]
inc eax
mov dword [esp + 0x10], eax
lea ecx, [ecx + edi*2]
mov edi, dword [esp + 0xc0]
mov dword [esp + 0xc], ecx
cmp eax, esi
cvttsd2si esi, qword [esp + 0xc8]
jle 0x4d63f0
mov esi, dword [esp + 0x80]
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x28]
sub eax, ecx
mov dword [esp + 0x4c], ecx
sar eax, 4
mov dword [esp + 0x14], ecx
test eax, eax
jne 0x4d66fc
push str.vector_subscript_out_of_range
push 0x5fe0d0
push eax
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x4d66d2
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_class_std::vector_class_IVertex_class_std::allocator_class_IVertex____class_std::allocator_class_std::vector_class_IVertex_class_std::allocator_class_IVertex_______::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov ecx, dword [esi + 0x24]
add esp, 0x14
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x14], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
sub ecx, eax
mov dword [esp + 0x38], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x134], eax
jb 0x4d6777
push str.vector_subscript_out_of_range
push 0x5fe0d0
push 0
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x4d6748
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_class_IVertex_class_std::allocator_class_IVertex___::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov eax, dword [esp + 0x60]
add esp, 0x14
mov ecx, dword [esi + 0x24]
mov dword [esp + 0x14], ecx
mov edx, dword [eax + 4]
jmp 0x4d677f
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x134]
movsd xmm5, qword [ebp + 0x14]
cvtpd2ps xmm5, xmm5
mov dword [esp + 0x28], ecx
lea eax, [eax + eax*2]
movq xmm0, qword [edx + eax*4]
mov eax, dword [edx + eax*4 + 8]
movq qword [esp + 0xd8], xmm0
movss xmm4, dword [esp + 0xdc]
movss xmm2, dword [esp + 0xd8]
movaps xmm3, xmm4
mulss xmm3, dword [esp + 0x5c]
movaps xmm0, xmm2
mov dword [esp + 0xe0], eax
mulss xmm0, dword [esp + 0x50]
mov eax, dword [esi + 0x28]
movss xmm1, dword [esp + 0xe0]
sub eax, ecx
sar eax, 4
addss xmm3, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0x68]
addss xmm3, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esp + 0x54]
mulss xmm2, dword [esp + 0x58]
mulss xmm3, xmm5
movss dword [esp + 0x24], xmm3
movaps xmm3, xmm4
mulss xmm3, dword [esp + 0x60]
mulss xmm4, dword [esp + 0x64]
addss xmm3, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0x6c]
mulss xmm1, dword [esp + 0x70]
addss xmm4, xmm2
addss xmm3, xmm0
addss xmm4, xmm1
mulss xmm3, xmm5
mulss xmm4, xmm5
movss dword [esp + 0x34], xmm3
movss dword [esp + 0xc4], xmm4
test eax, eax
jne 0x4d68a7
push str.vector_subscript_out_of_range
push 0x5fe0d0
push eax
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x4d687d
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_class_std::vector_class_IVertex_class_std::allocator_class_IVertex____class_std::allocator_class_std::vector_class_IVertex_class_std::allocator_class_IVertex_______::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov ecx, dword [esi + 0x24]
add esp, 0x14
mov dword [esp + 0x14], ecx
mov dword [esp + 0x28], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
sub ecx, eax
mov dword [esp + 0x38], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x138], eax
jb 0x4d6922
push str.vector_subscript_out_of_range
push 0x5fe0d0
push 0
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x4d68f3
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_class_IVertex_class_std::allocator_class_IVertex___::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov eax, dword [esp + 0x28]
add esp, 0x14
mov ecx, dword [esi + 0x24]
mov dword [esp + 0x28], ecx
mov edx, dword [eax + 4]
jmp 0x4d692a
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x138]
movsd xmm5, qword [ebp + 0x14]
cvtpd2ps xmm5, xmm5
lea eax, [eax + eax*2]
movq xmm0, qword [edx + eax*4]
mov eax, dword [edx + eax*4 + 8]
movq qword [esp + 0x108], xmm0
movss xmm4, dword [esp + 0x10c]
movss xmm2, dword [esp + 0x108]
movaps xmm3, xmm4
mulss xmm3, dword [esp + 0x5c]
movaps xmm0, xmm2
mov dword [esp + 0x110], eax
mulss xmm0, dword [esp + 0x50]
mov eax, dword [esi + 0x28]
movss xmm1, dword [esp + 0x110]
sub eax, ecx
sar eax, 4
addss xmm3, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0x68]
addss xmm3, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esp + 0x54]
mulss xmm2, dword [esp + 0x58]
mulss xmm3, xmm5
movss dword [esp + 0x2c], xmm3
movaps xmm3, xmm4
mulss xmm3, dword [esp + 0x60]
mulss xmm4, dword [esp + 0x64]
addss xmm3, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0x6c]
mulss xmm1, dword [esp + 0x70]
addss xmm4, xmm2
addss xmm3, xmm0
addss xmm4, xmm1
mulss xmm3, xmm5
mulss xmm4, xmm5
movss dword [esp + 0x30], xmm3
movss dword [esp + 0x48], xmm4
test eax, eax
jne 0x4d6a47
push str.vector_subscript_out_of_range
push 0x5fe0d0
push eax
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x4d6a21
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_class_std::vector_class_IVertex_class_std::allocator_class_IVertex____class_std::allocator_class_std::vector_class_IVertex_class_std::allocator_class_IVertex_______::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov ecx, dword [esi + 0x24]
add esp, 0x14
mov dword [esp + 0x28], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
sub ecx, eax
mov dword [esp + 0x38], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x13c], eax
jb 0x4d6abb
push str.vector_subscript_out_of_range
push 0x5fe0d0
push 0
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x4d6a93
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_class_IVertex_class_std::allocator_class_IVertex___::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov eax, dword [esp + 0x3c]
add esp, 0x14
mov ecx, dword [eax + 4]
jmp 0x4d6abf
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x13c]
movsd xmm5, qword [ebp + 0x14]
movd xmm7, dword [ebp + 0xc]
cvtpd2ps xmm5, xmm5
lea eax, [eax + eax*2]
movq xmm0, qword [ecx + eax*4]
mov eax, dword [ecx + eax*4 + 8]
movq qword [esp + 0x114], xmm0
movss xmm4, dword [esp + 0x118]
movss xmm2, dword [esp + 0x114]
movaps xmm3, xmm4
mulss xmm3, dword [esp + 0x64]
movaps xmm0, xmm2
mov dword [esp + 0x11c], eax
mulss xmm0, dword [esp + 0x58]
mov ecx, dword [esi + 0x34]
movss xmm1, dword [esp + 0x11c]
cvtdq2ps xmm7, xmm7
mov eax, dword [esi + 0x38]
mov dword [esp + 0xc], ecx
sub eax, ecx
sar eax, 4
addss xmm3, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0x70]
addss xmm3, xmm0
movss xmm0, dword [esp + 0x24]
addss xmm0, xmm7
mulss xmm3, xmm5
movss dword [esp + 0x24], xmm0
movss xmm0, dword [esp + 0x34]
movss dword [esp + 0xbc], xmm3
movd xmm3, dword [ebp + 0x10]
cvtdq2ps xmm3, xmm3
addss xmm0, xmm3
movss dword [esp + 0x34], xmm0
movss xmm0, dword [esp + 0x2c]
addss xmm0, xmm7
movss dword [esp + 0x2c], xmm0
movss xmm0, dword [esp + 0x30]
addss xmm0, xmm3
movaps xmm3, xmm4
mulss xmm3, dword [esp + 0x5c]
mulss xmm4, dword [esp + 0x60]
movss dword [esp + 0x30], xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esp + 0x50]
mulss xmm2, dword [esp + 0x54]
addss xmm3, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0x68]
mulss xmm1, dword [esp + 0x6c]
addss xmm4, xmm2
addss xmm3, xmm0
movd xmm0, dword [ebp + 0x10]
cvtdq2ps xmm0, xmm0
addss xmm4, xmm1
mulss xmm3, xmm5
addss xmm3, xmm7
mulss xmm4, xmm5
movss dword [esp + 0x28], xmm3
addss xmm4, xmm0
movss dword [esp + 0x14], xmm4
test eax, eax
jne 0x4d6c46
push str.vector_subscript_out_of_range
push 0x5fe0d0
push eax
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x4d6c20
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_class_std::vector_class_IVertex_class_std::allocator_class_IVertex____class_std::allocator_class_std::vector_class_IVertex_class_std::allocator_class_IVertex_______::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov ecx, dword [esi + 0x34]
add esp, 0x14
mov dword [esp + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
sub ecx, eax
mov dword [esp + 0x18], eax
mov eax, 0x2aaaaaab
imul ecx
mov ecx, dword [esp + 0x134]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jb 0x4d6cce
push str.vector_subscript_out_of_range
push 0x5fe0d0
push 0
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x4d6c94
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_class_IVertex_class_std::allocator_class_IVertex___::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov ecx, dword [esp + 0x20]
add esp, 0x14
mov eax, dword [ecx + 4]
mov ecx, dword [esi + 0x34]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x134]
mov dword [esp + 0x18], eax
jmp 0x4d6cd2
mov eax, dword [esp + 0x18]
lea esi, [ecx + ecx*2]
movss xmm0, dword [eax + esi*4]
movss xmm3, dword [eax + esi*4 + 4]
movaps xmm1, xmm0
movss xmm2, dword [eax + esi*4 + 8]
mulss xmm1, xmm0
movss dword [esp + 0x10], xmm0
movaps xmm0, xmm3
mulss xmm0, xmm3
movss dword [esp + 0x38], xmm3
movss dword [esp + 0x74], xmm2
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, xmm2
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
call fcn.004a604f
movss xmm3, dword [esp + 0x10]
movss xmm2, dword [esp + 0x38]
movss xmm1, dword [esp + 0x74]
cvtsd2ss xmm0, xmm0
mov eax, dword [esp + 0x18]
divss xmm3, xmm0
divss xmm2, xmm0
divss xmm1, xmm0
movaps xmm4, xmm3
movss dword [eax + esi*4], xmm3
mulss xmm4, dword [esp + 0x50]
movaps xmm0, xmm2
mulss xmm0, dword [esp + 0x5c]
movss dword [eax + esi*4 + 4], xmm2
movss dword [eax + esi*4 + 8], xmm1
addss xmm4, xmm0
mov esi, dword [esp + 0x80]
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0x68]
mov eax, dword [esi + 0x38]
sub eax, dword [esp + 0xc]
addss xmm4, xmm0
sar eax, 4
movaps xmm0, xmm2
mulss xmm2, dword [esp + 0x64]
mulss xmm0, dword [esp + 0x60]
movss dword [esp + 0xa0], xmm4
movaps xmm4, xmm3
mulss xmm4, dword [esp + 0x54]
mulss xmm3, dword [esp + 0x58]
addss xmm4, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0x6c]
mulss xmm1, dword [esp + 0x70]
addss xmm3, xmm2
addss xmm4, xmm0
addss xmm3, xmm1
movss dword [esp + 0x9c], xmm4
movss dword [esp + 0x10], xmm3
test eax, eax
jne 0x4d6e26
push str.vector_subscript_out_of_range
push 0x5fe0d0
push eax
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x4d6e07
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_class_std::vector_class_IVertex_class_std::allocator_class_IVertex____class_std::allocator_class_std::vector_class_IVertex_class_std::allocator_class_IVertex_______::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
add esp, 0x14
mov ecx, dword [esi + 0x34]
mov dword [esp + 0xc], ecx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
sub ecx, eax
mov dword [esp + 0x18], eax
mov eax, 0x2aaaaaab
imul ecx
mov ecx, dword [esp + 0x138]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jb 0x4d6eb5
push str.vector_subscript_out_of_range
push 0x5fe0d0
push 0
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x4d6e7b
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_class_IVertex_class_std::allocator_class_IVertex___::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov ecx, dword [esp + 0x20]
add esp, 0x14
mov eax, dword [ecx + 4]
mov ecx, dword [esi + 0x34]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x138]
mov dword [esp + 0x18], eax
jmp 0x4d6eb9
mov eax, dword [esp + 0x18]
lea esi, [ecx + ecx*2]
movss xmm0, dword [eax + esi*4]
movss xmm3, dword [eax + esi*4 + 4]
movaps xmm1, xmm0
movss xmm2, dword [eax + esi*4 + 8]
mulss xmm1, xmm0
movss dword [esp + 0x20], xmm0
movaps xmm0, xmm3
mulss xmm0, xmm3
movss dword [esp + 0x38], xmm3
movss dword [esp + 0x74], xmm2
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, xmm2
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
call fcn.004a604f
movss xmm3, dword [esp + 0x20]
movss xmm2, dword [esp + 0x38]
movss xmm1, dword [esp + 0x74]
cvtsd2ss xmm0, xmm0
mov eax, dword [esp + 0x18]
divss xmm3, xmm0
divss xmm2, xmm0
divss xmm1, xmm0
movaps xmm4, xmm3
movss dword [eax + esi*4], xmm3
mulss xmm4, dword [esp + 0x50]
movaps xmm0, xmm2
mulss xmm0, dword [esp + 0x5c]
movss dword [eax + esi*4 + 4], xmm2
movss dword [eax + esi*4 + 8], xmm1
addss xmm4, xmm0
mov esi, dword [esp + 0x80]
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0x68]
mov eax, dword [esi + 0x38]
sub eax, dword [esp + 0xc]
addss xmm4, xmm0
sar eax, 4
movaps xmm0, xmm2
mulss xmm2, dword [esp + 0x64]
mulss xmm0, dword [esp + 0x60]
movss dword [esp + 0x98], xmm4
movaps xmm4, xmm3
mulss xmm4, dword [esp + 0x54]
mulss xmm3, dword [esp + 0x58]
addss xmm4, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0x6c]
mulss xmm1, dword [esp + 0x70]
addss xmm3, xmm2
addss xmm4, xmm0
addss xmm3, xmm1
movss dword [esp + 0x94], xmm4
movss dword [esp + 0x20], xmm3
test eax, eax
jne 0x4d700d
push str.vector_subscript_out_of_range
push 0x5fe0d0
push eax
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x4d6fee
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_class_std::vector_class_IVertex_class_std::allocator_class_IVertex____class_std::allocator_class_std::vector_class_IVertex_class_std::allocator_class_IVertex_______::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
add esp, 0x14
mov esi, dword [esi + 0x34]
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
sub ecx, eax
mov dword [esp + 0x18], eax
mov eax, 0x2aaaaaab
imul ecx
mov ecx, dword [esp + 0x13c]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jb 0x4d708d
push str.vector_subscript_out_of_range
push 0x5fe0d0
push 0
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x4d705e
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_class_IVertex_class_std::allocator_class_IVertex___::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov eax, dword [esi + 4]
add esp, 0x14
mov ecx, dword [esp + 0x13c]
mov dword [esp + 0x18], eax
jmp 0x4d7091
mov eax, dword [esp + 0x18]
lea esi, [ecx + ecx*2]
movss xmm0, dword [eax + esi*4]
movss xmm3, dword [eax + esi*4 + 4]
movaps xmm1, xmm0
movss xmm2, dword [eax + esi*4 + 8]
mulss xmm1, xmm0
movss dword [esp + 0xc], xmm0
movaps xmm0, xmm3
mulss xmm0, xmm3
movss dword [esp + 0x38], xmm3
movss dword [esp + 0x74], xmm2
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, xmm2
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
call fcn.004a604f
movss xmm4, dword [esp + 0xc]
sub esp, 8
movss xmm3, dword [esp + 0x40]
movss xmm1, dword [esp + 0x7c]
cvtsd2ss xmm0, xmm0
mov eax, dword [esp + 0x20]
divss xmm4, xmm0
divss xmm3, xmm0
divss xmm1, xmm0
movaps xmm2, xmm4
movss dword [eax + esi*4], xmm4
mulss xmm2, dword [esp + 0x58]
movaps xmm0, xmm3
mulss xmm0, dword [esp + 0x64]
movss dword [eax + esi*4 + 4], xmm3
movss dword [eax + esi*4 + 8], xmm1
addss xmm2, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0x70]
addss xmm2, xmm0
movaps xmm0, xmm3
mulss xmm0, dword [esp + 0x68]
mulss xmm3, dword [esp + 0x6c]
movss dword [esp + 0x7c], xmm2
movaps xmm2, xmm4
mulss xmm2, dword [esp + 0x5c]
mulss xmm4, dword [esp + 0x60]
addss xmm2, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0x74]
mulss xmm1, dword [esp + 0x78]
addss xmm4, xmm3
addss xmm2, xmm0
movss xmm0, dword [esp + 0xa4]
mulss xmm0, dword [0x5ffa18]
addss xmm4, xmm1
movss xmm1, dword [esp + 0xa8]
movss dword [esp + 0xac], xmm2
xorps xmm2, xmm2
mulss xmm1, xmm2
movss dword [esp + 0x14], xmm4
subss xmm1, xmm0
movss xmm0, dword [esp + 0x18]
mulss xmm0, xmm2
addss xmm1, xmm0
movss dword [esp + 4], xmm1
mov dword [esp], 0
call dword [sym.imp.ucrtbased.dll_fmaxf]
movss xmm1, dword [esp + 0xa0]
xorps xmm2, xmm2
fstp dword [esp + 0x40]
movss xmm0, dword [esp + 0x40]
movss dword [esp + 0x20], xmm0
movss xmm0, dword [esp + 0x9c]
mulss xmm0, dword [0x5ffa18]
mulss xmm1, xmm2
subss xmm1, xmm0
movss xmm0, dword [esp + 0x28]
mulss xmm0, xmm2
addss xmm1, xmm0
movss dword [esp + 4], xmm1
mov dword [esp], 0
call dword [sym.imp.ucrtbased.dll_fmaxf]
fstp dword [esp + 0x40]
movss xmm0, dword [esp + 0x40]
xorps xmm2, xmm2
movss xmm1, dword [esp + 0x7c]
movss dword [esp + 0x8c], xmm0
movss xmm0, dword [esp + 0xac]
mulss xmm0, dword [0x5ffa18]
mulss xmm1, xmm2
subss xmm1, xmm0
movss xmm0, dword [esp + 0x14]
mulss xmm0, xmm2
addss xmm1, xmm0
movss dword [esp + 4], xmm1
mov dword [esp], 0
call dword [sym.imp.ucrtbased.dll_fmaxf]
fstp dword [esp + 0x40]
movss xmm0, dword [esp + 0x40]
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [esp + 0x30]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x34]
movss dword [esp], xmm0
call dword [sym.imp.ucrtbased.dll_fminf]
fstp dword [esp + 0x40]
movss xmm0, dword [esp + 0x40]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x2c]
movss dword [esp], xmm0
call dword [sym.imp.ucrtbased.dll_fminf]
fstp qword [esp]
call fcn.004a698c
fstp qword [esp + 0x80]
movsd xmm0, qword [esp + 0x80]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
sub esp, 8
xorps xmm0, xmm0
movsd qword [esp], xmm0
call dword [sym.imp.ucrtbased.dll_fmax]
movss xmm0, dword [esp + 0x38]
add esp, 8
fstp qword [esp + 0xd8]
cvttsd2si esi, qword [esp + 0xd8]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x34]
mov dword [esp + 0x7c], esi
movss dword [esp], xmm0
call dword [sym.imp.ucrtbased.dll_fmaxf]
fstp dword [esp + 0x40]
movss xmm0, dword [esp + 0x40]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x2c]
movss dword [esp], xmm0
call dword [sym.imp.ucrtbased.dll_fmaxf]
fstp qword [esp]
call fcn.004a5eb5
fstp qword [esp + 0x80]
movsd xmm0, qword [esp + 0x80]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
sub esp, 8
movsd xmm0, qword [esp + 0x130]
movsd qword [esp], xmm0
call dword [sym.imp.ucrtbased.dll_fmin]
movss xmm0, dword [esp + 0x24]
add esp, 8
fstp qword [esp + 0xb0]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x38]
movss dword [esp], xmm0
call dword [sym.imp.ucrtbased.dll_fminf]
fstp dword [esp + 0x40]
movss xmm0, dword [esp + 0x40]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x3c]
movss dword [esp], xmm0
call dword [sym.imp.ucrtbased.dll_fminf]
fstp qword [esp]
call fcn.004a698c
fstp qword [esp + 0x80]
movsd xmm0, qword [esp + 0x80]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
sub esp, 8
xorps xmm0, xmm0
movsd qword [esp], xmm0
call dword [sym.imp.ucrtbased.dll_fmax]
movss xmm0, dword [esp + 0x24]
add esp, 8
fstp qword [esp + 0x80]
cvttsd2si eax, qword [esp + 0x80]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x38]
mov dword [esp + 0x18], eax
movss dword [esp], xmm0
call dword [sym.imp.ucrtbased.dll_fmaxf]
fstp dword [esp + 0x40]
movss xmm0, dword [esp + 0x40]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x3c]
movss dword [esp], xmm0
call dword [sym.imp.ucrtbased.dll_fmaxf]
fstp qword [esp]
call fcn.004a5eb5
fstp qword [esp + 0x80]
movsd xmm0, qword [esp + 0x80]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
sub esp, 8
movsd xmm0, qword [esp + 0x138]
movsd qword [esp], xmm0
call dword [sym.imp.ucrtbased.dll_fmin]
fstp qword [esp + 0xc0]
cvttsd2si ecx, qword [esp + 0xc0]
add esp, 0x10
cmp byte [ebp + 0x2c], 0
je 0x4d764a
movss xmm1, dword [esp + 0x18]
movss xmm0, dword [esp + 0x84]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
movss xmm1, dword [esp + 0x44]
mulss xmm1, xmm1
addss xmm0, xmm1
cvtps2pd xmm0, xmm0
call fcn.004a604f
cvtsd2ss xmm0, xmm0
sub esp, 0x10
cvtss2sd xmm0, xmm0
movsd qword [esp + 8], xmm0
xorps xmm0, xmm0
movsd qword [esp], xmm0
call dword [sym.imp.ucrtbased.dll_fmax]
fstp qword [esp + 0x88]
movsd xmm0, qword [esp + 0x88]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [0x603190]
movsd qword [esp], xmm0
call dword [sym.imp.ucrtbased.dll_fmin]
mov eax, dword [edi]
add esp, 0x10
movsd xmm0, qword [0x603180]
add eax, 0xb4
cvttss2si esi, dword [esp + 0x30]
sub esp, 8
mov dword [esp + 0x54], eax
mov ecx, edi
fstp qword [esp + 0x80]
movsd xmm1, qword [esp + 0x80]
comisd xmm1, xmm0
jbe 0x4d75c9
mulsd xmm1, qword [0x6031b0]
subsd xmm1, qword [0x603190]
movsd qword [esp], xmm1
push 0xffffff
push dword [ebp + 0x28]
movsd qword [esp + 0x88], xmm1
call fcn.004a505a
push eax
cvttss2si eax, dword [esp + 0x30]
push esi
mov ecx, edi
push eax
cvttss2si eax, dword [esp + 0x40]
push eax
cvttss2si eax, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x60]
call dword [eax]
movsd xmm0, qword [esp + 0x78]
sub esp, 8
movsd qword [esp], xmm0
push 0xffffff
jmp 0x4d7614
subsd xmm0, xmm1
movsd qword [esp], xmm0
push 0
push dword [ebp + 0x28]
movsd qword [esp + 0x88], xmm0
call fcn.004a505a
push eax
cvttss2si eax, dword [esp + 0x30]
push esi
mov ecx, edi
push eax
cvttss2si eax, dword [esp + 0x40]
push eax
cvttss2si eax, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x60]
call dword [eax]
movsd xmm0, qword [esp + 0x78]
sub esp, 8
movsd qword [esp], xmm0
push 0
push dword [ebp + 0x28]
mov esi, dword [edi]
mov ecx, edi
call fcn.004a505a
push eax
cvttss2si eax, dword [esp + 0x34]
mov ecx, edi
push eax
cvttss2si eax, dword [esp + 0x34]
push eax
cvttss2si eax, dword [esp + 0x20]
push eax
cvttss2si eax, dword [esp + 0x38]
push eax
call dword [esi + 0xb4]
jmp 0x4d7983
movss xmm6, dword [esp + 0x28]
movss xmm5, dword [esp + 0x24]
movaps xmm1, xmm6
movss xmm7, dword [esp + 0x2c]
subss xmm1, xmm5
movss xmm4, dword [esp + 0x34]
movaps xmm3, xmm7
movss xmm2, dword [esp + 0x30]
subss xmm3, xmm6
subss xmm2, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
movss dword [esp + 0x4c], xmm1
movaps xmm1, xmm4
movss xmm0, dword [esp + 0x4c]
movss dword [esp + 0x38], xmm3
mulss xmm0, xmm2
movss dword [esp + 0xa0], xmm2
subss xmm1, dword [esp + 0x14]
mulss xmm1, xmm3
addss xmm1, xmm0
cvtps2pd xmm2, xmm1
movsd qword [esp + 0xc8], xmm2
cmp eax, ecx
jg 0x4d7983
cvttsd2si edx, qword [esp + 0xa8]
mov ecx, eax
imul ecx, dword [esp + 0x88]
add ecx, ecx
mov dword [esp + 0xc], ecx
nop dword [eax]
cmp dword [esp + 0x74], edx
jg 0x4d794f
movss xmm1, dword [esp + 0x14]
subss xmm5, xmm7
movd xmm0, eax
cvtdq2ps xmm0, xmm0
cvttsd2si eax, qword [esp + 0xa8]
movaps xmm3, xmm0
subss xmm3, xmm1
subss xmm1, xmm4
movaps xmm4, xmm0
subss xmm0, dword [esp + 0x30]
mulss xmm3, dword [esp + 0x38]
movss dword [esp + 0x9c], xmm1
movss xmm1, dword [esp + 0x34]
subss xmm4, xmm1
mulss xmm5, xmm0
subss xmm1, dword [esp + 0x30]
movss dword [esp + 0x20], xmm3
movss dword [esp + 0xa4], xmm5
mulss xmm4, dword [esp + 0x4c]
movss dword [esp + 0x98], xmm1
movss dword [esp + 0x94], xmm4
xorps xmm1, xmm1
movaps xmm0, xmm6
cvtsi2ss xmm1, esi
xorps xmm6, xmm6
subss xmm0, xmm1
mulss xmm0, dword [esp + 0xa0]
addss xmm0, xmm3
cvtss2sd xmm6, xmm0
movss xmm0, dword [esp + 0x24]
divsd xmm6, xmm2
subss xmm0, xmm1
mulss xmm0, dword [esp + 0x9c]
addss xmm0, xmm4
cvtps2pd xmm4, xmm0
movaps xmm0, xmm7
subss xmm0, xmm1
divsd xmm4, xmm2
mulss xmm0, dword [esp + 0x98]
addss xmm0, xmm5
xorps xmm5, xmm5
cvtss2sd xmm5, xmm0
xorps xmm0, xmm0
comisd xmm6, xmm0
divsd xmm5, xmm2
jb 0x4d7915
movsd xmm3, qword [0x603190]
comisd xmm3, xmm6
jb 0x4d790f
comisd xmm4, xmm0
jb 0x4d790f
comisd xmm3, xmm4
jb 0x4d790f
comisd xmm5, xmm0
jb 0x4d790f
comisd xmm3, xmm5
jb 0x4d790f
movss xmm2, dword [esp + 0xc4]
add ecx, esi
movss xmm0, dword [esp + 0x48]
cvtps2pd xmm0, xmm0
mov eax, dword [esp + 0x90]
cvtps2pd xmm2, xmm2
mulsd xmm0, xmm4
mulsd xmm2, xmm6
cvtpd2ps xmm1, xmm6
addsd xmm2, xmm0
movss xmm0, dword [esp + 0xbc]
mulss xmm1, dword [esp + 0x18]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm5
addsd xmm2, xmm0
cvtpd2ps xmm0, xmm4
comisd xmm2, xmmword [eax + ecx*8]
mulss xmm0, dword [esp + 0x84]
movsd qword [esp + 0x78], xmm2
addss xmm1, xmm0
cvtpd2ps xmm0, xmm5
mulss xmm0, dword [esp + 0x44]
addss xmm1, xmm0
cvtps2pd xmm1, xmm1
jbe 0x4d78f9
mov eax, dword [edi]
sub esp, 8
movsd xmm0, qword [0x603180]
add eax, 0x44
comisd xmm1, xmm0
mov dword [esp + 0x24], eax
mov ecx, edi
jbe 0x4d78b7
addsd xmm1, xmm1
subsd xmm1, xmm3
movsd qword [esp], xmm1
push 0xffffff
jmp 0x4d78c2
subsd xmm0, xmm1
movsd qword [esp], xmm0
push 0
push dword [ebp + 0x28]
call fcn.004a505a
push eax
push dword [esp + 0x14]
mov eax, dword [esp + 0x24]
mov ecx, edi
push esi
push dword [edi + 0xc]
call dword [eax]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x90]
add ecx, esi
movsd xmm0, qword [esp + 0x78]
movss xmm7, dword [esp + 0x2c]
movsd qword [eax + ecx*8], xmm0
cvttsd2si eax, qword [esp + 0xa8]
mov ecx, dword [esp + 0xc]
movsd xmm2, qword [esp + 0xc8]
movss xmm3, dword [esp + 0x20]
movss xmm4, dword [esp + 0x94]
inc esi
movss xmm5, dword [esp + 0xa4]
movss xmm6, dword [esp + 0x28]
cmp esi, eax
jle 0x4d7762
movss xmm5, dword [esp + 0x24]
movss xmm4, dword [esp + 0x34]
mov eax, dword [esp + 0x10]
cvttsd2si edx, qword [esp + 0xa8]
cvttsd2si esi, qword [esp + 0xb0]
mov edi, dword [esp + 0x88]
inc eax
mov dword [esp + 0x10], eax
lea ecx, [ecx + edi*2]
mov edi, dword [esp + 0xc0]
mov dword [esp + 0xc], ecx
cmp eax, esi
cvttsd2si esi, qword [esp + 0xd0]
jle 0x4d76e0
mov esi, dword [esp + 0x80]
inc dword [esp + 0x8c]
mov eax, dword [esi + 0x18]
mov ecx, eax
sub ecx, dword [esi + 0x14]
mov dword [esp + 0x1c], eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x8c], eax
jl 0x4d54c0
push dword [esp + 0x90]
call fcn.004a6545
mov ecx, dword [esp + 0x180]
add esp, 4
pop edi
pop esi
xor ecx, esp
call fcn.004a7062
mov esp, ebp
pop ebp
ret 0x28