{"name": "set_ur_golomb_jpegls", "code": "int * __fastcall set_ur_golomb_jpegls ( int * @@a1@@ , int @@a2@@ , int @@a3@@ , int @@a4@@ , int @@a5@@ ) { int * @@result@@ ; int @@v7@@ ; int @@v9@@ ; @@v7@@ = @@a4@@ ; @@v9@@ = ( @@a2@@ >> @@a3@@ ) + Number ; if ( @@v9@@ >= @@a4@@ ) { while ( @@v7@@ > Number ) { put_bits ( @@a1@@ , Number , Number ) ; @@v7@@ -= Number ; } put_bits ( @@a1@@ , @@v7@@ , Number ) ; @@result@@ = put_bits ( @@a1@@ , @@a5@@ , @@a2@@ - Number ) ; } else { while ( @@v9@@ > Number ) { put_bits ( @@a1@@ , Number , Number ) ; @@v9@@ -= Number ; } @@result@@ = put_bits ( @@a1@@ , @@v9@@ , Number ) ; if ( @@a3@@ ) @@result@@ = put_sbits ( @@a1@@ , @@a3@@ , @@a2@@ ) ; } return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "int", "s": 4}, "location": "r24"}, {"n": "a1", "t": {"T": 3, "t": "int"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "int", "s": 4}, "location": "r72"}, {"n": "result", "t": {"T": 3, "t": "int"}, "location": "r8"}, {"n": "v7", "t": {"T": 1, "n": "int", "s": 4}, "location": "s36"}, {"n": "v9", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}]}
{"name": "put_bits", "code": "int * __fastcall put_bits ( int * @@a1@@ , int @@a2@@ , unsigned int @@a3@@ ) { int * @@result@@ ; int v4 ; int v5 ; int v6 ; int v7 ; v6 = * @@a1@@ ; v4 = @@a1@@ [ Number ] ; if ( @@a2@@ >= v4 ) { * * ( ( _DWORD * * ) @@a1@@ + Number ) = ( ( ( unsigned __int16 ) ( ( ( unsigned __int16 ) ( @@a3@@ >> ( @@a2@@ - v4 ) ) | ( unsigned __int16 ) ( ( _WORD ) v6 << v4 ) ) << Number ) | ( unsigned __int8 ) ( ( unsigned __int16 ) ( ( @@a3@@ >> ( @@a2@@ - v4 ) ) | ( ( _WORD ) v6 << v4 ) ) >> Number ) ) << Number ) | ( ( ( @@a3@@ >> ( @@a2@@ - v4 ) ) | ( v6 << v4 ) ) >> Number ) | ( unsigned __int16 ) ( ( ( @@a3@@ >> ( @@a2@@ - v4 ) ) | ( v6 << v4 ) ) >> Number << Number ) ; * ( ( _QWORD * ) @@a1@@ + Number ) += Number L ; v5 = Number - @@a2@@ + v4 ; v7 = @@a3@@ ; } else { v7 = @@a3@@ | ( v6 << @@a2@@ ) ; v5 = v4 - @@a2@@ ; } * @@a1@@ = v7 ; @@result@@ = @@a1@@ ; @@a1@@ [ Number ] = v5 ; return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r16"}, {"n": "a1", "t": {"T": 3, "t": "int"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "result", "t": {"T": 3, "t": "int"}, "location": "r8"}]} {"name": "put_sbits", "code": "int * __fastcall put_sbits ( int * @@a1@@ , int @@a2@@ , int @@a3@@ ) { return put_bits ( @@a1@@ , @@a2@@ , @@a3@@ & ( unsigned int ) ( ( Number << @@a2@@ ) - Number ) ) ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a1", "t": {"T": 3, "t": "int"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}]} {"name": "set_sr_golomb_flac", "code": "int * __fastcall set_sr_golomb_flac ( int * @@a1@@ , int @@a2@@ , int @@a3@@ , int @@a4@@ , int @@a5@@ ) { return set_ur_golomb_jpegls ( @@a1@@ , ( ( Number * @@a2@@ - Number ) >> Number ) ^ ( unsigned int ) ( Number * @@a2@@ - Number ) , @@a3@@ , @@a4@@ , @@a5@@ ) ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "int", "s": 4}, "location": "r24"}, {"n": "a1", "t": {"T": 3, "t": "int"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "int", "s": 4}, "location": "r72"}]}