// File: auton1[P]viterbi/bcf_entry_setters.cpp
// Function: bcf_entry::add_FORMAT_entry(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, unsigned int const&, unsigned int const&, unsigned int const&, unsigned int const&, unsigned int const&)
void bcf_entry::add_FORMAT_entry(const string &in, const unsigned int &fmt_key, const unsigned int &pos, const unsigned int &line_pos, const unsigned int &type, const unsigned int &size)
{
	FORMAT.push_back(in);
	FORMAT_to_idx[in] = pos;
	FORMAT_positions[pos] = line_pos;
	FORMAT_types[pos] = type;
	FORMAT_sizes[pos] = size;
	FORMAT_keys[pos] = fmt_key;

	if ( (type==1) or (type==7) )
		FORMAT_skip[pos] = ( sizeof(int8_t)*size );
	else if ( type==2 )
		FORMAT_skip[pos] = ( sizeof(int16_t)*size );
	else if ( (type==3) or (type==5) )
		FORMAT_skip[pos] = ( sizeof(int32_t)*size );
}

// Assembly:
subq $0x68, %rsp
movq 0x70(%rsp), %rax
movq %rdi, 0x60(%rsp)
movq %rsi, 0x58(%rsp)
movq %rdx, 0x50(%rsp)
movq %rcx, 0x48(%rsp)
movq %r8, 0x40(%rsp)
movq %r9, 0x38(%rsp)
movq 0x60(%rsp), %rdi
movq %rdi, 0x28(%rsp)
addq $0x498, %rdi            # imm = 0x498
movq 0x58(%rsp), %rsi
callq 0x2a190
movq 0x28(%rsp), %rdi
movq 0x48(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x18(%rsp)
addq $0x600, %rdi            # imm = 0x600
movq 0x58(%rsp), %rsi
callq 0x397e0
movl 0x18(%rsp), %ecx
movq 0x28(%rsp), %rdi
movl %ecx, (%rax)
movq 0x40(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x1c(%rsp)
addq $0x640, %rdi            # imm = 0x640
movq 0x48(%rsp), %rax
movl (%rax), %eax
movl %eax, %esi
callq 0xe8b0
movl 0x1c(%rsp), %ecx
movq 0x28(%rsp), %rdi
movl %ecx, (%rax)
movq 0x38(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x20(%rsp)
addq $0x658, %rdi            # imm = 0x658
movq 0x48(%rsp), %rax
movl (%rax), %eax
movl %eax, %esi
callq 0xe8b0
movl 0x20(%rsp), %ecx
movq 0x28(%rsp), %rdi
movl %ecx, (%rax)
movq 0x70(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x24(%rsp)
addq $0x670, %rdi            # imm = 0x670
movq 0x48(%rsp), %rax
movl (%rax), %eax
movl %eax, %esi
callq 0xe8b0
movl 0x24(%rsp), %ecx
movq 0x28(%rsp), %rdi
movl %ecx, (%rax)
movq 0x50(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x34(%rsp)
addq $0x6a0, %rdi            # imm = 0x6A0
movq 0x48(%rsp), %rax
movl (%rax), %eax
movl %eax, %esi
callq 0xe8b0
movl 0x34(%rsp), %ecx
movl %ecx, (%rax)
movq 0x38(%rsp), %rax
cmpl $0x1, (%rax)
je 0x57b69
movq 0x38(%rsp), %rax
cmpl $0x7, (%rax)
jne 0x57b9d
movq 0x28(%rsp), %rdi
movq 0x70(%rsp), %rax
movl (%rax), %eax
shlq $0x0, %rax
movl %eax, 0x14(%rsp)
addq $0x688, %rdi            # imm = 0x688
movq 0x48(%rsp), %rax
movl (%rax), %eax
movl %eax, %esi
callq 0xe8b0
movl 0x14(%rsp), %ecx
movl %ecx, (%rax)
jmp 0x57c1e
movq 0x38(%rsp), %rax
cmpl $0x2, (%rax)
jne 0x57bd7
movq 0x28(%rsp), %rdi
movq 0x70(%rsp), %rax
movl (%rax), %eax
shlq %rax
movl %eax, 0x10(%rsp)
addq $0x688, %rdi            # imm = 0x688
movq 0x48(%rsp), %rax
movl (%rax), %eax
movl %eax, %esi
callq 0xe8b0
movl 0x10(%rsp), %ecx
movl %ecx, (%rax)
jmp 0x57c1c
movq 0x38(%rsp), %rax
cmpl $0x3, (%rax)
je 0x57beb
movq 0x38(%rsp), %rax
cmpl $0x5, (%rax)
jne 0x57c1a
movq 0x28(%rsp), %rdi
movq 0x70(%rsp), %rax
movl (%rax), %eax
shlq $0x2, %rax
movl %eax, 0xc(%rsp)
addq $0x688, %rdi            # imm = 0x688
movq 0x48(%rsp), %rax
movl (%rax), %eax
movl %eax, %esi
callq 0xe8b0
movl 0xc(%rsp), %ecx
movl %ecx, (%rax)
jmp 0x57c1c
jmp 0x57c1e
addq $0x68, %rsp
retq
nopw %cs:(%rax,%rax)