// File: /workspace/github_cpp_makefile_star2_O3/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 0x2160
movq %r14, %rdi
movq %rbx, %rsi
movl $0x8, %edx
callq 0x2110
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 0x2e90
leaq -0x1f0(%rbp), %rdi
callq 0x2050
testb %al, %al
je 0x3103
movq -0x268(%rbp), %rax
movq -0x18(%rax), %rax
testb $0x2, -0x248(%rbp,%rax)
jne 0x3103
leaq (%rax,%rbp), %rdi
addq $-0x268, %rdi           # imm = 0xFD98
leaq -0x48(%rbp), %rbx
movq $0x0, -0x38(%rbp)
leaq -0x3e8(%rbp), %r15
movl $0xa, %esi
callq 0x2130
movslq -0x38(%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 0x2220
movq %r15, %rdi
movq %r14, %rsi
movl $0x8, %edx
callq 0x21e0
movq %rbx, -0x58(%rbp)
movq $0x0, -0x50(%rbp)
movb $0x0, -0x48(%rbp)
cmpq $0x0, 0x8(%r14)
je 0x30c8
movq -0x38(%rbp), %rax
leal 0x1(,%rax,2), %ebx
movq %r15, %rdi
leaq -0x58(%rbp), %rsi
movl $0x2c, %edx
callq 0x2220
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x30a5
movq -0x58(%rbp), %r12
callq 0x2030
movq %rax, %r14
movl (%rax), %r13d
movl $0x0, (%rax)
movq %r12, %rdi
leaq -0x30(%rbp), %rsi
callq 0x2180
movss %xmm0, -0x60(%rbp)
cmpq %r12, -0x30(%rbp)
je 0x316c
movl (%r14), %eax
testl %eax, %eax
je 0x2fca
cmpl $0x22, %eax
jne 0x2fcd
jmp 0x3184
movl %r13d, (%r14)
movq %r15, %rdi
leaq -0x58(%rbp), %rsi
movl $0x2c, %edx
callq 0x2220
movq -0x58(%rbp), %r12
movl (%r14), %r13d
movl $0x0, (%r14)
movq %r12, %rdi
leaq -0x30(%rbp), %rsi
callq 0x2180
movss %xmm0, -0x5c(%rbp)
cmpq %r12, -0x30(%rbp)
je 0x3160
movl (%r14), %eax
testl %eax, %eax
je 0x3018
cmpl $0x22, %eax
jne 0x301b
jmp 0x3190
movl %r13d, (%r14)
movq %r15, %rdi
leaq -0x58(%rbp), %rsi
movl $0x2c, %edx
callq 0x2220
movq -0x58(%rbp), %r12
movl (%r14), %r13d
movl $0x0, (%r14)
movq %r12, %rdi
leaq -0x30(%rbp), %rsi
callq 0x2180
cmpq %r12, -0x30(%rbp)
je 0x3178
movl (%r14), %eax
testl %eax, %eax
je 0x3061
cmpl $0x22, %eax
jne 0x3064
jmp 0x319c
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 0x2f66
movq -0x38(%rbp), %rax
incl %eax
movq %rax, -0x38(%rbp)
movq -0x58(%rbp), %rdi
leaq -0x48(%rbp), %rbx
cmpq %rbx, %rdi
je 0x30c8
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x2140
movq %r15, %rdi
movq 0x2efe(%rip), %rsi      # 0x5fd0
callq 0x21a0
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 0x2f01
leaq -0x268(%rbp), %rdi
callq 0x2040
movq $-0x2000, %rbx          # imm = 0xE000
leaq -0x1400(%rbp), %r14
movq -0x10(%r14), %rdi
cmpq %rdi, %r14
je 0x3131
movq (%r14), %rsi
incq %rsi
callq 0x2140
addq $-0x20, %r14
addq $0x20, %rbx
jne 0x311d
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 0xf1b(%rip), %rdi       # 0x4082
callq 0x20b0
leaq 0xf0f(%rip), %rdi       # 0x4082
callq 0x20b0
leaq 0xf03(%rip), %rdi       # 0x4082
callq 0x20b0
leaq 0xef7(%rip), %rdi       # 0x4082
callq 0x21b0
leaq 0xeeb(%rip), %rdi       # 0x4082
callq 0x21b0
leaq 0xedf(%rip), %rdi       # 0x4082
callq 0x21b0
jmp 0x31b4
movq %rax, %rbx
jmp 0x3236
jmp 0x31b4
movq %rax, %rbx
jmp 0x320a
jmp 0x31bd
jmp 0x31bd
movq %rax, %rbx
jmp 0x31d2
jmp 0x31c6
jmp 0x31c6
movq %rax, %rbx
cmpl $0x0, (%r14)
jne 0x31d2
movl %r13d, (%r14)
movq -0x58(%rbp), %rdi
leaq -0x48(%rbp), %rax
cmpq %rax, %rdi
je 0x31eb
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x2140
movq 0x2dde(%rip), %rsi      # 0x5fd0
leaq -0x3e8(%rbp), %rdi
callq 0x21a0
leaq -0x370(%rbp), %rdi
callq 0x2070
movq $-0x2000, %r14          # imm = 0xE000
leaq -0x1400(%rbp), %r15
movq -0x10(%r15), %rdi
cmpq %rdi, %r15
je 0x322c
movq (%r15), %rsi
incq %rsi
callq 0x2140
addq $-0x20, %r15
addq $0x20, %r14
jne 0x3218
leaq -0x268(%rbp), %rdi
callq 0x2060
movq %rbx, %rdi
callq 0x2200