private static void ReceiveCallback(IAsyncResult ar)
        {
            LocalStorageFileState asyncState = (LocalStorageFileState)ar.AsyncState;

            try
            {
                LocalStorageAPI.s_log.LogDebug("ReceiveCallback called for State={0}", new object[] { asyncState });
                int num = asyncState.Socket.EndReceive(ar);
                if (num <= 0)
                {
                    LocalStorageAPI.CompleteDownload(asyncState);
                }
                else
                {
                    int          num1         = (asyncState.FileData != null ? (int)asyncState.FileData.Length : 0) + num;
                    MemoryStream memoryStream = new MemoryStream(new byte[num1], 0, num1, true, true);
                    if (asyncState.FileData != null)
                    {
                        memoryStream.Write(asyncState.FileData, 0, (int)asyncState.FileData.Length);
                    }
                    memoryStream.Write(asyncState.ReceiveBuffer, 0, num);
                    asyncState.FileData = memoryStream.GetBuffer();
                    asyncState.Socket.BeginReceive(asyncState.ReceiveBuffer, 0, LocalStorageAPI.m_bufferSize, SocketFlags.None, new AsyncCallback(LocalStorageAPI.ReceiveCallback), asyncState);
                }
            }
            catch (Exception exception1)
            {
                Exception exception = exception1;
                LocalStorageAPI.s_log.LogWarning("EXCEPTION: {0}", new object[] { exception.Message });
                asyncState.FailureMessage = exception.Message;
                LocalStorageAPI.ExecuteFailedDownload(asyncState);
            }
        }
        private static void ReceiveCallback(IAsyncResult ar)
        {
            LocalStorageFileState localStorageFileState = (LocalStorageFileState)ar.get_AsyncState();

            try
            {
                LocalStorageAPI.s_log.LogDebug("ReceiveCallback called for State={0}", new object[]
                {
                    localStorageFileState
                });
                int num = localStorageFileState.Socket.EndReceive(ar);
                if (num > 0)
                {
                    int          num2         = (localStorageFileState.FileData != null) ? localStorageFileState.FileData.Length : 0;
                    int          num3         = num2 + num;
                    MemoryStream memoryStream = new MemoryStream(new byte[num3], 0, num3, true, true);
                    if (localStorageFileState.FileData != null)
                    {
                        memoryStream.Write(localStorageFileState.FileData, 0, localStorageFileState.FileData.Length);
                    }
                    memoryStream.Write(localStorageFileState.ReceiveBuffer, 0, num);
                    localStorageFileState.FileData = memoryStream.GetBuffer();
                    localStorageFileState.Socket.BeginReceive(localStorageFileState.ReceiveBuffer, 0, LocalStorageAPI.m_bufferSize, 0, new AsyncCallback(LocalStorageAPI.ReceiveCallback), localStorageFileState);
                }
                else
                {
                    LocalStorageAPI.CompleteDownload(localStorageFileState);
                }
            }
            catch (Exception ex)
            {
                LocalStorageAPI.s_log.LogWarning("EXCEPTION: {0}", new object[]
                {
                    ex.get_Message()
                });
                localStorageFileState.FailureMessage = ex.get_Message();
                LocalStorageAPI.ExecuteFailedDownload(localStorageFileState);
            }
        }