// File: /workspace/github_cpp_makefile_star2_O3/MITRECND[P]snugglefish/src/snugglefish.cpp
// Function: printHelp()
void printHelp(){
    cout << "Usage: snugglefish [OPTIONS]" << endl;
    cout << "Index files based on Ngrams then Search for a string" << endl;
    cout << "-i, --index            Index Operation, requires -o, and files to index" << endl;
    cout << "-s, --search           Search Operation, requires -f, and search string" << endl;
    cout << "-o, --output           Specifies the output file for indexing, equivalent to -f" << endl;
    cout << "-f, --file             Index file to search, equivalent to -o" << endl;
    cout << "-b, --node_bound       Maximum node buffer memory size before flushing" << endl;
    cout << "-n, --ngramsize        The size of Ngram to use (default is 3)" << endl;
    cout << "-h, --help             This help screen" << endl;
    cout << "-t, --threads          Number of search threads to spawn (default is #cpus)" << endl;
    cout << "Examples:" << endl;
    cout << "Index: snugglefish [-n ngramsize]  -i -o <index filename> <files to index>" << endl;
    cout << "If no file names are given on the commandline, the stdin will be used" << endl;
    cout << "Search: snugglefish [-n ngramsize] -s -f <index filename> <search string>" << endl;
    cout << "If no string is given, it can be entered on the command line" << endl;


}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
movq 0x8be5(%rip), %rbx      # 0xefb0
leaq 0x4ee1(%rip), %rsi      # 0xb2b3
movl $0x1c, %edx
movq %rbx, %rdi
callq 0x52c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5260
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51a0
leaq 0x4ec3(%rip), %rsi      # 0xb2d0
movl $0x34, %edx
movq %rbx, %rdi
callq 0x52c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5260
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51a0
leaq 0x4ebd(%rip), %rsi      # 0xb305
movl $0x47, %edx
movq %rbx, %rdi
callq 0x52c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5260
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51a0
leaq 0x4eca(%rip), %rsi      # 0xb34d
movl $0x47, %edx
movq %rbx, %rdi
callq 0x52c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5260
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51a0
leaq 0x4ed7(%rip), %rsi      # 0xb395
movl $0x4f, %edx
movq %rbx, %rdi
callq 0x52c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5260
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51a0
leaq 0x4eec(%rip), %rsi      # 0xb3e5
movl $0x3d, %edx
movq %rbx, %rdi
callq 0x52c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5260
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51a0
leaq 0x4eef(%rip), %rsi      # 0xb423
movl $0x46, %edx
movq %rbx, %rdi
callq 0x52c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5260
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51a0
leaq 0x4efb(%rip), %rsi      # 0xb46a
movl $0x3e, %edx
movq %rbx, %rdi
callq 0x52c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5260
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51a0
leaq 0x4eff(%rip), %rsi      # 0xb4a9
movl $0x27, %edx
movq %rbx, %rdi
callq 0x52c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5260
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51a0
leaq 0x4eec(%rip), %rsi      # 0xb4d1
movl $0x4b, %edx
movq %rbx, %rdi
callq 0x52c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5260
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51a0
leaq 0x4efd(%rip), %rsi      # 0xb51d
movl $0x9, %edx
movq %rbx, %rdi
callq 0x52c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5260
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51a0
leaq 0x4ecc(%rip), %rsi      # 0xb527
movl $0x4a, %edx
movq %rbx, %rdi
callq 0x52c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5260
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51a0
leaq 0x4edc(%rip), %rsi      # 0xb572
movl $0x45, %edx
movq %rbx, %rdi
callq 0x52c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5260
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51a0
leaq 0x4ee7(%rip), %rsi      # 0xb5b8
movl $0x49, %edx
movq %rbx, %rdi
callq 0x52c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5260
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x51a0
leaq 0x4ef6(%rip), %rsi      # 0xb602
movl $0x3c, %edx
movq %rbx, %rdi
callq 0x52c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5260
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x51a0