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

	const auto op		= argv[1];
	const auto what		= argv[2];
	const auto filename	= argv[3];
	const auto key		= argv[4];
	const auto filename2	= argv[4];

	switch(op[0]){
	case 's':	return op_search_v(
				what[0],
				filename,
				key
			);

	case 'w':	return op_write_v(
				what[0],
				filename,
				filename2
			);
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x498, %rsp            # imm = 0x498
cmpl $0x4, %edi
jg 0x2732
movq (%rsi), %rbx
leaq 0x6ba0(%rip), %rdi      # 0x9200
callq 0x2310
leaq 0x69b4(%rip), %rdi      # 0x9020
movq %rbx, %rsi
xorl %eax, %eax
callq 0x2030
leaq 0x69f0(%rip), %rdi      # 0x906d
movq %rbx, %rsi
xorl %eax, %eax
callq 0x2030
leaq 0x6b79(%rip), %rdi      # 0x9207
callq 0x2310
leaq 0x6a1c(%rip), %rbx      # 0x90b6
leaq 0x6a1f(%rip), %rdx      # 0x90c0
movq %rbx, %rdi
movl $0x74, %esi
xorl %eax, %eax
callq 0x2030
leaq 0x6a0e(%rip), %rdx      # 0x90c5
movq %rbx, %rdi
movl $0x76, %esi
xorl %eax, %eax
callq 0x2030
leaq 0x6a03(%rip), %rdx      # 0x90d0
movq %rbx, %rdi
movl $0x77, %esi
xorl %eax, %eax
callq 0x2030
leaq 0x6a0c(%rip), %rdx      # 0x90ef
movq %rbx, %rdi
movl $0x6c, %esi
xorl %eax, %eax
callq 0x2030
leaq 0x6a08(%rip), %rdx      # 0x9101
movq %rbx, %rdi
movl $0x73, %esi
xorl %eax, %eax
callq 0x2030
leaq 0x69e9(%rip), %rdx      # 0x90f8
movq %rbx, %rdi
movl $0x7a, %esi
xorl %eax, %eax
callq 0x2030
movl $0xa, %edi
callq 0x22b0
movl $0x1, %eax
jmp 0x3170
movq 0x8(%rsi), %rax
movq 0x10(%rsi), %rcx
movq 0x18(%rsi), %r14
movq 0x20(%rsi), %rbx
movzbl (%rax), %edx
cmpl $0x77, %edx
je 0x276f
xorl %eax, %eax
cmpl $0x73, %edx
jne 0x3170
movzbl (%rcx), %r15d
leaq 0x6a00(%rip), %r12      # 0x9160
testq %r14, %r14
je 0x278f
movq %r14, %rdi
callq 0x20b0
jmp 0x2794
movzbl (%rcx), %ebp
leaq 0x69e7(%rip), %r15      # 0x9160
testq %r14, %r14
je 0x2a0d
movq %r14, %rdi
callq 0x20b0
jmp 0x2a12
xorl %eax, %eax
movq %r12, %r14
movq %rax, 0x60(%rsp)
movq %r14, 0x68(%rsp)
testq %rbx, %rbx
je 0x27b0
movq %rbx, %rdi
callq 0x20b0
movq %rbx, %r12
jmp 0x27b2
xorl %eax, %eax
movq %rax, 0x28(%rsp)
movq %r12, 0x30(%rsp)
leaq 0x288(%rsp), %rdi
leaq 0x60(%rsp), %rsi
movl $0x3, %edx
callq 0x36b4
cmpl $0x73, %r15d
jle 0x2978
addl $-0x74, %r15d
cmpl $0x6, %r15d
ja 0x2f8e
leaq 0x6812(%rip), %rax      # 0x9004
movslq (%rax,%r15,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movq %rsp, %rdi
leaq 0x70(%rsp), %rdx
movl $0x2000, %esi           # imm = 0x2000
callq 0x3a08
leaq 0x6a1f(%rip), %rdi      # 0x9233
callq 0x2310
movq 0x288(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x2a8(%rsp,%rax)
jne 0x2926
leaq 0x80(%rsp), %rbp
leaq 0x70(%rsp), %rbx
leaq 0x288(%rsp), %r14
leaq 0x6911(%rip), %r15      # 0x9160
leaq 0x48(%rsp), %r12
xorl %r13d, %r13d
movq %rbx, %rdi
movq %r14, %rsi
callq 0x37e4
movq 0x70(%rsp), %rax
movq 0x78(%rsp), %rcx
movq %rcx, 0x38(%rsp)
movq %rax, 0x40(%rsp)
movq $0x0, 0x50(%rsp)
movq %r15, 0x58(%rsp)
testq %rcx, %rcx
je 0x28b3
movq %r12, %rdi
leaq 0x38(%rsp), %rsi
leaq 0x50(%rsp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x6990
movq %rsp, %rdi
movq %r12, %rsi
callq 0x3916
movq %r12, %rdi
callq 0x6944
incl %r13d
imull $0x3afb7e91, %r13d, %eax # imm = 0x3AFB7E91
rorl $0x4, %eax
cmpl $0x68db8, %eax          # imm = 0x68DB8
ja 0x28f2
movq (%rsp), %rax
movq 0x8(%rsp), %rcx
xorl %edx, %edx
cmpq %rcx, %rax
je 0x28e1
addq 0x20(%rax), %rdx
addq $0x28, %rax
jmp 0x28d2
leaq 0x684c(%rip), %rdi      # 0x9134
movl %r13d, %esi
xorl %eax, %eax
callq 0x2030
movq 0x70(%rsp), %rdi
cmpq %rbp, %rdi
je 0x290c
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x2220
movq 0x288(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x2a8(%rsp,%rax)
je 0x2857
leaq 0x6914(%rip), %rdi      # 0x9241
callq 0x2310
callq 0x22a0
leaq 0x68d6(%rip), %rdi      # 0x9214
callq 0x2310
movq %rsp, %rdi
leaq 0x28(%rsp), %rsi
callq 0x3998
leaq 0x70(%rsp), %rdi
movq %rax, %rsi
callq 0x69ba
cmpq $0x0, 0x70(%rsp)
je 0x3080
leaq 0x70(%rsp), %rdi
callq 0x6b34
jmp 0x3093
cmpl $0x54, %r15d
je 0x2b05
cmpl $0x56, %r15d
je 0x2c79
cmpl $0x6c, %r15d
jne 0x2f8e
leaq 0x70(%rsp), %rdi
callq 0x5bc0
leaq 0x688c(%rip), %rdi      # 0x9233
callq 0x2310
leaq 0x70(%rsp), %rdi
leaq 0x288(%rsp), %rsi
callq 0x3433
leaq 0x687c(%rip), %rdi      # 0x9241
callq 0x2310
callq 0x22a0
leaq 0x683e(%rip), %rdi      # 0x9214
callq 0x2310
leaq 0x70(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x5c4e
movq %rsp, %rdi
movq %rax, %rsi
callq 0x69ba
cmpq $0x0, (%rsp)
je 0x30f3
movq %rsp, %rdi
callq 0x6b34
jmp 0x3106
xorl %eax, %eax
movq %r15, %r14
movq %rax, (%rsp)
movq %r14, 0x8(%rsp)
testq %rbx, %rbx
je 0x2a2d
movq %rbx, %rdi
callq 0x20b0
movq %rbx, %r15
jmp 0x2a2f
xorl %eax, %eax
movq %rax, 0x38(%rsp)
movq %r15, 0x40(%rsp)
leaq 0x288(%rsp), %rdi
movq %rsp, %rsi
movl $0x3, %edx
callq 0x36b4
cmpl $0x76, %ebp
je 0x2a65
cmpl $0x6c, %ebp
je 0x2cf5
cmpl $0x56, %ebp
jne 0x2d88
leaq 0x70(%rsp), %rdi
movl $0x10, %esi
callq 0x55e0
leaq 0x67b8(%rip), %rdi      # 0x9233
callq 0x2310
leaq 0x70(%rsp), %rdi
leaq 0x288(%rsp), %rsi
callq 0x32f4
leaq 0x67a8(%rip), %rdi      # 0x9241
callq 0x2310
callq 0x22a0
leaq 0x67a4(%rip), %rdi      # 0x924e
callq 0x2310
movq 0x78(%rsp), %rax
movq 0x88(%rsp), %rcx
leaq 0x50(%rsp), %rdx
movq %rax, (%rdx)
leaq (%rax,%rcx,8), %rax
leaq 0x60(%rsp), %rcx
movq %rax, (%rcx)
leaq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rsi
movl $0x1, %r8d
callq 0x3dfc
leaq 0x6771(%rip), %rdi      # 0x925d
callq 0x2310
callq 0x22a0
leaq 0x70(%rsp), %rdi
callq 0x564e
jmp 0x3161
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
movaps %xmm0, (%rsp)
leaq 0x671b(%rip), %rdi      # 0x9233
callq 0x2310
movq 0x288(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x2a8(%rsp,%rax)
jne 0x2c27
movl $0x1, %ebx
movl $0xd1b71759, %ebp       # imm = 0xD1B71759
leaq 0x70(%rsp), %r14
leaq 0x288(%rsp), %r15
leaq 0x660b(%rip), %r12      # 0x9160
leaq 0x48(%rsp), %r13
movq %r14, %rdi
movq %r15, %rsi
callq 0x37e4
movq 0x70(%rsp), %rax
movq 0x78(%rsp), %rcx
movq %rcx, 0x38(%rsp)
movq %rax, 0x40(%rsp)
movq $0x0, 0x50(%rsp)
movq %r12, 0x58(%rsp)
testq %rcx, %rcx
je 0x2bb6
movq %r13, %rdi
leaq 0x38(%rsp), %rsi
leaq 0x50(%rsp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x6990
movq %rsp, %rdi
movq %r13, %rsi
callq 0x4cd2
movq %r13, %rdi
callq 0x6944
movl %ebx, %eax
imulq %rbp, %rax
shrq $0x2d, %rax
imull $0x2710, %eax, %eax     # imm = 0x2710
movl $0x1, %ecx
subl %eax, %ecx
addl %ebx, %ecx
cmpl $0x1, %ecx
jne 0x2be9
movq 0x18(%rsp), %rdx
leaq 0x6554(%rip), %rdi      # 0x9134
movl %ebx, %esi
xorl %eax, %eax
callq 0x2030
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x2c0b
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x2220
movq 0x288(%rsp), %rax
movq -0x18(%rax), %rax
incl %ebx
cmpl $0x0, 0x2a8(%rsp,%rax)
je 0x2b5a
leaq 0x6613(%rip), %rdi      # 0x9241
callq 0x2310
callq 0x22a0
leaq 0x65d5(%rip), %rdi      # 0x9214
callq 0x2310
movq %rsp, %rdi
leaq 0x28(%rsp), %rsi
callq 0x4bdc
leaq 0x70(%rsp), %rdi
movq %rax, %rsi
callq 0x69ba
cmpq $0x0, 0x70(%rsp)
je 0x3045
leaq 0x70(%rsp), %rdi
callq 0x6b34
jmp 0x3058
leaq 0x70(%rsp), %rdi
movl $0x10, %esi
callq 0x55e0
leaq 0x65a4(%rip), %rdi      # 0x9233
callq 0x2310
leaq 0x70(%rsp), %rdi
leaq 0x288(%rsp), %rsi
callq 0x32f4
leaq 0x6594(%rip), %rdi      # 0x9241
callq 0x2310
callq 0x22a0
leaq 0x6556(%rip), %rdi      # 0x9214
callq 0x2310
leaq 0x70(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x569e
movq %rsp, %rdi
movq %rax, %rsi
callq 0x69ba
cmpq $0x0, (%rsp)
je 0x300a
movq %rsp, %rdi
callq 0x6b34
jmp 0x301d
leaq 0x70(%rsp), %rdi
callq 0x5bc0
leaq 0x652d(%rip), %rdi      # 0x9233
callq 0x2310
leaq 0x70(%rsp), %rdi
leaq 0x288(%rsp), %rsi
callq 0x3433
leaq 0x651d(%rip), %rdi      # 0x9241
callq 0x2310
callq 0x22a0
leaq 0x6519(%rip), %rdi      # 0x924e
callq 0x2310
movq 0x70(%rsp), %rax
leaq 0x50(%rsp), %rdx
movq %rax, (%rdx)
leaq 0x60(%rsp), %rcx
movq $0x0, (%rcx)
leaq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rsi
movl $0x1, %r8d
callq 0x426e
leaq 0x64ee(%rip), %rdi      # 0x925d
callq 0x2310
callq 0x22a0
leaq 0x70(%rsp), %rdi
callq 0x5c06
jmp 0x3161
leaq 0x70(%rsp), %rdi
movl $0x20, %esi
callq 0x6158
leaq 0x6495(%rip), %rdi      # 0x9233
callq 0x2310
leaq 0x70(%rsp), %rdi
leaq 0x288(%rsp), %rsi
callq 0x3572
leaq 0x6485(%rip), %rdi      # 0x9241
callq 0x2310
callq 0x22a0
leaq 0x6481(%rip), %rdi      # 0x924e
callq 0x2310
movq 0x78(%rsp), %rax
leaq 0x50(%rsp), %rdx
movq %rax, (%rdx)
leaq 0x60(%rsp), %rcx
movq $0x0, (%rcx)
leaq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rsi
movl $0x1, %r8d
callq 0x4724
leaq 0x6456(%rip), %rdi      # 0x925d
jmp 0x314d
movq %rsp, %rdi
leaq 0x70(%rsp), %rdx
movl $0x2000, %esi           # imm = 0x2000
callq 0x3c7e
leaq 0x640e(%rip), %rdi      # 0x9233
callq 0x2310
movq 0x288(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x2a8(%rsp,%rax)
jne 0x2f3c
leaq 0x80(%rsp), %rbp
leaq 0x70(%rsp), %rbx
leaq 0x288(%rsp), %r14
leaq 0x6300(%rip), %r15      # 0x9160
leaq 0x48(%rsp), %r12
xorl %r13d, %r13d
movq %rbx, %rdi
movq %r14, %rsi
callq 0x37e4
movq 0x70(%rsp), %rax
movq 0x78(%rsp), %rcx
movq %rcx, 0x38(%rsp)
movq %rax, 0x40(%rsp)
movq $0x0, 0x50(%rsp)
movq %r15, 0x58(%rsp)
testq %rcx, %rcx
je 0x2ec4
movq %r12, %rdi
leaq 0x38(%rsp), %rsi
leaq 0x50(%rsp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x6990
movq %rsp, %rdi
movq %r12, %rsi
callq 0x3b88
movq %r12, %rdi
callq 0x6944
incl %r13d
imull $0x3afb7e91, %r13d, %eax # imm = 0x3AFB7E91
rorl $0x4, %eax
cmpl $0x68db8, %eax          # imm = 0x68DB8
ja 0x2f08
movq (%rsp), %rax
movq 0x8(%rsp), %rcx
xorl %edx, %edx
cmpq %rcx, %rax
je 0x2ef7
addq 0x210(%rax), %rdx
addq $0x218, %rax            # imm = 0x218
jmp 0x2ee3
leaq 0x6236(%rip), %rdi      # 0x9134
movl %r13d, %esi
xorl %eax, %eax
callq 0x2030
movq 0x70(%rsp), %rdi
cmpq %rbp, %rdi
je 0x2f22
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x2220
movq 0x288(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x2a8(%rsp,%rax)
je 0x2e68
leaq 0x62fe(%rip), %rdi      # 0x9241
callq 0x2310
callq 0x22a0
leaq 0x62c0(%rip), %rdi      # 0x9214
callq 0x2310
movq %rsp, %rdi
leaq 0x28(%rsp), %rsi
callq 0x3c0c
leaq 0x70(%rsp), %rdi
movq %rax, %rsi
callq 0x69ba
cmpq $0x0, 0x70(%rsp)
je 0x30bb
leaq 0x70(%rsp), %rdi
callq 0x6b34
jmp 0x30ce
leaq 0x70(%rsp), %rdi
movl $0x20, %esi
callq 0x6158
leaq 0x628f(%rip), %rdi      # 0x9233
callq 0x2310
leaq 0x70(%rsp), %rdi
leaq 0x288(%rsp), %rsi
callq 0x3572
leaq 0x627f(%rip), %rdi      # 0x9241
callq 0x2310
callq 0x22a0
leaq 0x6241(%rip), %rdi      # 0x9214
callq 0x2310
leaq 0x70(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x6230
movq %rsp, %rdi
movq %rax, %rsi
callq 0x69ba
cmpq $0x0, (%rsp)
je 0x312b
movq %rsp, %rdi
callq 0x6b34
jmp 0x313e
movq 0x30(%rsp), %rsi
leaq 0x6196(%rip), %rdi      # 0x91ac
xorl %eax, %eax
callq 0x2030
movq %rsp, %rdi
callq 0x6944
leaq 0x61f8(%rip), %rdi      # 0x9224
callq 0x2310
callq 0x22a0
leaq 0x70(%rsp), %rdi
callq 0x564e
jmp 0x3161
movq 0x30(%rsp), %rsi
leaq 0x615b(%rip), %rdi      # 0x91ac
xorl %eax, %eax
callq 0x2030
leaq 0x70(%rsp), %rdi
callq 0x6944
leaq 0x61bb(%rip), %rdi      # 0x9224
callq 0x2310
callq 0x22a0
movq %rsp, %rdi
callq 0x38ce
jmp 0x3161
movq 0x30(%rsp), %rsi
leaq 0x6120(%rip), %rdi      # 0x91ac
xorl %eax, %eax
callq 0x2030
leaq 0x70(%rsp), %rdi
callq 0x6944
leaq 0x6180(%rip), %rdi      # 0x9224
callq 0x2310
callq 0x22a0
movq %rsp, %rdi
callq 0x3b58
jmp 0x3161
movq 0x30(%rsp), %rsi
leaq 0x60e5(%rip), %rdi      # 0x91ac
xorl %eax, %eax
callq 0x2030
leaq 0x70(%rsp), %rdi
callq 0x6944
leaq 0x6145(%rip), %rdi      # 0x9224
callq 0x2310
callq 0x22a0
movq %rsp, %rdi
callq 0x3db2
jmp 0x3161
movq 0x30(%rsp), %rsi
leaq 0x60ad(%rip), %rdi      # 0x91ac
xorl %eax, %eax
callq 0x2030
movq %rsp, %rdi
callq 0x6944
leaq 0x610f(%rip), %rdi      # 0x9224
callq 0x2310
callq 0x22a0
leaq 0x70(%rsp), %rdi
callq 0x5c06
jmp 0x3161
movq 0x30(%rsp), %rsi
leaq 0x6075(%rip), %rdi      # 0x91ac
xorl %eax, %eax
callq 0x2030
movq %rsp, %rdi
callq 0x6944
leaq 0x60d7(%rip), %rdi      # 0x9224
callq 0x2310
callq 0x22a0
leaq 0x70(%rsp), %rdi
callq 0x61dc
leaq 0x288(%rsp), %rdi
callq 0x2060
xorl %eax, %eax
addq $0x498, %rsp            # imm = 0x498
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x31f0
jmp 0x327c
jmp 0x31f0
jmp 0x31f0
jmp 0x31f0
jmp 0x327c
jmp 0x31f0
jmp 0x31f0
jmp 0x327c
jmp 0x31f0
jmp 0x3284
jmp 0x3291
jmp 0x31c7
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0x5c06
jmp 0x32df
jmp 0x327c
jmp 0x327c
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0x61dc
jmp 0x32df
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0x5c06
jmp 0x32df
jmp 0x327c
movq %rax, %rbx
jmp 0x32df
jmp 0x32d4
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0x564e
jmp 0x32df
jmp 0x327c
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0x6944
jmp 0x3232
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0x6944
jmp 0x3251
movq %rax, %rbx
movq 0x70(%rsp), %rdi
cmpq %rbp, %rdi
je 0x3287
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x2220
jmp 0x3287
movq %rax, %rbx
movq 0x70(%rsp), %rdi
cmpq %rbp, %rdi
je 0x3294
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x2220
jmp 0x3294
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0x564e
jmp 0x32df
movq %rax, %rdi
callq 0x37d9
movq %rax, %rbx
movq %rsp, %rdi
callq 0x3db2
jmp 0x32df
movq %rax, %rbx
movq %rsp, %rdi
callq 0x3b58
jmp 0x32df
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0x6944
jmp 0x32b0
movq %rax, %rbx
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x32d7
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x2220
jmp 0x32d7
movq %rax, %rbx
movq %rsp, %rdi
callq 0x38ce
leaq 0x288(%rsp), %rdi
callq 0x2060
movq %rbx, %rdi
callq 0x23a0