// File: /workspace/github_cpp_makefile_star2_O1/jliesch[P]ofxget/ofxhome.cc
// Function: ofxget::OfxDumpStringToInstitutions(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
vector<Institution> OfxDumpStringToInstitutions(const string& dump) {
  pugi::xml_document doc;
  pugi::xml_parse_result result = doc.load_string(dump.c_str());
  if (!result) {
    throw string("Could not parse institutions");
  }

  vector<Institution> insts;
  for (pugi::xml_node inst = doc.child("institution"); inst; inst = inst.next_sibling("institution")) {
    Institution i;
    i.ofxhome_id = inst.attribute("id").as_int();
    i.name = inst.child("name").child_value();
    i.url = inst.child("url").child_value();
    i.fid = inst.child("fid").child_value();
    i.org = inst.child("org").child_value();
    i.brokerid = inst.child("brokerid").child_value();
    i.bankid = inst.child("bankid").child_value();
    i.ofxfail = inst.child("ofxfail").text().as_int();
    i.sslfail = inst.child("sslfail").text().as_int();
    i.lastofxvalidation = inst.child("lastofxvalidation").child_value();
    i.lastsslvalidation = inst.child("lastsslvalidation").child_value();
    auto profile = inst.child("profile");
    for (pugi::xml_attribute_iterator ait = profile.attributes_begin(); ait != profile.attributes_end(); ++ait)
    {
      i.profile[ait->name()] = ait->value();
    }
    insts.push_back(i);
  }

  return insts;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x278, %rsp            # imm = 0x278
movq %rsi, %rbx
movq %rdi, 0x8(%rsp)
leaq 0x1a8(%rsp), %r14
movq %r14, %rdi
callq 0x226c0
movq (%rbx), %rdx
leaq 0x190(%rsp), %rdi
movq %r14, %rsi
movl $0x74, %ecx
callq 0x2338e
leaq 0x190(%rsp), %rdi
callq 0x22698
testb %al, %al
je 0xb7da
xorps %xmm0, %xmm0
movq 0x8(%rsp), %rax
movups %xmm0, (%rax)
movq $0x0, 0x10(%rax)
leaq 0x25e0b(%rip), %rsi     # 0x310b7
leaq 0x1a8(%rsp), %rdi
callq 0x1d612
leaq 0x48(%rsp), %rdi
leaq 0x10(%rsp), %r15
leaq 0x38(%rsp), %r14
movq %rax, 0x48(%rsp)
movq %rdi, %r12
callq 0x1d562
testq %rax, %rax
je 0xb7b6
leaq 0x68(%rsp), %rax
movq %rax, 0x58(%rsp)
xorl %ecx, %ecx
movq %rcx, 0x60(%rsp)
movb %cl, 0x68(%rsp)
leaq 0x88(%rsp), %rax
movq %rax, 0x78(%rsp)
movq %rcx, 0x80(%rsp)
movb %cl, 0x88(%rsp)
leaq 0xa8(%rsp), %rax
movq %rax, 0x98(%rsp)
movq %rcx, 0xa0(%rsp)
movb %cl, 0xa8(%rsp)
leaq 0xc8(%rsp), %rax
movq %rax, 0xb8(%rsp)
movq %rcx, 0xc0(%rsp)
movb %cl, 0xc8(%rsp)
leaq 0xf0(%rsp), %rax
movq %rax, 0xe0(%rsp)
movq %rcx, 0xe8(%rsp)
movb %cl, 0xf0(%rsp)
leaq 0x110(%rsp), %rax
movq %rax, 0x100(%rsp)
movq %rcx, 0x108(%rsp)
movb %cl, 0x110(%rsp)
leaq 0x130(%rsp), %rax
movq %rax, 0x120(%rsp)
movq %rcx, 0x128(%rsp)
movb %cl, 0x130(%rsp)
leaq 0x150(%rsp), %rax
movq %rax, 0x140(%rsp)
movq %rcx, 0x148(%rsp)
movb %cl, 0x150(%rsp)
movl $0x0, 0x168(%rsp)
movq %rcx, 0x170(%rsp)
leaq 0x168(%rsp), %rax
movq %rax, 0x178(%rsp)
movq %rax, 0x180(%rsp)
movq %rcx, 0x188(%rsp)
movq %r12, %rdi
leaq 0x25cde(%rip), %rsi     # 0x310e4
callq 0x1d754
movq %rax, 0x10(%rsp)
movq %r15, %rdi
xorl %esi, %esi
callq 0x1cc32
movl %eax, 0x50(%rsp)
movq %r12, %rdi
leaq 0x29a59(%rip), %rsi     # 0x34e81
callq 0x1d612
movq %rax, 0x10(%rsp)
movq %r15, %rdi
callq 0x1d970
movq %rax, %rbp
movq 0x60(%rsp), %r13
movq %rax, %rdi
callq 0x6270
leaq 0x58(%rsp), %rdi
xorl %esi, %esi
movq %r13, %rdx
movq %rbp, %rcx
movq %rax, %r8
callq 0x6350
movq %r12, %rdi
leaq 0x25d04(%rip), %rsi     # 0x3116d
callq 0x1d612
movq %rax, 0x10(%rsp)
movq %r15, %rdi
callq 0x1d970
movq %rax, %rbp
movq 0xc0(%rsp), %r13
movq %rax, %rdi
callq 0x6270
leaq 0xb8(%rsp), %rdi
xorl %esi, %esi
movq %r13, %rdx
movq %rbp, %rcx
movq %rax, %r8
callq 0x6350
movq %r12, %rdi
leaq 0x25c33(%rip), %rsi     # 0x310e3
callq 0x1d612
movq %rax, 0x10(%rsp)
movq %r15, %rdi
callq 0x1d970
movq %rax, %rbp
movq 0x80(%rsp), %r13
movq %rax, %rdi
callq 0x6270
leaq 0x78(%rsp), %rdi
xorl %esi, %esi
movq %r13, %rdx
movq %rbp, %rcx
movq %rax, %r8
callq 0x6350
movq %r12, %rdi
leaq 0x25beb(%rip), %rsi     # 0x310df
callq 0x1d612
movq %rax, 0x10(%rsp)
movq %r15, %rdi
callq 0x1d970
movq %rax, %rbp
movq 0xa0(%rsp), %r13
movq %rax, %rdi
callq 0x6270
leaq 0x98(%rsp), %rdi
xorl %esi, %esi
movq %r13, %rdx
movq %rbp, %rcx
movq %rax, %r8
callq 0x6350
movq %r12, %rdi
leaq 0x25bac(%rip), %rsi     # 0x310e7
callq 0x1d612
movq %rax, 0x10(%rsp)
movq %r15, %rdi
callq 0x1d970
movq %rax, %rbp
movq 0x128(%rsp), %r13
movq %rax, %rdi
callq 0x6270
leaq 0x120(%rsp), %rdi
xorl %esi, %esi
movq %r13, %rdx
movq %rbp, %rcx
movq %rax, %r8
callq 0x6350
movq %r12, %rdi
leaq 0x25b6e(%rip), %rsi     # 0x310f0
callq 0x1d612
movq %rax, 0x10(%rsp)
movq %r15, %rdi
callq 0x1d970
movq %rax, %rbp
movq 0x148(%rsp), %r13
movq %rax, %rdi
callq 0x6270
leaq 0x140(%rsp), %rdi
xorl %esi, %esi
movq %r13, %rdx
movq %rbp, %rcx
movq %rax, %r8
callq 0x6350
movq %r12, %rdi
leaq 0x25f60(%rip), %rsi     # 0x31529
callq 0x1d612
movq %rax, 0x38(%rsp)
movq %r14, %rdi
callq 0x1d96c
movq %rax, 0x10(%rsp)
movq %r15, %rdi
xorl %esi, %esi
callq 0x21e34
movl %eax, 0xd8(%rsp)
movq %r12, %rdi
leaq 0x25f36(%rip), %rsi     # 0x31531
callq 0x1d612
movq %rax, 0x38(%rsp)
movq %r14, %rdi
callq 0x1d96c
movq %rax, 0x10(%rsp)
movq %r15, %rdi
xorl %esi, %esi
callq 0x21e34
movl %eax, 0xdc(%rsp)
movq %r12, %rdi
leaq 0x25f0c(%rip), %rsi     # 0x31539
callq 0x1d612
movq %rax, 0x10(%rsp)
movq %r15, %rdi
callq 0x1d970
movq %rax, %rbp
movq 0xe8(%rsp), %r13
movq %rax, %rdi
callq 0x6270
leaq 0xe0(%rsp), %rdi
xorl %esi, %esi
movq %r13, %rdx
movq %rbp, %rcx
movq %rax, %r8
callq 0x6350
movq %r12, %rdi
leaq 0x25ed7(%rip), %rsi     # 0x3154b
callq 0x1d612
movq %rax, 0x10(%rsp)
movq %r15, %rdi
callq 0x1d970
movq %rax, %rbp
movq 0x108(%rsp), %r13
movq %rax, %rdi
callq 0x6270
leaq 0x100(%rsp), %rdi
xorl %esi, %esi
movq %r13, %rdx
movq %rbp, %rcx
movq %rax, %r8
callq 0x6350
movq %r12, %rdi
leaq 0x25ea2(%rip), %rsi     # 0x3155d
callq 0x1d612
movq %rax, 0x30(%rsp)
leaq 0x30(%rsp), %rdi
callq 0x1d594
movq %rax, 0x38(%rsp)
movq %rdx, 0x40(%rsp)
leaq 0x30(%rsp), %rdi
callq 0x1d5a4
movq %rax, 0x10(%rsp)
movq %rdx, 0x18(%rsp)
movq %r14, %rdi
movq %r15, %rsi
callq 0x223a0
testb %al, %al
je 0xb786
movq %r14, %rdi
callq 0x223e0
movq %rax, %rdi
callq 0x1cd64
movq %rax, %rbp
movq %r14, %rdi
callq 0x223e0
movq %rax, %rdi
callq 0x1cd40
movq %r15, %rdi
movq %rax, %rsi
leaq 0x7(%rsp), %rdx
callq 0x66c0
leaq 0x160(%rsp), %rdi
movq %r15, %rsi
callq 0x9c7a
movq %rax, %r13
movq 0x8(%rax), %rbx
movq %rbp, %rdi
callq 0x6270
movq %r13, %rdi
xorl %esi, %esi
movq %rbx, %rdx
movq %rbp, %rcx
movq %rax, %r8
callq 0x6350
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0xb779
callq 0x63b0
movq %r14, %rdi
callq 0x2240a
jmp 0xb6d9
movq 0x8(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0xc444
leaq 0x50(%rsp), %rdi
callq 0xc474
movq %r12, %rdi
leaq 0x2590e(%rip), %rsi     # 0x310b7
callq 0x1d79a
movq %r12, %rdi
jmp 0xb2c8
leaq 0x1a8(%rsp), %rdi
callq 0x2274e
movq 0x8(%rsp), %rax
addq $0x278, %rsp            # imm = 0x278
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x20, %edi
callq 0x6260
movq %rax, %r14
addq $0x10, %rax
movq %rax, (%r14)
movb $0x1, %bpl
leaq 0x25d14(%rip), %rsi     # 0x3150c
leaq 0x25d29(%rip), %rdx     # 0x31528
movq %r14, %rdi
callq 0xa06a
xorl %ebp, %ebp
leaq 0x3ace0(%rip), %rsi     # 0x464f0
movq 0x3b781(%rip), %rdx     # 0x46f98
movq %r14, %rdi
callq 0x6420
jmp 0xb83c
movq %rax, %rbx
testb %bpl, %bpl
je 0xb88f
movq %r14, %rdi
callq 0x6600
jmp 0xb88f
movq %rax, %rbx
jmp 0xb88f
jmp 0xb83c
jmp 0xb878
movq %rax, %rbx
jmp 0xb885
jmp 0xb878
jmp 0xb878
jmp 0xb878
jmp 0xb878
jmp 0xb878
jmp 0xb878
jmp 0xb878
jmp 0xb878
jmp 0xb878
jmp 0xb878
jmp 0xb878
jmp 0xb878
jmp 0xb878
jmp 0xb878
movq %rax, %rbx
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0xb87b
callq 0x63b0
jmp 0xb87b
jmp 0xb878
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0xc474
movq 0x8(%rsp), %rdi
callq 0xc530
leaq 0x1a8(%rsp), %rdi
callq 0x2274e
movq %rbx, %rdi
callq 0x6430