I have a string that gets encrypted using VB6 and gets sucessfully decrypted using VB6 in other places. However, when I try to decrypt the string in C# I can get the letters to decrypt fine, but numbers and symbols dont. The code follows: 
VB6 Encrypt: 
Public Function SimpleEncode(sInputString) As String 
Dim sOutputString As String 
Dim iStringIndex As Integer 
Dim iStringLength As Integer 
Dim sCurChar As String 
Dim sRandomChar As String 
On Error GoTo SimpleEncode_Error 
Randomize 
iStringLength = Len(sInputString) 
For iStringIndex = 1 To iStringLength 
sCurChar = Mid(sInputString, iStringIndex, 1) 
sOutputString = sOutputString & Chr((Asc(sCurChar) + 100) Mod 256) & Chr(Int(256 * Rnd)) 
Next 
SimpleEncode = sOutputString 
On Error GoTo 0 
Exit Function 
SimpleEncode_Error: 
Call ErrHandler(DoLogging, "Error " & Err.Number & " (" & Err.Description & ") in procedure SimpleEncode of Module ModGlobalProcs") 
End Function 
VB6 Decrypt: 
Public Function SimpleDecode(sInputString) As String 
Dim iStringIndex As Integer 
Dim iStringLength As Integer 
Dim sCurChar As String 
Dim sRandomChar As String 
Dim sOutputString As String 
On Error GoTo SimpleDecode_Error 
iStringLength = Len(sInputString) 
For iStringIndex = 1 To iStringLength 
If (iStringIndex Mod 2 = 1) Then ' only process even characters 
sCurChar = Mid(sInputString, iStringIndex, 1) 
sOutputString = sOutputString & Chr(Abs(Asc(sCurChar) - 100) Mod 256) 
End If 
Next 
SimpleDecode = sOutputString 
On Error GoTo 0 
Exit Function 
SimpleDecode_Error: 
Call ErrHandler(DoLogging, "Error " & Err.Number & " (" & Err.Description & ") in procedure SimpleDecode of Module ModGlobalProcs") 
End Function 
C# Decrypt: 
public static string DecodePassword(string sInputString) 
{ 
      int iStringIndex, iStringLength; 
      string sCurChar; 
      string sOutputString = ""; 
      iStringLength = sInputString.Length; 
      for(iStringIndex = 0; iStringIndex < iStringLength; iStringIndex++) 
      { 
            if(iStringIndex % 2 == 0) 
            { 
                  sCurChar = sInputString.Substring(iStringIndex, 1); 
                  sOutputString = sOutputString + (Char)(Math.Abs((int)sCurChar[0] - 100) % 256); 
            } 
      }    
      return sOutputString; 
} 
Does anyone know why I cannot get this to work?