// File: /workspace/github_cpp_makefile_star2_O1/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, %rbx
movq %rax, %rdi
callq 0xa3e4
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), %r14
leaq -0x48(%rbp), %rsi
movq %r14, %rdi
callq 0x3620
leaq -0x48(%rbp), %rsi
movq %rbx, %rdi
callq 0x3220
movq -0x278(%rbp), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x3370
movsbl %al, %edx
leaq -0x278(%rbp), %r14
leaq -0x48(%rbp), %rsi
movq %r14, %rdi
callq 0x3620
leaq 0x40(%rbx), %rdi
leaq -0x48(%rbp), %rsi
callq 0x3220
movq -0x278(%rbp), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x3370
movsbl %al, %edx
leaq -0x278(%rbp), %r14
leaq -0x48(%rbp), %rsi
movq %r14, %rdi
callq 0x3620
movq %rbx, %rdi
addq $0x20, %rdi
leaq -0x48(%rbp), %rsi
callq 0x3220
movq %rbx, -0x50(%rbp)
leaq -0x60(%rbp), %r13
movq -0x278(%rbp), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3370
movsbl %al, %edx
movq %r14, %rdi
leaq -0x48(%rbp), %rsi
callq 0x3620
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0xa306
movq %r13, %r12
movq %r13, -0x70(%rbp)
leaq -0x70(%rbp), %rdi
leaq 0x2559(%rip), %rdx      # 0xc7eb
movq %rdx, %rsi
callq 0x7f00
movq %r14, %rbx
movq -0x40(%rbp), %r13
movq -0x68(%rbp), %r15
cmpq %r13, %r15
movq %r13, %rdx
cmovbq %r15, %rdx
testq %rdx, %rdx
je 0xa2c9
movq -0x70(%rbp), %rsi
movq -0x48(%rbp), %rdi
callq 0x33a0
testl %eax, %eax
sete %r14b
jmp 0xa2cc
movb $0x1, %r14b
cmpq %r15, %r13
sete %r15b
movq -0x70(%rbp), %rdi
movq %r12, %r13
cmpq %r12, %rdi
je 0xa2e4
callq 0x3360
andb %r15b, %r14b
movq %rbx, %r14
jne 0xa247
movq -0x50(%rbp), %rax
movq 0x60(%rax), %rdi
leaq -0x48(%rbp), %rsi
callq 0x741a
jmp 0xa247
leaq -0x278(%rbp), %rdi
callq 0x30c0
movq -0x50(%rbp), %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xa328
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 %rbx, %rdi
jmp 0xa36c
jmp 0xa353
movq %rax, %r14
jmp 0xa371
jmp 0xa35c
jmp 0xa35c
movq %rax, %r14
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xa371
callq 0x3360
leaq -0x278(%rbp), %rdi
callq 0x3100
movq %r14, %rdi
callq 0x35c0