// File: /workspace/github_c_makefile_star2_O2/ComplexNetworks-DCC-FCUP[P]gtrieScanner/Isomorphism.cpp
// Function: Isomorphism::canonicalStrNauty(Graph*, int*, char*)
void Isomorphism::canonicalStrNauty(Graph *myg, int *v, char *s) {
  int i, j, aux;

  static bool **adjM = myg->adjacencyMatrix();

  for (i=0; i<n; i++) {
    gv = GRAPHROW(g,i,m);
    EMPTYSET(gv,m);
    for (j=0; j<n; j++)
      if (adjM[v[i]][v[j]]) ADDELEMENT(gv,j);
  }

  nauty(g,lab,ptn,NULL,orbits,&options,&stats,
	workspace,WORKSPACE_SIZE,m,n,mm);

  aux=0;
  for (i=0; i<n; i++) {
    gv = GRAPHROW(mm,i,m); 
    for (j=0; j<n; j++)
         s[aux++] = ISELEMENT(gv,j)?'1':'0';
  }
  s[aux]=0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %r14
movb 0x1b207(%rip), %al      # 0x21b48
testb %al, %al
je 0x6abf
movl 0x1abf1(%rip), %eax     # 0x21540
movslq 0x1abee(%rip), %r10     # 0x21544
movq 0x1b1e3(%rip), %rcx     # 0x21b40
xorl %edx, %edx
testl %eax, %eax
movl $0x0, %esi
cmovgl %eax, %esi
leaq (,%r10,4), %rdi
leaq 0x1abd8(%rip), %r8      # 0x21550
leaq (%r8,%r10,4), %r9
addq $-0x4, %r9
leaq 0xa269(%rip), %r15      # 0x10bf0
cmpq %rsi, %rdx
je 0x69f0
movq %rdx, %r11
imulq %r10, %r11
leaq (%r8,%r11,4), %r11
movq %r11, 0x1abaa(%rip)     # 0x21548
movq %r9, %r12
cmpq %r11, %r12
jb 0x69b1
andl $0x0, (%r12)
addq $-0x4, %r12
jmp 0x69a1
xorl %r12d, %r12d
cmpq %r12, %rax
je 0x69e8
movslq (%r14,%rdx,4), %r13
movq (%rcx,%r13,8), %r13
movslq (%r14,%r12,4), %rbp
cmpb $0x1, (%r13,%rbp)
jne 0x69e3
movl %r12d, %r13d
andl $0x1f, %r13d
movl (%r15,%r13,4), %ebp
movl %r12d, %r13d
shrl $0x5, %r13d
orl %ebp, (%r11,%r13,4)
incq %r12
jmp 0x69b4
incq %rdx
addq %rdi, %r9
jmp 0x6987
leaq 0x1afb9(%rip), %r14     # 0x219b0
leaq 0x12e42(%rip), %r11     # 0x19840
leaq 0x1af4b(%rip), %r13     # 0x21950
leaq 0x1ab44(%rip), %rdi     # 0x21550
leaq 0x1accd(%rip), %rsi     # 0x216e0
leaq 0x1ad96(%rip), %rdx     # 0x217b0
leaq 0x1ae5f(%rip), %r8      # 0x21880
leaq 0x11810(%rip), %r9      # 0x18238
xorl %r12d, %r12d
xorl %ecx, %ecx
pushq %r14
pushq %rax
pushq %r10
pushq $0x1f40                 # imm = 0x1F40
pushq %r11
pushq %r13
callq 0xb5e4
addq $0x30, %rsp
movl 0x1aaf6(%rip), %ecx     # 0x21540
xorl %eax, %eax
movslq %ecx, %rsi
movslq %eax, %rdx
cmpq %rsi, %r12
jge 0x6aac
movslq 0x1aae6(%rip), %rsi     # 0x21544
imulq %r12, %rsi
leaq (%r14,%rsi,4), %rsi
movq %rsi, 0x1aadb(%rip)     # 0x21548
addq %rbx, %rdx
xorl %esi, %esi
cmpl %ecx, %esi
jge 0x6aa5
movq 0x1aacb(%rip), %rcx     # 0x21548
movl %esi, %edi
shrl $0x5, %edi
movl %esi, %r8d
andl $0x1f, %r8d
movl (%r15,%r8,4), %r8d
testl %r8d, (%rcx,%rdi,4)
sete %cl
xorb $0x31, %cl
movb %cl, (%rdx,%rsi)
movl 0x1aaa0(%rip), %ecx     # 0x21540
incq %rsi
jmp 0x6a72
addl %esi, %eax
incq %r12
jmp 0x6a4c
movb $0x0, (%rbx,%rdx)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rdi, %r15
leaq 0x1b07f(%rip), %rdi     # 0x21b48
callq 0x23d0
testl %eax, %eax
je 0x6949
movq (%r15), %rax
movq %r15, %rdi
callq *(%rax)
movq %rax, 0x1b05b(%rip)     # 0x21b40
leaq 0x1b05c(%rip), %rdi     # 0x21b48
callq 0x2150
jmp 0x6949
movq %rax, %rbx
leaq 0x1b048(%rip), %rdi     # 0x21b48
callq 0x2140
movq %rbx, %rdi
callq 0x23b0
nop