{"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 ; if ( @@a2@@ > Number || @@a3@@ >= Number << @@a2@@ ) _assert_fail ( String , String , Number , String ) ; 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_bits32", "code": "int * __fastcall put_bits32 ( int * @@a1@@ , unsigned int @@a2@@ ) { put_bits ( @@a1@@ , Number , HIWORD ( @@a2@@ ) ) ; return put_bits ( @@a1@@ , Number , ( unsigned __int16 ) @@a2@@ ) ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "int"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r64"}]}