// File: lindorx[P]train/HelpInsPro.cpp
// Function: acdb_m1_num(short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int)
std::vector<unsigned char>acdb_m1_num(short cmd,std::string str,std::string m1_str,int num)
{
	using namespace std;
	vector<unsigned char>data;
	vector<unsigned char>d = Num(m1_str, 2, num);
	unsigned char n_ax=0xa3,n_al=0xa2, n_16=0x89,n_8=0x88,n_s=0x8c;
	//����cmd
	if (cmd == 2){
		n_ax = 0xa1;
		n_al = 0xa0;
		n_16 = 0x8b;
		n_8 = 0x8a;
		n_s = 0x8e;
	}
	for (int i = 0; i < 16; ++i){
		//�ж��Ƿ�Ϊ16λ�Ĵ���
		if (str == reg2[i]){
			if (i == 0 || i == 8)//reg[0]��reg[8]��Ӧ���ַ���ʱax����������
				data.push_back(n_ax);
			else{
				data.push_back(n_16);
				if (i>7)data.push_back(m_unch[i - 8]);
				else data.push_back(m_unch[i]);
			}
			data.insert(data.end(), d.begin(), d.end());
			return data;
		}
		//�ж��Ƿ�Ϊ8λ�Ĵ���
		if (str == reg2[i]){
			if (i == 0 || i == 8)//reg[0]��reg[8]��Ӧ���ַ���ʱax����������
				data.push_back(n_al);
			else{
				data.push_back(n_8);
				if (i>7)data.push_back(m_unch[i - 8]);
				else data.push_back(m_unch[i]);
			}
			data.insert(data.end(), d.begin(), d.end());
			return data;
		}
	}
	if (str == "es" || str == "ES"){
		data.push_back(n_s);
		data.push_back(0x06);
		data.insert(data.end(), d.begin(), d.end());
		return data;
	}
	if (str == "cs" || str == "CS"){
		data.push_back(n_s);
		data.push_back(0x0e);
		data.insert(data.end(), d.begin(), d.end());
		return data;
	}
	if (str == "ss" || str == "SS"){
		data.push_back(n_s);
		data.push_back(0x16);
		data.insert(data.end(), d.begin(), d.end());
		return data;
	}
	if (str == "ds" || str == "DS"){
		data.push_back(n_s);
		data.push_back(0x1e);
		data.insert(data.end(), d.begin(), d.end());
		return data;
	}
	cout << "����--017,�����飺" << str<<endl;
	return data;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x220, %rsp            # imm = 0x220
movq %rcx, -0x178(%rbp)
movq %rdx, -0x190(%rbp)
movq %rdi, -0x188(%rbp)
movw %si, %ax
movq %rdi, %rsi
movq %rsi, -0x180(%rbp)
movq %rdi, -0x8(%rbp)
movw %ax, -0xa(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movl %r8d, -0x24(%rbp)
movb $0x0, -0x25(%rbp)
callq 0xa8d0
movq -0x178(%rbp), %rsi
movl -0x24(%rbp), %ecx
leaq -0x40(%rbp), %rdi
movl $0x2, %edx
callq 0x7be0
jmp 0x9ba4
movb $-0x5d, -0x4d(%rbp)
movb $-0x5e, -0x4e(%rbp)
movb $-0x77, -0x4f(%rbp)
movb $-0x78, -0x50(%rbp)
movb $-0x74, -0x51(%rbp)
movswl -0xa(%rbp), %eax
cmpl $0x2, %eax
jne 0x9be8
movb $-0x5f, -0x4d(%rbp)
movb $-0x60, -0x4e(%rbp)
movb $-0x75, -0x4f(%rbp)
movb $-0x76, -0x50(%rbp)
movb $-0x72, -0x51(%rbp)
jmp 0x9be8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xa36b
movl $0x0, -0x58(%rbp)
cmpl $0x10, -0x58(%rbp)
jge 0x9e80
movq -0x190(%rbp), %rdi
movslq -0x58(%rbp), %rax
leaq 0x17a65(%rip), %rsi     # 0x21670
shlq $0x5, %rax
addq %rax, %rsi
callq 0xa810
testb $0x1, %al
jne 0x9c20
jmp 0x9d34
cmpl $0x0, -0x58(%rbp)
je 0x9c2c
cmpl $0x8, -0x58(%rbp)
jne 0x9c5a
movq -0x188(%rbp), %rdi
leaq -0x4d(%rbp), %rsi
callq 0xaa00
jmp 0x9c3e
jmp 0x9cb4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0xa920
jmp 0xa36b
movq -0x188(%rbp), %rdi
leaq -0x4f(%rbp), %rsi
callq 0xaa00
jmp 0x9c6c
cmpl $0x7, -0x58(%rbp)
jle 0x9c94
movq -0x188(%rbp), %rdi
movl -0x58(%rbp), %eax
addl $-0x8, %eax
cltq
leaq 0x114d8(%rip), %rsi     # 0x1b160
addq %rax, %rsi
callq 0xaa00
jmp 0x9c92
jmp 0x9cb2
movq -0x188(%rbp), %rdi
movslq -0x58(%rbp), %rax
leaq 0x114ba(%rip), %rsi     # 0x1b160
addq %rax, %rsi
callq 0xaa00
jmp 0x9cb0
jmp 0x9cb2
jmp 0x9cb4
movq -0x188(%rbp), %rdi
callq 0xab40
movq %rax, -0x68(%rbp)
leaq -0x60(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0xab70
leaq -0x40(%rbp), %rdi
movq %rdi, -0x1a0(%rbp)
callq 0xabb0
movq -0x1a0(%rbp), %rdi
movq %rax, -0x70(%rbp)
callq 0xab40
movq -0x188(%rbp), %rdi
movq %rax, -0x78(%rbp)
movq -0x60(%rbp), %rsi
movq -0x70(%rbp), %rdx
movq -0x78(%rbp), %rcx
callq 0xaa90
movq %rax, -0x198(%rbp)
jmp 0x9d16
movq -0x198(%rbp), %rax
movq %rax, -0x80(%rbp)
movb $0x1, -0x25(%rbp)
movl $0x1, -0x84(%rbp)
jmp 0xa340
movq -0x190(%rbp), %rdi
movslq -0x58(%rbp), %rax
leaq 0x1792a(%rip), %rsi     # 0x21670
shlq $0x5, %rax
addq %rax, %rsi
callq 0xa810
testb $0x1, %al
jne 0x9d5b
jmp 0x9e70
cmpl $0x0, -0x58(%rbp)
je 0x9d67
cmpl $0x8, -0x58(%rbp)
jne 0x9d7b
movq -0x188(%rbp), %rdi
leaq -0x4e(%rbp), %rsi
callq 0xaa00
jmp 0x9d79
jmp 0x9dd5
movq -0x188(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0xaa00
jmp 0x9d8d
cmpl $0x7, -0x58(%rbp)
jle 0x9db5
movq -0x188(%rbp), %rdi
movl -0x58(%rbp), %eax
addl $-0x8, %eax
cltq
leaq 0x113b7(%rip), %rsi     # 0x1b160
addq %rax, %rsi
callq 0xaa00
jmp 0x9db3
jmp 0x9dd3
movq -0x188(%rbp), %rdi
movslq -0x58(%rbp), %rax
leaq 0x11399(%rip), %rsi     # 0x1b160
addq %rax, %rsi
callq 0xaa00
jmp 0x9dd1
jmp 0x9dd3
jmp 0x9dd5
movq -0x188(%rbp), %rdi
callq 0xab40
movq %rax, -0x98(%rbp)
leaq -0x90(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0xab70
leaq -0x40(%rbp), %rdi
movq %rdi, -0x1b0(%rbp)
callq 0xabb0
movq -0x1b0(%rbp), %rdi
movq %rax, -0xa0(%rbp)
callq 0xab40
movq -0x188(%rbp), %rdi
movq %rax, -0xa8(%rbp)
movq -0x90(%rbp), %rsi
movq -0xa0(%rbp), %rdx
movq -0xa8(%rbp), %rcx
callq 0xaa90
movq %rax, -0x1a8(%rbp)
jmp 0x9e4f
movq -0x1a8(%rbp), %rax
movq %rax, -0xb0(%rbp)
movb $0x1, -0x25(%rbp)
movl $0x1, -0x84(%rbp)
jmp 0xa340
jmp 0x9e72
movl -0x58(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
jmp 0x9bef
movq -0x190(%rbp), %rdi
leaq 0x11356(%rip), %rsi     # 0x1b1e4
callq 0xa8a0
movb %al, -0x1b1(%rbp)
jmp 0x9e9b
movb -0x1b1(%rbp), %al
testb $0x1, %al
jne 0x9ed1
jmp 0x9ea7
movq -0x190(%rbp), %rdi
leaq 0x11323(%rip), %rsi     # 0x1b1d8
callq 0xa8a0
movb %al, -0x1b2(%rbp)
jmp 0x9ec2
movb -0x1b2(%rbp), %al
testb $0x1, %al
jne 0x9ed1
jmp 0x9f9a
movq -0x188(%rbp), %rdi
leaq -0x51(%rbp), %rsi
callq 0xaa00
jmp 0x9ee3
movq -0x188(%rbp), %rdi
movb $0x6, -0xb1(%rbp)
leaq -0xb1(%rbp), %rsi
callq 0xa8f0
jmp 0x9eff
movq -0x188(%rbp), %rdi
callq 0xab40
movq %rax, -0xc8(%rbp)
leaq -0xc0(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0xab70
leaq -0x40(%rbp), %rdi
movq %rdi, -0x1c8(%rbp)
callq 0xabb0
movq -0x1c8(%rbp), %rdi
movq %rax, -0xd0(%rbp)
callq 0xab40
movq -0x188(%rbp), %rdi
movq %rax, -0xd8(%rbp)
movq -0xc0(%rbp), %rsi
movq -0xd0(%rbp), %rdx
movq -0xd8(%rbp), %rcx
callq 0xaa90
movq %rax, -0x1c0(%rbp)
jmp 0x9f79
movq -0x1c0(%rbp), %rax
movq %rax, -0xe0(%rbp)
movb $0x1, -0x25(%rbp)
movl $0x1, -0x84(%rbp)
jmp 0xa340
movq -0x190(%rbp), %rdi
leaq 0x1123f(%rip), %rsi     # 0x1b1e7
callq 0xa8a0
movb %al, -0x1c9(%rbp)
jmp 0x9fb5
movb -0x1c9(%rbp), %al
testb $0x1, %al
jne 0x9feb
jmp 0x9fc1
movq -0x190(%rbp), %rdi
leaq 0x1120c(%rip), %rsi     # 0x1b1db
callq 0xa8a0
movb %al, -0x1ca(%rbp)
jmp 0x9fdc
movb -0x1ca(%rbp), %al
testb $0x1, %al
jne 0x9feb
jmp 0xa0b4
movq -0x188(%rbp), %rdi
leaq -0x51(%rbp), %rsi
callq 0xaa00
jmp 0x9ffd
movq -0x188(%rbp), %rdi
movb $0xe, -0xe1(%rbp)
leaq -0xe1(%rbp), %rsi
callq 0xa8f0
jmp 0xa019
movq -0x188(%rbp), %rdi
callq 0xab40
movq %rax, -0xf8(%rbp)
leaq -0xf0(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0xab70
leaq -0x40(%rbp), %rdi
movq %rdi, -0x1e0(%rbp)
callq 0xabb0
movq -0x1e0(%rbp), %rdi
movq %rax, -0x100(%rbp)
callq 0xab40
movq -0x188(%rbp), %rdi
movq %rax, -0x108(%rbp)
movq -0xf0(%rbp), %rsi
movq -0x100(%rbp), %rdx
movq -0x108(%rbp), %rcx
callq 0xaa90
movq %rax, -0x1d8(%rbp)
jmp 0xa093
movq -0x1d8(%rbp), %rax
movq %rax, -0x110(%rbp)
movb $0x1, -0x25(%rbp)
movl $0x1, -0x84(%rbp)
jmp 0xa340
movq -0x190(%rbp), %rdi
leaq 0x11128(%rip), %rsi     # 0x1b1ea
callq 0xa8a0
movb %al, -0x1e1(%rbp)
jmp 0xa0cf
movb -0x1e1(%rbp), %al
testb $0x1, %al
jne 0xa105
jmp 0xa0db
movq -0x190(%rbp), %rdi
leaq 0x110f5(%rip), %rsi     # 0x1b1de
callq 0xa8a0
movb %al, -0x1e2(%rbp)
jmp 0xa0f6
movb -0x1e2(%rbp), %al
testb $0x1, %al
jne 0xa105
jmp 0xa1ce
movq -0x188(%rbp), %rdi
leaq -0x51(%rbp), %rsi
callq 0xaa00
jmp 0xa117
movq -0x188(%rbp), %rdi
movb $0x16, -0x111(%rbp)
leaq -0x111(%rbp), %rsi
callq 0xa8f0
jmp 0xa133
movq -0x188(%rbp), %rdi
callq 0xab40
movq %rax, -0x128(%rbp)
leaq -0x120(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0xab70
leaq -0x40(%rbp), %rdi
movq %rdi, -0x1f8(%rbp)
callq 0xabb0
movq -0x1f8(%rbp), %rdi
movq %rax, -0x130(%rbp)
callq 0xab40
movq -0x188(%rbp), %rdi
movq %rax, -0x138(%rbp)
movq -0x120(%rbp), %rsi
movq -0x130(%rbp), %rdx
movq -0x138(%rbp), %rcx
callq 0xaa90
movq %rax, -0x1f0(%rbp)
jmp 0xa1ad
movq -0x1f0(%rbp), %rax
movq %rax, -0x140(%rbp)
movb $0x1, -0x25(%rbp)
movl $0x1, -0x84(%rbp)
jmp 0xa340
movq -0x190(%rbp), %rdi
leaq 0x11011(%rip), %rsi     # 0x1b1ed
callq 0xa8a0
movb %al, -0x1f9(%rbp)
jmp 0xa1e9
movb -0x1f9(%rbp), %al
testb $0x1, %al
jne 0xa21f
jmp 0xa1f5
movq -0x190(%rbp), %rdi
leaq 0x10fde(%rip), %rsi     # 0x1b1e1
callq 0xa8a0
movb %al, -0x1fa(%rbp)
jmp 0xa210
movb -0x1fa(%rbp), %al
testb $0x1, %al
jne 0xa21f
jmp 0xa2e5
movq -0x188(%rbp), %rdi
leaq -0x51(%rbp), %rsi
callq 0xaa00
jmp 0xa231
movq -0x188(%rbp), %rdi
movb $0x1e, -0x141(%rbp)
leaq -0x141(%rbp), %rsi
callq 0xa8f0
jmp 0xa24d
movq -0x188(%rbp), %rdi
callq 0xab40
movq %rax, -0x158(%rbp)
leaq -0x150(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0xab70
leaq -0x40(%rbp), %rdi
movq %rdi, -0x210(%rbp)
callq 0xabb0
movq -0x210(%rbp), %rdi
movq %rax, -0x160(%rbp)
callq 0xab40
movq -0x188(%rbp), %rdi
movq %rax, -0x168(%rbp)
movq -0x150(%rbp), %rsi
movq -0x160(%rbp), %rdx
movq -0x168(%rbp), %rcx
callq 0xaa90
movq %rax, -0x208(%rbp)
jmp 0xa2c7
movq -0x208(%rbp), %rax
movq %rax, -0x170(%rbp)
movb $0x1, -0x25(%rbp)
movl $0x1, -0x84(%rbp)
jmp 0xa340
movq 0x16cec(%rip), %rdi     # 0x20fd8
leaq 0x11095(%rip), %rsi     # 0x1b388
callq 0x31f0
movq %rax, -0x218(%rbp)
jmp 0xa301
movq -0x190(%rbp), %rsi
movq -0x218(%rbp), %rdi
callq 0x31e0
movq %rax, -0x220(%rbp)
jmp 0xa31d
movq -0x220(%rbp), %rdi
movq 0x16c95(%rip), %rsi     # 0x20fc0
callq 0x3240
jmp 0xa332
movb $0x1, -0x25(%rbp)
movl $0x1, -0x84(%rbp)
leaq -0x40(%rbp), %rdi
callq 0xa920
testb $0x1, -0x25(%rbp)
jne 0xa35b
movq -0x188(%rbp), %rdi
callq 0xa920
movq -0x180(%rbp), %rax
addq $0x220, %rsp            # imm = 0x220
popq %rbp
retq
movq -0x188(%rbp), %rdi
callq 0xa920
movq -0x48(%rbp), %rdi
callq 0x33f0