{"name": "add_data_in_datablock", "code": "__int64 __fastcall add_data_in_datablock ( _QWORD * @@a1@@ , __int64 @@a2@@ , unsigned __int64 @@a3@@ ) { char * @@v5@@ ; unsigned int @@i@@ ; unsigned int @@v7@@ ; _QWORD * @@v9@@ ; if ( ! @@a1@@ ) return Number L ; if ( ! @@a1@@ [ Number ] ) { @@a1@@ [ Number ] = allocate_new_datablock ( ) ; * @@a1@@ = @@a1@@ [ Number ] ; if ( ! * @@a1@@ ) return Number L ; } @@v9@@ = ( _QWORD * ) @@a1@@ [ Number ] ; while ( @@a3@@ ) { if ( ! @@v9@@ [ Number ] ) { * @@v9@@ = allocate_new_datablock ( ) ; if ( ! * @@v9@@ ) return Number L ; @@v9@@ = ( _QWORD * ) * @@v9@@ ; @@a1@@ [ Number ] = @@v9@@ ; } if ( @@a3@@ <= @@v9@@ [ Number ] ) @@v7@@ = @@a3@@ ; else @@v7@@ = @@v9@@ [ Number ] ; @@v5@@ = ( char * ) @@v9@@ + @@v9@@ [ Number ] + Number ; for ( @@i@@ = Number ; @@i@@ < @@v7@@ ; ++ @@i@@ ) @@v5@@ [ @@i@@ ] = * ( _BYTE * ) ( @@i@@ + @@a2@@ ) ; @@v9@@ [ Number ] += @@v7@@ ; @@v9@@ [ Number ] -= @@v7@@ ; @@a2@@ += @@v7@@ ; @@a3@@ -= @@v7@@ ; } return Number L ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "r16"}, {"n": "a1", "t": {"T": 3, "t": "_QWORD"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "v7", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s20"}, {"n": "i", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s24"}, {"n": "v5", "t": {"T": 3, "t": "char"}, "location": "s32"}, {"n": "v9", "t": {"T": 3, "t": "_QWORD"}, "location": "s8"}]}