// File: jliesch[P]ofxget/ofxget.cc
// Function: ofxget::OfxGetContext::AddPasswordsForTest(int, char const*)
OfxGetContext& OfxGetContext::AddPasswordsForTest(
    int id, const char* filename) {
  if (is_error()) return *this;
  std::string id_str = std::to_string(id);
  pugi::xml_document doc;
  pugi::xml_parse_result result = doc.load_file(filename);
  if (!result) {
    return *this;
  }
  auto inst = doc.find_child_by_attribute("institution", "id", id_str.c_str());
  if (inst.empty()) {
    return *this;
  }
  for (auto node : inst) {
    vars_map_[node.name()] = node.child_value();
  }
  return *this;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x220, %rsp            # imm = 0x220
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x1a8(%rbp)
callq 0xad00
testb $0x1, %al
jne 0x96dc
jmp 0x96ec
movq -0x1a8(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x9a1a
movl -0x14(%rbp), %esi
leaq -0x40(%rbp), %rdi
callq 0xb000
leaq -0x110(%rbp), %rdi
callq 0x476b0
jmp 0x9706
movq -0x20(%rbp), %rdx
leaq -0x138(%rbp), %rdi
leaq -0x110(%rbp), %rsi
movl $0x74, %ecx
xorl %r8d, %r8d
callq 0x48440
jmp 0x9727
leaq -0x138(%rbp), %rdi
callq 0x47550
movb %al, -0x1a9(%rbp)
jmp 0x973b
movb -0x1a9(%rbp), %al
testb $0x1, %al
jne 0x978f
jmp 0x9747
movq -0x1a8(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x13c(%rbp)
jmp 0x99ec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x118(%rbp)
movl %eax, -0x11c(%rbp)
jmp 0x9a0f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x118(%rbp)
movl %eax, -0x11c(%rbp)
jmp 0x9a03
leaq -0x40(%rbp), %rdi
callq 0x7100
movq %rax, %rcx
leaq 0x5f915(%rip), %rsi     # 0x690b7
leaq 0x5f93b(%rip), %rdx     # 0x690e4
leaq -0x110(%rbp), %rdi
callq 0x45080
movq %rax, -0x1b8(%rbp)
jmp 0x97be
movq -0x1b8(%rbp), %rax
movq %rax, -0x148(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x420f0
movb %al, -0x1b9(%rbp)
jmp 0x97e0
movb -0x1b9(%rbp), %al
testb $0x1, %al
jne 0x97ec
jmp 0x9806
movq -0x1a8(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x13c(%rbp)
jmp 0x99ec
leaq -0x148(%rbp), %rax
movq %rax, -0x150(%rbp)
movq -0x150(%rbp), %rdi
callq 0x41c90
movq %rdx, -0x1d0(%rbp)
movq %rax, -0x1c8(%rbp)
jmp 0x9830
movq -0x1d0(%rbp), %rax
movq -0x1c8(%rbp), %rcx
movq %rcx, -0x160(%rbp)
movq %rax, -0x158(%rbp)
movq -0x150(%rbp), %rdi
callq 0x41cf0
movq %rdx, -0x1e0(%rbp)
movq %rax, -0x1d8(%rbp)
jmp 0x9868
movq -0x1e0(%rbp), %rax
movq -0x1d8(%rbp), %rcx
movq %rcx, -0x170(%rbp)
movq %rax, -0x168(%rbp)
leaq -0x160(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0x46c90
movb %al, -0x1e1(%rbp)
jmp 0x989f
movb -0x1e1(%rbp), %al
testb $0x1, %al
jne 0x98ae
jmp 0x99d7
leaq -0x160(%rbp), %rdi
callq 0x46ce0
movq %rax, -0x1f0(%rbp)
jmp 0x98c3
movq -0x1f0(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x178(%rbp)
leaq -0x178(%rbp), %rdi
callq 0x42830
movq %rax, -0x1f8(%rbp)
jmp 0x98e9
movq -0x1a8(%rbp), %rax
movq %rax, -0x208(%rbp)
leaq -0x178(%rbp), %rdi
callq 0x42110
movq %rax, -0x200(%rbp)
jmp 0x990c
leaq -0x199(%rbp), %rdi
movq %rdi, -0x210(%rbp)
callq 0x78f0
movq -0x200(%rbp), %rsi
movq -0x210(%rbp), %rdx
leaq -0x198(%rbp), %rdi
callq 0x77b0
jmp 0x993b
movq -0x208(%rbp), %rdi
leaq -0x198(%rbp), %rsi
callq 0xae10
movq %rax, -0x218(%rbp)
jmp 0x9957
movq -0x1f8(%rbp), %rsi
movq -0x218(%rbp), %rdi
callq 0x73b0
jmp 0x996c
leaq -0x198(%rbp), %rdi
callq 0x7b88
leaq -0x199(%rbp), %rdi
callq 0x7b70
leaq -0x160(%rbp), %rdi
callq 0x46d80
jmp 0x9992
jmp 0x9884
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x118(%rbp)
movl %eax, -0x11c(%rbp)
jmp 0x99c9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x118(%rbp)
movl %eax, -0x11c(%rbp)
leaq -0x198(%rbp), %rdi
callq 0x7b88
leaq -0x199(%rbp), %rdi
callq 0x7b70
jmp 0x9a03
movq -0x1a8(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x1, -0x13c(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x47810
leaq -0x40(%rbp), %rdi
callq 0x7b88
jmp 0x9a1a
leaq -0x110(%rbp), %rdi
callq 0x47810
leaq -0x40(%rbp), %rdi
callq 0x7b88
jmp 0x9a27
movq -0x8(%rbp), %rax
addq $0x220, %rsp            # imm = 0x220
popq %rbp
retq
movq -0x118(%rbp), %rdi
callq 0x7600
nopw %cs:(%rax,%rax)