// File: /workspace/github_cpp_makefile_star2_O2/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
movq %rsi, %rax
cmpl $0x4, %edi
jg 0x2675
movq (%rax), %rbx
leaq 0x5c02(%rip), %rdi      # 0x81b5
callq 0x2300
leaq 0x5a61(%rip), %rdi      # 0x8020
movq %rbx, %rsi
xorl %eax, %eax
callq 0x2030
leaq 0x5a9d(%rip), %rdi      # 0x806d
movq %rbx, %rsi
xorl %eax, %eax
callq 0x2030
leaq 0x5bdb(%rip), %rdi      # 0x81bc
callq 0x2300
leaq 0x5ac9(%rip), %rbx      # 0x80b6
leaq 0x5acc(%rip), %rdx      # 0x80c0
pushq $0x74
popq %rsi
movq %rbx, %rdi
xorl %eax, %eax
callq 0x2030
leaq 0x5abd(%rip), %rdx      # 0x80c5
pushq $0x76
popq %rsi
movq %rbx, %rdi
xorl %eax, %eax
callq 0x2030
leaq 0x5ab4(%rip), %rdx      # 0x80d0
pushq $0x77
popq %rsi
movq %rbx, %rdi
xorl %eax, %eax
callq 0x2030
leaq 0x5abf(%rip), %rdx      # 0x80ef
pushq $0x6c
popq %rsi
movq %rbx, %rdi
xorl %eax, %eax
callq 0x2030
leaq 0x5abd(%rip), %rdx      # 0x8101
pushq $0x73
popq %rsi
movq %rbx, %rdi
xorl %eax, %eax
callq 0x2030
leaq 0x5aa0(%rip), %rdx      # 0x80f8
pushq $0x7a
popq %rsi
movq %rbx, %rdi
xorl %eax, %eax
callq 0x2030
pushq $0xa
popq %rdi
callq 0x22b0
pushq $0x1
popq %rax
jmp 0x2f37
movq 0x8(%rax), %rdx
movq 0x10(%rax), %rcx
movq 0x18(%rax), %rsi
movq 0x20(%rax), %rbx
movzbl (%rdx), %edx
xorl %eax, %eax
cmpl $0x77, %edx
je 0x27e6
cmpl $0x73, %edx
jne 0x2f37
movzbl (%rcx), %r15d
leaq 0x278(%rsp), %r14
movq %r14, %rdi
callq 0x3350
leaq 0x28(%rsp), %rdi
movq %rbx, %rsi
callq 0x3350
leaq 0x288(%rsp), %rdi
pushq $0x3
popq %rdx
movq %r14, %rsi
callq 0x3380
leal -0x74(%r15), %eax
cmpl $0x6, %eax
ja 0x2896
leaq 0x5920(%rip), %rcx      # 0x8004
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rsp, %rdi
movl $0x2000, %esi           # imm = 0x2000
callq 0x33e4
leaq 0x5ae7(%rip), %rdi      # 0x81e8
callq 0x2300
pushq $0x1
popq %r13
leaq 0x60(%rsp), %r14
movq %rsp, %r12
leaq 0x48(%rsp), %rbp
movl %r13d, %r15d
movl %r13d, %eax
xorl %edx, %edx
movl $0x2710, %ecx           # imm = 0x2710
divl %ecx
movl %eax, %ebx
movq 0x288(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x2a8(%rsp,%rax)
jne 0x2d08
movq %r14, %rdi
leaq 0x288(%rsp), %rsi
callq 0x34e6
movq 0x60(%rsp), %rax
movq 0x68(%rsp), %rcx
andq $0x0, 0x50(%rsp)
movq %rcx, 0x38(%rsp)
movq %rax, 0x40(%rsp)
leaq 0x59ed(%rip), %rax      # 0x8160
movq %rax, 0x58(%rsp)
testq %rcx, %rcx
je 0x27a7
movq %rbp, %rdi
leaq 0x38(%rsp), %rsi
leaq 0x50(%rsp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x6114
movq %r12, %rdi
movq %rbp, %rsi
callq 0x3626
movq %rbp, %rdi
callq 0x60f4
imull $0x2710, %ebx, %eax     # imm = 0x2710
movl %r15d, %ecx
subl %eax, %ecx
addl %r13d, %ecx
cmpl $0x1, %ecx
jne 0x27d6
movq %r12, %rdi
callq 0x360c
leaq 0x596b(%rip), %rdi      # 0x8134
movl %r13d, %esi
movq %rax, %rdx
xorl %eax, %eax
callq 0x2030
movq %r14, %rdi
callq 0x20e0
incl %r13d
jmp 0x271a
movzbl (%rcx), %ebp
movq %rsp, %r14
movq %r14, %rdi
callq 0x3350
leaq 0x38(%rsp), %rdi
movq %rbx, %rsi
callq 0x3350
leaq 0x288(%rsp), %rdi
pushq $0x3
popq %rdx
movq %r14, %rsi
callq 0x3380
cmpl $0x76, %ebp
je 0x282b
cmpl $0x6c, %ebp
je 0x29a4
cmpl $0x56, %ebp
jne 0x2a0c
leaq 0x60(%rsp), %rdi
pushq $0x10
popq %rsi
callq 0x4ec6
leaq 0x59a9(%rip), %rdi      # 0x81e8
callq 0x2300
leaq 0x60(%rsp), %rdi
leaq 0x288(%rsp), %rsi
callq 0x303b
leaq 0x5999(%rip), %rdi      # 0x81f6
callq 0x2300
callq 0x22a0
leaq 0x5995(%rip), %rdi      # 0x8203
callq 0x2300
leaq 0x50(%rsp), %rdi
leaq 0x38(%rsp), %rsi
leaq 0x60(%rsp), %rdx
pushq $0x1
popq %rcx
callq 0x3ba0
leaq 0x5981(%rip), %rdi      # 0x8212
jmp 0x2df3
cmpl $0x6c, %r15d
je 0x2d5a
cmpl $0x56, %r15d
je 0x2a77
cmpl $0x54, %r15d
jne 0x2b43
xorps %xmm0, %xmm0
movq %rsp, %rax
movaps %xmm0, 0x10(%rax)
movaps %xmm0, (%rax)
leaq 0x5920(%rip), %rdi      # 0x81e8
callq 0x2300
pushq $0x1
popq %r14
movl $0x2710, %ebx           # imm = 0x2710
leaq 0x60(%rsp), %r15
leaq 0x48(%rsp), %r13
movl %r14d, %r12d
movl %r14d, %eax
xorl %edx, %edx
divl %ebx
movl %eax, %ebp
movq 0x288(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x2a8(%rsp,%rax)
jne 0x2af1
movq %r15, %rdi
leaq 0x288(%rsp), %rsi
callq 0x34e6
movq 0x60(%rsp), %rax
movq 0x68(%rsp), %rcx
andq $0x0, 0x50(%rsp)
movq %rcx, 0x38(%rsp)
movq %rax, 0x40(%rsp)
leaq 0x5829(%rip), %rax      # 0x8160
movq %rax, 0x58(%rsp)
testq %rcx, %rcx
je 0x296b
movq %r13, %rdi
leaq 0x38(%rsp), %rsi
leaq 0x50(%rsp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x6114
movq %rsp, %rdi
movq %r13, %rsi
callq 0x4626
movq %r13, %rdi
callq 0x60f4
imull $0x2710, %ebp, %eax     # imm = 0x2710
movl %r12d, %ecx
subl %eax, %ecx
addl %r14d, %ecx
cmpl $0x1, %ecx
jne 0x2994
movq 0x18(%rsp), %rdx
leaq 0x57aa(%rip), %rdi      # 0x8134
movl %r14d, %esi
xorl %eax, %eax
callq 0x2030
movq %r15, %rdi
callq 0x20e0
incl %r14d
jmp 0x28e3
leaq 0x60(%rsp), %rdi
callq 0x5394
leaq 0x5833(%rip), %rdi      # 0x81e8
callq 0x2300
leaq 0x60(%rsp), %rdi
leaq 0x288(%rsp), %rsi
callq 0x3141
leaq 0x5823(%rip), %rdi      # 0x81f6
callq 0x2300
callq 0x22a0
leaq 0x581f(%rip), %rdi      # 0x8203
callq 0x2300
leaq 0x50(%rsp), %rdi
leaq 0x38(%rsp), %rsi
leaq 0x60(%rsp), %rdx
pushq $0x1
popq %rcx
callq 0x3f58
leaq 0x580b(%rip), %rdi      # 0x8212
jmp 0x2f14
leaq 0x60(%rsp), %rdi
pushq $0x20
popq %rsi
callq 0x58c2
leaq 0x57c8(%rip), %rdi      # 0x81e8
callq 0x2300
leaq 0x60(%rsp), %rdi
leaq 0x288(%rsp), %rsi
callq 0x3247
leaq 0x57b8(%rip), %rdi      # 0x81f6
callq 0x2300
callq 0x22a0
leaq 0x57b4(%rip), %rdi      # 0x8203
callq 0x2300
leaq 0x50(%rsp), %rdi
leaq 0x38(%rsp), %rsi
leaq 0x60(%rsp), %rdx
pushq $0x1
popq %rcx
callq 0x4268
leaq 0x57a0(%rip), %rdi      # 0x8212
jmp 0x2e69
leaq 0x60(%rsp), %rdi
pushq $0x10
popq %rsi
callq 0x4ec6
leaq 0x575d(%rip), %rdi      # 0x81e8
callq 0x2300
leaq 0x60(%rsp), %rdi
leaq 0x288(%rsp), %rsi
callq 0x303b
leaq 0x574d(%rip), %rdi      # 0x81f6
callq 0x2300
callq 0x22a0
leaq 0x570f(%rip), %rdi      # 0x81c9
callq 0x2300
leaq 0x60(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x4f6c
movq %rsp, %rdi
movq %rax, %rsi
callq 0x613e
cmpq $0x0, (%rsp)
je 0x2dd1
movq %rsp, %rdi
callq 0x62b0
jmp 0x2de4
leaq 0x56fe(%rip), %rdi      # 0x81f6
callq 0x2300
callq 0x22a0
leaq 0x56c0(%rip), %rdi      # 0x81c9
callq 0x2300
movq %rsp, %rdi
leaq 0x28(%rsp), %rsi
callq 0x4578
leaq 0x60(%rsp), %rdi
movq %rax, %rsi
callq 0x613e
cmpq $0x0, 0x60(%rsp)
je 0x2e0c
leaq 0x60(%rsp), %rdi
callq 0x62b0
jmp 0x2e1f
leaq 0x60(%rsp), %rdi
pushq $0x20
popq %rsi
callq 0x58c2
leaq 0x5691(%rip), %rdi      # 0x81e8
callq 0x2300
leaq 0x60(%rsp), %rdi
leaq 0x288(%rsp), %rsi
callq 0x3247
leaq 0x5681(%rip), %rdi      # 0x81f6
callq 0x2300
callq 0x22a0
leaq 0x5643(%rip), %rdi      # 0x81c9
callq 0x2300
leaq 0x60(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x5992
movq %rsp, %rdi
movq %rax, %rsi
callq 0x613e
cmpq $0x0, (%rsp)
je 0x2e47
movq %rsp, %rdi
callq 0x62b0
jmp 0x2e5a
movq %rsp, %rdi
movl $0x2000, %esi           # imm = 0x2000
callq 0x340c
leaq 0x5617(%rip), %rdi      # 0x81e8
callq 0x2300
pushq $0x1
popq %r13
leaq 0x60(%rsp), %r14
movq %rsp, %r12
leaq 0x48(%rsp), %rbp
movl %r13d, %r15d
movl %r13d, %eax
xorl %edx, %edx
movl $0x2710, %ecx           # imm = 0x2710
divl %ecx
movl %eax, %ebx
movq 0x288(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x2a8(%rsp,%rax)
jne 0x2cb6
movq %r14, %rdi
leaq 0x288(%rsp), %rsi
callq 0x34e6
movq 0x60(%rsp), %rax
movq 0x68(%rsp), %rcx
andq $0x0, 0x50(%rsp)
movq %rcx, 0x38(%rsp)
movq %rax, 0x40(%rsp)
leaq 0x551d(%rip), %rax      # 0x8160
movq %rax, 0x58(%rsp)
testq %rcx, %rcx
je 0x2c77
movq %rbp, %rdi
leaq 0x38(%rsp), %rsi
leaq 0x50(%rsp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x6114
movq %r12, %rdi
movq %rbp, %rsi
callq 0x38f2
movq %rbp, %rdi
callq 0x60f4
imull $0x2710, %ebx, %eax     # imm = 0x2710
movl %r15d, %ecx
subl %eax, %ecx
addl %r13d, %ecx
cmpl $0x1, %ecx
jne 0x2ca6
movq %r12, %rdi
callq 0x38d2
leaq 0x549b(%rip), %rdi      # 0x8134
movl %r13d, %esi
movq %rax, %rdx
xorl %eax, %eax
callq 0x2030
movq %r14, %rdi
callq 0x20e0
incl %r13d
jmp 0x2bea
leaq 0x5539(%rip), %rdi      # 0x81f6
callq 0x2300
callq 0x22a0
leaq 0x54fb(%rip), %rdi      # 0x81c9
callq 0x2300
movq %rsp, %rdi
leaq 0x28(%rsp), %rsi
callq 0x3974
leaq 0x60(%rsp), %rdi
movq %rax, %rsi
callq 0x613e
cmpq $0x0, 0x60(%rsp)
je 0x2e82
leaq 0x60(%rsp), %rdi
callq 0x62b0
jmp 0x2e95
leaq 0x54e7(%rip), %rdi      # 0x81f6
callq 0x2300
callq 0x22a0
leaq 0x54a9(%rip), %rdi      # 0x81c9
callq 0x2300
movq %rsp, %rdi
leaq 0x28(%rsp), %rsi
callq 0x36c0
leaq 0x60(%rsp), %rdi
movq %rax, %rsi
callq 0x613e
cmpq $0x0, 0x60(%rsp)
je 0x2eba
leaq 0x60(%rsp), %rdi
callq 0x62b0
jmp 0x2ecd
leaq 0x60(%rsp), %rdi
callq 0x5394
leaq 0x547d(%rip), %rdi      # 0x81e8
callq 0x2300
leaq 0x60(%rsp), %rdi
leaq 0x288(%rsp), %rsi
callq 0x3141
leaq 0x546d(%rip), %rdi      # 0x81f6
callq 0x2300
callq 0x22a0
leaq 0x542f(%rip), %rdi      # 0x81c9
callq 0x2300
leaq 0x60(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x541a
movq %rsp, %rdi
movq %rax, %rsi
callq 0x613e
cmpq $0x0, (%rsp)
je 0x2ef2
movq %rsp, %rdi
callq 0x62b0
jmp 0x2f05
movq 0x30(%rsp), %rsi
leaq 0x5384(%rip), %rdi      # 0x8161
xorl %eax, %eax
callq 0x2030
movq %rsp, %rdi
callq 0x60f4
leaq 0x53e6(%rip), %rdi      # 0x81d9
callq 0x2300
callq 0x22a0
leaq 0x60(%rsp), %rdi
callq 0x33d4
jmp 0x2f28
movq 0x30(%rsp), %rsi
leaq 0x5349(%rip), %rdi      # 0x8161
xorl %eax, %eax
callq 0x2030
leaq 0x60(%rsp), %rdi
callq 0x60f4
leaq 0x53a9(%rip), %rdi      # 0x81d9
callq 0x2300
callq 0x22a0
movq %rsp, %rdi
callq 0x3590
jmp 0x2f28
movq 0x30(%rsp), %rsi
leaq 0x530e(%rip), %rdi      # 0x8161
xorl %eax, %eax
callq 0x2030
movq %rsp, %rdi
callq 0x60f4
leaq 0x5370(%rip), %rdi      # 0x81d9
callq 0x2300
callq 0x22a0
leaq 0x60(%rsp), %rdi
callq 0x5942
jmp 0x2f28
movq 0x30(%rsp), %rsi
leaq 0x52d3(%rip), %rdi      # 0x8161
xorl %eax, %eax
callq 0x2030
leaq 0x60(%rsp), %rdi
callq 0x60f4
leaq 0x5333(%rip), %rdi      # 0x81d9
callq 0x2300
callq 0x22a0
movq %rsp, %rdi
callq 0x3b72
jmp 0x2f28
movq 0x30(%rsp), %rsi
leaq 0x529b(%rip), %rdi      # 0x8161
xorl %eax, %eax
callq 0x2030
leaq 0x60(%rsp), %rdi
callq 0x60f4
leaq 0x52fb(%rip), %rdi      # 0x81d9
callq 0x2300
callq 0x22a0
movq %rsp, %rdi
callq 0x38b0
jmp 0x2f28
movq 0x30(%rsp), %rsi
leaq 0x5263(%rip), %rdi      # 0x8161
xorl %eax, %eax
callq 0x2030
movq %rsp, %rdi
callq 0x60f4
leaq 0x52c5(%rip), %rdi      # 0x81d9
callq 0x2300
callq 0x22a0
leaq 0x60(%rsp), %rdi
callq 0x33fc
leaq 0x288(%rsp), %rdi
callq 0x2080
xorl %eax, %eax
addq $0x498, %rsp            # imm = 0x498
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2f8e
jmp 0x2f8e
jmp 0x2f8e
jmp 0x2f8e
jmp 0x2f8e
jmp 0x2f8e
jmp 0x2f8e
jmp 0x2fe3
jmp 0x2ff0
jmp 0x2f7c
jmp 0x2f6a
jmp 0x301b
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x5942
jmp 0x3026
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x33fc
jmp 0x3026
movq %rax, %rbx
jmp 0x3026
jmp 0x2f98
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x33d4
jmp 0x3026
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0x60f4
jmp 0x2fb9
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x20e0
jmp 0x2fe6
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0x60f4
jmp 0x2fd7
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x20e0
jmp 0x2ff3
movq %rax, %rbx
movq %rsp, %rdi
callq 0x38b0
jmp 0x3026
movq %rax, %rbx
movq %rsp, %rdi
callq 0x3b72
jmp 0x3026
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0x60f4
jmp 0x300f
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x20e0
jmp 0x301e
movq %rax, %rbx
movq %rsp, %rdi
callq 0x3590
leaq 0x288(%rsp), %rdi
callq 0x2080
movq %rbx, %rdi
callq 0x2380