{"name": "main", "code": "int __cdecl main ( int @@argc@@ , const char * * @@argv@@ , const char * * @@envp@@ ) { __int64 @@v4@@ ; __int64 @@v5@@ ; __int64 @@v6@@ ; double @@v7@@ ; unsigned int @@v8@@ ; unsigned int @@v9@@ ; if ( @@argc@@ <= Number ) { print_help ( * @@argv@@ ) ; exit ( Number ) ; } @@v9@@ = atoi ( @@argv@@ [ Number ] ) ; @@v8@@ = atoi ( @@argv@@ [ Number ] ) ; if ( ( int ) @@v9@@ <= Number || ( int ) @@v8@@ <= Number ) { print_help ( * @@argv@@ ) ; exit ( Number ) ; } parse_opt ( @@argc@@ , ( char * const * ) @@argv@@ ) ; printf ( String , @@v9@@ , @@v9@@ , @@v8@@ ) ; @@v6@@ = Number L ; @@v5@@ = Number L ; @@v4@@ = Number L ; printf ( String ) ; fflush ( stdout ) ; rand_mat ( ( void * * ) & @@v6@@ , ( int ) @@v9@@ , ( int ) @@v8@@ ) ; rand_mat ( ( void * * ) & @@v5@@ , ( int ) @@v8@@ , ( int ) @@v9@@ ) ; zero_mat ( ( void * * ) & @@v4@@ , ( int ) @@v9@@ , ( int ) @@v9@@ ) ; puts ( String ) ; printf ( String ) ; fflush ( stdout ) ; timer_start ( Number L ) ; mat_mul ( @@v6@@ , @@v5@@ , @@v4@@ , @@v9@@ , @@v8@@ ) ; @@v7@@ = timer_stop ( Number L ) ; puts ( String ) ; if ( print_matrix ) { puts ( String ) ; print_mat ( @@v6@@ , ( int ) @@v9@@ , ( int ) @@v8@@ ) ; puts ( String ) ; print_mat ( @@v5@@ , ( int ) @@v8@@ , ( int ) @@v9@@ ) ; puts ( String ) ; print_mat ( @@v4@@ , ( int ) @@v9@@ , ( int ) @@v9@@ ) ; } if ( validation ) { puts ( String ) ; check_mat_mul ( @@v6@@ , @@v5@@ , @@v4@@ , @@v9@@ , @@v8@@ ) ; } else { puts ( String ) ; } printf ( String , @@v7@@ , Number * @@v7@@ ) ; return Number ; }", "source": [{"n": "envp", "t": {"T": 3, "t": "const char *"}, "location": "r16"}, {"n": "argc", "t": {"T": 1, "n": "int", "s": 4}, "location": "r56"}, {"n": "argv", "t": {"T": 3, "t": "const char *"}, "location": "r64"}, {"n": "v7", "t": {"T": 1, "n": "double", "s": 8}, "location": "s16"}, {"n": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s32"}, {"n": "v9", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s4"}, {"n": "v4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s40"}, {"n": "v8", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s8"}]}
{"name": "check_mat_mul", "code": "int __fastcall check_mat_mul ( __int64 @@a1@@ , __int64 @@a2@@ , __int64 @@a3@@ , int @@a4@@ , int @@a5@@ ) { int @@result@@ ; float @@v9@@ ; int @@k@@ ; float @@v11@@ ; unsigned int @@j@@ ; unsigned int @@i@@ ; char @@v14@@ ; @@v14@@ = Number ; for ( @@i@@ = Number ; ( int ) @@i@@ < @@a4@@ ; ++ @@i@@ ) { for ( @@j@@ = Number ; ( int ) @@j@@ < @@a4@@ ; ++ @@j@@ ) { @@v11@@ = Number ; for ( @@k@@ = Number ; @@k@@ < @@a5@@ ; ++ @@k@@ ) @@v11@@ = ( float ) ( * ( float * ) ( Number L * ( int ) ( @@a4@@ * @@k@@ + @@j@@ ) + @@a2@@ ) * * ( float * ) ( Number L * ( int ) ( @@a5@@ * @@i@@ + @@k@@ ) + @@a1@@ ) ) + @@v11@@ ; @@v9@@ = * ( float * ) ( Number L * ( int ) ( @@a4@@ * @@i@@ + @@j@@ ) + @@a3@@ ) ; if ( fabs ( @@v9@@ - @@v11@@ ) > Number && ( @@v11@@ == Number || ( float ) ( fabs ( @@v9@@ - @@v11@@ ) / @@v11@@ ) > Number ) ) { printf ( String , @@i@@ , @@j@@ , @@v11@@ , @@v9@@ ) ; @@v14@@ = Number ; } } } if ( @@v14@@ ) @@result@@ = puts ( String ) ; else @@result@@ = puts ( String ) ; return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "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": "a5", "t": {"T": 1, "n": "int", "s": 4}, "location": "r72"}, {"n": "result", "t": {"T": 1, "n": "int", "s": 4}, "location": "r8"}, {"n": "v14", "t": {"T": 1, "n": "char", "s": 1}, "location": "s1"}, {"n": "j", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s12"}, {"n": "v11", "t": {"T": 1, "n": "float", "s": 4}, "location": "s16"}, {"n": "k", "t": {"T": 1, "n": "int", "s": 4}, "location": "s20"}, {"n": "v9", "t": {"T": 1, "n": "float", "s": 4}, "location": "s24"}, {"n": "i", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s8"}]} {"name": "rand_mat", "code": "__int64 __fastcall rand_mat ( void * * @@a1@@ , unsigned __int64 @@a2@@ , unsigned __int64 @@a3@@ ) { __int64 @@result@@ ; int @@j@@ ; int @@i@@ ; if ( ! @@a1@@ ) { puts ( String ) ; exit ( Number ) ; } * @@a1@@ = malloc ( Number * @@a3@@ * @@a2@@ ) ; if ( ! * @@a1@@ ) { puts ( String ) ; exit ( Number ) ; } for ( @@i@@ = Number ; ; ++ @@i@@ ) { @@result@@ = @@i@@ ; if ( @@a2@@ <= @@i@@ ) break ; for ( @@j@@ = Number ; @@a3@@ > @@j@@ ; ++ @@j@@ ) * ( ( float * ) * @@a1@@ + @@a3@@ * @@i@@ + @@j@@ ) = ( float ) ( ( float ) rand ( ) / Number ) - Number ; } return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "r16"}, {"n": "a1", "t": {"T": 3, "t": "void *"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "r64"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}, {"n": "j", "t": {"T": 1, "n": "int", "s": 4}, "location": "s8"}]} {"name": "zero_mat", "code": "void * __fastcall zero_mat ( void * * @@a1@@ , __int64 @@a2@@ , __int64 @@a3@@ ) { if ( ! @@a1@@ ) { puts ( String ) ; exit ( Number ) ; } * @@a1@@ = malloc ( Number * @@a3@@ * @@a2@@ ) ; if ( ! * @@a1@@ ) { puts ( String ) ; exit ( Number ) ; } return memset ( * @@a1@@ , Number , Number * @@a3@@ * @@a2@@ ) ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a1", "t": {"T": 3, "t": "void *"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}]} {"name": "print_mat", "code": "__int64 __fastcall print_mat ( __int64 @@a1@@ , unsigned __int64 @@a2@@ , unsigned __int64 @@a3@@ ) { __int64 @@result@@ ; int @@j@@ ; int @@i@@ ; for ( @@i@@ = Number ; ; ++ @@i@@ ) { @@result@@ = @@i@@ ; if ( @@a2@@ <= @@i@@ ) break ; for ( @@j@@ = Number ; @@a3@@ > @@j@@ ; ++ @@j@@ ) printf ( String , * ( float * ) ( Number * ( @@a3@@ * @@i@@ + @@j@@ ) + @@a1@@ ) ) ; putchar ( Number ) ; } return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "r64"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}, {"n": "j", "t": {"T": 1, "n": "int", "s": 4}, "location": "s8"}]} {"name": "print_help", "code": "int __fastcall print_help ( const char * @@a1@@ ) { printf ( String , @@a1@@ ) ; puts ( String ) ; puts ( String ) ; puts ( String ) ; return puts ( String ) ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "const char"}, "location": "r56"}]} {"name": "parse_opt", "code": "int __fastcall parse_opt ( int @@a1@@ , char * const * @@a2@@ ) { int @@result@@ ; while ( Number ) { @@result@@ = getopt ( @@a1@@ , @@a2@@ , String ) ; if ( @@result@@ <= Number ) break ; if ( @@result@@ == Number ) { print_matrix = Number ; } else { if ( @@result@@ != Number ) { print_help ( * ( const char * * ) @@a2@@ ) ; exit ( Number ) ; } validation = Number ; } } return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "int", "s": 4}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "char *const"}, "location": "r64"}, {"n": "result", "t": {"T": 1, "n": "int", "s": 4}, "location": "r8"}]}