// File: /workspace/github_cpp_makefile_star2_O2/Olverine[P]TerminalGraphics/./Graphics.h
// Function: loadShape(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
vec4* loadShape(string filePath){
    ifstream shapeFile;
    shapeFile.open(filePath);
	vec4 vertices[256];

    string output[256];
    int line = 0;
    if (shapeFile.is_open()) {

        while (!shapeFile.eof()) {
            getline(shapeFile, output[line]);
            istringstream ss(output[line]);
            string token;

			if(!output[line].empty()){

				int i = 0;
				while (getline(ss, token, ',')) {
					float x = stof(token);
					getline(ss, token, ',');
					float y = stof(token);
					getline(ss, token, ',');
					float z = stof(token);
					vertices[line * 2 + i + 1] = vec4(x,y,z,1);
					i++;
				}
				line++;
			}
        }
        vertices[0] = vec4(line * 2);
    }
    shapeFile.close();
	vec4* verts = vertices;
	return verts;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x33b8, %rsp           # imm = 0x33B8
movq %rdi, %rbx
leaq -0x258(%rbp), %r14
movq %r14, %rdi
callq 0x2170
pushq $0x8
popq %rdx
movq %r14, %rdi
movq %rbx, %rsi
callq 0x2130
leaq -0x13e0(%rbp), %rdi
movl $0x1000, %edx           # imm = 0x1000
xorl %esi, %esi
callq 0x20c0
pushq $0x10
popq %rax
leaq (%rax,%rbp), %rcx
addq $-0x33e0, %rcx          # imm = 0xCC20
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
movb $0x0, (%rcx)
addq $0x20, %rax
cmpq $0x2010, %rax           # imm = 0x2010
jne 0x2c67
leaq -0x1e0(%rbp), %rdi
callq 0x2060
testb %al, %al
je 0x2e01
xorl %r15d, %r15d
leaq -0x3d8(%rbp), %r14
leaq -0x50(%rbp), %r12
pushq $0x2c
popq %r13
movq -0x258(%rbp), %rax
movq -0x18(%rax), %rax
testb $0x2, -0x238(%rbp,%rax)
jne 0x2dd9
movslq %r15d, %rax
shlq $0x5, %rax
leaq (%rax,%rbp), %rbx
addq $-0x33e0, %rbx          # imm = 0xCC20
leaq -0x258(%rbp), %rdi
movq %rbx, %rsi
callq 0x2040
movq %r14, %rdi
movq %rbx, %rsi
pushq $0x8
popq %rdx
callq 0x21c0
leaq -0x40(%rbp), %rax
movq %rax, -0x50(%rbp)
andq $0x0, -0x48(%rbp)
movb $0x0, -0x40(%rbp)
cmpq $0x0, 0x8(%rbx)
je 0x2dc4
leal 0x1(,%r15,2), %ebx
movq %r14, %rdi
movq %r12, %rsi
movl %r13d, %edx
callq 0x2200
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x2dc1
movq %r12, %rdi
xorl %esi, %esi
callq 0x32ae
movss %xmm0, -0x30(%rbp)
movq %r14, %rdi
movq %r12, %rsi
movl %r13d, %edx
callq 0x2200
movq %r12, %rdi
xorl %esi, %esi
callq 0x32ae
movss %xmm0, -0x2c(%rbp)
movq %r14, %rdi
movq %r12, %rsi
movl %r13d, %edx
callq 0x2200
movq %r12, %rdi
xorl %esi, %esi
callq 0x32ae
movslq %ebx, %rbx
movq %rbx, %rax
shlq $0x4, %rax
movss -0x30(%rbp), %xmm1
movss %xmm1, -0x13e0(%rbp,%rax)
movss -0x2c(%rbp), %xmm1
movss %xmm1, -0x13dc(%rbp,%rax)
movss %xmm0, -0x13d8(%rbp,%rax)
movl $0x3f800000, -0x13d4(%rbp,%rax) # imm = 0x3F800000
incl %ebx
jmp 0x2d1c
incl %r15d
movq %r12, %rdi
callq 0x2228
movq %r14, %rdi
callq 0x20a0
jmp 0x2cb0
addl %r15d, %r15d
cvtsi2ss %r15d, %xmm0
movss %xmm0, -0x13e0(%rbp)
movss %xmm0, -0x13dc(%rbp)
movss %xmm0, -0x13d8(%rbp)
movss %xmm0, -0x13d4(%rbp)
leaq -0x258(%rbp), %rdi
callq 0x2050
movl $0x1fe0, %ebx           # imm = 0x1FE0
leaq (%rbx,%rbp), %rdi
addq $-0x33e0, %rdi          # imm = 0xCC20
callq 0x2228
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x2e12
leaq -0x258(%rbp), %rdi
callq 0x2070
leaq -0x13e0(%rbp), %rax
addq $0x33b8, %rsp           # imm = 0x33B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2e5a
movq %rax, %rbx
jmp 0x2e9d
jmp 0x2e5a
movq %rax, %rbx
jmp 0x2e7d
jmp 0x2e65
jmp 0x2e65
jmp 0x2e65
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x2228
leaq -0x3d8(%rbp), %rdi
callq 0x20a0
movl $0x1fe0, %r14d          # imm = 0x1FE0
leaq (%r14,%rbp), %rdi
addq $-0x33e0, %rdi          # imm = 0xCC20
callq 0x2228
addq $-0x20, %r14
cmpq $-0x20, %r14
jne 0x2e83
leaq -0x258(%rbp), %rdi
callq 0x2070
movq %rbx, %rdi
callq 0x21d0