// File: /workspace/github_c_makefile_star2_O0/sisshiki1969[P]monocc/src/debug.c
// Function: print_node
void print_node(Node *node) {
  if (node == NULL) {
    fprintf(output, "NULL ");
    return;
  }
  if (is_binary_op(node->kind)) {
    switch (node->kind) {
      case ND_ADD:
      case ND_SUB:
      case ND_MUL:
      case ND_DIV:
      case ND_EQ:
      case ND_NEQ:
      case ND_GE:
      case ND_GT:
      case ND_LAND:
      case ND_LOR:
      case ND_AND:
      case ND_OR:
      case ND_XOR:
      case ND_SHR:
      case ND_SHL:
        fprintf(output, "(%.*s ", node->token->len, node->token->str);
        break;
      default:
        error("Unknown binary node.");
    }
    print_node(node->lhs);
    fprintf(output, " ");
    print_node(node->rhs);
    fprintf(output, ")");
    return;
  }
  switch (node->kind) {
    case ND_NOT:
      fprintf(output, "(! ");
      print_node(node->lhs);
      fprintf(output, ")");
      return;
    case ND_CMP:
      fprintf(output, "(~ ");
      print_node(node->lhs);
      fprintf(output, ")");
      return;
    case ND_ADDR:
      fprintf(output, "(ADDR ");
      print_node(node->lhs);
      fprintf(output, ")");
      return;
    case ND_DEREF:
      fprintf(output, "(DEREF ");
      print_node(node->lhs);
      fprintf(output, ")");
      return;
    case ND_CAST:
      fprintf(output, "(CAST ");
      print_type(output, node->type);
      fprintf(output, " ");
      print_node(node->lhs);
      fprintf(output, ")");
      return;
    case ND_MEMBER:
      fprintf(output, "(MEMBER ");
      print_node(node->lhs);
      fprintf(output, " %.*s %d)", node->token->len, node->token->str,
              node->offset);
      return;
    case ND_BREAK:
      fprintf(output, "BREAK ");
      return;
    case ND_CONTINUE:
      fprintf(output, "CONTINUE ");
      return;
  }
  if (node->kind == ND_CALL) {
    Token *name = node->lhs->token;
    fprintf(output, "(CALL %.*s (", name->len, name->str);
    Vector *vec = node->nodes;
    int len = vec_len(vec);
    for (int i = 0; i < len; i++) {
      print_node(vec->data[i]);
      fprintf(output, ":");
    }
    fprintf(output, ") )");
    return;
  }
  if (node->kind == ND_NUM) {
    fprintf(output, " %ld ", node->num_val);
    return;
  }
  if (node->kind == ND_STR) {
    fprintf(output, " \"%.*s\" ", node->token->len, node->token->str);
    return;
  }
  if (node->kind == ND_INIT) {
    Vector *vec = node->nodes;
    bool first = true;
    fprintf(output, "{");
    for (int i = 0; i < vec_len(vec); i++) {
      if (!first) fprintf(output, ",");
      first = false;
      print_node(vec->data[i]);
      // fprintf(output, " ");
    }
    fprintf(output, "}");
    return;
  }
  if (node->kind == ND_ASSIGN) {
    fprintf(output, "(= ");
    print_node(node->lhs);
    fprintf(output, " ");
    print_node(node->rhs);
    fprintf(output, ")");
    return;
  }
  if (node->kind == ND_IF) {
    fprintf(output, "(IF ");
    print_node(node->lhs);
    fprintf(output, " ");
    print_node(node->rhs);
    fprintf(output, " ");
    print_node(node->xhs);
    fprintf(output, ")");
    return;
  }
  if (node->kind == ND_SWITCH) {
    fprintf(output, "(SWITCH cond: ");
    print_node(node->lhs);
    fprintf(output, " body: ");
    print_node(node->rhs);
    fprintf(output, ")");
    return;
  }

  if (node->kind == ND_CASE) {
    fprintf(output, "(CASE cond:");
    print_node(node->lhs);
    fprintf(output, " body:");
    print_node(node->rhs);
    fprintf(output, ")");
    return;
  }

  if (node->kind == ND_DEFAULT) {
    fprintf(output, "(DEFAULT body:");
    print_node(node->lhs);
    fprintf(output, ")");
    return;
  }

  if (node->kind == ND_WHILE) {
    fprintf(output, "(WHILE cond:");
    print_node(node->lhs);
    fprintf(output, "body: ");
    print_node(node->rhs);
    fprintf(output, ")");
    return;
  }
  if (node->kind == ND_FOR) {
    fprintf(output, "(FOR init: ");
    print_node(node->lhs);
    fprintf(output, "cond: ");
    print_node(node->rhs);
    fprintf(output, " post: ");
    print_node(node->xhs);
    fprintf(output, " body ");
    print_node(node->nodes->data[0]);
    fprintf(output, ")");
    return;
  }
  if (node->kind == ND_BLOCK) {
    fprintf(output, "(BLOCK");
    if (node->nodes) {
      Vector *vec = node->nodes;
      int len = vec_len(vec);
      for (int i = 0; i < len; i++) {
        print_node(vec->data[i]);
        fprintf(output, ":");
      }
    }
    fprintf(output, ")");
    return;
  }
  if (node->kind == ND_LVAR) {
    fprintf(output, "(LVAR %d)", node->lvar->offset);
    return;
  }
  if (node->kind == ND_GVAR) {
    fprintf(output, "(GVAR %.*s)", node->token->len, node->token->str);
    return;
  }
  if (node->kind == ND_RETURN) {
    fprintf(output, "(RETURN ");
    print_node(node->lhs);
    fprintf(output, ")");
    return;
  }
  if (node->kind == ND_FDECL) {
    fprintf(output, "FDECL %.*s ", node->token->len, node->token->str);
    print_type(output, node->type);
    fprintf(output, " max_offset:%d\n//    ", node->offset);
    if (node->nodes) {
      Vector *params = node->nodes;
      int len = vec_len(params);
      for (int i = 0; i < len; i++) {
        print_node(params->data[i]);
        fprintf(output, " ");
      }
    }
    fprintf(output, "\n//    ");
    print_node(node->lhs);
    fprintf(output, ")");
    return;
  }
  error("print_node(): Unknown node.");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x4330
leaq 0x10ef6(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb98b(%rip), %rsi      # 0xfcaf
movb $0x0, %al
callq 0x10f0
jmp 0x4e06
movq -0x8(%rbp), %rax
movl (%rax), %edi
callq 0x12c0
testb $0x1, %al
jne 0x4344
jmp 0x43f2
movq -0x8(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x54(%rbp)
addl $-0x4, %eax
subl $0xa, %eax
jb 0x4364
jmp 0x4357
movl -0x54(%rbp), %eax
addl $-0xf, %eax
subl $0x4, %eax
ja 0x4395
jmp 0x4364
leaq 0x10ea5(%rip), %rax     # 0x15210
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x50(%rax), %rax
movl 0x28(%rax), %edx
movq -0x8(%rbp), %rax
movq 0x50(%rax), %rax
movq 0x20(%rax), %rcx
leaq 0xb929(%rip), %rsi      # 0xfcb5
movb $0x0, %al
callq 0x10f0
jmp 0x43a3
leaq 0xb920(%rip), %rdi      # 0xfcbc
movb $0x0, %al
callq 0x5970
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x4300
leaq 0x10e59(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xba21(%rip), %rsi      # 0xfde2
movb $0x0, %al
callq 0x10f0
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x4300
leaq 0x10e34(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb93c(%rip), %rsi      # 0xfd22
movb $0x0, %al
callq 0x10f0
jmp 0x4e06
movq -0x8(%rbp), %rax
movl (%rax), %eax
addl $-0xe, %eax
movl %eax, %ecx
movq %rcx, -0x60(%rbp)
subl $0x17, %eax
ja 0x4632
movq -0x60(%rbp), %rax
leaq 0xb7b7(%rip), %rcx      # 0xfbcc
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x10deb(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb8a2(%rip), %rsi      # 0xfcd1
movb $0x0, %al
callq 0x10f0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x4300
leaq 0x10dc6(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb8ce(%rip), %rsi      # 0xfd22
movb $0x0, %al
callq 0x10f0
jmp 0x4e06
leaq 0x10da9(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb864(%rip), %rsi      # 0xfcd5
movb $0x0, %al
callq 0x10f0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x4300
leaq 0x10d84(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb88c(%rip), %rsi      # 0xfd22
movb $0x0, %al
callq 0x10f0
jmp 0x4e06
leaq 0x10d67(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb826(%rip), %rsi      # 0xfcd9
movb $0x0, %al
callq 0x10f0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x4300
leaq 0x10d42(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb84a(%rip), %rsi      # 0xfd22
movb $0x0, %al
callq 0x10f0
jmp 0x4e06
leaq 0x10d25(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb7eb(%rip), %rsi      # 0xfce0
movb $0x0, %al
callq 0x10f0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x4300
leaq 0x10d00(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb808(%rip), %rsi      # 0xfd22
movb $0x0, %al
callq 0x10f0
jmp 0x4e06
leaq 0x10ce3(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb7b1(%rip), %rsi      # 0xfce8
movb $0x0, %al
callq 0x10f0
leaq 0x10ccb(%rip), %rax     # 0x15210
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rsi
callq 0x4e10
leaq 0x10cb4(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb87c(%rip), %rsi      # 0xfde2
movb $0x0, %al
callq 0x10f0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x4300
leaq 0x10c8f(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb797(%rip), %rsi      # 0xfd22
movb $0x0, %al
callq 0x10f0
jmp 0x4e06
leaq 0x10c72(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb747(%rip), %rsi      # 0xfcef
movb $0x0, %al
callq 0x10f0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x4300
leaq 0x10c4d(%rip), %rax     # 0x15210
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x50(%rax), %rax
movl 0x28(%rax), %edx
movq -0x8(%rbp), %rax
movq 0x50(%rax), %rax
movq 0x20(%rax), %rcx
movq -0x8(%rbp), %rax
movl 0x38(%rax), %r8d
leaq 0xb70c(%rip), %rsi      # 0xfcf8
movb $0x0, %al
callq 0x10f0
jmp 0x4e06
leaq 0x10c11(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb6f9(%rip), %rsi      # 0xfd02
movb $0x0, %al
callq 0x10f0
jmp 0x4e06
leaq 0x10bf4(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb6e3(%rip), %rsi      # 0xfd09
movb $0x0, %al
callq 0x10f0
jmp 0x4e06
movq -0x8(%rbp), %rax
cmpl $0x1a, (%rax)
jne 0x46f1
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x50(%rax), %rax
movq %rax, -0x10(%rbp)
leaq 0x10bba(%rip), %rax     # 0x15210
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movl 0x28(%rax), %edx
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rcx
leaq 0xb6a4(%rip), %rsi      # 0xfd13
movb $0x0, %al
callq 0x10f0
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x4000
movl %eax, -0x1c(%rbp)
movl $0x0, -0x20(%rbp)
movl -0x20(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jge 0x46d4
movq -0x18(%rbp), %rax
movq (%rax), %rax
movslq -0x20(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x4300
leaq 0x10b58(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb6bd(%rip), %rsi      # 0xfd7f
movb $0x0, %al
callq 0x10f0
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x4695
leaq 0x10b35(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb63b(%rip), %rsi      # 0xfd20
movb $0x0, %al
callq 0x10f0
jmp 0x4e06
movq -0x8(%rbp), %rax
cmpl $0x1, (%rax)
jne 0x471f
leaq 0x10b0f(%rip), %rax     # 0x15210
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdx
leaq 0xb611(%rip), %rsi      # 0xfd24
movb $0x0, %al
callq 0x10f0
jmp 0x4e06
movq -0x8(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x475c
leaq 0x10ae1(%rip), %rax     # 0x15210
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x50(%rax), %rax
movl 0x28(%rax), %edx
movq -0x8(%rbp), %rax
movq 0x50(%rax), %rax
movq 0x20(%rax), %rcx
leaq 0xb5da(%rip), %rsi      # 0xfd2a
movb $0x0, %al
callq 0x10f0
jmp 0x4e06
movq -0x8(%rbp), %rax
cmpl $0x3, (%rax)
jne 0x480e
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rax
movq %rax, -0x28(%rbp)
movb $0x1, -0x29(%rbp)
leaq 0x10a90(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb5a9(%rip), %rsi      # 0xfd33
movb $0x0, %al
callq 0x10f0
movl $0x0, -0x30(%rbp)
movl -0x30(%rbp), %eax
movl %eax, -0x64(%rbp)
movq -0x28(%rbp), %rdi
callq 0x4000
movl %eax, %ecx
movl -0x64(%rbp), %eax
cmpl %ecx, %eax
jge 0x47f1
testb $0x1, -0x29(%rbp)
jne 0x47ce
leaq 0x10a53(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb56e(%rip), %rsi      # 0xfd35
movb $0x0, %al
callq 0x10f0
movb $0x0, -0x29(%rbp)
movq -0x28(%rbp), %rax
movq (%rax), %rax
movslq -0x30(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x4300
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0x4798
leaq 0x10a18(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb535(%rip), %rsi      # 0xfd37
movb $0x0, %al
callq 0x10f0
jmp 0x4e06
movq -0x8(%rbp), %rax
cmpl $0x15, (%rax)
jne 0x487e
leaq 0x109f2(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb511(%rip), %rsi      # 0xfd39
movb $0x0, %al
callq 0x10f0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x4300
leaq 0x109cd(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb595(%rip), %rsi      # 0xfde2
movb $0x0, %al
callq 0x10f0
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x4300
leaq 0x109a8(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb4b0(%rip), %rsi      # 0xfd22
movb $0x0, %al
callq 0x10f0
jmp 0x4e06
movq -0x8(%rbp), %rax
cmpl $0x1d, (%rax)
jne 0x4917
leaq 0x1097e(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb4a1(%rip), %rsi      # 0xfd3d
movb $0x0, %al
callq 0x10f0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x4300
leaq 0x10959(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb521(%rip), %rsi      # 0xfde2
movb $0x0, %al
callq 0x10f0
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x4300
leaq 0x10934(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb4fc(%rip), %rsi      # 0xfde2
movb $0x0, %al
callq 0x10f0
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x4300
leaq 0x1090f(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb417(%rip), %rsi      # 0xfd22
movb $0x0, %al
callq 0x10f0
jmp 0x4e06
movq -0x8(%rbp), %rax
cmpl $0x20, (%rax)
jne 0x4987
leaq 0x108e9(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb411(%rip), %rsi      # 0xfd42
movb $0x0, %al
callq 0x10f0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x4300
leaq 0x108c4(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb3fb(%rip), %rsi      # 0xfd51
movb $0x0, %al
callq 0x10f0
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x4300
leaq 0x1089f(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb3a7(%rip), %rsi      # 0xfd22
movb $0x0, %al
callq 0x10f0
jmp 0x4e06
movq -0x8(%rbp), %rax
cmpl $0x21, (%rax)
jne 0x49f7
leaq 0x10879(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb3b8(%rip), %rsi      # 0xfd59
movb $0x0, %al
callq 0x10f0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x4300
leaq 0x10854(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb3a7(%rip), %rsi      # 0xfd6d
movb $0x0, %al
callq 0x10f0
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x4300
leaq 0x1082f(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb337(%rip), %rsi      # 0xfd22
movb $0x0, %al
callq 0x10f0
jmp 0x4e06
movq -0x8(%rbp), %rax
cmpl $0x22, (%rax)
jne 0x4a42
leaq 0x10809(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb354(%rip), %rsi      # 0xfd65
movb $0x0, %al
callq 0x10f0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x4300
leaq 0x107e4(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb2ec(%rip), %rsi      # 0xfd22
movb $0x0, %al
callq 0x10f0
jmp 0x4e06
movq -0x8(%rbp), %rax
cmpl $0x1e, (%rax)
jne 0x4ab2
leaq 0x107be(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb318(%rip), %rsi      # 0xfd74
movb $0x0, %al
callq 0x10f0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x4300
leaq 0x10799(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb2d1(%rip), %rsi      # 0xfd52
movb $0x0, %al
callq 0x10f0
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x4300
leaq 0x10774(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb27c(%rip), %rsi      # 0xfd22
movb $0x0, %al
callq 0x10f0
jmp 0x4e06
movq -0x8(%rbp), %rax
cmpl $0x1f, (%rax)
jne 0x4b76
leaq 0x1074a(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb2b1(%rip), %rsi      # 0xfd81
movb $0x0, %al
callq 0x10f0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x4300
leaq 0x10725(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb255(%rip), %rsi      # 0xfd4a
movb $0x0, %al
callq 0x10f0
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x4300
leaq 0x10700(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb273(%rip), %rsi      # 0xfd8d
movb $0x0, %al
callq 0x10f0
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x4300
leaq 0x106db(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb256(%rip), %rsi      # 0xfd95
movb $0x0, %al
callq 0x10f0
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rax
movq (%rax), %rax
movq (%rax), %rdi
callq 0x4300
leaq 0x106b0(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb1b8(%rip), %rsi      # 0xfd22
movb $0x0, %al
callq 0x10f0
jmp 0x4e06
movq -0x8(%rbp), %rax
cmpl $0x26, (%rax)
jne 0x4c23
leaq 0x10686(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb208(%rip), %rsi      # 0xfd9c
movb $0x0, %al
callq 0x10f0
movq -0x8(%rbp), %rax
cmpq $0x0, 0x48(%rax)
je 0x4c06
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
callq 0x4000
movl %eax, -0x3c(%rbp)
movl $0x0, -0x40(%rbp)
movl -0x40(%rbp), %eax
cmpl -0x3c(%rbp), %eax
jge 0x4c04
movq -0x38(%rbp), %rax
movq (%rax), %rax
movslq -0x40(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x4300
leaq 0x10628(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb18d(%rip), %rsi      # 0xfd7f
movb $0x0, %al
callq 0x10f0
movl -0x40(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x40(%rbp)
jmp 0x4bc5
jmp 0x4c06
leaq 0x10603(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb10b(%rip), %rsi      # 0xfd22
movb $0x0, %al
callq 0x10f0
jmp 0x4e06
movq -0x8(%rbp), %rax
cmpl $0x18, (%rax)
jne 0x4c54
leaq 0x105dd(%rip), %rax     # 0x15210
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movl 0x18(%rax), %edx
leaq 0xb15b(%rip), %rsi      # 0xfda3
movb $0x0, %al
callq 0x10f0
jmp 0x4e06
movq -0x8(%rbp), %rax
cmpl $0x19, (%rax)
jne 0x4c91
leaq 0x105ac(%rip), %rax     # 0x15210
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x50(%rax), %rax
movl 0x28(%rax), %edx
movq -0x8(%rbp), %rax
movq 0x50(%rax), %rax
movq 0x20(%rax), %rcx
leaq 0xb128(%rip), %rsi      # 0xfdad
movb $0x0, %al
callq 0x10f0
jmp 0x4e06
movq -0x8(%rbp), %rax
cmpl $0x23, (%rax)
jne 0x4cdc
leaq 0x1056f(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb10e(%rip), %rsi      # 0xfdb9
movb $0x0, %al
callq 0x10f0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x4300
leaq 0x1054a(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb052(%rip), %rsi      # 0xfd22
movb $0x0, %al
callq 0x10f0
jmp 0x4e06
movq -0x8(%rbp), %rax
cmpl $0x27, (%rax)
jne 0x4df8
leaq 0x10520(%rip), %rax     # 0x15210
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x50(%rax), %rax
movl 0x28(%rax), %edx
movq -0x8(%rbp), %rax
movq 0x50(%rax), %rax
movq 0x20(%rax), %rcx
leaq 0xb0b1(%rip), %rsi      # 0xfdc2
movb $0x0, %al
callq 0x10f0
leaq 0x104f1(%rip), %rax     # 0x15210
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rsi
callq 0x4e10
leaq 0x104da(%rip), %rax     # 0x15210
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movl 0x38(%rax), %edx
leaq 0xb087(%rip), %rsi      # 0xfdce
movb $0x0, %al
callq 0x10f0
movq -0x8(%rbp), %rax
cmpq $0x0, 0x48(%rax)
je 0x4db9
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rdi
callq 0x4000
movl %eax, -0x4c(%rbp)
movl $0x0, -0x50(%rbp)
movl -0x50(%rbp), %eax
cmpl -0x4c(%rbp), %eax
jge 0x4db7
movq -0x48(%rbp), %rax
movq (%rax), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x4300
leaq 0x10475(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb03d(%rip), %rsi      # 0xfde2
movb $0x0, %al
callq 0x10f0
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x4d78
jmp 0x4db9
leaq 0x10450(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xb012(%rip), %rsi      # 0xfddc
movb $0x0, %al
callq 0x10f0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x4300
leaq 0x1042b(%rip), %rax     # 0x15210
movq (%rax), %rdi
leaq 0xaf33(%rip), %rsi      # 0xfd22
movb $0x0, %al
callq 0x10f0
jmp 0x4e06
leaq 0xafe5(%rip), %rdi      # 0xfde4
movb $0x0, %al
callq 0x5970
addq $0x70, %rsp
popq %rbp
retq
nopl (%rax)