{"name": "eeprom93xx_write", "code": "__int64 __fastcall eeprom93xx_write ( __int64 @@a1@@ , int @@a2@@ , int @@a3@@ , int @@a4@@ ) { int v4 ; __int64 result ; unsigned __int8 @@v6@@ ; char @@v7@@ ; char @@v8@@ ; char @@v9@@ ; unsigned __int16 @@i@@ ; @@v6@@ = * ( _BYTE * ) @@a1@@ ; @@v7@@ = * ( _BYTE * ) ( @@a1@@ + Number ) ; @@i@@ = * ( unsigned __int8 * ) ( @@a1@@ + Number ) ; @@v8@@ = * ( _BYTE * ) ( @@a1@@ + Number ) ; if ( * ( _BYTE * ) ( @@a1@@ + Number ) || ! @@a2@@ ) { if ( ! * ( _BYTE * ) ( @@a1@@ + Number ) || @@a2@@ ) { if ( @@a2@@ && ! * ( _BYTE * ) ( @@a1@@ + Number ) && @@a3@@ ) { if ( @@v6@@ ) { if ( @@v6@@ == Number ) { if ( @@a4@@ ) @@v6@@ = Number ; } else if ( @@v6@@ > Number ) { if ( @@v6@@ >= * ( unsigned __int8 * ) ( @@a1@@ + Number ) + Number ) { if ( @@v6@@ < * ( unsigned __int8 * ) ( @@a1@@ + Number ) + Number ) { ++ @@v6@@ ; if ( @@v8@@ == Number ) @@v7@@ = * ( __int16 * ) ( @@a1@@ + Number ) < Number ; * ( _WORD * ) ( @@a1@@ + Number ) *= Number ; * ( _WORD * ) ( @@a1@@ + Number ) += @@a4@@ ; } } else { ++ @@v6@@ ; @@i@@ = ( Number * @@i@@ ) | @@a4@@ ; if ( @@v6@@ == * ( unsigned __int8 * ) ( @@a1@@ + Number ) + Number ) { if ( @@v8@@ == Number ) @@v7@@ = Number ; @@i@@ %= * ( _WORD * ) ( @@a1@@ + Number ) ; if ( @@v8@@ ) { * ( _WORD * ) ( @@a1@@ + Number ) = * ( _WORD * ) ( @@a1@@ + Number L * @@i@@ + Number ) ; } else { v4 = ( int ) @@i@@ >> ( * ( _BYTE * ) ( @@a1@@ + Number ) - Number ) ; if ( v4 == Number ) { * ( _BYTE * ) ( @@a1@@ + Number ) = Number ; } else if ( v4 <= Number && v4 != Number && ! v4 ) { * ( _BYTE * ) ( @@a1@@ + Number ) = Number ; } } } } } else { ++ @@v6@@ ; @@v8@@ *= Number ; if ( @@a4@@ ) ++ @@v8@@ ; } } else if ( @@a4@@ ) { @@v6@@ = Number ; } else { @@v6@@ = Number ; } } } else { if ( * ( _BYTE * ) ( @@a1@@ + Number ) ) { @@v9@@ = ( int ) * ( unsigned __int8 * ) ( @@a1@@ + Number ) >> ( * ( _BYTE * ) ( @@a1@@ + Number ) - Number ) ; if ( @@v8@@ || @@v9@@ != Number ) { if ( @@v8@@ == Number ) { * ( _WORD * ) ( @@a1@@ + Number L * * ( unsigned __int8 * ) ( @@a1@@ + Number ) + Number ) = Number ; } else if ( @@v6@@ >= * ( unsigned __int8 * ) ( @@a1@@ + Number ) + Number ) { if ( @@v8@@ == Number ) { * ( _WORD * ) ( @@a1@@ + Number L * * ( unsigned __int8 * ) ( @@a1@@ + Number ) + Number ) &= * ( _WORD * ) ( @@a1@@ + Number ) ; } else if ( ! @@v8@@ && @@v9@@ == Number ) { for ( @@i@@ = Number ; @@i@@ < * ( _WORD * ) ( @@a1@@ + Number ) ; ++ @@i@@ ) * ( _WORD * ) ( @@a1@@ + Number L * @@i@@ + Number ) &= * ( _WORD * ) ( @@a1@@ + Number ) ; } } } else { for ( @@i@@ = Number ; @@i@@ < * ( _WORD * ) ( @@a1@@ + Number ) ; ++ @@i@@ ) * ( _WORD * ) ( @@a1@@ + Number L * @@i@@ + Number ) = Number ; } } @@v7@@ = Number ; } } else { @@v6@@ = Number ; @@v8@@ = Number ; LOBYTE ( @@i@@ ) = Number ; } * ( _BYTE * ) @@a1@@ = @@v6@@ ; * ( _BYTE * ) ( @@a1@@ + Number ) = @@a2@@ ; * ( _BYTE * ) ( @@a1@@ + Number ) = @@a3@@ ; * ( _BYTE * ) ( @@a1@@ + Number ) = @@v7@@ ; * ( _BYTE * ) ( @@a1@@ + Number ) = @@i@@ ; result = @@a1@@ ; * ( _BYTE * ) ( @@a1@@ + Number ) = @@v8@@ ; return result ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "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": "int", "s": 4}, "location": "r64"}, {"n": "i", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "s2"}, {"n": "v9", "t": {"T": 1, "n": "char", "s": 1}, "location": "s3"}, {"n": "v8", "t": {"T": 1, "n": "char", "s": 1}, "location": "s4"}, {"n": "v7", "t": {"T": 1, "n": "char", "s": 1}, "location": "s5"}, {"n": "v6", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "s6"}]}