{"name": "decode_colskip", "code": "__int64 __fastcall decode_colskip ( __int64 @@a1@@ , int @@a2@@ , int @@a3@@ , int @@a4@@ , __int64 @@a5@@ ) { __int64 @@result@@ ; int k ; int j ; unsigned int @@i@@ ; for ( @@i@@ = Number ; ; ++ @@i@@ ) { @@result@@ = @@i@@ ; if ( ( int ) @@i@@ >= @@a2@@ ) break ; if ( ( unsigned int ) get_bits1 ( @@a5@@ ) ) { for ( j = Number ; j < @@a3@@ ; ++ j ) * ( _BYTE * ) ( @@a4@@ * j + @@a1@@ ) = get_bits1 ( @@a5@@ ) ; } else { for ( k = Number ; k < @@a3@@ ; ++ k ) * ( _BYTE * ) ( @@a4@@ * k + @@a1@@ ) = Number ; } ++ @@a1@@ ; } 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": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r72"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "i", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s4"}]}
{"name": "get_bits", "code": "__int64 __fastcall get_bits ( __int64 @@a1@@ , int @@a2@@ ) { unsigned int @@v2@@ ; unsigned int @@v3@@ ; unsigned int @@v5@@ ; unsigned int @@v6@@ ; unsigned int @@v7@@ ; @@v7@@ = * ( _DWORD * ) ( @@a1@@ + Number ) ; @@v6@@ = * ( _DWORD * ) ( @@a1@@ + Number ) ; @@v5@@ = * ( _DWORD * ) ( ( @@v7@@ >> Number ) + * ( _QWORD * ) @@a1@@ ) ; @@v2@@ = NEG_USR32 ( ( HIBYTE ( @@v5@@ ) | ( unsigned __int16 ) ( HIWORD ( @@v5@@ ) << Number ) | ( ( ( unsigned __int16 ) ( ( _WORD ) @@v5@@ << Number ) | BYTE1 ( @@v5@@ ) ) << Number ) ) << ( @@v7@@ & Number ) , @@a2@@ ) ; @@v3@@ = @@a2@@ + @@v7@@ ; if ( @@v6@@ <= @@a2@@ + @@v7@@ ) @@v3@@ = @@v6@@ ; * ( _DWORD * ) ( @@a1@@ + Number ) = @@v3@@ ; return @@v2@@ ; }", "source": [{"n": "v2", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r32"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "v3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r8"}, {"n": "v7", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s12"}, {"n": "v6", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s16"}, {"n": "v5", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s24"}]} {"name": "get_bits1", "code": "__int64 __fastcall get_bits1 ( __int64 @@a1@@ ) { unsigned __int8 @@v2@@ ; unsigned int @@v3@@ ; @@v3@@ = * ( _DWORD * ) ( @@a1@@ + Number ) ; @@v2@@ = ( unsigned __int8 ) ( * ( unsigned __int8 * ) ( ( @@v3@@ >> Number ) + * ( _QWORD * ) @@a1@@ ) << ( @@v3@@ & Number ) ) >> Number ; if ( ( signed int ) @@v3@@ < * ( _DWORD * ) ( @@a1@@ + Number ) ) ++ @@v3@@ ; * ( _DWORD * ) ( @@a1@@ + Number ) = @@v3@@ ; return @@v2@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "v3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s4"}, {"n": "v2", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "s5"}]} {"name": "bitplane_decoding", "code": "__int64 __fastcall bitplane_decoding ( _BYTE * @@a1@@ , _DWORD * @@a2@@ , __int64 @@a3@@ ) { unsigned int v3 ; unsigned int v5 ; _BYTE * v6 ; _BYTE * v7 ; unsigned int v8 ; unsigned int v9 ; unsigned int v10 ; unsigned int v11 ; unsigned int @@v13@@ ; int @@v14@@ ; int @@v15@@ ; unsigned int v16 ; unsigned int v17 ; unsigned int @@v18@@ ; unsigned int @@v19@@ ; unsigned int @@v20@@ ; __int64 @@v21@@ ; unsigned int @@v22@@ ; int @@v23@@ ; int @@v24@@ ; unsigned int v25 ; unsigned int v26 ; unsigned int @@v27@@ ; unsigned int @@v28@@ ; unsigned int @@v29@@ ; __int64 @@v30@@ ; int @@v31@@ ; unsigned int @@v32@@ ; unsigned int @@v33@@ ; unsigned int @@v34@@ ; unsigned int @@v35@@ ; __int64 @@v36@@ ; int @@v37@@ ; unsigned int @@v38@@ ; unsigned int @@v39@@ ; unsigned int @@v40@@ ; unsigned int @@v41@@ ; __int64 @@v42@@ ; unsigned __int8 @@v43@@ ; int @@v44@@ ; int @@v45@@ ; int @@v46@@ ; __int64 @@v47@@ ; _BYTE * v48 ; _BYTE * v49 ; _BYTE * v50 ; _BYTE * v51 ; int v52 ; int v53 ; int v54 ; int k ; int i ; int n ; int l ; int j ; int v60 ; int m ; int ii ; int jj ; @@v47@@ = @@a3@@ + Number ; v48 = @@a1@@ ; @@v46@@ = * ( _DWORD * ) ( @@a3@@ + Number ) ; @@v45@@ = * ( int * ) ( @@a3@@ + Number ) >> * ( _DWORD * ) ( @@a3@@ + Number ) ; @@v44@@ = * ( _DWORD * ) ( @@a3@@ + Number ) ; @@v43@@ = get_bits1 ( @@a3@@ + Number ) ; @@v42@@ = ff_vc1_imode_vlc [ Number ] ; @@v41@@ = * ( _DWORD * ) ( @@v47@@ + Number ) ; @@v40@@ = * ( _DWORD * ) ( @@v47@@ + Number ) ; @@v39@@ = * ( _DWORD * ) ( ( @@v41@@ >> Number ) + * ( _QWORD * ) @@v47@@ ) ; @@v38@@ = NEG_USR32 ( ( HIBYTE ( @@v39@@ ) | ( unsigned __int16 ) ( HIWORD ( @@v39@@ ) << Number ) | ( ( ( unsigned __int16 ) ( ( _WORD ) @@v39@@ << Number ) | BYTE1 ( @@v39@@ ) ) << Number ) ) << ( @@v41@@ & Number ) , Number ) ; @@v37@@ = * ( __int16 * ) ( Number L * @@v38@@ + @@v42@@ ) ; v3 = * ( __int16 * ) ( Number L * @@v38@@ + @@v42@@ + Number ) + @@v41@@ ; if ( @@v40@@ <= v3 ) v3 = @@v40@@ ; * ( _DWORD * ) ( @@v47@@ + Number ) = v3 ; * @@a2@@ = Number ; switch ( @@v37@@ ) { case Number : * @@a2@@ = Number ; return @@v43@@ ; case Number : case Number : if ( ( ( ( _BYTE ) @@v46@@ * ( _BYTE ) @@v45@@ ) & Number ) != Number ) { v48 = @@a1@@ + Number ; * @@a1@@ = get_bits1 ( @@v47@@ ) ; v52 = Number ; v54 = Number ; if ( @@v46@@ == Number ) { v52 = Number ; v48 += @@v44@@ - Number ; } } else { v52 = Number ; v54 = Number ; } while ( v54 < @@v46@@ * @@v45@@ ) { @@v36@@ = ff_vc1_norm2_vlc [ Number ] ; @@v35@@ = * ( _DWORD * ) ( @@v47@@ + Number ) ; @@v34@@ = * ( _DWORD * ) ( @@v47@@ + Number ) ; @@v33@@ = * ( _DWORD * ) ( ( @@v35@@ >> Number ) + * ( _QWORD * ) @@v47@@ ) ; @@v32@@ = NEG_USR32 ( ( HIBYTE ( @@v33@@ ) | ( unsigned __int16 ) ( HIWORD ( @@v33@@ ) << Number ) | ( ( ( unsigned __int16 ) ( ( _WORD ) @@v33@@ << Number ) | BYTE1 ( @@v33@@ ) ) << Number ) ) << ( @@v35@@ & Number ) , Number ) ; @@v31@@ = * ( __int16 * ) ( Number L * @@v32@@ + @@v36@@ ) ; v5 = * ( __int16 * ) ( Number L * @@v32@@ + @@v36@@ + Number ) + @@v35@@ ; if ( @@v34@@ <= v5 ) v5 = @@v34@@ ; * ( _DWORD * ) ( @@v47@@ + Number ) = v5 ; v6 = v48 ; v49 = v48 + Number ; * v6 = @@v31@@ & Number ; v53 = v52 + Number ; if ( v53 == @@v46@@ ) { v53 = Number ; v49 += @@v44@@ - @@v46@@ ; } v7 = v49 ; v48 = v49 + Number ; * v7 = @@v31@@ >> Number ; v52 = v53 + Number ; if ( v52 == @@v46@@ ) { v52 = Number ; v48 += @@v44@@ - @@v46@@ ; } v54 += Number ; } goto LABEL_56 ; case Number : case Number : if ( @@v45@@ % Number || ! ( @@v46@@ % Number ) ) { v50 = & @@a1@@ [ @@v44@@ * ( @@v45@@ & Number ) ] ; for ( i = @@v45@@ & Number ; i < @@v45@@ ; i += Number ) { for ( j = @@v46@@ % Number ; j < @@v46@@ ; j += Number ) { @@v21@@ = ff_vc1_norm6_vlc [ Number ] ; @@v20@@ = * ( _DWORD * ) ( @@v47@@ + Number ) ; @@v19@@ = * ( _DWORD * ) ( @@v47@@ + Number ) ; @@v18@@ = * ( _DWORD * ) ( ( @@v20@@ >> Number ) + * ( _QWORD * ) @@v47@@ ) ; v16 = NEG_USR32 ( ( HIBYTE ( @@v18@@ ) | ( unsigned __int16 ) ( HIWORD ( @@v18@@ ) << Number ) | ( ( ( unsigned __int16 ) ( ( _WORD ) @@v18@@ << Number ) | BYTE1 ( @@v18@@ ) ) << Number ) ) << ( @@v20@@ & Number ) , Number ) ; @@v15@@ = * ( __int16 * ) ( Number L * v16 + @@v21@@ ) ; @@v14@@ = * ( __int16 * ) ( Number L * v16 + @@v21@@ + Number ) ; if ( @@v14@@ < Number ) { v10 = @@v20@@ + Number ; if ( @@v19@@ <= @@v20@@ + Number ) v10 = @@v19@@ ; @@v20@@ = v10 ; @@v13@@ = * ( _DWORD * ) ( ( v10 >> Number ) + * ( _QWORD * ) @@v47@@ ) ; v17 = @@v15@@ + NEG_USR32 ( ( HIBYTE ( @@v13@@ ) | ( unsigned __int16 ) ( HIWORD ( @@v13@@ ) << Number ) | ( ( ( unsigned __int16 ) ( ( _WORD ) @@v13@@ << Number ) | BYTE1 ( @@v13@@ ) ) << Number ) ) << ( v10 & Number ) , - ( char ) @@v14@@ ) ; @@v15@@ = * ( __int16 * ) ( Number L * v17 + @@v21@@ ) ; @@v14@@ = * ( __int16 * ) ( Number L * v17 + @@v21@@ + Number ) ; } v11 = @@v14@@ + @@v20@@ ; if ( @@v19@@ <= @@v14@@ + @@v20@@ ) v11 = @@v19@@ ; * ( _DWORD * ) ( @@v47@@ + Number ) = v11 ; if ( @@v15@@ < Number ) { LABEL_29 : av_log ( * ( _QWORD * ) ( @@a3@@ + Number ) , Number L , String ) ; return Number ; } v50 [ j ] = @@v15@@ & Number ; v50 [ j + Number ] = ( @@v15@@ >> Number ) & Number ; v50 [ j + Number ] = ( @@v15@@ >> Number ) & Number ; v50 [ j + @@v44@@ ] = ( @@v15@@ >> Number ) & Number ; v50 [ j + Number + @@v44@@ ] = ( @@v15@@ >> Number ) & Number ; v50 [ j + Number + @@v44@@ ] = ( @@v15@@ >> Number ) & Number ; } v50 += Number * @@v44@@ ; } v60 = @@v46@@ % Number ; if ( @@v46@@ % Number ) decode_colskip ( ( __int64 ) @@a1@@ , v60 , @@v45@@ , @@v44@@ , @@a3@@ + Number ) ; if ( ( @@v45@@ & Number ) != Number ) decode_rowskip ( & @@a1@@ [ v60 ] , @@v46@@ - v60 , Number , @@v44@@ , @@a3@@ + Number ) ; } else { for ( k = Number ; k < @@v45@@ ; k += Number ) { for ( l = @@v46@@ & Number ; l < @@v46@@ ; l += Number ) { @@v30@@ = ff_vc1_norm6_vlc [ Number ] ; @@v29@@ = * ( _DWORD * ) ( @@v47@@ + Number ) ; @@v28@@ = * ( _DWORD * ) ( @@v47@@ + Number ) ; @@v27@@ = * ( _DWORD * ) ( ( @@v29@@ >> Number ) + * ( _QWORD * ) @@v47@@ ) ; v25 = NEG_USR32 ( ( HIBYTE ( @@v27@@ ) | ( unsigned __int16 ) ( HIWORD ( @@v27@@ ) << Number ) | ( ( ( unsigned __int16 ) ( ( _WORD ) @@v27@@ << Number ) | BYTE1 ( @@v27@@ ) ) << Number ) ) << ( @@v29@@ & Number ) , Number ) ; @@v24@@ = * ( __int16 * ) ( Number L * v25 + @@v30@@ ) ; @@v23@@ = * ( __int16 * ) ( Number L * v25 + @@v30@@ + Number ) ; if ( @@v23@@ < Number ) { v8 = @@v29@@ + Number ; if ( @@v28@@ <= @@v29@@ + Number ) v8 = @@v28@@ ; @@v29@@ = v8 ; @@v22@@ = * ( _DWORD * ) ( ( v8 >> Number ) + * ( _QWORD * ) @@v47@@ ) ; v26 = @@v24@@ + NEG_USR32 ( ( HIBYTE ( @@v22@@ ) | ( unsigned __int16 ) ( HIWORD ( @@v22@@ ) << Number ) | ( ( ( unsigned __int16 ) ( ( _WORD ) @@v22@@ << Number ) | BYTE1 ( @@v22@@ ) ) << Number ) ) << ( v8 & Number ) , - ( char ) @@v23@@ ) ; @@v24@@ = * ( __int16 * ) ( Number L * v26 + @@v30@@ ) ; @@v23@@ = * ( __int16 * ) ( Number L * v26 + @@v30@@ + Number ) ; } v9 = @@v23@@ + @@v29@@ ; if ( @@v28@@ <= @@v23@@ + @@v29@@ ) v9 = @@v28@@ ; * ( _DWORD * ) ( @@v47@@ + Number ) = v9 ; if ( @@v24@@ < Number ) goto LABEL_29 ; v48 [ l ] = @@v24@@ & Number ; v48 [ l + Number ] = ( @@v24@@ >> Number ) & Number ; v48 [ l + @@v44@@ ] = ( @@v24@@ >> Number ) & Number ; v48 [ l + Number + @@v44@@ ] = ( @@v24@@ >> Number ) & Number ; v48 [ Number * @@v44@@ + l ] = ( @@v24@@ >> Number ) & Number ; v48 [ Number * @@v44@@ + Number + l ] = ( @@v24@@ >> Number ) & Number ; } v48 += Number * @@v44@@ ; } if ( ( @@v46@@ & Number ) != Number ) decode_colskip ( ( __int64 ) @@a1@@ , Number , @@v45@@ , @@v44@@ , @@a3@@ + Number ) ; } LABEL_56 : if ( @@v37@@ == Number || @@v37@@ == Number ) { v51 = @@a1@@ ; * @@a1@@ ^= @@v43@@ ; for ( m = Number ; m < @@v46@@ ; ++ m ) @@a1@@ [ m ] ^= @@a1@@ [ m - Number ] ; for ( n = Number ; n < @@v45@@ ; ++ n ) { v51 += @@v44@@ ; * v51 ^= v51 [ - @@v44@@ ] ; for ( ii = Number ; ii < @@v46@@ ; ++ ii ) { if ( v51 [ ii - Number ] == v51 [ ii - @@v44@@ ] ) v51 [ ii ] ^= v51 [ ii - Number ] ; else v51 [ ii ] ^= @@v43@@ ; } } } else if ( @@v43@@ ) { for ( jj = Number ; jj < @@v45@@ * @@v44@@ ; ++ jj ) @@a1@@ [ jj ] = @@a1@@ [ jj ] == Number ; } return Number * @@v37@@ + ( unsigned int ) @@v43@@ ; case Number : decode_rowskip ( @@a1@@ , @@v46@@ , @@v45@@ , @@v44@@ , @@a3@@ + Number ) ; goto LABEL_56 ; case Number : decode_colskip ( ( __int64 ) @@a1@@ , @@v46@@ , @@v45@@ , @@v44@@ , @@a3@@ + Number ) ; goto LABEL_56 ; default : goto LABEL_56 ; } }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a1", "t": {"T": 3, "t": "_BYTE"}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "_DWORD"}, "location": "r64"}, {"n": "v39", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s100"}, {"n": "v38", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s108"}, {"n": "v37", "t": {"T": 1, "n": "int", "s": 4}, "location": "s112"}, {"n": "v36", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s144"}, {"n": "v35", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s156"}, {"n": "v34", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s160"}, {"n": "v33", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s164"}, {"n": "v32", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s172"}, {"n": "v31", "t": {"T": 1, "n": "int", "s": 4}, "location": "s176"}, {"n": "v30", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s208"}, {"n": "v29", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s220"}, {"n": "v28", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s224"}, {"n": "v27", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s228"}, {"n": "v24", "t": {"T": 1, "n": "int", "s": 4}, "location": "s240"}, {"n": "v23", "t": {"T": 1, "n": "int", "s": 4}, "location": "s244"}, {"n": "v22", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s248"}, {"n": "v21", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s272"}, {"n": "v20", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s284"}, {"n": "v19", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s288"}, {"n": "v18", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s292"}, {"n": "v15", "t": {"T": 1, "n": "int", "s": 4}, "location": "s304"}, {"n": "v14", "t": {"T": 1, "n": "int", "s": 4}, "location": "s308"}, {"n": "v13", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s312"}, {"n": "v47", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s40"}, {"n": "v46", "t": {"T": 1, "n": "int", "s": 4}, "location": "s44"}, {"n": "v45", "t": {"T": 1, "n": "int", "s": 4}, "location": "s48"}, {"n": "v44", "t": {"T": 1, "n": "int", "s": 4}, "location": "s52"}, {"n": "v43", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "s53"}, {"n": "v42", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s80"}, {"n": "v41", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s92"}, {"n": "v40", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s96"}]}