void SUB_HASHADD(qbs*_SUB_HASHADD_STRING_A,int32*_SUB_HASHADD_LONG_FLAGS,int32*_SUB_HASHADD_LONG_REFERENCE){
qbs *tqbs;
ptrszint tmp_long;
int32 tmp_fileno;
uint32 qbs_tmp_base=qbs_tmp_list_nexti;
uint8 *tmp_mem_static_pointer=mem_static_pointer;
uint32 tmp_cmem_sp=cmem_sp;
#include "data203.txt"
mem_lock *sf_mem_lock;
new_mem_lock();
sf_mem_lock=mem_lock_tmp;
sf_mem_lock->type=3;
if (is_error_pending()) goto exit_subfunc;
S_36047:;
if ((-(*__LONG_HASHLISTFREELAST> 0 ))||is_error_pending()){
if(qbevent){evnt(24223,45,"hash.bas");if(r)goto S_36047;}
do{
*_SUB_HASHADD_LONG_I=((int32*)(__ARRAY_LONG_HASHLISTFREE[0]))[array_check((*__LONG_HASHLISTFREELAST)-__ARRAY_LONG_HASHLISTFREE[4],__ARRAY_LONG_HASHLISTFREE[5])];
if(!qbevent)break;evnt(24223,47,"hash.bas");}while(r);
do{
*__LONG_HASHLISTFREELAST=*__LONG_HASHLISTFREELAST- 1 ;
if(!qbevent)break;evnt(24223,48,"hash.bas");}while(r);
}else{
S_36051:;
if ((-(*__LONG_HASHLISTNEXT>*__LONG_HASHLISTSIZE))||is_error_pending()){
if(qbevent){evnt(24223,50,"hash.bas");if(r)goto S_36051;}
do{
*__LONG_HASHLISTSIZE=*__LONG_HASHLISTSIZE* 2 ;
if(!qbevent)break;evnt(24223,52,"hash.bas");}while(r);
do{

if (__ARRAY_UDT_HASHLIST[2]&2){
error(10);
}else{
((mem_lock*)((ptrszint*)__ARRAY_UDT_HASHLIST)[8])->id=(++mem_lock_id);
static int32 preserved_elements;
if (__ARRAY_UDT_HASHLIST[2]&1){
preserved_elements=__ARRAY_UDT_HASHLIST[5];
}
else preserved_elements=0;
__ARRAY_UDT_HASHLIST[4]= 1 ;
__ARRAY_UDT_HASHLIST[5]=(*__LONG_HASHLISTSIZE)-__ARRAY_UDT_HASHLIST[4]+1;
__ARRAY_UDT_HASHLIST[6]=1;
if (__ARRAY_UDT_HASHLIST[2]&4){
if (preserved_elements){
memcpy(redim_preserve_cmem_buffer,(void*)(__ARRAY_UDT_HASHLIST[0]),preserved_elements*20);
cmem_dynamic_free((uint8*)(__ARRAY_UDT_HASHLIST[0]));
tmp_long=__ARRAY_UDT_HASHLIST[5];
__ARRAY_UDT_HASHLIST[0]=(ptrszint)cmem_dynamic_malloc(tmp_long*20);
memcpy((void*)(__ARRAY_UDT_HASHLIST[0]),redim_preserve_cmem_buffer,preserved_elements*20);
if (preserved_elements<tmp_long) ZeroMemory(((uint8*)(__ARRAY_UDT_HASHLIST[0]))+preserved_elements*20,(tmp_long*20)-(preserved_elements*20));
}else{
__ARRAY_UDT_HASHLIST[0]=(ptrszint)cmem_dynamic_malloc(__ARRAY_UDT_HASHLIST[5]*20);
memset((void*)(__ARRAY_UDT_HASHLIST[0]),0,__ARRAY_UDT_HASHLIST[5]*20);
}
}else{
if (preserved_elements){
tmp_long=__ARRAY_UDT_HASHLIST[5];
__ARRAY_UDT_HASHLIST[0]=(ptrszint)realloc((void*)(__ARRAY_UDT_HASHLIST[0]),tmp_long*20);
if (!__ARRAY_UDT_HASHLIST[0]) error(257);
if (preserved_elements<tmp_long) ZeroMemory(((uint8*)(__ARRAY_UDT_HASHLIST[0]))+preserved_elements*20,(tmp_long*20)-(preserved_elements*20));
}else{
__ARRAY_UDT_HASHLIST[0]=(ptrszint)calloc(__ARRAY_UDT_HASHLIST[5]*20,1);
if (!__ARRAY_UDT_HASHLIST[0]) error(257);
}
}
__ARRAY_UDT_HASHLIST[2]|=1;
}
if(!qbevent)break;evnt(24223,53,"hash.bas");}while(r);
do{

if (__ARRAY_STRING256_HASHLISTNAME[2]&2){
error(10);
}else{
((mem_lock*)((ptrszint*)__ARRAY_STRING256_HASHLISTNAME)[8])->id=(++mem_lock_id);
static int32 preserved_elements;
if (__ARRAY_STRING256_HASHLISTNAME[2]&1){
preserved_elements=__ARRAY_STRING256_HASHLISTNAME[5];
}
else preserved_elements=0;
__ARRAY_STRING256_HASHLISTNAME[4]= 1 ;
__ARRAY_STRING256_HASHLISTNAME[5]=(*__LONG_HASHLISTSIZE)-__ARRAY_STRING256_HASHLISTNAME[4]+1;
__ARRAY_STRING256_HASHLISTNAME[6]=1;
if (__ARRAY_STRING256_HASHLISTNAME[2]&4){
if (preserved_elements){
memcpy(redim_preserve_cmem_buffer,(void*)(__ARRAY_STRING256_HASHLISTNAME[0]),preserved_elements*256);
cmem_dynamic_free((uint8*)(__ARRAY_STRING256_HASHLISTNAME[0]));
tmp_long=__ARRAY_STRING256_HASHLISTNAME[5];
__ARRAY_STRING256_HASHLISTNAME[0]=(ptrszint)cmem_dynamic_malloc(tmp_long*256);
memcpy((void*)(__ARRAY_STRING256_HASHLISTNAME[0]),redim_preserve_cmem_buffer,preserved_elements*256);
if (preserved_elements<tmp_long) ZeroMemory(((uint8*)(__ARRAY_STRING256_HASHLISTNAME[0]))+preserved_elements*256,(tmp_long*256)-(preserved_elements*256));
}else{
__ARRAY_STRING256_HASHLISTNAME[0]=(ptrszint)cmem_dynamic_malloc(__ARRAY_STRING256_HASHLISTNAME[5]*256);
memset((void*)(__ARRAY_STRING256_HASHLISTNAME[0]),0,__ARRAY_STRING256_HASHLISTNAME[5]*256);
}
}else{
if (preserved_elements){
tmp_long=__ARRAY_STRING256_HASHLISTNAME[5];
__ARRAY_STRING256_HASHLISTNAME[0]=(ptrszint)realloc((void*)(__ARRAY_STRING256_HASHLISTNAME[0]),tmp_long*256);
if (!__ARRAY_STRING256_HASHLISTNAME[0]) error(257);
if (preserved_elements<tmp_long) ZeroMemory(((uint8*)(__ARRAY_STRING256_HASHLISTNAME[0]))+preserved_elements*256,(tmp_long*256)-(preserved_elements*256));
}else{
__ARRAY_STRING256_HASHLISTNAME[0]=(ptrszint)calloc(__ARRAY_STRING256_HASHLISTNAME[5]*256,1);
if (!__ARRAY_STRING256_HASHLISTNAME[0]) error(257);
}
}
__ARRAY_STRING256_HASHLISTNAME[2]|=1;
}
if(!qbevent)break;evnt(24223,54,"hash.bas");}while(r);
}
do{
*_SUB_HASHADD_LONG_I=*__LONG_HASHLISTNEXT;
if(!qbevent)break;evnt(24223,56,"hash.bas");}while(r);
do{
*__LONG_HASHLISTNEXT=*__LONG_HASHLISTNEXT+ 1 ;
if(!qbevent)break;evnt(24223,57,"hash.bas");}while(r);
}
do{
*_SUB_HASHADD_LONG_X=FUNC_HASHVALUE(_SUB_HASHADD_STRING_A);
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(24223,61,"hash.bas");}while(r);
do{
*_SUB_HASHADD_LONG_I2=((int32*)(__ARRAY_LONG_HASHTABLE[0]))[array_check((*_SUB_HASHADD_LONG_X)-__ARRAY_LONG_HASHTABLE[4],__ARRAY_LONG_HASHTABLE[5])];
if(!qbevent)break;evnt(24223,62,"hash.bas");}while(r);
S_36061:;
if ((*_SUB_HASHADD_LONG_I2)||is_error_pending()){
if(qbevent){evnt(24223,63,"hash.bas");if(r)goto S_36061;}
do{
*_SUB_HASHADD_LONG_I3=*(int32*)(((char*)__ARRAY_UDT_HASHLIST[0])+((array_check((*_SUB_HASHADD_LONG_I2)-__ARRAY_UDT_HASHLIST[4],__ARRAY_UDT_HASHLIST[5]))*20+16));
if(!qbevent)break;evnt(24223,64,"hash.bas");}while(r);
do{
*(int32*)(((char*)__ARRAY_UDT_HASHLIST[0])+((array_check((*_SUB_HASHADD_LONG_I2)-__ARRAY_UDT_HASHLIST[4],__ARRAY_UDT_HASHLIST[5]))*20+16))=*_SUB_HASHADD_LONG_I;
if(!qbevent)break;evnt(24223,65,"hash.bas");}while(r);
do{
*(int32*)(((char*)__ARRAY_UDT_HASHLIST[0])+((array_check((*_SUB_HASHADD_LONG_I3)-__ARRAY_UDT_HASHLIST[4],__ARRAY_UDT_HASHLIST[5]))*20+8))=*_SUB_HASHADD_LONG_I;
if(!qbevent)break;evnt(24223,66,"hash.bas");}while(r);
do{
*(int32*)(((char*)__ARRAY_UDT_HASHLIST[0])+((array_check((*_SUB_HASHADD_LONG_I)-__ARRAY_UDT_HASHLIST[4],__ARRAY_UDT_HASHLIST[5]))*20+12))=*_SUB_HASHADD_LONG_I3;
if(!qbevent)break;evnt(24223,67,"hash.bas");}while(r);
}else{
do{
tmp_long=array_check((*_SUB_HASHADD_LONG_X)-__ARRAY_LONG_HASHTABLE[4],__ARRAY_LONG_HASHTABLE[5]);
if (!is_error_pending()) ((int32*)(__ARRAY_LONG_HASHTABLE[0]))[tmp_long]=*_SUB_HASHADD_LONG_I;
if(!qbevent)break;evnt(24223,69,"hash.bas");}while(r);
do{
*(int32*)(((char*)__ARRAY_UDT_HASHLIST[0])+((array_check((*_SUB_HASHADD_LONG_I)-__ARRAY_UDT_HASHLIST[4],__ARRAY_UDT_HASHLIST[5]))*20+12))= 0 ;
if(!qbevent)break;evnt(24223,70,"hash.bas");}while(r);
do{
*(int32*)(((char*)__ARRAY_UDT_HASHLIST[0])+((array_check((*_SUB_HASHADD_LONG_I)-__ARRAY_UDT_HASHLIST[4],__ARRAY_UDT_HASHLIST[5]))*20+16))=*_SUB_HASHADD_LONG_I;
if(!qbevent)break;evnt(24223,71,"hash.bas");}while(r);
}
do{
*(int32*)(((char*)__ARRAY_UDT_HASHLIST[0])+((array_check((*_SUB_HASHADD_LONG_I)-__ARRAY_UDT_HASHLIST[4],__ARRAY_UDT_HASHLIST[5]))*20+8))= 0 ;
if(!qbevent)break;evnt(24223,73,"hash.bas");}while(r);
do{
*(int32*)(((char*)__ARRAY_UDT_HASHLIST[0])+((array_check((*_SUB_HASHADD_LONG_I)-__ARRAY_UDT_HASHLIST[4],__ARRAY_UDT_HASHLIST[5]))*20))=*_SUB_HASHADD_LONG_FLAGS;
if(!qbevent)break;evnt(24223,76,"hash.bas");}while(r);
do{
*(int32*)(((char*)__ARRAY_UDT_HASHLIST[0])+((array_check((*_SUB_HASHADD_LONG_I)-__ARRAY_UDT_HASHLIST[4],__ARRAY_UDT_HASHLIST[5]))*20+4))=*_SUB_HASHADD_LONG_REFERENCE;
if(!qbevent)break;evnt(24223,77,"hash.bas");}while(r);
do{
tmp_long=array_check((*_SUB_HASHADD_LONG_I)-__ARRAY_STRING256_HASHLISTNAME[4],__ARRAY_STRING256_HASHLISTNAME[5]);
if (!is_error_pending()) qbs_set(qbs_new_fixed(&((uint8*)(__ARRAY_STRING256_HASHLISTNAME[0]))[tmp_long*256],256,1),qbs_ucase(_SUB_HASHADD_STRING_A));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(24223,78,"hash.bas");}while(r);
exit_subfunc:;
free_mem_lock(sf_mem_lock);
#include "free203.txt"
if ((tmp_mem_static_pointer>=mem_static)&&(tmp_mem_static_pointer<=mem_static_limit)) mem_static_pointer=tmp_mem_static_pointer; else mem_static_pointer=mem_static;
cmem_sp=tmp_cmem_sp;
}
