// File: /workspace/github_cpp_makefile_star2_O1/nmmmnu[P]HM3/hm3/main/db_mkhash.cc
// Function: main
int main(int argc, char **argv){
	if (argc <= 1 + 1){
		printUsage(argv[0]);
		return 1;
	}

	const char *input_file	= argv[1];
	const char *output_file	= argv[2];

	if (CHECK_FILE_EXISTS && fileExists(output_file)){
		std::cout << "File " << output_file << " exists. Please remove it and try again." << '\n';
		return 2;
	}

	using DiskTable = hm3::DiskTable;

	DiskTable list;
	list.open(input_file);

	using HashIndexBuilder = hm3::hashindex::HashIndexBuilder;

	HashIndexBuilder htb;
	bool const result = htb.createFromList(output_file, list);

	return result ? 0 : 100;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x100, %rsp            # imm = 0x100
cmpl $0x2, %edi
jg 0x25d5
movq (%rsi), %r14
movq 0x5a4b(%rip), %rbx      # 0x7fd0
leaq 0x2b0d(%rip), %rsi      # 0x5099
movl $0x6, %edx
movq %rbx, %rdi
callq 0x21a0
leaq 0x10(%rsp), %rsi
movb $0xa, (%rsi)
movl $0x1, %edx
movq %rbx, %rdi
callq 0x21a0
movq %rax, %rbx
testq %r14, %r14
je 0x266c
movq %r14, %rdi
callq 0x2090
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x21a0
jmp 0x2685
movq 0x8(%rsi), %r14
movq 0x10(%rsi), %rbx
xorl %eax, %eax
movb %al, 0x10(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, 0x18(%rsp)
movb %al, 0x28(%rsp)
movups %xmm0, 0x30(%rsp)
movups %xmm0, 0x40(%rsp)
movq $0x0, 0x50(%rsp)
movups %xmm0, 0x5c(%rsp)
movl %eax, 0x6c(%rsp)
movl $0x1, 0x74(%rsp)
movups %xmm0, 0x78(%rsp)
movl %eax, 0xa4(%rsp)
movups %xmm0, 0x8c(%rsp)
movl %eax, 0x9c(%rsp)
movb $0x1, 0xa8(%rsp)
movups %xmm0, 0xb0(%rsp)
movups %xmm0, 0xc0(%rsp)
movups %xmm0, 0xd0(%rsp)
movups %xmm0, 0xe0(%rsp)
testq %r14, %r14
je 0x2745
movq %r14, %rdi
callq 0x2090
jmp 0x274c
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %rbx, %rdi
addq %rax, %rdi
movl 0x20(%rbx,%rax), %esi
orl $0x1, %esi
callq 0x2240
leaq 0x2a14(%rip), %rsi      # 0x50a0
movl $0x16, %edx
movq %rbx, %rdi
callq 0x21a0
movb $0xa, %bpl
leaq 0x10(%rsp), %r14
movb %bpl, (%r14)
movl $0x1, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x21a0
movq %rax, %rbx
leaq 0x29f9(%rip), %rsi      # 0x50b7
movl $0x2e, %edx
movq %rax, %rdi
callq 0x21a0
movb %bpl, (%r14)
leaq 0x10(%rsp), %r14
movl $0x1, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x21a0
movq %rax, %rbx
leaq 0x29f9(%rip), %rsi      # 0x50e6
movl $0x13, %edx
movq %rax, %rdi
callq 0x21a0
movb %bpl, (%r14)
leaq 0x10(%rsp), %r14
movl $0x1, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x21a0
movq %rax, %rbx
leaq 0x29de(%rip), %rsi      # 0x50fa
movl $0x48, %edx
movq %rax, %rdi
callq 0x21a0
movb %bpl, (%r14)
leaq 0x10(%rsp), %rsi
movl $0x1, %edx
movq %rbx, %rdi
callq 0x21a0
movl $0x1, %ebx
jmp 0x27b7
leaq 0x290d(%rip), %r14      # 0x5059
movq %rsp, %rsi
movq %rax, (%rsi)
movq %r14, 0x8(%rsi)
leaq 0x10(%rsp), %rdi
callq 0x33a4
movq $0x8, (%rsp)
testq %rbx, %rbx
je 0x2777
movq %rbx, %rdi
callq 0x2090
jmp 0x2780
leaq 0x28db(%rip), %rbx      # 0x5059
xorl %eax, %eax
leaq 0xf0(%rsp), %rsi
movq %rax, (%rsi)
movq %rbx, 0x8(%rsi)
movq %rsp, %rdi
leaq 0x10(%rsp), %rdx
movl $0x1, %ecx
callq 0x2856
xorl %ecx, %ecx
testb %al, %al
movl $0x64, %ebx
cmovnel %ecx, %ebx
leaq 0x10(%rsp), %rdi
callq 0x2a1c
movl %ebx, %eax
addq $0x100, %rsp            # imm = 0x100
popq %rbx
popq %r14
popq %rbp
retq
jmp 0x27c7
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x2a1c
movq %rbx, %rdi
callq 0x2260