85 lines
1.6 KiB
C#
85 lines
1.6 KiB
C#
using System;
|
|
|
|
namespace Hjg.Pngcs.Zlib
|
|
{
|
|
// Token: 0x02000040 RID: 64
|
|
public class Adler32
|
|
{
|
|
// Token: 0x06000277 RID: 631 RVA: 0x0000A600 File Offset: 0x00008800
|
|
public void Update(byte data)
|
|
{
|
|
if (this.pend >= 5550)
|
|
{
|
|
this.updateModulus();
|
|
}
|
|
this.a += (uint)data;
|
|
this.b += this.a;
|
|
this.pend++;
|
|
}
|
|
|
|
// Token: 0x06000278 RID: 632 RVA: 0x0000A64F File Offset: 0x0000884F
|
|
public void Update(byte[] data)
|
|
{
|
|
this.Update(data, 0, data.Length);
|
|
}
|
|
|
|
// Token: 0x06000279 RID: 633 RVA: 0x0000A65C File Offset: 0x0000885C
|
|
public void Update(byte[] data, int offset, int length)
|
|
{
|
|
int num = 5550 - this.pend;
|
|
for (int i = 0; i < length; i++)
|
|
{
|
|
if (i == num)
|
|
{
|
|
this.updateModulus();
|
|
num = i + 5550;
|
|
}
|
|
this.a += (uint)data[i + offset];
|
|
this.b += this.a;
|
|
this.pend++;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600027A RID: 634 RVA: 0x0000A6C7 File Offset: 0x000088C7
|
|
public void Reset()
|
|
{
|
|
this.a = 1U;
|
|
this.b = 0U;
|
|
this.pend = 0;
|
|
}
|
|
|
|
// Token: 0x0600027B RID: 635 RVA: 0x0000A6DE File Offset: 0x000088DE
|
|
private void updateModulus()
|
|
{
|
|
this.a %= 65521U;
|
|
this.b %= 65521U;
|
|
this.pend = 0;
|
|
}
|
|
|
|
// Token: 0x0600027C RID: 636 RVA: 0x0000A70B File Offset: 0x0000890B
|
|
public uint GetValue()
|
|
{
|
|
if (this.pend > 0)
|
|
{
|
|
this.updateModulus();
|
|
}
|
|
return (this.b << 16) | this.a;
|
|
}
|
|
|
|
// Token: 0x04000147 RID: 327
|
|
private const int _base = 65521;
|
|
|
|
// Token: 0x04000148 RID: 328
|
|
private const int _nmax = 5550;
|
|
|
|
// Token: 0x04000149 RID: 329
|
|
private uint a = 1U;
|
|
|
|
// Token: 0x0400014A RID: 330
|
|
private uint b;
|
|
|
|
// Token: 0x0400014B RID: 331
|
|
private int pend;
|
|
}
|
|
}
|