{"name": "ulti_pattern", "code": "unsigned __int64 __fastcall ulti_pattern ( __int64 @@a1@@ , int @@a2@@ , int @@a3@@ , int @@a4@@ , int @@a5@@ , char @@a6@@ , char @@a7@@ , int @@a8@@ ) { char @@v9@@ [ Number ] ; int @@v10@@ ; int @@v11@@ ; @@v11@@ = Number ; @@v10@@ = Number ; while ( @@v11@@ ) { if ( ( @@v11@@ & @@a4@@ ) != Number ) @@v9@@ [ @@v10@@ ] = @@a7@@ ; else @@v9@@ [ @@v10@@ ] = @@a6@@ ; @@v11@@ >>= Number ; ++ @@v10@@ ; } @@v11@@ = Number ; @@v10@@ = Number ; while ( @@v11@@ ) { if ( ( @@v11@@ & @@a5@@ ) != Number ) @@v9@@ [ @@v10@@ ] = @@a7@@ ; else @@v9@@ [ @@v10@@ ] = @@a6@@ ; @@v11@@ >>= Number ; ++ @@v10@@ ; } return ulti_convert_yuv ( @@a1@@ , @@a2@@ , @@a3@@ , ( __int64 ) @@v9@@ , @@a8@@ ) ; }", "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": "int", "s": 4}, "location": "r72"}, {"n": "a6", "t": {"T": 1, "n": "char", "s": 1}, "location": "r80"}, {"n": "a8", "t": {"T": 1, "n": "int", "s": 4}, "location": "s-16"}, {"n": "a7", "t": {"T": 1, "n": "char", "s": 1}, "location": "s-8"}, {"n": "v9", "t": {"T": 2, "n": 24, "s": 1, "t": "char"}, "location": "s32"}, {"n": "v11", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}, {"n": "v10", "t": {"T": 1, "n": "int", "s": 4}, "location": "s8"}]}
{"name": "ulti_convert_yuv", "code": "unsigned __int64 __fastcall ulti_convert_yuv ( __int64 @@a1@@ , int @@a2@@ , int @@a3@@ , __int64 @@a4@@ , int @@a5@@ ) { unsigned __int64 @@result@@ ; _BYTE * @@v6@@ ; int @@i@@ ; __int64 @@v8@@ ; @@v8@@ = * ( _QWORD * ) @@a1@@ + @@a2@@ + ( __int64 ) ( @@a3@@ * * ( _DWORD * ) ( @@a1@@ + Number ) ) ; @@v6@@ = ( _BYTE * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + @@a2@@ / Number + ( __int64 ) ( @@a3@@ / Number * * ( _DWORD * ) ( @@a1@@ + Number ) ) ) ; * ( _BYTE * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + @@a2@@ / Number + ( __int64 ) ( @@a3@@ / Number * * ( _DWORD * ) ( @@a1@@ + Number ) ) ) = ulti_chromas [ @@a5@@ >> Number ] ; @@result@@ = ( unsigned __int64 ) @@v6@@ ; * @@v6@@ = ulti_chromas [ @@a5@@ & Number ] ; for ( @@i@@ = Number ; @@i@@ <= Number ; ++ @@i@@ ) { * ( _BYTE * ) ( ( @@i@@ & Number ) + @@v8@@ ) = ulti_lumas [ * ( unsigned __int8 * ) ( @@i@@ + @@a4@@ ) ] ; @@result@@ = @@i@@ & Number ; if ( ( _DWORD ) @@result@@ == Number ) { @@result@@ = * ( int * ) ( @@a1@@ + Number ) ; @@v8@@ += @@result@@ ; } } return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "__int64", "s": 8}, "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": "int", "s": 4}, "location": "r72"}, {"n": "result", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "r8"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v6", "t": {"T": 3, "t": "_BYTE"}, "location": "s32"}, {"n": "v8", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s8"}]} {"name": "ulti_decode_frame", "code": "__int64 __fastcall ulti_decode_frame ( __int64 @@a1@@ , void * @@a2@@ , _DWORD * @@a3@@ , __int64 @@a4@@ , unsigned int @@a5@@ ) { __int64 result ; unsigned __int8 * v6 ; unsigned __int8 * v7 ; unsigned __int8 * v8 ; unsigned __int8 * v9 ; unsigned __int8 * v10 ; unsigned __int8 * v11 ; unsigned __int16 v12 ; unsigned __int8 * v13 ; unsigned __int8 * v14 ; unsigned __int8 * v15 ; unsigned __int8 * v16 ; unsigned __int8 * v17 ; unsigned __int8 * v18 ; unsigned __int8 * v19 ; unsigned __int8 * @@v21@@ ; _DWORD * @@v22@@ ; void * @@v23@@ ; __int64 @@v24@@ ; char @@v25@@ [ Number ] ; char @@v26@@ ; char @@v27@@ ; char @@v28@@ ; char @@v29@@ ; __int64 * @@v30@@ ; __int64 * @@v31@@ ; __int64 * @@v32@@ ; __int64 * @@v33@@ ; __int64 * @@v34@@ ; __int64 * @@v35@@ ; int @@v36@@ ; int @@v37@@ ; int @@v38@@ ; int @@v39@@ ; int @@v40@@ ; int @@v41@@ ; int @@v42@@ ; unsigned int @@v43@@ ; __int64 @@v44@@ ; int @@v45@@ ; int @@v46@@ ; int @@v47@@ ; int @@i@@ ; int @@v49@@ ; int @@v50@@ ; int @@v51@@ ; int @@v52@@ ; _BOOL4 @@v53@@ ; int @@v54@@ ; unsigned int @@v55@@ ; @@v24@@ = @@a1@@ ; @@v23@@ = @@a2@@ ; @@v22@@ = @@a3@@ ; @@v21@@ = ( unsigned __int8 * ) @@a4@@ ; @@v44@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; @@v55@@ = Number ; @@v54@@ = Number ; @@v53@@ = Number ; @@v52@@ = Number ; @@v51@@ = Number ; @@v50@@ = Number ; @@v49@@ = Number ; if ( * ( _QWORD * ) ( @@v44@@ + Number ) ) ( * ( void ( __fastcall * * ) ( __int64 , __int64 ) ) ( @@v24@@ + Number ) ) ( @@v24@@ , @@v44@@ + Number ) ; * ( _DWORD * ) ( @@v44@@ + Number ) = Number ; * ( _DWORD * ) ( @@v44@@ + Number ) = Number ; if ( ( * ( int ( __fastcall * * ) ( __int64 , __int64 ) ) ( @@v24@@ + Number ) ) ( @@v24@@ , @@v44@@ + Number ) >= Number ) { while ( ! @@v51@@ && @@v52@@ < * ( _DWORD * ) ( @@v44@@ + Number ) && @@v49@@ < * ( _DWORD * ) ( @@v44@@ + Number ) ) { v6 = @@v21@@ ++ ; @@v43@@ = * v6 ; if ( ( @@v43@@ & Number ) == Number ) { switch ( @@v43@@ ) { case String : v7 = @@v21@@ ++ ; @@v55@@ = * v7 ; if ( ( int ) @@v55@@ > Number ) av_log ( @@v24@@ , Number L , String , @@v55@@ ) ; break ; case String : @@v54@@ = Number ; break ; case String : @@v53@@ = ! @@v53@@ ; break ; case String : @@v51@@ = Number ; break ; case String : v8 = @@v21@@ ++ ; @@v36@@ = * v8 ; if ( @@v36@@ + @@v52@@ < * ( _DWORD * ) ( @@v44@@ + Number ) ) { @@v52@@ += @@v36@@ ; @@v50@@ += Number * @@v36@@ ; while ( @@v50@@ >= * ( _DWORD * ) ( @@v44@@ + Number ) ) { @@v50@@ -= * ( _DWORD * ) ( @@v44@@ + Number ) ; @@v49@@ += Number ; } } break ; default : av_log ( @@v24@@ , Number L , String , @@v43@@ ) ; break ; } } else { @@v46@@ = Number ; @@v42@@ = Number ; @@v41@@ = Number ; @@v45@@ = Number ; if ( @@v53@@ || @@v54@@ ) { @@v54@@ = Number ; @@v47@@ = Number ; @@v45@@ = Number ; } else { @@v47@@ = Number ; if ( @@v43@@ ) { v9 = @@v21@@ ++ ; @@v45@@ = * v9 ; } } for ( @@i@@ = Number ; @@i@@ <= Number ; ++ @@i@@ ) { @@v40@@ = ( ( int ) @@v43@@ >> ( Number * ( Number - @@i@@ ) ) ) & Number ; if ( @@v40@@ ) { if ( @@v47@@ ) { v10 = @@v21@@ ++ ; @@v45@@ = * v10 ; } @@v42@@ = block_coords [ Number * @@i@@ ] + @@v50@@ ; @@v41@@ = block_coords [ Number * @@i@@ + Number ] + @@v49@@ ; if ( @@v40@@ == Number ) { if ( @@v55@@ ) { @@v30@@ = ( __int64 * ) & @@v21@@ ; @@v21@@ += Number ; @@v39@@ = ( * ( @@v21@@ - Number ) << Number ) | ( * ( @@v21@@ - Number ) << Number ) | * ( @@v21@@ - Number ) ; @@v25@@ [ Number ] = ( @@v39@@ >> Number ) & Number ; @@v25@@ [ Number ] = ( @@v39@@ >> Number ) & Number ; @@v25@@ [ Number ] = ( @@v39@@ >> Number ) & Number ; @@v25@@ [ Number ] = @@v39@@ & Number ; @@v31@@ = ( __int64 * ) & @@v21@@ ; @@v21@@ += Number ; @@v39@@ = ( * ( @@v21@@ - Number ) << Number ) | ( * ( @@v21@@ - Number ) << Number ) | * ( @@v21@@ - Number ) ; @@v25@@ [ Number ] = ( @@v39@@ >> Number ) & Number ; @@v25@@ [ Number ] = ( @@v39@@ >> Number ) & Number ; @@v25@@ [ Number ] = ( @@v39@@ >> Number ) & Number ; @@v25@@ [ Number ] = @@v39@@ & Number ; @@v32@@ = ( __int64 * ) & @@v21@@ ; @@v21@@ += Number ; @@v39@@ = ( * ( @@v21@@ - Number ) << Number ) | ( * ( @@v21@@ - Number ) << Number ) | * ( @@v21@@ - Number ) ; @@v25@@ [ Number ] = ( @@v39@@ >> Number ) & Number ; @@v25@@ [ Number ] = ( @@v39@@ >> Number ) & Number ; @@v25@@ [ Number ] = ( @@v39@@ >> Number ) & Number ; @@v25@@ [ Number ] = @@v39@@ & Number ; @@v33@@ = ( __int64 * ) & @@v21@@ ; @@v21@@ += Number ; @@v39@@ = ( * ( @@v21@@ - Number ) << Number ) | ( * ( @@v21@@ - Number ) << Number ) | * ( @@v21@@ - Number ) ; @@v25@@ [ Number ] = ( @@v39@@ >> Number ) & Number ; @@v25@@ [ Number ] = ( @@v39@@ >> Number ) & Number ; @@v25@@ [ Number ] = ( @@v39@@ >> Number ) & Number ; @@v25@@ [ Number ] = @@v39@@ & Number ; ulti_convert_yuv ( @@v44@@ + Number , @@v42@@ , @@v41@@ , ( __int64 ) @@v25@@ , @@v45@@ ) ; } else { v13 = @@v21@@ ++ ; @@v39@@ = * v13 ; if ( ( @@v39@@ & Number ) != Number ) { @@v46@@ = ( @@v39@@ >> Number ) & Number ; v14 = @@v21@@ ++ ; @@v39@@ = ( @@v39@@ << Number ) + * v14 ; @@v26@@ = ( @@v39@@ >> Number ) & Number ; @@v27@@ = @@v39@@ & Number ; v15 = @@v21@@ ++ ; @@v28@@ = * v15 & Number ; v16 = @@v21@@ ++ ; @@v29@@ = * v16 & Number ; ulti_grad ( @@v44@@ + Number , @@v42@@ , @@v41@@ , & @@v26@@ , @@v45@@ , @@v46@@ ) ; } else { v17 = @@v21@@ ++ ; @@v38@@ = * v17 ; @@v37@@ = @@v39@@ ; v18 = @@v21@@ ++ ; @@v26@@ = * v18 & Number ; v19 = @@v21@@ ++ ; @@v27@@ = * v19 & Number ; ulti_pattern ( @@v44@@ + Number , @@v42@@ , @@v41@@ , @@v39@@ , @@v38@@ , @@v26@@ , @@v27@@ , @@v45@@ ) ; } } } else if ( @@v40@@ == Number ) { v11 = @@v21@@ ++ ; @@v39@@ = * v11 ; @@v46@@ = angle_by_index [ ( @@v39@@ >> Number ) & Number ] ; @@v26@@ = @@v39@@ & Number ; @@v27@@ = @@v39@@ & Number ; if ( @@v46@@ ) { @@v28@@ = @@v26@@ + Number ; if ( ( unsigned __int8 ) ( @@v26@@ + Number ) > Number ) @@v28@@ = Number ; @@v29@@ = @@v28@@ ; } else { @@v28@@ = @@v26@@ ; @@v29@@ = @@v26@@ ; } } else if ( @@v55@@ ) { @@v35@@ = ( __int64 * ) & @@v21@@ ; @@v21@@ += Number ; @@v39@@ = ( * ( @@v21@@ - Number ) << Number ) | ( * ( @@v21@@ - Number ) << Number ) | * ( @@v21@@ - Number ) ; @@v26@@ = ( @@v39@@ >> Number ) & Number ; @@v27@@ = ( @@v39@@ >> Number ) & Number ; @@v28@@ = ( @@v39@@ >> Number ) & Number ; @@v29@@ = @@v39@@ & Number ; @@v46@@ = Number ; } else { @@v34@@ = ( __int64 * ) & @@v21@@ ; @@v21@@ += Number ; v12 = _bswap_16 ( * ( ( _WORD * ) @@v21@@ - Number ) ) ; @@v46@@ = ( ( int ) v12 >> Number ) & Number ; @@v39@@ = v12 & Number ; @@v39@@ *= Number ; @@v26@@ = * ( _BYTE * ) ( * ( _QWORD * ) ( @@v44@@ + Number ) + @@v39@@ ) ; @@v27@@ = * ( _BYTE * ) ( @@v39@@ + Number L + * ( _QWORD * ) ( @@v44@@ + Number ) ) ; @@v28@@ = * ( _BYTE * ) ( @@v39@@ + Number L + * ( _QWORD * ) ( @@v44@@ + Number ) ) ; @@v29@@ = * ( _BYTE * ) ( @@v39@@ + Number L + * ( _QWORD * ) ( @@v44@@ + Number ) ) ; } if ( @@v40@@ != Number ) ulti_grad ( @@v44@@ + Number , @@v42@@ , @@v41@@ , & @@v26@@ , @@v45@@ , @@v46@@ ) ; } } ++ @@v52@@ ; @@v50@@ += Number ; if ( @@v50@@ >= * ( _DWORD * ) ( @@v44@@ + Number ) ) { @@v50@@ = Number ; @@v49@@ += Number ; } } } * @@v22@@ = Number ; qmemcpy ( @@v23@@ , ( const void * ) ( @@v44@@ + Number ) , Number ) ; result = @@a5@@ ; } else { av_log ( @@v24@@ , Number L , String ) ; result = Number ; } return result ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "_DWORD"}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r24"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "void"}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r72"}, {"n": "v35", "t": {"T": 3, "t": "__int64"}, "location": "s104"}, {"n": "v34", "t": {"T": 3, "t": "__int64"}, "location": "s112"}, {"n": "v55", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s12"}, {"n": "v33", "t": {"T": 3, "t": "__int64"}, "location": "s120"}, {"n": "v32", "t": {"T": 3, "t": "__int64"}, "location": "s128"}, {"n": "v31", "t": {"T": 3, "t": "__int64"}, "location": "s136"}, {"n": "v30", "t": {"T": 3, "t": "__int64"}, "location": "s144"}, {"n": "v29", "t": {"T": 1, "n": "char", "s": 1}, "location": "s145"}, {"n": "v28", "t": {"T": 1, "n": "char", "s": 1}, "location": "s146"}, {"n": "v27", "t": {"T": 1, "n": "char", "s": 1}, "location": "s147"}, {"n": "v26", "t": {"T": 1, "n": "char", "s": 1}, "location": "s148"}, {"n": "v54", "t": {"T": 1, "n": "int", "s": 4}, "location": "s16"}, {"n": "v25", "t": {"T": 2, "n": 20, "s": 1, "t": "char"}, "location": "s168"}, {"n": "v24", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s176"}, {"n": "v23", "t": {"T": 3, "t": "void"}, "location": "s184"}, {"n": "v22", "t": {"T": 3, "t": "_DWORD"}, "location": "s192"}, {"n": "v53", "t": {"T": 1, "n": "_BOOL4", "s": 4}, "location": "s20"}, {"n": "v21", "t": {"T": 3, "t": "unsigned __int8"}, "location": "s200"}, {"n": "v52", "t": {"T": 1, "n": "int", "s": 4}, "location": "s24"}, {"n": "v51", "t": {"T": 1, "n": "int", "s": 4}, "location": "s28"}, {"n": "v50", "t": {"T": 1, "n": "int", "s": 4}, "location": "s32"}, {"n": "v49", "t": {"T": 1, "n": "int", "s": 4}, "location": "s36"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s40"}, {"n": "v47", "t": {"T": 1, "n": "int", "s": 4}, "location": "s44"}, {"n": "v46", "t": {"T": 1, "n": "int", "s": 4}, "location": "s48"}, {"n": "v45", "t": {"T": 1, "n": "int", "s": 4}, "location": "s52"}, {"n": "v44", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s64"}, {"n": "v43", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s68"}, {"n": "v42", "t": {"T": 1, "n": "int", "s": 4}, "location": "s72"}, {"n": "v41", "t": {"T": 1, "n": "int", "s": 4}, "location": "s76"}, {"n": "v40", "t": {"T": 1, "n": "int", "s": 4}, "location": "s80"}, {"n": "v39", "t": {"T": 1, "n": "int", "s": 4}, "location": "s84"}, {"n": "v38", "t": {"T": 1, "n": "int", "s": 4}, "location": "s88"}, {"n": "v37", "t": {"T": 1, "n": "int", "s": 4}, "location": "s92"}, {"n": "v36", "t": {"T": 1, "n": "int", "s": 4}, "location": "s96"}]}