// File: /workspace/github_c_makefile_star2_O0/fukunagatsu[P]RIblast/main.cpp
// Function: main
int main(int argc, char* argv[]) {
  if(argc == 1 || strcmp(argv[1],"-h") == 0){
    PrintUsage();
    exit(1);
  }
  
  if(strcmp(argv[1],"db") == 0){
    DbConstructionParameters parameters;
    parameters.SetParameters(argc - 1, argv + 1);
    DbConstruction db_construction;
    db_construction.Run(parameters);    
  }else if(strcmp(argv[1],"ris") == 0){
    RnaInteractionSearchParameters parameters;
    parameters.SetParameters(argc - 1, argv + 1);
    parameters.SetDbParameters();
    RnaInteractionSearch rna_interaction_search(parameters.GetHashSize());
    rna_interaction_search.Run(parameters);
  }else{
    cerr << "Error: You must specify the mode of RIblast (db or ris)." << endl;
    exit(1);
  }
  return(0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x310, %rsp            # imm = 0x310
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpl $0x1, -0x8(%rbp)
je 0x3da8
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x34982(%rip), %rsi     # 0x38720
callq 0x33e0
cmpl $0x0, %eax
jne 0x3db7
callq 0x3a50
movl $0x1, %edi
callq 0x3330
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x3495d(%rip), %rsi     # 0x38723
callq 0x33e0
cmpl $0x0, %eax
jne 0x3e7c
leaq -0x60(%rbp), %rdi
movq %rdi, -0x300(%rbp)
callq 0x3fe0
movq -0x300(%rbp), %rdi
movl -0x8(%rbp), %esi
decl %esi
movq -0x10(%rbp), %rdx
addq $0x8, %rdx
callq 0x7d50
jmp 0x3dff
leaq -0x6d(%rbp), %rdi
callq 0x4090
jmp 0x3e0a
leaq -0xc0(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x40a0
jmp 0x3e1c
leaq -0x6d(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x9a50
jmp 0x3e2e
leaq -0xc0(%rbp), %rdi
callq 0x4120
leaq -0x60(%rbp), %rdi
callq 0x4120
jmp 0x3fc9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x3e6e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0x4120
leaq -0x60(%rbp), %rdi
callq 0x4120
jmp 0x3fd4
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x3489b(%rip), %rsi     # 0x38726
callq 0x33e0
cmpl $0x0, %eax
jne 0x3f9b
leaq -0x160(%rbp), %rdi
movq %rdi, -0x308(%rbp)
callq 0x4150
movq -0x308(%rbp), %rdi
movl -0x8(%rbp), %esi
decl %esi
movq -0x10(%rbp), %rdx
addq $0x8, %rdx
callq 0x283c0
jmp 0x3ec7
leaq -0x160(%rbp), %rdi
callq 0x285a0
jmp 0x3ed5
leaq -0x160(%rbp), %rdi
callq 0x4270
movl %eax, -0x30c(%rbp)
jmp 0x3ee9
movl -0x30c(%rbp), %esi
leaq -0x258(%rbp), %rdi
callq 0x4290
jmp 0x3efd
leaq -0x2f8(%rbp), %rdi
leaq -0x160(%rbp), %rsi
callq 0x4550
jmp 0x3f12
leaq -0x258(%rbp), %rdi
leaq -0x2f8(%rbp), %rsi
callq 0x1cb70
jmp 0x3f27
leaq -0x2f8(%rbp), %rdi
callq 0x4600
leaq -0x258(%rbp), %rdi
callq 0x4640
leaq -0x160(%rbp), %rdi
callq 0x4600
jmp 0x3fc7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x3f8d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x3f81
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x2f8(%rbp), %rdi
callq 0x4600
leaq -0x258(%rbp), %rdi
callq 0x4640
leaq -0x160(%rbp), %rdi
callq 0x4600
jmp 0x3fd4
movq 0x4804e(%rip), %rdi     # 0x4bff0
leaq 0x34781(%rip), %rsi     # 0x3872a
callq 0x3270
movq %rax, %rdi
movq 0x47ff0(%rip), %rsi     # 0x4bfa8
callq 0x32b0
movl $0x1, %edi
callq 0x3330
jmp 0x3fc9
xorl %eax, %eax
addq $0x310, %rsp            # imm = 0x310
popq %rbp
retq
movq -0x68(%rbp), %rdi
callq 0x34d0
nopl (%rax)