请教大家一个通过反编译代码的还原方法
此code是通过dex2jar工具从android的classes.dex反编译过来的,然后使用jd打开的:
 public Bitmap getBitmap(Context paramContext, byte[] paramArrayOfByte)
  {
    monitorenter;
    try
    {
      long l = hash(paramArrayOfByte);
      int i = getIndex(l);
      BitmapDataArray.ByteBufferDescription localByteBufferDescription1 = ((BitmapDataArray)this._dataArray).getByteBuffer(i);
      int j = getIndex(l);
      Object localObject1;
      if (i == j)
      {
        if (localByteBufferDescription1 != null)
          break label73;
        _log.error("getBitmap() existingData is null!");
        localObject1 = null;
      }
      while (true)
      {
        return localObject1;
        i = j;
        break;
        label73: String str1 = new String(paramArrayOfByte);
        if (localByteBufferDescription1.len <= 0)
        {
          _log.error("ByteBuffer is messed up!!!!!!");
          Logger localLogger = _log;
          StringBuilder localStringBuilder1 = new StringBuilder().append("position after return remaining=");
          int k = localByteBufferDescription1.buffer.remaining();
          StringBuilder localStringBuilder2 = localStringBuilder1.append(k).append(" startOffset=");
          int m = localByteBufferDescription1.startOffset;
          StringBuilder localStringBuilder3 = localStringBuilder2.append(m).append(" len=");
          int n = localByteBufferDescription1.len;
          String str2 = n;
          localLogger.error(str2);
          int i1 = localByteBufferDescription1.len / 0;
        }
        DefaultDataStoreHandler localDefaultDataStoreHandler = this._dataHandler;
        ByteBuffer localByteBuffer1 = localByteBufferDescription1.buffer;
        int i2 = localByteBufferDescription1.startOffset;
        int i3 = localByteBufferDescription1.len;
        BitmapDataArray.ByteBufferDescription localByteBufferDescription2 = localDefaultDataStoreHandler.movePositionByKey(paramArrayOfByte, localByteBuffer1, i2, i3);
        if (localByteBufferDescription2 == null)
        {
          _log.error("getBitmap() desc buffer description is null after moving for key!!!!!!");
          localObject1 = null;
          continue;
        }
        ByteBuffer localByteBuffer2 = localByteBufferDescription2.buffer;
        int i4 = localByteBufferDescription2.startOffset;
        int i5 = localByteBufferDescription2.len;
        Bitmap localBitmap = buildBitmapFromByteBuffer(paramContext, localByteBuffer2, i4, i5);
        localObject1 = localBitmap;
      }
    }
    finally
    {
      monitorexit;
    }
    throw localObject2;
  }