// File: auton1[P]viterbi/entry_getters.cpp
// Function: entry::get_INFO_vector(std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>> const&, bool) const
vector<pair<string, string> > entry::get_INFO_vector(const set<string> &INFO_to_keep, bool keep_all_INFO) const
{
	assert(parsed_INFO == true);

	vector<pair<string, string> > out_vector;
	if (keep_all_INFO == true)
		return INFO;

	if ( (!INFO.empty()) && (!INFO_to_keep.empty()) )
	{
		string key;
		for (unsigned int ui=0; ui<INFO.size();ui++)
		{
			key = INFO[ui].first;
			if ( keep_all_INFO or (INFO_to_keep.find(key) != INFO_to_keep.end() ) )
				out_vector.push_back( INFO[ui] );
		}
	}

	return out_vector;
}

// Assembly:
subq $0xb8, %rsp
movq %rdi, 0x20(%rsp)
movb %cl, %al
movq %rdi, %rcx
movq %rcx, 0x28(%rsp)
movq %rdi, 0xb0(%rsp)
movq %rsi, 0xa8(%rsp)
movq %rdx, 0xa0(%rsp)
andb $0x1, %al
movb %al, 0x9f(%rsp)
movq 0xa8(%rsp), %rax
movq %rax, 0x30(%rsp)
movb 0x3dc(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x4b546
jmp 0x4b565
leaq 0x29f26(%rip), %rdi     # 0x75473
leaq 0x29d5c(%rip), %rsi     # 0x752b0
movl $0xdb, %edx
leaq 0x29f5f(%rip), %rcx     # 0x754bf
callq 0x6300
leaq 0x80(%rsp), %rdi
callq 0x39970
movb 0x9f(%rsp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x4b5bb
movq 0x20(%rsp), %rdi
movq 0x30(%rsp), %rsi
addq $0x480, %rsi            # imm = 0x480
callq 0x4d160
jmp 0x4b59b
movl $0x1, 0x70(%rsp)
jmp 0x4b729
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x78(%rsp)
movl %eax, 0x74(%rsp)
jmp 0x4b743
movq 0x30(%rsp), %rdi
addq $0x480, %rdi            # imm = 0x480
callq 0x4d0d0
testb $0x1, %al
jne 0x4b70f
movq 0xa0(%rsp), %rdi
callq 0x4d120
testb $0x1, %al
jne 0x4b70f
leaq 0x50(%rsp), %rdi
callq 0x67e0
movl $0x0, 0x4c(%rsp)
movq 0x30(%rsp), %rdi
movl 0x4c(%rsp), %eax
movq %rax, 0x18(%rsp)
addq $0x480, %rdi            # imm = 0x480
callq 0x39a20
movq %rax, %rcx
movq 0x18(%rsp), %rax
cmpq %rcx, %rax
jae 0x4b705
movq 0x30(%rsp), %rdi
addq $0x480, %rdi            # imm = 0x480
movl 0x4c(%rsp), %eax
movl %eax, %esi
callq 0x4d140
movq %rax, %rsi
leaq 0x50(%rsp), %rdi
callq 0x6060
jmp 0x4b64c
movb $0x1, %al
testb $0x1, 0x9f(%rsp)
movb %al, 0x17(%rsp)
jne 0x4b6a4
movq 0xa0(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x39780
movq %rax, 0x8(%rsp)
jmp 0x4b675
movq 0x8(%rsp), %rax
movq %rax, 0x40(%rsp)
movq 0xa0(%rsp), %rdi
callq 0x10ba0
movq %rax, 0x38(%rsp)
leaq 0x40(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x39760
movb %al, 0x17(%rsp)
movb 0x17(%rsp), %al
testb $0x1, %al
jne 0x4b6ae
jmp 0x4b6f3
movq 0x30(%rsp), %rdi
addq $0x480, %rdi            # imm = 0x480
movl 0x4c(%rsp), %eax
movl %eax, %esi
callq 0x4d140
movq %rax, %rsi
leaq 0x80(%rsp), %rdi
callq 0x4d260
jmp 0x4b6d7
jmp 0x4b6f3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x78(%rsp)
movl %eax, 0x74(%rsp)
leaq 0x50(%rsp), %rdi
callq 0x6b50
jmp 0x4b743
jmp 0x4b6f5
movl 0x4c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x4c(%rsp)
jmp 0x4b5fb
leaq 0x50(%rsp), %rdi
callq 0x6b50
movq 0x20(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x4d2d0
movl $0x1, 0x70(%rsp)
leaq 0x80(%rsp), %rdi
callq 0x399c0
movq 0x28(%rsp), %rax
addq $0xb8, %rsp
retq
leaq 0x80(%rsp), %rdi
callq 0x399c0
movq 0x78(%rsp), %rdi
callq 0x69e0
nopw (%rax,%rax)