// File: /workspace/github_cpp_makefile_star2_O1/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 $0x33c8, %rsp           # imm = 0x33C8
movq %rdi, %rbx
leaq -0x268(%rbp), %r14
movq %r14, %rdi
callq 0x2180
movq %r14, %rdi
movq %rbx, %rsi
movl $0x8, %edx
callq 0x2130
leaq -0x13f0(%rbp), %rdi
movl $0x1000, %edx           # imm = 0x1000
xorl %esi, %esi
callq 0x20b0
movl $0x10, %eax
leaq (%rax,%rbp), %rcx
addq $-0x33f0, %rcx          # imm = 0xCC10
movq %rcx, -0x10(%rcx)
movq $0x0, -0x8(%rcx)
movb $0x0, (%rcx)
addq $0x20, %rax
cmpq $0x2010, %rax           # imm = 0x2010
jne 0x2f81
leaq -0x1f0(%rbp), %rdi
callq 0x2050
testb %al, %al
je 0x3224
movq -0x268(%rbp), %rax
movq -0x18(%rax), %rax
xorps %xmm0, %xmm0
testb $0x2, -0x248(%rbp,%rax)
jne 0x3204
leaq (%rax,%rbp), %rdi
addq $-0x268, %rdi           # imm = 0xFD98
leaq -0x48(%rbp), %rbx
movq $0x0, -0x30(%rbp)
leaq -0x3e8(%rbp), %r15
movl $0xa, %esi
callq 0x2150
movslq -0x30(%rbp), %rcx
shlq $0x5, %rcx
leaq (%rcx,%rbp), %r14
addq $-0x33f0, %r14          # imm = 0xCC10
movsbl %al, %edx
leaq -0x268(%rbp), %rdi
movq %r14, %rsi
callq 0x2250
movq %r15, %rdi
movq %r14, %rsi
movl $0x8, %edx
callq 0x2200
movq %rbx, -0x58(%rbp)
movq $0x0, -0x50(%rbp)
movb $0x0, -0x48(%rbp)
cmpq $0x0, 0x8(%r14)
je 0x31a7
movq -0x30(%rbp), %rax
leal 0x1(,%rax,2), %ebx
movq %r15, %rdi
leaq -0x58(%rbp), %rsi
movl $0x2c, %edx
callq 0x2250
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x3199
movq -0x58(%rbp), %r12
callq 0x2030
movq %rax, %r14
movl (%rax), %r13d
movl $0x0, (%rax)
movq %r12, %rdi
leaq -0x38(%rbp), %rsi
callq 0x21a0
movss %xmm0, -0x60(%rbp)
cmpq %r12, -0x38(%rbp)
je 0x328d
movl (%r14), %eax
testl %eax, %eax
je 0x30be
cmpl $0x22, %eax
jne 0x30c1
jmp 0x32a5
movl %r13d, (%r14)
movq %r15, %rdi
leaq -0x58(%rbp), %rsi
movl $0x2c, %edx
callq 0x2250
movq -0x58(%rbp), %r12
movl (%r14), %r13d
movl $0x0, (%r14)
movq %r12, %rdi
leaq -0x38(%rbp), %rsi
callq 0x21a0
movss %xmm0, -0x5c(%rbp)
cmpq %r12, -0x38(%rbp)
je 0x3281
movl (%r14), %eax
testl %eax, %eax
je 0x310c
cmpl $0x22, %eax
jne 0x310f
jmp 0x32b1
movl %r13d, (%r14)
movq %r15, %rdi
leaq -0x58(%rbp), %rsi
movl $0x2c, %edx
callq 0x2250
movq -0x58(%rbp), %r12
movl (%r14), %r13d
movl $0x0, (%r14)
movq %r12, %rdi
leaq -0x38(%rbp), %rsi
callq 0x21a0
cmpq %r12, -0x38(%rbp)
je 0x3299
movl (%r14), %eax
testl %eax, %eax
je 0x3155
cmpl $0x22, %eax
jne 0x3158
jmp 0x32bd
movl %r13d, (%r14)
movslq %ebx, %rbx
movq %rbx, %rax
shlq $0x4, %rax
movss -0x60(%rbp), %xmm1
movss %xmm1, -0x13f0(%rbp,%rax)
movss -0x5c(%rbp), %xmm1
movss %xmm1, -0x13ec(%rbp,%rax)
movss %xmm0, -0x13e8(%rbp,%rax)
movl $0x3f800000, -0x13e4(%rbp,%rax) # imm = 0x3F800000
incl %ebx
jmp 0x305a
movq -0x30(%rbp), %rax
incl %eax
movq %rax, -0x30(%rbp)
leaq -0x48(%rbp), %rbx
movq -0x58(%rbp), %rdi
cmpq %rbx, %rdi
je 0x31bc
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x2160
movq %r15, %rdi
movq 0x2e0a(%rip), %rsi      # 0x5fd0
callq 0x21c0
leaq -0x370(%rbp), %rdi
callq 0x2070
movq -0x268(%rbp), %rax
movq -0x18(%rax), %rax
leaq (%rax,%rbp), %rdi
addq $-0x268, %rdi           # imm = 0xFD98
testb $0x2, 0x20(%rdi)
je 0x2ff5
movq -0x30(%rbp), %rax
addl %eax, %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
movss %xmm0, -0x13f0(%rbp)
movss %xmm0, -0x13ec(%rbp)
movss %xmm0, -0x13e8(%rbp)
movss %xmm0, -0x13e4(%rbp)
leaq -0x268(%rbp), %rdi
callq 0x2040
movq $-0x2000, %rbx          # imm = 0xE000
leaq -0x1400(%rbp), %r14
movq -0x10(%r14), %rdi
cmpq %rdi, %r14
je 0x3252
movq (%r14), %rsi
incq %rsi
callq 0x2160
addq $-0x20, %r14
addq $0x20, %rbx
jne 0x323e
leaq -0x268(%rbp), %rdi
callq 0x2060
leaq -0x13f0(%rbp), %rax
addq $0x33c8, %rsp           # imm = 0x33C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xdfa(%rip), %rdi       # 0x4082
callq 0x20c0
leaq 0xdee(%rip), %rdi       # 0x4082
callq 0x20c0
leaq 0xde2(%rip), %rdi       # 0x4082
callq 0x20c0
leaq 0xdd6(%rip), %rdi       # 0x4082
callq 0x21d0
leaq 0xdca(%rip), %rdi       # 0x4082
callq 0x21d0
leaq 0xdbe(%rip), %rdi       # 0x4082
callq 0x21d0
jmp 0x32d5
movq %rax, %rbx
jmp 0x3357
jmp 0x32d5
movq %rax, %rbx
jmp 0x332b
jmp 0x32de
jmp 0x32de
movq %rax, %rbx
jmp 0x32f3
jmp 0x32e7
jmp 0x32e7
movq %rax, %rbx
cmpl $0x0, (%r14)
jne 0x32f3
movl %r13d, (%r14)
movq -0x58(%rbp), %rdi
leaq -0x48(%rbp), %rax
cmpq %rax, %rdi
je 0x330c
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x2160
movq 0x2cbd(%rip), %rsi      # 0x5fd0
leaq -0x3e8(%rbp), %rdi
callq 0x21c0
leaq -0x370(%rbp), %rdi
callq 0x2070
movq $-0x2000, %r14          # imm = 0xE000
leaq -0x1400(%rbp), %r15
movq -0x10(%r15), %rdi
cmpq %rdi, %r15
je 0x334d
movq (%r15), %rsi
incq %rsi
callq 0x2160
addq $-0x20, %r15
addq $0x20, %r14
jne 0x3339
leaq -0x268(%rbp), %rdi
callq 0x2060
movq %rbx, %rdi
callq 0x2220