// File: /workspace/github_cpp_makefile_star2_O1/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 0x2a1d(%rip), %r14      # 0x6465
movq %r14, %rsi
movq %r14, %rdx
callq 0x3568
cmpl $0x15, %r15d
jg 0x3aae
cmpl $0xa, %r15d
ja 0x3b1d
movl %r15d, %eax
leaq 0x268b(%rip), %rcx      # 0x60f8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x2793(%rip), %rsi      # 0x6210
movq %rbx, %rdi
callq 0x22e0
movl -0x24(%rbp), %eax
testl %eax, %eax
je 0x4032
cmpl $0x2, %eax
je 0x4029
cmpl $0x3, %eax
jne 0x4049
leaq 0x279e(%rip), %r14      # 0x6247
jmp 0x4039
leal -0x20(%r15), %eax
cmpl $0x9, %eax
ja 0x3b92
leaq 0x2662(%rip), %rcx      # 0x6124
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq -0x68(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x3019
leaq 0x285b(%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), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3f09
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x3f10
cmpl $0xf, %r15d
jne 0x4039
leaq 0x27ca(%rip), %rsi      # 0x62f8
movq %rbx, %rdi
callq 0x22e0
movl -0x24(%rbp), %eax
testl %eax, %eax
je 0x3e1c
cmpl $0x1, %eax
je 0x3e10
leaq -0x68(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x3019
leaq 0x2704(%rip), %rsi      # 0x6262
leaq -0x68(%rbp), %rdi
callq 0x22e0
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x4190
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x4197
cmpl $0x16, %r15d
jne 0x4039
leaq 0x276e(%rip), %rsi      # 0x6311
movq %rbx, %rdi
callq 0x22e0
movl -0x24(%rbp), %eax
testl %eax, %eax
je 0x3fd8
cmpl $0x1, %eax
jne 0x3fe1
leaq 0x276b(%rip), %r14      # 0x6331
jmp 0x4039
leaq -0x68(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x3019
leaq 0x26ff(%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), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3e70
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x3e77
leaq -0x68(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x3019
leaq 0x276e(%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), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3ea3
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x3eaa
leaq -0x68(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x3019
leaq 0x2649(%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), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3ed6
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x3edd
leaq 0x26bf(%rip), %rsi      # 0x6387
movq %rbx, %rdi
callq 0x22e0
movl -0x24(%rbp), %eax
testl %eax, %eax
je 0x3e1c
cmpl $0x1, %eax
je 0x3e10
leaq -0x68(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x3019
leaq 0x256a(%rip), %rsi      # 0x6262
leaq -0x68(%rbp), %rdi
callq 0x22e0
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x40c4
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x40cb
leaq 0x253a(%rip), %rsi      # 0x626d
movq %rbx, %rdi
callq 0x22e0
movl -0x24(%rbp), %eax
addl $-0x4, %eax
cmpl $0x3, %eax
jae 0x3e28
movl %eax, %eax
leaq 0x2455(%rip), %rcx      # 0x61a8
movslq (%rcx,%rax,4), %r14
addq %rcx, %r14
jmp 0x4039
leaq 0x25ec(%rip), %rsi      # 0x6352
movq %rbx, %rdi
callq 0x22e0
movl -0x24(%rbp), %eax
testl %eax, %eax
je 0x3f3c
cmpl $0x1, %eax
jne 0x3f48
leaq 0x25e5(%rip), %r14      # 0x636e
jmp 0x4039
leaq 0x250d(%rip), %rsi      # 0x62a2
movq %rbx, %rdi
callq 0x22e0
movl -0x24(%rbp), %eax
testl %eax, %eax
je 0x3e1c
cmpl $0x1, %eax
je 0x3e10
leaq -0x68(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x3019
leaq 0x24a5(%rip), %rsi      # 0x6262
leaq -0x68(%rbp), %rdi
callq 0x22e0
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x412a
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x4131
leaq 0x257e(%rip), %rsi      # 0x6376
movq %rbx, %rdi
callq 0x22e0
movl -0x24(%rbp), %eax
testl %eax, %eax
je 0x3e1c
cmpl $0x1, %eax
jne 0x3f90
leaq 0x24aa(%rip), %r14      # 0x62c1
jmp 0x4039
leaq 0x2492(%rip), %r14      # 0x62b5
jmp 0x4039
leaq -0x68(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x3019
leaq 0x2426(%rip), %rsi      # 0x6262
leaq -0x68(%rbp), %rdi
callq 0x22e0
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x4091
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x4098
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rbx, %rdi
callq 0x2070
jmp 0x421e
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rbx, %rdi
callq 0x2070
jmp 0x421e
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rbx, %rdi
callq 0x2070
jmp 0x421e
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rbx, %rdi
callq 0x2070
jmp 0x421e
leaq 0x2422(%rip), %r14      # 0x6365
jmp 0x4039
leaq -0x68(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x3019
leaq 0x2306(%rip), %rsi      # 0x6262
leaq -0x68(%rbp), %rdi
callq 0x22e0
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x40f7
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x40fe
leaq -0x68(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x3019
leaq 0x22be(%rip), %rsi      # 0x6262
leaq -0x68(%rbp), %rdi
callq 0x22e0
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x415d
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x4164
leaq 0x2348(%rip), %r14      # 0x6327
jmp 0x4039
leaq -0x68(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x3019
leaq 0x226d(%rip), %rsi      # 0x6262
leaq -0x68(%rbp), %rdi
callq 0x22e0
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x41c0
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x41c7
leaq 0x2205(%rip), %r14      # 0x6235
jmp 0x4039
leaq 0x21eb(%rip), %r14      # 0x6224
movq %rbx, %rdi
movq %r14, %rsi
callq 0x22e0
jmp 0x424c
leaq -0x68(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x3019
leaq 0x2205(%rip), %rsi      # 0x6262
leaq -0x68(%rbp), %rdi
callq 0x22e0
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x41f0
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x41f7
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rbx, %rdi
callq 0x2070
jmp 0x421e
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rbx, %rdi
callq 0x2070
jmp 0x421e
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rbx, %rdi
callq 0x2070
jmp 0x421e
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rbx, %rdi
callq 0x2070
jmp 0x421e
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rbx, %rdi
callq 0x2070
jmp 0x421e
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rbx, %rdi
callq 0x2070
jmp 0x421e
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rbx, %rdi
callq 0x2070
jmp 0x421e
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rbx, %rdi
callq 0x2070
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0x4233
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2170
leaq -0x58(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x424c
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 0x4292
jmp 0x42b2
jmp 0x42d8
jmp 0x4292
jmp 0x4292
jmp 0x42b2
jmp 0x42b2
jmp 0x42d8
jmp 0x42d8
jmp 0x4292
jmp 0x4292
jmp 0x4292
jmp 0x4292
jmp 0x42b2
jmp 0x42b2
jmp 0x42b2
jmp 0x42b2
jmp 0x42d8
jmp 0x42d8
jmp 0x42d8
jmp 0x42d8
jmp 0x4292
jmp 0x42b2
jmp 0x42d8
jmp 0x4292
jmp 0x4292
jmp 0x4292
movq %rax, %r14
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0x42b5
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2170
jmp 0x42b5
jmp 0x42b2
jmp 0x42b2
jmp 0x42b2
movq %rax, %r14
leaq -0x58(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x42db
movq -0x58(%rbp), %rsi
incq %rsi
callq 0x2170
jmp 0x42db
jmp 0x42d8
jmp 0x42d8
jmp 0x42d8
jmp 0x42d8
movq %rax, %r14
movq (%rbx), %rdi
cmpq %r12, %rdi
je 0x42ef
movq (%r12), %rsi
incq %rsi
callq 0x2170
movq %r14, %rdi
callq 0x22b0
nop