// File: /workspace/github_c_makefile_star2_O1/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 %r12
pushq %rbx
movq %rdx, %rbx
movq %rsi, %r14
movb 0x1ad6e(%rip), %al      # 0x21b28
testb %al, %al
je 0x6f4d
movslq 0x1a757(%rip), %rax     # 0x21520
testq %rax, %rax
jle 0x6e62
movslq 0x1a74b(%rip), %rcx     # 0x21524
movl 0x1a741(%rip), %edx     # 0x21520
movq 0x1ad3a(%rip), %rsi     # 0x21b20
xorl %edi, %edi
leaq 0x1a741(%rip), %r8      # 0x21530
leaq 0xae4a(%rip), %r9       # 0x11c40
movq %rdi, %r10
imulq %rcx, %r10
leaq (%r8,%r10,4), %r10
movq %r10, 0x1a720(%rip)     # 0x21528
leaq (%r10,%rcx,4), %r11
addq $-0x4, %r11
cmpq %r10, %r11
jb 0x6e22
movl $0x0, (%r11)
addq $-0x4, %r11
jmp 0x6e10
testl %edx, %edx
jle 0x6e5a
xorl %r11d, %r11d
movslq (%r14,%rdi,4), %r15
movq (%rsi,%r15,8), %r15
movslq (%r14,%r11,4), %r12
cmpb $0x1, (%r15,%r12)
jne 0x6e52
movl %r11d, %r15d
andl $0x1f, %r15d
movl (%r9,%r15,4), %ebp
movl %r11d, %r15d
shrl $0x5, %r15d
orl %ebp, (%r10,%r15,4)
incq %r11
cmpq %r11, %rdx
jne 0x6e29
incq %rdi
cmpq %rax, %rdi
jne 0x6df6
movl 0x1a6bb(%rip), %r10d    # 0x21524
leaq 0x1ab20(%rip), %r14     # 0x21990
leaq 0x129a9(%rip), %r11     # 0x19820
leaq 0x1aab2(%rip), %r12     # 0x21930
leaq 0x1a6ab(%rip), %rdi     # 0x21530
leaq 0x1a834(%rip), %rsi     # 0x216c0
leaq 0x1a8fd(%rip), %rdx     # 0x21790
leaq 0x1a9c6(%rip), %r8      # 0x21860
leaq 0x11377(%rip), %r9      # 0x18218
xorl %r15d, %r15d
xorl %ecx, %ecx
pushq %r14
pushq %rax
pushq %r10
pushq $0x1f40                 # imm = 0x1F40
pushq %r11
pushq %r12
callq 0xbd7c
addq $0x30, %rsp
cmpl $0x0, 0x1a65c(%rip)     # 0x21520
jle 0x6f3f
leaq 0xad73(%rip), %rax      # 0x11c40
xorl %ecx, %ecx
movslq 0x1a64e(%rip), %rdx     # 0x21524
imulq %rcx, %rdx
leaq (%r14,%rdx,4), %rdx
movq %rdx, 0x1a643(%rip)     # 0x21528
cmpl $0x0, 0x1a634(%rip)     # 0x21520
jle 0x6f2d
movslq %r15d, %rdx
addq %rbx, %rdx
xorl %esi, %esi
movq 0x1a62b(%rip), %rdi     # 0x21528
movl %esi, %r8d
shrl $0x5, %r8d
movl %esi, %r9d
andl $0x1f, %r9d
movl (%rax,%r9,4), %r9d
testl %r9d, (%rdi,%r8,4)
sete %dil
xorb $0x31, %dil
movb %dil, (%rdx,%rsi)
incq %rsi
cmpl 0x1a5f8(%rip), %esi     # 0x21520
jl 0x6ef6
addl %esi, %r15d
incq %rcx
movslq 0x1a5e9(%rip), %rdx     # 0x21520
cmpq %rdx, %rcx
jl 0x6ecf
movslq %r15d, %r15
movb $0x0, (%rbx,%r15)
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rdi, %r15
leaq 0x1abd1(%rip), %rdi     # 0x21b28
callq 0x2390
testl %eax, %eax
je 0x6dc2
movq (%r15), %rax
movq %r15, %rdi
callq *(%rax)
movq %rax, 0x1abad(%rip)     # 0x21b20
leaq 0x1abae(%rip), %rdi     # 0x21b28
callq 0x2140
jmp 0x6dc2
movq %rax, %rbx
leaq 0x1ab9a(%rip), %rdi     # 0x21b28
callq 0x2130
movq %rbx, %rdi
callq 0x2370
nop