// File: /workspace/github_cpp_makefile_star2_O3/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, -0x30(%rbp)
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 0xa763
leaq -0x58(%rbp), %rdi
movq %r14, %rsi
callq 0x3b1c
leaq -0xa0(%rbp), %rdi
leaq -0x58(%rbp), %r15
movq %r15, %rsi
callq 0x2230
movq (%r15), %rdi
leaq -0x48(%rbp), %r15
cmpq %r15, %rdi
je 0xa7be
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x21d0
movq %r14, %rdi
movl $0x2c, %esi
xorl %edx, %edx
callq 0x2240
leal 0x1(%rax), %edx
leaq -0x58(%rbp), %rdi
movq %r14, %rsi
callq 0x3b1c
leaq -0x80(%rbp), %rdi
leaq -0x58(%rbp), %r14
movq %r14, %rsi
callq 0x2230
movq (%r14), %rdi
cmpq %r15, %rdi
je 0xa800
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x21d0
xorl %r14d, %r14d
leaq -0xa0(%rbp), %rdi
xorl %r15d, %r15d
movl $0x1, %esi
callq 0x3e24
movl %eax, %r12d
movb %al, -0x34(%rbp)
xorl %r14d, %r14d
leaq -0xa0(%rbp), %rdi
xorl %r15d, %r15d
movl $0x2, %esi
callq 0x3e24
movl %eax, %r13d
movb %al, -0x33(%rbp)
xorl %r14d, %r14d
leaq -0xa0(%rbp), %rdi
xorl %r15d, %r15d
movl $0x3, %esi
callq 0x3e24
testb %r12b, %r12b
je 0xa87b
leaq -0x58(%rbp), %rsi
movb $0x0, (%rsi)
movq %rbx, %rdi
callq 0x6694
movq 0x8(%rbx), %rsi
cmpq 0x10(%rbx), %rsi
je 0xa8b5
movq %rbx, %rax
addq $0x8, %rax
movb %r12b, (%rsi)
jmp 0xa8a7
testb %r13b, %r13b
je 0xa8bb
leaq -0x58(%rbp), %rsi
movb $0x1, (%rsi)
movq %rbx, %rdi
callq 0x6694
movq 0x8(%rbx), %rsi
cmpq 0x10(%rbx), %rsi
je 0xa924
movq %rbx, %rax
addq $0x8, %rax
movb %r13b, (%rsi)
incq (%rax)
xorl %r14d, %r14d
xorl %r15d, %r15d
jmp 0xa936
leaq -0x34(%rbp), %rdx
jmp 0xa928
testb %al, %al
je 0xa985
xorl %r14d, %r14d
movq 0xa70b(%rip), %r12      # 0x14fd8
leaq 0x6ba4(%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 0xa6cc(%rip), %rdi      # 0x14fd8
xorl %r15d, %r15d
callq 0x2040
xorl %r14d, %r14d
xorl %r15d, %r15d
movq %rax, %rdi
callq 0x2130
jmp 0xa936
leaq -0x33(%rbp), %rdx
xorl %r14d, %r14d
xorl %r15d, %r15d
movq %rbx, %rdi
callq 0x67cc
movq $-0x40, %r12
leaq -0x70(%rbp), %r13
movq -0x10(%r13), %rdi
cmpq %rdi, %r13
je 0xa956
movq (%r13), %rsi
incq %rsi
callq 0x21d0
addq $-0x20, %r13
addq $0x20, %r12
jne 0xa941
testq %r15, %r15
je 0xa973
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 0x67c4(%rip), %rsi      # 0x11150
leaq -0xa0(%rbp), %rdi
callq 0x20a0
testl %eax, %eax
je 0xaa87
leaq 0x6791(%rip), %rsi      # 0x11138
leaq -0xa0(%rbp), %rdi
callq 0x20a0
testl %eax, %eax
je 0xaa87
leaq 0x6761(%rip), %rsi      # 0x11123
leaq -0xa0(%rbp), %rdi
callq 0x20a0
testl %eax, %eax
je 0xaacb
leaq 0x672e(%rip), %rsi      # 0x1110b
leaq -0xa0(%rbp), %rdi
callq 0x20a0
testl %eax, %eax
je 0xaacb
xorl %r14d, %r14d
leaq -0xa0(%rbp), %rdi
xorl %r15d, %r15d
movl $0x1, %esi
callq 0x4a4f
movl %eax, %r12d
movb %al, -0x32(%rbp)
xorl %r14d, %r14d
leaq -0xa0(%rbp), %rdi
xorl %r15d, %r15d
movl $0x2, %esi
callq 0x4a4f
movb %al, -0x31(%rbp)
testb %r12b, %r12b
je 0xab0f
leaq -0x58(%rbp), %rsi
movb $-0x80, (%rsi)
movq %rbx, %rdi
callq 0x6694
xorl %r14d, %r14d
leaq -0x32(%rbp), %rsi
xorl %r15d, %r15d
movq %rbx, %rdi
callq 0x65d4
leaq -0x58(%rbp), %rdi
leaq -0x80(%rbp), %rsi
movl $0x1, %edx
movl -0x30(%rbp), %ecx
callq 0x48ee
movq -0x58(%rbp), %r15
movq -0x50(%rbp), %rcx
movq -0x48(%rbp), %r14
movq 0x8(%rbx), %rsi
movq %rbx, %rdi
movq %r15, %rdx
callq 0x68c6
jmp 0xa936
leaq -0x58(%rbp), %rsi
movb $0x5, (%rsi)
movq %rbx, %rdi
callq 0x6694
leaq -0x58(%rbp), %rdi
leaq -0x80(%rbp), %rsi
movl $0x2, %edx
movl -0x30(%rbp), %ecx
callq 0x48ee
movq -0x58(%rbp), %r15
movq -0x50(%rbp), %rcx
movq -0x48(%rbp), %r14
movq 0x8(%rbx), %rsi
movq %rbx, %rdi
movq %r15, %rdx
callq 0x68c6
jmp 0xa936
leaq -0x58(%rbp), %rsi
movb $0x4, (%rsi)
movq %rbx, %rdi
callq 0x6694
leaq -0x58(%rbp), %rdi
leaq -0x80(%rbp), %rsi
movl $0x1, %edx
movl -0x30(%rbp), %ecx
callq 0x48ee
movq -0x58(%rbp), %r15
movq -0x50(%rbp), %rcx
movq -0x48(%rbp), %r14
movq 0x8(%rbx), %rsi
movq %rbx, %rdi
movq %r15, %rdx
callq 0x68c6
jmp 0xa936
testb %al, %al
je 0xa8aa
xorl %r14d, %r14d
xorl %r15d, %r15d
leaq -0x80(%rbp), %rdi
movl -0x30(%rbp), %esi
callq 0x45f9
cmpq $0x80, %rax
jl 0xab83
leaq -0x58(%rbp), %rdi
leaq -0x80(%rbp), %rsi
movl $0x2, %edx
movl -0x30(%rbp), %ecx
callq 0x48ee
leaq -0x58(%rbp), %rsi
movq (%rsi), %r15
movq 0x8(%rsi), %r12
movq 0x10(%rsi), %r14
movb $-0x7f, (%rsi)
movq %rbx, %rdi
callq 0x6694
leaq -0x31(%rbp), %rsi
movq %rbx, %rdi
callq 0x65d4
movq 0x8(%rbx), %rsi
movq %rbx, %rdi
movq %r15, %rdx
movq %r12, %rcx
callq 0x68c6
jmp 0xa936
leaq -0x58(%rbp), %rdi
leaq -0x80(%rbp), %rsi
movl $0x1, %edx
movl -0x30(%rbp), %ecx
callq 0x48ee
leaq -0x58(%rbp), %rsi
movq (%rsi), %r15
movq 0x8(%rsi), %r12
movq 0x10(%rsi), %r14
movb $-0x7d, (%rsi)
movq %rbx, %rdi
callq 0x6694
leaq -0x31(%rbp), %rsi
movq %rbx, %rdi
callq 0x65d4
movq 0x8(%rbx), %rsi
movq %rbx, %rdi
movq %r15, %rdx
movq %r12, %rcx
callq 0x68c6
jmp 0xa936
jmp 0xac05
jmp 0xac05
jmp 0xac05
jmp 0xac05
jmp 0xabf9
jmp 0xabf9
jmp 0xac05
jmp 0xabf9
jmp 0xabf9
jmp 0xac05
jmp 0xabf9
jmp 0xabf9
jmp 0xac05
jmp 0xabf9
jmp 0xabf9
jmp 0xabf9
jmp 0xabf9
jmp 0xabf9
movq %rax, -0x30(%rbp)
xorl %r14d, %r14d
xorl %r15d, %r15d
jmp 0xac09
movq %rax, -0x30(%rbp)
movq $-0x40, %r13
leaq -0x70(%rbp), %r12
movq -0x10(%r12), %rdi
cmpq %rdi, %r12
je 0xac2a
movq (%r12), %rsi
incq %rsi
callq 0x21d0
addq $-0x20, %r12
addq $0x20, %r13
jne 0xac14
testq %r15, %r15
je 0xac47
subq %r15, %r14
movq %r15, %rdi
movq %r14, %rsi
callq 0x21d0
movq (%rbx), %rdi
testq %rdi, %rdi
je 0xac5b
movq 0x10(%rbx), %rsi
subq %rdi, %rsi
callq 0x21d0
movq -0x30(%rbp), %rdi
callq 0x2300