LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/thiagok00[P]INF1715-Compilers/ArvoreSintaticaAbstrata.c
// Function: print_bloco
static void print_bloco (Bloco *b, int nivel) {
    DefVarL *aux = b->declVars;
    CMDL *auxcmd = b->cmds;
    int nivelaux = nivel;

    if (b == NULL) return;
    printf ("%d\t [Bloco]\n",nivel);
    while (aux != NULL){
      nivelaux++;
      printf("%d\t [Def Var] %s : %s\n",nivelaux,aux->v->id,getStringTipo(aux->v->tipo));
      aux = aux->prox;
    }
    nivelaux = nivel;
    while (auxcmd != NULL) {
      nivelaux++;
      print_cmd(auxcmd->c,nivelaux);
      auxcmd = auxcmd->prox;
    }

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x20(%rbp)
movl -0xc(%rbp), %eax
movl %eax, -0x24(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x4ea8
jmp 0x4f46
movl -0xc(%rbp), %esi
leaq 0x5410(%rip), %rdi      # 0xa2c2
movb $0x0, %al
callq 0x10a0
cmpq $0x0, -0x18(%rbp)
je 0x4f13
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %eax
movl %eax, -0x34(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rdi
callq 0x4a90
movl -0x34(%rbp), %esi
movq -0x30(%rbp), %rdx
movq %rax, %rcx
leaq 0x53d1(%rip), %rdi      # 0xa2cf
movb $0x0, %al
callq 0x10a0
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0x4eb9
movl -0xc(%rbp), %eax
movl %eax, -0x24(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x4f46
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
movq -0x20(%rbp), %rax
movq (%rax), %rdi
movl -0x24(%rbp), %esi
callq 0x4f50
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x20(%rbp)
jmp 0x4f19
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/thiagok00[P]INF1715-Compilers/ArvoreSintaticaAbstrata.c
// Function: print_variavel
static void print_variavel(Var* v, int nivel) {
  if (v == NULL) return;


  if (v->tag == vVar) {
    printf("%d\t [Variavel %s] %s : %s\n",nivel,getStringEscopo(v->u.vvar.escopo),v->u.vvar.id,getStringTipo(v->tipo));
  }
  else if (v->tag == vAcesso) {
    printf("%d\t [Exp Acesso : %s]\n",nivel, getStringTipo(v->tipo));
    print_exp(v->u.vacesso.expvar,nivel+1);
    print_exp(v->u.vacesso.expindex,nivel+1);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x518b
jmp 0x5239
movq -0x8(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x51e1
movl -0xc(%rbp), %eax
movl %eax, -0x24(%rbp)
movq -0x8(%rbp), %rax
movl 0x18(%rax), %edi
callq 0x5490
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x4a90
movl -0x24(%rbp), %esi
movq -0x20(%rbp), %rdx
movq -0x18(%rbp), %rcx
movq %rax, %r8
leaq 0x51d4(%rip), %rdi      # 0xa3ac
movb $0x0, %al
callq 0x10a0
jmp 0x5239
movq -0x8(%rbp), %rax
cmpl $0x1, (%rax)
jne 0x5237
movl -0xc(%rbp), %eax
movl %eax, -0x28(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x4a90
movl -0x28(%rbp), %esi
movq %rax, %rdx
leaq 0x51bd(%rip), %rdi      # 0xa3c7
movb $0x0, %al
callq 0x10a0
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
movl -0xc(%rbp), %esi
addl $0x1, %esi
callq 0x5240
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
movl -0xc(%rbp), %esi
addl $0x1, %esi
callq 0x5240
jmp 0x5239
addq $0x30, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/thiagok00[P]INF1715-Compilers/ArvoreSintaticaAbstrata.c
// Function: getStringEscopo
static char* getStringEscopo(EscopoTag escopo) {
  switch (escopo) {
    case EscopoGlobal:
      return "Global";
    case EscopoLocal:
      return "Local";
    case EscopoFunc:
      return "EscopoFunc";
  }
  return "[Erro Escopo]";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl %edi, -0xc(%rbp)
movl -0xc(%rbp), %eax
movl %eax, -0x10(%rbp)
testl %eax, %eax
je 0x54b7
jmp 0x54a3
movl -0x10(%rbp), %eax
subl $0x1, %eax
je 0x54c4
jmp 0x54ad
movl -0x10(%rbp), %eax
subl $0x2, %eax
je 0x54d1
jmp 0x54de
leaq 0x4f20(%rip), %rax      # 0xa3de
movq %rax, -0x8(%rbp)
jmp 0x54e9
leaq 0x4f1a(%rip), %rax      # 0xa3e5
movq %rax, -0x8(%rbp)
jmp 0x54e9
leaq 0x4f13(%rip), %rax      # 0xa3eb
movq %rax, -0x8(%rbp)
jmp 0x54e9
leaq 0x4f11(%rip), %rax      # 0xa3f6
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/thiagok00[P]INF1715-Compilers/ArvoreSintaticaAbstrata.c
// Function: print_exp_unaria
static void print_exp_unaria(Exp *e, int nivel){
  if (e == NULL || e->tag != EXP_UNARIA) return;
  switch(e->u.expunaria.opun){
      case opnot:
        printf("%d\t [EXP NOT]",nivel);
      break;
      case opmenos:
        printf("%d\t [EXP MENOS]",nivel);
      break;
  }
  print_exp(e->u.expunaria.exp,nivel+1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x578f
movq -0x8(%rbp), %rax
cmpl $0x4, (%rax)
je 0x5791
jmp 0x57e2
movq -0x8(%rbp), %rax
movl 0x18(%rax), %eax
movl %eax, -0x10(%rbp)
testl %eax, %eax
je 0x57ab
jmp 0x57a1
movl -0x10(%rbp), %eax
subl $0x1, %eax
je 0x57be
jmp 0x57cf
movl -0xc(%rbp), %esi
leaq 0x4df7(%rip), %rdi      # 0xa5ac
movb $0x0, %al
callq 0x10a0
jmp 0x57cf
movl -0xc(%rbp), %esi
leaq 0x4df2(%rip), %rdi      # 0xa5ba
movb $0x0, %al
callq 0x10a0
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
movl -0xc(%rbp), %esi
addl $0x1, %esi
callq 0x5240
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/thiagok00[P]INF1715-Compilers/ArvoreSintaticaAbstrata.c
// Function: print_constante
static void print_constante(Constante *c,int nivel) {
   if (c == NULL) return;
   printf("%d\t [CONSTANTE] ",nivel);
   switch (c->tag) {
     case CDEC:
        printf("%d",c->val.i);
     break;
     case CREAL:
        printf("%f",c->val.f);
     break;
     case CSTRING:
        printf("%s",c->val.s);
     break;
   }
   printf("\n");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x580b
jmp 0x5897
movl -0xc(%rbp), %esi
leaq 0x4db5(%rip), %rdi      # 0xa5ca
xorl %eax, %eax
callq 0x10a0
movq -0x8(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x10(%rbp)
testl %eax, %eax
je 0x583f
jmp 0x582b
movl -0x10(%rbp), %eax
subl $0x1, %eax
je 0x5856
jmp 0x5835
movl -0x10(%rbp), %eax
subl $0x2, %eax
je 0x5873
jmp 0x5889
movq -0x8(%rbp), %rax
movl 0x8(%rax), %esi
leaq 0x5769(%rip), %rdi      # 0xafb6
movb $0x0, %al
callq 0x10a0
jmp 0x5889
movq -0x8(%rbp), %rax
movss 0x8(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x4d71(%rip), %rdi      # 0xa5db
movb $0x1, %al
callq 0x10a0
jmp 0x5889
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rsi
leaq 0x53de(%rip), %rdi      # 0xac60
movb $0x0, %al
callq 0x10a0
leaq 0x5773(%rip), %rdi      # 0xb003
movb $0x0, %al
callq 0x10a0
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/thiagok00[P]INF1715-Compilers/TabelaSimbolos.c
// Function: tipa_arvore
void tipa_arvore(Programa *p) {

    Definicao *auxdef;
    Simbolo *s = NULL;
    int nivelEscopo = 0;

    if (p == NULL) return;

    //todas variaveis globais e declaracoes de funcoes
    auxdef = p->defs;
    while (auxdef != NULL) {
        if (auxdef->tag == DVar) {
          s = cria_no_var(s,auxdef->u.v ,nivelEscopo);
        }
        if (auxdef->tag == DFunc) {
          s = cria_no_func(s,auxdef->u.f,nivelEscopo);
        }
        auxdef = auxdef->prox;
      }
      //print_simbolos(s);
    auxdef = p->defs;
    while (auxdef != NULL) {
        if (auxdef->tag == DFunc) {
          //s = cria_no_func(s,auxdef->u.f,nivelEscopo);
          s = cria_no_param(s,auxdef->u.f->params,nivelEscopo+1);

          s = tipa_bloco(s,auxdef->u.f->bloco,nivelEscopo+1);
        }
        auxdef = auxdef->prox;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq $0x0, -0x18(%rbp)
movl $0x0, -0x1c(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x58c7
jmp 0x5990
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x5929
movq -0x10(%rbp), %rax
cmpl $0x1, (%rax)
jne 0x58fa
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
movl -0x1c(%rbp), %edx
callq 0x59a0
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x591b
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
movl -0x1c(%rbp), %edx
callq 0x5b20
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x10(%rbp)
jmp 0x58d2
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x5990
movq -0x10(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x5982
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rsi
movl -0x1c(%rbp), %edx
addl $0x1, %edx
callq 0x5c20
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rsi
movl -0x1c(%rbp), %edx
addl $0x1, %edx
callq 0x5c70
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x10(%rbp)
jmp 0x5934
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/thiagok00[P]INF1715-Compilers/TabelaSimbolos.c
// Function: cria_no_var
static Simbolo* cria_no_var(Simbolo *s, DefVar *v, int nivelEscopo) {
    Simbolo *aux,*nv;

    aux = s;
    while(aux != NULL && aux->escopo == nivelEscopo) {
      if (aux->tag == SVar) {
          if (strcmp(aux->u.v->id, v->id) == 0) {
            printf("[Erro] Redefinicao da variavel %s\n",v->id);
            exit(1);
          }
      }
      else if (aux->tag == SParams) {
        ParametroL *p = aux->u.p;
        while(p != NULL) {
          if(strcmp(p->id, v->id) == 0) {
            printf("[Erro] Redefinicao da variavel \"%s\"\n",v->id);
            exit(1);
          }
          p = p->prox;
        }
      }
      else if (aux->tag == SFunc) {
        if (strcmp(aux->u.f->id, v->id) == 0) {
          printf("[Erro] Redefinicao de \"%s\" para um simbolo diferente\n",v->id);
          exit(1);
        }
      }
      aux = aux->ant;
    }

    nv = cria_no_final(s,nivelEscopo);
    nv->tag = SVar;
    nv->u.v = v;
    return nv;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
xorl %eax, %eax
cmpq $0x0, -0x20(%rbp)
movb %al, -0x31(%rbp)
je 0x59d7
movq -0x20(%rbp), %rax
movl 0x10(%rax), %eax
cmpl -0x14(%rbp), %eax
sete %al
movb %al, -0x31(%rbp)
movb -0x31(%rbp), %al
testb $0x1, %al
jne 0x59e3
jmp 0x5aec
movq -0x20(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x5a2c
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movq (%rax), %rsi
callq 0x10d0
cmpl $0x0, %eax
jne 0x5a27
movq -0x10(%rbp), %rax
movq (%rax), %rsi
leaq 0x4c1a(%rip), %rdi      # 0xa630
movb $0x0, %al
callq 0x10a0
movl $0x1, %edi
callq 0x1190
jmp 0x5adb
movq -0x20(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x5a90
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
je 0x5a8e
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x10(%rbp), %rax
movq (%rax), %rsi
callq 0x10d0
cmpl $0x0, %eax
jne 0x5a80
movq -0x10(%rbp), %rax
movq (%rax), %rsi
leaq 0x4be4(%rip), %rdi      # 0xa653
movb $0x0, %al
callq 0x10a0
movl $0x1, %edi
callq 0x1190
movq -0x30(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x30(%rbp)
jmp 0x5a41
jmp 0x5ad9
movq -0x20(%rbp), %rax
cmpl $0x1, (%rax)
jne 0x5ad7
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
movq -0x10(%rbp), %rax
movq (%rax), %rsi
callq 0x10d0
cmpl $0x0, %eax
jne 0x5ad5
movq -0x10(%rbp), %rax
movq (%rax), %rsi
leaq 0x4bb4(%rip), %rdi      # 0xa678
movb $0x0, %al
callq 0x10a0
movl $0x1, %edi
callq 0x1190
jmp 0x5ad7
jmp 0x5ad9
jmp 0x5adb
movq -0x20(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x20(%rbp)
jmp 0x59bb
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
callq 0x5d60
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movl $0x0, (%rax)
movq -0x10(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x28(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/thiagok00[P]INF1715-Compilers/TabelaSimbolos.c
// Function: cria_no_func
static Simbolo* cria_no_func(Simbolo *s, DefFunc *f, int nivelEscopo) {
    Simbolo *aux,*nv;
    aux = s;
    while(aux != NULL /*&& aux->escopo == nivelEscopo*/) {
        if (aux->tag == SVar) {
            if (strcmp(aux->u.v->id, f->id) == 0) {
              printf("[Erro] Redefinicao de \"%s\" para um simbolo diferente\n",f->id);
              exit(1);
            }
        }
        else if (aux->tag == SFunc) {
          if (strcmp(aux->u.f->id, f->id) == 0) {
              printf("[Erro] Redefinicao da funcao \"%s\"\n",f->id);
              exit(1);
          }
      }
      aux = aux->ant;
    }
    nv = cria_no_final(s,nivelEscopo);
    nv->tag = SFunc;
    nv->u.f = f;
    return nv;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x5bea
movq -0x20(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x5b8e
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x10d0
cmpl $0x0, %eax
jne 0x5b8c
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
leaq 0x4afd(%rip), %rdi      # 0xa678
movb $0x0, %al
callq 0x10a0
movl $0x1, %edi
callq 0x1190
jmp 0x5bd9
movq -0x20(%rbp), %rax
cmpl $0x1, (%rax)
jne 0x5bd7
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x10d0
cmpl $0x0, %eax
jne 0x5bd5
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
leaq 0x4aff(%rip), %rdi      # 0xa6c3
movb $0x0, %al
callq 0x10a0
movl $0x1, %edi
callq 0x1190
jmp 0x5bd7
jmp 0x5bd9
movq -0x20(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x20(%rbp)
jmp 0x5b3b
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
callq 0x5d60
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movl $0x1, (%rax)
movq -0x10(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x28(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/thiagok00[P]INF1715-Compilers/TabelaSimbolos.c
// Function: cria_no_param
static Simbolo* cria_no_param(Simbolo *s, ParametroL *p, int nivelEscopo) {
    Simbolo *nv = cria_no_final(s,nivelEscopo);
    nv->tag = SParams;
    nv->u.p = p;
    return nv;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
callq 0x5d60
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movl $0x2, (%rax)
movq -0x10(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x20(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/thiagok00[P]INF1715-Compilers/TabelaSimbolos.c
// Function: tipa_bloco
static Simbolo* tipa_bloco(Simbolo *s, Bloco *b,int nivelEscopo) {

    DefVarL *auxvars;
    CMDL *auxcmds;

    if (b == NULL) return s;

    auxvars = b->declVars;
    while (auxvars != NULL) {
      s = cria_no_var(s,auxvars->v,nivelEscopo);
      auxvars = auxvars->prox;
    }

    auxcmds = b->cmds;
    while(auxcmds != NULL) {
      CMD *cmd = auxcmds->c;
      tipa_comando(s,cmd,nivelEscopo);
      auxcmds = auxcmds->prox;
    }

    //print_simbolos(s);
    //desempilha variaveis do escopo
    while (s != NULL && s->escopo >= nivelEscopo) {
      s = destroi_simbolo_final(s);
    }
    return s;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movl %edx, -0x1c(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x5c97
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x5d48
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x5cce
movq -0x10(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rsi
movl -0x1c(%rbp), %edx
callq 0x59a0
movq %rax, -0x10(%rbp)
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x28(%rbp)
jmp 0x5ca2
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
je 0x5d0a
movq -0x30(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x10(%rbp), %rdi
movq -0x38(%rbp), %rsi
movl -0x1c(%rbp), %edx
callq 0x5e10
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x30(%rbp)
jmp 0x5cda
jmp 0x5d0c
xorl %eax, %eax
cmpq $0x0, -0x10(%rbp)
movb %al, -0x39(%rbp)
je 0x5d28
movq -0x10(%rbp), %rax
movl 0x10(%rax), %eax
cmpl -0x1c(%rbp), %eax
setge %al
movb %al, -0x39(%rbp)
movb -0x39(%rbp), %al
testb $0x1, %al
jne 0x5d31
jmp 0x5d40
movq -0x10(%rbp), %rdi
callq 0x5fe0
movq %rax, -0x10(%rbp)
jmp 0x5d0c
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/thiagok00[P]INF1715-Compilers/TabelaSimbolos.c
// Function: cria_no_final
static Simbolo* cria_no_final (Simbolo *s, int nivelEscopo) {
    Simbolo *nv = (Simbolo*)malloc(sizeof(Simbolo));
    if(nv == NULL) {
      printf("sem memoria costura\n");
      exit(1);
    }

    nv->escopo = nivelEscopo;
    nv->prox = NULL;
    if (s == NULL){
        nv->prim = nv;
        nv->ant = NULL;
    }
    else {
      nv->prim = s->prim;
      nv->ant = s;
      s->prox = nv;
    }
    return nv;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl $0x30, %edi
callq 0x1130
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x5d9c
leaq 0x4923(%rip), %rdi      # 0xa6ae
movb $0x0, %al
callq 0x10a0
movl $0x1, %edi
callq 0x1190
movl -0xc(%rbp), %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x10(%rax)
movq -0x18(%rbp), %rax
movq $0x0, 0x28(%rax)
cmpq $0x0, -0x8(%rbp)
jne 0x5dd3
movq -0x18(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x18(%rbp), %rax
movq $0x0, 0x20(%rax)
jmp 0x5dfb
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x8(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x18(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x18(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/thiagok00[P]INF1715-Compilers/TabelaSimbolos.c
// Function: destroi_simbolo_final
static Simbolo * destroi_simbolo_final(Simbolo *s) {
  Simbolo *aux = s;
  if (s->ant == NULL) {
    s = NULL;
  }
  else{
    s->ant->prox = s->prox;
    s = s->ant;
  }
  free(aux);
  return s;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x20(%rax)
jne 0x6009
movq $0x0, -0x8(%rbp)
jmp 0x6029
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rcx
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq %rcx, 0x28(%rax)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x8(%rbp)
movq -0x10(%rbp), %rdi
callq 0x1030
movq -0x8(%rbp), %rax
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/thiagok00[P]INF1715-Compilers/TabelaSimbolos.c
// Function: tipa_expressao
static void tipa_expressao(Simbolo *s, Exp *e, int nivelEscopo) {
  //Simbolo *aux = NULL;
  if (e == NULL)
    return;

  switch (e->tag) {

    case EXP_ARITH:
    case EXP_OR:
    case EXP_AND:
    case EXP_CMP:
      tipa_expbin(s,e,nivelEscopo);
    break;
    case EXP_UNARIA:
      tipa_expunaria(s,e,nivelEscopo);
    break;
    case EXP_VAR:
      tipa_expvar(s,e,nivelEscopo);
    break;
    case EXP_CHAMADA:
      tipa_expchamada(s,e,nivelEscopo);
    break;
    case EXP_AS:
      tipa_expas(s,e,nivelEscopo);
    break;
    case EXP_NEW:
      tipa_expnew(s,e,nivelEscopo);
    break;
    case EXP_CTE:
      tipa_expconstante(s,e,nivelEscopo);
    break;
  }
  return;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x632f
jmp 0x63d5
movq -0x10(%rbp), %rax
movl (%rax), %eax
movq %rax, -0x20(%rbp)
subq $0x9, %rax
ja 0x63d3
movq -0x20(%rbp), %rax
leaq 0x42ba(%rip), %rcx      # 0xa608
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl -0x14(%rbp), %edx
callq 0x67c0
jmp 0x63d3
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl -0x14(%rbp), %edx
callq 0x6bd0
jmp 0x63d3
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl -0x14(%rbp), %edx
callq 0x6c50
jmp 0x63d3
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl -0x14(%rbp), %edx
callq 0x6d40
jmp 0x63d3
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl -0x14(%rbp), %edx
callq 0x6f90
jmp 0x63d3
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl -0x14(%rbp), %edx
callq 0x6fe0
jmp 0x63d3
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl -0x14(%rbp), %edx
callq 0x7080
jmp 0x63d5
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/thiagok00[P]INF1715-Compilers/TabelaSimbolos.c
// Function: cmp_tipo_base
static int cmp_tipo_base(Tipo *t1, Tipo *t2) {
  if(t1->tipo_base == bChar && t2->tipo_base == bInt) return 0; //equivalencia de char e int
  if(t1->tipo_base == bInt && t2->tipo_base == bChar) return 0; //equivalencia de char e int
    if(t1->tipo_base < t2->tipo_base)
      return -1;
    else if (t1->tipo_base > t2->tipo_base)
      return 1;
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x1, 0x4(%rax)
jne 0x65a9
movq -0x18(%rbp), %rax
cmpl $0x2, 0x4(%rax)
jne 0x65a9
movl $0x0, -0x4(%rbp)
jmp 0x6601
movq -0x10(%rbp), %rax
cmpl $0x2, 0x4(%rax)
jne 0x65c6
movq -0x18(%rbp), %rax
cmpl $0x1, 0x4(%rax)
jne 0x65c6
movl $0x0, -0x4(%rbp)
jmp 0x6601
movq -0x10(%rbp), %rax
movl 0x4(%rax), %eax
movq -0x18(%rbp), %rcx
cmpl 0x4(%rcx), %eax
jae 0x65df
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x6601
movq -0x10(%rbp), %rax
movl 0x4(%rax), %eax
movq -0x18(%rbp), %rcx
cmpl 0x4(%rcx), %eax
jbe 0x65f8
movl $0x1, -0x4(%rbp)
jmp 0x6601
jmp 0x65fa
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/thiagok00[P]INF1715-Compilers/TabelaSimbolos.c
// Function: promove_tipo
static Exp* promove_tipo(Exp *e, Base_TAG tipo_base) {

    Exp * expas = NULL;
    Tipo *nvtipo = NULL;

    nvtipo = (Tipo*)malloc(sizeof(Tipo));
    if (nvtipo == NULL) {printf("memoria insuficiente\n");exit(1);}

    nvtipo->tag = base;
    nvtipo->tipo_base = tipo_base;
    nvtipo->de = NULL;

    expas = (Exp*)malloc(sizeof(Exp));
    if (expas == NULL) {printf("memoria insuficiente\n");exit(1);}
    expas->tag = EXP_AS;
    expas->tipo = nvtipo;
    expas->u.expnewas.exp = e;
    expas->u.expnewas.tipo = nvtipo;

    return expas;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq $0x0, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
movl $0x10, %edi
callq 0x1130
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x665c
leaq 0x414a(%rip), %rdi      # 0xa795
movb $0x0, %al
callq 0x10a0
movl $0x1, %edi
callq 0x1190
movq -0x20(%rbp), %rax
movl $0x0, (%rax)
movl -0xc(%rbp), %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0x4(%rax)
movq -0x20(%rbp), %rax
movq $0x0, 0x8(%rax)
movl $0x28, %edi
callq 0x1130
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x66a9
leaq 0x40fd(%rip), %rdi      # 0xa795
movb $0x0, %al
callq 0x10a0
movl $0x1, %edi
callq 0x1190
movq -0x18(%rbp), %rax
movl $0x9, (%rax)
movq -0x20(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x8(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x20(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x18(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/thiagok00[P]INF1715-Compilers/TabelaSimbolos.c
// Function: cmp_tipo_array
static int cmp_tipo_array(Tipo *t1, Tipo *t2){

  if (t1->tag != array || t2->tag != array) return -1;
  if (cmp_tipo_base(t1,t2) == 0) {
    Tipo *aux1,*aux2;
    aux1 = t1->de;
    aux2 = t2->de;
    while (aux1 != NULL && aux2 != NULL) {
      aux1 = aux1->de;
      aux2 = aux2->de;
    }
    if (aux1 != NULL || aux2 != NULL)
      return -1;
    else
      return 0;
  }
  return -1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x1, (%rax)
jne 0x6712
movq -0x18(%rbp), %rax
cmpl $0x1, (%rax)
je 0x671e
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x67a9
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x6580
cmpl $0x0, %eax
jne 0x67a2
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x28(%rbp)
xorl %eax, %eax
cmpq $0x0, -0x20(%rbp)
movb %al, -0x29(%rbp)
je 0x675f
cmpq $0x0, -0x28(%rbp)
setne %al
movb %al, -0x29(%rbp)
movb -0x29(%rbp), %al
testb $0x1, %al
jne 0x6768
jmp 0x6782
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x28(%rbp)
jmp 0x6748
cmpq $0x0, -0x20(%rbp)
jne 0x6790
cmpq $0x0, -0x28(%rbp)
je 0x6799
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x67a9
movl $0x0, -0x4(%rbp)
jmp 0x67a9
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/thiagok00[P]INF1715-Compilers/TabelaSimbolos.c
// Function: tipa_expunaria
static void tipa_expunaria(Simbolo *s, Exp *e, int nivelEscopo) {
  tipa_expressao(s,e->u.expunaria.exp,nivelEscopo);
  //o que deveria aceitar aqui? !x[] !new int [10]??
  //aceitando apenas tipos base
  if (e->u.expunaria.exp->tipo->tag != base && e->u.expunaria.exp->tipo->tipo_base != bVoid){
    printf("[Erro] tipo inesperado para operador unario\n");
    exit(1);
  }
  e->tipo = e->u.expunaria.exp->tipo;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x6310
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
cmpl $0x0, (%rax)
je 0x6c32
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
cmpl $0x0, 0x4(%rax)
je 0x6c32
leaq 0x3c60(%rip), %rdi      # 0xa881
movb $0x0, %al
callq 0x10a0
movl $0x1, %edi
callq 0x1190
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x8(%rax)
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/thiagok00[P]INF1715-Compilers/TabelaSimbolos.c
// Function: tipa_expvar
static void tipa_expvar(Simbolo *s, Exp *e, int nivelEscopo) {

  Tipo *t;
  if(e->u.expvar->tag == vVar) {
    tipa_variavel(s,e->u.expvar,nivelEscopo);

    //promovendo expvar char para int
    t = (Tipo *)malloc(sizeof(Tipo));
    if (t == NULL) {printf("falta de memoria\n");exit(1);}
    t->de = NULL;
    t->tag = base;
    if(e->u.expvar->tipo->tipo_base == bChar){
      t->tipo_base = bInt;
    }
    else {
      t->tipo_base = e->u.expvar->tipo->tipo_base;
    }
    e->tipo = t;
  }
  else if (e->u.expvar->tag == vAcesso) {
    tipa_expacesso(s,e,nivelEscopo);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0x0, (%rax)
jne 0x6d0e
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x63e0
movl $0x10, %edi
callq 0x1130
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x6cb5
leaq 0x3b98(%rip), %rdi      # 0xa83c
movb $0x0, %al
callq 0x10a0
movl $0x1, %edi
callq 0x1190
movq -0x20(%rbp), %rax
movq $0x0, 0x8(%rax)
movq -0x20(%rbp), %rax
movl $0x0, (%rax)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
cmpl $0x1, 0x4(%rax)
jne 0x6cea
movq -0x20(%rbp), %rax
movl $0x2, 0x4(%rax)
jmp 0x6d00
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movl 0x4(%rax), %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0x4(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x8(%rax)
jmp 0x6d2d
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0x1, (%rax)
jne 0x6d2b
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl -0x14(%rbp), %edx
callq 0x7180
jmp 0x6d2d
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/thiagok00[P]INF1715-Compilers/TabelaSimbolos.c
// Function: tipa_expnew
static void tipa_expnew(Simbolo *s, Exp *e, int nivelEscopo) {
  Tipo *t;
  tipa_expressao(s,e->u.expnewas.exp,nivelEscopo);
   t = (Tipo*) malloc(sizeof(Tipo));
  if (t == NULL) {printf("falta de memoria\n");exit(1);}
   t->tag = array;
   t->tipo_base = e->u.expnewas.tipo->tipo_base;
   t->de = e->u.expnewas.tipo;
   e->tipo = t;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x6310
movl $0x10, %edi
callq 0x1130
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x7034
leaq 0x3819(%rip), %rdi      # 0xa83c
movb $0x0, %al
callq 0x10a0
movl $0x1, %edi
callq 0x1190
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x4(%rax), %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0x4(%rax)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x8(%rax)
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/thiagok00[P]INF1715-Compilers/TabelaSimbolos.c
// Function: tipa_expconstante
static void tipa_expconstante(Simbolo *s, Exp *e, int nivelEscopo) {
    Tipo *t;
    t = (Tipo*) malloc(sizeof(Tipo));
    if (t == NULL) {printf("falta de memoria\n");exit(1);}
    t->tag = base;
    t->de = NULL;
    e->tipo = t;
    switch (e->u.expcte->tag) {
      case CDEC:
        t->tipo_base = bInt;
      break;
      case CREAL:
        t->tipo_base = bFloat;
      break;
      case CSTRING:
        t->tag = array;
        t->tipo_base = bChar;
      break;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movl $0x10, %edi
callq 0x1130
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x70c0
leaq 0x378d(%rip), %rdi      # 0xa83c
movb $0x0, %al
callq 0x10a0
movl $0x1, %edi
callq 0x1190
movq -0x20(%rbp), %rax
movl $0x0, (%rax)
movq -0x20(%rbp), %rax
movq $0x0, 0x8(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movl (%rax), %eax
movl %eax, -0x24(%rbp)
testl %eax, %eax
je 0x7109
jmp 0x70f5
movl -0x24(%rbp), %eax
subl $0x1, %eax
je 0x7116
jmp 0x70ff
movl -0x24(%rbp), %eax
subl $0x2, %eax
je 0x7123
jmp 0x7138
movq -0x20(%rbp), %rax
movl $0x2, 0x4(%rax)
jmp 0x7138
movq -0x20(%rbp), %rax
movl $0x3, 0x4(%rax)
jmp 0x7138
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movq -0x20(%rbp), %rax
movl $0x1, 0x4(%rax)
addq $0x30, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/thiagok00[P]INF1715-Compilers/TabelaSimbolos.c
// Function: verifica_tipo
static int verifica_tipo(Tipo *t, Base_TAG base) {
  if(t->tag == array)
    return 0;
  if(t->tipo_base == base)
    return 1;
  return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x1, (%rax)
jne 0x715d
movl $0x0, -0x4(%rbp)
jmp 0x7179
movq -0x10(%rbp), %rax
movl 0x4(%rax), %eax
cmpl -0x14(%rbp), %eax
jne 0x7172
movl $0x1, -0x4(%rbp)
jmp 0x7179
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/thiagok00[P]INF1715-Compilers/TabelaSimbolos.c
// Function: tipa_expacesso
static void tipa_expacesso(Simbolo *s,Exp *e, int nivelEscopo) {

  tipa_expressao(s,e->u.expvar->u.vacesso.expvar,nivelEscopo);
  tipa_expressao(s,e->u.expvar->u.vacesso.expindex,nivelEscopo);

  if (verifica_tipo(e->u.expvar->u.vacesso.expindex->tipo,bInt)) {
    Tipo *nvtipo = NULL;

    nvtipo = (Tipo*) malloc(sizeof(Tipo));
    if (nvtipo == NULL) {printf("memoria insuficiente");exit(1);}
    nvtipo->tag = base;
    nvtipo->tipo_base = e->u.expvar->u.vacesso.expvar->tipo->tipo_base;
    nvtipo->de = NULL;
    e->tipo = nvtipo;
  }
  else {
    printf("[Erro Tipo] Esperado index tipo int encontrando %s\n",getStringTipo (e->u.expvar->u.vacesso.expindex->tipo));
    exit(1);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x6310
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x18(%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x6310
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rdi
movl $0x2, %esi
callq 0x7140
cmpl $0x0, %eax
je 0x7255
movq $0x0, -0x20(%rbp)
movl $0x10, %edi
callq 0x1130
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x7217
leaq 0x36a8(%rip), %rdi      # 0xa8ae
movb $0x0, %al
callq 0x10a0
movl $0x1, %edi
callq 0x1190
movq -0x20(%rbp), %rax
movl $0x0, (%rax)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movl 0x4(%rax), %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0x4(%rax)
movq -0x20(%rbp), %rax
movq $0x0, 0x8(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x8(%rax)
jmp 0x7285
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x4a90
movq %rax, %rsi
leaq 0x364f(%rip), %rdi      # 0xa8c3
movb $0x0, %al
callq 0x10a0
movl $0x1, %edi
callq 0x1190
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/thiagok00[P]INF1715-Compilers/TabelaSimbolos.c
// Function: proc_no_func
static Simbolo* proc_no_func(Simbolo *s, const char *id) {

  while (s != NULL) {
    if (s->tag == SFunc) {
      if (strcmp(s->u.f->id,id) == 0){
        return s;
      }
    }
    s = s->ant;
  }
  return NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x72e4
movq -0x10(%rbp), %rax
cmpl $0x1, (%rax)
jne 0x72d6
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
movq -0x18(%rbp), %rsi
callq 0x10d0
cmpl $0x0, %eax
jne 0x72d4
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x72ec
jmp 0x72d6
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x10(%rbp)
jmp 0x72a0
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/thiagok00[P]INF1715-Compilers/GeraCodigo.c
// Function: tipo_base_string
char* tipo_base_string(Base_TAG tipo_base) {

    switch(tipo_base){
      case bInt:
        return "i32";
      case bChar:
        return "i8";
      case bFloat:
        return "float";
      default: return "i32";
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl %edi, -0xc(%rbp)
movl -0xc(%rbp), %eax
movl %eax, -0x10(%rbp)
subl $0x1, %eax
je 0x7335
jmp 0x7314
movl -0x10(%rbp), %eax
subl $0x2, %eax
je 0x7328
jmp 0x731e
movl -0x10(%rbp), %eax
subl $0x3, %eax
je 0x7342
jmp 0x734f
leaq 0x36d1(%rip), %rax      # 0xaa00
movq %rax, -0x8(%rbp)
jmp 0x735a
leaq 0x36c8(%rip), %rax      # 0xaa04
movq %rax, -0x8(%rbp)
jmp 0x735a
leaq 0x36be(%rip), %rax      # 0xaa07
movq %rax, -0x8(%rbp)
jmp 0x735a
leaq 0x36aa(%rip), %rax      # 0xaa00
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/thiagok00[P]INF1715-Compilers/GeraCodigo.c
// Function: tipo_string
char *tipo_string(Tipo *tipo) {

  char *str;
  char *strbase;
  char aststr[200] = "";

  str = (char*) malloc(sizeof(char)*200);
  if (str == NULL) {printf("Falta de memoria\n");exit(1);}
  str[0] ='\0';

  strbase = tipo_base_string(tipo->tipo_base);
  while(tipo->de != NULL){
    sprintf(aststr,"%s*",aststr);
    tipo = tipo->de;
  }
  sprintf(str,"%s%s",strbase,aststr);

  return str;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe0, %rsp
movq %rdi, -0x8(%rbp)
leaq -0xe0(%rbp), %rdi
xorl %esi, %esi
movl $0xc8, %edx
callq 0x10c0
movl $0xc8, %edi
callq 0x1130
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x73af
leaq 0x366f(%rip), %rdi      # 0xaa0d
movb $0x0, %al
callq 0x10a0
movl $0x1, %edi
callq 0x1190
movq -0x10(%rbp), %rax
movb $0x0, (%rax)
movq -0x8(%rbp), %rax
movl 0x4(%rax), %edi
callq 0x7300
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x73fb
leaq -0xe0(%rbp), %rdi
leaq -0xe0(%rbp), %rdx
leaq 0x3639(%rip), %rsi      # 0xaa1f
movb $0x0, %al
callq 0x1180
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0x73c6
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rdx
leaq -0xe0(%rbp), %rcx
leaq 0x3612(%rip), %rsi      # 0xaa23
movb $0x0, %al
callq 0x1180
movq -0x10(%rbp), %rax
addq $0xe0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/thiagok00[P]INF1715-Compilers/GeraCodigo.c
// Function: geracodigo_arvore
void geracodigo_arvore(Programa *p){
  output = fopen("monga.ll","w");
  strLst = NULL;
  if (output == NULL){
    printf("Nao conseguiu abrir arquivo de saida\n");
    exit(1);
  }
  gera_declaracoes_iniciais();
  gera_codigo_varglobais(p->defs);
  gera_codigo_funcoes(p->defs);

  gera_codigo_strings();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
leaq 0x35e5(%rip), %rdi      # 0xaa28
leaq 0x25fe(%rip), %rsi      # 0x9a48
callq 0x1150
movq %rax, 0x6d32(%rip)      # 0xe188
movq $0x0, 0x6d2f(%rip) # 0xe190
cmpq $0x0, 0x6d1f(%rip)      # 0xe188
jne 0x7483
leaq 0x35bf(%rip), %rdi      # 0xaa31
movb $0x0, %al
callq 0x10a0
movl $0x1, %edi
callq 0x1190
callq 0x8eb0
movq -0x8(%rbp), %rax
movq (%rax), %rdi
callq 0x74b0
movq -0x8(%rbp), %rax
movq (%rax), %rdi
callq 0x7580
callq 0x8e50
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/thiagok00[P]INF1715-Compilers/GeraCodigo.c
// Function: gera_codigo_varglobais
static void gera_codigo_varglobais(Definicao *defs) {
  //TODO arrays
  while (defs != NULL){
    if (defs->tag == DVar){
        int idTemp = gen_id();
        char* tipostr = tipo_string(defs->u.v->tipo);
        defs->u.v->idTemp = idTemp;
        if(defs->u.v->tipo->tipo_base == bFloat) {
          fprintf(output, "@t%d = common global %s 0.000000e+00\n",idTemp,tipostr);
        }
        else {
          fprintf(output, "@t%d = common global %s 0\n",idTemp,tipostr);
        }
    }
    defs = defs->prox;
  }
  fprintf(output,"\n");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x755a
movq -0x8(%rbp), %rax
cmpl $0x1, (%rax)
jne 0x7549
callq 0x77b0
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x7360
movq %rax, -0x18(%rbp)
movl -0xc(%rbp), %ecx
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movl %ecx, 0x10(%rax)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
cmpl $0x3, 0x4(%rax)
jne 0x752b
movq 0x6c74(%rip), %rdi      # 0xe188
movl -0xc(%rbp), %edx
movq -0x18(%rbp), %rcx
leaq 0x3535(%rip), %rsi      # 0xaa57
movb $0x0, %al
callq 0x10e0
jmp 0x7547
movq 0x6c56(%rip), %rdi      # 0xe188
movl -0xc(%rbp), %edx
movq -0x18(%rbp), %rcx
leaq 0x353d(%rip), %rsi      # 0xaa7d
movb $0x0, %al
callq 0x10e0
jmp 0x7549
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0x74bc
movq 0x6c27(%rip), %rdi      # 0xe188
leaq 0x3a9b(%rip), %rsi      # 0xb003
movb $0x0, %al
callq 0x10e0
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/thiagok00[P]INF1715-Compilers/GeraCodigo.c
// Function: gera_codigo_expressao
static int gera_codigo_expressao(Exp *e) {

    switch(e->tag) {
      case EXP_CTE:
        return gera_codigo_expcte(e->u.expcte);
      case EXP_UNARIA:
        return gera_codigo_expunaria(e);
      case EXP_VAR:
        return gera_codigo_expvar(e);
      case EXP_ARITH:
        return gera_codigo_exparith(e);
      case EXP_CMP:
        return gera_codigo_expcmp(e);
      case EXP_AS:
        return gera_codigo_expas(e);
      case EXP_OR:
        return gera_codigo_expor(e);
      case EXP_AND:
        return gera_codigo_expand(e);
      case EXP_CHAMADA:
        return gera_codigo_expchamada(e);
      case EXP_NEW:
        return gera_codigo_expnew(e);
      default:
        return -1;
        break;
    }

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %eax
movq %rax, -0x18(%rbp)
subq $0x9, %rax
ja 0x7c27
movq -0x18(%rbp), %rax
leaq 0x2e4d(%rip), %rcx      # 0xa9d8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x7f30
movl %eax, -0x4(%rbp)
jmp 0x7c2e
movq -0x10(%rbp), %rdi
callq 0x8160
movl %eax, -0x4(%rbp)
jmp 0x7c2e
movq -0x10(%rbp), %rdi
callq 0x83b0
movl %eax, -0x4(%rbp)
jmp 0x7c2e
movq -0x10(%rbp), %rdi
callq 0x8550
movl %eax, -0x4(%rbp)
jmp 0x7c2e
movq -0x10(%rbp), %rdi
callq 0x86c0
movl %eax, -0x4(%rbp)
jmp 0x7c2e
movq -0x10(%rbp), %rdi
callq 0x8880
movl %eax, -0x4(%rbp)
jmp 0x7c2e
movq -0x10(%rbp), %rdi
callq 0x8900
movl %eax, -0x4(%rbp)
jmp 0x7c2e
movq -0x10(%rbp), %rdi
callq 0x8910
movl %eax, -0x4(%rbp)
jmp 0x7c2e
movq -0x10(%rbp), %rdi
callq 0x8980
movl %eax, -0x4(%rbp)
jmp 0x7c2e
movq -0x10(%rbp), %rdi
callq 0x8b50
movl %eax, -0x4(%rbp)
jmp 0x7c2e
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/thiagok00[P]INF1715-Compilers/GeraCodigo.c
// Function: gera_codigo_if
static void gera_codigo_if(CMD *c){
  int idtemp, idexp;
  int labelTrue,labelFinal;
  idexp = gera_codigo_expressao(c->u.cmdif.exp);
  idtemp = gen_id();
  //  %3 = icmp ne i32 %2, 0
  fprintf(output,"\t%%t%d = icmp ne i32 %%t%d, 0\n",idtemp,idexp);
  //br i1 %3, label %4, label %5
  labelTrue = gen_label();
  labelFinal = gen_label();
  fprintf(output,"\tbr i1 %%t%d, label %%L%d, label %%L%d\n",idtemp,labelTrue,labelFinal);
  fprintf(output,"L%d:\n",labelTrue);
  gera_codigo_bloco(c->u.cmdif.bloco);
  fprintf(output,"\tbr label %%L%d\n",labelFinal);
  fprintf(output,"L%d:\n",labelFinal);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x7b60
movl %eax, -0x10(%rbp)
callq 0x77b0
movl %eax, -0xc(%rbp)
movq 0x651d(%rip), %rdi      # 0xe188
movl -0xc(%rbp), %edx
movl -0x10(%rbp), %ecx
leaq 0x30db(%rip), %rsi      # 0xad53
movb $0x0, %al
callq 0x10e0
callq 0x8e30
movl %eax, -0x14(%rbp)
callq 0x8e30
movl %eax, -0x18(%rbp)
movq 0x64f2(%rip), %rdi      # 0xe188
movl -0xc(%rbp), %edx
movl -0x14(%rbp), %ecx
movl -0x18(%rbp), %r8d
leaq 0x33a8(%rip), %rsi      # 0xb04f
movb $0x0, %al
callq 0x10e0
movq 0x64d3(%rip), %rdi      # 0xe188
movl -0x14(%rbp), %edx
leaq 0x33b8(%rip), %rsi      # 0xb077
movb $0x0, %al
callq 0x10e0
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x77d0
movq 0x64ae(%rip), %rdi      # 0xe188
movl -0x18(%rbp), %edx
leaq 0x3399(%rip), %rsi      # 0xb07d
movb $0x0, %al
callq 0x10e0
movq 0x6496(%rip), %rdi      # 0xe188
movl -0x18(%rbp), %edx
leaq 0x337b(%rip), %rsi      # 0xb077
movb $0x0, %al
callq 0x10e0
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/thiagok00[P]INF1715-Compilers/GeraCodigo.c
// Function: gera_codigo_ifelse
static void gera_codigo_ifelse(CMD *c){
  int idtemp, idexp;
  int labelTrue,labelFalse,labelFinal;
  idexp = gera_codigo_expressao(c->u.cmdifelse.exp);
  idtemp = gen_id();
  //  %3 = icmp ne i32 %2, 0
  fprintf(output,"\t%%t%d = icmp ne i32 %%t%d, 0\n",idtemp,idexp);
  //br i1 %3, label %4, label %5
  labelTrue = gen_label();
  labelFalse = gen_label();
  labelFinal = gen_label();
  fprintf(output,"\tbr i1 %%t%d, label %%L%d, label %%L%d\n",idtemp,labelTrue,labelFalse);

  //label true
  fprintf(output,"L%d:\n",labelTrue);
  gera_codigo_bloco(c->u.cmdifelse.blocoif);
  fprintf(output,"\tbr label %%L%d\n",labelFinal);

  //label false
  fprintf(output,"L%d:\n",labelFalse);
  gera_codigo_bloco(c->u.cmdifelse.blocoelse);
  fprintf(output,"\tbr label %%L%d\n",labelFinal);

  fprintf(output,"L%d:\n",labelFinal);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x7b60
movl %eax, -0x10(%rbp)
callq 0x77b0
movl %eax, -0xc(%rbp)
movq 0x644d(%rip), %rdi      # 0xe188
movl -0xc(%rbp), %edx
movl -0x10(%rbp), %ecx
leaq 0x300b(%rip), %rsi      # 0xad53
movb $0x0, %al
callq 0x10e0
callq 0x8e30
movl %eax, -0x14(%rbp)
callq 0x8e30
movl %eax, -0x18(%rbp)
callq 0x8e30
movl %eax, -0x1c(%rbp)
movq 0x641a(%rip), %rdi      # 0xe188
movl -0xc(%rbp), %edx
movl -0x14(%rbp), %ecx
movl -0x18(%rbp), %r8d
leaq 0x32d0(%rip), %rsi      # 0xb04f
movb $0x0, %al
callq 0x10e0
movq 0x63fb(%rip), %rdi      # 0xe188
movl -0x14(%rbp), %edx
leaq 0x32e0(%rip), %rsi      # 0xb077
movb $0x0, %al
callq 0x10e0
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x77d0
movq 0x63d6(%rip), %rdi      # 0xe188
movl -0x1c(%rbp), %edx
leaq 0x32c1(%rip), %rsi      # 0xb07d
movb $0x0, %al
callq 0x10e0
movq 0x63be(%rip), %rdi      # 0xe188
movl -0x18(%rbp), %edx
leaq 0x32a3(%rip), %rsi      # 0xb077
movb $0x0, %al
callq 0x10e0
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x77d0
movq 0x6399(%rip), %rdi      # 0xe188
movl -0x1c(%rbp), %edx
leaq 0x3284(%rip), %rsi      # 0xb07d
movb $0x0, %al
callq 0x10e0
movq 0x6381(%rip), %rdi      # 0xe188
movl -0x1c(%rbp), %edx
leaq 0x3266(%rip), %rsi      # 0xb077
movb $0x0, %al
callq 0x10e0
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/thiagok00[P]INF1715-Compilers/GeraCodigo.c
// Function: gera_codigo_while
static void gera_codigo_while(CMD *c){
  int idtemp, idexp;
  int labelTrue,labelCmp,labelFinal;

  labelCmp = gen_label();
  labelTrue = gen_label();
  labelFinal = gen_label();

  fprintf(output,"\tbr label %%L%d\n",labelCmp);
  fprintf(output,"L%d:\n",labelCmp);
  idexp = gera_codigo_expressao(c->u.cmdwhile.exp);
  idtemp = gen_id();
  //  %4 = icmp ne i32 %3, 0
  fprintf(output,"\t%%t%d = icmp ne i32 %%t%d, 0\n",idtemp,idexp);
  //br i1 %4, label %5, label %6
  fprintf(output,"\tbr i1 %%t%d, label %%L%d, label %%L%d\n",idtemp,labelTrue,labelFinal);
  fprintf(output,"L%d:\n",labelTrue);
  gera_codigo_bloco(c->u.cmdwhile.bloco);
  //br label %2
  fprintf(output,"\tbr label %%L%d\n",labelCmp);

  fprintf(output,"L%d:\n",labelFinal);

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
callq 0x8e30
movl %eax, -0x18(%rbp)
callq 0x8e30
movl %eax, -0x14(%rbp)
callq 0x8e30
movl %eax, -0x1c(%rbp)
movq 0x633d(%rip), %rdi      # 0xe188
movl -0x18(%rbp), %edx
leaq 0x3228(%rip), %rsi      # 0xb07d
movb $0x0, %al
callq 0x10e0
movq 0x6325(%rip), %rdi      # 0xe188
movl -0x18(%rbp), %edx
leaq 0x320a(%rip), %rsi      # 0xb077
movb $0x0, %al
callq 0x10e0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x7b60
movl %eax, -0x10(%rbp)
callq 0x77b0
movl %eax, -0xc(%rbp)
movq 0x62f5(%rip), %rdi      # 0xe188
movl -0xc(%rbp), %edx
movl -0x10(%rbp), %ecx
leaq 0x2eb3(%rip), %rsi      # 0xad53
movb $0x0, %al
callq 0x10e0
movq 0x62da(%rip), %rdi      # 0xe188
movl -0xc(%rbp), %edx
movl -0x14(%rbp), %ecx
movl -0x1c(%rbp), %r8d
leaq 0x3190(%rip), %rsi      # 0xb04f
movb $0x0, %al
callq 0x10e0
movq 0x62bb(%rip), %rdi      # 0xe188
movl -0x14(%rbp), %edx
leaq 0x31a0(%rip), %rsi      # 0xb077
movb $0x0, %al
callq 0x10e0
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x77d0
movq 0x6296(%rip), %rdi      # 0xe188
movl -0x18(%rbp), %edx
leaq 0x3181(%rip), %rsi      # 0xb07d
movb $0x0, %al
callq 0x10e0
movq 0x627e(%rip), %rdi      # 0xe188
movl -0x1c(%rbp), %edx
leaq 0x3163(%rip), %rsi      # 0xb077
movb $0x0, %al
callq 0x10e0
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)