// File: rofl0r[P]ascc/cc_symboltable.cpp
// Function: symbolTable::add_ex(char const*, int, char)
int symbolTable::add_ex(const char*nta,int typo,char sizee) {
	if (find(nta) >= 0) {
		return -1;
	}

	int p_value = entries.size();

	SymbolTableEntry entry = {};
	entry.sname = std::string(nta);
    entry.stype = typo;
    entry.flags = 0;
    entry.vartype = 0;
    entry.soffs = 0;
	entry.ssize = sizee;
	entry.sscope = 0;
    entry.arrsize = 0;
    entry.extends = 0;
	entry.funcparamtypes = std::vector<unsigned long>(MAX_FUNCTION_PARAMETERS + 1);
    entry.funcParamDefaultValues = std::vector<int>(MAX_FUNCTION_PARAMETERS + 1);
	entry.funcParamHasDefaultValues = std::vector<bool>(MAX_FUNCTION_PARAMETERS + 1);
	entries.push_back(entry);

    symbolTree.addEntry(nta, p_value);
    return p_value;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1f0, %rsp            # imm = 0x1F0
movb %cl, %al
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movl %edx, -0x1c(%rbp)
movb %al, -0x1d(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x188(%rbp)
movq -0x18(%rbp), %rsi
callq 0x1f050
cmpl $0x0, %eax
jl 0x1ec20
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x1efa4
movq -0x188(%rbp), %rdi
addq $0x28, %rdi
callq 0x17e80
movl %eax, -0x24(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0x4500
movw $0x0, -0xb8(%rbp)
movq $0x0, -0xb0(%rbp)
movw $0x0, -0xa8(%rbp)
movl $0x0, -0xa4(%rbp)
movq $0x0, -0xa0(%rbp)
movw $0x0, -0x98(%rbp)
movq $0x0, -0x90(%rbp)
movw $0x0, -0x88(%rbp)
leaq -0x80(%rbp), %rdi
xorps %xmm0, %xmm0
movaps %xmm0, -0x1b0(%rbp)
movups %xmm0, -0x80(%rbp)
movq $0x0, -0x70(%rbp)
callq 0x1fcf0
movaps -0x1b0(%rbp), %xmm0
leaq -0x68(%rbp), %rdi
movups %xmm0, -0x68(%rbp)
movq $0x0, -0x58(%rbp)
callq 0x18500
movaps -0x1b0(%rbp), %xmm0
leaq -0x50(%rbp), %rdi
movups %xmm0, -0x40(%rbp)
movups %xmm0, -0x50(%rbp)
movq $0x0, -0x30(%rbp)
callq 0x1fd10
movq -0x18(%rbp), %rax
movq %rax, -0x198(%rbp)
leaq -0xf9(%rbp), %rdi
movq %rdi, -0x190(%rbp)
callq 0x4680
movq -0x198(%rbp), %rsi
movq -0x190(%rbp), %rdx
leaq -0xf8(%rbp), %rdi
callq 0x18000
jmp 0x1ed23
leaq -0xd8(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
movq %rsi, -0x1c0(%rbp)
callq 0x4490
movq -0x1c0(%rbp), %rdi
callq 0x4270
leaq -0xf9(%rbp), %rdi
callq 0x43e0
movw -0x1c(%rbp), %ax
movw %ax, -0xb8(%rbp)
movq $0x0, -0xb0(%rbp)
movw $0x0, -0xa8(%rbp)
movl $0x0, -0xa4(%rbp)
movsbq -0x1d(%rbp), %rax
movq %rax, -0xa0(%rbp)
movw $0x0, -0x98(%rbp)
movq $0x0, -0x90(%rbp)
movw $0x0, -0x88(%rbp)
leaq -0x129(%rbp), %rdi
movq %rdi, -0x1b8(%rbp)
callq 0x1fd30
movq -0x1b8(%rbp), %rdx
leaq -0x128(%rbp), %rdi
movl $0x10, %esi
callq 0x1fd50
jmp 0x1edd4
leaq -0x80(%rbp), %rdi
leaq -0x128(%rbp), %rsi
movq %rsi, -0x1d0(%rbp)
callq 0x1fdc0
movq -0x1d0(%rbp), %rdi
callq 0x1fdf0
leaq -0x129(%rbp), %rdi
callq 0x1fe50
leaq -0x149(%rbp), %rdi
movq %rdi, -0x1c8(%rbp)
callq 0x18570
movq -0x1c8(%rbp), %rdx
leaq -0x148(%rbp), %rdi
movl $0x10, %esi
callq 0x1fe70
jmp 0x1ee30
leaq -0x68(%rbp), %rdi
leaq -0x148(%rbp), %rsi
movq %rsi, -0x1e0(%rbp)
callq 0x1fee0
movq -0x1e0(%rbp), %rdi
callq 0x185d0
leaq -0x149(%rbp), %rdi
callq 0x18a50
leaq -0x179(%rbp), %rdi
movq %rdi, -0x1d8(%rbp)
callq 0x1ff10
movq -0x1d8(%rbp), %rdx
leaq -0x178(%rbp), %rdi
movl $0x10, %esi
callq 0x1ff30
jmp 0x1ee8c
leaq -0x50(%rbp), %rdi
leaq -0x178(%rbp), %rsi
movq %rsi, -0x1e8(%rbp)
callq 0x1ff70
movq -0x1e8(%rbp), %rdi
callq 0x1ffd0
leaq -0x179(%rbp), %rdi
callq 0x1fff0
movq -0x188(%rbp), %rdi
addq $0x28, %rdi
leaq -0xd8(%rbp), %rsi
callq 0x20010
jmp 0x1eed4
movq -0x188(%rbp), %rdi
addq $0x70, %rdi
movq -0x18(%rbp), %rsi
movl -0x24(%rbp), %edx
callq 0x1beb0
jmp 0x1eeed
movl -0x24(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0x20080
jmp 0x1efa4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
leaq -0xf9(%rbp), %rdi
callq 0x43e0
jmp 0x1ef96
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
leaq -0x129(%rbp), %rdi
callq 0x1fe50
jmp 0x1ef96
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
leaq -0x149(%rbp), %rdi
callq 0x18a50
jmp 0x1ef96
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
leaq -0x179(%rbp), %rdi
callq 0x1fff0
jmp 0x1ef96
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0x20080
jmp 0x1efb0
movl -0x4(%rbp), %eax
addq $0x1f0, %rsp            # imm = 0x1F0
popq %rbp
retq
movq -0x108(%rbp), %rdi
callq 0x4670
nopl (%rax)