static byte[] unpackArchive(byte[] is, int i) {
	anInt7046++;
	ByteBuffer class348_sub49 = new ByteBuffer(is);
	int i_37_ = class348_sub49.getUByte();
	if (i > -74)
	    method3156(true, null);
	int i_38_ = class348_sub49.getDword();
	if (i_38_ < 0
	    || (HandshakePacket.anInt401 != 0
		&& (HandshakePacket.anInt401 ^ 0xffffffff) > (i_38_ ^ 0xffffffff)))
	    throw new RuntimeException();
	if (i_37_ != 0) {
	    int i_39_ = class348_sub49.getDword();
	    if (i_39_ < 0
		|| ((HandshakePacket.anInt401 ^ 0xffffffff) != -1
		    && (HandshakePacket.anInt401 ^ 0xffffffff) > (i_39_ ^ 0xffffffff)))
		throw new RuntimeException();
	    byte[] is_40_ = new byte[i_39_];
	    if (i_37_ == 1)
		Class212.method1547(is_40_, i_39_, is, i_38_, 9);
	    else {
		synchronized (Class348_Sub33.aClass152_6955) {
		    Class348_Sub33.aClass152_6955.method1218(is_40_, 29123,
							     class348_sub49);
		}
	    }
	    return is_40_;
	}
	byte[] is_41_ = new byte[i_38_];
	class348_sub49.getBytes(is_41_, 0, i_38_);
	return is_41_;
    }