// File: /workspace/github_cpp_makefile_star2_O1/burakbugrul[P]NginxLogParser/main.cpp
// Function: main
int main(int argc, char **argv){
	
	ios::sync_with_stdio(false); // For speed boost
	
	if( argc == 3 ){
		NginxParser parser(argv[1],argv[2]);
		parser.parse();
		parser.statistics();
	}
	else{
		
		string input_file, output_file;
		
		cerr << "Please enter path of the log file: ";
		cin >> input_file;
		cerr << "Please enter path of the output file: ";
		cin >> output_file;
		
		NginxParser parser(input_file,output_file);
		parser.parse();
		parser.statistics();
	}
	
	return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x218, %rsp            # imm = 0x218
movq %rsi, %rbx
movl %edi, %ebp
xorl %edi, %edi
callq 0x20c0
cmpl $0x3, %ebp
jne 0x2581
movq 0x8(%rbx), %rsi
leaq 0xa8(%rsp), %rdi
leaq 0x28(%rsp), %rdx
callq 0x20a0
movq 0x10(%rbx), %rsi
leaq 0x88(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x20a0
leaq 0xc8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
leaq 0x88(%rsp), %rdx
callq 0x2a40
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x24cc
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x2190
leaq 0xb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x24ed
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x2190
leaq 0xc8(%rsp), %rdi
callq 0x2bcc
leaq 0xc8(%rsp), %rdi
callq 0x34d0
leaq 0x1d8(%rsp), %rdi
callq 0x2898
leaq 0x1a0(%rsp), %rdi
callq 0x2898
leaq 0x168(%rsp), %rdi
callq 0x2898
leaq 0x130(%rsp), %rbx
movq %rbx, %rdi
callq 0x2940
movq -0x20(%rbx), %rdi
leaq 0x120(%rsp), %rax
cmpq %rax, %rdi
je 0x255f
movq 0x120(%rsp), %rsi
incq %rsi
callq 0x2190
leaq 0x100(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x273c
movq 0x100(%rsp), %rsi
jmp 0x2734
leaq 0x38(%rsp), %r14
movq %r14, -0x10(%r14)
xorl %eax, %eax
movq %rax, -0x8(%r14)
movb %al, (%r14)
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
movq %rax, -0x8(%r15)
movb %al, (%r15)
movq 0x4a46(%rip), %rdi      # 0x6ff0
leaq 0x2a53(%rip), %rsi      # 0x5004
movl $0x23, %edx
callq 0x21b0
movq 0x4a16(%rip), %rdi      # 0x6fd8
leaq 0x28(%rsp), %rsi
callq 0x21d0
movq 0x4a1d(%rip), %rdi      # 0x6ff0
leaq 0x2a4e(%rip), %rsi      # 0x5028
movl $0x26, %edx
callq 0x21b0
movq 0x49ed(%rip), %rdi      # 0x6fd8
leaq 0x8(%rsp), %rsi
callq 0x21d0
leaq 0x78(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
addq %rsi, %rdx
leaq 0x68(%rsp), %rdi
callq 0x29b0
leaq 0x58(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
addq %rsi, %rdx
leaq 0x48(%rsp), %rdi
callq 0x29b0
leaq 0xc8(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0x2a40
movq 0x48(%rsp), %rdi
cmpq %r13, %rdi
je 0x2664
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x2190
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x267b
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x2190
leaq 0xc8(%rsp), %rdi
callq 0x2bcc
leaq 0xc8(%rsp), %rdi
callq 0x34d0
leaq 0x1d8(%rsp), %rdi
callq 0x2898
leaq 0x1a0(%rsp), %rdi
callq 0x2898
leaq 0x168(%rsp), %rdi
callq 0x2898
leaq 0x130(%rsp), %rbx
movq %rbx, %rdi
callq 0x2940
movq -0x20(%rbx), %rdi
leaq 0x120(%rsp), %rax
cmpq %rax, %rdi
je 0x26ed
movq 0x120(%rsp), %rsi
incq %rsi
callq 0x2190
leaq 0x100(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x270e
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x2190
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x2725
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x2190
movq 0x28(%rsp), %rdi
cmpq %r14, %rdi
je 0x273c
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x2190
xorl %eax, %eax
addq $0x218, %rsp            # imm = 0x218
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r13, %rdi
je 0x276f
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x2190
jmp 0x276f
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x27fe
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x2190
jmp 0x27fe
jmp 0x27fb
movq %rax, %rbx
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x27b7
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x2190
jmp 0x27b7
movq %rax, %rbx
leaq 0xb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x282c
movq 0xb8(%rsp), %rsi
jmp 0x2824
movq %rax, %rbx
jmp 0x282c
movq %rax, %rbx
leaq 0xc8(%rsp), %rdi
callq 0x2834
jmp 0x27fe
movq %rax, %rbx
leaq 0xc8(%rsp), %rdi
callq 0x2834
jmp 0x282c
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x2815
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x2190
movq 0x28(%rsp), %rdi
cmpq %r14, %rdi
je 0x282c
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x2190
movq %rbx, %rdi
callq 0x2280