// File: auton1[P]viterbi/entry.cpp
// Function: entry::make_typed_string_vector(std::vector<char, std::allocator<char>>&, std::vector<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&, int)
void entry::make_typed_string_vector( vector<char> &out, const vector<string> &in, int number )
{
	vector<char> tmp_char;
	int max_val = 0;
	int8_t size_type;
	out.resize(0);

	if (number == -1)
	{
		for (unsigned int ui=0; ui<in.size(); ui++)
		{
			if ((int)in[ui].size() > max_val)
				max_val = in[ui].size();
		}
	}
	else
		max_val = number;

	if (max_val < 15)
	{
		size_type = (int8_t)max_val;
		size_type = size_type << 4;
		size_type = size_type | (int8_t)7;

		out.push_back( size_type );
	}
	else
	{
		size_type = (int8_t)15;
		size_type = size_type << 4;
		size_type = size_type | (int8_t)7;

		out.push_back( size_type );

		make_typed_int(tmp_char, max_val, true);
		out.insert( out.end(), tmp_char.begin(), tmp_char.end() );
	}

	for (unsigned int ui=0; ui<in.size(); ui++)
	{
		for (unsigned int uj=0; (int)uj<max_val; uj++)
		{
			if (in[ui] == ".")
				out.push_back( '\0' );
			else if (uj<in[ui].size())
				out.push_back( in[ui][uj] );
			else
				out.push_back( '\0' );
		}
	}
}

// Assembly:
subq $0xd8, %rsp
movq %rdi, 0xd0(%rsp)
movq %rsi, 0xc8(%rsp)
movq %rdx, 0xc0(%rsp)
movl %ecx, 0xbc(%rsp)
movq 0xd0(%rsp), %rax
movq %rax, 0x40(%rsp)
leaq 0xa0(%rsp), %rdi
callq 0x2a300
movl $0x0, 0x9c(%rsp)
movq 0xc8(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x20910
jmp 0x460ce
cmpl $-0x1, 0xbc(%rsp)
jne 0x4619f
movl $0x0, 0x88(%rsp)
movl 0x88(%rsp), %eax
movq %rax, 0x38(%rsp)
movq 0xc0(%rsp), %rdi
callq 0x10270
movq %rax, %rcx
movq 0x38(%rsp), %rax
cmpq %rcx, %rax
jae 0x4619d
movq 0xc0(%rsp), %rdi
movl 0x88(%rsp), %eax
movl %eax, %esi
callq 0x497f0
movq %rax, %rdi
callq 0x6350
cmpl 0x9c(%rsp), %eax
jle 0x46185
movq 0xc0(%rsp), %rdi
movl 0x88(%rsp), %eax
movl %eax, %esi
callq 0x497f0
movq %rax, %rdi
callq 0x6350
movl %eax, 0x9c(%rsp)
jmp 0x46185
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x90(%rsp)
movl %eax, 0x8c(%rsp)
leaq 0xa0(%rsp), %rdi
callq 0x267c0
jmp 0x46451
jmp 0x46187
movl 0x88(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x88(%rsp)
jmp 0x460e7
jmp 0x461ad
movl 0xbc(%rsp), %eax
movl %eax, 0x9c(%rsp)
cmpl $0xf, 0x9c(%rsp)
jge 0x46210
movb 0x9c(%rsp), %al
movb %al, 0x9b(%rsp)
movb 0x9b(%rsp), %al
shlb $0x4, %al
movb %al, 0x9b(%rsp)
movb 0x9b(%rsp), %al
orb $0x7, %al
movb %al, 0x9b(%rsp)
movq 0xc8(%rsp), %rdi
movb 0x9b(%rsp), %al
movb %al, 0x87(%rsp)
leaq 0x87(%rsp), %rsi
callq 0x49620
jmp 0x4620b
jmp 0x462f5
movb $0xf, 0x9b(%rsp)
movb 0x9b(%rsp), %al
shlb $0x4, %al
movb %al, 0x9b(%rsp)
movb 0x9b(%rsp), %al
orb $0x7, %al
movb %al, 0x9b(%rsp)
movq 0xc8(%rsp), %rdi
movb 0x9b(%rsp), %al
movb %al, 0x86(%rsp)
leaq 0x86(%rsp), %rsi
callq 0x49620
jmp 0x4625e
movq 0x40(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
leaq 0x9c(%rsp), %rdx
movl $0x1, %ecx
callq 0x45d20
jmp 0x4627f
movq 0xc8(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0x27020
movq %rax, 0x70(%rsp)
leaq 0x78(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x39b20
leaq 0xa0(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0x26ff0
movq 0x20(%rsp), %rdi
movq %rax, 0x68(%rsp)
callq 0x27020
movq 0x28(%rsp), %rdi
movq %rax, 0x60(%rsp)
movq 0x78(%rsp), %rsi
movq 0x68(%rsp), %rdx
movq 0x60(%rsp), %rcx
callq 0x39a60
movq %rax, 0x30(%rsp)
jmp 0x462eb
movq 0x30(%rsp), %rax
movq %rax, 0x58(%rsp)
movl $0x0, 0x54(%rsp)
movl 0x54(%rsp), %eax
movq %rax, 0x18(%rsp)
movq 0xc0(%rsp), %rdi
callq 0x10270
movq %rax, %rcx
movq 0x18(%rsp), %rax
cmpq %rcx, %rax
jae 0x4643c
movl $0x0, 0x50(%rsp)
movl 0x50(%rsp), %eax
cmpl 0x9c(%rsp), %eax
jge 0x4642a
movq 0xc0(%rsp), %rdi
movl 0x54(%rsp), %eax
movl %eax, %esi
callq 0x497f0
movq %rax, %rdi
leaq 0x2ed84(%rip), %rsi     # 0x750de
callq 0xea20
movb %al, 0x17(%rsp)
jmp 0x46365
movb 0x17(%rsp), %al
testb $0x1, %al
jne 0x4636f
jmp 0x4638d
movq 0xc8(%rsp), %rdi
movb $0x0, 0x4f(%rsp)
leaq 0x4f(%rsp), %rsi
callq 0x49620
jmp 0x46388
jmp 0x46418
movl 0x50(%rsp), %eax
movq %rax, 0x8(%rsp)
movq 0xc0(%rsp), %rdi
movl 0x54(%rsp), %eax
movl %eax, %esi
callq 0x497f0
movq %rax, %rdi
callq 0x6350
movq %rax, %rcx
movq 0x8(%rsp), %rax
cmpq %rcx, %rax
jae 0x463fb
movq 0xc8(%rsp), %rax
movq %rax, (%rsp)
movq 0xc0(%rsp), %rdi
movl 0x54(%rsp), %eax
movl %eax, %esi
callq 0x497f0
movq %rax, %rdi
movl 0x50(%rsp), %eax
movl %eax, %esi
callq 0x6610
movq (%rsp), %rdi
movq %rax, %rsi
callq 0x49810
jmp 0x463f9
jmp 0x46416
movq 0xc8(%rsp), %rdi
movb $0x0, 0x4e(%rsp)
leaq 0x4e(%rsp), %rsi
callq 0x49620
jmp 0x46414
jmp 0x46416
jmp 0x46418
jmp 0x4641a
movl 0x50(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x50(%rsp)
jmp 0x4632c
jmp 0x4642c
movl 0x54(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x54(%rsp)
jmp 0x462fd
leaq 0xa0(%rsp), %rdi
callq 0x267c0
addq $0xd8, %rsp
retq
movq 0x90(%rsp), %rdi
callq 0x69e0
nop