// File: /workspace/github_cpp_makefile_star2_O3/lindorx[P]train/main.cpp
// Function: main
int main(int argc, char* argv[])
{
	using namespace std;
	int i, n = 0;
	if (argc == 1)return 0;
	for (i = 1; i < argc; ++i) {
		FileSize = 0;//�������ɵ��ļ���С
	Number = 0;//����ƫ�Ƶ�ַ
	Line_num = 1;//�к�
	is_Title = false;//��־λ������ֵΪtrue˵��CutStrCode()�����ڴ��������ҵ��ˡ�:��,������ʽΪ�棬�жϺ�Ӧ���¸�ֵΪfalse
		fin_src = argv[i];
		cout<<"code file="<<fin_src<<endl;
		if (fin_src.rfind(".asm") == 0) {//.asmΪ���������ļ����������ǣ��������룬����ʾ��׺������
			cout << "The suffix name is not \".asm\"" << endl;//��ʾ��׺�������⣬��������
		}
		n = fin_src.rfind(".");
		if (n == 0)return 0;
		fout_src = fin_src.substr(0, n)+".bin";
		CompileCode();//����Դ�ļ����ı����룬���ɶ�Ӧ�Ķ������ļ�
		EndCode();//�����ļ��в�������ȷ��������ֵ��λ�ã�������β����
		FileOut();
		cout << "file size=\t" << FileSize << "\tbyte" << endl<<endl;
	}
	cout << endl<<"compile done." << endl;
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rsi, -0x38(%rbp)
cmpl $0x1, %edi
je 0xd839
jle 0xd7cd
movl %edi, %eax
movq %rax, -0x30(%rbp)
movl $0x1, %ebx
movq 0x7a7a(%rip), %r14      # 0x14fd8
xorl %eax, %eax
movl %eax, 0x8a8e(%rip)      # 0x15ff4
movl %eax, 0x8a8c(%rip)      # 0x15ff8
movl $0x1, 0x8a86(%rip)      # 0x15ffc
movb $0x0, 0x8bab(%rip)      # 0x16128
movq -0x38(%rbp), %rax
movq (%rax,%rbx,8), %r12
movq 0x8a94(%rip), %r13      # 0x16020
movq %r12, %rdi
callq 0x20e0
leaq 0x8a7d(%rip), %r15      # 0x16018
movq %r15, %rdi
xorl %esi, %esi
movq %r13, %rdx
movq %r12, %rcx
movq %rax, %r8
callq 0x22a0
movl $0xa, %edx
movq %r14, %rdi
leaq 0x403c(%rip), %rsi      # 0x115f9
callq 0x2210
movq 0x8a4f(%rip), %rsi      # 0x16018
movq 0x8a50(%rip), %rdx      # 0x16020
movq %r14, %rdi
callq 0x2210
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x21b0
movsbl %al, %esi
movq %r12, %rdi
movq %r15, %r12
callq 0x2040
movq %rax, %rdi
callq 0x2130
movl $0x4, %ecx
movq %r15, %rdi
leaq 0x3ff0(%rip), %rsi      # 0x11604
movq $-0x1, %rdx
callq 0x2250
testq %rax, %rax
jne 0xd660
movl $0x1d, %edx
movq %r14, %rdi
leaq 0x3fd5(%rip), %rsi      # 0x11609
callq 0x2210
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x21b0
movsbl %al, %esi
movq %r14, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2130
movl $0x1, %ecx
movq %r12, %rdi
leaq 0x3fdb(%rip), %rsi      # 0x1164a
movq $-0x1, %rdx
callq 0x2250
testl %eax, %eax
je 0xd839
movslq %eax, %rcx
leaq -0x78(%rbp), %r15
movq %r15, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x2200
movq %r15, %rdi
leaq 0x3f86(%rip), %rsi      # 0x11627
callq 0x2330
leaq -0x48(%rbp), %r15
movq %r15, -0x58(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xd6ca
movq %rdx, -0x58(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x48(%rbp)
jmp 0xd6d1
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, -0x50(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x8949(%rip), %rdi      # 0x16038
leaq -0x58(%rbp), %rsi
callq 0x2230
movq -0x58(%rbp), %rdi
cmpq %r15, %rdi
je 0xd70d
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x21d0
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0xd726
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x21d0
callq 0xd86e
callq 0xf41b
callq 0xf6db
movl $0xb, %edx
movq %r14, %rdi
leaq 0x3ee8(%rip), %rsi      # 0x1162c
callq 0x2210
movl 0x88a5(%rip), %esi      # 0x15ff4
movq %r14, %rdi
callq 0x22e0
movq %rax, %r12
movl $0x5, %edx
movq %rax, %rdi
leaq 0x3ecf(%rip), %rsi      # 0x11638
callq 0x2210
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x21b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2130
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x21b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2130
incq %rbx
cmpq %rbx, -0x30(%rbp)
jne 0xd55e
movq 0x7804(%rip), %rbx      # 0x14fd8
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2130
movq %rax, %rbx
leaq 0x3e39(%rip), %rsi      # 0x1163e
movl $0xd, %edx
movq %rax, %rdi
callq 0x2210
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2130
xorl %eax, %eax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0xd866
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x21d0
movq %rbx, %rdi
callq 0x2300