void SUB_XGOSUB(qbs*_SUB_XGOSUB_STRING_CA){
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 "data46.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;
do{
qbs_set(_SUB_XGOSUB_STRING_A2,FUNC_GETELEMENT(_SUB_XGOSUB_STRING_CA,&(pass3404= 2 )));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(23014);}while(r);
S_30940:;
if ((qbs_cleanup(qbs_tmp_base,-(FUNC_VALIDLABEL(_SUB_XGOSUB_STRING_A2)== 0 )))||is_error_pending()){
if(qbevent){evnt(23015);if(r)goto S_30940;}
do{
SUB_GIVE_ERROR(qbs_new_txt_len("Invalid label",13));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(23015);}while(r);
do{
goto exit_subfunc;
if(!qbevent)break;evnt(23015);}while(r);
}
do{
*_SUB_XGOSUB_LONG_V=FUNC_HASHFIND(_SUB_XGOSUB_STRING_A2,&(pass3405= 2ll ),_SUB_XGOSUB_LONG_IGNORE,_SUB_XGOSUB_LONG_R);
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(23017);}while(r);
do{
*_SUB_XGOSUB_LONG_X= 1 ;
if(!qbevent)break;evnt(23018);}while(r);
LABEL_LABCHK200:;
if(qbevent){evnt(23019);r=0;}
S_30946:;
if ((*_SUB_XGOSUB_LONG_V)||is_error_pending()){
if(qbevent){evnt(23020);if(r)goto S_30946;}
do{
*_SUB_XGOSUB_LONG_S=*(int32*)(((char*)__ARRAY_UDT_LABELS[0])+((array_check((*_SUB_XGOSUB_LONG_R)-__ARRAY_UDT_LABELS[4],__ARRAY_UDT_LABELS[5]))*282+257));
if(!qbevent)break;evnt(23021);}while(r);
S_30948:;
if (((-(*_SUB_XGOSUB_LONG_S==*__LONG_SUBFUNCN))|(-(*_SUB_XGOSUB_LONG_S== -1 )))||is_error_pending()){
if(qbevent){evnt(23022);if(r)goto S_30948;}
S_30949:;
if ((-(*_SUB_XGOSUB_LONG_S== -1 ))||is_error_pending()){
if(qbevent){evnt(23023);if(r)goto S_30949;}
do{
*(int32*)(((char*)__ARRAY_UDT_LABELS[0])+((array_check((*_SUB_XGOSUB_LONG_R)-__ARRAY_UDT_LABELS[4],__ARRAY_UDT_LABELS[5]))*282+257))=*__LONG_SUBFUNCN;
if(!qbevent)break;evnt(23023);}while(r);
}
do{
*_SUB_XGOSUB_LONG_X= 0 ;
if(!qbevent)break;evnt(23024);}while(r);
do{
qbs_set(__STRING_TLAYOUT,qbs_rtrim(qbs_new_fixed((((uint8*)__ARRAY_UDT_LABELS[0])+((array_check((*_SUB_XGOSUB_LONG_R)-__ARRAY_UDT_LABELS[4],__ARRAY_UDT_LABELS[5]))*282+1)),256,1)));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(23025);}while(r);
}else{
S_30955:;
if ((-(*_SUB_XGOSUB_LONG_V== 2 ))||is_error_pending()){
if(qbevent){evnt(23027);if(r)goto S_30955;}
do{
*_SUB_XGOSUB_LONG_V=FUNC_HASHFINDCONT(_SUB_XGOSUB_LONG_IGNORE,_SUB_XGOSUB_LONG_R);
if(!qbevent)break;evnt(23027);}while(r);
do{
goto LABEL_LABCHK200;
if(!qbevent)break;evnt(23027);}while(r);
}
}
}
S_30961:;
if ((*_SUB_XGOSUB_LONG_X)||is_error_pending()){
if(qbevent){evnt(23030);if(r)goto S_30961;}
do{
*__LONG_NLABELS=*__LONG_NLABELS+ 1 ;
if(!qbevent)break;evnt(23032);}while(r);
S_30963:;
if ((-(*__LONG_NLABELS>*__LONG_LABELS_UBOUND))||is_error_pending()){
if(qbevent){evnt(23032);if(r)goto S_30963;}
do{
*__LONG_LABELS_UBOUND=*__LONG_LABELS_UBOUND* 2 ;
if(!qbevent)break;evnt(23032);}while(r);
do{

if (__ARRAY_UDT_LABELS[2]&2){
error(10);
}else{
((mem_lock*)((ptrszint*)__ARRAY_UDT_LABELS)[8])->id=(++mem_lock_id);
static int32 preserved_elements;
if (__ARRAY_UDT_LABELS[2]&1){
preserved_elements=__ARRAY_UDT_LABELS[5];
}
else preserved_elements=0;
__ARRAY_UDT_LABELS[4]= 1 ;
__ARRAY_UDT_LABELS[5]=(*__LONG_LABELS_UBOUND)-__ARRAY_UDT_LABELS[4]+1;
__ARRAY_UDT_LABELS[6]=1;
if (__ARRAY_UDT_LABELS[2]&4){
if (preserved_elements){
memcpy(redim_preserve_cmem_buffer,(void*)(__ARRAY_UDT_LABELS[0]),preserved_elements*282);
cmem_dynamic_free((uint8*)(__ARRAY_UDT_LABELS[0]));
tmp_long=__ARRAY_UDT_LABELS[5];
__ARRAY_UDT_LABELS[0]=(ptrszint)cmem_dynamic_malloc(tmp_long*282);
memcpy((void*)(__ARRAY_UDT_LABELS[0]),redim_preserve_cmem_buffer,preserved_elements*282);
if (preserved_elements<tmp_long) ZeroMemory(((uint8*)(__ARRAY_UDT_LABELS[0]))+preserved_elements*282,(tmp_long*282)-(preserved_elements*282));
}else{
__ARRAY_UDT_LABELS[0]=(ptrszint)cmem_dynamic_malloc(__ARRAY_UDT_LABELS[5]*282);
memset((void*)(__ARRAY_UDT_LABELS[0]),0,__ARRAY_UDT_LABELS[5]*282);
}
}else{
if (preserved_elements){
tmp_long=__ARRAY_UDT_LABELS[5];
__ARRAY_UDT_LABELS[0]=(ptrszint)realloc((void*)(__ARRAY_UDT_LABELS[0]),tmp_long*282);
if (!__ARRAY_UDT_LABELS[0]) error(257);
if (preserved_elements<tmp_long) ZeroMemory(((uint8*)(__ARRAY_UDT_LABELS[0]))+preserved_elements*282,(tmp_long*282)-(preserved_elements*282));
}else{
__ARRAY_UDT_LABELS[0]=(ptrszint)calloc(__ARRAY_UDT_LABELS[5]*282,1);
if (!__ARRAY_UDT_LABELS[0]) error(257);
}
}
__ARRAY_UDT_LABELS[2]|=1;
}
if(!qbevent)break;evnt(23032);}while(r);
}
do{
memcpy(((char*)__ARRAY_UDT_LABELS[0])+((array_check((*__LONG_NLABELS)-__ARRAY_UDT_LABELS[4],__ARRAY_UDT_LABELS[5]))*282)+ 0,((char*)__UDT_EMPTY_LABEL)+(0)+ 0, 282);
if(!qbevent)break;evnt(23033);}while(r);
do{
SUB_HASHADD(_SUB_XGOSUB_STRING_A2,&(pass3406= 2ll ),__LONG_NLABELS);
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(23034);}while(r);
do{
*_SUB_XGOSUB_LONG_R=*__LONG_NLABELS;
if(!qbevent)break;evnt(23035);}while(r);
do{
*(uint8*)(((char*)__ARRAY_UDT_LABELS[0])+((array_check((*_SUB_XGOSUB_LONG_R)-__ARRAY_UDT_LABELS[4],__ARRAY_UDT_LABELS[5]))*282))= 0 ;
if(!qbevent)break;evnt(23036);}while(r);
do{
qbs_set(qbs_new_fixed((((uint8*)__ARRAY_UDT_LABELS[0])+((array_check((*_SUB_XGOSUB_LONG_R)-__ARRAY_UDT_LABELS[4],__ARRAY_UDT_LABELS[5]))*282+1)),256,1),__STRING_TLAYOUT);
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(23037);}while(r);
do{
*(int32*)(((char*)__ARRAY_UDT_LABELS[0])+((array_check((*_SUB_XGOSUB_LONG_R)-__ARRAY_UDT_LABELS[4],__ARRAY_UDT_LABELS[5]))*282+257))=*__LONG_SUBFUNCN;
if(!qbevent)break;evnt(23038);}while(r);
do{
*(int32*)(((char*)__ARRAY_UDT_LABELS[0])+((array_check((*_SUB_XGOSUB_LONG_R)-__ARRAY_UDT_LABELS[4],__ARRAY_UDT_LABELS[5]))*282+270))=*__LONG_LINENUMBER;
if(!qbevent)break;evnt(23039);}while(r);
}
do{
qbs_set(_SUB_XGOSUB_STRING_L,qbs_add(qbs_add(FUNC_SCASE(qbs_new_txt_len("GoSub",5)),__STRING1_SP),__STRING_TLAYOUT));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(23042);}while(r);
do{
*__LONG_LAYOUTDONE= 1 ;
if(!qbevent)break;evnt(23043);}while(r);
S_30977:;
if ((qbs_cleanup(qbs_tmp_base,__STRING_LAYOUT->len))||is_error_pending()){
if(qbevent){evnt(23043);if(r)goto S_30977;}
do{
qbs_set(__STRING_LAYOUT,qbs_add(qbs_add(__STRING_LAYOUT,__STRING1_SP),_SUB_XGOSUB_STRING_L));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(23043);}while(r);
}else{
do{
qbs_set(__STRING_LAYOUT,_SUB_XGOSUB_STRING_L);
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(23043);}while(r);
}
do{
SUB_WRITEBUFLINE(&(pass3408=*__LONG_MAINTXTBUF),qbs_add(qbs_add(qbs_new_txt_len("return_point[next_return_point++]=",34),qbs__tostr((int32)(*__LONG_GOSUBID),NULL,0)),qbs_new_txt_len(";",1)));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(23046);}while(r);
do{
SUB_WRITEBUFLINE(&(pass3409=*__LONG_MAINTXTBUF),qbs_new_txt_len("if (next_return_point>=return_points) more_return_points();",59));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(23047);}while(r);
do{
SUB_WRITEBUFLINE(&(pass3410=*__LONG_MAINTXTBUF),qbs_add(qbs_add(qbs_new_txt_len("goto LABEL_",11),_SUB_XGOSUB_STRING_A2),qbs_new_txt_len(";",1)));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(23048);}while(r);
do{
SUB_WRITEBUFLINE(&(pass3411=*__LONG_RETTXTBUF),qbs_add(qbs_add(qbs_new_txt_len("case ",5),qbs__tostr((int32)(*__LONG_GOSUBID),NULL,0)),qbs_new_txt_len(":",1)));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(23050);}while(r);
do{
SUB_WRITEBUFLINE(&(pass3412=*__LONG_RETTXTBUF),qbs_add(qbs_add(qbs_new_txt_len("goto RETURN_",12),qbs__tostr((int32)(*__LONG_GOSUBID),NULL,0)),qbs_new_txt_len(";",1)));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(23051);}while(r);
do{
SUB_WRITEBUFLINE(&(pass3413=*__LONG_RETTXTBUF),qbs_new_txt_len("break;",6));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(23052);}while(r);
do{
SUB_WRITEBUFLINE(&(pass3414=*__LONG_MAINTXTBUF),qbs_add(qbs_add(qbs_new_txt_len("RETURN_",7),qbs__tostr((int32)(*__LONG_GOSUBID),NULL,0)),qbs_new_txt_len(":;",2)));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(23053);}while(r);
do{
*__LONG_GOSUBID=*__LONG_GOSUBID+ 1 ;
if(!qbevent)break;evnt(23054);}while(r);
exit_subfunc:;
free_mem_lock(sf_mem_lock);
#include "free46.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;
}
