qbs* FUNC_VARIABLESIZE(int32*_FUNC_VARIABLESIZE_LONG_I){
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 "data29.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_22609:;
if ((-(*_FUNC_VARIABLESIZE_LONG_I!= -1 ))||is_error_pending()){
if(qbevent){evnt(19521);if(r)goto S_22609;}
do{
SUB_GETID(_FUNC_VARIABLESIZE_LONG_I);
if(!qbevent)break;evnt(19521);}while(r);
}
S_22612:;
if ((*__LONG_ERROR_HAPPENED)||is_error_pending()){
if(qbevent){evnt(19522);if(r)goto S_22612;}
do{
goto exit_subfunc;
if(!qbevent)break;evnt(19522);}while(r);
}
do{
*_FUNC_VARIABLESIZE_LONG_T=*(int32*)(((char*)__UDT_ID)+((0+536)));
if(!qbevent)break;evnt(19524);}while(r);
S_22616:;
if ((-(*_FUNC_VARIABLESIZE_LONG_T== 0 ))||is_error_pending()){
if(qbevent){evnt(19524);if(r)goto S_22616;}
do{
*_FUNC_VARIABLESIZE_LONG_T=*(int32*)(((char*)__UDT_ID)+((0+512)));
if(!qbevent)break;evnt(19524);}while(r);
}
do{
*_FUNC_VARIABLESIZE_LONG_BYTES=(*_FUNC_VARIABLESIZE_LONG_T& 511 )/  8 ;
if(!qbevent)break;evnt(19525);}while(r);
S_22620:;
if ((*_FUNC_VARIABLESIZE_LONG_T&*__LONG_ISUDT)||is_error_pending()){
if(qbevent){evnt(19527);if(r)goto S_22620;}
do{
*_FUNC_VARIABLESIZE_LONG_U=*_FUNC_VARIABLESIZE_LONG_T& 511 ;
if(!qbevent)break;evnt(19528);}while(r);
do{
*_FUNC_VARIABLESIZE_LONG_BYTES=((int32*)(__ARRAY_LONG_UDTXSIZE[0]))[array_check((*_FUNC_VARIABLESIZE_LONG_U)-__ARRAY_LONG_UDTXSIZE[4],__ARRAY_LONG_UDTXSIZE[5])]/  8 ;
if(!qbevent)break;evnt(19529);}while(r);
}
S_22624:;
if ((*_FUNC_VARIABLESIZE_LONG_T&*__LONG_ISSTRING)||is_error_pending()){
if(qbevent){evnt(19532);if(r)goto S_22624;}
S_22625:;
if ((*_FUNC_VARIABLESIZE_LONG_T&*__LONG_ISFIXEDLENGTH)||is_error_pending()){
if(qbevent){evnt(19533);if(r)goto S_22625;}
do{
*_FUNC_VARIABLESIZE_LONG_BYTES=*(int32*)(((char*)__UDT_ID)+((0+540)));
if(!qbevent)break;evnt(19534);}while(r);
}else{
S_22628:;
if ((*(int32*)(((char*)__UDT_ID)+((0+512))))||is_error_pending()){
if(qbevent){evnt(19536);if(r)goto S_22628;}
do{
SUB_GIVE_ERROR(qbs_new_txt_len("Cannot determine size of variable-length string array",53));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(19536);}while(r);
do{
goto exit_subfunc;
if(!qbevent)break;evnt(19536);}while(r);
}
do{
qbs_set(_FUNC_VARIABLESIZE_STRING_VARIABLESIZE,qbs_add(qbs_add(qbs_add(FUNC_SCOPE(),qbs_new_txt_len("STRING_",7)),qbs_rtrim(qbs_new_fixed((((uint8*)__UDT_ID)+((0+0))),256,1))),qbs_new_txt_len("->len",5)));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(19537);}while(r);
do{
goto exit_subfunc;
if(!qbevent)break;evnt(19538);}while(r);
}
}
S_22636:;
if ((*(int32*)(((char*)__UDT_ID)+((0+512))))||is_error_pending()){
if(qbevent){evnt(19542);if(r)goto S_22636;}
do{
qbs_set(_FUNC_VARIABLESIZE_STRING_N,qbs_rtrim(qbs_new_fixed((((uint8*)__UDT_ID)+((0+550))),256,1)));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(19543);}while(r);
do{
qbs_set(_FUNC_VARIABLESIZE_STRING_S,qbs_add(qbs_add(qbs_add(qbs__tostr((int32)(*_FUNC_VARIABLESIZE_LONG_BYTES),NULL,0),qbs_new_txt_len("*(",2)),_FUNC_VARIABLESIZE_STRING_N),qbs_new_txt_len("[2]&1)",6)));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(19544);}while(r);
do{
*_FUNC_VARIABLESIZE_LONG_ARRAYELEMENTS=*(int16*)(((char*)__UDT_ID)+((0+516)));
if(!qbevent)break;evnt(19545);}while(r);
S_22640:;
if ((-(*_FUNC_VARIABLESIZE_LONG_ARRAYELEMENTS== -1 ))||is_error_pending()){
if(qbevent){evnt(19545);if(r)goto S_22640;}
do{
*_FUNC_VARIABLESIZE_LONG_ARRAYELEMENTS= 1 ;
if(!qbevent)break;evnt(19545);}while(r);
}
S_22643:;
fornext_value3020= 1 ;
fornext_finalvalue3020=*_FUNC_VARIABLESIZE_LONG_ARRAYELEMENTS;
fornext_step3020= 1 ;
if (fornext_step3020<0) fornext_step_negative3020=1; else fornext_step_negative3020=0;
if (is_error_pending()) goto fornext_error3020;
goto fornext_entrylabel3020;
while(1){
fornext_value3020=fornext_step3020+(*_FUNC_VARIABLESIZE_LONG_I2);
fornext_entrylabel3020:
*_FUNC_VARIABLESIZE_LONG_I2=fornext_value3020;
if (fornext_step_negative3020){
if (fornext_value3020<fornext_finalvalue3020) break;
}else{
if (fornext_value3020>fornext_finalvalue3020) break;
}
fornext_error3020:;
if(qbevent){evnt(19546);if(r)goto S_22643;}
do{
qbs_set(_FUNC_VARIABLESIZE_STRING_S,qbs_add(qbs_add(qbs_add(qbs_add(qbs_add(_FUNC_VARIABLESIZE_STRING_S,qbs_new_txt_len("*",1)),_FUNC_VARIABLESIZE_STRING_N),qbs_new_txt_len("[",1)),qbs__tostr((int64)((*_FUNC_VARIABLESIZE_LONG_I2* 4 )-( 4 )+( 5 )),NULL,0)),qbs_new_txt_len("]",1)));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(19547);}while(r);
fornext_continue_3019:;
}
fornext_exit_3019:;
do{
qbs_set(_FUNC_VARIABLESIZE_STRING_VARIABLESIZE,qbs_add(qbs_add(qbs_new_txt_len("(",1),_FUNC_VARIABLESIZE_STRING_S),qbs_new_txt_len(")",1)));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(19549);}while(r);
do{
goto exit_subfunc;
if(!qbevent)break;evnt(19550);}while(r);
}
do{
qbs_set(_FUNC_VARIABLESIZE_STRING_VARIABLESIZE,qbs__tostr((int32)(*_FUNC_VARIABLESIZE_LONG_BYTES),NULL,0));
qbs_cleanup(qbs_tmp_base,0);
if(!qbevent)break;evnt(19553);}while(r);
exit_subfunc:;
free_mem_lock(sf_mem_lock);
#include "free29.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;
qbs_maketmp(_FUNC_VARIABLESIZE_STRING_VARIABLESIZE);return _FUNC_VARIABLESIZE_STRING_VARIABLESIZE;
}
