// File: /workspace/github_cpp_makefile_star2_O1/auton1[P]viterbi/entry.cpp
// Function: entry::make_typed_float_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_float_vector(vector<char> &out, const vector<string> &in, int number )
{
	vector<string> split_string;
	int8_t size_type;
	unsigned int max_val = 0;
	out.resize(0);

	if (number == -1)
	{
		unsigned int tmp_int = 0;
		for (unsigned int ui=0; ui<in.size(); ui++)
		{
			tmp_int = count(in[ui].begin(), in[ui].end(), ',');
			if (tmp_int > max_val)
				max_val = tmp_int;
		}
		max_val++;
	}
	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)5;
		out.push_back( size_type );
	}
	else
	{
		size_type = (int8_t)15;
		size_type = size_type << 4;
		size_type = size_type | (int8_t)5;
		out.push_back( size_type );

		vector<char> size_vector;
		make_typed_int(size_vector, max_val, true );
		out.insert(out.end(), size_vector.begin(), size_vector.end());
	}

	float value;
	unsigned char missing[4] = {0x01, 0x00, 0x80, 0x7F};
	unsigned char end[4] = {0x02, 0x00, 0x80, 0x7F};
	for (unsigned int ui=0; ui<in.size(); ui++)
	{
		header::tokenize(in[ui], ',', split_string);
		for(unsigned int uj=0; uj<max_val; uj++)
		{
			if (uj < split_string.size() )
				value = (float)header::str2double(split_string[uj], 0x7F800001);
			else
				value = (float)0x7F800002;

			char *p = (char *)&value;

			for(unsigned int uk=0; uk<sizeof(value); uk++)
			{
				if (value == float(0x7F800001))
					out.push_back( missing[uk] );
				else if (value == float(0x7F800002))
					out.push_back( end[uk] );
				else
					out.push_back( p[uk] );
			}
		}
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movl %ecx, %ebx
movq %rdx, 0x30(%rsp)
movq %rsi, %r14
movq %rdi, %r15
xorps %xmm0, %xmm0
movaps %xmm0, 0x40(%rsp)
movq $0x0, 0x50(%rsp)
movq %rsi, %rdi
xorl %esi, %esi
callq 0xf31a
cmpl $-0x1, %ebx
jne 0x20fc8
movq 0x30(%rsp), %rcx
movq (%rcx), %rax
movq 0x8(%rcx), %rcx
subq %rax, %rcx
je 0x20fc3
sarq $0x5, %rcx
xorl %edx, %edx
xorl %ebx, %ebx
movq %rdx, %r8
shlq $0x5, %r8
movq 0x8(%rax,%r8), %rdi
movl $0x0, %esi
testq %rdi, %rdi
je 0x20fb0
movq (%rax,%r8), %r8
xorl %r9d, %r9d
xorl %esi, %esi
xorl %r10d, %r10d
cmpb $0x2c, (%r8,%r9)
sete %r10b
addq %r10, %rsi
incq %r9
cmpq %r9, %rdi
jne 0x20f99
cmpl %esi, %ebx
cmovbel %esi, %ebx
incq %rdx
movl %edx, %esi
cmpq %rsi, %rcx
ja 0x20f7a
incl %ebx
jmp 0x20fc8
movl $0x1, %ebx
cmpl $0xe, %ebx
ja 0x20fed
movl %ebx, %eax
shlb $0x4, %al
orb $0x5, %al
movb %al, 0x10(%rsp)
movq 0x8(%r14), %rsi
cmpq 0x10(%r14), %rsi
je 0x21005
movb %al, (%rsi)
incq 0x8(%r14)
jmp 0x2106d
movb $-0xb, 0x10(%rsp)
movq 0x8(%r14), %rsi
cmpq 0x10(%r14), %rsi
je 0x21014
movb $-0xb, (%rsi)
incq 0x8(%r14)
jmp 0x21021
leaq 0x10(%rsp), %rdx
movq %r14, %rdi
callq 0x21a92
jmp 0x2106d
leaq 0x10(%rsp), %rdx
movq %r14, %rdi
callq 0x21a92
xorps %xmm0, %xmm0
leaq 0x10(%rsp), %rsi
movaps %xmm0, (%rsi)
movq $0x0, 0x10(%rsi)
leaq 0xc(%rsp), %rdx
movl %ebx, (%rdx)
movq %r15, %rdi
movl $0x1, %ecx
callq 0x1fd74
movq 0x8(%r14), %rsi
movq 0x10(%rsp), %rdx
movq 0x18(%rsp), %rcx
movq %r14, %rdi
callq 0x1be7e
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x2106d
callq 0x5410
movq 0x30(%rsp), %rcx
movq (%rcx), %rax
cmpq %rax, 0x8(%rcx)
je 0x21191
movl %ebx, %r13d
xorl %edi, %edi
leaq 0x19239(%rip), %r15     # 0x3a2c4
leaq 0xc(%rsp), %r12
xorl %edx, %edx
movl %ebx, 0x3c(%rsp)
movq %rdx, 0x60(%rsp)
shlq $0x5, %rdi
addq %rax, %rdi
movl $0x2c, %esi
leaq 0x40(%rsp), %rdx
callq 0x16a7e
testl %ebx, %ebx
je 0x21167
xorl %ebp, %ebp
movq 0x40(%rsp), %rdi
movq 0x48(%rsp), %rax
subq %rdi, %rax
sarq $0x5, %rax
movss 0x191ec(%rip), %xmm0    # 0x3a2c0
cmpq %rbp, %rax
jbe 0x210f4
movq %rbp, %rax
shlq $0x5, %rax
addq %rax, %rdi
movsd 0x191b5(%rip), %xmm0    # 0x3a2a0
callq 0x173b2
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x10(%rsp)
xorl %ebx, %ebx
movss 0x10(%rsp), %xmm0
ucomiss 0x191b7(%rip), %xmm0    # 0x3a2c0
jne 0x2112c
jp 0x2112c
movb (%rbx,%r15), %al
movb %al, 0xc(%rsp)
movq 0x8(%r14), %rsi
cmpq 0x10(%r14), %rsi
jne 0x21140
movq %r14, %rdi
movq %r12, %rdx
callq 0x21a92
jmp 0x21146
leaq (%rsp,%rbx), %rdx
addq $0x10, %rdx
movq 0x8(%r14), %rsi
cmpq 0x10(%r14), %rsi
je 0x21151
movb (%rdx), %al
movb %al, (%rsi)
incq 0x8(%r14)
incq %rbx
cmpq $0x4, %rbx
jne 0x210fc
jmp 0x2115b
movq %r14, %rdi
callq 0x21bce
jmp 0x21146
incq %rbp
cmpq %r13, %rbp
jne 0x210bb
movq 0x60(%rsp), %rdx
incl %edx
movq 0x30(%rsp), %rcx
movq (%rcx), %rax
movq 0x8(%rcx), %rcx
subq %rax, %rcx
sarq $0x5, %rcx
movq %rdx, %rdi
cmpq %rdx, %rcx
movl 0x3c(%rsp), %ebx
ja 0x21096
leaq 0x40(%rsp), %rdi
callq 0xc4f0
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x211cc
jmp 0x211cc
jmp 0x211b0
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x211cf
callq 0x5410
jmp 0x211cf
jmp 0x211cc
jmp 0x211cc
jmp 0x211cc
jmp 0x211cc
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0xc4f0
movq %rbx, %rdi
callq 0x57d0
nop