// File: /workspace/github_c_makefile_star2_O0/ComplexNetworks-DCC-FCUP[P]gtrieScanner/GTrie.cpp
// Function: GTrieNode::populateMap(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, int>>>*, char*, int)
void GTrieNode::populateMap(mapStringInt *m, char *s, int size) {
  int i, pos=depth-1;

  for (i=0;i<depth;i++) {
    s[pos*size+i]=out[i]?'1':'0';
    s[i*size+pos]=in[i]?'1':'0';
  }

  if (is_graph && frequency>0) (*m)[s]=frequency;

  list<GTrieNode *>::const_iterator ii, iiend;
  for(ii=child.begin(), iiend = child.end(); ii!=iiend; ++ii)
    (*ii)->populateMap(m, s, size);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xd0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x98(%rbp)
movl 0x4c(%rax), %eax
subl $0x1, %eax
movl %eax, -0x24(%rbp)
movl $0x0, -0x20(%rbp)
movq -0x98(%rbp), %rcx
movl -0x20(%rbp), %eax
cmpl 0x4c(%rcx), %eax
jge 0x13472
movq -0x98(%rbp), %rax
movq 0x60(%rax), %rax
movslq -0x20(%rbp), %rcx
movb (%rax,%rcx), %cl
movb $0x31, %al
movb $0x30, %dl
movb %dl, -0x9a(%rbp)
testb $0x1, %cl
movb %al, -0x99(%rbp)
jne 0x133fb
movb -0x9a(%rbp), %al
movb %al, -0x99(%rbp)
movq -0x98(%rbp), %rax
movb -0x99(%rbp), %sil
movq -0x18(%rbp), %rcx
movl -0x24(%rbp), %edx
imull -0x1c(%rbp), %edx
addl -0x20(%rbp), %edx
movslq %edx, %rdx
movb %sil, (%rcx,%rdx)
movq 0x58(%rax), %rax
movslq -0x20(%rbp), %rcx
movb (%rax,%rcx), %cl
movb $0x31, %al
movb $0x30, %dl
movb %dl, -0x9c(%rbp)
testb $0x1, %cl
movb %al, -0x9b(%rbp)
jne 0x1344a
movb -0x9c(%rbp), %al
movb %al, -0x9b(%rbp)
movb -0x9b(%rbp), %dl
movq -0x18(%rbp), %rax
movl -0x20(%rbp), %ecx
imull -0x1c(%rbp), %ecx
addl -0x24(%rbp), %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x133b5
movq -0x98(%rbp), %rax
testb $0x1, 0x50(%rax)
je 0x13550
movq -0x98(%rbp), %rax
cmpl $0x0, 0x54(%rax)
jle 0x13550
movq -0x98(%rbp), %rax
movl 0x54(%rax), %eax
movl %eax, -0xbc(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0xb0(%rbp)
leaq -0x49(%rbp), %rdi
movq %rdi, -0xa8(%rbp)
callq 0x3450
movq -0xb0(%rbp), %rsi
movq -0xa8(%rbp), %rdx
leaq -0x48(%rbp), %rdi
callq 0x160b0
jmp 0x134e3
movq -0xb8(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x15fd0
movq %rax, -0xc8(%rbp)
jmp 0x134fc
movq -0xc8(%rbp), %rax
movl -0xbc(%rbp), %ecx
movl %ecx, (%rax)
leaq -0x48(%rbp), %rdi
callq 0x3170
leaq -0x49(%rbp), %rdi
callq 0x32b0
jmp 0x13550
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x13542
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x3170
leaq -0x49(%rbp), %rdi
callq 0x32b0
jmp 0x13603
leaq -0x68(%rbp), %rdi
callq 0x15eb0
leaq -0x70(%rbp), %rdi
callq 0x15eb0
movq -0x98(%rbp), %rdi
addq $0x30, %rdi
callq 0x153b0
movq %rax, -0x80(%rbp)
leaq -0x78(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x15ed0
movq -0x98(%rbp), %rdi
movq -0x78(%rbp), %rax
movq %rax, -0x68(%rbp)
addq $0x30, %rdi
callq 0x15410
movq %rax, -0x90(%rbp)
leaq -0x88(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x15ed0
movq -0x88(%rbp), %rax
movq %rax, -0x70(%rbp)
leaq -0x68(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x15ef0
testb $0x1, %al
jne 0x135d3
jmp 0x135fa
leaq -0x68(%rbp), %rdi
callq 0x15f20
movq (%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movl -0x1c(%rbp), %ecx
callq 0x13380
leaq -0x68(%rbp), %rdi
callq 0x15f50
jmp 0x135c0
addq $0xd0, %rsp
popq %rbp
retq
movq -0x58(%rbp), %rdi
callq 0x3440
nopl (%rax)