{"name": "SMB_Logon_Server", "code": "__int64 __fastcall SMB_Logon_Server ( __int64 @@a1@@ , const char * @@a2@@ , const void * @@a3@@ , const char * @@a4@@ , int @@a5@@ ) { __int64 result ; int v6 ; int v7 ; int v8 ; int v9 ; size_t v10 ; size_t v11 ; size_t v12 ; int v13 ; int v14 ; int v15 ; int v16 ; int v17 ; size_t v18 ; size_t v19 ; size_t v20 ; size_t v21 ; char @@dest@@ [ Number ] ; char * @@v25@@ ; int @@v26@@ ; int @@v27@@ ; unsigned int @@v28@@ ; void * * @@v29@@ ; if ( * ( int * ) ( @@a1@@ + Number ) <= Number ) { SMBlib_errno = Number ; return Number ; } if ( @@a5@@ ) { @@v27@@ = Number ; memcpy ( @@dest@@ , @@a3@@ , Number ) ; } else { strcpy ( @@dest@@ , ( const char * ) @@a3@@ ) ; if ( * ( _WORD * ) ( @@a1@@ + Number ) ) { @@v27@@ = Number ; SMBencrypt ( @@a3@@ , @@a1@@ + Number , @@dest@@ ) ; } else { @@v27@@ = strlen ( @@dest@@ ) ; } } if ( * ( int * ) ( @@a1@@ + Number ) > Number ) { v13 = strlen ( @@a2@@ ) ; v14 = v13 + @@v27@@ ; v15 = strlen ( @@a4@@ ) + v14 ; v16 = strlen ( ( const char * ) ( @@a1@@ + Number ) ) + v15 ; v17 = strlen ( ( const char * ) ( @@a1@@ + Number ) ) ; @@v26@@ = v16 + v17 + Number ; @@v28@@ = v16 + v17 + Number ; @@v29@@ = ( void * * ) RFCNB_Alloc_Pkt ( @@v28@@ ) ; if ( ! @@v29@@ ) goto LABEL_10 ; memset ( * @@v29@@ , Number , Number ) ; * ( _BYTE * ) * @@v29@@ = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _WORD * ) * @@v29@@ + Number ) = * ( _DWORD * ) ( @@a1@@ + Number ) ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _WORD * ) * @@v29@@ + Number ) = * ( _DWORD * ) ( @@a1@@ + Number ) ; * ( ( _WORD * ) * @@v29@@ + Number ) = * ( _DWORD * ) ( @@a1@@ + Number ) ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( _WORD * ) ( ( char * ) * @@v29@@ + Number ) = @@v27@@ ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( _WORD * ) ( ( char * ) * @@v29@@ + Number ) = @@v26@@ ; @@v25@@ = ( char * ) * @@v29@@ + Number ; memcpy ( @@v25@@ , @@dest@@ , @@v27@@ ) ; @@v25@@ += @@v27@@ ; strcpy ( @@v25@@ , @@a2@@ ) ; v18 = strlen ( @@a2@@ ) ; @@v25@@ += v18 ; * @@v25@@ ++ = Number ; strcpy ( @@v25@@ , @@a4@@ ) ; v19 = strlen ( @@a4@@ ) ; @@v25@@ += v19 ; * @@v25@@ ++ = Number ; strcpy ( @@v25@@ , ( const char * ) ( @@a1@@ + Number ) ) ; v20 = strlen ( ( const char * ) ( @@a1@@ + Number ) ) ; @@v25@@ += v20 ; * @@v25@@ ++ = Number ; strcpy ( @@v25@@ , ( const char * ) ( @@a1@@ + Number ) ) ; v21 = strlen ( ( const char * ) ( @@a1@@ + Number ) ) ; @@v25@@ += v21 ; * @@v25@@ = Number ; } else { v6 = strlen ( @@a2@@ ) ; v7 = v6 + @@v27@@ ; v8 = strlen ( @@a4@@ ) + v7 ; v9 = strlen ( ( const char * ) ( @@a1@@ + Number ) ) ; @@v26@@ = v8 + v9 + Number ; @@v28@@ = v8 + v9 + Number ; @@v29@@ = ( void * * ) RFCNB_Alloc_Pkt ( @@v28@@ ) ; if ( ! @@v29@@ ) { LABEL_10 : SMBlib_errno = Number ; fwrite ( String , Number , Number , stderr ) ; return Number ; } memset ( * @@v29@@ , Number , Number ) ; * ( _BYTE * ) * @@v29@@ = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _WORD * ) * @@v29@@ + Number ) = * ( _DWORD * ) ( @@a1@@ + Number ) ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _WORD * ) * @@v29@@ + Number ) = * ( _DWORD * ) ( @@a1@@ + Number ) ; * ( ( _WORD * ) * @@v29@@ + Number ) = * ( _DWORD * ) ( @@a1@@ + Number ) ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( _WORD * ) ( ( char * ) * @@v29@@ + Number ) = * ( _DWORD * ) ( @@a1@@ + Number ) ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( _WORD * ) ( ( char * ) * @@v29@@ + Number ) = @@v27@@ + Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( ( _BYTE * ) * @@v29@@ + Number ) = Number ; * ( _WORD * ) ( ( char * ) * @@v29@@ + Number ) = @@v26@@ ; @@v25@@ = ( char * ) * @@v29@@ + Number ; memcpy ( @@v25@@ , @@dest@@ , @@v27@@ ) ; @@v25@@ += @@v27@@ + Number ; strcpy ( @@v25@@ , @@a2@@ ) ; v10 = strlen ( @@a2@@ ) ; @@v25@@ += v10 ; * @@v25@@ ++ = Number ; strcpy ( @@v25@@ , @@a4@@ ) ; v11 = strlen ( @@a4@@ ) ; @@v25@@ += v11 ; * @@v25@@ ++ = Number ; strcpy ( @@v25@@ , ( const char * ) ( @@a1@@ + Number ) ) ; v12 = strlen ( ( const char * ) ( @@a1@@ + Number ) ) ; @@v25@@ += v12 ; * @@v25@@ = Number ; } if ( ( int ) RFCNB_Send ( * ( _QWORD * ) ( @@a1@@ + Number ) , @@v29@@ , @@v28@@ ) >= Number ) { if ( ( int ) RFCNB_Recv ( * ( _QWORD * ) ( @@a1@@ + Number ) , @@v29@@ , @@v28@@ ) >= Number ) { if ( * ( ( _BYTE * ) * @@v29@@ + Number ) ) { SMBlib_SMB_Error = * ( _DWORD * ) ( ( char * ) * @@v29@@ + Number ) ; RFCNB_Free_Pkt ( @@v29@@ ) ; SMBlib_errno = Number ; result = Number ; } else if ( ( * ( ( _BYTE * ) * @@v29@@ + Number ) & Number ) != Number ) { result = Number ; } else { * ( _DWORD * ) ( @@a1@@ + Number ) = * ( ( unsigned __int16 * ) * @@v29@@ + Number ) ; RFCNB_Free_Pkt ( @@v29@@ ) ; result = Number L ; } } else { RFCNB_Free_Pkt ( @@v29@@ ) ; SMBlib_errno = Number ; result = Number ; } } else { RFCNB_Free_Pkt ( @@v29@@ ) ; SMBlib_errno = Number ; result = Number ; } return result ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "const void"}, "location": "r16"}, {"n": "a4", "t": {"T": 3, "t": "const char"}, "location": "r24"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "const char"}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "int", "s": 4}, "location": "r72"}, {"n": "dest", "t": {"T": 2, "n": 128, "s": 1, "t": "char"}, "location": "s176"}, {"n": "v29", "t": {"T": 3, "t": "void *"}, "location": "s24"}, {"n": "v28", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s28"}, {"n": "v27", "t": {"T": 1, "n": "int", "s": 4}, "location": "s32"}, {"n": "v26", "t": {"T": 1, "n": "int", "s": 4}, "location": "s36"}, {"n": "v25", "t": {"T": 3, "t": "char"}, "location": "s48"}]}