// File: /workspace/github_cpp_makefile_star2_O1/rofl0r[P]ascc/cc_symboltable.cpp
// Function: symbolTable::reset()
void symbolTable::reset() {
	for (std::map<int, char*>::iterator it = nameGenCache.begin(); it != nameGenCache.end(); ++it) {
		free(it->second);
	}
	nameGenCache.clear();

	entries.clear();

    stringStructSym = 0;
    symbolTree.clear();

    add_ex("___dummy__sym0",999,0);
    normalIntSym = add_ex("int",SYM_VARTYPE,4);
    normalCharSym = add_ex("char",SYM_VARTYPE,1);
    normalLongSym = add_ex("long",SYM_VARTYPE,4);
    normalShortSym = add_ex("short",SYM_VARTYPE,2);
    normalStringSym = add_ex("string",SYM_VARTYPE,4);
    normalVoidSym = add_ex("void",SYM_VARTYPE,0);
    normalFloatSym = add_ex("float", SYM_VARTYPE, 4);
    add_ex("=",SYM_ASSIGN,0);
    add_ex(";",SYM_SEMICOLON,0);
    add_ex(",",SYM_COMMA,0);
    add_ex("(",SYM_OPENPARENTHESIS,0);
    add_ex(")",SYM_CLOSEPARENTHESIS,0);
    add_ex("{",SYM_OPENBRACE,0);
    add_ex("}",SYM_CLOSEBRACE,0);
    add_ex("+=",SYM_MASSIGN,SCMD_ADDREG);
    add_ex("-=",SYM_MASSIGN,SCMD_SUBREG);
    add_ex("*=",SYM_MASSIGN,SCMD_MULREG);
    add_ex("/=",SYM_MASSIGN,SCMD_DIVREG);
    add_ex("&=",SYM_MASSIGN,SCMD_BITAND);
    add_ex("|=",SYM_MASSIGN,SCMD_BITOR);
    add_ex("^=",SYM_MASSIGN,SCMD_XORREG);
    add_ex("<<=",SYM_MASSIGN,SCMD_SHIFTLEFT);
    add_ex(">>=",SYM_MASSIGN,SCMD_SHIFTRIGHT);
    add_ex("++",SYM_SASSIGN,SCMD_ADD);
    add_ex("--",SYM_SASSIGN,SCMD_SUB);
    // the second argument to the operators is their precedence: 1 is highest
    add_operator("!",1, SCMD_NOTREG);
    add_operator("*",2, SCMD_MULREG);
    add_operator("/",3, SCMD_DIVREG);
    add_operator("%",4, SCMD_MODREG);
    add_operator("+",5, SCMD_ADDREG);
    add_operator("-",5, SCMD_SUBREG);
    add_operator("<<",7, SCMD_SHIFTLEFT);
    add_operator(">>",8, SCMD_SHIFTRIGHT);
    add_operator("&",9, SCMD_BITAND);
    add_operator("|",10, SCMD_BITOR);
    add_operator("^",11, SCMD_XORREG);
    add_operator("==",12, SCMD_ISEQUAL);
    add_operator("!=",13, SCMD_NOTEQUAL);
    add_operator(">",14, SCMD_GREATER);
    add_operator("<",15, SCMD_LESSTHAN);
    add_operator(">=",16, SCMD_GTE);
    add_operator("<=",17, SCMD_LTE);
    add_operator("&&",18, SCMD_AND);
    add_operator("||",19, SCMD_OR);
    add_ex("new", SYM_NEW, 1);
    add_ex("[",SYM_OPENBRACKET,0);
    add_ex("]",SYM_CLOSEBRACKET,0);
    add_ex(".",SYM_DOT,0);
    add_ex("if",SYM_IF,0);
    add_ex("else",SYM_ELSE,0);
    add_ex("while",SYM_WHILE,0);
    add_ex("for",SYM_FOR,0);
    add_ex("break",SYM_BREAK,0);
    add_ex("continue",SYM_CONTINUE,0);
    add_ex("do",SYM_DO,0);
    add_ex("switch",SYM_SWITCH,0);
    add_ex("case",SYM_CASE,0);
    add_ex("default",SYM_DEFAULT,0);
    add_ex("...",SYM_VARARGS,0);
    add_ex("struct",SYM_STRUCT,0);
    add_ex("import",SYM_IMPORT,0);
    add_ex("_tryimport",SYM_IMPORT,0);
    add_ex("export",SYM_EXPORT,0);
    add_ex("return", SYM_RETURN, 0);
    add_ex("readonly",SYM_READONLY,0);
    add_ex("::", SYM_MEMBERACCESS, 0);
    add_ex(":", SYM_LABEL, 0);
    add_ex("attribute", SYM_PROPERTY, 0);
    add_ex("enum", SYM_ENUM, 0);
    add_ex("managed", SYM_MANAGED, 0);
    nullSym = add_ex("null", SYM_NULL, 0);
    add_ex("extends", SYM_EXTENDS, 0);
    add_ex("static", SYM_STATIC, 0);
    add_ex("protected", SYM_PROTECTED, 0);
    add_ex("writeprotected", SYM_WRITEPROTECTED, 0);
    add_ex("const", SYM_CONST, 0);
    add_ex("internalstring", SYM_STRINGSTRUCT, 0);
    add_ex("autoptr", SYM_AUTOPTR, 0);
    add_ex("noloopcheck", SYM_LOOPCHECKOFF, 0);
    add_ex("builtin", SYM_BUILTIN, 0);
    add_ex("?", SYM_QMARK, 0);
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
leaq 0x40(%rdi), %r14
movq 0x58(%rdi), %r15
leaq 0x48(%rdi), %r12
cmpq %r12, %r15
je 0x1126b
movq 0x28(%r15), %rdi
callq 0x33c0
movq %r15, %rdi
callq 0x3260
movq %rax, %r15
cmpq %r12, %rax
jne 0x11252
movq %r14, %rdi
callq 0x12990
leaq 0x28(%rbx), %r14
movq 0x28(%rbx), %rsi
movq %r14, %rdi
callq 0x129be
movl $0x0, 0x20(%rbx)
leaq 0x70(%rbx), %rdi
callq 0x10804
leaq 0xb75b(%rip), %rsi      # 0x1c9f5
movq %rbx, %rdi
movl $0x3e7, %edx            # imm = 0x3E7
xorl %ecx, %ecx
callq 0x11be6
leaq 0xa25a(%rip), %rsi      # 0x1b50a
movq %rbx, %rdi
movl $0x2e, %edx
movl $0x4, %ecx
callq 0x11be6
movl %eax, (%rbx)
leaq 0xc0fb(%rip), %rsi      # 0x1d3c6
movq %rbx, %rdi
movl $0x2e, %edx
movl $0x1, %ecx
callq 0x11be6
movl %eax, 0x4(%rbx)
leaq 0x9f17(%rip), %rsi      # 0x1b1fe
movq %rbx, %rdi
movl $0x2e, %edx
movl $0x4, %ecx
callq 0x11be6
movl %eax, 0x8(%rbx)
leaq 0x9be4(%rip), %rsi      # 0x1aee7
movq %rbx, %rdi
movl $0x2e, %edx
movl $0x2, %ecx
callq 0x11be6
movl %eax, 0xc(%rbx)
leaq 0xc0da(%rip), %rsi      # 0x1d3f9
movq %rbx, %rdi
movl $0x2e, %edx
movl $0x4, %ecx
callq 0x11be6
movl %eax, 0x10(%rbx)
leaq 0xb6c9(%rip), %rsi      # 0x1ca04
movq %rbx, %rdi
movl $0x2e, %edx
xorl %ecx, %ecx
callq 0x11be6
movl %eax, 0x18(%rbx)
leaq 0xb6b5(%rip), %rsi      # 0x1ca09
movq %rbx, %rdi
movl $0x2e, %edx
movl $0x4, %ecx
callq 0x11be6
movl %eax, 0x14(%rbx)
leaq 0xb6d4(%rip), %rsi      # 0x1ca44
movq %rbx, %rdi
movl $0x19, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xb689(%rip), %rsi      # 0x1ca0f
movq %rbx, %rdi
movl $0x28, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xb675(%rip), %rsi      # 0x1ca11
movq %rbx, %rdi
movl $0x2a, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xc480(%rip), %rsi      # 0x1d832
movq %rbx, %rdi
movl $0x5, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0x9ffc(%rip), %rsi      # 0x1b3c4
movq %rbx, %rdi
movl $0x6, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xb635(%rip), %rsi      # 0x1ca13
movq %rbx, %rdi
movl $0x17, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xb5a0(%rip), %rsi      # 0x1c994
movq %rbx, %rdi
movl $0x18, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xb60b(%rip), %rsi      # 0x1ca15
movq %rbx, %rdi
movl $0x1a, %edx
movl $0xb, %ecx
callq 0x11be6
leaq 0xb5f5(%rip), %rsi      # 0x1ca18
movq %rbx, %rdi
movl $0x1a, %edx
movl $0xc, %ecx
callq 0x11be6
leaq 0xb5df(%rip), %rsi      # 0x1ca1b
movq %rbx, %rdi
movl $0x1a, %edx
movl $0x9, %ecx
callq 0x11be6
leaq 0xb5c9(%rip), %rsi      # 0x1ca1e
movq %rbx, %rdi
movl $0x1a, %edx
movl $0xa, %ecx
callq 0x11be6
leaq 0xb5b3(%rip), %rsi      # 0x1ca21
movq %rbx, %rdi
movl $0x1a, %edx
movl $0xd, %ecx
callq 0x11be6
leaq 0xb59d(%rip), %rsi      # 0x1ca24
movq %rbx, %rdi
movl $0x1a, %edx
movl $0xe, %ecx
callq 0x11be6
leaq 0xb587(%rip), %rsi      # 0x1ca27
movq %rbx, %rdi
movl $0x1a, %edx
movl $0x29, %ecx
callq 0x11be6
leaq 0xb571(%rip), %rsi      # 0x1ca2a
movq %rbx, %rdi
movl $0x1a, %edx
movl $0x2b, %ecx
callq 0x11be6
leaq 0xb55c(%rip), %rsi      # 0x1ca2e
movq %rbx, %rdi
movl $0x1a, %edx
movl $0x2c, %ecx
callq 0x11be6
leaq 0xb547(%rip), %rsi      # 0x1ca32
movq %rbx, %rdi
movl $0x22, %edx
movl $0x1, %ecx
callq 0x11be6
leaq 0xb531(%rip), %rsi      # 0x1ca35
movq %rbx, %rdi
movl $0x22, %edx
movl $0x2, %ecx
callq 0x11be6
leaq 0xc36f(%rip), %rsi      # 0x1d88c
movq %rbx, %rdi
movl $0x3, %edx
movl $0x1, %ecx
callq 0x11be6
testl %eax, %eax
js 0x11546
movl %eax, %eax
movq (%r14), %rcx
imulq $0xb0, %rax, %rax
movw $0x2a, 0x30(%rcx,%rax)
leaq 0xbd4b(%rip), %rsi      # 0x1d298
movq %rbx, %rdi
movl $0x3, %edx
movl $0x2, %ecx
callq 0x11be6
testl %eax, %eax
js 0x11576
movl %eax, %eax
movq (%r14), %rcx
imulq $0xb0, %rax, %rax
movw $0x9, 0x30(%rcx,%rax)
leaq 0xbd15(%rip), %rsi      # 0x1d292
movq %rbx, %rdi
movl $0x3, %edx
movl $0x3, %ecx
callq 0x11be6
testl %eax, %eax
js 0x115a6
movl %eax, %eax
movq (%r14), %rcx
imulq $0xb0, %rax, %rax
movw $0xa, 0x30(%rcx,%rax)
leaq 0xb48b(%rip), %rsi      # 0x1ca38
movq %rbx, %rdi
movl $0x3, %edx
movl $0x4, %ecx
callq 0x11be6
testl %eax, %eax
js 0x115d6
movl %eax, %eax
movq (%r14), %rcx
imulq $0xb0, %rax, %rax
movw $0x28, 0x30(%rcx,%rax)
leaq 0xb456(%rip), %rsi      # 0x1ca33
movq %rbx, %rdi
movl $0x3, %edx
movl $0x5, %ecx
callq 0x11be6
testl %eax, %eax
js 0x11606
movl %eax, %eax
movq (%r14), %rcx
imulq $0xb0, %rax, %rax
movw $0xb, 0x30(%rcx,%rax)
leaq 0xb429(%rip), %rsi      # 0x1ca36
movq %rbx, %rdi
movl $0x3, %edx
movl $0x5, %ecx
callq 0x11be6
testl %eax, %eax
js 0x11636
movl %eax, %eax
movq (%r14), %rcx
imulq $0xb0, %rax, %rax
movw $0xc, 0x30(%rcx,%rax)
leaq 0xb3fd(%rip), %rsi      # 0x1ca3a
movq %rbx, %rdi
movl $0x3, %edx
movl $0x7, %ecx
callq 0x11be6
testl %eax, %eax
js 0x11666
movl %eax, %eax
movq (%r14), %rcx
imulq $0xb0, %rax, %rax
movw $0x2b, 0x30(%rcx,%rax)
leaq 0xb3d0(%rip), %rsi      # 0x1ca3d
movq %rbx, %rdi
movl $0x3, %edx
movl $0x8, %ecx
callq 0x11be6
testl %eax, %eax
js 0x11696
movl %eax, %eax
movq (%r14), %rcx
imulq $0xb0, %rax, %rax
movw $0x2c, 0x30(%rcx,%rax)
leaq 0xb3aa(%rip), %rsi      # 0x1ca47
movq %rbx, %rdi
movl $0x3, %edx
movl $0x9, %ecx
callq 0x11be6
testl %eax, %eax
js 0x116c6
movl %eax, %eax
movq (%r14), %rcx
imulq $0xb0, %rax, %rax
movw $0xd, 0x30(%rcx,%rax)
leaq 0xb37d(%rip), %rsi      # 0x1ca4a
movq %rbx, %rdi
movl $0x3, %edx
movl $0xa, %ecx
callq 0x11be6
testl %eax, %eax
js 0x116f6
movl %eax, %eax
movq (%r14), %rcx
imulq $0xb0, %rax, %rax
movw $0xe, 0x30(%rcx,%rax)
leaq 0xb492(%rip), %rsi      # 0x1cb8f
movq %rbx, %rdi
movl $0x3, %edx
movl $0xb, %ecx
callq 0x11be6
testl %eax, %eax
js 0x11726
movl %eax, %eax
movq (%r14), %rcx
imulq $0xb0, %rax, %rax
movw $0x29, 0x30(%rcx,%rax)
leaq 0xb313(%rip), %rsi      # 0x1ca40
movq %rbx, %rdi
movl $0x3, %edx
movl $0xc, %ecx
callq 0x11be6
testl %eax, %eax
js 0x11756
movl %eax, %eax
movq (%r14), %rcx
imulq $0xb0, %rax, %rax
movw $0xf, 0x30(%rcx,%rax)
leaq 0xb2e6(%rip), %rsi      # 0x1ca43
movq %rbx, %rdi
movl $0x3, %edx
movl $0xd, %ecx
callq 0x11be6
testl %eax, %eax
js 0x11786
movl %eax, %eax
movq (%r14), %rcx
imulq $0xb0, %rax, %rax
movw $0x10, 0x30(%rcx,%rax)
leaq 0xb2b1(%rip), %rsi      # 0x1ca3e
movq %rbx, %rdi
movl $0x3, %edx
movl $0xe, %ecx
callq 0x11be6
testl %eax, %eax
js 0x117b6
movl %eax, %eax
movq (%r14), %rcx
imulq $0xb0, %rax, %rax
movw $0x11, 0x30(%rcx,%rax)
leaq 0xb27e(%rip), %rsi      # 0x1ca3b
movq %rbx, %rdi
movl $0x3, %edx
movl $0xf, %ecx
callq 0x11be6
testl %eax, %eax
js 0x117e6
movl %eax, %eax
movq (%r14), %rcx
imulq $0xb0, %rax, %rax
movw $0x12, 0x30(%rcx,%rax)
leaq 0xb242(%rip), %rsi      # 0x1ca2f
movq %rbx, %rdi
movl $0x3, %edx
movl $0x10, %ecx
callq 0x11be6
testl %eax, %eax
js 0x11816
movl %eax, %eax
movq (%r14), %rcx
imulq $0xb0, %rax, %rax
movw $0x13, 0x30(%rcx,%rax)
leaq 0xb20e(%rip), %rsi      # 0x1ca2b
movq %rbx, %rdi
movl $0x3, %edx
movl $0x11, %ecx
callq 0x11be6
testl %eax, %eax
js 0x11846
movl %eax, %eax
movq (%r14), %rcx
imulq $0xb0, %rax, %rax
movw $0x14, 0x30(%rcx,%rax)
leaq 0xb1f9(%rip), %rsi      # 0x1ca46
movq %rbx, %rdi
movl $0x3, %edx
movl $0x12, %ecx
callq 0x11be6
testl %eax, %eax
js 0x11876
movl %eax, %eax
movq (%r14), %rcx
imulq $0xb0, %rax, %rax
movw $0x15, 0x30(%rcx,%rax)
leaq 0xb1cc(%rip), %rsi      # 0x1ca49
movq %rbx, %rdi
movl $0x3, %edx
movl $0x13, %ecx
callq 0x11be6
testl %eax, %eax
js 0x118a6
movl %eax, %eax
movq (%r14), %rcx
imulq $0xb0, %rax, %rax
movw $0x16, 0x30(%rcx,%rax)
leaq 0xb19f(%rip), %rsi      # 0x1ca4c
movq %rbx, %rdi
movl $0x35, %edx
movl $0x1, %ecx
callq 0x11be6
leaq 0xb18a(%rip), %rsi      # 0x1ca50
movq %rbx, %rdi
movl $0x7, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xb21b(%rip), %rsi      # 0x1caf7
movq %rbx, %rdi
movl $0x8, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xb191(%rip), %rsi      # 0x1ca83
movq %rbx, %rdi
movl $0x9, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xb954(%rip), %rsi      # 0x1d25c
movq %rbx, %rdi
movl $0x1c, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xb134(%rip), %rsi      # 0x1ca52
movq %rbx, %rdi
movl $0x1d, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0x90fd(%rip), %rsi      # 0x1aa31
movq %rbx, %rdi
movl $0x1f, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xb10d(%rip), %rsi      # 0x1ca57
movq %rbx, %rdi
movl $0x36, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xb0fb(%rip), %rsi      # 0x1ca5b
movq %rbx, %rdi
movl $0x37, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xb0eb(%rip), %rsi      # 0x1ca61
movq %rbx, %rdi
movl $0x38, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xb0de(%rip), %rsi      # 0x1ca6a
movq %rbx, %rdi
movl $0x39, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xb0cb(%rip), %rsi      # 0x1ca6d
movq %rbx, %rdi
movl $0x3b, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xb0bc(%rip), %rsi      # 0x1ca74
movq %rbx, %rdi
movl $0x3c, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xb0ab(%rip), %rsi      # 0x1ca79
movq %rbx, %rdi
movl $0x3d, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xb09d(%rip), %rsi      # 0x1ca81
movq %rbx, %rdi
movl $0x1b, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0x9304(%rip), %rsi      # 0x1acfe
movq %rbx, %rdi
movl $0x1e, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xa5ef(%rip), %rsi      # 0x1bfff
movq %rbx, %rdi
movl $0x20, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xa7e0(%rip), %rsi      # 0x1c206
movq %rbx, %rdi
movl $0x20, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xb049(%rip), %rsi      # 0x1ca85
movq %rbx, %rdi
movl $0x21, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xb3d4(%rip), %rsi      # 0x1ce26
movq %rbx, %rdi
movl $0x23, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xa88a(%rip), %rsi      # 0x1c2f2
movq %rbx, %rdi
movl $0x24, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xa42f(%rip), %rsi      # 0x1bead
movq %rbx, %rdi
movl $0x25, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xa41a(%rip), %rsi      # 0x1beae
movq %rbx, %rdi
movl $0x3e, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xafe2(%rip), %rsi      # 0x1ca8c
movq %rbx, %rdi
movl $0x26, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xafd6(%rip), %rsi      # 0x1ca96
movq %rbx, %rdi
movl $0x27, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xafc5(%rip), %rsi      # 0x1ca9b
movq %rbx, %rdi
movl $0x29, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0x989d(%rip), %rsi      # 0x1b389
movq %rbx, %rdi
movl $0x15, %edx
xorl %ecx, %ecx
callq 0x11be6
movl %eax, 0x1c(%rbx)
leaq 0xaf9e(%rip), %rsi      # 0x1caa3
movq %rbx, %rdi
movl $0x2b, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xa779(%rip), %rsi      # 0x1c294
movq %rbx, %rdi
movl $0x2c, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xa79f(%rip), %rsi      # 0x1c2d0
movq %rbx, %rdi
movl $0x2d, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xaf64(%rip), %rsi      # 0x1caab
movq %rbx, %rdi
movl $0x30, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xb521(%rip), %rsi      # 0x1d07e
movq %rbx, %rdi
movl $0x31, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xaf47(%rip), %rsi      # 0x1caba
movq %rbx, %rdi
movl $0x32, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xaf40(%rip), %rsi      # 0x1cac9
movq %rbx, %rdi
movl $0x33, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xaf32(%rip), %rsi      # 0x1cad1
movq %rbx, %rdi
movl $0x34, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0xaf28(%rip), %rsi      # 0x1cadd
movq %rbx, %rdi
movl $0x3a, %edx
xorl %ecx, %ecx
callq 0x11be6
leaq 0x8ef8(%rip), %rsi      # 0x1aac3
movq %rbx, %rdi
movl $0x3f, %edx
xorl %ecx, %ecx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x11be6
nop