// File: /workspace/github_c_makefile_star2_O0/chgzm[P]minic/tokenizer.c
// Function: decode_token_type
const char* decode_token_type(int type) {
    switch (type) {
    case TK_NUM:      { return "TK_NUM";      }
    case TK_BYTE:     { return "TK_BYTE";     }
    case TK_STR:      { return "TK_STR";      }
    case TK_IDENT:    { return "TK_IDENT";    }
    case TK_STATIC:   { return "TK_STATIC";   }
    case TK_TYPEDEF:  { return "TK_TYPEDEF";  }
    case TK_VOID:     { return "TK_VOID";     }
    case TK_CHAR:     { return "TK_CHAR";     }
    case TK_INT:      { return "TK_INT";      }
    case TK_DOUBLE:   { return "TK_DOUBLE";   }
    case TK_STRUCT:   { return "TK_STRUCT";   }
    case TK_ENUM:     { return "TK_ENUM";     }
    case TK_CONST:    { return "TK_CONST";    }
    case TK_IF:       { return "TK_IF";       }
    case TK_ELSE:     { return "TK_ELSE";     }
    case TK_FOR:      { return "TK_FOR";      }
    case TK_WHILE:    { return "TK_WHILE";    }
    case TK_SWITCH:   { return "TK_SWITCH";   }
    case TK_CASE:     { return "TK_CASE";     }
    case TK_BREAK:    { return "TK_BREAK";    }
    case TK_CONTINUE: { return "TK_CONTINUE"; }
    case TK_RETURN:   { return "TK_RETURN";   }
    case TK_SIZEOF:   { return "TK_SIZEOF";   }
    case TK_PLUS:     { return "TK_PLUS";     }
    case TK_MINUS:    { return "TK_MINUS";    }
    case TK_ASTER:    { return "TK_ASTER";    }
    case TK_SLASH:    { return "TK_SLASH";    }
    case TK_BS:       { return "TK_BS";       }
    case TK_PER:      { return "TK_PER";      }
    case TK_ASSIGN:   { return "TK_ASSIGN";   }
    case TK_SEMICOL:  { return "TK_SEMICOL";  }
    case TK_COLON:    { return "TK_COLON";    }
    case TK_LPAREN:   { return "TK_LPAREN";   }
    case TK_RPAREN:   { return "TK_RPAREN";   }
    case TK_LBRCKT:   { return "TK_LBRCKT";   }
    case TK_RBRCKT:   { return "TK_RBRCKT";   }
    case TK_LSQUARE:  { return "TK_LSQUARE";  }
    case TK_RSQUARE:  { return "TK_RSQUARE";  }
    case TK_LANGLE:   { return "TK_LANGLE";   }
    case TK_RANGLE:   { return "TK_RANGLE";   }
    case TK_EXCLA:    { return "TK_EXCLA";    }
    case TK_AMP:      { return "TK_AMP";      }
    case TK_HAT:      { return "TK_HAT";      }
    case TK_PIPE:     { return "TK_PIPE";     }
    case TK_HASH:     { return "TK_HASH";     }
    case TK_COMMA:    { return "TK_COMMA";    } 
    case TK_DOT:      { return "TK_DOT";      }
    case TK_ARROW:    { return "TK_ARROW";    }
    case TK_EQ:       { return "TK_EQ";       }
    case TK_NE:       { return "TK_NE";       }
    case TK_LE:       { return "TK_LE";       }
    case TK_GE:       { return "TK_GE";       }
    case TK_LOGOR:    { return "TK_LOGOR";    }
    case TK_LOGAND:   { return "TK_LOGAND";   }
    case TK_LSH:      { return "TK_LSH";      }
    case TK_RSH:      { return "TK_RSH";      }
    case TK_INC:      { return "TK_INC";      }
    case TK_DEC:      { return "TK_DEC";      }
    case TK_MUL_EQ:   { return "TK_MUL_EQ";   }
    case TK_DIV_EQ:   { return "TK_DIV_EQ";   }
    case TK_MOD_EQ:   { return "TK_MOD_EQ";   }
    case TK_ADD_EQ:   { return "TK_ADD_EQ";   }
    case TK_SUB_EQ:   { return "TK_SUB_EQ";   }
    case TK_AND_EQ:   { return "TK_AND_EQ";   }
    case TK_XOR_EQ:   { return "TK_XOR_EQ";   }
    case TK_OR_EQ:    { return "TK_OR_EQ";    }
    case TK_ELLIPSIS: { return "TK_ELLIPSIS"; }
    default:          { return "INVALID";     }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl %edi, -0xc(%rbp)
movl -0xc(%rbp), %eax
movq %rax, -0x18(%rbp)
subq $0x45, %rax
ja 0xe491
movq -0x18(%rbp), %rax
leaq 0x2bad(%rip), %rcx      # 0x10c20
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x2d6b(%rip), %rax      # 0x10dee
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2d62(%rip), %rax      # 0x10df5
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2d5a(%rip), %rax      # 0x10dfd
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2d51(%rip), %rax      # 0x10e04
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2d4a(%rip), %rax      # 0x10e0d
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2d44(%rip), %rax      # 0x10e17
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2d3f(%rip), %rax      # 0x10e22
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2d37(%rip), %rax      # 0x10e2a
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2d2f(%rip), %rax      # 0x10e32
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2d26(%rip), %rax      # 0x10e39
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2d20(%rip), %rax      # 0x10e43
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2d1a(%rip), %rax      # 0x10e4d
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2d12(%rip), %rax      # 0x10e55
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2d0b(%rip), %rax      # 0x10e5e
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2d01(%rip), %rax      # 0x10e64
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2cf9(%rip), %rax      # 0x10e6c
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2cf0(%rip), %rax      # 0x10e73
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2ce9(%rip), %rax      # 0x10e7c
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2ce3(%rip), %rax      # 0x10e86
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2cdb(%rip), %rax      # 0x10e8e
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2cd4(%rip), %rax      # 0x10e97
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2cd0(%rip), %rax      # 0x10ea3
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2cca(%rip), %rax      # 0x10ead
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2cc4(%rip), %rax      # 0x10eb7
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2cbc(%rip), %rax      # 0x10ebf
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2cb5(%rip), %rax      # 0x10ec8
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2cae(%rip), %rax      # 0x10ed1
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2ca7(%rip), %rax      # 0x10eda
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2c9d(%rip), %rax      # 0x10ee0
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2c94(%rip), %rax      # 0x10ee7
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2c8e(%rip), %rax      # 0x10ef1
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2c89(%rip), %rax      # 0x10efc
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2c82(%rip), %rax      # 0x10f05
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2c7c(%rip), %rax      # 0x10f0f
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2c76(%rip), %rax      # 0x10f19
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2c70(%rip), %rax      # 0x10f23
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2c6a(%rip), %rax      # 0x10f2d
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2c65(%rip), %rax      # 0x10f38
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2c60(%rip), %rax      # 0x10f43
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2c5a(%rip), %rax      # 0x10f4d
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2c54(%rip), %rax      # 0x10f57
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2c4d(%rip), %rax      # 0x10f60
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2c44(%rip), %rax      # 0x10f67
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2c3b(%rip), %rax      # 0x10f6e
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2c33(%rip), %rax      # 0x10f76
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2c2b(%rip), %rax      # 0x10f7e
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2c24(%rip), %rax      # 0x10f87
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2c1b(%rip), %rax      # 0x10f8e
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2c14(%rip), %rax      # 0x10f97
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2c0a(%rip), %rax      # 0x10f9d
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2c00(%rip), %rax      # 0x10fa3
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2bf6(%rip), %rax      # 0x10fa9
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2bec(%rip), %rax      # 0x10faf
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2be5(%rip), %rax      # 0x10fb8
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2bdf(%rip), %rax      # 0x10fc2
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2bd6(%rip), %rax      # 0x10fc9
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2bcd(%rip), %rax      # 0x10fd0
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2bc4(%rip), %rax      # 0x10fd7
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2bbb(%rip), %rax      # 0x10fde
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2bb8(%rip), %rax      # 0x10fe8
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2bb5(%rip), %rax      # 0x10ff2
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2bb2(%rip), %rax      # 0x10ffc
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2baf(%rip), %rax      # 0x11006
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2bac(%rip), %rax      # 0x11010
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2ba9(%rip), %rax      # 0x1101a
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2ba6(%rip), %rax      # 0x11024
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x2ba2(%rip), %rax      # 0x1102d
movq %rax, -0x8(%rbp)
jmp 0xe49c
leaq 0x18af(%rip), %rax      # 0xfd47
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
popq %rbp
retq
nopw %cs:(%rax,%rax)