// File: /workspace/github_c_makefile_star2_O0/pedro-onate[P]eva/eva.c
// Function: es_print
void es_print(es_ctx_t* ctx, es_val_t val, es_val_t oport)
{
  switch(es_type_of(val)) {
  case ES_NIL_TYPE:      es_port_printf(ctx, oport, "()");              break;
  case ES_BOOL_TYPE:     es_bool_print(ctx, val, oport);                break;
  case ES_FIXNUM_TYPE:   es_fixnum_print(ctx, val, oport);              break;
  case ES_SYMBOL_TYPE:   es_symbol_print(ctx, val, oport);              break;
  case ES_CHAR_TYPE:     es_char_print(ctx, val, oport);                break;
  case ES_STRING_TYPE:   es_string_print(ctx, val, oport);              break;
  case ES_PAIR_TYPE:     es_pair_print(ctx, val, oport);                break;
  case ES_EOF_OBJ_TYPE:  es_port_printf(ctx, oport, "#<eof-obj>");      break;
  case ES_CLOSURE_TYPE:  es_port_printf(ctx, oport,"#<closure>");       break;
  case ES_FN_TYPE:       es_port_printf(ctx, oport, "#<fn>");           break;
  case ES_UNBOUND_TYPE:  es_port_printf(ctx, oport,"#<unbound>");       break;
  case ES_VOID_TYPE:     es_port_printf(ctx, oport,"#<void>");          break;
  case ES_PORT_TYPE:     es_port_printf(ctx, oport,"#<port>");          break;
  case ES_VECTOR_TYPE:   es_vector_print(ctx, val, oport);              break;
  case ES_ERROR_TYPE:    es_error_print(ctx, val, oport);               break;
  case ES_BYTECODE_TYPE: es_bytecode_print(ctx, val, oport);            break;
  case ES_PROC_TYPE:     es_proc_print(ctx, val, oport);                break;
  case ES_ENV_TYPE:      es_env_print(ctx, val, oport);                 break;
  case ES_CONT_TYPE:     es_port_printf(ctx, oport, "#<continuation>"); break;
  case ES_MACRO_TYPE:    es_port_printf(ctx, oport, "#<macro>");        break;
  case ES_INVALID_TYPE:
  default:
    break;
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rdi
callq 0x1560
incl %eax
movl %eax, %ecx
movq %rcx, -0x20(%rbp)
subl $0x17, %eax
ja 0x2b07
movq -0x20(%rbp), %rax
leaq 0x7733(%rip), %rcx      # 0xa05c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
leaq 0x7bc0(%rip), %rdx      # 0xa501
movb $0x0, %al
callq 0x19d0
jmp 0x2b09
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1970
jmp 0x2b09
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x7250
jmp 0x2b09
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x72a0
jmp 0x2b09
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x7300
jmp 0x2b09
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x73b0
jmp 0x2b09
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x7400
jmp 0x2b09
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
leaq 0x7b24(%rip), %rdx      # 0xa504
movb $0x0, %al
callq 0x19d0
jmp 0x2b09
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
leaq 0x7b14(%rip), %rdx      # 0xa50f
movb $0x0, %al
callq 0x19d0
jmp 0x2b09
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
leaq 0x7b04(%rip), %rdx      # 0xa51a
movb $0x0, %al
callq 0x19d0
jmp 0x2b09
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
leaq 0x7aef(%rip), %rdx      # 0xa520
movb $0x0, %al
callq 0x19d0
jmp 0x2b09
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
leaq 0x7adf(%rip), %rdx      # 0xa52b
movb $0x0, %al
callq 0x19d0
jmp 0x2b09
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
leaq 0x7acc(%rip), %rdx      # 0xa533
movb $0x0, %al
callq 0x19d0
jmp 0x2b09
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x7520
jmp 0x2b09
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x75e0
jmp 0x2b09
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x7630
jmp 0x2b09
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x7790
jmp 0x2b09
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x7860
jmp 0x2b09
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
leaq 0x7a57(%rip), %rdx      # 0xa53b
movb $0x0, %al
callq 0x19d0
jmp 0x2b09
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
leaq 0x7a4f(%rip), %rdx      # 0xa54b
movb $0x0, %al
callq 0x19d0
jmp 0x2b09
jmp 0x2b07
jmp 0x2b09
addq $0x20, %rsp
popq %rbp
retq
nop