// File: /workspace/github_cpp_makefile_star2_O2/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 $0x88, %rsp
movl %ecx, %r14d
movq %rsi, %r15
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 0x8768
leaq -0x50(%rbp), %rdi
movq %r15, %rsi
callq 0x35dc
leaq -0xb0(%rbp), %rdi
leaq -0x50(%rbp), %r12
movq %r12, %rsi
callq 0x2220
movq %r12, %rdi
callq 0x2358
pushq $0x2c
popq %rsi
movq %r15, %rdi
xorl %edx, %edx
callq 0x2240
leal 0x1(%rax), %edx
leaq -0x50(%rbp), %rdi
movq %r15, %rsi
callq 0x35dc
leaq -0x90(%rbp), %r15
movq %r15, %rdi
movq %r12, %rsi
callq 0x2220
movq %r12, %rdi
callq 0x2358
leaq -0xb0(%rbp), %rdi
pushq $0x1
popq %rsi
callq 0x38b4
movl %eax, %r12d
movb %al, -0x2c(%rbp)
leaq -0xb0(%rbp), %rdi
pushq $0x2
popq %rsi
callq 0x38b4
movl %eax, %r13d
movb %al, -0x2b(%rbp)
leaq -0xb0(%rbp), %rdi
pushq $0x3
popq %rsi
callq 0x38b4
testb %r12b, %r12b
je 0x8839
leaq -0x50(%rbp), %rsi
movb $0x0, (%rsi)
movq %rbx, %rdi
callq 0x5c1e
leaq -0x2c(%rbp), %rsi
jmp 0x8851
testb %r13b, %r13b
je 0x8895
leaq -0x50(%rbp), %rsi
movb $0x1, (%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 0x885d
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
testb %al, %al
je 0x88b6
movq 0x8738(%rip), %rdi      # 0x10fd8
leaq 0x4bb8(%rip), %rsi      # 0xd45f
callq 0x21b0
movq %rax, %rdi
callq 0x2100
jmp 0x8859
leaq 0x4893(%rip), %rsi      # 0xd150
leaq -0xb0(%rbp), %rdi
callq 0x5ad5
testb %al, %al
jne 0x88e4
leaq 0x4864(%rip), %rsi      # 0xd138
leaq -0xb0(%rbp), %rdi
callq 0x5ad5
testb %al, %al
je 0x8938
leaq -0x50(%rbp), %rsi
movb $0x5, (%rsi)
movq %rbx, %rdi
callq 0x5c1e
leaq -0x50(%rbp), %rdi
pushq $0x2
popq %rdx
movq %r15, %rsi
movl %r14d, %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 0x8(%rbx), %rsi
movq (%r14), %rdx
movq 0x8(%r14), %rcx
movq %rbx, %rdi
callq 0x5b08
jmp 0x8859
leaq 0x47e4(%rip), %rsi      # 0xd123
leaq -0xb0(%rbp), %rdi
callq 0x5ad5
testb %al, %al
jne 0x8966
leaq 0x47b5(%rip), %rsi      # 0xd10b
leaq -0xb0(%rbp), %rdi
callq 0x5ad5
testb %al, %al
je 0x89ba
leaq -0x50(%rbp), %rsi
movb $0x4, (%rsi)
movq %rbx, %rdi
callq 0x5c1e
leaq -0x50(%rbp), %rdi
pushq $0x1
popq %rdx
movq %r15, %rsi
movl %r14d, %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 0x8(%rbx), %rsi
movq (%r14), %rdx
movq 0x8(%r14), %rcx
movq %rbx, %rdi
callq 0x5b08
jmp 0x8859
leaq -0xb0(%rbp), %rdi
pushq $0x1
popq %rsi
callq 0x4386
movl %eax, %r12d
movb %al, -0x2a(%rbp)
leaq -0xb0(%rbp), %rdi
pushq $0x2
popq %rsi
callq 0x4386
movb %al, -0x29(%rbp)
testb %r12b, %r12b
je 0x8a46
leaq -0x50(%rbp), %rsi
movb $-0x80, (%rsi)
movq %rbx, %rdi
callq 0x5c1e
leaq -0x2a(%rbp), %rsi
movq %rbx, %rdi
callq 0x5ae6
leaq -0x50(%rbp), %rdi
pushq $0x1
popq %rdx
movq %r15, %rsi
movl %r14d, %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 0x8(%rbx), %rsi
movq (%r14), %rdx
movq 0x8(%r14), %rcx
movq %rbx, %rdi
callq 0x5b08
jmp 0x8859
testb %al, %al
je 0x8859
movq %r15, %rdi
movl %r14d, %esi
callq 0x3f4c
cmpq $0x80, %rax
jl 0x8ac0
leaq -0x50(%rbp), %rdi
pushq $0x2
popq %rdx
movq %r15, %rsi
movl %r14d, %ecx
callq 0x420a
leaq -0x70(%rbp), %rdi
leaq -0x50(%rbp), %r14
movq %r14, %rsi
callq 0x5d96
movq %r14, %rdi
callq 0x5be8
movb $-0x7f, (%r14)
leaq -0x50(%rbp), %rsi
movq %rbx, %rdi
callq 0x5c1e
leaq -0x29(%rbp), %rsi
movq %rbx, %rdi
callq 0x5ae6
movq 0x8(%rbx), %rsi
movq -0x70(%rbp), %rdx
movq -0x68(%rbp), %rcx
movq %rbx, %rdi
callq 0x5b08
jmp 0x8859
leaq -0x50(%rbp), %rdi
pushq $0x1
popq %rdx
movq %r15, %rsi
movl %r14d, %ecx
callq 0x420a
leaq -0x70(%rbp), %rdi
leaq -0x50(%rbp), %r14
movq %r14, %rsi
callq 0x5d96
movq %r14, %rdi
callq 0x5be8
movb $-0x7d, (%r14)
leaq -0x50(%rbp), %rsi
movq %rbx, %rdi
callq 0x5c1e
leaq -0x29(%rbp), %rsi
movq %rbx, %rdi
callq 0x5ae6
movq 0x8(%rbx), %rsi
movq -0x70(%rbp), %rdx
movq -0x68(%rbp), %rcx
movq %rbx, %rdi
callq 0x5b08
jmp 0x8859
jmp 0x8b45
jmp 0x8b45
jmp 0x8b45
jmp 0x8b45
jmp 0x8b45
jmp 0x8b45
jmp 0x8b45
jmp 0x8b45
jmp 0x8b45
jmp 0x8b45
jmp 0x8b45
jmp 0x8b45
jmp 0x8b45
jmp 0x8b45
jmp 0x8b45
jmp 0x8b45
jmp 0x8b45
jmp 0x8b45
jmp 0x8b45
movq %rax, %r14
pushq $0x20
popq %r15
leaq (%r15,%rbp), %rdi
addq $-0xb0, %rdi
callq 0x2358
addq $-0x20, %r15
cmpq $-0x20, %r15
jne 0x8b4c
leaq -0x70(%rbp), %rdi
callq 0x5be8
movq %rbx, %rdi
callq 0x5be8
movq %r14, %rdi
callq 0x2300