BYTE* _decompress_(BYTE* data, size_t data_size, _DECL_1DARRAYSIZE_PARAM_CALLBYREFERENCE){ _DECL_DEALLOC(data); _DECL_1DARRAY_BYTE(output); _DECL_DEALLOC(output); int64_t pos; BYTE header; BYTE item; int64_t offset; int64_t len; int64_t start; int64_t i; BYTE _9; int64_t _10; _DECL_1DARRAY_BYTE(_11); _DECL_DEALLOC(_11); int64_t _12; int64_t _13; int64_t _14; int64_t _15; BYTE _16; int64_t _17; int64_t _18; BYTE _19; int64_t _20; int64_t _21; BYTE _22; _DECL_1DARRAY_BYTE(_23); _DECL_DEALLOC(_23); int64_t _24; int64_t _25; int64_t _26; int64_t _27; int64_t _28; BYTE _29; _DECL_1DARRAY_BYTE(_30); _DECL_DEALLOC(_30); int64_t _31; int64_t _32; //const %9 = 00000000b : byte _9 = 0b00000000; //const %10 = 0 : int _10 = 0; //arraygen %11 = [9; 10] : byte[] _NEW1DARRAY_DEALLOC(_11, _9, _10, BYTE); //assign %1 = %11 : byte[] _ADD_DEALLOC(output, _11, BYTE); //const %12 = 0 : int _12 = 0; //assign %2 = %12 : int pos = _12; //loop (%1, %2, %3, %4, %5, %6, %7, %8, %13, %14, %15, %16, %17, %18, %19, %20, %21, %22, %23, %24, %25, %26, %27, %28, %29, %30, %31, %32) while(true){ //const %13 = 1 : int _13 = 1; //add %14 = %2, %13 : int _14=pos+_13; //lengthof %15 = %0 : byte[] _15 = data_size; //ifge %14, %15 goto blklab3 : int if(_14>=_15){goto blklab3;} //indexof %16 = %0, %2 : byte[] _16=data[pos]; //assign %3 = %16 : byte header = _16; //const %17 = 1 : int _17 = 1; //add %18 = %2, %17 : int _18=pos+_17; //indexof %19 = %0, %18 : byte[] _19=data[_18]; //assign %4 = %19 : byte item = _19; //const %20 = 2 : int _20 = 2; //add %21 = %2, %20 : int _21=pos+_20; //assign %2 = %21 : int pos = _21; //const %22 = 00000000b : byte _22 = 0b00000000; //ifne %3, %22 goto blklab5 : byte if(header!=_22){goto blklab5;} //invoke (%23) = (%1, %4) lz77_decompress:append : function(byte[],byte)->(byte[]) { _FUNCTIONCALL_COPY_PRE(_23, output, 0, "liveness: output = false, readonly: output = true, return:output = NEVER_RETURN" , "append"); _DEALLOC(_23); void* tmp_items; _COPY_1DARRAY_PARAM(output, tmp_items, BYTE); _23 = _append_(tmp_items, output_size, item, _1DARRAYSIZE_PARAM_CALLBYREFERENCE(_23)); _23_dealloc = true; free(tmp_items); } //assign %1 = %23 : byte[] _ADD_DEALLOC(output, _23, BYTE); //goto blklab6 goto blklab6; //.blklab5 blklab5:; //invoke (%24) = (%3) whiley/lang/Byte:toUnsignedInt : function(byte)->(whiley/lang/Int:uint) { _24 = (unsigned int)header; } //assign %5 = %24 : int offset = _24; //invoke (%25) = (%4) whiley/lang/Byte:toUnsignedInt : function(byte)->(whiley/lang/Int:uint) { _25 = (unsigned int)item; } //assign %6 = %25 : int len = _25; //lengthof %26 = %1 : byte[] _26 = output_size; //sub %27 = %26, %5 : int _27=_26-offset; //assign %7 = %27 : int start = _27; //assign %8 = %7 : int i = start; //loop (%1, %4, %8, %28, %29, %30, %31, %32) while(true){ //add %28 = %7, %6 : int _28=start+len; //ifge %8, %28 goto blklab7 : int if(i>=_28){goto blklab7;} //indexof %29 = %1, %8 : byte[] _29=output[i]; //assign %4 = %29 : byte item = _29; //invoke (%30) = (%1, %4) lz77_decompress:append : function(byte[],byte)->(byte[]) { _FUNCTIONCALL_COPY_PRE(_30, output, 0, "liveness: output = false, readonly: output = true, return:output = NEVER_RETURN" , "append"); _DEALLOC(_30); void* tmp_items; _COPY_1DARRAY_PARAM(output, tmp_items, BYTE); _30 = _append_(tmp_items, output_size, item, _1DARRAYSIZE_PARAM_CALLBYREFERENCE(_30)); _30_dealloc = true; free(tmp_items); } //assign %1 = %30 : byte[] _ADD_DEALLOC(output, _30, BYTE); //const %31 = 1 : int _31 = 1; //add %32 = %8, %31 : int _32=i+_31; //assign %8 = %32 : int i = _32; //.blklab8 blklab8:; } //.blklab7 blklab7:; //.blklab6 blklab6:; //.blklab4 blklab4:; } //.blklab3 blklab3:; //return %1 _DEALLOC(data); _DEALLOC(_11); _DEALLOC(_23); _DEALLOC(_30); _UPDATE_1DARRAYSZIE_PARAM_CALLBYREFERENCE(output); return output; //return }
BYTE* _decompress_(BYTE* data, size_t data_size, _DECL_DEALLOC_PARAM(data), _DECL_1DARRAYSIZE_PARAM_CALLBYREFERENCE){ _DECL_1DARRAY_BYTE(output); _DECL_DEALLOC(output); int64_t pos; BYTE header; BYTE item; int64_t offset; int64_t len; int64_t start; int64_t i; BYTE _9; int64_t _10; _DECL_1DARRAY_BYTE(_11); _DECL_DEALLOC(_11); int64_t _12; int64_t _13; int64_t _14; int64_t _15; BYTE _16; int64_t _17; int64_t _18; BYTE _19; int64_t _20; int64_t _21; BYTE _22; _DECL_1DARRAY_BYTE(_23); _DECL_DEALLOC(_23); int64_t _24; int64_t _25; int64_t _26; int64_t _27; int64_t _28; BYTE _29; _DECL_1DARRAY_BYTE(_30); _DECL_DEALLOC(_30); int64_t _31; int64_t _32; //const %9 = 00000000b : byte _9 = 0b00000000; //const %10 = 0 : int _10 = 0; //arraygen %11 = [9; 10] : byte[] _DEALLOC(_11); _NEW_1DARRAY_BYTE(_11, _10, _9); _ADD_DEALLOC(_11); //assign %1 = %11 : byte[] _DEALLOC(output); // isCopyEliminated = true _UPDATE_1DARRAY(output, _11); _TRANSFER_DEALLOC(output, _11); //const %12 = 0 : int _12 = 0; //assign %2 = %12 : int // isCopyEliminated = true pos = _12; //loop (%1, %2, %3, %4, %5, %6, %7, %8, %13, %14, %15, %16, %17, %18, %19, %20, %21, %22, %23, %24, %25, %26, %27, %28, %29, %30, %31, %32) while(true){ //const %13 = 1 : int _13 = 1; //add %14 = %2, %13 : int _14=pos+_13; //lengthof %15 = %0 : byte[] _15 = data_size; //ifge %14, %15 goto blklab3 : int if(_14>=_15){goto blklab3;} //indexof %16 = %0, %2 : byte[] _16=data[pos]; //assign %3 = %16 : byte // isCopyEliminated = true header = _16; //const %17 = 1 : int _17 = 1; //add %18 = %2, %17 : int _18=pos+_17; //indexof %19 = %0, %18 : byte[] _19=data[_18]; //assign %4 = %19 : byte // isCopyEliminated = true item = _19; //const %20 = 2 : int _20 = 2; //add %21 = %2, %20 : int _21=pos+_20; //assign %2 = %21 : int // isCopyEliminated = true pos = _21; //const %22 = 00000000b : byte _22 = 0b00000000; //ifne %3, %22 goto blklab5 : byte if(header!=_22){goto blklab5;} //invoke (%23) = (%1, %4) LZ77_decompress:append : function(byte[],byte)->(byte[]) { // isCopyEliminated of '_1' = true _23 = _append_(output, output_size, false, item, _1DARRAYSIZE_PARAM_CALLBYREFERENCE(_23)); _RETAIN_DEALLOC(output, "false-false-false" , "append"); _RETAIN_DEALLOC_POST(_23, output); } //assign %1 = %23 : byte[] _DEALLOC(output); // isCopyEliminated = true _UPDATE_1DARRAY(output, _23); _TRANSFER_DEALLOC(output, _23); //goto blklab6 goto blklab6; //.blklab5 blklab5:; //invoke (%24) = (%3) whiley/lang/Byte:toUnsignedInt : function(byte)->(whiley/lang/Int:uint) { _24 = (unsigned int)header; } //assign %5 = %24 : int // isCopyEliminated = true offset = _24; //invoke (%25) = (%4) whiley/lang/Byte:toUnsignedInt : function(byte)->(whiley/lang/Int:uint) { _25 = (unsigned int)item; } //assign %6 = %25 : int // isCopyEliminated = true len = _25; //lengthof %26 = %1 : byte[] _26 = output_size; //sub %27 = %26, %5 : int _27=_26-offset; //assign %7 = %27 : int // isCopyEliminated = true start = _27; //assign %8 = %7 : int // isCopyEliminated = false i = start; //loop (%1, %4, %8, %28, %29, %30, %31, %32) while(true){ //add %28 = %7, %6 : int _28=start+len; //ifge %8, %28 goto blklab7 : int if(i>=_28){goto blklab7;} //indexof %29 = %1, %8 : byte[] _29=output[i]; //assign %4 = %29 : byte // isCopyEliminated = true item = _29; //invoke (%30) = (%1, %4) LZ77_decompress:append : function(byte[],byte)->(byte[]) { // isCopyEliminated of '_1' = true _30 = _append_(output, output_size, false, item, _1DARRAYSIZE_PARAM_CALLBYREFERENCE(_30)); _RETAIN_DEALLOC(output, "false-false-false" , "append"); _RETAIN_DEALLOC_POST(_30, output); } //assign %1 = %30 : byte[] _DEALLOC(output); // isCopyEliminated = true _UPDATE_1DARRAY(output, _30); _TRANSFER_DEALLOC(output, _30); //const %31 = 1 : int _31 = 1; //add %32 = %8, %31 : int _32=i+_31; //assign %8 = %32 : int // isCopyEliminated = true i = _32; //.blklab8 blklab8:; } //.blklab7 blklab7:; //.blklab6 blklab6:; //.blklab4 blklab4:; } //.blklab3 blklab3:; //return %1 _DEALLOC(data); _DEALLOC(_11); _DEALLOC(_23); _DEALLOC(_30); _UPDATE_1DARRAYSZIE_PARAM_CALLBYREFERENCE(output); return output; //return }
BYTE* _comp_(BYTE* data, size_t data_size, _DECL_DEALLOC_PARAM(data), _DECL_1DARRAYSIZE_PARAM_CALLBYREFERENCE){ _DECL_1DARRAY_BYTE(output); _DECL_DEALLOC(output); int64_t pos = 0; BYTE item; BYTE length; int64_t _5 = 0; BYTE _6; int64_t _7 = 0; _DECL_1DARRAY_BYTE(_8); _DECL_DEALLOC(_8); int64_t _9 = 0; BYTE _10; BYTE _11; int64_t _12 = 0; int64_t _13 = 0; _DECL_1DARRAY_BYTE(_14); _DECL_DEALLOC(_14); _DECL_1DARRAY_BYTE(_15); _DECL_DEALLOC(_15); //const %5 = 0 : int _5 = 0; //assign %2 = %5 : int pos = _5; //const %6 = 00000000b : byte _6 = 0b00000000; //const %7 = 0 : int _7 = 0; //arraygen %8 = [6; 7] : byte[] _DEALLOC(_8); _NEW_1DARRAY_BYTE(_8, _7, _6); _ADD_DEALLOC(_8); //assign %1 = %8 : byte[] _DEALLOC(output); _UPDATE_1DARRAY(output, _8); _TRANSFER_DEALLOC(output, _8); //loop (%1, %2, %3, %4, %9, %10, %11, %12, %13, %14, %15) while(true){ //lengthof %9 = %0 : byte[] _9 = data_size; //ifge %2, %9 goto blklab7 : int if(pos>=_9){goto blklab7;} //indexof %10 = %0, %2 : byte[] _10=data[pos]; //assign %3 = %10 : byte item = _10; //invoke (%11) = (%2) whiley/lang/Int:toUnsignedByte : function(whiley/lang/Int:u8)->(byte) { _11 = (BYTE)pos; } //assign %4 = %11 : byte length = _11; //const %12 = 1 : int _12 = 1; //add %13 = %2, %12 : int _13=pos+_12; //assign %2 = %13 : int pos = _13; //invoke (%14) = (%1, %4) AppendArrayPattern_original:append : function(byte[],byte)->(byte[]) { _DEALLOC(_14); _14 = _append_(_1DARRAY_PARAM(output), false, length, _1DARRAYSIZE_PARAM_CALLBYREFERENCE(_14)); _RETAIN_DEALLOC(output, "false-false-false" , "append"); _ADD_DEALLOC(_14); } //assign %1 = %14 : byte[] _DEALLOC(output); _UPDATE_1DARRAY(output, _14); _TRANSFER_DEALLOC(output, _14); //invoke (%15) = (%1, %3) AppendArrayPattern_original:append : function(byte[],byte)->(byte[]) { _DEALLOC(_15); _15 = _append_(_1DARRAY_PARAM(output), false, item, _1DARRAYSIZE_PARAM_CALLBYREFERENCE(_15)); _RETAIN_DEALLOC(output, "false-false-false" , "append"); _ADD_DEALLOC(_15); } //assign %1 = %15 : byte[] _DEALLOC(output); _UPDATE_1DARRAY(output, _15); _TRANSFER_DEALLOC(output, _15); //.blklab8 blklab8:; } //.blklab7 blklab7:; //return %1 _DEALLOC(data); _DEALLOC(_8); _DEALLOC(_14); _DEALLOC(_15); _UPDATE_1DARRAYSZIE_PARAM_CALLBYREFERENCE(output); return output; //return }