// File: 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:
subq $0xf8, %rsp
movq %rdi, 0xf0(%rsp)
movq %rsi, 0xe8(%rsp)
movq %rdx, 0xe0(%rsp)
movl %ecx, 0xdc(%rsp)
movq 0xf0(%rsp), %rax
movq %rax, 0x38(%rsp)
leaq 0xc0(%rsp), %rdi
callq 0x10260
movl $0x0, 0xb8(%rsp)
movq 0xe8(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x20910
jmp 0x47b2e
movq 0xe0(%rsp), %rdi
leaq 0x2c567(%rip), %rsi     # 0x740a4
callq 0xea20
movb %al, 0x37(%rsp)
jmp 0x47b48
movb 0x37(%rsp), %al
testb $0x1, %al
jne 0x47b9a
jmp 0x47b52
movq 0xe0(%rsp), %rdi
leaq 0x2d57d(%rip), %rsi     # 0x750de
callq 0xea20
movb %al, 0x36(%rsp)
jmp 0x47b6c
movb 0x36(%rsp), %al
testb $0x1, %al
jne 0x47b9a
jmp 0x47b76
movq 0xe0(%rsp), %rdi
leaq 0x2e1a4(%rip), %rsi     # 0x75d29
callq 0xea20
movb %al, 0x35(%rsp)
jmp 0x47b90
movb 0x35(%rsp), %al
testb $0x1, %al
jne 0x47b9a
jmp 0x47c11
movb $0x0, 0xbf(%rsp)
movb 0xbf(%rsp), %al
shlb $0x4, %al
movb %al, 0xbf(%rsp)
movb 0xbf(%rsp), %al
orb $0x1, %al
movb %al, 0xbf(%rsp)
movq 0xe8(%rsp), %rdi
movb 0xbf(%rsp), %al
movb %al, 0xab(%rsp)
leaq 0xab(%rsp), %rsi
callq 0x49620
jmp 0x47be8
movl $0x1, 0xa4(%rsp)
jmp 0x47f62
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb0(%rsp)
movl %eax, 0xac(%rsp)
jmp 0x47f77
movq 0xe0(%rsp), %rdi
movl $0x2c, %esi
leaq 0xc0(%rsp), %rdx
callq 0x2fa70
jmp 0x47c2d
cmpl $-0x1, 0xdc(%rsp)
jne 0x47c4d
leaq 0xc0(%rsp), %rdi
callq 0x10270
movl %eax, 0xb8(%rsp)
jmp 0x47c5b
movl 0xdc(%rsp), %eax
movl %eax, 0xb8(%rsp)
cmpl $0xf, 0xb8(%rsp)
jge 0x47cbe
movb 0xb8(%rsp), %al
movb %al, 0xbf(%rsp)
movb 0xbf(%rsp), %al
shlb $0x4, %al
movb %al, 0xbf(%rsp)
movb 0xbf(%rsp), %al
orb $0x5, %al
movb %al, 0xbf(%rsp)
movq 0xe8(%rsp), %rdi
movb 0xbf(%rsp), %al
movb %al, 0xa3(%rsp)
leaq 0xa3(%rsp), %rsi
callq 0x49620
jmp 0x47cb9
jmp 0x47ded
movb $0xf, 0xbf(%rsp)
movb 0xbf(%rsp), %al
shlb $0x4, %al
movb %al, 0xbf(%rsp)
movb 0xbf(%rsp), %al
orb $0x5, %al
movb %al, 0xbf(%rsp)
movq 0xe8(%rsp), %rdi
movb 0xbf(%rsp), %al
movb %al, 0xa2(%rsp)
leaq 0xa2(%rsp), %rsi
callq 0x49620
jmp 0x47d0c
leaq 0x88(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0x2a300
movq 0x38(%rsp), %rdi
movq 0x28(%rsp), %rsi
leaq 0xb8(%rsp), %rdx
movl $0x1, %ecx
callq 0x45d20
jmp 0x47d3c
movq 0xe8(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0x27020
movq %rax, 0x78(%rsp)
leaq 0x80(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x39b20
leaq 0x88(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0x26ff0
movq 0x10(%rsp), %rdi
movq %rax, 0x70(%rsp)
callq 0x27020
movq 0x18(%rsp), %rdi
movq %rax, 0x68(%rsp)
movq 0x80(%rsp), %rsi
movq 0x70(%rsp), %rdx
movq 0x68(%rsp), %rcx
callq 0x39a60
movq %rax, 0x20(%rsp)
jmp 0x47dae
movq 0x20(%rsp), %rax
movq %rax, 0x60(%rsp)
leaq 0x88(%rsp), %rdi
callq 0x267c0
jmp 0x47ded
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb0(%rsp)
movl %eax, 0xac(%rsp)
leaq 0x88(%rsp), %rdi
callq 0x267c0
jmp 0x47f77
movl 0x2d3b1(%rip), %eax     # 0x751a4
movl %eax, 0x58(%rsp)
movl 0x2d3ab(%rip), %eax     # 0x751a8
movl %eax, 0x54(%rsp)
movl $0x0, 0x50(%rsp)
movl 0x50(%rsp), %eax
cmpl 0xb8(%rsp), %eax
jge 0x47f57
movl 0x50(%rsp), %eax
movq %rax, 0x8(%rsp)
leaq 0xc0(%rsp), %rdi
callq 0x10270
movq %rax, %rcx
movq 0x8(%rsp), %rax
cmpq %rcx, %rax
jae 0x47e78
movl 0x50(%rsp), %eax
movl %eax, %esi
leaq 0xc0(%rsp), %rdi
callq 0x10290
movq %rax, %rdi
movsd 0x2d33d(%rip), %xmm0    # 0x75198
callq 0x306c0
movsd %xmm0, (%rsp)
jmp 0x47e67
movsd (%rsp), %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x5c(%rsp)
jmp 0x47e86
movss 0x2d320(%rip), %xmm0    # 0x751a0
movss %xmm0, 0x5c(%rsp)
leaq 0x5c(%rsp), %rax
movq %rax, 0x48(%rsp)
movl $0x0, 0x44(%rsp)
movl 0x44(%rsp), %eax
cmpq $0x4, %rax
jae 0x47f45
movss 0x5c(%rsp), %xmm0
movss 0x2d2ec(%rip), %xmm1    # 0x751a0
ucomiss %xmm1, %xmm0
jne 0x47edd
jp 0x47edd
movq 0xe8(%rsp), %rdi
movl 0x44(%rsp), %eax
movb 0x58(%rsp,%rax), %al
movb %al, 0x43(%rsp)
leaq 0x43(%rsp), %rsi
callq 0x49620
jmp 0x47edb
jmp 0x47f33
movss 0x5c(%rsp), %xmm0
movss 0x2d2b5(%rip), %xmm1    # 0x751a0
ucomiss %xmm1, %xmm0
jne 0x47f14
jp 0x47f14
movq 0xe8(%rsp), %rdi
movl 0x44(%rsp), %eax
movb 0x54(%rsp,%rax), %al
movb %al, 0x42(%rsp)
leaq 0x42(%rsp), %rsi
callq 0x49620
jmp 0x47f12
jmp 0x47f31
movq 0xe8(%rsp), %rdi
movq 0x48(%rsp), %rsi
movl 0x44(%rsp), %eax
addq %rax, %rsi
callq 0x49810
jmp 0x47f2f
jmp 0x47f31
jmp 0x47f33
jmp 0x47f35
movl 0x44(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x44(%rsp)
jmp 0x47e98
jmp 0x47f47
movl 0x50(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x50(%rsp)
jmp 0x47e09
movl $0x0, 0xa4(%rsp)
leaq 0xc0(%rsp), %rdi
callq 0x10cc0
addq $0xf8, %rsp
retq
leaq 0xc0(%rsp), %rdi
callq 0x10cc0
movq 0xb0(%rsp), %rdi
callq 0x69e0
nopw %cs:(%rax,%rax)