// File: /workspace/github_cpp_makefile_star2_O1/lindorx[P]train/InsPro.cpp
// Function: Additive(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, int, int)
std::vector<unsigned char>Additive(const std::string& str,int n,int num)
{
	using namespace std;

	vector<unsigned char>data;
	vector<unsigned char>w;
	unsigned char a, b, c, d, f;
	string ch[2];
	ch[0] = CutStr(str, n);
	ch[1] = CutStr(str, str.find(',') + 1);
	a = TwoRegBin(ch, 1);
	b = TwoRegBin(ch, 2);
	c = TwoRegBin(ch, 3);
	//�����Ƿ�Ϊ�Ĵ���֮�丳ֵ
	if (a){
		data.push_back(0x00);
		data.push_back(a);
		return data;
	}
	else if (b){
		data.push_back(0x01);
		data.push_back(b);
		return data;
	}
	else if (c){
		cout << "�μĴ�������ֱ�Ӳ�������!-error-007!" << endl;
	}
	//˵��ch[1]��һ�������ַ���������
	//�����Ƿ���ax�Ĵ���
	else if (ch[0] == "ax" || ch[0] == "AX"){
		data.push_back(0x05);
		w = Num(ch[1], 2, num);
		data.insert(data.end(), w.begin(), w.end());
		return data;
	}
	else if (ch[0] == "al" || ch[0] == "AL"){
		data.push_back(0x04);
		w = Num(ch[1], 1, num);
		data.insert(data.end(), w.begin(), w.end());
		return data;
	}
	else{
		//�жϼĴ���λ��
		d = regadd(ch[0], 1);//������ֵ��Ϊ0����˵��ch[0]��8λ�Ĵ�������
		f = regadd(ch[0], 2);//������ֵ��Ϊ0����˵��ch[1]��16λ�Ĵ�������
		if (d){
			//�ж�Ϊ8λ�Ĵ���
			data.push_back(0x80);
			data.push_back(d);
			w = Num(ch[1], 1, num);
			data.insert(data.end(), w.begin(), w.end());
			return data;
		}
		else if (f){
			//�ж�Ϊ16λ�Ĵ���
			if (IntNum(ch[1], num) > 0x7f){
				//��ֵӦת��Ϊ2�ֽ�
				w = Num(ch[1], 2, num);
				data.push_back(0x81);
				data.push_back(f);
				data.insert(data.end(), w.begin(), w.end());
				return data;
			}
			else{
				w = Num(ch[1], 1, num);
				data.push_back(0x83);
				data.push_back(f);
				data.insert(data.end(), w.begin(), w.end());
				return data;
			}
		}
	}
	return data;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
movl %ecx, %r12d
movq %rsi, %r14
movq %rdi, %rbx
xorps %xmm0, %xmm0
movups %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
movl $0x10, %eax
leaq (%rax,%rbp), %rcx
addq $-0xa0, %rcx
movq %rcx, -0x10(%rcx)
movq $0x0, -0x8(%rcx)
movb $0x0, (%rcx)
addq $0x20, %rax
cmpq $0x50, %rax
jne 0xa963
leaq -0x60(%rbp), %rdi
movq %r14, %rsi
callq 0x3b1c
leaq -0xa0(%rbp), %rdi
leaq -0x60(%rbp), %r15
movq %r15, %rsi
callq 0x2230
movq (%r15), %rdi
leaq -0x50(%rbp), %r15
cmpq %r15, %rdi
je 0xa9be
movq -0x50(%rbp), %rsi
incq %rsi
callq 0x21d0
movq %r14, %rdi
movl $0x2c, %esi
xorl %edx, %edx
callq 0x2240
leal 0x1(%rax), %edx
leaq -0x60(%rbp), %rdi
movq %r14, %rsi
callq 0x3b1c
leaq -0x80(%rbp), %r13
leaq -0x60(%rbp), %r14
movq %r13, %rdi
movq %r14, %rsi
callq 0x2230
movq (%r14), %rdi
cmpq %r15, %rdi
je 0xaa03
movq -0x50(%rbp), %rsi
incq %rsi
callq 0x21d0
xorl %r14d, %r14d
leaq -0xa0(%rbp), %rdi
xorl %r15d, %r15d
movl $0x1, %esi
callq 0x3e40
movb %al, -0x2a(%rbp)
xorl %r14d, %r14d
leaq -0xa0(%rbp), %rdi
xorl %r15d, %r15d
movl $0x2, %esi
callq 0x3e40
movb %al, -0x29(%rbp)
xorl %r14d, %r14d
leaq -0xa0(%rbp), %rdi
xorl %r15d, %r15d
movl $0x3, %esi
callq 0x3e40
cmpb $0x0, -0x2a(%rbp)
je 0xaa79
leaq -0x60(%rbp), %rsi
movb $0x0, (%rsi)
movq %rbx, %rdi
callq 0x67f0
movq 0x8(%rbx), %rsi
cmpq 0x10(%rbx), %rsi
je 0xaab6
movq %rbx, %rax
addq $0x8, %rax
movb -0x2a(%rbp), %cl
jmp 0xaaa6
cmpb $0x0, -0x29(%rbp)
je 0xaabc
leaq -0x60(%rbp), %rsi
movb $0x1, (%rsi)
movq %rbx, %rdi
callq 0x67f0
movq 0x8(%rbx), %rsi
cmpq 0x10(%rbx), %rsi
je 0xab25
movq %rbx, %rax
addq $0x8, %rax
movb -0x29(%rbp), %cl
movb %cl, (%rsi)
incq (%rax)
xorl %r14d, %r14d
xorl %r15d, %r15d
jmp 0xab37
leaq -0x2a(%rbp), %rdx
jmp 0xab29
testb %al, %al
je 0xab86
xorl %r14d, %r14d
movq 0xa50a(%rip), %r12      # 0x14fd8
leaq 0x69a3(%rip), %rsi      # 0x11478
movl $0x24, %edx
xorl %r15d, %r15d
movq %r12, %rdi
callq 0x2210
movq (%r12), %rax
addq -0x18(%rax), %r12
xorl %r14d, %r14d
xorl %r15d, %r15d
movq %r12, %rdi
movl $0xa, %esi
callq 0x21b0
xorl %r14d, %r14d
movsbl %al, %esi
movq 0xa4cb(%rip), %rdi      # 0x14fd8
xorl %r15d, %r15d
callq 0x2040
xorl %r14d, %r14d
xorl %r15d, %r15d
movq %rax, %rdi
callq 0x2130
jmp 0xab37
leaq -0x29(%rbp), %rdx
xorl %r14d, %r14d
xorl %r15d, %r15d
movq %rbx, %rdi
callq 0x6920
movq $-0x40, %r12
leaq -0x70(%rbp), %r13
movq -0x10(%r13), %rdi
cmpq %rdi, %r13
je 0xab57
movq (%r13), %rsi
incq %rsi
callq 0x21d0
addq $-0x20, %r13
addq $0x20, %r12
jne 0xab42
testq %r15, %r15
je 0xab74
subq %r15, %r14
movq %r15, %rdi
movq %r14, %rsi
callq 0x21d0
movq %rbx, %rax
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x65c3(%rip), %rsi      # 0x11150
leaq -0xa0(%rbp), %rdi
callq 0x20a0
testl %eax, %eax
je 0xac85
leaq 0x6590(%rip), %rsi      # 0x11138
leaq -0xa0(%rbp), %rdi
callq 0x20a0
testl %eax, %eax
je 0xac85
leaq 0x6560(%rip), %rsi      # 0x11123
leaq -0xa0(%rbp), %rdi
callq 0x20a0
testl %eax, %eax
je 0xacc8
leaq 0x652d(%rip), %rsi      # 0x1110b
leaq -0xa0(%rbp), %rdi
callq 0x20a0
testl %eax, %eax
je 0xacc8
xorl %r14d, %r14d
leaq -0xa0(%rbp), %rdi
xorl %r15d, %r15d
movl $0x1, %esi
callq 0x4a60
movb %al, -0x2c(%rbp)
xorl %r14d, %r14d
leaq -0xa0(%rbp), %rdi
xorl %r15d, %r15d
movl $0x2, %esi
callq 0x4a60
movb %al, -0x2b(%rbp)
cmpb $0x0, -0x2c(%rbp)
je 0xad0b
leaq -0x60(%rbp), %rsi
movb $-0x80, (%rsi)
movq %rbx, %rdi
callq 0x67f0
xorl %r14d, %r14d
leaq -0x2c(%rbp), %rsi
xorl %r15d, %r15d
movq %rbx, %rdi
callq 0x6734
leaq -0x60(%rbp), %rdi
movq %r13, %rsi
movl $0x1, %edx
movl %r12d, %ecx
callq 0x48ff
movq -0x60(%rbp), %r15
movq -0x58(%rbp), %rcx
movq -0x50(%rbp), %r14
movq 0x8(%rbx), %rsi
movq %rbx, %rdi
movq %r15, %rdx
callq 0x6a1a
jmp 0xab37
leaq -0x60(%rbp), %rsi
movb $0x5, (%rsi)
movq %rbx, %rdi
callq 0x67f0
leaq -0x60(%rbp), %rdi
movq %r13, %rsi
movl $0x2, %edx
movl %r12d, %ecx
callq 0x48ff
movq -0x60(%rbp), %r15
movq -0x58(%rbp), %rcx
movq -0x50(%rbp), %r14
movq 0x8(%rbx), %rsi
movq %rbx, %rdi
movq %r15, %rdx
callq 0x6a1a
jmp 0xab37
leaq -0x60(%rbp), %rsi
movb $0x4, (%rsi)
movq %rbx, %rdi
callq 0x67f0
leaq -0x60(%rbp), %rdi
movq %r13, %rsi
movl $0x1, %edx
movl %r12d, %ecx
callq 0x48ff
movq -0x60(%rbp), %r15
movq -0x58(%rbp), %rcx
movq -0x50(%rbp), %r14
movq 0x8(%rbx), %rsi
movq %rbx, %rdi
movq %r15, %rdx
callq 0x6a1a
jmp 0xab37
testb %al, %al
je 0xaaab
xorl %r14d, %r14d
xorl %r15d, %r15d
movq %r13, %rdi
movl %r12d, %esi
callq 0x460a
cmpq $0x80, %rax
jl 0xad7d
leaq -0x60(%rbp), %rdi
movq %r13, %rsi
movl $0x2, %edx
movl %r12d, %ecx
callq 0x48ff
leaq -0x60(%rbp), %rsi
movq (%rsi), %r15
movq 0x8(%rsi), %r12
movq 0x10(%rsi), %r14
movb $-0x7f, (%rsi)
movq %rbx, %rdi
callq 0x67f0
leaq -0x2b(%rbp), %rsi
movq %rbx, %rdi
callq 0x6734
movq 0x8(%rbx), %rsi
movq %rbx, %rdi
movq %r15, %rdx
movq %r12, %rcx
callq 0x6a1a
jmp 0xab37
leaq -0x60(%rbp), %rdi
movq %r13, %rsi
movl $0x1, %edx
movl %r12d, %ecx
callq 0x48ff
leaq -0x60(%rbp), %rsi
movq (%rsi), %r15
movq 0x8(%rsi), %r12
movq 0x10(%rsi), %r14
movb $-0x7d, (%rsi)
movq %rbx, %rdi
callq 0x67f0
leaq -0x2b(%rbp), %rsi
movq %rbx, %rdi
callq 0x6734
movq 0x8(%rbx), %rsi
movq %rbx, %rdi
movq %r15, %rdx
movq %r12, %rcx
callq 0x6a1a
jmp 0xab37
jmp 0xadfe
jmp 0xadfe
jmp 0xadfe
jmp 0xadfe
jmp 0xadf2
jmp 0xadf2
jmp 0xadfe
jmp 0xadf2
jmp 0xadf2
jmp 0xadfe
jmp 0xadf2
jmp 0xadf2
jmp 0xadfe
jmp 0xadf2
jmp 0xadf2
jmp 0xadf2
jmp 0xadf2
jmp 0xadf2
movq %rax, -0x38(%rbp)
xorl %r14d, %r14d
xorl %r15d, %r15d
jmp 0xae02
movq %rax, -0x38(%rbp)
movq $-0x40, %r13
leaq -0x70(%rbp), %r12
movq -0x10(%r12), %rdi
cmpq %rdi, %r12
je 0xae23
movq (%r12), %rsi
incq %rsi
callq 0x21d0
addq $-0x20, %r12
addq $0x20, %r13
jne 0xae0d
testq %r15, %r15
je 0xae40
subq %r15, %r14
movq %r15, %rdi
movq %r14, %rsi
callq 0x21d0
movq (%rbx), %rdi
testq %rdi, %rdi
je 0xae54
movq 0x10(%rbx), %rsi
subq %rdi, %rsi
callq 0x21d0
movq -0x38(%rbp), %rdi
callq 0x2300