{"name": "SMB_Connect", "code": "void * __fastcall SMB_Connect ( void * @@a1@@ , _QWORD * @@a2@@ , const char * @@a3@@ , const char * @@a4@@ , const char * @@a5@@ ) { void * result ; char * v6 ; char * v7 ; char * v8 ; size_t v9 ; size_t v10 ; __int64 v11 ; char @@v15@@ [ Number ] ; char @@v16@@ [ Number ] ; char @@dest@@ [ Number ] ; char * @@s@@ ; int @@i@@ ; __int64 @@v20@@ ; void * @@ptr@@ ; @@ptr@@ = @@a1@@ ; if ( @@a1@@ || ( @@ptr@@ = malloc ( Number ) ) != Number L ) { strcpy ( ( char * ) @@ptr@@ + Number , @@a3@@ ) ; strcpy ( ( char * ) @@ptr@@ + Number , @@a4@@ ) ; strcpy ( ( char * ) @@ptr@@ + Number , @@a5@@ ) ; * ( ( _BYTE * ) @@ptr@@ + Number ) = Number ; * ( ( _BYTE * ) @@ptr@@ + Number ) = Number ; v6 = ( char * ) @@ptr@@ + Number ; * ( ( _DWORD * ) @@ptr@@ + Number ) = Number ; * ( ( _WORD * ) v6 + Number ) = Number ; v7 = ( char * ) @@ptr@@ + Number ; * ( ( _QWORD * ) @@ptr@@ + Number ) = Number ; strcpy ( v7 + Number , String ) ; v8 = ( char * ) @@ptr@@ + Number ; * ( ( _QWORD * ) @@ptr@@ + Number ) = Number ; strcpy ( v8 + Number , String ) ; * ( ( _QWORD * ) @@ptr@@ + Number ) = Number L ; * ( ( _QWORD * ) @@ptr@@ + Number ) = * ( ( _QWORD * ) @@ptr@@ + Number ) ; SMB_Get_My_Name ( ( char * ) @@ptr@@ + Number , Number L ) ; * ( ( _DWORD * ) @@ptr@@ + Number ) = Number ; * ( ( _DWORD * ) @@ptr@@ + Number ) = getpid ( ) ; * ( ( _DWORD * ) @@ptr@@ + Number ) = * ( ( _DWORD * ) @@ptr@@ + Number ) ; * ( ( _DWORD * ) @@ptr@@ + Number ) = Number ; * ( ( _DWORD * ) @@ptr@@ + Number ) = getgid ( ) ; strcpy ( @@dest@@ , @@a3@@ ) ; @@s@@ = strtok ( @@dest@@ , String ) ; strcpy ( ( char * ) @@ptr@@ + Number , @@s@@ ) ; for ( @@i@@ = Number ; ; ++ @@i@@ ) { v9 = @@i@@ ; if ( v9 >= strlen ( @@s@@ ) ) break ; @@v16@@ [ @@i@@ ] = toupper ( ( unsigned __int8 ) @@s@@ [ @@i@@ ] ) ; } @@v16@@ [ strlen ( @@s@@ ) ] = Number ; for ( @@i@@ = Number ; ; ++ @@i@@ ) { v10 = @@i@@ ; if ( v10 >= strlen ( ( const char * ) @@ptr@@ + Number ) ) break ; @@v15@@ [ @@i@@ ] = toupper ( * ( ( unsigned __int8 * ) @@ptr@@ + @@i@@ + Number ) ) ; } @@v15@@ [ strlen ( ( const char * ) @@ptr@@ + Number ) ] = Number ; if ( * ( ( _BYTE * ) @@ptr@@ + Number ) ) @@v20@@ = ( __int64 ) @@ptr@@ + Number ; else @@v20@@ = ( __int64 ) @@ptr@@ + Number ; v11 = RFCNB_Call ( @@v16@@ , @@v15@@ , @@v20@@ , * ( ( unsigned int * ) @@ptr@@ + Number ) ) ; * ( ( _QWORD * ) @@ptr@@ + Number ) = v11 ; if ( * ( ( _QWORD * ) @@ptr@@ + Number ) ) { if ( ( int ) SMB_Negotiate ( @@ptr@@ , & SMB_Prots_Restrict ) >= Number ) { * @@a2@@ = SMB_TreeConnect ( @@ptr@@ , Number L , @@a3@@ , @@a5@@ , String ) ; if ( * @@a2@@ ) result = @@ptr@@ ; else result = Number L ; } else { result = Number L ; } } else { if ( ! @@a1@@ ) free ( @@ptr@@ ) ; SMBlib_errno = Number ; result = Number L ; } } else { SMBlib_errno = Number ; result = Number L ; } return result ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "const char"}, "location": "r16"}, {"n": "a4", "t": {"T": 3, "t": "const char"}, "location": "r24"}, {"n": "a1", "t": {"T": 3, "t": "void"}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "_QWORD"}, "location": "r64"}, {"n": "a5", "t": {"T": 3, "t": "const char"}, "location": "r72"}, {"n": "dest", "t": {"T": 2, "n": 80, "s": 1, "t": "char"}, "location": "s128"}, {"n": "v16", "t": {"T": 2, "n": 80, "s": 1, "t": "char"}, "location": "s208"}, {"n": "ptr", "t": {"T": 3, "t": "void"}, "location": "s24"}, {"n": "v15", "t": {"T": 2, "n": 80, "s": 1, "t": "char"}, "location": "s288"}, {"n": "v20", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s32"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s36"}, {"n": "s", "t": {"T": 3, "t": "char"}, "location": "s48"}]}
{"name": "SMB_Connect_Server", "code": "void * __fastcall SMB_Connect_Server ( void * @@a1@@ , const char * @@a2@@ , const char * @@a3@@ ) { void * result ; char * v4 ; char * v5 ; size_t v6 ; size_t v7 ; __int64 v8 ; char @@v10@@ [ Number ] ; char @@v11@@ [ Number ] ; int @@i@@ ; char * @@v13@@ ; void * @@ptr@@ ; @@ptr@@ = @@a1@@ ; if ( @@a1@@ || ( @@ptr@@ = malloc ( Number ) ) != Number L ) { * ( ( _BYTE * ) @@ptr@@ + Number ) = Number ; * ( ( _BYTE * ) @@ptr@@ + Number ) = Number ; * ( ( _BYTE * ) @@ptr@@ + Number ) = Number ; * ( ( _BYTE * ) @@ptr@@ + Number ) = Number ; * ( ( _BYTE * ) @@ptr@@ + Number ) = Number ; strcpy ( ( char * ) @@ptr@@ + Number , @@a2@@ ) ; strcpy ( ( char * ) @@ptr@@ + Number , @@a3@@ ) ; v4 = ( char * ) @@ptr@@ + Number ; * ( ( _QWORD * ) @@ptr@@ + Number ) = Number ; strcpy ( v4 + Number , String ) ; v5 = ( char * ) @@ptr@@ + Number ; * ( ( _QWORD * ) @@ptr@@ + Number ) = Number ; strcpy ( v5 + Number , String ) ; * ( ( _QWORD * ) @@ptr@@ + Number ) = Number L ; * ( ( _QWORD * ) @@ptr@@ + Number ) = * ( ( _QWORD * ) @@ptr@@ + Number ) ; @@i@@ = gethostname ( ( char * ) @@ptr@@ + Number , Number ) ; if ( @@i@@ == Number ) { * ( ( _QWORD * ) @@ptr@@ + Number ) = Number ; } else { @@v13@@ = strchr ( ( const char * ) @@ptr@@ + Number , Number ) ; if ( @@v13@@ ) * @@v13@@ = Number ; } * ( ( _DWORD * ) @@ptr@@ + Number ) = Number ; * ( ( _DWORD * ) @@ptr@@ + Number ) = getpid ( ) ; * ( ( _DWORD * ) @@ptr@@ + Number ) = * ( ( _DWORD * ) @@ptr@@ + Number ) ; * ( ( _DWORD * ) @@ptr@@ + Number ) = Number ; * ( ( _DWORD * ) @@ptr@@ + Number ) = getgid ( ) ; for ( @@i@@ = Number ; ; ++ @@i@@ ) { v6 = @@i@@ ; if ( v6 >= strlen ( @@a2@@ ) ) break ; @@v11@@ [ @@i@@ ] = toupper ( ( unsigned __int8 ) @@a2@@ [ @@i@@ ] ) ; } @@v11@@ [ strlen ( @@a2@@ ) ] = Number ; for ( @@i@@ = Number ; ; ++ @@i@@ ) { v7 = @@i@@ ; if ( v7 >= strlen ( ( const char * ) @@ptr@@ + Number ) ) break ; @@v10@@ [ @@i@@ ] = toupper ( * ( ( unsigned __int8 * ) @@ptr@@ + @@i@@ + Number ) ) ; } @@v10@@ [ strlen ( ( const char * ) @@ptr@@ + Number ) ] = Number ; if ( * ( ( _BYTE * ) @@ptr@@ + Number ) ) @@v13@@ = ( char * ) @@ptr@@ + Number ; else @@v13@@ = ( char * ) @@ptr@@ + Number ; v8 = RFCNB_Call ( @@v11@@ , @@v10@@ , @@v13@@ , * ( ( unsigned int * ) @@ptr@@ + Number ) ) ; * ( ( _QWORD * ) @@ptr@@ + Number ) = v8 ; if ( * ( ( _QWORD * ) @@ptr@@ + Number ) ) { result = @@ptr@@ ; } else { if ( ! @@a1@@ ) free ( @@ptr@@ ) ; SMBlib_errno = Number ; result = Number L ; } } else { SMBlib_errno = Number ; result = Number L ; } return result ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "const char"}, "location": "r16"}, {"n": "a1", "t": {"T": 3, "t": "void"}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "const char"}, "location": "r64"}, {"n": "v11", "t": {"T": 2, "n": 92, "s": 1, "t": "char"}, "location": "s128"}, {"n": "v10", "t": {"T": 2, "n": 80, "s": 1, "t": "char"}, "location": "s208"}, {"n": "ptr", "t": {"T": 3, "t": "void"}, "location": "s24"}, {"n": "v13", "t": {"T": 3, "t": "char"}, "location": "s32"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s36"}]}