{"name": "generate_adpcm", "code": "__int64 __fastcall generate_adpcm ( __int64 @@a1@@ , _WORD * @@a2@@ , unsigned int @@a3@@ ) { _WORD * v3 ; _WORD * v4 ; __int64 result ; int @@v8@@ ; int @@v9@@ ; unsigned __int64 @@v10@@ ; int @@v11@@ ; int @@v12@@ ; int @@v13@@ ; if ( * ( _BYTE * ) @@a1@@ ) { @@v10@@ = * ( _QWORD * ) ( @@a1@@ + Number ) + * ( int * ) ( @@a1@@ + Number ) + ( unsigned __int64 ) * ( unsigned int * ) ( @@a1@@ + Number ) ; @@v13@@ = * ( _DWORD * ) ( @@a1@@ + Number ) ; @@v12@@ = * ( _DWORD * ) ( @@a1@@ + Number ) ; @@v9@@ = * ( _DWORD * ) ( @@a1@@ + Number ) ; @@v11@@ = * ( _DWORD * ) ( @@a1@@ + Number ) ; while ( @@a3@@ ) { @@v8@@ = ( int ) * ( unsigned __int8 * ) ( @@v13@@ / Number + @@v10@@ ) >> ( ~ ( Number * @@v13@@ ) & Number ) ; @@v12@@ += diff_lookup [ Number * @@v11@@ + ( @@v8@@ & Number ) ] ; if ( @@v12@@ <= Number ) { if ( @@v12@@ < Number ) @@v12@@ = Number ; } else { @@v12@@ = Number ; } @@v11@@ += index_shift [ @@v8@@ & Number ] ; if ( @@v11@@ <= Number ) { if ( @@v11@@ < Number ) @@v11@@ = Number ; } else { @@v11@@ = Number ; } v3 = @@a2@@ ++ ; * v3 = Number * @@v12@@ ; -- @@a3@@ ; if ( ++ @@v13@@ >= @@v9@@ ) { if ( ! * ( _BYTE * ) ( @@a1@@ + Number ) ) { * ( _BYTE * ) @@a1@@ = Number ; break ; } @@v13@@ = Number ; @@v12@@ = Number ; @@v11@@ = Number ; } } * ( _DWORD * ) ( @@a1@@ + Number ) = @@v13@@ ; * ( _DWORD * ) ( @@a1@@ + Number ) = @@v12@@ ; * ( _DWORD * ) ( @@a1@@ + Number ) = @@v11@@ ; } while ( Number ) { result = @@a3@@ -- ; if ( ! ( _DWORD ) result ) break ; v4 = @@a2@@ ++ ; * v4 = Number ; } return result ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "_WORD"}, "location": "r64"}, {"n": "v11", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v10", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s24"}, {"n": "v9", "t": {"T": 1, "n": "int", "s": 4}, "location": "s28"}, {"n": "v8", "t": {"T": 1, "n": "int", "s": 4}, "location": "s32"}, {"n": "v13", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}, {"n": "v12", "t": {"T": 1, "n": "int", "s": 4}, "location": "s8"}]}
{"name": "es8712_update", "code": "__int64 __fastcall es8712_update ( __int64 @@a1@@ , __int64 @@a2@@ , void * * @@a3@@ , int @@a4@@ ) { _DWORD * v4 ; __int64 result ; __int16 * v6 ; _DWORD * v7 ; __int16 * v8 ; _WORD @@v9@@ [ Number ] ; int @@v10@@ ; __int64 @@v11@@ ; int @@v12@@ ; _DWORD * @@v13@@ ; unsigned int @@v14@@ ; __int16 @@v15@@ ; __int16 @@v16@@ ; __int16 * @@v17@@ ; @@v11@@ = @@a1@@ ; @@v17@@ = @@v9@@ ; @@v16@@ = * ( _WORD * ) ( @@a1@@ + Number ) ; @@v15@@ = * ( _WORD * ) ( @@a1@@ + Number ) ; @@v13@@ = * @@a3@@ ; @@v12@@ = @@a4@@ ; memset ( * @@a3@@ , Number , Number L * @@a4@@ ) ; if ( * ( _DWORD * ) ( @@v11@@ + Number ) ) { while ( @@v12@@ > Number && * ( _DWORD * ) ( @@v11@@ + Number ) <= Number ) { v4 = @@v13@@ ++ ; * v4 += ( ( Number - * ( _DWORD * ) ( @@v11@@ + Number ) ) * @@v16@@ + @@v15@@ * * ( _DWORD * ) ( @@v11@@ + Number ) ) >> Number ; * ( _DWORD * ) ( @@v11@@ + Number ) += * ( _DWORD * ) ( @@v11@@ + Number ) ; -- @@v12@@ ; } result = * ( unsigned int * ) ( @@v11@@ + Number ) ; if ( ( unsigned int ) result <= Number ) return result ; * ( _DWORD * ) ( @@v11@@ + Number ) -= Number ; } @@v10@@ = * ( _DWORD * ) ( @@v11@@ + Number ) + * ( _DWORD * ) ( @@v11@@ + Number ) * @@v12@@ ; @@v14@@ = ( unsigned int ) ( @@v10@@ + Number ) >> Number ; if ( @@v14@@ > Number ) @@v14@@ = Number ; generate_adpcm ( @@v11@@ , @@v9@@ , @@v14@@ ) ; @@v16@@ = @@v15@@ ; v6 = @@v17@@ ++ ; @@v15@@ = * v6 ; while ( @@v12@@ > Number ) { while ( @@v12@@ > Number && * ( _DWORD * ) ( @@v11@@ + Number ) <= Number ) { v7 = @@v13@@ ++ ; * v7 += ( ( Number - * ( _DWORD * ) ( @@v11@@ + Number ) ) * @@v16@@ + @@v15@@ * * ( _DWORD * ) ( @@v11@@ + Number ) ) >> Number ; * ( _DWORD * ) ( @@v11@@ + Number ) += * ( _DWORD * ) ( @@v11@@ + Number ) ; -- @@v12@@ ; } if ( * ( _DWORD * ) ( @@v11@@ + Number ) > Number ) { * ( _DWORD * ) ( @@v11@@ + Number ) -= Number ; @@v16@@ = @@v15@@ ; v8 = @@v17@@ ++ ; @@v15@@ = * v8 ; } } * ( _WORD * ) ( @@v11@@ + Number ) = @@v16@@ ; result = @@v11@@ ; * ( _WORD * ) ( @@v11@@ + Number ) = @@v15@@ ; return result ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "void *"}, "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": "__int64", "s": 8}, "location": "r64"}, {"n": "v16", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "s10"}, {"n": "v15", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "s12"}, {"n": "v14", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s16"}, {"n": "v9", "t": {"T": 2, "n": 10002, "s": 2, "t": "_WORD"}, "location": "s20048"}, {"n": "v13", "t": {"T": 3, "t": "_DWORD"}, "location": "s24"}, {"n": "v12", "t": {"T": 1, "n": "int", "s": 4}, "location": "s28"}, {"n": "v11", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s40"}, {"n": "v10", "t": {"T": 1, "n": "int", "s": 4}, "location": "s44"}, {"n": "v17", "t": {"T": 3, "t": "__int16"}, "location": "s8"}]}