// 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::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, int)
void entry::make_typed_float_vector(vector<char> &out, const string &in, int number )
{
	vector<string> split_string;
	int8_t size_type;
	int max_val = 0;
	out.resize(0);

	if (in == " " or in == "." or in == "")
	{
		size_type = (int8_t)0;
		size_type = size_type << 4;
		size_type = size_type | (int8_t)1;

		out.push_back( size_type );
		return;
	}

	header::tokenize(in, ',', split_string);
	if (number == -1)
		max_val = split_string.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)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; (int)ui<max_val; ui++)
	{
		if (ui < split_string.size() )
			value = (float)header::str2double(split_string[ui], 0x7F800001);
		else
			value = 0x7F800002;

		char *p = (char *)&value;

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

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movl %ecx, %ebp
movq %rdx, %r15
movq %rsi, %rbx
movq %rdi, %r14
xorps %xmm0, %xmm0
movaps %xmm0, 0x30(%rsp)
movq $0x0, 0x40(%rsp)
movl $0x0, 0xc(%rsp)
movq %rsi, %rdi
xorl %esi, %esi
callq 0xf31a
leaq 0x18432(%rip), %rsi     # 0x3910f
movq %r15, %rdi
callq 0x50e0
testl %eax, %eax
je 0x20d62
leaq 0x1951d(%rip), %rsi     # 0x3a20d
movq %r15, %rdi
callq 0x50e0
testl %eax, %eax
je 0x20d62
leaq 0x1a1fc(%rip), %rsi     # 0x3aeff
movq %r15, %rdi
callq 0x50e0
testl %eax, %eax
je 0x20d62
leaq 0x30(%rsp), %rdx
movq %r15, %rdi
movl $0x2c, %esi
callq 0x16a7e
movq 0x38(%rsp), %r15
subq 0x30(%rsp), %r15
shrq $0x5, %r15
cmpl $-0x1, %ebp
cmovnel %ebp, %r15d
movl %r15d, 0xc(%rsp)
cmpl $0xe, %r15d
jg 0x20d8f
movl %r15d, %eax
shlb $0x4, %al
orb $0x5, %al
movb %al, 0x10(%rsp)
movq 0x8(%rbx), %rsi
cmpq 0x10(%rbx), %rsi
je 0x20da7
movb %al, (%rsi)
incq 0x8(%rbx)
jmp 0x20e0d
movb $0x1, 0x10(%rsp)
movq 0x8(%rbx), %rsi
cmpq 0x10(%rbx), %rsi
je 0x20d7d
movb $0x1, (%rsi)
incq 0x8(%rbx)
jmp 0x20ed5
leaq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0x21a92
jmp 0x20ed5
movb $-0xb, 0x10(%rsp)
movq 0x8(%rbx), %rsi
cmpq 0x10(%rbx), %rsi
je 0x20db6
movb $-0xb, (%rsi)
incq 0x8(%rbx)
jmp 0x20dc3
leaq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0x21a92
jmp 0x20e0d
leaq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0x21a92
xorps %xmm0, %xmm0
leaq 0x10(%rsp), %rsi
movaps %xmm0, (%rsi)
movq $0x0, 0x10(%rsi)
leaq 0xc(%rsp), %rdx
movq %r14, %rdi
movl $0x1, %ecx
callq 0x1fd74
movq 0x8(%rbx), %rsi
movq 0x10(%rsp), %rdx
movq 0x18(%rsp), %rcx
movq %rbx, %rdi
callq 0x1be7e
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x20e0d
callq 0x5410
testl %r15d, %r15d
jle 0x20ed5
movl %r15d, %r15d
xorl %r12d, %r12d
leaq 0x194a1(%rip), %r13     # 0x3a2c4
leaq 0xb(%rsp), %r14
movq 0x30(%rsp), %rdi
movq 0x38(%rsp), %rax
subq %rdi, %rax
sarq $0x5, %rax
movss 0x1947f(%rip), %xmm0    # 0x3a2c0
cmpq %r12, %rax
jbe 0x20e61
movq %r12, %rax
shlq $0x5, %rax
addq %rax, %rdi
movsd 0x19448(%rip), %xmm0    # 0x3a2a0
callq 0x173b2
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x10(%rsp)
xorl %ebp, %ebp
movss 0x10(%rsp), %xmm0
ucomiss 0x1944a(%rip), %xmm0    # 0x3a2c0
jne 0x20e9a
jp 0x20e9a
movb (%rbp,%r13), %al
movb %al, 0xb(%rsp)
movq 0x8(%rbx), %rsi
cmpq 0x10(%rbx), %rsi
jne 0x20eae
movq %rbx, %rdi
movq %r14, %rdx
callq 0x21a92
jmp 0x20eb4
leaq (%rsp,%rbp), %rdx
addq $0x10, %rdx
movq 0x8(%rbx), %rsi
cmpq 0x10(%rbx), %rsi
je 0x20ebf
movb (%rdx), %al
movb %al, (%rsi)
incq 0x8(%rbx)
incq %rbp
cmpq $0x4, %rbp
jne 0x20e69
jmp 0x20ec9
movq %rbx, %rdi
callq 0x21bce
jmp 0x20eb4
incq %r12
cmpq %r15, %r12
jne 0x20e28
leaq 0x30(%rsp), %rdi
callq 0xc4f0
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x20f10
jmp 0x20f10
jmp 0x20ef4
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x20f13
callq 0x5410
jmp 0x20f13
jmp 0x20f10
jmp 0x20f10
jmp 0x20f10
jmp 0x20f10
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0xc4f0
movq %rbx, %rdi
callq 0x57d0
nop