package io.netty.handler.codec.http.websocketx;

import com.cvte.vman.instance.InvokeCmd;
import g.a.a.a.a;
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.MessageToMessageEncoder;
import io.netty.handler.codec.TooLongFrameException;
import io.netty.handler.codec.dns.DnsRecord;
import io.netty.handler.codec.memcache.binary.DefaultBinaryMemcacheRequest;
import io.netty.util.internal.logging.InternalLogger;
import io.netty.util.internal.logging.InternalLoggerFactory;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.util.List;

/* JADX INFO: loaded from: classes.dex */
public class WebSocket08FrameEncoder extends MessageToMessageEncoder<WebSocketFrame> implements WebSocketFrameEncoder {
    private static final int GATHERING_WRITE_THRESHOLD = 1024;
    private static final byte OPCODE_BINARY = 2;
    private static final byte OPCODE_CLOSE = 8;
    private static final byte OPCODE_CONT = 0;
    private static final byte OPCODE_PING = 9;
    private static final byte OPCODE_PONG = 10;
    private static final byte OPCODE_TEXT = 1;
    private static final InternalLogger logger = InternalLoggerFactory.getInstance((Class<?>) WebSocket08FrameEncoder.class);
    private final boolean maskPayload;

    public WebSocket08FrameEncoder(boolean z2) {
        this.maskPayload = z2;
    }

    /* JADX WARN: Multi-variable type inference failed */
    /* JADX WARN: Type inference failed for: r4v12 */
    /* JADX WARN: Type inference failed for: r4v13, types: [io.netty.util.ReferenceCounted] */
    /* JADX WARN: Type inference failed for: r4v14, types: [boolean] */
    /* JADX INFO: renamed from: encode, reason: avoid collision after fix types in other method */
    public void encode2(ChannelHandlerContext channelHandlerContext, WebSocketFrame webSocketFrame, List<Object> list) throws Throwable {
        int i2;
        ?? r4;
        ByteBuf byteBufBuffer;
        ByteBuf byteBufContent = webSocketFrame.content();
        int i3 = 0;
        if (webSocketFrame instanceof TextWebSocketFrame) {
            i2 = 1;
        } else if (webSocketFrame instanceof PingWebSocketFrame) {
            i2 = 9;
        } else if (webSocketFrame instanceof PongWebSocketFrame) {
            i2 = 10;
        } else if (webSocketFrame instanceof CloseWebSocketFrame) {
            i2 = 8;
        } else if (webSocketFrame instanceof BinaryWebSocketFrame) {
            i2 = 2;
        } else {
            if (!(webSocketFrame instanceof ContinuationWebSocketFrame)) {
                StringBuilder sbF = a.F("Cannot encode frame of type: ");
                sbF.append(webSocketFrame.getClass().getName());
                throw new UnsupportedOperationException(sbF.toString());
            }
            i2 = 0;
        }
        int i4 = byteBufContent.readableBytes();
        InternalLogger internalLogger = logger;
        if (internalLogger.isDebugEnabled()) {
            internalLogger.debug("Encoding WebSocket Frame opCode=" + i2 + " length=" + i4);
        }
        int iRsv = ((webSocketFrame.rsv() % 8) << 4) | (webSocketFrame.isFinalFragment() ? 128 : 0) | (i2 % 128);
        if (i2 == 9 && i4 > 125) {
            throw new TooLongFrameException(a.l("invalid payload for PING (payload length must be <= 125, was ", i4));
        }
        try {
            r4 = this.maskPayload;
            int i5 = r4 != 0 ? 4 : 0;
            try {
                if (i4 <= 125) {
                    int i6 = i5 + 2;
                    if (r4 != 0 || i4 <= 1024) {
                        i6 += i4;
                    }
                    byteBufBuffer = channelHandlerContext.alloc().buffer(i6);
                    byteBufBuffer.writeByte(iRsv);
                    byteBufBuffer.writeByte((byte) (this.maskPayload ? ((byte) i4) | DefaultBinaryMemcacheRequest.REQUEST_MAGIC_BYTE : (byte) i4));
                } else if (i4 <= 65535) {
                    int i7 = i5 + 4;
                    if (r4 != 0 || i4 <= 1024) {
                        i7 += i4;
                    }
                    byteBufBuffer = channelHandlerContext.alloc().buffer(i7);
                    byteBufBuffer.writeByte(iRsv);
                    byteBufBuffer.writeByte(this.maskPayload ? DnsRecord.CLASS_NONE : 126);
                    byteBufBuffer.writeByte((i4 >>> 8) & DnsRecord.CLASS_ANY);
                    byteBufBuffer.writeByte(i4 & DnsRecord.CLASS_ANY);
                } else {
                    int i8 = i5 + 10;
                    if (r4 != 0 || i4 <= 1024) {
                        i8 += i4;
                    }
                    byteBufBuffer = channelHandlerContext.alloc().buffer(i8);
                    byteBufBuffer.writeByte(iRsv);
                    byteBufBuffer.writeByte(this.maskPayload ? 255 : InvokeCmd.CMD_SYSTEMCTRL_IS_PRODUCTION_MODE);
                    byteBufBuffer.writeLong(i4);
                }
                if (this.maskPayload) {
                    byte[] bArrArray = ByteBuffer.allocate(4).putInt((int) (Math.random() * 2.147483647E9d)).array();
                    byteBufBuffer.writeBytes(bArrArray);
                    ByteOrder byteOrderOrder = byteBufContent.order();
                    ByteOrder byteOrderOrder2 = byteBufBuffer.order();
                    int i9 = byteBufContent.readerIndex();
                    int iWriterIndex = byteBufContent.writerIndex();
                    if (byteOrderOrder == byteOrderOrder2) {
                        int iReverseBytes = ((bArrArray[0] & 255) << 24) | ((bArrArray[1] & 255) << 16) | ((bArrArray[2] & 255) << 8) | (bArrArray[3] & 255);
                        if (byteOrderOrder == ByteOrder.LITTLE_ENDIAN) {
                            iReverseBytes = Integer.reverseBytes(iReverseBytes);
                        }
                        while (i9 + 3 < iWriterIndex) {
                            byteBufBuffer.writeInt(byteBufContent.getInt(i9) ^ iReverseBytes);
                            i9 += 4;
                        }
                    }
                    while (i9 < iWriterIndex) {
                        byteBufBuffer.writeByte(byteBufContent.getByte(i9) ^ bArrArray[i3 % 4]);
                        i9++;
                        i3++;
                    }
                } else {
                    if (byteBufBuffer.writableBytes() < byteBufContent.readableBytes()) {
                        list.add(byteBufBuffer);
                        list.add(byteBufContent.retain());
                        return;
                    }
                    byteBufBuffer.writeBytes(byteBufContent);
                }
                list.add(byteBufBuffer);
            } catch (Throwable th) {
                th = th;
                if (r4 != 0) {
                    r4.release();
                }
                throw th;
            }
        } catch (Throwable th2) {
            th = th2;
            r4 = 0;
        }
    }

    @Override // io.netty.handler.codec.MessageToMessageEncoder
    public /* bridge */ /* synthetic */ void encode(ChannelHandlerContext channelHandlerContext, WebSocketFrame webSocketFrame, List list) throws Throwable {
        encode2(channelHandlerContext, webSocketFrame, (List<Object>) list);
    }
}
