{"name": "es8712_start", "code": "void * __fastcall es8712_start ( unsigned int @@a1@@ , int @@a2@@ , unsigned int * @@a3@@ ) { void * @@s@@ ; @@s@@ = ( void * ) auto_malloc ( Number L , String , Number L ) ; memset ( @@s@@ , Number , Number ) ; compute_tables ( ) ; * ( ( _DWORD * ) @@s@@ + Number ) = Number ; * ( ( _DWORD * ) @@s@@ + Number ) = Number ; * ( ( _BYTE * ) @@s@@ + Number ) = Number ; * ( ( _DWORD * ) @@s@@ + Number ) = Number ; * ( ( _QWORD * ) @@s@@ + Number ) = memory_region ( * @@a3@@ ) ; * ( ( _QWORD * ) @@s@@ + Number ) = stream_create ( Number L , Number L , * ( unsigned int * ) ( Machine + Number L ) , @@s@@ , es8712_update ) ; * ( ( _DWORD * ) @@s@@ + Number ) = Number ; * ( ( _DWORD * ) @@s@@ + Number ) = ( int ) ( Number * ( double ) @@a2@@ / ( double ) * ( int * ) ( Machine + Number L ) ) ; es8712_state_save_register ( ( __int64 ) @@s@@ , @@a1@@ ) ; return @@s@@ ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "unsigned int"}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "s", "t": {"T": 3, "t": "void"}, "location": "s16"}]}
{"name": "compute_tables", "code": "void compute_tables ( ) { double @@v0@@ ; double @@v1@@ ; int v2 ; int @@v3@@ ; int v4 ; int @@v5@@ ; int @@j@@ ; int @@i@@ ; for ( @@i@@ = Number ; @@i@@ <= Number ; ++ @@i@@ ) { @@v0@@ = Number * pow ( Number , ( double ) @@i@@ ) ; @@v1@@ = @@v0@@ ; if ( fabs ( @@v0@@ ) < Number ) * ( _QWORD * ) & @@v1@@ = COERCE_UNSIGNED_INT64 ( ( double ) ( int ) @@v0@@ ) | * ( _QWORD * ) & @@v0@@ & Number ; @@v5@@ = ( int ) @@v1@@ ; for ( @@j@@ = Number ; @@j@@ <= Number ; ++ @@j@@ ) { v2 = ( int ) @@v1@@ ; if ( @@v5@@ < Number ) v2 = @@v5@@ + Number ; @@v3@@ = ( v2 >> Number ) * dword_1DAC [ Number * @@j@@ ] + @@v5@@ * * ( ( _DWORD * ) & unk_1DA4 + Number * @@j@@ ) + @@v5@@ / Number * * ( ( _DWORD * ) & unk_1DA8 + Number * @@j@@ ) ; v4 = ( int ) @@v1@@ ; if ( @@v5@@ < Number ) v4 = @@v5@@ + Number ; diff_lookup [ Number * @@i@@ + @@j@@ ] = ( @@v3@@ + ( v4 >> Number ) ) * * ( ( _DWORD * ) & nbl2bit_5809 + Number * @@j@@ ) ; } } }", "source": [{"n": "v1", "t": {"T": 1, "n": "double", "s": 8}, "location": "r496"}, {"n": "v0", "t": {"T": 1, "n": "double", "s": 8}, "location": "r512"}, {"n": "v3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "v5", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}, {"n": "j", "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"}]} {"name": "es8712_state_save_register", "code": "__int64 __fastcall es8712_state_save_register ( __int64 @@a1@@ , unsigned int @@a2@@ ) { char @@s@@ [ Number ] ; sprintf ( @@s@@ , String ) ; state_save_register_memory ( @@s@@ , @@a2@@ , String , @@a1@@ + Number , Number L , Number L ) ; state_save_register_memory ( @@s@@ , @@a2@@ , String , @@a1@@ , Number L , Number L ) ; state_save_register_memory ( @@s@@ , @@a2@@ , String , @@a1@@ + Number , Number L , Number L ) ; state_save_register_memory ( @@s@@ , @@a2@@ , String , @@a1@@ + Number , Number L , Number L ) ; state_save_register_memory ( @@s@@ , @@a2@@ , String , @@a1@@ + Number , Number L , Number L ) ; state_save_register_memory ( @@s@@ , @@a2@@ , String , @@a1@@ + Number , Number L , Number L ) ; state_save_register_memory ( @@s@@ , @@a2@@ , String , @@a1@@ + Number , Number L , Number L ) ; state_save_register_memory ( @@s@@ , @@a2@@ , String , @@a1@@ + Number , Number L , Number L ) ; state_save_register_memory ( @@s@@ , @@a2@@ , String , @@a1@@ + Number , Number L , Number L ) ; state_save_register_memory ( @@s@@ , @@a2@@ , String , @@a1@@ + Number , Number L , Number L ) ; state_save_register_memory ( @@s@@ , @@a2@@ , String , @@a1@@ + Number , Number L , Number L ) ; state_save_register_memory ( @@s@@ , @@a2@@ , String , @@a1@@ + Number , Number L , Number L ) ; state_save_register_memory ( @@s@@ , @@a2@@ , String , @@a1@@ + Number , Number L , Number L ) ; return state_save_register_memory ( @@s@@ , @@a2@@ , String , @@a1@@ + Number , Number L , Number L ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r64"}, {"n": "s", "t": {"T": 2, "n": 32, "s": 1, "t": "char"}, "location": "s32"}]} {"name": "es8712_get_info", "code": "_QWORD * __fastcall es8712_get_info ( __int64 @@a1@@ , unsigned int @@a2@@ , _QWORD * @@a3@@ ) { _QWORD * @@result@@ ; if ( @@a2@@ <= Number ) { if ( @@a2@@ >= Number ) { @@result@@ = ( _QWORD * ) ( @@a2@@ - Number ) ; switch ( @@a2@@ ) { case Number : @@result@@ = @@a3@@ ; * @@a3@@ = String ; break ; case Number : @@result@@ = @@a3@@ ; * @@a3@@ = String ; break ; case Number : @@result@@ = @@a3@@ ; * @@a3@@ = String ; break ; case Number : @@result@@ = @@a3@@ ; * @@a3@@ = String ; break ; case Number : @@result@@ = @@a3@@ ; * @@a3@@ = String ; break ; default : return @@result@@ ; } } else if ( @@a2@@ == Number ) { @@result@@ = @@a3@@ ; * @@a3@@ = es8712_reset ; } else if ( @@a2@@ <= Number && @@a2@@ != Number ) { if ( @@a2@@ == Number ) { @@result@@ = @@a3@@ ; * @@a3@@ = es8712_set_info ; } else if ( @@a2@@ == Number ) { @@result@@ = @@a3@@ ; * @@a3@@ = es8712_start ; } } } return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "_QWORD"}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r64"}, {"n": "result", "t": {"T": 3, "t": "_QWORD"}, "location": "r8"}]}