// File: VanAndelInstitute[P]intent/src/seq_tools.cpp
// Function: getEnds(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
std::vector<int> getEnds(std::string s1, std::string s2) {
  std::vector<int> res;
  EdlibAlignResult result = edlibAlign(s1.c_str(),
                                       s1.length(),
                                       s2.c_str(),
                                       s2.length(),
                                       edlibNewAlignConfig(-1,
                                                           EDLIB_MODE_HW,
                                                           EDLIB_TASK_PATH,
                                                           NULL,
                                                           0));
  if (result.status == EDLIB_STATUS_OK) {
    res.push_back(result.editDistance);
    res.push_back(result.startLocations[0]);
    res.push_back(result.endLocations[0]);
  } else {
    res.push_back(999);
    res.push_back(-1);
    res.push_back(-1);
  }
  edlibFreeAlignResult(result);
  return(res);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x130, %rsp            # imm = 0x130
movq %rdx, -0xd8(%rbp)
movq %rsi, -0xf0(%rbp)
movq %rdi, -0x100(%rbp)
movq %rdi, %rax
movq %rax, -0xf8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movb $0x0, -0x19(%rbp)
callq 0x36740
movq -0xf0(%rbp), %rdi
callq 0x8260
movq -0xf0(%rbp), %rdi
movq %rax, -0xe8(%rbp)
callq 0x8850
movq -0xd8(%rbp), %rdi
movl %eax, -0xdc(%rbp)
callq 0x8260
movq -0xd8(%rbp), %rdi
movq %rax, -0xd0(%rbp)
callq 0x8850
movl %eax, -0xc4(%rbp)
xorl %r9d, %r9d
movl %r9d, %r8d
leaq -0x70(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movl $0x2, %ecx
movl %ecx, %edx
callq 0x673b0
jmp 0x6a5c6
movl -0xc4(%rbp), %r8d
movq -0xd0(%rbp), %rcx
movl -0xdc(%rbp), %edx
movq -0xe8(%rbp), %rsi
movups -0x70(%rbp), %xmm0
movups -0x60(%rbp), %xmm1
movq %rsp, %rax
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
leaq -0x50(%rbp), %rdi
callq 0x64a80
jmp 0x6a5fe
cmpl $0x0, -0x50(%rbp)
jne 0x6a659
movq -0x100(%rbp), %rdi
leaq -0x4c(%rbp), %rsi
callq 0x6c310
jmp 0x6a616
movq -0x100(%rbp), %rdi
movq -0x40(%rbp), %rsi
callq 0x6c310
jmp 0x6a628
movq -0x100(%rbp), %rdi
movq -0x48(%rbp), %rsi
callq 0x6c310
jmp 0x6a63a
jmp 0x6a6b2
movq -0x100(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
callq 0x36b20
jmp 0x6a723
movq -0x100(%rbp), %rdi
movl $0x3e7, -0x80(%rbp)     # imm = 0x3E7
leaq -0x80(%rbp), %rsi
callq 0x69110
jmp 0x6a672
movq -0x100(%rbp), %rdi
movl $0xffffffff, -0x84(%rbp) # imm = 0xFFFFFFFF
leaq -0x84(%rbp), %rsi
callq 0x69110
jmp 0x6a691
movq -0x100(%rbp), %rdi
movl $0xffffffff, -0x88(%rbp) # imm = 0xFFFFFFFF
leaq -0x88(%rbp), %rsi
callq 0x69110
jmp 0x6a6b0
jmp 0x6a6b2
movups -0x50(%rbp), %xmm0
movups -0x40(%rbp), %xmm1
movups -0x30(%rbp), %xmm2
movaps %xmm2, -0xa0(%rbp)
movaps %xmm1, -0xb0(%rbp)
movaps %xmm0, -0xc0(%rbp)
movaps -0xc0(%rbp), %xmm0
movaps -0xb0(%rbp), %xmm1
movaps -0xa0(%rbp), %xmm2
movq %rsp, %rax
movups %xmm2, 0x20(%rax)
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x67430
jmp 0x6a6fd
movb $0x1, -0x19(%rbp)
testb $0x1, -0x19(%rbp)
jne 0x6a713
movq -0x100(%rbp), %rdi
callq 0x36b20
movq -0xf8(%rbp), %rax
addq $0x130, %rsp            # imm = 0x130
popq %rbp
retq
movq -0x78(%rbp), %rdi
callq 0x8970
nopl (%rax)