// File: lindorx[P]train/InsPro.cpp
// Function: Shl_Shr(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, int, int, unsigned char)
std::vector<unsigned char>Shl_Shr(const std::string& str, int n, int num,unsigned char cmd_ch)
{
	using namespace std;
	string *ch;
	ch = CS(str, n);//CS����������ȡ���������ߵ�Ŀ���Ĵ�������Դ���������Զ�ȥ���ո�
	unsigned char m[2] = {0};
	vector<unsigned char>data;
	vector<unsigned char>d;
	for (int i = 0; i < 16; ++i){
		if (ch[0] == reg_1[i]){
			m[0] = 0xc0;
			if (i>7)m[1] = cmd_ch + i - 8;
			else m[1] = cmd_ch + i;

		}
		if (ch[0] == reg2[i]){
			m[0] = 0xc1;
			if (i>7)m[1] = cmd_ch + i - 8;
			else m[1] = cmd_ch + i;
		}
	}
	d = Num(ch[1], 1, num);
	if ((int)d.size() > 0 && m[0] != 0 && m[1] != 0){
		data.push_back(m[0]);
		data.push_back(m[1]);
		data.push_back(d[0]);
		return data;
	}
	cout << "����-021��������ָ�" << str << endl;
	return data;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x80(%rbp)
movb %r8b, %al
movq %rdi, %r8
movq %r8, -0x88(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movl %ecx, -0x18(%rbp)
movb %al, -0x19(%rbp)
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
callq 0x6a20
movq %rax, -0x28(%rbp)
leaq -0x2a(%rbp), %rdi
xorl %esi, %esi
movl $0x2, %edx
callq 0x3130
movq -0x80(%rbp), %rdi
movb $0x0, -0x2b(%rbp)
callq 0xa8d0
leaq -0x48(%rbp), %rdi
callq 0xa8d0
movl $0x0, -0x4c(%rbp)
cmpl $0x10, -0x4c(%rbp)
jge 0x141c0
movq -0x28(%rbp), %rdi
movslq -0x4c(%rbp), %rax
leaq 0xda4d(%rip), %rsi      # 0x21b80
shlq $0x5, %rax
addq %rax, %rsi
callq 0xa810
testb $0x1, %al
jne 0x14145
jmp 0x1416a
movb $-0x40, -0x2a(%rbp)
cmpl $0x7, -0x4c(%rbp)
jle 0x1415e
movzbl -0x19(%rbp), %eax
addl -0x4c(%rbp), %eax
subl $0x8, %eax
movb %al, -0x29(%rbp)
jmp 0x14168
movzbl -0x19(%rbp), %eax
addl -0x4c(%rbp), %eax
movb %al, -0x29(%rbp)
jmp 0x1416a
movq -0x28(%rbp), %rdi
movslq -0x4c(%rbp), %rax
leaq 0xdc07(%rip), %rsi      # 0x21d80
shlq $0x5, %rax
addq %rax, %rsi
callq 0xa810
testb $0x1, %al
jne 0x1418b
jmp 0x141b0
movb $-0x3f, -0x2a(%rbp)
cmpl $0x7, -0x4c(%rbp)
jle 0x141a4
movzbl -0x19(%rbp), %eax
addl -0x4c(%rbp), %eax
subl $0x8, %eax
movb %al, -0x29(%rbp)
jmp 0x141ae
movzbl -0x19(%rbp), %eax
addl -0x4c(%rbp), %eax
movb %al, -0x29(%rbp)
jmp 0x141b0
jmp 0x141b2
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x1411a
movq -0x28(%rbp), %rsi
addq $0x20, %rsi
movl -0x18(%rbp), %ecx
leaq -0x68(%rbp), %rdi
movl $0x1, %edx
callq 0x7be0
jmp 0x141db
leaq -0x48(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0xa9b0
leaq -0x68(%rbp), %rdi
callq 0xa920
leaq -0x48(%rbp), %rdi
callq 0xa9e0
cmpl $0x0, %eax
jle 0x14277
movzbl -0x2a(%rbp), %eax
cmpl $0x0, %eax
je 0x14277
movzbl -0x29(%rbp), %eax
cmpl $0x0, %eax
je 0x14277
movq -0x80(%rbp), %rdi
leaq -0x2a(%rbp), %rsi
callq 0xaa00
jmp 0x14220
movq -0x80(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0xaa00
jmp 0x1422f
xorl %eax, %eax
movl %eax, %esi
leaq -0x48(%rbp), %rdi
callq 0xaa70
movq -0x80(%rbp), %rdi
movq %rax, %rsi
callq 0xaa00
jmp 0x1424a
movb $0x1, -0x2b(%rbp)
movl $0x1, -0x78(%rbp)
jmp 0x142cc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x48(%rbp), %rdi
callq 0xa920
movq -0x80(%rbp), %rdi
callq 0xa920
jmp 0x142f4
movq 0xcd5a(%rip), %rdi      # 0x20fd8
leaq 0x7291(%rip), %rsi      # 0x1b516
callq 0x31f0
movq %rax, -0x90(%rbp)
jmp 0x14293
movq -0x90(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x31e0
movq %rax, -0x98(%rbp)
jmp 0x142ac
movq -0x98(%rbp), %rdi
movq 0xcd06(%rip), %rsi      # 0x20fc0
callq 0x3240
jmp 0x142c1
movb $0x1, -0x2b(%rbp)
movl $0x1, -0x78(%rbp)
leaq -0x48(%rbp), %rdi
callq 0xa920
testb $0x1, -0x2b(%rbp)
jne 0x142e4
movq -0x80(%rbp), %rdi
callq 0xa920
movq -0x88(%rbp), %rax
addq $0xa0, %rsp
popq %rbp
retq
movq -0x70(%rbp), %rdi
callq 0x33f0
nopl (%rax)