// File: Kingsford-Group[P]ghost2/src/readFromGexf.hpp
// Function: extract(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
string extract(string s, string attribute)
{
  std::size_t loc = s.find(" "+attribute+"=");
  if(loc != std::string::npos)
  {
    string prev=s.substr(0,loc);
    int count=0; // make sure this isn't in quotes
    for(size_t nxt=prev.find("\"");nxt!=std::string::npos;
        nxt=prev.find("\"",nxt+1)) ++count;
    s = s.substr(loc);
    if(count%2==1) 
      return extract(s.substr(s.find("\"")+1),attribute);
    s = s.substr(s.find("\"")+1);
    s = s.substr(0,s.find("\""));
    return s;
  }
  return "<EOS>"; // otherwise impossible return value
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1a0, %rsp            # imm = 0x1A0
movq %rdx, -0x178(%rbp)
movq %rsi, -0x170(%rbp)
movq %rdi, -0x168(%rbp)
movq %rdi, %rax
movq %rax, -0x160(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
leaq 0xaa21a(%rip), %rsi     # 0xbc9d7
leaq -0x60(%rbp), %rdi
movq %rdi, -0x158(%rbp)
callq 0x238a0
movq -0x158(%rbp), %rsi
leaq 0xa9efe(%rip), %rdx     # 0xbc6d9
leaq -0x40(%rbp), %rdi
callq 0x23850
jmp 0x127e6
movq -0x170(%rbp), %rdi
leaq -0x40(%rbp), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x10e50
movq %rax, -0x180(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x10460
leaq -0x60(%rbp), %rdi
callq 0x10460
movq -0x180(%rbp), %rax
movq %rax, -0x20(%rbp)
cmpq $-0x1, -0x20(%rbp)
je 0x12ae9
movq -0x170(%rbp), %rsi
movq -0x20(%rbp), %rcx
leaq -0x90(%rbp), %rdi
xorl %eax, %eax
movl %eax, %edx
callq 0x10740
movl $0x0, -0x94(%rbp)
leaq -0x90(%rbp), %rdi
leaq 0xb57db(%rip), %rsi     # 0xc8037
xorl %eax, %eax
movl %eax, %edx
callq 0x10e30
movq %rax, -0xa0(%rbp)
cmpq $-0x1, -0xa0(%rbp)
je 0x128c6
movl -0x94(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x94(%rbp)
movq -0xa0(%rbp), %rdx
addq $0x1, %rdx
leaq -0x90(%rbp), %rdi
leaq 0xb5799(%rip), %rsi     # 0xc8037
callq 0x10e30
movq %rax, -0xa0(%rbp)
jmp 0x1286c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x10460
jmp 0x12b50
movq -0x170(%rbp), %rsi
movq -0x20(%rbp), %rdx
leaq -0xc0(%rbp), %rdi
movq $-0x1, %rcx
callq 0x10740
jmp 0x128e6
movq -0x170(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x108a0
leaq -0xc0(%rbp), %rdi
callq 0x10460
movl -0x94(%rbp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
cmpl $0x1, %edx
jne 0x129f5
movq -0x170(%rbp), %rdi
leaq 0xb570d(%rip), %rsi     # 0xc8037
xorl %eax, %eax
movl %eax, %edx
callq 0x10e30
movq -0x170(%rbp), %rsi
movq %rax, %rdx
incq %rdx
leaq -0xe0(%rbp), %rdi
movq $-0x1, %rcx
callq 0x10740
jmp 0x12955
movq -0x178(%rbp), %rsi
leaq -0x100(%rbp), %rdi
callq 0x10300
jmp 0x1296a
movq -0x168(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
leaq -0x100(%rbp), %rdx
callq 0x12780
jmp 0x12986
leaq -0x100(%rbp), %rdi
callq 0x10460
leaq -0xe0(%rbp), %rdi
callq 0x10460
movl $0x1, -0x104(%rbp)
jmp 0x12acd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x12adb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x129e4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x100(%rbp), %rdi
callq 0x10460
leaq -0xe0(%rbp), %rdi
callq 0x10460
jmp 0x12adb
movq -0x170(%rbp), %rdi
leaq 0xb5634(%rip), %rsi     # 0xc8037
xorl %eax, %eax
movl %eax, %edx
callq 0x10e30
movq -0x170(%rbp), %rsi
movq %rax, %rdx
incq %rdx
leaq -0x128(%rbp), %rdi
movq $-0x1, %rcx
callq 0x10740
jmp 0x12a2e
movq -0x170(%rbp), %rdi
leaq -0x128(%rbp), %rsi
movq %rsi, -0x190(%rbp)
callq 0x108a0
movq -0x190(%rbp), %rdi
callq 0x10460
movq -0x170(%rbp), %rdi
leaq 0xb55d5(%rip), %rsi     # 0xc8037
xorl %eax, %eax
movl %eax, %edx
movq %rdx, -0x188(%rbp)
callq 0x10e30
movq -0x170(%rbp), %rsi
movq -0x188(%rbp), %rdx
movq %rax, %rcx
leaq -0x148(%rbp), %rdi
callq 0x10740
jmp 0x12a91
movq -0x170(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0x108a0
leaq -0x148(%rbp), %rdi
callq 0x10460
movq -0x168(%rbp), %rdi
movq -0x170(%rbp), %rsi
callq 0x10420
movl $0x1, -0x104(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x10460
jmp 0x12b40
leaq -0x90(%rbp), %rdi
callq 0x10460
jmp 0x12b50
leaq -0x149(%rbp), %rdi
movq %rdi, -0x198(%rbp)
callq 0x10ce0
movq -0x168(%rbp), %rdi
movq -0x198(%rbp), %rdx
leaq 0xa9bca(%rip), %rsi     # 0xbc6db
callq 0x23400
jmp 0x12b18
leaq -0x149(%rbp), %rdi
callq 0x10770
jmp 0x12b40
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x149(%rbp), %rdi
callq 0x10770
jmp 0x12b50
movq -0x160(%rbp), %rax
addq $0x1a0, %rsp            # imm = 0x1A0
popq %rbp
retq
movq -0x68(%rbp), %rdi
callq 0x10cc0
nopl (%rax)