// File: /workspace/github_cpp_makefile_star2_O3/jmfenner92[P]Log-Parser/src/CmdRecord.cpp
// Function: CmdRecord::LookUpTable[abi:cxx11](int, int)
std::string CmdRecord::LookUpTable(int word, int bit_value)
{
	// declare necessary variables
	std::string printString = "";

	// switch over word number, then, possibly bit_value
	// while assembling printString
	switch(word)
	{
	case 0:
	{
		printString += "Word 0: Rec_Ctrl = ";
		switch(bit_value)
		{
		case 0: printString += "0 (no recording)"; break;
		case 2: printString += "2 (no processing)"; break;
		case 3: printString += "3 (processing & recording)"; break;
		default: printString += patch::to_string(bit_value) + " (unknown)"; break;
		}
		break;
	}	
	case 1:
	{
		printString += "Word 1: Cmd_Type = ";
		switch(bit_value)
		{
		case 4: printString += "4 (Type A)"; break;
		case 5:	printString += "5 (Type B)"; break;
		case 6: printString += "6 (Type C)"; break;
		default: printString += patch::to_string(bit_value) + " (unknown)"; break;
		}
		break;
	}
	case 4:
	{
		printString += "Word 4: Rec_Raw = ";
		switch(bit_value)
		{
		case 0: printString += "0 (disable)"; break;
		case 1: printString += "1 (enable)"; break;
		default: printString += patch::to_string(bit_value) + " (unknown)"; break;
		}
		break;
	}
	case 5: printString += "Word 5: Cmd_ID = " + patch::to_string(bit_value); break;
	case 10: printString += "Word 10: Num_Responses = " + patch::to_string(bit_value); break;
	case 15:
	{
		printString += "Word 15: Reset_Enable = ";
		switch(bit_value)
		{
		case 0: printString += "0 (disable)"; break;
		case 1: printString += "1 (enable)"; break;
		default: printString += patch::to_string(bit_value) + " (unknown)"; break;
		}
		break;
	}
	case 22:
	{
		printString += "Word 22: Direction = ";
		switch(bit_value)
		{
		case 0: printString += "0 (Right)"; break;
		case 1: printString += "1 (Left)"; break;
		default: printString += patch::to_string(bit_value) + " (unknown)"; break;
		}
		break;
	}	
	case 32: printString += "Word 32: Num_Samples = " + patch::to_string(bit_value); break;
	case 37:
	{
		printString += "Word 37: Parity = ";
		switch(bit_value)
		{
		case 0: printString += "0 (even)"; break;
		case 1: printString += "1 (odd)"; break;
		default: printString += patch::to_string(bit_value) + " (unknown)"; break;
		}
		break;
	}
	case 38:
	{
		printString += "Word 38: Test = ";
		switch(bit_value)
		{
		case 0: printString += "0 (disable)"; break;
		case 1: printString += "1 (enable)"; break;
		default: printString += patch::to_string(bit_value) + " (unknown)"; break;
		}
		break;
	}
	case 40:
	{
		printString += "Word 40: Ctrl_Enable = ";
		switch(bit_value)
		{
		case 0: printString += "0 (disable)"; break;
		case 1: printString += "1 (enable)"; break;
		default: printString += patch::to_string(bit_value) + " (unknown)"; break;
		}
		break;
	}
	case 41: printString += "Word 41: Code = " + patch::to_string(bit_value); break;
	default: printString += ""; break;
	}
	// attach endline to string?
	//printString += "\n";
	
	return printString;

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x50, %rsp
movl %edx, %r15d
movq %rdi, %rbx
movl %ecx, -0x24(%rbp)
leaq 0x10(%rdi), %r12
movq %r12, (%rdi)
leaq 0x29c5(%rip), %r14      # 0x6465
movq %r14, %rsi
movq %r14, %rdx
callq 0x35be
cmpl $0x15, %r15d
jg 0x3b06
cmpl $0xa, %r15d
ja 0x3b75
movl %r15d, %eax
leaq 0x2633(%rip), %rcx      # 0x60f8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x273b(%rip), %rsi      # 0x6210
movq %rbx, %rdi
callq 0x22e0
movl -0x24(%rbp), %eax
testl %eax, %eax
je 0x4076
cmpl $0x2, %eax
je 0x406d
cmpl $0x3, %eax
jne 0x408d
leaq 0x2746(%rip), %r14      # 0x6247
jmp 0x407d
leal -0x20(%r15), %eax
cmpl $0x9, %eax
ja 0x3bea
leaq 0x260a(%rip), %rcx      # 0x6124
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq -0x68(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x3067
leaq 0x2803(%rip), %rcx      # 0x633a
leaq -0x68(%rbp), %rdi
movl $0x17, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x21a0
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0x3f52
movq %rsi, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x3f5c
cmpl $0xf, %r15d
jne 0x407d
leaq 0x2772(%rip), %rsi      # 0x62f8
movq %rbx, %rdi
callq 0x22e0
movl -0x24(%rbp), %eax
testl %eax, %eax
je 0x3e74
cmpl $0x1, %eax
je 0x3e68
leaq -0x68(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x3067
leaq 0x26ac(%rip), %rsi      # 0x6262
leaq -0x68(%rbp), %rdi
callq 0x22e0
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0x41b8
movq %rsi, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x41c2
cmpl $0x16, %r15d
jne 0x407d
leaq 0x2716(%rip), %rsi      # 0x6311
movq %rbx, %rdi
callq 0x22e0
movl -0x24(%rbp), %eax
testl %eax, %eax
je 0x401c
cmpl $0x1, %eax
jne 0x4025
leaq 0x2713(%rip), %r14      # 0x6331
jmp 0x407d
leaq -0x68(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x3067
leaq 0x26a7(%rip), %rcx      # 0x62de
leaq -0x68(%rbp), %rdi
movl $0x19, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x21a0
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0x3ec8
movq %rsi, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x3ed2
leaq -0x68(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x3067
leaq 0x2716(%rip), %rcx      # 0x639f
leaq -0x68(%rbp), %rdi
movl $0x10, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x21a0
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0x3ef6
movq %rsi, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x3f00
leaq -0x68(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x3067
leaq 0x25f1(%rip), %rcx      # 0x62cc
leaq -0x68(%rbp), %rdi
movl $0x11, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x21a0
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0x3f24
movq %rsi, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x3f2e
leaq 0x2667(%rip), %rsi      # 0x6387
movq %rbx, %rdi
callq 0x22e0
movl -0x24(%rbp), %eax
testl %eax, %eax
je 0x3e74
cmpl $0x1, %eax
je 0x3e68
leaq -0x68(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x3067
leaq 0x2512(%rip), %rsi      # 0x6262
leaq -0x68(%rbp), %rdi
callq 0x22e0
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0x4103
movq %rsi, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x410d
leaq 0x24e2(%rip), %rsi      # 0x626d
movq %rbx, %rdi
callq 0x22e0
movl -0x24(%rbp), %eax
addl $-0x4, %eax
cmpl $0x3, %eax
jae 0x3e80
movl %eax, %eax
leaq 0x23fd(%rip), %rcx      # 0x61a8
movslq (%rcx,%rax,4), %r14
addq %rcx, %r14
jmp 0x407d
leaq 0x2594(%rip), %rsi      # 0x6352
movq %rbx, %rdi
callq 0x22e0
movl -0x24(%rbp), %eax
testl %eax, %eax
je 0x3f80
cmpl $0x1, %eax
jne 0x3f8c
leaq 0x258d(%rip), %r14      # 0x636e
jmp 0x407d
leaq 0x24b5(%rip), %rsi      # 0x62a2
movq %rbx, %rdi
callq 0x22e0
movl -0x24(%rbp), %eax
testl %eax, %eax
je 0x3e74
cmpl $0x1, %eax
je 0x3e68
leaq -0x68(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x3067
leaq 0x244d(%rip), %rsi      # 0x6262
leaq -0x68(%rbp), %rdi
callq 0x22e0
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0x415f
movq %rsi, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x4169
leaq 0x2526(%rip), %rsi      # 0x6376
movq %rbx, %rdi
callq 0x22e0
movl -0x24(%rbp), %eax
testl %eax, %eax
je 0x3e74
cmpl $0x1, %eax
jne 0x3fd4
leaq 0x2452(%rip), %r14      # 0x62c1
jmp 0x407d
leaq 0x243a(%rip), %r14      # 0x62b5
jmp 0x407d
leaq -0x68(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x3067
leaq 0x23ce(%rip), %rsi      # 0x6262
leaq -0x68(%rbp), %rdi
callq 0x22e0
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0x40d5
movq %rsi, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x40df
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq %r15, %rsi
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %rbx, %rdi
callq 0x2070
jmp 0x4237
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq %r15, %rsi
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %rbx, %rdi
callq 0x2070
jmp 0x4237
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq %r15, %rsi
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %rbx, %rdi
callq 0x2070
jmp 0x4237
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq %r15, %rsi
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %rbx, %rdi
callq 0x2070
jmp 0x4237
leaq 0x23de(%rip), %r14      # 0x6365
jmp 0x407d
leaq -0x68(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x3067
leaq 0x22c2(%rip), %rsi      # 0x6262
leaq -0x68(%rbp), %rdi
callq 0x22e0
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0x4131
movq %rsi, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x413b
leaq -0x68(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x3067
leaq 0x227a(%rip), %rsi      # 0x6262
leaq -0x68(%rbp), %rdi
callq 0x22e0
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0x418d
movq %rsi, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x4197
leaq 0x2304(%rip), %r14      # 0x6327
jmp 0x407d
leaq -0x68(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x3067
leaq 0x2229(%rip), %rsi      # 0x6262
leaq -0x68(%rbp), %rdi
callq 0x22e0
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0x41e3
movq %rsi, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x41ed
leaq 0x21c1(%rip), %r14      # 0x6235
jmp 0x407d
leaq 0x21a7(%rip), %r14      # 0x6224
movq %rbx, %rdi
movq %r14, %rsi
callq 0x22e0
jmp 0x4265
leaq -0x68(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x3067
leaq 0x21c1(%rip), %rsi      # 0x6262
leaq -0x68(%rbp), %rdi
callq 0x22e0
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0x420e
movq %rsi, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x4218
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq %r15, %rsi
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %rbx, %rdi
callq 0x2070
jmp 0x4237
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq %r15, %rsi
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %rbx, %rdi
callq 0x2070
jmp 0x4237
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq %r15, %rsi
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %rbx, %rdi
callq 0x2070
jmp 0x4237
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq %r15, %rsi
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %rbx, %rdi
callq 0x2070
jmp 0x4237
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq %r15, %rsi
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %rbx, %rdi
callq 0x2070
jmp 0x4237
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq %r15, %rsi
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %rbx, %rdi
callq 0x2070
jmp 0x4237
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq %r15, %rsi
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %rbx, %rdi
callq 0x2070
jmp 0x4237
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq %r15, %rsi
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %rbx, %rdi
callq 0x2070
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0x424c
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2170
leaq -0x58(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4265
movq -0x58(%rbp), %rsi
incq %rsi
callq 0x2170
movq %rbx, %rax
addq $0x50, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0x42ab
jmp 0x42cb
jmp 0x42f1
jmp 0x42ab
jmp 0x42ab
jmp 0x42cb
jmp 0x42cb
jmp 0x42f1
jmp 0x42f1
jmp 0x42ab
jmp 0x42ab
jmp 0x42ab
jmp 0x42ab
jmp 0x42cb
jmp 0x42cb
jmp 0x42cb
jmp 0x42cb
jmp 0x42f1
jmp 0x42f1
jmp 0x42f1
jmp 0x42f1
jmp 0x42ab
jmp 0x42cb
jmp 0x42f1
jmp 0x42ab
jmp 0x42ab
jmp 0x42ab
movq %rax, %r14
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0x42ce
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2170
jmp 0x42ce
jmp 0x42cb
jmp 0x42cb
jmp 0x42cb
movq %rax, %r14
leaq -0x58(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x42f4
movq -0x58(%rbp), %rsi
incq %rsi
callq 0x2170
jmp 0x42f4
jmp 0x42f1
jmp 0x42f1
jmp 0x42f1
jmp 0x42f1
movq %rax, %r14
movq (%rbx), %rdi
cmpq %r12, %rdi
je 0x4308
movq (%r12), %rsi
incq %rsi
callq 0x2170
movq %r14, %rdi
callq 0x22b0