{"name": "EVP_DecodeFinal", "code": "__int64 __fastcall EVP_DecodeFinal ( __int64 @@a1@@ , _BYTE * @@a2@@ , int * @@a3@@ ) { int @@v5@@ ; * @@a3@@ = Number ; if ( ! * ( _DWORD * ) @@a1@@ ) return Number L ; @@v5@@ = EVP_DecodeBlock ( @@a2@@ , ( _BYTE * ) ( @@a1@@ + Number ) , * ( _DWORD * ) @@a1@@ ) ; if ( @@v5@@ < Number ) return Number ; * ( _DWORD * ) @@a1@@ = Number ; * @@a3@@ = @@v5@@ ; return Number L ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "int"}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "_BYTE"}, "location": "r64"}, {"n": "v5", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}]}
{"name": "EVP_DecodeBlock", "code": "__int64 __fastcall EVP_DecodeBlock ( _BYTE * @@a1@@ , _BYTE * @@a2@@ , int @@a3@@ ) { _BYTE * v4 ; _BYTE * v5 ; __int16 @@v9@@ ; unsigned int @@v10@@ ; int @@v11@@ ; int @@v12@@ ; int @@v13@@ ; unsigned int @@v14@@ ; int @@i@@ ; @@v14@@ = Number ; while ( data_ascii2bin [ * @@a2@@ & Number ] == Number && @@a3@@ > Number ) { ++ @@a2@@ ; -- @@a3@@ ; } while ( @@a3@@ > Number && ( ( unsigned __int8 ) data_ascii2bin [ @@a2@@ [ @@a3@@ - Number ] & Number ] | Number ) == Number ) -- @@a3@@ ; if ( ( @@a3@@ & Number ) != Number ) return Number ; for ( @@i@@ = Number ; @@i@@ < @@a3@@ ; @@i@@ += Number ) { @@v13@@ = ( unsigned __int8 ) data_ascii2bin [ * @@a2@@ & Number ] ; @@v12@@ = ( unsigned __int8 ) data_ascii2bin [ @@a2@@ [ Number ] & Number ] ; @@v11@@ = ( unsigned __int8 ) data_ascii2bin [ @@a2@@ [ Number ] & Number ] ; v4 = @@a2@@ + Number ; @@a2@@ += Number ; @@v10@@ = ( unsigned __int8 ) data_ascii2bin [ * v4 & Number ] ; if ( ( @@v13@@ & Number ) != Number || ( @@v12@@ & Number ) != Number || ( @@v11@@ & Number ) != Number || ( @@v10@@ & Number ) != Number ) return Number ; @@v9@@ = ( ( _WORD ) @@v11@@ << Number ) | ( ( _WORD ) @@v12@@ << Number ) | ( unsigned __int8 ) data_ascii2bin [ * v4 & Number ] ; * @@a1@@ = ( ( @@v11@@ << Number ) | ( @@v12@@ << Number ) | ( @@v13@@ << Number ) | @@v10@@ ) >> Number ; @@a1@@ [ Number ] = HIBYTE ( @@v9@@ ) ; v5 = @@a1@@ + Number ; @@a1@@ += Number ; * v5 = @@v9@@ ; @@v14@@ += Number ; } return @@v14@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a1", "t": {"T": 3, "t": "_BYTE"}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "_BYTE"}, "location": "r64"}, {"n": "v13", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v12", "t": {"T": 1, "n": "int", "s": 4}, "location": "s16"}, {"n": "v11", "t": {"T": 1, "n": "int", "s": 4}, "location": "s20"}, {"n": "v10", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s24"}, {"n": "v9", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "s32"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}, {"n": "v14", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s8"}]}