// File: fffrankkk[P]XmlCode/src/XmlCode.cpp
// Function: main
int main(int argc, char* argv[])
{
	OPTION_S stOpt = {0, {0}};

	//parse command
	COption COpt;
	COpt.SetLongOpt("xml", 1, NULL, 'x');
	COpt.SetLongOpt("help", 0, NULL, 'h');
	COption::RST_C CRst;
	COpt.Parse(argc, argv, CRst);

	if (!CRst.empty()) {
		for (COption::RST_ITERATOR_C iterOpt = CRst.begin(); iterOpt != CRst.end(); ++iterOpt) {
			switch (iterOpt->first) {
				case 'x':
					strcpy(stOpt.m_szXMLFile, iterOpt->second.c_str());
					break;
                case 'h':
                    stOpt.m_iHelp = 1;
				default:
					break;
			}
		}
	}

	if (stOpt.m_iHelp > 0 || STR_EMPTY(stOpt.m_szXMLFile)) {
		NUtility::PrintHelp(argv[0]);
        return 0;
	}

	//system run
	CMain CSys;
	CSys.Core(&stOpt);
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x5b0, %rsp            # imm = 0x5B0
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x114(%rbp), %rdi
xorl %esi, %esi
movl %esi, -0x58c(%rbp)
movl $0x104, %edx            # imm = 0x104
callq 0x5200
leaq -0x528(%rbp), %rdi
movq %rdi, -0x588(%rbp)
callq 0xfba0
movl -0x58c(%rbp), %eax
movq -0x588(%rbp), %rdi
movl $0x1, -0x52c(%rbp)
movl $0x78, -0x530(%rbp)
leaq 0x313f7(%rip), %rsi     # 0x37004
movl %eax, %ecx
leaq -0x52c(%rbp), %rdx
leaq -0x530(%rbp), %r8
callq 0xfc40
jmp 0x5c24
movl $0x0, -0x540(%rbp)
movl $0x68, -0x544(%rbp)
leaq 0x313c9(%rip), %rsi     # 0x37008
xorl %eax, %eax
movl %eax, %ecx
leaq -0x528(%rbp), %rdi
leaq -0x540(%rbp), %rdx
leaq -0x544(%rbp), %r8
callq 0xfc40
jmp 0x5c5f
leaq -0x560(%rbp), %rdi
movq %rdi, -0x598(%rbp)
callq 0x5e80
movq -0x598(%rbp), %rcx
movq -0x10(%rbp), %rdx
leaq -0x528(%rbp), %rdi
leaq -0x8(%rbp), %rsi
callq 0xfd00
jmp 0x5c8f
leaq -0x560(%rbp), %rdi
callq 0x5ea0
testb $0x1, %al
jne 0x5d97
leaq -0x560(%rbp), %rdi
callq 0x5ee0
movq %rax, -0x568(%rbp)
leaq -0x560(%rbp), %rdi
callq 0x5f50
movq %rax, -0x570(%rbp)
leaq -0x568(%rbp), %rdi
leaq -0x570(%rbp), %rsi
callq 0x5f10
testb $0x1, %al
jne 0x5ce5
jmp 0x5d95
leaq -0x568(%rbp), %rdi
callq 0x5f80
movl (%rax), %eax
movl %eax, -0x59c(%rbp)
subl $0x68, %eax
je 0x5d76
jmp 0x5d00
movl -0x59c(%rbp), %eax
subl $0x78, %eax
je 0x5d3b
jmp 0x5d80
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x538(%rbp)
movl %eax, -0x53c(%rbp)
jmp 0x5e5f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x538(%rbp)
movl %eax, -0x53c(%rbp)
jmp 0x5e53
leaq -0x114(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x5a8(%rbp)
leaq -0x568(%rbp), %rdi
callq 0x5f80
movq %rax, %rdi
addq $0x8, %rdi
callq 0x5170
movq -0x5a8(%rbp), %rdi
movq %rax, %rsi
callq 0x53a0
jmp 0x5d82
movl $0x1, -0x114(%rbp)
jmp 0x5d82
jmp 0x5d84
leaq -0x568(%rbp), %rdi
callq 0x5fa0
jmp 0x5cb6
jmp 0x5d97
cmpl $0x0, -0x114(%rbp)
jg 0x5dac
movsbl -0x110(%rbp), %eax
cmpl $0x0, %eax
jne 0x5dcd
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0xf9b0
jmp 0x5dba
movl $0x0, -0x4(%rbp)
movl $0x1, -0x574(%rbp)
jmp 0x5e2f
leaq -0x580(%rbp), %rdi
callq 0x10840
jmp 0x5ddb
leaq -0x580(%rbp), %rdi
leaq -0x114(%rbp), %rsi
callq 0x108a0
jmp 0x5df0
movl $0x0, -0x4(%rbp)
movl $0x1, -0x574(%rbp)
leaq -0x580(%rbp), %rdi
callq 0x10860
jmp 0x5e2f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x538(%rbp)
movl %eax, -0x53c(%rbp)
leaq -0x580(%rbp), %rdi
callq 0x10860
jmp 0x5e53
leaq -0x560(%rbp), %rdi
callq 0x5fc0
leaq -0x528(%rbp), %rdi
callq 0xfbe0
movl -0x4(%rbp), %eax
addq $0x5b0, %rsp            # imm = 0x5B0
popq %rbp
retq
leaq -0x560(%rbp), %rdi
callq 0x5fc0
leaq -0x528(%rbp), %rdi
callq 0xfbe0
movq -0x538(%rbp), %rdi
callq 0x5740
nopw (%rax,%rax)