// File: /workspace/github_cpp_makefile_star2_O3/parth-shel[P]xpac/metadata.cpp
// Function: metadata::get_package(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
metadata * metadata::get_package(std::string filepath){
	std::ifstream file_object;
	file_object.open(filepath.c_str(),std::ios::in | std::ios::binary);
	metadata * new_package = new metadata();
	std::string next_line;

	//Reading the name and the package id of the package to be read:
	getline(file_object,next_line);
	new_package->pkg_name = next_line;
	getline(file_object,next_line);
	new_package->pkg_ver = next_line;
	getline(file_object,next_line);
	new_package->pkg_id = next_line;

	while(getline(file_object,next_line)){
		if(next_line.compare(std::string("")))	new_package->dep_list->push_back(next_line);	//Should not push empty strings
	}

	file_object.close();
	return new_package;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x258, %rsp            # imm = 0x258
movq %rdi, %rbx
leaq -0x278(%rbp), %r14
movq %r14, %rdi
callq 0x33e0
movq (%rbx), %rsi
movq %r14, %rdi
movl $0xc, %edx
callq 0x3270
movl $0x70, %edi
callq 0x3390
movq %rax, %r15
movq %rax, %rdi
callq 0xa3cc
leaq -0x38(%rbp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
movq -0x278(%rbp), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x3370
movsbl %al, %edx
leaq -0x278(%rbp), %rbx
leaq -0x48(%rbp), %rsi
movq %rbx, %rdi
callq 0x3620
leaq -0x48(%rbp), %rsi
movq %r15, %rdi
callq 0x3220
movq -0x278(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x3370
movsbl %al, %edx
leaq -0x278(%rbp), %rbx
leaq -0x48(%rbp), %rsi
movq %rbx, %rdi
callq 0x3620
leaq 0x40(%r15), %rdi
leaq -0x48(%rbp), %rsi
callq 0x3220
movq -0x278(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x3370
movsbl %al, %edx
leaq -0x278(%rbp), %r13
leaq -0x48(%rbp), %rsi
movq %r13, %rdi
callq 0x3620
movq %r15, %rdi
addq $0x20, %rdi
leaq -0x48(%rbp), %rsi
callq 0x3220
movq %r15, -0x50(%rbp)
leaq -0x60(%rbp), %r15
movq -0x278(%rbp), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x3370
movsbl %al, %edx
movq %r13, %rdi
leaq -0x48(%rbp), %rsi
callq 0x3620
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0xa2ee
movq %r15, %r12
movq %r15, -0x70(%rbp)
leaq -0x70(%rbp), %rdi
leaq 0x256b(%rip), %rdx      # 0xc7eb
movq %rdx, %rsi
callq 0x7f0c
movq -0x40(%rbp), %r15
movq -0x70(%rbp), %rbx
movq -0x68(%rbp), %r14
cmpq %r15, %r14
movq %r15, %rdx
cmovbq %r14, %rdx
testq %rdx, %rdx
je 0xa2b8
movq -0x48(%rbp), %rdi
movq %rbx, %rsi
callq 0x33a0
testl %eax, %eax
je 0xa2b8
xorl %r14d, %r14d
jmp 0xa2bf
cmpq %r14, %r15
sete %r14b
movq %r12, %r15
cmpq %r12, %rbx
je 0xa2cf
movq %rbx, %rdi
callq 0x3360
testb %r14b, %r14b
jne 0xa235
movq -0x50(%rbp), %rax
movq 0x60(%rax), %rdi
leaq -0x48(%rbp), %rsi
callq 0x740e
jmp 0xa235
leaq -0x278(%rbp), %rdi
callq 0x30c0
movq -0x50(%rbp), %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xa310
callq 0x3360
leaq -0x278(%rbp), %rdi
callq 0x3100
movq %rbx, %rax
addq $0x258, %rsp            # imm = 0x258
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
movq %r15, %rdi
jmp 0xa354
jmp 0xa33b
movq %rax, %r14
jmp 0xa359
jmp 0xa344
jmp 0xa344
movq %rax, %r14
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xa359
callq 0x3360
leaq -0x278(%rbp), %rdi
callq 0x3100
movq %r14, %rdi
callq 0x35c0