// File: /workspace/github_cpp_makefile_star2_O2/lindorx[P]train/InsPro.cpp
// Function: Move1(STRINF*, STRINF*, int)
std::vector<unsigned char>Move1( STRINF *m1, STRINF *m2,int num)
{
	using namespace std;
	vector<unsigned char>data;
	vector<unsigned char>w;
	unsigned char a,b,c,c_s,d,f;
	string ch[2];
	ch[0] = m1->str;
	ch[1] = m2->str;
	a=TwoRegBin(ch,1);
	b=TwoRegBin(ch,2);
	c=TwoRegBin(ch,3);
	c_s = TwoRegBin(ch, 4);
	//�����Ƿ�Ϊ�Ĵ���֮�丳ֵ
	if (a){
		data.push_back(0x88);
		data.push_back(a);
		return data;
	}
	else if (b){
		data.push_back(0x89);
		data.push_back(b);
		return data;
	}
	else if (c){
		data.push_back(0x8c);
		data.push_back(c);
		return data;
	}
	else if (c_s){
		data.push_back(0x8e);
		data.push_back(c_s);
		return data;
	}
	else{
		d = RegACDB(ch[0], 1);//�ж�8λ�Ĵ���
		f = RegACDB(ch[0], 2);//�ж�16λ�Ĵ���
		if(d){//��d���棬˵�����ϸߵ�λ�Ĵ���
			data.push_back(d);
			//�����ж��Ƿ�Ϊ�ַ���$���������ǣ�д��3����Ԫ�أ���data�Ĵ�С���ڵ���4,���򷵻ؽ��Ĵ���������ֵת�����Ľ���
			if (ch[1] != "$"){
				//д���Ĵ�����������������ֵ������������16���ƻ�ʮ�����ַ���
				w = Num(ch[1], 1,num);
				if (w.size() > 0){
					data.insert(data.end(), w.begin(), w.end());
					return data;
				}
				else{
					//��ʱdata�Ĵ�СΪ4������ȷ����Ϊ����
					data.insert(data.end(), 2, 0x00);
					data.push_back(2);
					return data;
				}
			}
			else {
				w = NumToUc(num, 1);
				data.insert(data.end(), w.begin(), w.end());
				return data;
			}
		}
		else if(f){
			data.push_back(f);//д���Ĵ���
			//ͬ��
			if (ch[1] != "$"){
				//д���Ĵ�����������������ֵ������������16���ƻ�ʮ�����ַ���
				w = Num(ch[1], 2,num);
				//�ж��Ƿ��Ǳ����ַ���
				if (w.size() > 0){
					data.insert(data.end(), w.begin(), w.end());
					return data;
				}
				else{
					//��ʱdata�Ĵ�СΪ4������ȷ����Ϊ����
					data.insert(data.end(), 2, 0x00);
					data.push_back(1);
					return data;
				}
			}
			else {
				w = NumToUc(num, 2);
				data.insert(data.end(), w.begin(), w.end());
				return data;
			}
		}
		else{
			cout << "����MOVָ��������error-005!" << endl;
			return data;
		}
		cout << "����MOVָ��������error-019!" << endl;
		return data;
	}
	//���䣬֮ǰû�з��ֶμĴ����ĸ�ֵ
	
	return data;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
movl %ecx, -0x34(%rbp)
movq %rdx, %r12
movq %rdi, %rbx
xorps %xmm0, %xmm0
movups %xmm0, (%rdi)
andq $0x0, 0x10(%rdi)
movaps %xmm0, -0x70(%rbp)
andq $0x0, -0x60(%rbp)
pushq $0x10
popq %rax
leaq (%rax,%rbp), %rcx
addq $-0xb0, %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
movb $0x0, (%rcx)
addq $0x20, %rax
cmpq $0x50, %rax
jne 0x60a0
addq $0x20, %rsi
leaq -0xb0(%rbp), %rdi
callq 0x2120
addq $0x20, %r12
leaq -0x90(%rbp), %r15
movq %r15, %rdi
movq %r12, %rsi
callq 0x2120
leaq -0xb0(%rbp), %rdi
pushq $0x1
popq %rsi
callq 0x38b4
movl %eax, %r12d
movb %al, -0x2e(%rbp)
leaq -0xb0(%rbp), %rdi
pushq $0x2
popq %rsi
callq 0x38b4
movl %eax, %r13d
movb %al, -0x2d(%rbp)
leaq -0xb0(%rbp), %rdi
pushq $0x3
popq %rsi
callq 0x38b4
movl %eax, %r14d
movb %al, -0x2c(%rbp)
leaq -0xb0(%rbp), %rdi
pushq $0x4
popq %rsi
callq 0x38b4
movb %al, -0x2b(%rbp)
testb %r12b, %r12b
je 0x6152
leaq -0x50(%rbp), %rsi
movb $-0x78, (%rsi)
movq %rbx, %rdi
callq 0x5c1e
leaq -0x2e(%rbp), %rsi
jmp 0x619d
testb %r13b, %r13b
je 0x616c
leaq -0x50(%rbp), %rsi
movb $-0x77, (%rsi)
movq %rbx, %rdi
callq 0x5c1e
leaq -0x2d(%rbp), %rsi
jmp 0x619d
testb %r14b, %r14b
je 0x6186
leaq -0x50(%rbp), %rsi
movb $-0x74, (%rsi)
movq %rbx, %rdi
callq 0x5c1e
leaq -0x2c(%rbp), %rsi
jmp 0x619d
testb %al, %al
je 0x61e1
leaq -0x50(%rbp), %rsi
movb $-0x72, (%rsi)
movq %rbx, %rdi
callq 0x5c1e
leaq -0x2b(%rbp), %rsi
movq %rbx, %rdi
callq 0x5ae6
pushq $0x20
popq %r14
leaq (%r14,%rbp), %rdi
addq $-0xb0, %rdi
callq 0x2358
addq $-0x20, %r14
cmpq $-0x20, %r14
jne 0x61a9
leaq -0x70(%rbp), %rdi
callq 0x5be8
movq %rbx, %rax
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq -0xb0(%rbp), %rdi
pushq $0x1
popq %rsi
callq 0x3a9f
movl %eax, %r14d
movb %al, -0x2a(%rbp)
leaq -0xb0(%rbp), %rdi
pushq $0x2
popq %rsi
callq 0x3a9f
movb %al, -0x29(%rbp)
testb %r14b, %r14b
je 0x627e
leaq -0x2a(%rbp), %rsi
movq %rbx, %rdi
callq 0x5ae6
leaq 0x6fa1(%rip), %rsi      # 0xd1c1
movq %r15, %rdi
callq 0xa8f5
testb %al, %al
je 0x62f7
leaq -0x50(%rbp), %rdi
pushq $0x1
popq %rdx
movq %r15, %rsi
movl -0x34(%rbp), %ecx
callq 0x420a
leaq -0x70(%rbp), %r14
leaq -0x50(%rbp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x5d96
movq %r15, %rdi
callq 0x5be8
movq (%r14), %rdx
movq 0x8(%r14), %rcx
movq 0x8(%rbx), %rsi
cmpq %rdx, %rcx
je 0x639d
movq %rbx, %rdi
callq 0x5b08
jmp 0x61a5
testb %al, %al
je 0x633a
leaq -0x29(%rbp), %rsi
movq %rbx, %rdi
callq 0x5ae6
leaq 0x6f28(%rip), %rsi      # 0xd1c1
movq %r15, %rdi
callq 0xa8f5
testb %al, %al
je 0x635a
leaq -0x50(%rbp), %rdi
pushq $0x2
popq %rdx
movq %r15, %rsi
movl -0x34(%rbp), %ecx
callq 0x420a
leaq -0x70(%rbp), %r14
leaq -0x50(%rbp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x5d96
movq %r15, %rdi
callq 0x5be8
movq (%r14), %rdx
movq 0x8(%r14), %rcx
movq 0x8(%rbx), %rsi
cmpq %rdx, %rcx
je 0x63c3
movq %rbx, %rdi
callq 0x5b08
jmp 0x61a5
movslq -0x34(%rbp), %rsi
leaq -0x50(%rbp), %rdi
pushq $0x1
popq %rdx
callq 0x3e87
leaq -0x70(%rbp), %r14
leaq -0x50(%rbp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x5d96
movq %r15, %rdi
callq 0x5be8
movq 0x8(%rbx), %rsi
movq (%r14), %rdx
movq 0x8(%r14), %rcx
movq %rbx, %rdi
callq 0x5b08
jmp 0x61a5
movq 0xac97(%rip), %rdi      # 0x10fd8
leaq 0x703f(%rip), %rsi      # 0xd387
callq 0x21b0
movq %rax, %rdi
callq 0x2100
jmp 0x61a5
movslq -0x34(%rbp), %rsi
leaq -0x50(%rbp), %rdi
pushq $0x2
popq %rdx
callq 0x3e87
leaq -0x70(%rbp), %r14
leaq -0x50(%rbp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x5d96
movq %r15, %rdi
callq 0x5be8
movq 0x8(%rbx), %rsi
movq (%r14), %rdx
movq 0x8(%r14), %rcx
movq %rbx, %rdi
callq 0x5b08
jmp 0x61a5
leaq -0x50(%rbp), %rcx
movb $0x0, (%rcx)
pushq $0x2
popq %rdx
movq %rbx, %rdi
callq 0xa902
leaq -0x50(%rbp), %rsi
movb $0x2, (%rsi)
movq %rbx, %rdi
callq 0x5c1e
jmp 0x61a5
leaq -0x50(%rbp), %rcx
movb $0x0, (%rcx)
pushq $0x2
popq %rdx
movq %rbx, %rdi
callq 0xa902
leaq -0x50(%rbp), %rsi
movb $0x1, (%rsi)
movq %rbx, %rdi
callq 0x5c1e
jmp 0x61a5
jmp 0x6409
jmp 0x6409
jmp 0x6409
jmp 0x6409
jmp 0x6409
jmp 0x6409
jmp 0x6409
jmp 0x6409
jmp 0x6409
jmp 0x6409
jmp 0x6409
jmp 0x6409
jmp 0x6409
jmp 0x6409
jmp 0x6409
jmp 0x6409
movq %rax, %r14
pushq $0x20
popq %r15
leaq (%r15,%rbp), %rdi
addq $-0xb0, %rdi
callq 0x2358
addq $-0x20, %r15
cmpq $-0x20, %r15
jne 0x6410
leaq -0x70(%rbp), %rdi
callq 0x5be8
movq %rbx, %rdi
callq 0x5be8
movq %r14, %rdi
callq 0x2300