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 "data54.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,&(pass3635= 2 )));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(24548);}while(r);
S_32450:;
if ((qbs_cleanup(qbs_tmp_base,-(FUNC_VALIDLABEL(_SUB_XGOSUB_STRING_A2)== 0 )))||is_error_pending()){
if(qbevent){evnt(24549);if(r)goto S_32450;}
do{
SUB_GIVE_ERROR(qbs_new_txt_len("Invalid label",13));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(24549);}while(r);
do{
goto exit_subfunc;
if(!qbevent)break;evnt(24549);}while(r);
}
do{
*_SUB_XGOSUB_LONG_V=FUNC_HASHFIND(_SUB_XGOSUB_STRING_A2,&(pass3636= 2ll ),_SUB_XGOSUB_LONG_IGNORE,_SUB_XGOSUB_LONG_R);
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(24551);}while(r);
do{
*_SUB_XGOSUB_LONG_X= 1 ;
if(!qbevent)break;evnt(24552);}while(r);
LABEL_LABCHK200:;
if(qbevent){evnt(24553);r=0;}
S_32456:;
if ((*_SUB_XGOSUB_LONG_V)||is_error_pending()){
if(qbevent){evnt(24554);if(r)goto S_32456;}
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(24555);}while(r);
S_32458:;
if (((-(*_SUB_XGOSUB_LONG_S==*__LONG_SUBFUNCN))|(-(*_SUB_XGOSUB_LONG_S== -1 )))||is_error_pending()){
if(qbevent){evnt(24556);if(r)goto S_32458;}
S_32459:;
if ((-(*_SUB_XGOSUB_LONG_S== -1 ))||is_error_pending()){
if(qbevent){evnt(24557);if(r)goto S_32459;}
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(24557);}while(r);
}
do{
*_SUB_XGOSUB_LONG_X= 0 ;
if(!qbevent)break;evnt(24558);}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(24559);}while(r);
}else{
S_32465:;
if ((-(*_SUB_XGOSUB_LONG_V== 2 ))||is_error_pending()){
if(qbevent){evnt(24561);if(r)goto S_32465;}
do{
*_SUB_XGOSUB_LONG_V=FUNC_HASHFINDCONT(_SUB_XGOSUB_LONG_IGNORE,_SUB_XGOSUB_LONG_R);
if(!qbevent)break;evnt(24561);}while(r);
do{
goto LABEL_LABCHK200;
if(!qbevent)break;evnt(24561);}while(r);
}
}
}
S_32471:;
if ((*_SUB_XGOSUB_LONG_X)||is_error_pending()){
if(qbevent){evnt(24564);if(r)goto S_32471;}
do{
*__LONG_NLABELS=*__LONG_NLABELS+ 1 ;
if(!qbevent)break;evnt(24566);}while(r);
S_32473:;
if ((-(*__LONG_NLABELS>*__LONG_LABELS_UBOUND))||is_error_pending()){
if(qbevent){evnt(24566);if(r)goto S_32473;}
do{
*__LONG_LABELS_UBOUND=*__LONG_LABELS_UBOUND* 2 ;
if(!qbevent)break;evnt(24566);}while(r);
do{
if (__ARRAY_UDT_LABELS[2]&2){
error(10);
}else{
static int64 alloc_new_desc[8];
static uint64 alloc_req_elems;
static uint64 alloc_req_bytes;
static uint64 alloc_dim_value;
static uint64 alloc_bytes_per_element;
((mem_lock*)((ptrszint*)__ARRAY_UDT_LABELS)[8])->id=(++mem_lock_id);
static ptrszint preserve_old_ptr;
static ptrszint preserve_old_flags;
static uint64 preserve_old_total;
static uint64 preserve_new_total;
static uint64 preserve_copy_count;
static ptrszint preserve_new_ptr;
if (__ARRAY_UDT_LABELS[2]&1){
preserve_old_ptr=__ARRAY_UDT_LABELS[0];
preserve_old_flags=__ARRAY_UDT_LABELS[2];
preserve_old_total=__ARRAY_UDT_LABELS[5];
}else{
preserve_old_total=0; preserve_old_ptr=0; preserve_old_flags=0; preserve_new_total=0; preserve_copy_count=0;
}
alloc_new_desc[4]= 1 ;
alloc_new_desc[5]=(*__LONG_LABELS_UBOUND)-alloc_new_desc[4]+1;
if (alloc_new_desc[5]<=0) error(5);
alloc_new_desc[6]=1;
alloc_req_elems=1;
alloc_bytes_per_element=(uint64)(282);
if (!alloc_bytes_per_element) error(257);
if (((int64)((ptrszint)alloc_new_desc[4]))!=alloc_new_desc[4]) error(257);
if (alloc_new_desc[5]<0) error(257);
if (((int64)((ptrszint)alloc_new_desc[5]))!=alloc_new_desc[5]) error(257);
if (alloc_new_desc[6]<0) error(257);
if (((int64)((ptrszint)alloc_new_desc[6]))!=alloc_new_desc[6]) error(257);
alloc_dim_value=(uint64)alloc_new_desc[5];
if (alloc_dim_value){
if (alloc_req_elems>(18446744073709551615ull/alloc_dim_value)) error(257);
alloc_req_elems*=alloc_dim_value;
}
if (alloc_req_elems>(18446744073709551615ull/alloc_bytes_per_element)) error(257);
alloc_req_bytes=alloc_req_elems*alloc_bytes_per_element;
if (((uint64)((ptrszint)alloc_req_elems))!=alloc_req_elems) error(257);
if (((uint64)((size_t)alloc_req_bytes))!=alloc_req_bytes) error(257);
preserve_new_total=alloc_req_elems;
preserve_copy_count=preserve_old_total;
if (preserve_new_total<preserve_copy_count) preserve_copy_count=preserve_new_total;
if (__ARRAY_UDT_LABELS[2]&4){
if (preserve_old_total){
preserve_new_ptr=(ptrszint)cmem_dynamic_malloc((size_t)alloc_req_bytes);
if (!preserve_new_ptr) error(257);
memset((void*)(preserve_new_ptr),0,(size_t)alloc_req_bytes);
if (preserve_copy_count) memcpy((void*)(preserve_new_ptr),(void*)(preserve_old_ptr),preserve_copy_count*282);
if (preserve_old_flags&4){
cmem_dynamic_free((uint8*)(preserve_old_ptr));
}else{
free((void*)(preserve_old_ptr));
}
__ARRAY_UDT_LABELS[0]=preserve_new_ptr;
}else{
__ARRAY_UDT_LABELS[0]=(ptrszint)cmem_dynamic_malloc((size_t)alloc_req_bytes);
if (!__ARRAY_UDT_LABELS[0]) error(257);
memset((void*)(__ARRAY_UDT_LABELS[0]),0,(size_t)alloc_req_bytes);
}
}else{
if (preserve_old_total){
preserve_new_ptr=(ptrszint)calloc((size_t)alloc_req_bytes,1);
if (!preserve_new_ptr) error(257);
if (preserve_copy_count) memcpy((void*)(preserve_new_ptr),(void*)(preserve_old_ptr),preserve_copy_count*282);
if (preserve_old_flags&4){
cmem_dynamic_free((uint8*)(preserve_old_ptr));
}else{
free((void*)(preserve_old_ptr));
}
__ARRAY_UDT_LABELS[0]=preserve_new_ptr;
}else{
__ARRAY_UDT_LABELS[0]=(ptrszint)calloc((size_t)alloc_req_bytes,1);
if (!__ARRAY_UDT_LABELS[0]) error(257);
}
}
__ARRAY_UDT_LABELS[2]|=1;
__ARRAY_UDT_LABELS[4]=alloc_new_desc[4];
__ARRAY_UDT_LABELS[5]=alloc_new_desc[5];
__ARRAY_UDT_LABELS[6]=alloc_new_desc[6];
__ARRAY_UDT_LABELS[7]=alloc_new_desc[7];
}
if(!qbevent)break;evnt(24566);}while(r);
}
do{
memcpy(((char*)__ARRAY_UDT_LABELS[0])+(((array_check((*__LONG_NLABELS)-__ARRAY_UDT_LABELS[4],__ARRAY_UDT_LABELS[5]))*282+0))+ 0,((char*)__UDT_EMPTY_LABEL)+((0+0))+ 0, 282);
if(!qbevent)break;evnt(24567);}while(r);
do{
SUB_HASHADD(_SUB_XGOSUB_STRING_A2,&(pass3637= 2ll ),__LONG_NLABELS);
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(24568);}while(r);
do{
*_SUB_XGOSUB_LONG_R=*__LONG_NLABELS;
if(!qbevent)break;evnt(24569);}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)))= 0 ;
if(!qbevent)break;evnt(24570);}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(24571);}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(24572);}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(24573);}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(24576);}while(r);
do{
*__LONG_LAYOUTDONE= 1 ;
if(!qbevent)break;evnt(24577);}while(r);
S_32487:;
if ((qbs_cleanup(qbs_tmp_base,__STRING_LAYOUT->len))||is_error_pending()){
if(qbevent){evnt(24577);if(r)goto S_32487;}
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(24577);}while(r);
}else{
do{
qbs_set(__STRING_LAYOUT,_SUB_XGOSUB_STRING_L);
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(24577);}while(r);
}
do{
SUB_WRITEBUFLINE(&(pass3639=*__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(24580);}while(r);
do{
SUB_WRITEBUFLINE(&(pass3640=*__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(24581);}while(r);
do{
SUB_WRITEBUFLINE(&(pass3641=*__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(24582);}while(r);
do{
SUB_WRITEBUFLINE(&(pass3642=*__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(24584);}while(r);
do{
SUB_WRITEBUFLINE(&(pass3643=*__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(24585);}while(r);
do{
SUB_WRITEBUFLINE(&(pass3644=*__LONG_RETTXTBUF),qbs_new_txt_len("break;",6));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(24586);}while(r);
do{
SUB_WRITEBUFLINE(&(pass3645=*__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(24587);}while(r);
do{
*__LONG_GOSUBID=*__LONG_GOSUBID+ 1 ;
if(!qbevent)break;evnt(24588);}while(r);
exit_subfunc:;
free_mem_lock(sf_mem_lock);
#include "free54.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;
}
