// File: 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
subq $0x360, %rsp            # imm = 0x360
movq %rdi, -0x260(%rbp)
movq %rdi, %rax
movq %rax, -0x258(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movl %ecx, -0x18(%rbp)
movb $0x0, -0x19(%rbp)
callq 0xa8d0
leaq -0x38(%rbp), %rdi
callq 0xa8d0
leaq -0x80(%rbp), %rax
movq %rax, %rcx
addq $0x40, %rcx
movq %rcx, -0x250(%rbp)
movq %rax, -0x248(%rbp)
movq -0x248(%rbp), %rdi
movq %rdi, -0x268(%rbp)
callq 0x3330
movq -0x268(%rbp), %rax
movq -0x250(%rbp), %rcx
addq $0x20, %rax
cmpq %rcx, %rax
movq %rax, -0x248(%rbp)
jne 0x112b5
movq -0x10(%rbp), %rsi
movl -0x14(%rbp), %edx
leaq -0xa0(%rbp), %rdi
callq 0x67d0
jmp 0x112fb
leaq -0x80(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
movq %rsi, -0x278(%rbp)
callq 0x32c0
movq -0x278(%rbp), %rdi
callq 0x3468
movq -0x10(%rbp), %rdi
movq %rdi, -0x270(%rbp)
xorl %eax, %eax
movl %eax, %edx
movl $0x2c, %esi
callq 0x3300
movq -0x270(%rbp), %rsi
movl %eax, %edx
incl %edx
leaq -0xd0(%rbp), %rdi
callq 0x67d0
jmp 0x11350
leaq -0x60(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
movq %rsi, -0x288(%rbp)
callq 0x32c0
movq -0x288(%rbp), %rdi
callq 0x3468
leaq -0x80(%rbp), %rdi
movl $0x1, %esi
callq 0x6d30
movb %al, -0x279(%rbp)
jmp 0x11389
movb -0x279(%rbp), %al
movb %al, -0x39(%rbp)
leaq -0x80(%rbp), %rdi
movl $0x2, %esi
callq 0x6d30
movb %al, -0x289(%rbp)
jmp 0x113a8
movb -0x289(%rbp), %al
movb %al, -0x3a(%rbp)
leaq -0x80(%rbp), %rdi
movl $0x3, %esi
callq 0x6d30
movb %al, -0x28a(%rbp)
jmp 0x113c7
movb -0x28a(%rbp), %al
movb %al, -0x3b(%rbp)
cmpb $0x0, -0x39(%rbp)
je 0x11444
movq -0x260(%rbp), %rdi
movb $0x0, -0xd1(%rbp)
leaq -0xd1(%rbp), %rsi
callq 0xa8f0
jmp 0x113f2
movq -0x260(%rbp), %rdi
leaq -0x39(%rbp), %rsi
callq 0xaa00
jmp 0x11404
movb $0x1, -0x19(%rbp)
movl $0x1, -0xd8(%rbp)
jmp 0x11aef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x80(%rbp), %rax
movq %rax, -0x2a0(%rbp)
addq $0x40, %rax
movq %rax, -0x298(%rbp)
jmp 0x11b47
cmpb $0x0, -0x3a(%rbp)
je 0x1148b
movq -0x260(%rbp), %rdi
movb $0x1, -0xd9(%rbp)
leaq -0xd9(%rbp), %rsi
callq 0xa8f0
jmp 0x11466
movq -0x260(%rbp), %rdi
leaq -0x3a(%rbp), %rsi
callq 0xaa00
jmp 0x11478
movb $0x1, -0x19(%rbp)
movl $0x1, -0xd8(%rbp)
jmp 0x11aef
cmpb $0x0, -0x3b(%rbp)
je 0x114c7
movq 0xfb40(%rip), %rdi      # 0x20fd8
leaq 0xa030(%rip), %rsi      # 0x1b4cf
callq 0x31f0
movq %rax, -0x2a8(%rbp)
jmp 0x114ad
movq -0x2a8(%rbp), %rdi
movq 0xfb05(%rip), %rsi      # 0x20fc0
callq 0x3240
jmp 0x114c2
jmp 0x11add
leaq 0x9cf2(%rip), %rsi      # 0x1b1c0
leaq -0x80(%rbp), %rdi
callq 0xa8a0
movb %al, -0x2a9(%rbp)
jmp 0x114df
movb -0x2a9(%rbp), %al
testb $0x1, %al
jne 0x11512
jmp 0x114eb
leaq 0x9cb6(%rip), %rsi      # 0x1b1a8
leaq -0x80(%rbp), %rdi
callq 0xa8a0
movb %al, -0x2aa(%rbp)
jmp 0x11503
movb -0x2aa(%rbp), %al
testb $0x1, %al
jne 0x11512
jmp 0x11609
movq -0x260(%rbp), %rdi
movb $0x5, -0xda(%rbp)
leaq -0xda(%rbp), %rsi
callq 0xa8f0
jmp 0x1152e
leaq -0x60(%rbp), %rsi
movl -0x18(%rbp), %ecx
leaq -0xf8(%rbp), %rdi
movl $0x2, %edx
callq 0x7be0
jmp 0x11548
leaq -0x38(%rbp), %rdi
movq %rdi, -0x2c0(%rbp)
leaq -0xf8(%rbp), %rsi
movq %rsi, -0x2c8(%rbp)
callq 0xa9b0
movq -0x2c8(%rbp), %rdi
callq 0xa920
movq -0x260(%rbp), %rdi
callq 0xab40
movq %rax, -0x108(%rbp)
leaq -0x100(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0xab70
movq -0x2c0(%rbp), %rdi
callq 0xabb0
movq -0x2c0(%rbp), %rdi
movq %rax, -0x110(%rbp)
callq 0xab40
movq -0x260(%rbp), %rdi
movq %rax, -0x118(%rbp)
movq -0x100(%rbp), %rsi
movq -0x110(%rbp), %rdx
movq -0x118(%rbp), %rcx
callq 0xaa90
movq %rax, -0x2b8(%rbp)
jmp 0x115e8
movq -0x2b8(%rbp), %rax
movq %rax, -0x120(%rbp)
movb $0x1, -0x19(%rbp)
movl $0x1, -0xd8(%rbp)
jmp 0x11aef
leaq 0x9b83(%rip), %rsi      # 0x1b193
leaq -0x80(%rbp), %rdi
callq 0xa8a0
movb %al, -0x2c9(%rbp)
jmp 0x11621
movb -0x2c9(%rbp), %al
testb $0x1, %al
jne 0x11654
jmp 0x1162d
leaq 0x9b47(%rip), %rsi      # 0x1b17b
leaq -0x80(%rbp), %rdi
callq 0xa8a0
movb %al, -0x2ca(%rbp)
jmp 0x11645
movb -0x2ca(%rbp), %al
testb $0x1, %al
jne 0x11654
jmp 0x1174b
movq -0x260(%rbp), %rdi
movb $0x4, -0x121(%rbp)
leaq -0x121(%rbp), %rsi
callq 0xa8f0
jmp 0x11670
leaq -0x60(%rbp), %rsi
movl -0x18(%rbp), %ecx
leaq -0x140(%rbp), %rdi
movl $0x1, %edx
callq 0x7be0
jmp 0x1168a
leaq -0x38(%rbp), %rdi
movq %rdi, -0x2e0(%rbp)
leaq -0x140(%rbp), %rsi
movq %rsi, -0x2e8(%rbp)
callq 0xa9b0
movq -0x2e8(%rbp), %rdi
callq 0xa920
movq -0x260(%rbp), %rdi
callq 0xab40
movq %rax, -0x150(%rbp)
leaq -0x148(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0xab70
movq -0x2e0(%rbp), %rdi
callq 0xabb0
movq -0x2e0(%rbp), %rdi
movq %rax, -0x158(%rbp)
callq 0xab40
movq -0x260(%rbp), %rdi
movq %rax, -0x160(%rbp)
movq -0x148(%rbp), %rsi
movq -0x158(%rbp), %rdx
movq -0x160(%rbp), %rcx
callq 0xaa90
movq %rax, -0x2d8(%rbp)
jmp 0x1172a
movq -0x2d8(%rbp), %rax
movq %rax, -0x168(%rbp)
movb $0x1, -0x19(%rbp)
movl $0x1, -0xd8(%rbp)
jmp 0x11aef
leaq -0x80(%rbp), %rdi
movl $0x1, %esi
callq 0x7e20
movb %al, -0x2e9(%rbp)
jmp 0x11761
movb -0x2e9(%rbp), %al
movb %al, -0x3c(%rbp)
leaq -0x80(%rbp), %rdi
movl $0x2, %esi
callq 0x7e20
movb %al, -0x2ea(%rbp)
jmp 0x11780
movb -0x2ea(%rbp), %al
movb %al, -0x3d(%rbp)
cmpb $0x0, -0x3c(%rbp)
je 0x1189c
movq -0x260(%rbp), %rdi
movb $-0x80, -0x169(%rbp)
leaq -0x169(%rbp), %rsi
callq 0xa8f0
jmp 0x117af
movq -0x260(%rbp), %rdi
leaq -0x3c(%rbp), %rsi
callq 0xaa00
jmp 0x117c1
leaq -0x60(%rbp), %rsi
movl -0x18(%rbp), %ecx
leaq -0x188(%rbp), %rdi
movl $0x1, %edx
callq 0x7be0
jmp 0x117db
leaq -0x38(%rbp), %rdi
movq %rdi, -0x300(%rbp)
leaq -0x188(%rbp), %rsi
movq %rsi, -0x308(%rbp)
callq 0xa9b0
movq -0x308(%rbp), %rdi
callq 0xa920
movq -0x260(%rbp), %rdi
callq 0xab40
movq %rax, -0x198(%rbp)
leaq -0x190(%rbp), %rdi
leaq -0x198(%rbp), %rsi
callq 0xab70
movq -0x300(%rbp), %rdi
callq 0xabb0
movq -0x300(%rbp), %rdi
movq %rax, -0x1a0(%rbp)
callq 0xab40
movq -0x260(%rbp), %rdi
movq %rax, -0x1a8(%rbp)
movq -0x190(%rbp), %rsi
movq -0x1a0(%rbp), %rdx
movq -0x1a8(%rbp), %rcx
callq 0xaa90
movq %rax, -0x2f8(%rbp)
jmp 0x1187b
movq -0x2f8(%rbp), %rax
movq %rax, -0x1b0(%rbp)
movb $0x1, -0x19(%rbp)
movl $0x1, -0xd8(%rbp)
jmp 0x11aef
cmpb $0x0, -0x3d(%rbp)
je 0x11ad5
leaq -0x60(%rbp), %rdi
movl -0x18(%rbp), %esi
callq 0x7720
movq %rax, -0x310(%rbp)
jmp 0x118bb
movq -0x310(%rbp), %rax
cmpq $0x7f, %rax
jle 0x119d2
leaq -0x60(%rbp), %rsi
movl -0x18(%rbp), %ecx
leaq -0x1c8(%rbp), %rdi
movl $0x2, %edx
callq 0x7be0
jmp 0x118e6
leaq -0x38(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
movq %rsi, -0x318(%rbp)
callq 0xa9b0
movq -0x318(%rbp), %rdi
callq 0xa920
movq -0x260(%rbp), %rdi
movb $-0x7f, -0x1c9(%rbp)
leaq -0x1c9(%rbp), %rsi
callq 0xa8f0
jmp 0x11925
movq -0x260(%rbp), %rdi
leaq -0x3d(%rbp), %rsi
callq 0xaa00
jmp 0x11937
movq -0x260(%rbp), %rdi
callq 0xab40
movq %rax, -0x1e0(%rbp)
leaq -0x1d8(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0xab70
leaq -0x38(%rbp), %rdi
movq %rdi, -0x328(%rbp)
callq 0xabb0
movq -0x328(%rbp), %rdi
movq %rax, -0x1e8(%rbp)
callq 0xab40
movq -0x260(%rbp), %rdi
movq %rax, -0x1f0(%rbp)
movq -0x1d8(%rbp), %rsi
movq -0x1e8(%rbp), %rdx
movq -0x1f0(%rbp), %rcx
callq 0xaa90
movq %rax, -0x320(%rbp)
jmp 0x119b1
movq -0x320(%rbp), %rax
movq %rax, -0x1f8(%rbp)
movb $0x1, -0x19(%rbp)
movl $0x1, -0xd8(%rbp)
jmp 0x11aef
leaq -0x60(%rbp), %rsi
movl -0x18(%rbp), %ecx
leaq -0x210(%rbp), %rdi
movl $0x1, %edx
callq 0x7be0
jmp 0x119ec
leaq -0x38(%rbp), %rdi
leaq -0x210(%rbp), %rsi
movq %rsi, -0x330(%rbp)
callq 0xa9b0
movq -0x330(%rbp), %rdi
callq 0xa920
movq -0x260(%rbp), %rdi
movb $-0x7d, -0x211(%rbp)
leaq -0x211(%rbp), %rsi
callq 0xa8f0
jmp 0x11a2b
movq -0x260(%rbp), %rdi
leaq -0x3d(%rbp), %rsi
callq 0xaa00
jmp 0x11a3d
movq -0x260(%rbp), %rdi
callq 0xab40
movq %rax, -0x228(%rbp)
leaq -0x220(%rbp), %rdi
leaq -0x228(%rbp), %rsi
callq 0xab70
leaq -0x38(%rbp), %rdi
movq %rdi, -0x340(%rbp)
callq 0xabb0
movq -0x340(%rbp), %rdi
movq %rax, -0x230(%rbp)
callq 0xab40
movq -0x260(%rbp), %rdi
movq %rax, -0x238(%rbp)
movq -0x220(%rbp), %rsi
movq -0x230(%rbp), %rdx
movq -0x238(%rbp), %rcx
callq 0xaa90
movq %rax, -0x338(%rbp)
jmp 0x11ab7
movq -0x338(%rbp), %rax
movq %rax, -0x240(%rbp)
movb $0x1, -0x19(%rbp)
movl $0x1, -0xd8(%rbp)
jmp 0x11aef
jmp 0x11ad7
jmp 0x11ad9
jmp 0x11adb
jmp 0x11add
jmp 0x11adf
jmp 0x11ae1
movb $0x1, -0x19(%rbp)
movl $0x1, -0xd8(%rbp)
leaq -0x80(%rbp), %rax
movq %rax, -0x350(%rbp)
addq $0x40, %rax
movq %rax, -0x348(%rbp)
movq -0x348(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x358(%rbp)
callq 0x3468
movq -0x350(%rbp), %rcx
movq -0x358(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x348(%rbp)
jne 0x11b05
leaq -0x38(%rbp), %rdi
callq 0xa920
testb $0x1, -0x19(%rbp)
jne 0x11b9b
jmp 0x11b8f
movq -0x298(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x360(%rbp)
callq 0x3468
movq -0x2a0(%rbp), %rcx
movq -0x360(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x298(%rbp)
jne 0x11b47
leaq -0x38(%rbp), %rdi
callq 0xa920
movq -0x260(%rbp), %rdi
callq 0xa920
jmp 0x11bab
movq -0x260(%rbp), %rdi
callq 0xa920
movq -0x258(%rbp), %rax
addq $0x360, %rsp            # imm = 0x360
popq %rbp
retq
movq -0xa8(%rbp), %rdi
callq 0x33f0
nopw (%rax,%rax)