{"name": "thunk_type_align", "code": "__int64 __fastcall thunk_type_align ( _DWORD * @@a1@@ , unsigned int @@a2@@ ) { __int64 @@result@@ ; switch ( * @@a1@@ ) { case Number : @@result@@ = Number L ; break ; case Number : @@result@@ = Number L ; break ; case Number : @@result@@ = Number L ; break ; case Number : case Number : case Number : case Number : if ( @@a2@@ ) @@result@@ = Number L ; else @@result@@ = Number L ; break ; case Number : case Number : @@result@@ = Number L ; break ; case Number : @@result@@ = thunk_type_align_array ( @@a1@@ + Number , @@a2@@ ) ; break ; case Number : @@result@@ = * ( unsigned int * ) & struct_entries [ Number * @@a1@@ [ Number ] + Number + Number * @@a2@@ ] ; break ; default : @@result@@ = Number ; break ; } return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "_DWORD"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r64"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}]}
{"name": "thunk_register_struct", "code": "unsigned __int64 __fastcall thunk_register_struct ( int @@a1@@ , __int64 @@a2@@ , int * @@a3@@ ) { int * @@v4@@ ; int @@v5@@ ; int v6 ; int v7 ; int @@v8@@ ; signed int @@i@@ ; int @@j@@ ; int @@v11@@ ; int @@v12@@ ; int * v13 ; int * v14 ; char * @@v15@@ ; unsigned __int64 @@v16@@ ; @@v4@@ = @@a3@@ ; @@v16@@ = __readfsqword ( Number ) ; @@v15@@ = & struct_entries [ Number * @@a1@@ ] ; v13 = @@a3@@ ; @@v5@@ = Number ; while ( * v13 ) { v13 = ( int * ) thunk_type_next ( v13 ) ; ++ @@v5@@ ; } * ( _QWORD * ) @@v15@@ = @@v4@@ ; * ( ( _DWORD * ) @@v15@@ + Number ) = @@v5@@ ; * ( ( _QWORD * ) @@v15@@ + Number ) = @@a2@@ ; for ( @@i@@ = Number ; @@i@@ <= Number ; ++ @@i@@ ) { v6 = Number ; @@v8@@ = Number ; * ( _QWORD * ) & @@v15@@ [ Number * @@i@@ + Number ] = malloc ( Number L * @@v5@@ ) ; v14 = * ( int * * ) @@v15@@ ; for ( @@j@@ = Number ; @@j@@ < @@v5@@ ; ++ @@j@@ ) { @@v11@@ = thunk_type_size ( v14 , @@i@@ ) ; @@v12@@ = thunk_type_align ( v14 , @@i@@ ) ; v7 = ( v6 + @@v12@@ - Number ) & - @@v12@@ ; * ( _DWORD * ) ( * ( _QWORD * ) & @@v15@@ [ Number * @@i@@ + Number ] + Number L * @@j@@ ) = v7 ; v6 = @@v11@@ + v7 ; if ( @@v12@@ > @@v8@@ ) @@v8@@ = @@v12@@ ; v14 = ( int * ) thunk_type_next ( v14 ) ; } * ( _DWORD * ) & @@v15@@ [ Number * @@i@@ + Number ] = ( v6 + @@v8@@ - Number ) & - @@v8@@ ; * ( _DWORD * ) & @@v15@@ [ Number * @@i@@ + Number ] = @@v8@@ ; } return __readfsqword ( Number ) ^ @@v16@@ ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "int"}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "int", "s": 4}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "v15", "t": {"T": 3, "t": "char"}, "location": "s16"}, {"n": "v12", "t": {"T": 1, "n": "int", "s": 4}, "location": "s28"}, {"n": "v11", "t": {"T": 1, "n": "int", "s": 4}, "location": "s32"}, {"n": "j", "t": {"T": 1, "n": "int", "s": 4}, "location": "s36"}, {"n": "i", "t": {"T": 1, "n": "signed int", "s": 4}, "location": "s40"}, {"n": "v8", "t": {"T": 1, "n": "int", "s": 4}, "location": "s44"}, {"n": "v5", "t": {"T": 1, "n": "int", "s": 4}, "location": "s52"}, {"n": "v16", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}, {"n": "v4", "t": {"T": 3, "t": "int"}, "location": "s88"}]} {"name": "thunk_type_align_array", "code": "__int64 __fastcall thunk_type_align_array ( _DWORD * @@a1@@ , unsigned int @@a2@@ ) { return thunk_type_align ( @@a1@@ , @@a2@@ ) ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "_DWORD"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r64"}]}