// File: Kingsford-Group[P]ghost2/src/GHOST.cpp
// Function: main
int main(int argc, char** argv)
{
  ConfigData c;

  // read in options
  for(int i=1; i<argc; i++)
  {
    if(string(argv[i]) == "-c")
      if((i+1)<argc)
        c.configure(string(argv[i+1]));
    if(string(argv[i]) == "-k")
      if((i+1)<argc)
        c.hops = atoi(argv[i+1]);
    if(string(argv[i]) == "-p")
      if((i+1)<argc)
        c.numProcessors = atoi(argv[i+1]);
  }

  if(c.Ggraph == "" || c.Hgraph == "") // required input
    { cout << "gexf files not provided\n"; return 0; }

  // and here we go!
  computeAlignment(c);
  return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x390, %rsp            # imm = 0x390
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x2b380
movl $0x1, -0x14c(%rbp)
movl -0x14c(%rbp), %eax
cmpl -0x8(%rbp), %eax
jge 0x22997
movq -0x10(%rbp), %rax
movslq -0x14c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x348(%rbp)
leaq -0x171(%rbp), %rdi
movq %rdi, -0x340(%rbp)
callq 0x10ce0
movq -0x348(%rbp), %rsi
movq -0x340(%rbp), %rdx
leaq -0x170(%rbp), %rdi
callq 0x23400
jmp 0x22643
leaq 0x9a40e(%rip), %rsi     # 0xbca58
leaq -0x170(%rbp), %rdi
callq 0x233d0
movb %al, -0x349(%rbp)
jmp 0x2265e
leaq -0x170(%rbp), %rdi
callq 0x10460
leaq -0x171(%rbp), %rdi
callq 0x10770
movb -0x349(%rbp), %al
testb $0x1, %al
jne 0x22685
jmp 0x22797
movl -0x14c(%rbp), %eax
addl $0x1, %eax
cmpl -0x8(%rbp), %eax
jge 0x22795
movq -0x10(%rbp), %rax
movslq -0x14c(%rbp), %rcx
movq 0x8(%rax,%rcx,8), %rax
movq %rax, -0x360(%rbp)
leaq -0x1a9(%rbp), %rdi
movq %rdi, -0x358(%rbp)
callq 0x10ce0
movq -0x360(%rbp), %rsi
movq -0x358(%rbp), %rdx
leaq -0x1a8(%rbp), %rdi
callq 0x23400
jmp 0x226dd
leaq -0x148(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x12030
jmp 0x226f2
leaq -0x1a8(%rbp), %rdi
callq 0x10460
leaq -0x1a9(%rbp), %rdi
callq 0x10770
jmp 0x22795
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x180(%rbp)
movl %eax, -0x184(%rbp)
jmp 0x22741
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x180(%rbp)
movl %eax, -0x184(%rbp)
leaq -0x170(%rbp), %rdi
callq 0x10460
leaq -0x171(%rbp), %rdi
callq 0x10770
jmp 0x22a9b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x180(%rbp)
movl %eax, -0x184(%rbp)
jmp 0x22784
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x180(%rbp)
movl %eax, -0x184(%rbp)
leaq -0x1a8(%rbp), %rdi
callq 0x10460
leaq -0x1a9(%rbp), %rdi
callq 0x10770
jmp 0x22a9b
jmp 0x22797
movq -0x10(%rbp), %rax
movslq -0x14c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x370(%rbp)
leaq -0x1d1(%rbp), %rdi
movq %rdi, -0x368(%rbp)
callq 0x10ce0
movq -0x370(%rbp), %rsi
movq -0x368(%rbp), %rdx
leaq -0x1d0(%rbp), %rdi
callq 0x23400
jmp 0x227dc
leaq 0x9a278(%rip), %rsi     # 0xbca5b
leaq -0x1d0(%rbp), %rdi
callq 0x233d0
movb %al, -0x371(%rbp)
jmp 0x227f7
leaq -0x1d0(%rbp), %rdi
callq 0x10460
leaq -0x1d1(%rbp), %rdi
callq 0x10770
movb -0x371(%rbp), %al
testb $0x1, %al
jne 0x2281b
jmp 0x2288c
movl -0x14c(%rbp), %eax
addl $0x1, %eax
cmpl -0x8(%rbp), %eax
jge 0x2288a
movq -0x10(%rbp), %rax
movl -0x14c(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x10b60
movl %eax, -0x44(%rbp)
jmp 0x2288a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x180(%rbp)
movl %eax, -0x184(%rbp)
jmp 0x22879
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x180(%rbp)
movl %eax, -0x184(%rbp)
leaq -0x1d0(%rbp), %rdi
callq 0x10460
leaq -0x1d1(%rbp), %rdi
callq 0x10770
jmp 0x22a9b
jmp 0x2288c
movq -0x10(%rbp), %rax
movslq -0x14c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x388(%rbp)
leaq -0x1f9(%rbp), %rdi
movq %rdi, -0x380(%rbp)
callq 0x10ce0
movq -0x388(%rbp), %rsi
movq -0x380(%rbp), %rdx
leaq -0x1f8(%rbp), %rdi
callq 0x23400
jmp 0x228d1
leaq 0x9a186(%rip), %rsi     # 0xbca5e
leaq -0x1f8(%rbp), %rdi
callq 0x233d0
movb %al, -0x389(%rbp)
jmp 0x228ec
leaq -0x1f8(%rbp), %rdi
callq 0x10460
leaq -0x1f9(%rbp), %rdi
callq 0x10770
movb -0x389(%rbp), %al
testb $0x1, %al
jne 0x22910
jmp 0x22981
movl -0x14c(%rbp), %eax
addl $0x1, %eax
cmpl -0x8(%rbp), %eax
jge 0x2297f
movq -0x10(%rbp), %rax
movl -0x14c(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x10b60
movl %eax, -0x48(%rbp)
jmp 0x2297f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x180(%rbp)
movl %eax, -0x184(%rbp)
jmp 0x2296e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x180(%rbp)
movl %eax, -0x184(%rbp)
leaq -0x1f8(%rbp), %rdi
callq 0x10460
leaq -0x1f9(%rbp), %rdi
callq 0x10770
jmp 0x22a9b
jmp 0x22981
jmp 0x22983
movl -0x14c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14c(%rbp)
jmp 0x225ef
leaq 0x99eee(%rip), %rsi     # 0xbc88c
leaq -0x148(%rbp), %rdi
callq 0x233d0
movb %al, -0x38a(%rbp)
jmp 0x229b2
movb -0x38a(%rbp), %al
testb $0x1, %al
jne 0x229e5
jmp 0x229be
leaq -0x128(%rbp), %rdi
leaq 0x99ec0(%rip), %rsi     # 0xbc88c
callq 0x233d0
movb %al, -0x38b(%rbp)
jmp 0x229d9
movb -0x38b(%rbp), %al
testb $0x1, %al
jne 0x229e5
jmp 0x22a21
movq 0x10e5ac(%rip), %rdi    # 0x130f98
leaq 0x9a06e(%rip), %rsi     # 0xbca61
callq 0x106c0
jmp 0x229fa
movl $0x0, -0x4(%rbp)
movl $0x1, -0x200(%rbp)
jmp 0x22a83
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x180(%rbp)
movl %eax, -0x184(%rbp)
jmp 0x22a9b
leaq -0x338(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0x2b720
jmp 0x22a36
leaq -0x338(%rbp), %rdi
callq 0x20f40
jmp 0x22a44
leaq -0x338(%rbp), %rdi
callq 0x2b8f0
movl $0x0, -0x4(%rbp)
movl $0x1, -0x200(%rbp)
jmp 0x22a83
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x180(%rbp)
movl %eax, -0x184(%rbp)
leaq -0x338(%rbp), %rdi
callq 0x2b8f0
jmp 0x22a9b
leaq -0x148(%rbp), %rdi
callq 0x2b8f0
movl -0x4(%rbp), %eax
addq $0x390, %rsp            # imm = 0x390
popq %rbp
retq
leaq -0x148(%rbp), %rdi
callq 0x2b8f0
movq -0x180(%rbp), %rdi
callq 0x10cc0
nopw %cs:(%rax,%rax)