// File: auton1[P]viterbi/entry.cpp
// Function: entry::make_typed_string(std::vector<char, std::allocator<char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool)
void entry::make_typed_string(vector<char> &out, const string &in, bool typed)
{
	vector<char> tmp_vector;
	out.resize(0);

	if (in == "." or in == " " or in == "")
	{
		if (typed == false)
			return;

		int8_t tmp = (int8_t)0;
		tmp = tmp << 4;
		tmp = tmp | (int8_t)7;
		out.push_back( tmp );

		return;
	}

	if (typed == true)
	{
		if (in.length() >= 15)
		{
			int8_t tmp = (int8_t)15;
			tmp = tmp << 4;
			tmp = tmp | (int8_t)7;
			out.push_back( tmp );

			make_typed_int(tmp_vector, in.length(), typed);
			out.insert( out.end(), tmp_vector.begin(), tmp_vector.end() );
		}
		else
		{
			int8_t tmp = (int8_t)in.length();
			tmp = tmp << 4;
			tmp = tmp | (int8_t)7;
			out.push_back( tmp );
		}
	}
	out.reserve(out.size()+in.size());
	copy(in.begin(), in.end(), back_inserter(out));
}

// Assembly:
subq $0xe8, %rsp
movb %cl, %al
movq %rdi, 0xe0(%rsp)
movq %rsi, 0xd8(%rsp)
movq %rdx, 0xd0(%rsp)
andb $0x1, %al
movb %al, 0xcf(%rsp)
movq 0xe0(%rsp), %rax
movq %rax, 0x40(%rsp)
leaq 0xb0(%rsp), %rdi
callq 0x2a300
movq 0xd8(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x20910
jmp 0x459b7
movq 0xd0(%rsp), %rdi
leaq 0x2f718(%rip), %rsi     # 0x750de
callq 0xea20
movb %al, 0x3f(%rsp)
jmp 0x459d1
movb 0x3f(%rsp), %al
testb $0x1, %al
jne 0x45a26
jmp 0x459db
movq 0xd0(%rsp), %rdi
leaq 0x2e6ba(%rip), %rsi     # 0x740a4
callq 0xea20
movb %al, 0x3e(%rsp)
jmp 0x459f5
movb 0x3e(%rsp), %al
testb $0x1, %al
jne 0x45a26
jmp 0x459ff
movq 0xd0(%rsp), %rdi
leaq 0x3031b(%rip), %rsi     # 0x75d29
callq 0xea20
movb %al, 0x3d(%rsp)
jmp 0x45a19
movb 0x3d(%rsp), %al
testb $0x1, %al
jne 0x45a26
jmp 0x45acb
movb 0xcf(%rsp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x45a6d
movl $0x1, 0xa0(%rsp)
jmp 0x45cf8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa8(%rsp)
movl %eax, 0xa4(%rsp)
leaq 0xb0(%rsp), %rdi
callq 0x267c0
jmp 0x45d0d
movb $0x0, 0x9f(%rsp)
movb 0x9f(%rsp), %al
shlb $0x4, %al
movb %al, 0x9f(%rsp)
movb 0x9f(%rsp), %al
orb $0x7, %al
movb %al, 0x9f(%rsp)
movq 0xd8(%rsp), %rdi
movb 0x9f(%rsp), %al
movb %al, 0x9e(%rsp)
leaq 0x9e(%rsp), %rsi
callq 0x49620
jmp 0x45abb
movl $0x1, 0xa0(%rsp)
jmp 0x45cf8
movb 0xcf(%rsp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x45c50
movq 0xd0(%rsp), %rdi
callq 0x6850
cmpq $0xf, %rax
jb 0x45c0a
movb $0xf, 0x9d(%rsp)
movb 0x9d(%rsp), %al
shlb $0x4, %al
movb %al, 0x9d(%rsp)
movb 0x9d(%rsp), %al
orb $0x7, %al
movb %al, 0x9d(%rsp)
movq 0xd8(%rsp), %rdi
movb 0x9d(%rsp), %al
movb %al, 0x9c(%rsp)
leaq 0x9c(%rsp), %rsi
callq 0x49620
jmp 0x45b45
movq 0xd0(%rsp), %rdi
callq 0x6850
movq 0x40(%rsp), %rdi
movl %eax, 0x98(%rsp)
movzbl 0xcf(%rsp), %ecx
andl $0x1, %ecx
leaq 0xb0(%rsp), %rsi
leaq 0x98(%rsp), %rdx
callq 0x45d20
jmp 0x45b80
movq 0xd8(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0x27020
movq %rax, 0x88(%rsp)
leaq 0x90(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x39b20
leaq 0xb0(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0x26ff0
movq 0x20(%rsp), %rdi
movq %rax, 0x80(%rsp)
callq 0x27020
movq 0x28(%rsp), %rdi
movq %rax, 0x78(%rsp)
movq 0x90(%rsp), %rsi
movq 0x80(%rsp), %rdx
movq 0x78(%rsp), %rcx
callq 0x39a60
movq %rax, 0x30(%rsp)
jmp 0x45bfe
movq 0x30(%rsp), %rax
movq %rax, 0x70(%rsp)
jmp 0x45c4e
movq 0xd0(%rsp), %rdi
callq 0x6850
movb %al, 0x6f(%rsp)
movb 0x6f(%rsp), %al
shlb $0x4, %al
movb %al, 0x6f(%rsp)
movb 0x6f(%rsp), %al
orb $0x7, %al
movb %al, 0x6f(%rsp)
movq 0xd8(%rsp), %rdi
movb 0x6f(%rsp), %al
movb %al, 0x6e(%rsp)
leaq 0x6e(%rsp), %rsi
callq 0x49620
jmp 0x45c4c
jmp 0x45c4e
jmp 0x45c50
movq 0xd8(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0x249e0
movq %rax, 0x10(%rsp)
movq 0xd0(%rsp), %rdi
callq 0x6350
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdi
addq %rax, %rsi
callq 0x49650
jmp 0x45c88
movq 0xd0(%rsp), %rdi
callq 0x6500
movq %rax, 0x60(%rsp)
movq 0xd0(%rsp), %rdi
callq 0x6aa0
movq %rax, 0x58(%rsp)
movq 0xd8(%rsp), %rdi
callq 0x497c0
movq %rax, 0x8(%rsp)
jmp 0x45cc0
movq 0x8(%rsp), %rax
movq %rax, 0x50(%rsp)
movq 0x60(%rsp), %rdi
movq 0x58(%rsp), %rsi
movq 0x50(%rsp), %rdx
callq 0x49750
movq %rax, (%rsp)
jmp 0x45ce4
movq (%rsp), %rax
movq %rax, 0x48(%rsp)
movl $0x0, 0xa0(%rsp)
leaq 0xb0(%rsp), %rdi
callq 0x267c0
addq $0xe8, %rsp
retq
movq 0xa8(%rsp), %rdi
callq 0x69e0
nopw (%rax,%rax)