// File: 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:
subq $0x138, %rsp            # imm = 0x138
movq %rdi, 0x130(%rsp)
movq %rsi, 0x128(%rsp)
movq %rdx, 0x120(%rsp)
movl %ecx, 0x11c(%rsp)
movq 0x130(%rsp), %rax
movq %rax, 0x50(%rsp)
leaq 0x100(%rsp), %rdi
callq 0x10260
movl $0x0, 0xf8(%rsp)
movq 0x128(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x20910
jmp 0x47ffe
cmpl $-0x1, 0x11c(%rsp)
jne 0x48134
movl $0x0, 0xe8(%rsp)
movl $0x0, 0xe4(%rsp)
movl 0xe4(%rsp), %eax
movq %rax, 0x48(%rsp)
movq 0x120(%rsp), %rdi
callq 0x10270
movq %rax, %rcx
movq 0x48(%rsp), %rax
cmpq %rcx, %rax
jae 0x48121
movq 0x120(%rsp), %rdi
movl 0xe4(%rsp), %eax
movl %eax, %esi
callq 0x497f0
movq %rax, %rdi
callq 0x6500
movq %rax, 0xd8(%rsp)
movq 0x120(%rsp), %rdi
movl 0xe4(%rsp), %eax
movl %eax, %esi
callq 0x497f0
movq %rax, %rdi
callq 0x6aa0
movq %rax, 0xd0(%rsp)
movb $0x2c, 0xcf(%rsp)
movq 0xd8(%rsp), %rdi
movq 0xd0(%rsp), %rsi
leaq 0xcf(%rsp), %rdx
callq 0x498d0
movq %rax, 0x40(%rsp)
jmp 0x480c4
movq 0x40(%rsp), %rax
movl %eax, 0xe8(%rsp)
movl 0xe8(%rsp), %eax
cmpl 0xf8(%rsp), %eax
jbe 0x48109
movl 0xe8(%rsp), %eax
movl %eax, 0xf8(%rsp)
jmp 0x48109
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf0(%rsp)
movl %eax, 0xec(%rsp)
jmp 0x484e3
jmp 0x4810b
movl 0xe4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xe4(%rsp)
jmp 0x48022
movl 0xf8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xf8(%rsp)
jmp 0x48142
movl 0x11c(%rsp), %eax
movl %eax, 0xf8(%rsp)
cmpl $0xf, 0xf8(%rsp)
jae 0x481a5
movb 0xf8(%rsp), %al
movb %al, 0xff(%rsp)
movb 0xff(%rsp), %al
shlb $0x4, %al
movb %al, 0xff(%rsp)
movb 0xff(%rsp), %al
orb $0x5, %al
movb %al, 0xff(%rsp)
movq 0x128(%rsp), %rdi
movb 0xff(%rsp), %al
movb %al, 0xce(%rsp)
leaq 0xce(%rsp), %rsi
callq 0x49620
jmp 0x481a0
jmp 0x482f7
movb $0xf, 0xff(%rsp)
movb 0xff(%rsp), %al
shlb $0x4, %al
movb %al, 0xff(%rsp)
movb 0xff(%rsp), %al
orb $0x5, %al
movb %al, 0xff(%rsp)
movq 0x128(%rsp), %rdi
movb 0xff(%rsp), %al
movb %al, 0xcd(%rsp)
leaq 0xcd(%rsp), %rsi
callq 0x49620
jmp 0x481f3
leaq 0xb0(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0x2a300
movq 0x50(%rsp), %rdi
movq 0x38(%rsp), %rsi
movl 0xf8(%rsp), %eax
movl %eax, 0xac(%rsp)
leaq 0xac(%rsp), %rdx
movl $0x1, %ecx
callq 0x45d20
jmp 0x48231
movq 0x128(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0x27020
movq %rax, 0x98(%rsp)
leaq 0xa0(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0x39b20
leaq 0xb0(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0x26ff0
movq 0x20(%rsp), %rdi
movq %rax, 0x90(%rsp)
callq 0x27020
movq 0x28(%rsp), %rdi
movq %rax, 0x88(%rsp)
movq 0xa0(%rsp), %rsi
movq 0x90(%rsp), %rdx
movq 0x88(%rsp), %rcx
callq 0x39a60
movq %rax, 0x30(%rsp)
jmp 0x482b5
movq 0x30(%rsp), %rax
movq %rax, 0x80(%rsp)
leaq 0xb0(%rsp), %rdi
callq 0x267c0
jmp 0x482f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf0(%rsp)
movl %eax, 0xec(%rsp)
leaq 0xb0(%rsp), %rdi
callq 0x267c0
jmp 0x484e3
movl 0x2cea7(%rip), %eax     # 0x751a4
movl %eax, 0x78(%rsp)
movl 0x2cea1(%rip), %eax     # 0x751a8
movl %eax, 0x74(%rsp)
movl $0x0, 0x70(%rsp)
movl 0x70(%rsp), %eax
movq %rax, 0x18(%rsp)
movq 0x120(%rsp), %rdi
callq 0x10270
movq %rax, %rcx
movq 0x18(%rsp), %rax
cmpq %rcx, %rax
jae 0x484ce
movq 0x120(%rsp), %rdi
movl 0x70(%rsp), %eax
movl %eax, %esi
callq 0x497f0
movq %rax, %rdi
movl $0x2c, %esi
leaq 0x100(%rsp), %rdx
callq 0x2fa70
jmp 0x48364
movl $0x0, 0x6c(%rsp)
movl 0x6c(%rsp), %eax
cmpl 0xf8(%rsp), %eax
jae 0x484bc
movl 0x6c(%rsp), %eax
movq %rax, 0x10(%rsp)
leaq 0x100(%rsp), %rdi
callq 0x10270
movq %rax, %rcx
movq 0x10(%rsp), %rax
cmpq %rcx, %rax
jae 0x483dd
movl 0x6c(%rsp), %eax
movl %eax, %esi
leaq 0x100(%rsp), %rdi
callq 0x10290
movq %rax, %rdi
movsd 0x2cdda(%rip), %xmm0    # 0x75198
callq 0x306c0
movsd %xmm0, 0x8(%rsp)
jmp 0x483cb
movsd 0x8(%rsp), %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x7c(%rsp)
jmp 0x483eb
movss 0x2cdbb(%rip), %xmm0    # 0x751a0
movss %xmm0, 0x7c(%rsp)
leaq 0x7c(%rsp), %rax
movq %rax, 0x60(%rsp)
movl $0x0, 0x5c(%rsp)
movl 0x5c(%rsp), %eax
cmpq $0x4, %rax
jae 0x484aa
movss 0x7c(%rsp), %xmm0
movss 0x2cd87(%rip), %xmm1    # 0x751a0
ucomiss %xmm1, %xmm0
jne 0x48442
jp 0x48442
movq 0x128(%rsp), %rdi
movl 0x5c(%rsp), %eax
movb 0x78(%rsp,%rax), %al
movb %al, 0x5b(%rsp)
leaq 0x5b(%rsp), %rsi
callq 0x49620
jmp 0x48440
jmp 0x48498
movss 0x7c(%rsp), %xmm0
movss 0x2cd50(%rip), %xmm1    # 0x751a0
ucomiss %xmm1, %xmm0
jne 0x48479
jp 0x48479
movq 0x128(%rsp), %rdi
movl 0x5c(%rsp), %eax
movb 0x74(%rsp,%rax), %al
movb %al, 0x5a(%rsp)
leaq 0x5a(%rsp), %rsi
callq 0x49620
jmp 0x48477
jmp 0x48496
movq 0x128(%rsp), %rdi
movq 0x60(%rsp), %rsi
movl 0x5c(%rsp), %eax
addq %rax, %rsi
callq 0x49810
jmp 0x48494
jmp 0x48496
jmp 0x48498
jmp 0x4849a
movl 0x5c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x5c(%rsp)
jmp 0x483fd
jmp 0x484ac
movl 0x6c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x6c(%rsp)
jmp 0x4836c
jmp 0x484be
movl 0x70(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x70(%rsp)
jmp 0x48313
leaq 0x100(%rsp), %rdi
callq 0x10cc0
addq $0x138, %rsp            # imm = 0x138
retq
leaq 0x100(%rsp), %rdi
callq 0x10cc0
movq 0xf0(%rsp), %rdi
callq 0x69e0
nopl (%rax)