{"name": "oggpackB_writetrunc", "code": "_BYTE * __fastcall oggpackB_writetrunc ( __int64 @@a1@@ , __int64 @@a2@@ ) { _BYTE * @@result@@ ; __int64 @@v3@@ ; __int64 @@v4@@ ; @@v4@@ = @@a2@@ >> Number ; @@result@@ = * ( _BYTE * * ) ( @@a1@@ + Number ) ; if ( @@result@@ ) { @@v3@@ = @@a2@@ - Number * @@v4@@ ; * ( _QWORD * ) ( @@a1@@ + Number ) = @@v4@@ + * ( _QWORD * ) ( @@a1@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = @@v3@@ ; * ( _QWORD * ) @@a1@@ = @@v4@@ ; @@result@@ = * ( _BYTE * * ) ( @@a1@@ + Number ) ; * @@result@@ &= mask8B [ @@v3@@ ] ; } return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "result", "t": {"T": 3, "t": "_BYTE"}, "location": "r8"}, {"n": "v3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s32"}, {"n": "v4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s8"}]}
{"name": "oggpackB_write", "code": "__int64 __fastcall oggpackB_write ( __int64 @@a1@@ , __int64 @@a2@@ , int @@a3@@ ) { __int64 @@result@@ ; int @@v5@@ ; unsigned __int64 @@v6@@ ; void * @@v7@@ ; if ( @@a3@@ < Number || @@a3@@ > Number ) return oggpack_writeclear ( @@a1@@ ) ; if ( * ( _QWORD * ) @@a1@@ < * ( _QWORD * ) ( @@a1@@ + Number ) - Number L ) goto LABEL_8 ; @@result@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; if ( ! @@result@@ ) return @@result@@ ; if ( * ( __int64 * ) ( @@a1@@ + Number ) > Number ) return oggpack_writeclear ( @@a1@@ ) ; @@v7@@ = realloc ( * ( void * * ) ( @@a1@@ + Number ) , * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ; if ( ! @@v7@@ ) return oggpack_writeclear ( @@a1@@ ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = @@v7@@ ; * ( _QWORD * ) ( @@a1@@ + Number ) += Number L ; * ( _QWORD * ) ( @@a1@@ + Number ) = * ( _QWORD * ) @@a1@@ + * ( _QWORD * ) ( @@a1@@ + Number ) ; LABEL_8 : @@v6@@ = ( @@a2@@ & mask [ @@a3@@ ] ) << ( Number - ( unsigned __int8 ) @@a3@@ ) ; @@v5@@ = * ( _DWORD * ) ( @@a1@@ + Number ) + @@a3@@ ; * * ( _BYTE * * ) ( @@a1@@ + Number ) |= @@v6@@ >> ( * ( _BYTE * ) ( @@a1@@ + Number ) + Number ) ; if ( @@v5@@ > Number ) { * ( _BYTE * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) = @@v6@@ >> ( * ( _BYTE * ) ( @@a1@@ + Number ) + Number ) ; if ( @@v5@@ > Number ) { * ( _BYTE * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) = @@v6@@ >> ( * ( _BYTE * ) ( @@a1@@ + Number ) + Number ) ; if ( @@v5@@ > Number ) { * ( _BYTE * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) = @@v6@@ >> * ( _DWORD * ) ( @@a1@@ + Number ) ; if ( @@v5@@ > Number ) { if ( * ( _DWORD * ) ( @@a1@@ + Number ) ) * ( _BYTE * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) = @@v6@@ << ( Number - * ( _BYTE * ) ( @@a1@@ + Number ) ) ; else * ( _BYTE * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) = Number ; } } } } * ( _QWORD * ) @@a1@@ += @@v5@@ / Number ; * ( _QWORD * ) ( @@a1@@ + Number ) += @@v5@@ / Number ; @@result@@ = @@a1@@ ; * ( _DWORD * ) ( @@a1@@ + Number ) = @@v5@@ & Number ; return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "v6", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s32"}, {"n": "v5", "t": {"T": 1, "n": "int", "s": 4}, "location": "s36"}, {"n": "v7", "t": {"T": 3, "t": "void"}, "location": "s8"}]}