LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/sheneman[P]clearcut/fasta.c
// Function: NJ_is_protein_ambiguity
static inline
int 
NJ_is_protein_ambiguity(char c) {

  int i;
  char up_c;
  
  up_c = toupper(c);

  for(i=0;i<NJ_NUM_PROTEIN_AMBIGUITY_SYMS;i++) {
    if(up_c == NJ_protein_ambiguity_syms[i]) {
      return(1);
    }
  }
  
  return(0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movb %dil, %al
movb %al, -0x5(%rbp)
movsbl -0x5(%rbp), %edi
callq 0x2090
movb %al, -0xd(%rbp)
movl $0x0, -0xc(%rbp)
cmpl $0x6, -0xc(%rbp)
jge 0x7f84
movsbl -0xd(%rbp), %eax
movslq -0xc(%rbp), %rdx
leaq 0x3b4e(%rip), %rcx      # 0xbab4
movsbl (%rcx,%rdx), %ecx
cmpl %ecx, %eax
jne 0x7f77
movl $0x1, -0x4(%rbp)
jmp 0x7f8b
jmp 0x7f79
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x7f51
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/sheneman[P]clearcut/fasta.c
// Function: NJ_taxaname_unique
int
NJ_taxaname_unique(NJ_alignment *alignment) {
  
  long int i, j;
  
  for(i=0;i<alignment->nseq;i++) {
    for(j=i+1;j<alignment->nseq;j++) {
        if(!strcmp(alignment->titles[i], 
		 alignment->titles[j])) {
	fprintf(stderr, "Clearcut: Taxa %ld and %ld (%s) do not have unique taxon labels.\n", 
		i, j, alignment->titles[i]);
	return(0);
      }
    }
  }
  
  return(1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq (%rcx), %rax
jge 0x8064
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq (%rcx), %rax
jge 0x8051
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x20(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0x2140
cmpl $0x0, %eax
jne 0x8041
movq 0x6fe9(%rip), %rax      # 0xeff8
movq (%rax), %rdi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rsi
movq (%rax,%rsi,8), %r8
leaq 0x3a04(%rip), %rsi      # 0xba35
movb $0x0, %al
callq 0x2150
movl $0x0, -0x4(%rbp)
jmp 0x806b
jmp 0x8043
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x7fd1
jmp 0x8053
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x7fb4
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/sheneman[P]clearcut/fasta.c
// Function: NJ_free_alignment
void
NJ_free_alignment(NJ_alignment *alignment) {
  
  long int i;
  
  if(alignment) {

    /* free the allocated titles */
    if(alignment->titles) {
      for(i=0;i<alignment->nseq;i++) {

	if(alignment->titles[i]) {
	  free(alignment->titles[i]);
	}
      }
      
      free(alignment->titles);
    }

    /* free the alignment data */
    if(alignment->data) {
      free(alignment->data);
    }

    /* free the alignment itself */
    free(alignment);
  }

  return;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x811d
movq -0x8(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x80fc
movq $0x0, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq (%rcx), %rax
jge 0x80ef
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x10(%rbp), %rcx
cmpq $0x0, (%rax,%rcx,8)
je 0x80df
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x2030
jmp 0x80e1
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
jmp 0x80aa
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x2030
movq -0x8(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0x8114
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x2030
movq -0x8(%rbp), %rdi
callq 0x2030
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/sheneman[P]clearcut/fasta.c
// Function: NJ_print_alignment
void
NJ_print_alignment(NJ_alignment *alignment) {
  
  long int i, j;
  
  printf("nseq = %ld, length = %ld\n", alignment->nseq, alignment->length);
  
  for(i=0;i<alignment->nseq;i++) {
    
    printf("> %s\n", alignment->titles[i]);

    for(j=0;j<alignment->length;j++) {
      printf("%c", alignment->data[i*alignment->length+j]);
    }

    printf("\n");
  }

  return;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdx
leaq 0x38c6(%rip), %rdi      # 0xba18
movb $0x0, %al
callq 0x20e0
movq $0x0, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq (%rcx), %rax
jge 0x81fe
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
leaq 0x3c08(%rip), %rdi      # 0xbd91
movb $0x0, %al
callq 0x20e0
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x8(%rcx), %rax
jge 0x81df
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
movq -0x8(%rbp), %rdx
imulq 0x8(%rdx), %rcx
addq -0x18(%rbp), %rcx
movsbl (%rax,%rcx), %esi
leaq 0x3868(%rip), %rdi      # 0xba32
movb $0x0, %al
callq 0x20e0
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x8198
leaq 0x3050(%rip), %rdi      # 0xb236
movb $0x0, %al
callq 0x20e0
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
jmp 0x8161
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/sheneman[P]clearcut/fasta.c
// Function: NJ_print_titles
void
NJ_print_titles(NJ_alignment *alignment) {

  int i;

  for(i=0;i<alignment->nseq;i++) {
    printf("%d: %s\n", i, alignment->titles[i]);
  }

  return;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movl $0x0, -0xc(%rbp)
movslq -0xc(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq (%rcx), %rax
jge 0x825c
movl -0xc(%rbp), %esi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0xc(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x382d(%rip), %rdi      # 0xba77
movb $0x0, %al
callq 0x20e0
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x8223
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/sheneman[P]clearcut/prng.c
// Function: NJ_genrand_int31_top
long int
NJ_genrand_int31_top(long int top) {

  long int overflow;
  long int r;
  long int retval;

  if(top <= 0) {
    return(0); 
  } else {
    overflow = (NJ_RAND_MAX / top) * top;
  }
  
  while(1) {
    r = genrand_int31();
    if(r < overflow) {
      break;
    }
  }
  
  retval = r % top;
  
  return(retval);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jg 0x945d
movq $0x0, -0x8(%rbp)
jmp 0x94a2
movl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
xorl %ecx, %ecx
movl %ecx, %edx
divq -0x10(%rbp)
imulq -0x10(%rbp), %rax
movq %rax, -0x18(%rbp)
jmp 0x9475
callq 0x92d0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
cmpq -0x18(%rbp), %rax
jge 0x948a
jmp 0x948c
jmp 0x9475
movq -0x20(%rbp), %rax
cqto
idivq -0x10(%rbp)
movq %rdx, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/sheneman[P]clearcut/getopt_long.c
// Function: is_option
static int
is_option(char *arg)
{
    if (arg[0] == '-') {
        switch (arg[1]) {
        case 0:                 /* just "-" */
            return 0;
        case '-':               /* long option (include just "--")*/
            return 2;
        default:                /* short option */
            return 1;
        }
    }
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
jne 0x9baa
movq -0x10(%rbp), %rax
movsbl 0x1(%rax), %eax
movl %eax, -0x14(%rbp)
testl %eax, %eax
je 0x9b8f
jmp 0x9b85
movl -0x14(%rbp), %eax
subl $0x2d, %eax
je 0x9b98
jmp 0x9ba1
movl $0x0, -0x4(%rbp)
jmp 0x9bb1
movl $0x2, -0x4(%rbp)
jmp 0x9bb1
movl $0x1, -0x4(%rbp)
jmp 0x9bb1
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/sheneman[P]clearcut/getopt_long.c
// Function: insert_argv
static int
insert_argv(char **argv, int src, int dest)
{
    int i;
    char *tmp = argv[src];

    if (src > dest) {
        for (i = src; i > dest; i--)
            argv[i] = argv[i-1];
    }
    if (src < dest) {
        for (i = src; i < dest; i++)
            argv[i] = argv[i+1];
    }

    argv[dest] = tmp;

    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movq -0x8(%rbp), %rax
movslq -0xc(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x20(%rbp)
movl -0xc(%rbp), %eax
cmpl -0x10(%rbp), %eax
jle 0x9c1e
movl -0xc(%rbp), %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
cmpl -0x10(%rbp), %eax
jle 0x9c1c
movq -0x8(%rbp), %rax
movl -0x14(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdx
movq -0x8(%rbp), %rax
movslq -0x14(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movl -0x14(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x9bec
jmp 0x9c1e
movl -0xc(%rbp), %eax
cmpl -0x10(%rbp), %eax
jge 0x9c5e
movl -0xc(%rbp), %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
cmpl -0x10(%rbp), %eax
jge 0x9c5c
movq -0x8(%rbp), %rax
movl -0x14(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdx
movq -0x8(%rbp), %rax
movslq -0x14(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x9c2c
jmp 0x9c5e
movq -0x20(%rbp), %rdx
movq -0x8(%rbp), %rax
movslq -0x10(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
xorl %eax, %eax
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/sheneman[P]clearcut/getopt_long.c
// Function: has_argument
static int
has_argument(char *arg,
             const char *shortopts,
             struct option *longopts)
{
    int i, n;

    switch (is_option(arg)) {
    case 0:                     /* no option */
        return -1;
    case 1:
        /* short option */
        n = -1;
        for (i = 1; arg[i]; i++) {
            n = has_argument_short(arg+i, shortopts);
            if (n == 0 && arg[i+1]) continue;
            if (n == 3 && arg[i+2]) { i++; continue; }
            break;
        }
        return n;
    case 2:
        /* long option */
        return has_argument_long(arg+2, longopts);
        break;
    default:
        assert(0);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rdi
callq 0x9b60
movl %eax, %ecx
movl %ecx, -0x2c(%rbp)
testl %eax, %eax
je 0x9cc3
jmp 0x9ca8
movl -0x2c(%rbp), %eax
subl $0x1, %eax
je 0x9ccf
jmp 0x9cb2
movl -0x2c(%rbp), %eax
subl $0x2, %eax
je 0x9d5c
jmp 0x9d72
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x9d91
movl $0xffffffff, -0x28(%rbp) # imm = 0xFFFFFFFF
movl $0x1, -0x24(%rbp)
movq -0x10(%rbp), %rax
movslq -0x24(%rbp), %rcx
cmpb $0x0, (%rax,%rcx)
je 0x9d54
movq -0x10(%rbp), %rdi
movslq -0x24(%rbp), %rax
addq %rax, %rdi
movq -0x18(%rbp), %rsi
callq 0x9da0
movl %eax, -0x28(%rbp)
cmpl $0x0, -0x28(%rbp)
jne 0x9d20
movq -0x10(%rbp), %rax
movl -0x24(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
je 0x9d20
jmp 0x9d49
cmpl $0x3, -0x28(%rbp)
jne 0x9d47
movq -0x10(%rbp), %rax
movl -0x24(%rbp), %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
je 0x9d47
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x9d49
jmp 0x9d54
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x9cdd
movl -0x28(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x9d91
movq -0x10(%rbp), %rdi
addq $0x2, %rdi
movq -0x20(%rbp), %rsi
callq 0xa090
movl %eax, -0x4(%rbp)
jmp 0x9d91
leaq 0x2c6a(%rip), %rdi      # 0xc9e3
leaq 0x2c65(%rip), %rsi      # 0xc9e5
movl $0x109, %edx            # imm = 0x109
leaq 0x2ced(%rip), %rcx      # 0xca79
callq 0x2100
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/sheneman[P]clearcut/getopt_long.c
// Function: search_longopt
static int
search_longopt(char *arg, struct option *longopts)
{
    int i, found = -1;
    int len;
    for (len = 0; arg[len] && arg[len] != '='; len++)
        ;

    for (i = 0; longopts[i].name; i++) {
        if (strncmp(arg, longopts[i].name, len) == 0) {
            if (found != -1)
                return -1;      /* found some candidate */
            found = i;
        }
    }
    return found;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movl $0xffffffff, -0x20(%rbp) # imm = 0xFFFFFFFF
movl $0x0, -0x24(%rbp)
movq -0x10(%rbp), %rax
movslq -0x24(%rbp), %rcx
movsbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x25(%rbp)
je 0xa009
movq -0x10(%rbp), %rax
movslq -0x24(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x3d, %eax
setne %al
movb %al, -0x25(%rbp)
movb -0x25(%rbp), %al
testb $0x1, %al
jne 0xa012
jmp 0xa01f
jmp 0xa014
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x9fde
movl $0x0, -0x1c(%rbp)
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
je 0xa081
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movq (%rax), %rsi
movslq -0x24(%rbp), %rdx
callq 0x2060
cmpl $0x0, %eax
jne 0xa074
cmpl $-0x1, -0x20(%rbp)
je 0xa06e
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0xa087
movl -0x1c(%rbp), %eax
movl %eax, -0x20(%rbp)
jmp 0xa076
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0xa026
movl -0x20(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/sheneman[P]clearcut/getopt_long.c
// Function: has_argument_long
static int
has_argument_long(char *arg, struct option *longopts)
{
    int i;

    i = search_longopt(arg, longopts);
    if (i == -1) {
        /* Invalid option */
        return -1;
    }
    else {
        int len = strlen(arg);
        char *p = strchr(arg, '=');
        if (p) {
            len = p - arg;
        }

        switch (longopts[i].has_arg) {
        case no_argument:
            return 0;
        case required_argument:
            if (arg[len] == '=')
                return 1;
            else
                return 2;
        case optional_argument:
            if (arg[len] == '=')
                return 1;
            else
                return 0;
        default:
            assert(0);
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x9fc0
movl %eax, -0x1c(%rbp)
cmpl $-0x1, -0x1c(%rbp)
jne 0xa0c2
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0xa190
movq -0x10(%rbp), %rdi
callq 0x20c0
movl %eax, -0x20(%rbp)
movq -0x10(%rbp), %rdi
movl $0x3d, %esi
callq 0x20d0
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0xa0f5
movq -0x28(%rbp), %rax
movq -0x10(%rbp), %rcx
subq %rcx, %rax
movl %eax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
shlq $0x5, %rcx
movl 0x8(%rax,%rcx), %eax
movl %eax, -0x2c(%rbp)
testl %eax, %eax
je 0xa122
jmp 0xa10e
movl -0x2c(%rbp), %eax
subl $0x1, %eax
je 0xa12b
jmp 0xa118
movl -0x2c(%rbp), %eax
subl $0x2, %eax
je 0xa14e
jmp 0xa171
movl $0x0, -0x4(%rbp)
jmp 0xa190
movq -0x10(%rbp), %rax
movslq -0x20(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x3d, %eax
jne 0xa145
movl $0x1, -0x4(%rbp)
jmp 0xa190
movl $0x2, -0x4(%rbp)
jmp 0xa190
movq -0x10(%rbp), %rax
movslq -0x20(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x3d, %eax
jne 0xa168
movl $0x1, -0x4(%rbp)
jmp 0xa190
movl $0x0, -0x4(%rbp)
jmp 0xa190
leaq 0x286b(%rip), %rdi      # 0xc9e3
leaq 0x2866(%rip), %rsi      # 0xc9e5
movl $0xe4, %edx
leaq 0x2926(%rip), %rcx      # 0xcab1
callq 0x2100
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/xoico/../lib/bcore/bcore_spect_inst.h
// Function: bcore_inst_default_copy_typed
static inline er_t bcore_inst_default_copy_typed( const bcore_inst_s* p, bcore_inst* dst, tp_t src_type, vc_t src )
{
    if( dst != src )
    {
        if( p->header.o_type == src_type )
        {
            p->copy( p, dst, src );
            return 0;
        }
        else
        {
            return p->copy_typed( p, dst, src_type, src );
        }
    }
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq -0x18(%rbp), %rax
cmpq -0x28(%rbp), %rax
je 0x4706
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
cmpq -0x20(%rbp), %rax
jne 0x46e3
movq -0x10(%rbp), %rax
movq 0x90(%rax), %rax
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq *%rax
movq $0x0, -0x8(%rbp)
jmp 0x470e
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rax
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
movq -0x28(%rbp), %rcx
callq *%rax
movq %rax, -0x8(%rbp)
jmp 0x470e
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_parse_fa
er_t xoico_parse_fa( xoico* o, const xoico_host* host, sc_t format, ... )
{
    // xoico.x:125:1
    BLM_INIT_LEVEL(0);
    va_list args;
    va_start( args, format );
    er_t ret = xoico_a_parse(o,host, ((x_source*)BLM_LEVEL_A_PUSH(0,x_source_create_from_fv(format, args ))) );
    va_end( args );
    BLM_RETURNV(er_t, ret)
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x150, %rsp            # imm = 0x150
testb %al, %al
je 0x4e87
movaps %xmm0, -0x100(%rbp)
movaps %xmm1, -0xf0(%rbp)
movaps %xmm2, -0xe0(%rbp)
movaps %xmm3, -0xd0(%rbp)
movaps %xmm4, -0xc0(%rbp)
movaps %xmm5, -0xb0(%rbp)
movaps %xmm6, -0xa0(%rbp)
movaps %xmm7, -0x90(%rbp)
movq %r9, -0x108(%rbp)
movq %r8, -0x110(%rbp)
movq %rcx, -0x118(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
leaq 0x1ad481(%rip), %rax    # 0x1b2330
movq (%rax), %rax
movq %rax, -0x20(%rbp)
leaq -0x50(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0xbfe80
movq -0x58(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq $0x0, 0x10(%rax)
leaq -0x130(%rbp), %rax
movq %rax, -0x60(%rbp)
leaq 0x10(%rbp), %rax
movq %rax, -0x68(%rbp)
movl $0x30, -0x6c(%rbp)
movl $0x18, -0x70(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x140(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x138(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x148(%rbp)
movq -0x18(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x4f80
movq -0x148(%rbp), %rdi
movq %rax, %rdx
xorl %eax, %eax
movl %eax, %esi
callq 0xc0500
movq -0x140(%rbp), %rdi
movq -0x138(%rbp), %rsi
movq %rax, %rdx
callq 0x4de0
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x58(%rbp), %rdi
callq 0xc0720
movq -0x80(%rbp), %rax
addq $0x150, %rsp            # imm = 0x150
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_host_parse_name_tp_default
er_t xoico_host_parse_name_tp_default( const xoico_host* o, x_source* source, tp_t* name )
{
    // xoico_host.x:24:1
    BLM_INIT_LEVEL(0);
    st_s* s = ((st_s*)BLM_LEVEL_T_PUSH(0,st_s,st_s_create()));
    BLM_TRY(xoico_host_a_parse_name_st(o,source, s ))
    if( s->size == 0 ) BLM_RETURNV(er_t, x_source_parse_error_fa(source,"Identifier expected." ))
    tp_t t = xoico_compiler_s_entypeof(xoico_host_a_compiler(o),s->sc );
    if( name ) (*(name)) = t;
    BLM_RETURNV(er_t, 0)
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
leaq 0x1ad362(%rip), %rax    # 0x1b2330
movq (%rax), %rax
movq %rax, -0x28(%rbp)
leaq -0x58(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0xbfe80
movq -0x60(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x10(%rax)
movq -0x28(%rbp), %rax
movq %rax, -0x98(%rbp)
movb $0x0, %al
callq 0xff2e0
movq -0x98(%rbp), %rdi
movq %rax, %rcx
xorl %eax, %eax
movl %eax, %esi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
callq 0xc01a0
movq %rax, -0x68(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x68(%rbp), %rdx
callq 0x5100
movq %rax, -0x70(%rbp)
cmpq $0x0, -0x70(%rbp)
je 0x506b
movq -0x70(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x60(%rbp), %rdi
callq 0xc0720
movq -0x78(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x50f3
movq -0x68(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x509f
movq -0x18(%rbp), %rdi
leaq 0x12e4a1(%rip), %rsi    # 0x133522
movb $0x0, %al
callq 0x4c80
movq %rax, -0x80(%rbp)
movq -0x60(%rbp), %rdi
callq 0xc0720
movq -0x80(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x50f3
movq -0x10(%rbp), %rdi
callq 0x5170
movq %rax, %rdi
movq -0x68(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x5140
movq %rax, -0x88(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x50d4
movq -0x88(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
movq $0x0, -0x90(%rbp)
movq -0x60(%rbp), %rdi
callq 0xc0720
movq -0x90(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0xa0, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_typespec_s_convert_transient_types
er_t xoico_typespec_s_convert_transient_types( xoico_typespec_s* o, const xoico_host* host, const xoico_transient_map_s* map )
{
    // xoico_typespec.x:78:5
    
    if( o->transient )
    {
        tp_t type = xoico_transient_map_s_get(map,o->transient->class );
        if( type ) o->type = type;
    }
    return  0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0x5e3d
movq -0x18(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x5e50
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x5e3b
movq -0x20(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x8(%rax)
jmp 0x5e3d
xorl %eax, %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_typespec_s_reset
void xoico_typespec_s_reset( xoico_typespec_s* o )
{
    // xoico_typespec.x:93:5
    
    o->access_class = 0;
    xoico_typespec_transient_s_attach( &(o->transient ),  NULL);
    o->type = 0;
    o->indirection = 0;
    o->flag_static   = false;
    o->flag_volatile = false;
    o->flag_restrict = false;
    o->flag_aware    = false;
    o->flag_obliv    = false;
    o->flag_scope    = false;
    o->flag_addressable = true;  // object can have a pointer ('false' for objects returned by a function)
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq $0x0, 0x10(%rax)
movq -0x8(%rbp), %rdi
addq $0x18, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x5f20
movq -0x8(%rbp), %rax
movq $0x0, 0x8(%rax)
movq -0x8(%rbp), %rax
movq $0x0, 0x20(%rax)
movq -0x8(%rbp), %rax
movb $0x0, 0x28(%rax)
movq -0x8(%rbp), %rax
movb $0x0, 0x29(%rax)
movq -0x8(%rbp), %rax
movb $0x0, 0x2a(%rax)
movq -0x8(%rbp), %rax
movb $0x0, 0x2c(%rax)
movq -0x8(%rbp), %rax
movb $0x0, 0x2b(%rax)
movq -0x8(%rbp), %rax
movb $0x0, 0x2d(%rax)
movq -0x8(%rbp), %rax
movb $0x1, 0x2e(%rax)
addq $0x10, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_typespec_s_get_hash
tp_t xoico_typespec_s_get_hash( const xoico_typespec_s* o )
{
    // xoico_typespec.x:200:1
    
    tp_t hash = bcore_tp_fold_tp( bcore_tp_init(), o->_ );
    hash = bcore_tp_fold_tp( hash, o->type );
    hash = bcore_tp_fold_tp( hash, o->access_class );
    hash = bcore_tp_fold_tp( hash, o->transient ? xoico_typespec_transient_s_get_hash(o->transient) : 0 );
    hash = bcore_tp_fold_bl( hash, o->flag_static );
    hash = bcore_tp_fold_bl( hash, o->flag_volatile );
    hash = bcore_tp_fold_bl( hash, o->flag_restrict );
    hash = bcore_tp_fold_bl( hash, o->flag_scope );
    hash = bcore_tp_fold_u3( hash, o->indirection );
    return  hash;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
callq 0x40f10
movq %rax, %rdi
movq -0x8(%rbp), %rax
movq (%rax), %rsi
callq 0x5640
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x5640
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rsi
callq 0x5640
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0x6804
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x5c30
movq %rax, -0x20(%rbp)
jmp 0x680c
xorl %eax, %eax
movq %rax, -0x20(%rbp)
jmp 0x680c
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x5640
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movb 0x28(%rax), %al
andb $0x1, %al
movzbl %al, %esi
callq 0x68a0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movb 0x29(%rax), %al
andb $0x1, %al
movzbl %al, %esi
callq 0x68a0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movb 0x2a(%rax), %al
andb $0x1, %al
movzbl %al, %esi
callq 0x68a0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movb 0x2d(%rax), %al
andb $0x1, %al
movzbl %al, %esi
callq 0x68a0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rsi
callq 0x68e0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_typespec_s_is_ptr_type
bl_t xoico_typespec_s_is_ptr_type( const xoico_typespec_s* o )
{
    // xoico_typespec.x:423:1
    
    return  o->type == TYPEOF_vd_t ||
           o->type == TYPEOF_vc_t ||
           o->type == TYPEOF_sc_t ||
           o->type == TYPEOF_sd_t;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rcx
movb $0x1, %al
movabsq $0x6f0b060106a30da4, %rdx # imm = 0x6F0B060106A30DA4
cmpq %rdx, 0x8(%rcx)
movb %al, -0x9(%rbp)
je 0x73eb
movq -0x8(%rbp), %rcx
movb $0x1, %al
movabsq $0x54de8100f7c1cbe5, %rdx # imm = 0x54DE8100F7C1CBE5
cmpq %rdx, 0x8(%rcx)
movb %al, -0x9(%rbp)
je 0x73eb
movq -0x8(%rbp), %rcx
movb $0x1, %al
movabsq $-0x84b14e74a9e1ff0, %rdx # imm = 0xF7B4EB18B561E010
cmpq %rdx, 0x8(%rcx)
movb %al, -0x9(%rbp)
je 0x73eb
movq -0x8(%rbp), %rax
movabsq $0x230abe18cdeefc99, %rcx # imm = 0x230ABE18CDEEFC99
cmpq %rcx, 0x8(%rax)
sete %al
movb %al, -0x9(%rbp)
movb -0x9(%rbp), %al
andb $0x1, %al
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_transient_map_s_create_key_arr
bcore_arr_tp_s* xoico_transient_map_s_create_key_arr( const xoico_transient_map_s* o )
{
    // xoico_transient_map.x:33:5
    
    bcore_arr_tp_s* arr_tp = bcore_arr_tp_s_create();
    sz_t size = bcore_hmap_tptp_s_size(&(o->map));
    for(sz_t i = 0; i < size; i++ ) if( bcore_hmap_tptp_s_idx_key(&(o->map),i ) ) bcore_arr_tp_s_push(arr_tp,bcore_hmap_tptp_s_idx_key(&(o->map),i ) );
    return  arr_tp;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movb $0x0, %al
callq 0x945a0
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
addq $0x8, %rdi
callq 0xaf860
movq %rax, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
movq -0x20(%rbp), %rax
cmpq -0x18(%rbp), %rax
jge 0x75b6
movq -0x8(%rbp), %rdi
addq $0x8, %rdi
movq -0x20(%rbp), %rsi
callq 0xaf880
cmpq $0x0, %rax
je 0x75a6
movq -0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rdi
addq $0x8, %rdi
movq -0x20(%rbp), %rsi
callq 0xaf880
movq -0x28(%rbp), %rdi
movq %rax, %rsi
callq 0x948a0
jmp 0x75a8
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x7560
movq -0x10(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_transient_map_s_update
xoico_transient_map_s* xoico_transient_map_s_update( xoico_transient_map_s* o, const xoico_transient_map_s* src )
{
    // xoico_transient_map.x:44:1
    
    for(sz_t i = 0; i < bcore_hmap_tptp_s_size(&(src->map)); i++ )
    {
        tp_t key = bcore_hmap_tptp_s_idx_key(&(src->map),i );
        if( key ) bcore_hmap_tptp_s_set(&(o->map),key, bcore_hmap_tptp_s_idx_val(&(src->map),i ) );
    }
    return o;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rdi
addq $0x8, %rdi
callq 0xaf860
movq %rax, %rcx
movq -0x28(%rbp), %rax
cmpq %rcx, %rax
jae 0x765d
movq -0x10(%rbp), %rdi
addq $0x8, %rdi
movq -0x18(%rbp), %rsi
callq 0xaf880
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x764a
movq -0x8(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x38(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rdi
addq $0x8, %rdi
movq -0x18(%rbp), %rsi
callq 0xaf8b0
movq -0x38(%rbp), %rdi
movq -0x30(%rbp), %rsi
movq %rax, %rdx
callq 0xaf440
jmp 0x764c
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x75d8
movq -0x8(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_arg_s_get_hash
tp_t xoico_arg_s_get_hash( const xoico_arg_s* o )
{
    // xoico_arg.x:64:1
    
    tp_t hash = bcore_tp_fold_tp( bcore_tp_init(), o->_ );
    hash = bcore_tp_fold_tp( hash, xoico_typespec_s_get_hash(&(o->typespec)) );
    hash = bcore_tp_fold_tp( hash, o->name );
    return  hash;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
callq 0x40f10
movq %rax, %rdi
movq -0x8(%rbp), %rax
movq (%rax), %rsi
callq 0x5640
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
addq $0x20, %rdi
callq 0x6790
movq -0x18(%rbp), %rdi
movq %rax, %rsi
callq 0x5640
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x50(%rax), %rsi
callq 0x5640
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_arg_s_expand
er_t xoico_arg_s_expand( const xoico_arg_s* o, const xoico_host* host, x_sink* sink )
{
    // xoico_arg.x:86:1
    
    BLM_TRY(xoico_typespec_s_expand(&(o->typespec),host, sink ) )
    if( o->name )
    {
        x_sink_push_fa(sink," " );
        BLM_TRY(xoico_arg_s_expand_name(o,host, sink ))
    }
    return  0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rdi
addq $0x20, %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x6920
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x7ec5
movq -0x28(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x1aa47d(%rip), %rax    # 0x1b2330
movq (%rax), %rdi
callq 0xc0720
movq -0x30(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x7f29
movq -0x10(%rbp), %rax
cmpq $0x0, 0x50(%rax)
je 0x7f21
movq -0x20(%rbp), %rdi
leaq 0x145ca6(%rip), %rsi    # 0x14db81
movb $0x0, %al
callq 0x56e0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x7f40
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
je 0x7f1f
movq -0x38(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq 0x1aa423(%rip), %rax    # 0x1b2330
movq (%rax), %rdi
callq 0xc0720
movq -0x40(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x7f29
jmp 0x7f21
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_arg_s_expand_x
er_t xoico_arg_s_expand_x( const xoico_arg_s* o, const xoico_host* host, x_sink* sink )
{
    // xoico_arg.x:99:1
    
    BLM_TRY(xoico_typespec_s_expand_x(&(o->typespec),host, sink ) )
    if( o->name )
    {
        x_sink_push_fa(sink," " );
        BLM_TRY(xoico_arg_s_expand_name(o,host, sink ))
    }
    return  0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rdi
addq $0x20, %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x6ba0
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x8015
movq -0x28(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x1aa32d(%rip), %rax    # 0x1b2330
movq (%rax), %rdi
callq 0xc0720
movq -0x30(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x8079
movq -0x10(%rbp), %rax
cmpq $0x0, 0x50(%rax)
je 0x8071
movq -0x20(%rbp), %rdi
leaq 0x145b56(%rip), %rsi    # 0x14db81
movb $0x0, %al
callq 0x56e0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x7f40
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
je 0x806f
movq -0x38(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq 0x1aa2d3(%rip), %rax    # 0x1b2330
movq (%rax), %rdi
callq 0xc0720
movq -0x40(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x8079
jmp 0x8071
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_args_s_append
er_t xoico_args_s_append( xoico_args_s* o, const xoico_host* host, x_source* source )
{
    // xoico_args.x:33:1
    BLM_INIT_LEVEL(0);
    bl_t first = true;
    while( !x_source_parse_bl(source," #=?')' " ) ) // args follow
    {
        if( xoico_args_s_is_variadic(o) ) BLM_RETURNV(er_t, x_source_parse_error_fa(source,"Cannot append to variadic argument list." ))
        if( !first ) BLM_TRY(xoico_parse_f(source, " , " ))
        xoico_arg_s* arg = ((xoico_arg_s*)BLM_LEVEL_T_PUSH(0,xoico_arg_s,xoico_arg_s_create()));
        BLM_TRY(xoico_arg_s_parse(arg,host, source ))
        x_array_push_d(((x_array*)(o)),((x_inst*)(((xoico_arg_s*)bcore_fork(arg)) )));
        first = false;
    }
    BLM_RETURNV(er_t, 0)
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
leaq 0x1a9f42(%rip), %rax    # 0x1b2330
movq (%rax), %rax
movq %rax, -0x28(%rbp)
leaq -0x58(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0xbfe80
movq -0x60(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x10(%rax)
movb $0x1, -0x61(%rbp)
movq -0x20(%rbp), %rdi
leaq 0x12b3a8(%rip), %rsi    # 0x1337d5
callq 0x6700
xorb $-0x1, %al
testb $0x1, %al
jne 0x843d
jmp 0x8565
movq -0x10(%rbp), %rdi
callq 0x85a0
testb $0x1, %al
jne 0x844c
jmp 0x8478
movq -0x20(%rbp), %rdi
leaq 0x12b387(%rip), %rsi    # 0x1337de
movb $0x0, %al
callq 0x4c80
movq %rax, -0x70(%rbp)
movq -0x60(%rbp), %rdi
callq 0xc0720
movq -0x70(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x8584
testb $0x1, -0x61(%rbp)
jne 0x84b9
movq -0x20(%rbp), %rdi
leaq 0x12b22c(%rip), %rsi    # 0x1336b5
callq 0x49f0
movq %rax, -0x78(%rbp)
cmpq $0x0, -0x78(%rbp)
je 0x84b7
movq -0x78(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x60(%rbp), %rdi
callq 0xc0720
movq -0x80(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x8584
jmp 0x84b9
movq -0x28(%rbp), %rax
movq %rax, -0xa8(%rbp)
callq 0x7a10
movq -0xa8(%rbp), %rdi
movq %rax, %rcx
xorl %eax, %eax
movl %eax, %esi
movabsq $-0x21883bf5398e4338, %rdx # imm = 0xDE77C40AC671BCC8
callq 0xc01a0
movq %rax, -0x88(%rbp)
movq -0x88(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x7aa0
movq %rax, -0x90(%rbp)
cmpq $0x0, -0x90(%rbp)
je 0x8536
movq -0x90(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x60(%rbp), %rdi
callq 0xc0720
movq -0x98(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x8584
movq -0x10(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq -0x88(%rbp), %rdi
callq 0x9d3d0
movq -0xb0(%rbp), %rdi
movq %rax, %rsi
callq 0x85f0
movb $0x0, -0x61(%rbp)
jmp 0x8422
movq $0x0, -0xa0(%rbp)
movq -0x60(%rbp), %rdi
callq 0xc0720
movq -0xa0(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0xb0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_args_s_expand
er_t xoico_args_s_expand( const xoico_args_s* o, const xoico_host* host, bl_t first, x_sink* sink )
{
    // xoico_args.x:66:1
    
    {const xoico_args_s* __a=o ;if(__a)for(sz_t __i=0;__i<__a->size;__i++){xoico_arg_s* arg=__a->data[__i];
    {
        if( !first ) x_sink_push_fa(sink,", " );
        first = false;
        BLM_TRY(xoico_arg_s_expand(arg,host, sink ))
    }
    }}return  0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movb %dl, %al
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
andb $0x1, %al
movb %al, -0x19(%rbp)
movq %rcx, -0x28(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
je 0x887a
movq $0x0, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq -0x30(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jae 0x8878
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x40(%rbp)
testb $0x1, -0x19(%rbp)
jne 0x8824
movq -0x28(%rbp), %rdi
leaq 0x12ae99(%rip), %rsi    # 0x1336b6
movb $0x0, %al
callq 0x56e0
movb $0x0, -0x19(%rbp)
movq -0x40(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0x7e70
movq %rax, -0x48(%rbp)
cmpq $0x0, -0x48(%rbp)
je 0x8865
movq -0x48(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq 0x1a9add(%rip), %rax    # 0x1b2330
movq (%rax), %rdi
callq 0xc0720
movq -0x50(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x8882
jmp 0x8867
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0x87e6
jmp 0x887a
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_args_s_expand_x
er_t xoico_args_s_expand_x( const xoico_args_s* o, const xoico_host* host, bl_t first, x_sink* sink )
{
    // xoico_args.x:79:1
    
    {const xoico_args_s* __a=o ;if(__a)for(sz_t __i=0;__i<__a->size;__i++){xoico_arg_s* arg=__a->data[__i];
    {
        if( !first ) x_sink_push_fa(sink,", " );
        first = false;
        BLM_TRY(xoico_arg_s_expand_x(arg,host, sink ))
    }
    }}return  0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movb %dl, %al
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
andb $0x1, %al
movb %al, -0x19(%rbp)
movq %rcx, -0x28(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
je 0x895a
movq $0x0, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq -0x30(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jae 0x8958
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x40(%rbp)
testb $0x1, -0x19(%rbp)
jne 0x8904
movq -0x28(%rbp), %rdi
leaq 0x12adb9(%rip), %rsi    # 0x1336b6
movb $0x0, %al
callq 0x56e0
movb $0x0, -0x19(%rbp)
movq -0x40(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0x7fc0
movq %rax, -0x48(%rbp)
cmpq $0x0, -0x48(%rbp)
je 0x8945
movq -0x48(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq 0x1a99fd(%rip), %rax    # 0x1b2330
movq (%rax), %rdi
callq 0xc0720
movq -0x50(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x8962
jmp 0x8947
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0x88c6
jmp 0x895a
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_args_s_expand_name
er_t xoico_args_s_expand_name( const xoico_args_s* o, const xoico_host* host, bl_t first, x_sink* sink )
{
    // xoico_args.x:92:1
    
    {const xoico_args_s* __a=o ;if(__a)for(sz_t __i=0;__i<__a->size;__i++){xoico_arg_s* arg=__a->data[__i];
    {
        if( !first ) x_sink_push_fa(sink,", " );
        first = false;
        BLM_TRY(xoico_arg_s_expand_name(arg,host, sink ))
    }
    }}return  0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movb %dl, %al
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
andb $0x1, %al
movb %al, -0x19(%rbp)
movq %rcx, -0x28(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
je 0x8a3a
movq $0x0, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq -0x30(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jae 0x8a38
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x40(%rbp)
testb $0x1, -0x19(%rbp)
jne 0x89e4
movq -0x28(%rbp), %rdi
leaq 0x12acd9(%rip), %rsi    # 0x1336b6
movb $0x0, %al
callq 0x56e0
movb $0x0, -0x19(%rbp)
movq -0x40(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0x7f40
movq %rax, -0x48(%rbp)
cmpq $0x0, -0x48(%rbp)
je 0x8a25
movq -0x48(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq 0x1a991d(%rip), %rax    # 0x1b2330
movq (%rax), %rdi
callq 0xc0720
movq -0x50(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x8a42
jmp 0x8a27
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0x89a6
jmp 0x8a3a
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_signature_s_convert_transient_types
er_t xoico_signature_s_convert_transient_types( xoico_signature_s* o, const xoico_host* host, const xoico_transient_map_s* map )
{
    // xoico_signature.x:45:5
    
    if( o->arg_o )
    {
        BLM_TRY(xoico_arg_s_convert_transient_types(o->arg_o,host, map ))
        if
        (
            o->arg_o->typespec.transient &&
            o->typespec_ret.transient &&
            o->arg_o->typespec.transient->class == o->typespec_ret.transient->class
        )
        {
            o->typespec_ret.type = xoico_host_a_obj_type(host);
        }
    }
    
    BLM_TRY(xoico_args_s_convert_transient_types(&(o->args),host, map ))
    BLM_TRY(xoico_typespec_s_convert_transient_types(&(o->typespec_ret),host, map ))
    return   0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x50(%rax)
je 0x8d55
movq -0x10(%rbp), %rax
movq 0x50(%rax), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x8780
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x8d07
movq -0x28(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x1a963e(%rip), %rax    # 0x1b2330
movq (%rax), %rdi
callq 0xc0720
movq -0x30(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x8ddf
movq -0x10(%rbp), %rax
movq 0x50(%rax), %rax
cmpq $0x0, 0x38(%rax)
je 0x8d53
movq -0x10(%rbp), %rax
cmpq $0x0, 0x38(%rax)
je 0x8d53
movq -0x10(%rbp), %rax
movq 0x50(%rax), %rax
movq 0x38(%rax), %rax
movq 0x8(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x38(%rcx), %rcx
cmpq 0x8(%rcx), %rax
jne 0x8d53
movq -0x18(%rbp), %rdi
callq 0x6b70
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x28(%rax)
jmp 0x8d55
movq -0x10(%rbp), %rdi
addq $0x58, %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x86d0
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
je 0x8d96
movq -0x38(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq 0x1a95ac(%rip), %rax    # 0x1b2330
movq (%rax), %rdi
callq 0xc0720
movq -0x40(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x8ddf
movq -0x10(%rbp), %rdi
addq $0x20, %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x5df0
movq %rax, -0x48(%rbp)
cmpq $0x0, -0x48(%rbp)
je 0x8dd7
movq -0x48(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq 0x1a956b(%rip), %rax    # 0x1b2330
movq (%rax), %rdi
callq 0xc0720
movq -0x50(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x8ddf
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_signature_s_relent
er_t xoico_signature_s_relent( xoico_signature_s* o, const xoico_host* host, tp_t tp_obj_type )
{
    // xoico_signature.x:68:5
    
    if( o->arg_o ) BLM_TRY(xoico_arg_s_relent(o->arg_o,host, tp_obj_type ))
    BLM_TRY(xoico_args_s_relent(&(o->args),host, tp_obj_type ))
    BLM_TRY(xoico_typespec_s_relent(&(o->typespec_ret),host, tp_obj_type ))
    return  0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x50(%rax)
je 0x8e55
movq -0x10(%rbp), %rax
movq 0x50(%rax), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x7e40
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x8e53
movq -0x28(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x1a94f2(%rip), %rax    # 0x1b2330
movq (%rax), %rdi
callq 0xc0720
movq -0x30(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x8edf
jmp 0x8e55
movq -0x10(%rbp), %rdi
addq $0x58, %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x8620
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
je 0x8e96
movq -0x38(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq 0x1a94ac(%rip), %rax    # 0x1b2330
movq (%rax), %rdi
callq 0xc0720
movq -0x40(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x8edf
movq -0x10(%rbp), %rdi
addq $0x20, %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x5db0
movq %rax, -0x48(%rbp)
cmpq $0x0, -0x48(%rbp)
je 0x8ed7
movq -0x48(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq 0x1a946b(%rip), %rax    # 0x1b2330
movq (%rax), %rdi
callq 0xc0720
movq -0x50(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x8edf
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_signature_s_expand_ret_x
er_t xoico_signature_s_expand_ret_x( const xoico_signature_s* o, const xoico_host* host, x_sink* sink )
{
    // xoico_signature.x:92:5
    
    if( o->typespec_ret.transient && o->typespec_ret.transient->cast_to_var )
    {
        tp_t var_name = o->typespec_ret.transient->cast_to_var;
        x_sink_push_fa(sink,"#<sc_t> ", xoico_host_a_nameof(host,var_name ) );
    }
    else
    {
        BLM_TRY(xoico_typespec_s_expand_x(&(o->typespec_ret),host, sink ))
    }
    return  0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x38(%rax)
je 0x8fca
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rax
cmpq $0x0, 0x10(%rax)
je 0x8fca
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x18(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x5a60
movq -0x40(%rbp), %rdi
movq %rax, %rdx
leaq 0x12a7da(%rip), %rsi    # 0x13379b
movb $0x0, %al
callq 0x56e0
jmp 0x900d
movq -0x10(%rbp), %rdi
addq $0x20, %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x6ba0
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
je 0x900b
movq -0x30(%rbp), %rax
movq %rax, -0x38(%rbp)
leaq 0x1a9337(%rip), %rax    # 0x1b2330
movq (%rax), %rdi
callq 0xc0720
movq -0x38(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x9015
jmp 0x900d
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_signature_s_get_hash
tp_t xoico_signature_s_get_hash( const xoico_signature_s* o )
{
    // xoico_signature.x:120:1
    
    tp_t hash = bcore_tp_fold_tp( bcore_tp_init(), o->_ );
    hash = bcore_tp_fold_tp( hash, o->global_name );
    hash = bcore_tp_fold_tp( hash, xoico_typespec_s_get_hash(&(o->typespec_ret)) );
    hash = bcore_tp_fold_tp( hash, o->arg_o ? xoico_arg_s_get_hash(o->arg_o) : 0 );
    hash = bcore_tp_fold_tp( hash, xoico_args_s_get_hash(&(o->args)) );
    return  hash;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
callq 0x40f10
movq %rax, %rdi
movq -0x8(%rbp), %rax
movq (%rax), %rsi
callq 0x5640
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rsi
callq 0x5640
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
addq $0x20, %rdi
callq 0x6790
movq -0x20(%rbp), %rdi
movq %rax, %rsi
callq 0x5640
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x50(%rax)
je 0x9104
movq -0x8(%rbp), %rax
movq 0x50(%rax), %rdi
callq 0x7dd0
movq %rax, -0x28(%rbp)
jmp 0x910c
xorl %eax, %eax
movq %rax, -0x28(%rbp)
jmp 0x910c
movq -0x18(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x5640
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
addq $0x58, %rdi
callq 0x8a50
movq -0x30(%rbp), %rdi
movq %rax, %rsi
callq 0x5640
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)