Function at 0x402790
Capabilities:
Encode data using xor
Hash data using murmur3
Hash data using sha256

Disassembly:
sub esp, 0x134
mov edx, dword [esp + 0x138]
mov eax, ecx
push ebx
push ebp
push esi
mov ecx, dword [eax]
lea esi, [esp + 0x40]
mov ebp, dword [eax + 4]
mov ebx, dword [eax + 8]
mov dword [esp + 0x38], ecx
mov dword [esp + 0xc], ecx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 0x18]
push edi
mov edi, dword [eax + 0xc]
mov dword [esp + 0x40], eax
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x38], ecx
lea ecx, [edx + 0x3c]
mov dword [esp + 0x28], eax
xor eax, eax
mov dword [esp + 0x2c], edi
cmp esi, ecx
ja 0x40280a
lea ecx, [esp + 0x80]
cmp ecx, edx
jb 0x40280a
mov ecx, dword [edx + eax*4]
bswap ecx
mov dword [esp + eax*4 + 0x44], ecx
inc eax
cmp eax, 0x10
jl 0x4027f2
mov dword [esp + 0x34], eax
jmp 0x4028bc
movaps xmm6, xmmword [0x453860]
lea esi, [esp + 0x44]
movaps xmm7, xmmword [0x453850]
lea edi, [esp + 0x54]
mov eax, 0x10
mov dword [esp + 0x34], 0x10
sub esi, edx
sub edi, edx
movd xmm4, eax
mov eax, 8
movd xmm5, eax
lea ecx, [eax - 6]
lea edx, [edx + 0x20]
movaps xmm0, xmm7
movups xmm2, xmmword [edx - 0x20]
pand xmm0, xmm2
movaps xmm3, xmm2
movaps xmm1, xmm2
pslld xmm3, xmm4
psrld xmm1, xmm4
por xmm3, xmm0
movaps xmm0, xmm6
pand xmm0, xmm2
movaps xmm2, xmm7
por xmm1, xmm0
psrld xmm1, xmm5
pslld xmm3, xmm5
por xmm3, xmm1
movups xmm1, xmmword [edx - 0x10]
movups xmmword [esi + edx - 0x20], xmm3
movaps xmm0, xmm1
pand xmm2, xmm1
pslld xmm0, xmm4
por xmm2, xmm0
movaps xmm0, xmm6
pand xmm0, xmm1
psrld xmm1, xmm4
pslld xmm2, xmm5
por xmm0, xmm1
psrld xmm0, xmm5
por xmm2, xmm0
movups xmmword [edi + edx - 0x20], xmm2
sub ecx, 1
jne 0x402841
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov esi, eax
ror esi, 0xb
mov ecx, eax
rol ecx, 7
mov edx, eax
xor esi, ecx
not edx
and edx, dword [esp + 0x38]
mov ecx, eax
ror ecx, 6
xor esi, ecx
mov ecx, dword [esp + 0x24]
add esi, dword [esp + 0x44]
and ecx, eax
xor edx, ecx
mov eax, dword [esp + 0x10]
add edx, esi
mov ecx, eax
mov esi, dword [esp + 0x28]
rol ecx, 0xa
add esi, 0x428a2f98
add esi, edx
mov edx, eax
ror edx, 0xd
add edi, esi
xor edx, ecx
mov dword [esp + 0x2c], edi
mov ecx, eax
mov edi, ebp
ror ecx, 2
or edi, eax
xor edx, ecx
and edi, ebx
add edx, esi
mov ecx, ebp
and ecx, eax
or edi, ecx
add edi, edx
mov edx, dword [esp + 0x2c]
mov esi, edx
mov ecx, edx
rol ecx, 7
ror esi, 0xb
xor esi, ecx
mov ecx, edx
ror ecx, 6
not edx
and edx, dword [esp + 0x24]
xor esi, ecx
add esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x30]
and ecx, dword [esp + 0x2c]
xor edx, ecx
mov ecx, edi
add edx, esi
rol ecx, 0xa
mov esi, dword [esp + 0x38]
add esi, 0x71374491
add esi, edx
mov edx, edi
add ebx, esi
ror edx, 0xd
xor edx, ecx
mov dword [esp + 0x28], ebx
mov ecx, edi
mov ebx, edi
ror ecx, 2
or ebx, eax
xor edx, ecx
and ebx, ebp
mov ecx, edi
add edx, esi
and ecx, eax
or ebx, ecx
add ebx, edx
mov edx, dword [esp + 0x28]
mov esi, edx
mov ecx, edx
ror esi, 0xb
rol ecx, 7
xor esi, ecx
mov ecx, edx
ror ecx, 6
not edx
and edx, dword [esp + 0x30]
xor esi, ecx
add esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x2c]
and ecx, dword [esp + 0x28]
xor edx, ecx
mov ecx, ebx
add edx, esi
rol ecx, 0xa
mov esi, dword [esp + 0x24]
add esi, 0xb5c0fbcf
add esi, edx
mov edx, ebx
add ebp, esi
ror edx, 0xd
xor edx, ecx
mov dword [esp + 0x18], ebp
mov ecx, ebx
mov ebp, edi
ror ecx, 2
or ebp, ebx
xor edx, ecx
and ebp, eax
add edx, esi
mov ecx, edi
and ecx, ebx
or ebp, ecx
add ebp, edx
mov edx, dword [esp + 0x18]
mov esi, edx
mov ecx, edx
rol ecx, 7
ror esi, 0xb
xor esi, ecx
mov ecx, edx
ror ecx, 6
not edx
and edx, dword [esp + 0x2c]
xor esi, ecx
add esi, dword [esp + 0x50]
mov ecx, dword [esp + 0x28]
and ecx, dword [esp + 0x18]
xor edx, ecx
mov ecx, ebp
add edx, esi
rol ecx, 0xa
mov esi, dword [esp + 0x30]
add esi, 0xe9b5dba5
add esi, edx
mov edx, ebp
ror edx, 0xd
add eax, esi
xor edx, ecx
mov dword [esp + 0x10], eax
mov ecx, ebp
ror ecx, 2
xor edx, ecx
mov ecx, ebx
or ecx, ebp
add edx, esi
and ecx, edi
mov esi, eax
mov dword [esp + 0x1c], ecx
mov ecx, ebx
and ecx, ebp
ror esi, 0xb
or dword [esp + 0x1c], ecx
mov ecx, eax
add dword [esp + 0x1c], edx
mov edx, eax
rol ecx, 7
not edx
xor esi, ecx
mov ecx, eax
ror ecx, 6
xor esi, ecx
and edx, dword [esp + 0x28]
add esi, dword [esp + 0x54]
mov ecx, dword [esp + 0x18]
and ecx, eax
xor edx, ecx
mov ecx, dword [esp + 0x1c]
add edx, esi
mov esi, dword [esp + 0x2c]
add esi, 0x3956c25b
add esi, edx
mov edx, ecx
rol ecx, 0xa
add edi, esi
ror edx, 0xd
xor edx, ecx
mov ecx, dword [esp + 0x1c]
ror ecx, 2
xor edx, ecx
mov ecx, ebp
or ecx, dword [esp + 0x1c]
add edx, esi
and ecx, ebx
mov esi, edi
mov dword [esp + 0x14], ecx
mov ecx, ebp
and ecx, dword [esp + 0x1c]
or dword [esp + 0x14], ecx
mov ecx, edi
add dword [esp + 0x14], edx
mov edx, edi
rol ecx, 7
not edx
and edx, dword [esp + 0x18]
ror esi, 0xb
xor esi, ecx
mov ecx, edi
ror ecx, 6
xor esi, ecx
mov ecx, edi
add esi, dword [esp + 0x58]
and ecx, eax
xor edx, ecx
mov ecx, dword [esp + 0x14]
add edx, esi
mov esi, dword [esp + 0x28]
add esi, 0x59f111f1
add esi, edx
mov edx, ecx
rol ecx, 0xa
add ebx, esi
ror edx, 0xd
xor edx, ecx
mov ecx, dword [esp + 0x14]
ror ecx, 2
xor edx, ecx
mov ecx, dword [esp + 0x1c]
mov eax, ecx
add edx, esi
and ecx, dword [esp + 0x14]
mov esi, ebx
or eax, dword [esp + 0x14]
and eax, ebp
ror esi, 0xb
or eax, ecx
mov ecx, ebx
rol ecx, 7
xor esi, ecx
mov dword [esp + 0x24], eax
add dword [esp + 0x24], edx
mov ecx, ebx
ror ecx, 6
mov edx, ebx
xor esi, ecx
not edx
and edx, dword [esp + 0x10]
mov ecx, edi
add esi, dword [esp + 0x5c]
and ecx, ebx
xor edx, ecx
add edx, esi
mov esi, dword [esp + 0x18]
add esi, 0x923f82a4
add esi, edx
mov ecx, dword [esp + 0x24]
mov edx, ecx
add ebp, esi
rol ecx, 0xa
ror edx, 0xd
xor edx, ecx
mov ecx, dword [esp + 0x24]
ror ecx, 2
xor edx, ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x2c], ecx
add edx, esi
or ecx, dword [esp + 0x24]
mov esi, ebp
and ecx, dword [esp + 0x1c]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
and ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
or eax, ecx
ror esi, 0xb
add eax, edx
mov ecx, ebp
rol ecx, 7
mov edx, ebp
xor esi, ecx
mov dword [esp + 0x2c], eax
not edx
mov ecx, ebp
ror ecx, 6
and edx, edi
xor esi, ecx
mov ecx, ebx
add esi, dword [esp + 0x60]
and ecx, ebp
xor edx, ecx
mov ecx, eax
add edx, esi
rol ecx, 0xa
mov esi, dword [esp + 0x10]
add esi, 0xab1c5ed5
add esi, edx
mov edx, eax
add dword [esp + 0x1c], esi
ror edx, 0xd
xor edx, ecx
mov ecx, eax
ror ecx, 2
xor edx, ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x10], ecx
add edx, esi
or ecx, eax
and ecx, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x24]
and ecx, eax
or dword [esp + 0x10], ecx
add dword [esp + 0x10], edx
mov edx, dword [esp + 0x1c]
mov esi, edx
mov ecx, edx
ror esi, 0xb
rol ecx, 7
xor esi, ecx
mov ecx, edx
ror ecx, 6
not edx
xor esi, ecx
and edx, ebx
add esi, dword [esp + 0x64]
mov ecx, ebp
and ecx, dword [esp + 0x1c]
xor edx, ecx
add edx, esi
lea esi, [edi - 0x27f85568]
mov edi, dword [esp + 0x14]
add esi, edx
add edi, esi
mov dword [esp + 0x14], edi
mov ecx, dword [esp + 0x10]
mov edx, ecx
rol ecx, 0xa
ror edx, 0xd
xor edx, ecx
mov ecx, dword [esp + 0x10]
ror ecx, 2
xor edx, ecx
mov ecx, eax
or ecx, dword [esp + 0x10]
add edx, esi
and ecx, dword [esp + 0x24]
mov esi, edi
mov dword [esp + 0x20], ecx
mov ecx, eax
and ecx, dword [esp + 0x10]
or dword [esp + 0x20], ecx
mov ecx, edi
add dword [esp + 0x20], edx
mov edx, edi
rol ecx, 7
not edx
ror esi, 0xb
and edx, ebp
xor esi, ecx
mov ecx, edi
mov edi, dword [esp + 0x1c]
ror ecx, 6
xor esi, ecx
mov ecx, edi
and ecx, dword [esp + 0x14]
add esi, dword [esp + 0x68]
xor edx, ecx
mov ecx, dword [esp + 0x20]
add edx, esi
lea esi, [ebx + 0x12835b01]
mov ebx, dword [esp + 0x24]
add esi, edx
mov edx, ecx
rol ecx, 0xa
add ebx, esi
ror edx, 0xd
xor edx, ecx
mov dword [esp + 0x24], ebx
mov ecx, dword [esp + 0x20]
ror ecx, 2
xor edx, ecx
mov ecx, dword [esp + 0x20]
or ecx, dword [esp + 0x10]
add edx, esi
and ecx, eax
mov esi, ebx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x20]
and ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
or eax, ecx
ror esi, 0xb
add eax, edx
mov ecx, ebx
rol ecx, 7
mov edx, ebx
xor esi, ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x2c]
mov ecx, ebx
mov ebx, dword [esp + 0x14]
not edx
ror ecx, 6
and edx, edi
xor esi, ecx
mov ecx, ebx
and ecx, dword [esp + 0x24]
add esi, dword [esp + 0x6c]
xor edx, ecx
add edx, esi
lea esi, [ebp + 0x243185be]
mov ebp, dword [esp + 0x1c]
add esi, edx
add eax, esi
mov edx, ebp
ror edx, 0xd
mov ecx, ebp
rol ecx, 0xa
xor edx, ecx
mov ecx, ebp
ror ecx, 2
xor edx, ecx
mov ecx, dword [esp + 0x20]
mov ebp, ecx
add edx, esi
and ecx, dword [esp + 0x1c]
mov esi, eax
or ebp, dword [esp + 0x1c]
and ebp, dword [esp + 0x10]
or ebp, ecx
ror esi, 0xb
add ebp, edx
mov ecx, eax
rol ecx, 7
mov edx, eax
xor esi, ecx
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x24]
not edx
and edx, ebx
mov ecx, eax
ror ecx, 6
xor esi, ecx
mov ecx, ebp
add esi, dword [esp + 0x70]
and ecx, eax
xor edx, ecx
mov ecx, dword [esp + 0x18]
add edx, esi
lea esi, [edi + 0x550c7dc3]
add esi, edx
mov edi, dword [esp + 0x10]
mov edx, ecx
add edi, esi
rol ecx, 0xa
ror edx, 0xd
xor edx, ecx
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0x18]
ror ecx, 2
xor edx, ecx
mov ecx, dword [esp + 0x1c]
or ecx, dword [esp + 0x18]
add edx, esi
and ecx, dword [esp + 0x20]
mov esi, edi
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
and ecx, dword [esp + 0x18]
or dword [esp + 0x24], ecx
mov ecx, edi
add dword [esp + 0x24], edx
mov edx, edi
rol ecx, 7
not edx
ror esi, 0xb
and edx, ebp
xor esi, ecx
mov ecx, edi
ror ecx, 6
xor esi, ecx
mov ecx, eax
add esi, dword [esp + 0x74]
and ecx, edi
xor edx, ecx
lea edi, [ebx + 0x72be5d74]
mov ebx, dword [esp + 0x24]
add edx, esi
add edi, edx
mov esi, ebx
add dword [esp + 0x20], edi
mov ecx, ebx
rol ecx, 0xa
ror esi, 0xd
xor esi, ecx
mov ecx, ebx
ror ecx, 2
xor esi, ecx
mov ecx, dword [esp + 0x18]
mov edx, ecx
add edi, esi
and ecx, ebx
or edx, ebx
and edx, dword [esp + 0x1c]
or edx, ecx
mov ebx, dword [esp + 0x20]
add edi, edx
mov esi, ebx
ror esi, 0xb
mov ecx, ebx
rol ecx, 7
mov edx, ebx
xor esi, ecx
mov dword [esp + 0x14], edi
not edx
mov ecx, ebx
ror ecx, 6
and edx, eax
xor esi, ecx
mov ecx, ebx
add esi, dword [esp + 0x78]
mov ebx, dword [esp + 0x10]
and ecx, ebx
xor edx, ecx
mov ecx, edi
add edx, esi
rol ecx, 0xa
lea esi, [ebp - 0x7f214e02]
add esi, edx
mov edx, edi
add dword [esp + 0x1c], esi
ror edx, 0xd
xor edx, ecx
mov ecx, edi
mov edi, dword [esp + 0x24]
mov ebp, edi
or ebp, dword [esp + 0x14]
and ebp, dword [esp + 0x18]
ror ecx, 2
xor edx, ecx
mov ecx, edi
and ecx, dword [esp + 0x14]
add edx, esi
or ebp, ecx
add ebp, edx
mov edx, dword [esp + 0x1c]
mov esi, edx
mov dword [esp + 0x2c], ebp
mov ecx, edx
ror esi, 0xb
rol ecx, 7
xor esi, ecx
mov ecx, edx
ror ecx, 6
not edx
xor esi, ecx
and edx, ebx
mov ecx, dword [esp + 0x20]
and ecx, dword [esp + 0x1c]
add esi, dword [esp + 0x7c]
xor edx, ecx
add edx, 0x9bdc06a7
mov ecx, ebp
add esi, edx
rol ecx, 0xa
mov edx, ebp
add esi, eax
add dword [esp + 0x18], esi
ror edx, 0xd
xor edx, ecx
mov ecx, ebp
ror ecx, 2
xor edx, ecx
mov ecx, dword [esp + 0x14]
mov eax, ecx
or eax, ebp
and eax, edi
add edx, esi
and ecx, ebp
or eax, ecx
add eax, edx
mov edx, dword [esp + 0x18]
mov esi, edx
mov dword [esp + 0x28], eax
mov ecx, edx
ror esi, 0xb
rol ecx, 7
xor esi, ecx
mov ecx, edx
ror ecx, 6
not edx
and edx, dword [esp + 0x20]
xor esi, ecx
mov ecx, dword [esp + 0x1c]
and ecx, dword [esp + 0x18]
add esi, dword [esp + 0x80]
xor edx, ecx
add edx, esi
mov ecx, eax
lea esi, [ebx - 0x3e640e8c]
rol ecx, 0xa
add esi, edx
mov ebx, ebp
mov edx, eax
or ebx, eax
and ebx, dword [esp + 0x14]
add edi, esi
ror edx, 0xd
xor edx, ecx
mov dword [esp + 0x24], edi
mov ecx, eax
ror ecx, 2
xor edx, ecx
mov ecx, ebp
and ecx, eax
add edx, esi
mov eax, dword [esp + 0x34]
or ebx, ecx
add ebx, edx
mov dword [esp + 0x10], ebx
cmp eax, 0x18
jae 0x402fb7
mov ebp, 0x18
lea ebx, [esp + eax*4 + 0x3c]
sub ebp, eax
add eax, ebp
mov dword [esp + 0x34], eax
mov edx, dword [ebx]
lea ebx, [ebx + 4]
mov esi, dword [ebx - 0x38]
mov edi, edx
mov ecx, edx
rol edi, 0xf
rol ecx, 0xd
xor edi, ecx
shr edx, 0xa
xor edi, edx
mov ecx, esi
mov edx, esi
ror ecx, 7
rol edx, 0xe
xor edx, ecx
shr esi, 3
xor edx, esi
add edi, edx
add edi, dword [ebx - 0x3c]
add edi, dword [ebx - 0x18]
mov dword [ebx + 4], edi
sub ebp, 1
jne 0x402f75
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x24]
mov esi, edi
mov ebp, dword [esp + 0x14]
ror esi, 0xb
mov ecx, edi
rol ecx, 7
mov edx, edi
xor esi, ecx
not edx
and edx, dword [esp + 0x1c]
mov ecx, edi
and edi, dword [esp + 0x18]
add ebp, 0xe49b69c1
ror ecx, 6
xor edi, edx
xor esi, ecx
mov ecx, ebx
add esi, dword [esp + 0x84]
add edi, esi
rol ecx, 0xa
add edi, dword [esp + 0x20]
mov esi, ebx
ror esi, 0xd
add ebp, edi
xor esi, ecx
mov ecx, ebx
ror ecx, 2
xor esi, ecx
mov ecx, dword [esp + 0x28]
mov edx, ecx
and ecx, ebx
or edx, ebx
and edx, dword [esp + 0x2c]
or edx, ecx
lea ebx, [edi + esi]
add edx, 0xe49b69c1
mov esi, ebp
add ebx, edx
ror esi, 0xb
mov ecx, ebp
mov edx, ebp
rol ecx, 7
not edx
and edx, dword [esp + 0x18]
xor esi, ecx
mov ecx, ebp
mov edi, ebx
ror ecx, 6
xor esi, ecx
or edi, dword [esp + 0x10]
add esi, dword [esp + 0x88]
mov ecx, ebp
and ecx, dword [esp + 0x24]
xor edx, ecx
and edi, dword [esp + 0x28]
add edx, esi
mov ecx, ebx
mov esi, dword [esp + 0x1c]
add esi, 0xefbe4786
rol ecx, 0xa
add esi, edx
mov edx, ebx
add dword [esp + 0x2c], esi
ror edx, 0xd
xor edx, ecx
mov ecx, ebx
ror ecx, 2
xor edx, ecx
mov ecx, ebx
and ecx, dword [esp + 0x10]
add edx, esi
or edi, ecx
add edi, edx
mov edx, dword [esp + 0x2c]
mov esi, edx
mov dword [esp + 0x14], edi
mov ecx, edx
ror esi, 0xb
rol ecx, 7
xor esi, ecx
mov ecx, edx
ror ecx, 6
xor esi, ecx
not edx
and edx, dword [esp + 0x24]
mov ecx, ebp
and ecx, dword [esp + 0x2c]
add esi, dword [esp + 0x8c]
xor edx, ecx
add edx, esi
mov ecx, edi
mov esi, dword [esp + 0x18]
rol ecx, 0xa
add esi, 0xfc19dc6
add esi, edx
mov edx, edi
add dword [esp + 0x28], esi
ror edx, 0xd
xor edx, ecx
mov ecx, edi
ror ecx, 2
mov edi, ebx
or edi, dword [esp + 0x14]
xor edx, ecx
and edi, dword [esp + 0x10]
add edx, esi
mov ecx, ebx
and ecx, dword [esp + 0x14]
or edi, ecx
add edi, edx
mov edx, dword [esp + 0x28]
mov esi, edx
mov dword [esp + 0x18], edi
mov ecx, edx
ror esi, 0xb
rol ecx, 7
xor esi, ecx
mov ecx, edx
ror ecx, 6
not edx
xor esi, ecx
and edx, ebp
add esi, dword [esp + 0x90]
mov ecx, dword [esp + 0x2c]
and ecx, dword [esp + 0x28]
xor edx, ecx
mov ecx, edi
add edx, esi
rol ecx, 0xa
mov esi, dword [esp + 0x24]
add esi, 0x240ca1cc
add esi, edx
mov edx, edi
add dword [esp + 0x10], esi
ror edx, 0xd
xor edx, ecx
mov ecx, edi
ror ecx, 2
xor edx, ecx
mov ecx, dword [esp + 0x14]
mov edi, ecx
add edx, esi
or edi, dword [esp + 0x18]
and ecx, dword [esp + 0x18]
and edi, ebx
or edi, ecx
add edi, edx
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x10]
mov esi, edi
mov ecx, edi
ror esi, 0xb
rol ecx, 7
mov edx, edi
xor esi, ecx
not edx
and edx, dword [esp + 0x2c]
mov ecx, edi
and edi, dword [esp + 0x28]
ror ecx, 6
xor edi, edx
xor esi, ecx
add esi, dword [esp + 0x94]
add edi, 0x2de92c6f
add edi, esi
add edi, ebp
mov ebp, dword [esp + 0x18]
mov edx, ebp
lea ecx, [ebx + edi]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x1c], ecx
or edx, ebx
and edx, dword [esp + 0x14]
mov esi, ebx
ror esi, 0xd
mov ecx, ebx
rol ecx, 0xa
xor esi, ecx
mov ecx, ebx
ror ecx, 2
xor esi, ecx
mov ecx, ebp
add edi, esi
and ecx, ebx
or edx, ecx
add edi, edx
mov edx, dword [esp + 0x1c]
mov esi, edx
mov dword [esp + 0x30], edi
mov ecx, edx
ror esi, 0xb
rol ecx, 7
xor esi, ecx
mov ecx, edx
ror ecx, 6
not edx
and edx, dword [esp + 0x28]
xor esi, ecx
add esi, dword [esp + 0x98]
mov ecx, dword [esp + 0x1c]
and ecx, dword [esp + 0x10]
xor edx, ecx
mov ecx, edi
add edx, esi
rol ecx, 0xa
mov esi, dword [esp + 0x2c]
add esi, 0x4a7484aa
add esi, edx
mov edx, edi
add dword [esp + 0x14], esi
ror edx, 0xd
xor edx, ecx
mov ecx, edi
ror ecx, 2
mov edi, ebx
or edi, dword [esp + 0x30]
xor edx, ecx
add edx, esi
and edi, ebp
mov ecx, ebx
and ecx, dword [esp + 0x30]
or edi, ecx
add edi, edx
mov edx, dword [esp + 0x14]
mov esi, edx
mov dword [esp + 0x2c], edi
ror esi, 0xb
mov ecx, edx
rol ecx, 7
xor esi, ecx
mov ecx, edx
ror ecx, 6
not edx
and edx, dword [esp + 0x10]
xor esi, ecx
mov ecx, dword [esp + 0x1c]
add esi, dword [esp + 0x9c]
and ecx, dword [esp + 0x14]
xor edx, ecx
add edx, esi
mov esi, dword [esp + 0x28]
add esi, 0x5cb0a9dc
add esi, edx
add ebp, esi
mov edx, edi
mov dword [esp + 0x18], ebp
ror edx, 0xd
mov ecx, edi
rol ecx, 0xa
xor edx, ecx
mov ecx, edi
ror ecx, 2
xor edx, ecx
mov ecx, dword [esp + 0x30]
mov ebp, ecx
add edx, esi
and ecx, edi
or ebp, edi
and ebp, ebx
or ebp, ecx
add ebp, edx
mov edx, dword [esp + 0x18]
mov esi, edx
mov dword [esp + 0x28], ebp
mov ecx, edx
ror esi, 0xb
rol ecx, 7
xor esi, ecx
mov ecx, edx
ror ecx, 6
not edx
and edx, dword [esp + 0x1c]
xor esi, ecx
mov ecx, dword [esp + 0x14]
and ecx, dword [esp + 0x18]
add esi, dword [esp + 0xa0]
xor edx, ecx
add edx, esi
mov ecx, ebp
mov esi, dword [esp + 0x10]
add esi, 0x76f988da
rol ecx, 0xa
add esi, edx
mov edx, ebp
add ebx, esi
ror edx, 0xd
xor edx, ecx
mov dword [esp + 0x20], ebx
mov ecx, ebp
mov ebx, edi
ror ecx, 2
or ebx, ebp
and ebx, dword [esp + 0x30]
xor edx, ecx
mov ecx, edi
add edx, esi
and ecx, ebp
or ebx, ecx
add ebx, edx
mov dword [esp + 0x24], ebx
cmp eax, 0x20
jge 0x403362
mov ebp, 0x20
lea ebx, [esp + eax*4 + 0x3c]
sub ebp, eax
add eax, ebp
mov dword [esp + 0x34], eax
mov edx, dword [ebx - 0x34]
lea ebx, [ebx + 4]
mov esi, dword [ebx - 4]
mov edi, edx
mov ecx, edx
rol edi, 0xe
ror ecx, 7
xor edi, ecx
shr edx, 3
xor edi, edx
mov ecx, esi
mov edx, esi
rol ecx, 0xd
rol edx, 0xf
xor edx, ecx
shr esi, 0xa
xor edx, esi
add edi, edx
add edi, dword [ebx - 0x3c]
add edi, dword [ebx - 0x18]
mov dword [ebx + 4], edi
sub ebp, 1
jne 0x403323
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x20]
mov esi, ebp
ror esi, 0xb
mov ecx, ebp
rol ecx, 7
mov edi, ebp
xor esi, ecx
not edi
and edi, dword [esp + 0x14]
mov ecx, ebp
ror ecx, 6
xor esi, ecx
mov ecx, dword [esp + 0x18]
add esi, dword [esp + 0xa4]
and ecx, ebp
xor edi, ecx
mov ebp, dword [esp + 0x30]
add edi, esi
mov ecx, ebx
add edi, dword [esp + 0x1c]
mov esi, ebx
rol ecx, 0xa
add ebp, 0x983e5152
ror esi, 0xd
add ebp, edi
xor esi, ecx
mov ecx, ebx
ror ecx, 2
xor esi, ecx
mov ecx, dword [esp + 0x28]
mov edx, ecx
and ecx, ebx
or edx, ebx
lea ebx, [edi - 0x67c1aeae]
and edx, dword [esp + 0x2c]
add ebx, esi
or edx, ecx
mov esi, ebp
add ebx, edx
ror esi, 0xb
mov ecx, ebp
mov edx, ebp
rol ecx, 7
not edx
and edx, dword [esp + 0x18]
xor esi, ecx
mov ecx, ebp
mov edi, ebx
ror ecx, 6
xor esi, ecx
or edi, dword [esp + 0x24]
add esi, dword [esp + 0xa8]
mov ecx, ebp
and ecx, dword [esp + 0x20]
xor edx, ecx
and edi, dword [esp + 0x28]
add edx, esi
mov ecx, ebx
mov esi, dword [esp + 0x14]
add esi, 0xa831c66d
rol ecx, 0xa
add esi, edx
mov edx, ebx
add dword [esp + 0x2c], esi
ror edx, 0xd
xor edx, ecx
mov ecx, ebx
ror ecx, 2
xor edx, ecx
mov ecx, ebx
and ecx, dword [esp + 0x24]
add edx, esi
or edi, ecx
add edi, edx
mov edx, dword [esp + 0x2c]
mov esi, edx
mov dword [esp + 0x14], edi
mov ecx, edx
ror esi, 0xb
rol ecx, 7
xor esi, ecx
mov ecx, edx
not edx
and edx, dword [esp + 0x20]
ror ecx, 6
xor esi, ecx
mov ecx, ebp
and ecx, dword [esp + 0x2c]
add esi, dword [esp + 0xac]
xor edx, ecx
add edx, esi
mov ecx, edi
mov esi, dword [esp + 0x18]
rol ecx, 0xa
add esi, 0xb00327c8
add esi, edx
mov edx, edi
add dword [esp + 0x28], esi
ror edx, 0xd
xor edx, ecx
mov ecx, edi
ror ecx, 2
mov edi, ebx
or edi, dword [esp + 0x14]
xor edx, ecx
and edi, dword [esp + 0x24]
add edx, esi
mov ecx, ebx
and ecx, dword [esp + 0x14]
or edi, ecx
add edi, edx
mov edx, dword [esp + 0x28]
mov esi, edx
mov dword [esp + 0x18], edi
mov ecx, edx
ror esi, 0xb
rol ecx, 7
xor esi, ecx
mov ecx, edx
ror ecx, 6
not edx
xor esi, ecx
and edx, ebp
add esi, dword [esp + 0xb0]
mov ecx, dword [esp + 0x2c]
and ecx, dword [esp + 0x28]
xor edx, ecx
mov ecx, edi
add edx, esi
rol ecx, 0xa
mov esi, dword [esp + 0x20]
add esi, 0xbf597fc7
add esi, edx
mov edx, edi
add dword [esp + 0x24], esi
ror edx, 0xd
xor edx, ecx
mov ecx, edi
ror ecx, 2
xor edx, ecx
mov ecx, dword [esp + 0x14]
mov edi, ecx
add edx, esi
or edi, dword [esp + 0x18]
and ecx, dword [esp + 0x18]
and edi, ebx
or edi, ecx
add edi, edx
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x24]
mov esi, edi
mov ecx, edi
ror esi, 0xb
rol ecx, 7
mov edx, edi
xor esi, ecx
not edx
and edx, dword [esp + 0x2c]
mov ecx, edi
ror ecx, 6
xor esi, ecx
and edi, dword [esp + 0x28]
add esi, dword [esp + 0xb4]
lea ecx, [ebx - 0x391ff40d]
mov ebx, dword [esp + 0x20]
xor edi, edx
add edi, esi
mov esi, ebx
add edi, ebp
ror esi, 0xd
add ecx, edi
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x30], ecx
mov ecx, ebx
rol ecx, 0xa
xor esi, ecx
mov ecx, ebx
ror ecx, 2
xor esi, ecx
mov ecx, dword [esp + 0x18]
mov edx, ecx
add edi, esi
and ecx, ebx
or edx, ebx
and edx, ebp
or edx, ecx
add edx, 0xc6e00bf3
add edi, edx
mov edx, dword [esp + 0x30]
mov esi, edx
mov dword [esp + 0x10], edi
mov ecx, edx
ror esi, 0xb
rol ecx, 7
xor esi, ecx
mov ecx, edx
ror ecx, 6
not edx
and edx, dword [esp + 0x28]
xor esi, ecx
add esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x30]
and ecx, dword [esp + 0x24]
xor edx, ecx
mov ecx, edi
add edx, esi
rol ecx, 0xa
mov esi, dword [esp + 0x2c]
add esi, 0xd5a79147
add esi, edx
mov edx, edi
add ebp, esi
ror edx, 0xd
xor edx, ecx
mov dword [esp + 0x14], ebp
mov ecx, edi
mov ebp, ebx
ror ecx, 2
or ebp, edi
mov edi, dword [esp + 0x18]
xor edx, ecx
add edx, esi
mov ecx, ebx
and ecx, dword [esp + 0x10]
and ebp, edi
mov ebx, dword [esp + 0x14]
or ebp, ecx
mov esi, ebx
mov ecx, ebx
rol ecx, 7
add ebp, edx
ror esi, 0xb
mov edx, ebx
xor esi, ecx
mov dword [esp + 0x1c], ebp
mov ecx, ebx
not edx
and edx, dword [esp + 0x24]
ror ecx, 6
xor esi, ecx
mov ecx, dword [esp + 0x30]
and ecx, ebx
xor edx, ecx
add esi, dword [esp + 0xbc]
mov ecx, ebp
add edx, esi
rol ecx, 0xa
mov esi, dword [esp + 0x28]
add esi, 0x6ca6351
add esi, edx
mov edx, ebp
ror edx, 0xd
add edi, esi
xor edx, ecx
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x20]
mov ecx, ebp
ror ecx, 2
xor edx, ecx
mov ecx, dword [esp + 0x10]
mov ebx, ecx
add edx, esi
and ecx, ebp
or ebx, ebp
and ebx, edi
or ebx, ecx
add ebx, edx
mov edx, dword [esp + 0x18]
mov esi, edx
mov dword [esp + 0x28], ebx
mov ecx, edx
ror esi, 0xb
rol ecx, 7
xor esi, ecx
mov ecx, edx
ror ecx, 6
not edx
and edx, dword [esp + 0x30]
xor esi, ecx
mov ecx, dword [esp + 0x14]
and ecx, dword [esp + 0x18]
add esi, dword [esp + 0xc0]
xor edx, ecx
add edx, esi
mov ecx, ebx
mov esi, dword [esp + 0x24]
add esi, 0x14292967
rol ecx, 0xa
add esi, edx
mov edx, ebx
add edi, esi
ror edx, 0xd
xor edx, ecx
mov dword [esp + 0x20], edi
mov ecx, ebx
mov edi, ebp
ror ecx, 2
or edi, ebx
and edi, dword [esp + 0x10]
xor edx, ecx
mov ecx, ebp
add edx, esi
and ecx, ebx
or edi, ecx
add edi, edx
mov dword [esp + 0x2c], edi
cmp eax, 0x28
jge 0x403722
mov ebp, 0x28
lea ebx, [esp + eax*4 + 0x3c]
sub ebp, eax
add eax, ebp
mov dword [esp + 0x34], eax
mov edx, dword [ebx]
lea ebx, [ebx + 4]
mov esi, dword [ebx - 0x38]
mov edi, edx
mov ecx, edx
rol edi, 0xf
rol ecx, 0xd
xor edi, ecx
shr edx, 0xa
xor edi, edx
mov ecx, esi
mov edx, esi
ror ecx, 7
rol edx, 0xe
xor edx, ecx
shr esi, 3
xor edx, esi
add edi, edx
add edi, dword [ebx - 0x3c]
add edi, dword [ebx - 0x18]
mov dword [ebx + 4], edi
sub ebp, 1
jne 0x4036e0
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x20]
mov esi, ebp
ror esi, 0xb
mov ecx, ebp
rol ecx, 7
mov edx, ebp
xor esi, ecx
not edx
and edx, dword [esp + 0x14]
mov ecx, ebp
ror ecx, 6
xor esi, ecx
mov ecx, dword [esp + 0x18]
add esi, dword [esp + 0xc4]
and ecx, ebp
xor edx, ecx
mov ebp, ebx
add edx, esi
mov ecx, edi
mov esi, dword [esp + 0x30]
and ebx, edi
rol ecx, 0xa
add esi, 0x27b70a85
add esi, edx
or ebp, edi
add dword [esp + 0x10], esi
mov edx, edi
and ebp, dword [esp + 0x1c]
ror edx, 0xd
or ebp, ebx
mov ebx, dword [esp + 0x10]
xor edx, ecx
mov ecx, edi
ror ecx, 2
xor edx, ecx
mov ecx, ebx
add edx, esi
rol ecx, 7
add ebp, edx
mov esi, ebx
ror esi, 0xb
mov edx, ebx
xor esi, ecx
not edx
and edx, dword [esp + 0x18]
mov ecx, ebx
ror ecx, 6
xor esi, ecx
mov ecx, dword [esp + 0x20]
add esi, dword [esp + 0xc8]
and ecx, ebx
xor edx, ecx
mov ebx, ebp
add edx, esi
mov ecx, ebp
mov esi, dword [esp + 0x14]
or ebx, edi
and ebx, dword [esp + 0x28]
add esi, 0x2e1b2138
add esi, edx
rol ecx, 0xa
add dword [esp + 0x1c], esi
mov edx, ebp
ror edx, 0xd
xor edx, ecx
mov ecx, ebp
ror ecx, 2
xor edx, ecx
mov ecx, ebp
and ecx, edi
add edx, esi
mov edi, dword [esp + 0x1c]
or ebx, ecx
mov esi, edi
mov ecx, edi
rol ecx, 7
add ebx, edx
ror esi, 0xb
xor esi, ecx
mov ecx, edi
ror ecx, 6
xor esi, ecx
mov edx, edi
add esi, dword [esp + 0xcc]
not edx
and edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
and ecx, edi
mov edi, ebp
xor edx, ecx
or edi, ebx
add edx, esi
and edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x18]
mov ecx, ebx
rol ecx, 0xa
add esi, 0x4d2c6dfc
add esi, edx
mov edx, ebx
add dword [esp + 0x28], esi
ror edx, 0xd
xor edx, ecx
mov ecx, ebx
ror ecx, 2
xor edx, ecx
mov ecx, ebp
add edx, esi
and ecx, ebx
or edi, ecx
add edi, edx
mov edx, dword [esp + 0x28]
mov esi, edx
mov dword [esp + 0x30], edi
mov ecx, edx
ror esi, 0xb
rol ecx, 7
xor esi, ecx
mov ecx, edx
ror ecx, 6
not edx
and edx, dword [esp + 0x10]
xor esi, ecx
add esi, dword [esp + 0xd0]
mov ecx, dword [esp + 0x1c]
and ecx, dword [esp + 0x28]
xor edx, ecx
mov ecx, edi
add edx, esi
rol ecx, 0xa
mov esi, dword [esp + 0x20]
add esi, 0x53380d13
add esi, edx
mov edx, edi
add dword [esp + 0x2c], esi
ror edx, 0xd
xor edx, ecx
mov ecx, edi
ror ecx, 2
xor edx, ecx
mov ecx, ebx
or ecx, edi
add edx, esi
and ecx, ebp
mov dword [esp + 0x18], ecx
mov ecx, ebx
and ecx, edi
mov edi, dword [esp + 0x18]
or edi, ecx
add edi, edx
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x2c]
mov esi, edi
ror esi, 0xb
mov ecx, edi
rol ecx, 7
mov edx, edi
xor esi, ecx
not edx
mov ecx, edi
ror ecx, 6
xor esi, ecx
and edx, dword [esp + 0x1c]
add esi, dword [esp + 0xd4]
mov ecx, dword [esp + 0x28]
and ecx, edi
mov edi, dword [esp + 0x10]
xor edx, ecx
add edi, 0x650a7354
add edx, esi
add edi, edx
mov edx, dword [esp + 0x18]
mov esi, edx
mov ecx, edx
rol ecx, 0xa
add ebp, edi
ror esi, 0xd
xor esi, ecx
mov ecx, edx
ror ecx, 2
xor esi, ecx
mov ecx, dword [esp + 0x30]
mov edx, ecx
add edi, esi
and ecx, dword [esp + 0x18]
mov esi, ebp
or edx, dword [esp + 0x18]
and edx, ebx
ror esi, 0xb
or edx, ecx
mov ecx, ebp
rol ecx, 7
add edi, edx
xor esi, ecx
mov dword [esp + 0x10], edi
mov ecx, ebp
mov edx, ebp
ror ecx, 6
not edx
and edx, dword [esp + 0x28]
xor esi, ecx
add esi, dword [esp + 0xd8]
mov ecx, ebp
and ecx, dword [esp + 0x2c]
xor edx, ecx
mov ecx, edi
add edx, esi
rol ecx, 0xa
mov esi, dword [esp + 0x1c]
add esi, 0x766a0abb
add esi, edx
mov edx, edi
ror edx, 0xd
add ebx, esi
xor edx, ecx
mov dword [esp + 0x20], ebx
mov ecx, edi
ror ecx, 2
xor edx, ecx
mov ecx, dword [esp + 0x18]
mov edi, ecx
add edx, esi
and ecx, dword [esp + 0x10]
mov esi, ebx
or edi, dword [esp + 0x10]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x30]
and dword [esp + 0x1c], edi
or dword [esp + 0x1c], ecx
mov ecx, ebx
add dword [esp + 0x1c], edx
mov edx, ebx
rol ecx, 7
not edx
and edx, dword [esp + 0x2c]
ror esi, 0xb
xor esi, ecx
mov ecx, ebx
ror ecx, 6
xor esi, ecx
mov ecx, ebp
and ecx, ebx
xor edx, ecx
add esi, dword [esp + 0xdc]
mov ecx, dword [esp + 0x1c]
add edx, esi
mov esi, dword [esp + 0x28]
add esi, 0x81c2c92e
add esi, edx
mov edx, ecx
rol ecx, 0xa
add edi, esi
ror edx, 0xd
xor edx, ecx
mov dword [esp + 0x30], edi
mov ecx, dword [esp + 0x1c]
ror ecx, 2
xor edx, ecx
mov ecx, dword [esp + 0x10]
or ecx, dword [esp + 0x1c]
add edx, esi
and ecx, dword [esp + 0x18]
mov esi, edi
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
and ecx, dword [esp + 0x1c]
or dword [esp + 0x14], ecx
mov ecx, edi
add dword [esp + 0x14], edx
mov edx, edi
rol ecx, 7
not edx
ror esi, 0xb
and edx, ebp
xor esi, ecx
mov ecx, edi
ror ecx, 6
xor esi, ecx
mov ecx, ebx
add esi, dword [esp + 0xe0]
and ecx, edi
xor edx, ecx
mov ecx, dword [esp + 0x14]
add edx, esi
mov esi, dword [esp + 0x2c]
add esi, 0x92722c85
add esi, edx
mov edx, ecx
add dword [esp + 0x18], esi
rol ecx, 0xa
ror edx, 0xd
xor edx, ecx
mov ecx, dword [esp + 0x14]
ror ecx, 2
xor edx, ecx
mov ecx, dword [esp + 0x1c]
mov ebx, ecx
add edx, esi
or ebx, dword [esp + 0x14]
and ebx, dword [esp + 0x10]
and ecx, dword [esp + 0x14]
or ebx, ecx
mov dword [esp + 0x24], ebx
add dword [esp + 0x24], edx
mov ebx, dword [esp + 0x20]
cmp eax, 0x30
jge 0x403af7
mov ecx, 0x30
lea ebx, [esp + eax*4 + 0x3c]
sub ecx, eax
add eax, ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], eax
mov eax, ecx
nop dword [eax + eax]
mov edx, dword [ebx - 0x34]
lea ebx, [ebx + 4]
mov esi, dword [ebx - 4]
mov edi, edx
mov ecx, edx
rol edi, 0xe
ror ecx, 7
xor edi, ecx
shr edx, 3
xor edi, edx
mov ecx, esi
mov edx, esi
rol ecx, 0xd
rol edx, 0xf
xor edx, ecx
shr esi, 0xa
xor edx, esi
add edi, edx
add edi, dword [ebx - 0x3c]
add edi, dword [ebx - 0x18]
mov dword [ebx + 4], edi
sub eax, 1
jne 0x403ab0
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
mov esi, edx
and edi, dword [esp + 0x18]
mov ecx, edx
rol ecx, 7
ror esi, 0xb
xor esi, ecx
mov ecx, edx
ror ecx, 6
not edx
xor esi, ecx
and edx, ebx
add esi, dword [esp + 0xe4]
xor edi, edx
mov ebx, dword [esp + 0x24]
add edi, esi
mov esi, ebx
mov ecx, ebx
rol ecx, 0xa
add edi, ebp
mov ebp, dword [esp + 0x10]
ror esi, 0xd
add ebp, 0xa2bfe8a1
xor esi, ecx
add ebp, edi
mov ecx, ebx
ror ecx, 2
xor esi, ecx
mov ecx, dword [esp + 0x14]
mov edx, ecx
and ecx, ebx
or edx, ebx
and edx, dword [esp + 0x1c]
or edx, ecx
lea ebx, [edi + esi]
mov edi, dword [esp + 0x30]
add edx, 0xa2bfe8a1
add ebx, edx
mov esi, ebp
ror esi, 0xb
mov ecx, ebp
rol ecx, 7
mov edx, ebp
xor esi, ecx
not edx
and edx, edi
mov ecx, ebp
ror ecx, 6
xor esi, ecx
mov ecx, ebp
and ecx, dword [esp + 0x18]
add esi, dword [esp + 0xe8]
xor edx, ecx
add edx, esi
mov ecx, ebx
mov esi, dword [esp + 0x20]
rol ecx, 0xa
add esi, 0xa81a664b
add esi, edx
mov edx, ebx
add dword [esp + 0x1c], esi
ror edx, 0xd
xor edx, ecx
mov ecx, ebx
ror ecx, 2
xor edx, ecx
mov ecx, ebx
or ecx, dword [esp + 0x24]
add edx, esi
and ecx, dword [esp + 0x14]
mov dword [esp + 0x20], ecx
mov ecx, ebx
and ecx, dword [esp + 0x24]
or dword [esp + 0x20], ecx
add dword [esp + 0x20], edx
mov edx, dword [esp + 0x1c]
mov esi, edx
mov ecx, edx
ror esi, 0xb
rol ecx, 7
xor esi, ecx
mov ecx, edx
not edx
and edx, dword [esp + 0x18]
ror ecx, 6
xor esi, ecx
mov ecx, ebp
and ecx, dword [esp + 0x1c]
add esi, dword [esp + 0xec]
xor edx, ecx
add edx, esi
mov ecx, dword [esp + 0x20]
lea esi, [edi - 0x3db47490]
mov edi, dword [esp + 0x14]
add esi, edx
mov edx, ecx
rol ecx, 0xa
add edi, esi
ror edx, 0xd
xor edx, ecx
mov dword [esp + 0x14], edi
mov ecx, dword [esp + 0x20]
ror ecx, 2
xor edx, ecx
mov ecx, ebx
or ecx, dword [esp + 0x20]
add edx, esi
and ecx, dword [esp + 0x24]
mov esi, edi
mov dword [esp + 0x10], ecx
mov ecx, ebx
and ecx, dword [esp + 0x20]
or dword [esp + 0x10], ecx
mov ecx, edi
add dword [esp + 0x10], edx
mov edx, edi
rol ecx, 7
not edx
ror esi, 0xb
and edx, ebp
xor esi, ecx
mov ecx, edi
mov edi, dword [esp + 0x1c]
ror ecx, 6
xor esi, ecx
mov ecx, edi
and ecx, dword [esp + 0x14]
add esi, dword [esp + 0xf0]
xor edx, ecx
mov ecx, dword [esp + 0x10]
add edx, esi
mov esi, dword [esp + 0x18]
add esi, 0xc76c51a3
add esi, edx
mov edx, ecx
add dword [esp + 0x24], esi
rol ecx, 0xa
ror edx, 0xd
xor edx, ecx
mov ecx, dword [esp + 0x10]
ror ecx, 2
xor edx, ecx
mov ecx, dword [esp + 0x20]
or ecx, dword [esp + 0x10]
add edx, esi
and ecx, ebx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x20]
and ecx, dword [esp + 0x10]
or dword [esp + 0x18], ecx
add dword [esp + 0x18], edx
mov edx, dword [esp + 0x24]
mov esi, edx
mov ecx, edx
ror esi, 0xb
rol ecx, 7
xor esi, ecx
mov ecx, edx
ror ecx, 6
not edx
xor esi, ecx
and edi, edx
add esi, dword [esp + 0xf4]
mov ecx, dword [esp + 0x14]
and ecx, dword [esp + 0x24]
xor edi, ecx
add edi, esi
add edi, ebp
lea ebp, [edi - 0x2e6d17e7]
add ebp, ebx
mov ebx, dword [esp + 0x18]
mov esi, ebx
mov dword [esp + 0x2c], ebp
ror esi, 0xd
mov ecx, ebx
rol ecx, 0xa
xor esi, ecx
mov ecx, ebx
ror ecx, 2
xor esi, ecx
mov ecx, dword [esp + 0x10]
mov edx, ecx
add edi, esi
or edx, ebx
and ecx, ebx
and edx, dword [esp + 0x20]
mov esi, ebp
or edx, ecx
mov ebx, dword [esp + 0x14]
add edx, 0xd192e819
ror esi, 0xb
add edi, edx
mov ecx, ebp
rol ecx, 7
mov edx, ebp
xor esi, ecx
mov dword [esp + 0x30], edi
not edx
mov ecx, ebp
ror ecx, 6
and edx, ebx
xor esi, ecx
mov ecx, ebp
and ecx, dword [esp + 0x24]
add esi, dword [esp + 0xf8]
xor edx, ecx
add edx, esi
mov ecx, edi
mov esi, dword [esp + 0x1c]
rol ecx, 0xa
add esi, 0xd6990624
add esi, edx
mov edx, edi
add dword [esp + 0x20], esi
ror edx, 0xd
xor edx, ecx
mov ecx, edi
ror ecx, 2
xor edx, ecx
mov ecx, dword [esp + 0x18]
mov edi, ecx
add edx, esi
and ecx, dword [esp + 0x30]
or edi, dword [esp + 0x30]
and edi, dword [esp + 0x10]
or edi, ecx
add edi, edx
mov edx, dword [esp + 0x20]
mov esi, edx
mov dword [esp + 0x28], edi
mov ecx, edx
ror esi, 0xb
rol ecx, 7
xor esi, ecx
mov ecx, edx
ror ecx, 6
not edx
and edx, dword [esp + 0x24]
xor esi, ecx
mov ecx, ebp
and ecx, dword [esp + 0x20]
xor edx, ecx
add esi, dword [esp + 0xfc]
add edx, esi
mov ecx, edi
rol ecx, 0xa
lea esi, [ebx - 0xbf1ca7b]
add esi, edx
mov ebx, dword [esp + 0x18]
add dword [esp + 0x10], esi
mov edx, edi
ror edx, 0xd
xor edx, ecx
mov ecx, edi
ror ecx, 2
xor edx, ecx
mov ecx, dword [esp + 0x30]
mov ebp, ecx
add edx, esi
and ecx, edi
or ebp, edi
and ebp, ebx
or ebp, ecx
add ebp, edx
mov edx, dword [esp + 0x10]
mov esi, edx
mov dword [esp + 0x1c], ebp
mov ecx, edx
ror esi, 0xb
rol ecx, 7
or edi, ebp
xor esi, ecx
and edi, dword [esp + 0x30]
mov ecx, edx
not edx
and edx, dword [esp + 0x2c]
ror ecx, 6
xor esi, ecx
mov ecx, dword [esp + 0x20]
and ecx, dword [esp + 0x10]
add esi, dword [esp + 0x100]
xor edx, ecx
add edx, esi
mov ecx, ebp
mov esi, dword [esp + 0x24]
add esi, 0x106aa070
rol ecx, 0xa
add esi, edx
mov edx, ebp
ror edx, 0xd
add ebx, esi
xor edx, ecx
mov dword [esp + 0x18], ebx
mov ecx, ebp
ror ecx, 2
xor edx, ecx
mov ecx, dword [esp + 0x28]
and ecx, ebp
add edx, esi
or edi, ecx
add edi, edx
mov dword [esp + 0x38], edi
cmp eax, 0x38
jge 0x403ec7
mov ebp, 0x38
lea ebx, [esp + eax*4 + 0x3c]
sub ebp, eax
add eax, ebp
mov dword [esp + 0x34], eax
mov edx, dword [ebx - 0x34]
lea ebx, [ebx + 4]
mov esi, dword [ebx - 4]
mov edi, edx
mov ecx, edx
rol edi, 0xe
ror ecx, 7
xor edi, ecx
shr edx, 3
xor edi, edx
mov ecx, esi
mov edx, esi
rol ecx, 0xd
rol edx, 0xf
xor edx, ecx
shr esi, 0xa
xor edx, esi
add edi, edx
add edi, dword [ebx - 0x3c]
add edi, dword [ebx - 0x18]
mov dword [ebx + 4], edi
sub ebp, 1
jne 0x403e80
mov edi, dword [esp + 0x38]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov esi, ebx
mov eax, dword [esp + 0x30]
ror esi, 0xb
mov ecx, ebx
rol ecx, 7
mov edx, ebx
xor esi, ecx
not edx
and edx, dword [esp + 0x20]
mov ecx, ebx
ror ecx, 6
xor esi, ecx
mov ecx, dword [esp + 0x10]
add esi, dword [esp + 0x104]
and ecx, ebx
xor edx, ecx
mov ebx, ebp
add edx, esi
mov ecx, edi
mov esi, dword [esp + 0x2c]
or ebx, edi
and ebx, dword [esp + 0x28]
add esi, 0x19a4c116
add esi, edx
rol ecx, 0xa
add eax, esi
mov edx, edi
ror edx, 0xd
xor edx, ecx
mov ecx, edi
ror ecx, 2
xor edx, ecx
mov ecx, ebp
add edx, esi
and ecx, edi
or ebx, ecx
mov esi, eax
add ebx, edx
ror esi, 0xb
mov ecx, eax
mov edx, eax
rol ecx, 7
not edx
and edx, dword [esp + 0x10]
xor esi, ecx
mov ecx, eax
mov ebp, ebx
ror ecx, 6
or ebp, edi
xor esi, ecx
and ebp, dword [esp + 0x1c]
add esi, dword [esp + 0x108]
mov ecx, dword [esp + 0x18]
and ecx, eax
xor edx, ecx
mov ecx, ebx
add edx, esi
rol ecx, 0xa
mov esi, dword [esp + 0x20]
add esi, 0x1e376c08
add esi, edx
mov edx, ebx
add dword [esp + 0x28], esi
ror edx, 0xd
xor edx, ecx
mov ecx, ebx
ror ecx, 2
xor edx, ecx
mov ecx, ebx
and ecx, edi
add edx, esi
or ebp, ecx
add ebp, edx
mov edx, dword [esp + 0x28]
mov esi, edx
mov ecx, edx
rol ecx, 7
ror esi, 0xb
xor esi, ecx
mov ecx, edx
ror ecx, 6
xor esi, ecx
not edx
and edx, dword [esp + 0x18]
mov ecx, eax
and ecx, dword [esp + 0x28]
xor edx, ecx
add esi, dword [esp + 0x10c]
add edx, esi
mov ecx, ebp
mov esi, dword [esp + 0x10]
rol ecx, 0xa
add esi, 0x2748774c
add esi, edx
mov edx, ebp
add dword [esp + 0x1c], esi
ror edx, 0xd
xor edx, ecx
mov ecx, ebp
ror ecx, 2
xor edx, ecx
mov ecx, ebx
or ecx, ebp
add edx, esi
and ecx, edi
mov dword [esp + 0x14], ecx
mov ecx, ebx
and ecx, ebp
or dword [esp + 0x14], ecx
add dword [esp + 0x14], edx
mov edx, dword [esp + 0x1c]
mov esi, edx
mov ecx, edx
ror esi, 0xb
rol ecx, 7
xor esi, ecx
mov ecx, edx
ror ecx, 6
not edx
xor esi, ecx
and edx, eax
add esi, dword [esp + 0x110]
mov ecx, dword [esp + 0x28]
and ecx, dword [esp + 0x1c]
xor edx, ecx
mov ecx, dword [esp + 0x14]
add edx, esi
mov esi, dword [esp + 0x18]
add esi, 0x34b0bcb5
add esi, edx
mov edx, ecx
rol ecx, 0xa
add edi, esi
ror edx, 0xd
xor edx, ecx
mov dword [esp + 0x38], edi
mov ecx, dword [esp + 0x14]
ror ecx, 2
xor edx, ecx
mov ecx, ebp
or ecx, dword [esp + 0x14]
add edx, esi
and ecx, ebx
mov esi, edi
mov dword [esp + 0x10], ecx
mov ecx, ebp
and ecx, dword [esp + 0x14]
or dword [esp + 0x10], ecx
mov ecx, edi
add dword [esp + 0x10], edx
mov edx, edi
rol ecx, 7
not edx
and edx, dword [esp + 0x28]
ror esi, 0xb
xor esi, ecx
mov ecx, edi
ror ecx, 6
xor esi, ecx
mov ecx, dword [esp + 0x1c]
and ecx, edi
xor edx, ecx
add esi, dword [esp + 0x114]
add edx, esi
mov ecx, dword [esp + 0x10]
lea esi, [eax + 0x391c0cb3]
add esi, edx
mov edx, ecx
rol ecx, 0xa
add ebx, esi
ror edx, 0xd
xor edx, ecx
mov dword [esp + 0x30], ebx
mov ecx, dword [esp + 0x10]
ror ecx, 2
xor edx, ecx
mov ecx, dword [esp + 0x14]
add edx, esi
mov eax, ecx
and ecx, dword [esp + 0x10]
mov esi, ebx
or eax, dword [esp + 0x10]
ror esi, 0xb
and eax, ebp
or eax, ecx
mov ecx, ebx
rol ecx, 7
xor esi, ecx
mov dword [esp + 0x18], eax
add dword [esp + 0x18], edx
mov ecx, ebx
ror ecx, 6
mov edx, ebx
xor esi, ecx
not edx
and edx, dword [esp + 0x1c]
mov ecx, ebx
add esi, dword [esp + 0x118]
and ecx, edi
xor edx, ecx
mov ecx, dword [esp + 0x18]
add edx, esi
mov esi, dword [esp + 0x28]
add esi, 0x4ed8aa4a
add esi, edx
mov edx, ecx
rol ecx, 0xa
add ebp, esi
ror edx, 0xd
xor edx, ecx
mov ecx, dword [esp + 0x18]
ror ecx, 2
xor edx, ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x24], ecx
add edx, esi
or ecx, dword [esp + 0x18]
mov esi, ebp
and ecx, dword [esp + 0x14]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x10]
and ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
or eax, ecx
ror esi, 0xb
mov ecx, ebp
add eax, edx
rol ecx, 7
mov edx, ebp
xor esi, ecx
mov dword [esp + 0x24], eax
mov ecx, ebp
not edx
ror ecx, 6
and edx, edi
xor esi, ecx
mov ecx, ebx
add esi, dword [esp + 0x11c]
and ecx, ebp
xor edx, ecx
add edx, esi
mov esi, dword [esp + 0x1c]
add esi, 0x5b9cca4f
add esi, edx
mov ecx, eax
add dword [esp + 0x14], esi
mov edx, eax
rol ecx, 0xa
ror edx, 0xd
xor edx, ecx
mov ecx, eax
ror ecx, 2
xor edx, ecx
mov ecx, dword [esp + 0x18]
add edx, esi
mov edi, ecx
and ecx, eax
or edi, eax
and edi, dword [esp + 0x10]
or edi, ecx
mov dword [esp + 0x20], edi
add dword [esp + 0x20], edx
mov edx, dword [esp + 0x14]
mov esi, edx
mov edi, dword [esp + 0x38]
mov ecx, edx
rol ecx, 7
add edi, 0x682e6ff3
ror esi, 0xb
xor esi, ecx
mov ecx, edx
ror ecx, 6
not edx
xor esi, ecx
and edx, ebx
add esi, dword [esp + 0x120]
mov ecx, ebp
and ecx, dword [esp + 0x14]
xor edx, ecx
add edx, esi
add edi, edx
mov edx, dword [esp + 0x20]
add dword [esp + 0x10], edi
mov esi, edx
mov ecx, edx
ror esi, 0xd
rol ecx, 0xa
xor esi, ecx
mov ecx, edx
mov edx, eax
ror ecx, 2
or edx, dword [esp + 0x20]
xor esi, ecx
and eax, dword [esp + 0x20]
add esi, edi
and edx, dword [esp + 0x18]
or eax, edx
add eax, esi
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x34]
cmp eax, 0x40
jge 0x404270
mov ebx, 0x40
lea edi, [esp + eax*4 + 0x3c]
sub ebx, eax
mov ecx, dword [edi - 0x34]
lea edi, [edi + 4]
mov edx, dword [edi - 4]
mov esi, ecx
mov eax, ecx
rol esi, 0xe
ror eax, 7
xor esi, eax
shr ecx, 3
xor esi, ecx
mov eax, edx
mov ecx, edx
rol eax, 0xd
rol ecx, 0xf
xor ecx, eax
shr edx, 0xa
xor ecx, edx
add esi, ecx
add esi, dword [edi - 0x3c]
add esi, dword [edi - 0x18]
mov dword [edi + 4], esi
sub ebx, 1
jne 0x404231
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x10]
mov edx, esi
mov edi, dword [esp + 0x14]
mov eax, esi
rol eax, 7
mov ecx, esi
ror edx, 0xb
not ecx
xor edx, eax
and ecx, ebp
mov eax, esi
ror eax, 6
xor edx, eax
mov eax, edi
and eax, esi
add edx, 0x748f82ee
add edx, dword [esp + 0x124]
xor ecx, eax
mov esi, dword [esp + 0x2c]
add edx, ecx
mov ecx, esi
mov eax, esi
rol eax, 0xa
add edx, ebx
mov ebx, dword [esp + 0x18]
ror ecx, 0xd
add ebx, edx
xor ecx, eax
mov dword [esp + 0x18], ebx
mov eax, esi
ror eax, 2
xor ecx, eax
mov eax, dword [esp + 0x20]
mov esi, eax
add ecx, edx
and eax, dword [esp + 0x2c]
mov edx, ebx
or esi, dword [esp + 0x2c]
and esi, dword [esp + 0x24]
or esi, eax
ror edx, 0xb
add esi, ecx
mov eax, ebx
rol eax, 7
mov ecx, ebx
xor edx, eax
mov dword [esp + 0x28], esi
not ecx
mov eax, ebx
ror eax, 6
and ecx, edi
xor edx, eax
mov eax, dword [esp + 0x10]
add edx, dword [esp + 0x128]
and eax, ebx
xor ecx, eax
mov eax, esi
add ecx, edx
rol eax, 0xa
lea edx, [ebp + 0x78a5636f]
mov ebp, esi
or ebp, dword [esp + 0x2c]
add edx, ecx
and ebp, dword [esp + 0x20]
mov ecx, esi
add dword [esp + 0x24], edx
ror ecx, 0xd
xor ecx, eax
mov eax, esi
ror eax, 2
xor ecx, eax
mov eax, esi
and eax, dword [esp + 0x2c]
add ecx, edx
or ebp, eax
add ebp, ecx
mov ecx, dword [esp + 0x24]
mov edx, ecx
mov dword [esp + 0x14], ebp
ror edx, 0xb
mov eax, ecx
rol eax, 7
xor edx, eax
mov eax, ecx
ror eax, 6
not ecx
and ecx, dword [esp + 0x10]
xor edx, eax
add edx, dword [esp + 0x12c]
mov eax, ebx
and eax, dword [esp + 0x24]
mov ebx, esi
xor ecx, eax
or ebx, ebp
add ecx, edx
and ebx, dword [esp + 0x2c]
lea edx, [edi - 0x7b3787ec]
mov eax, ebp
add edx, ecx
mov edi, dword [esp + 0x20]
rol eax, 0xa
add edi, edx
mov ecx, ebp
mov dword [esp + 0x20], edi
ror ecx, 0xd
xor ecx, eax
mov eax, ebp
ror eax, 2
xor ecx, eax
mov eax, esi
and eax, ebp
add ecx, edx
or ebx, eax
mov esi, edi
add ebx, ecx
mov eax, edi
rol eax, 7
mov ecx, edi
ror ecx, 0xb
not esi
and esi, dword [esp + 0x18]
xor ecx, eax
mov eax, edi
mov dword [esp + 0x34], ebx
ror eax, 6
mov edx, ebx
xor ecx, eax
ror edx, 0xd
mov eax, dword [esp + 0x24]
add ecx, dword [esp + 0x130]
and eax, edi
mov edi, dword [esp + 0x2c]
xor esi, eax
mov eax, ebx
add esi, ecx
add esi, dword [esp + 0x10]
mov ecx, ebp
rol eax, 0xa
or ecx, ebx
and ecx, dword [esp + 0x28]
xor edx, eax
mov eax, ebx
add edi, 0x8cc70208
ror eax, 2
add edi, esi
xor edx, eax
mov eax, ebp
and eax, ebx
or ecx, eax
mov eax, edi
rol eax, 7
add ecx, 0x8cc70208
lea ebx, [esi + edx]
mov edx, edi
ror edx, 0xb
add ebx, ecx
xor edx, eax
mov dword [esp + 0x38], ebx
mov eax, edi
mov ecx, edi
ror eax, 6
xor edx, eax
add edx, dword [esp + 0x134]
not ecx
and ecx, dword [esp + 0x24]
mov eax, edi
and eax, dword [esp + 0x20]
mov ebp, ebx
xor ecx, eax
or ebp, dword [esp + 0x34]
add ecx, edx
and ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, ebx
rol eax, 0xa
add edx, 0x90befffa
add edx, ecx
mov ecx, ebx
add dword [esp + 0x28], edx
ror ecx, 0xd
xor ecx, eax
mov eax, ebx
ror eax, 2
xor ecx, eax
mov eax, ebx
and eax, dword [esp + 0x34]
add ecx, edx
or ebp, eax
add ebp, ecx
mov ecx, dword [esp + 0x28]
mov edx, ecx
mov eax, ecx
rol eax, 7
or ebx, ebp
ror edx, 0xb
xor edx, eax
and ebx, dword [esp + 0x34]
mov eax, ecx
not ecx
and ecx, dword [esp + 0x20]
ror eax, 6
xor edx, eax
mov eax, edi
and eax, dword [esp + 0x28]
add edx, dword [esp + 0x138]
xor ecx, eax
add ecx, edx
mov eax, ebp
mov edx, dword [esp + 0x24]
add edx, 0xa4506ceb
rol eax, 0xa
add edx, ecx
mov ecx, ebp
add dword [esp + 0x14], edx
ror ecx, 0xd
xor ecx, eax
mov eax, ebp
ror eax, 2
xor ecx, eax
mov eax, dword [esp + 0x38]
add ecx, edx
and eax, ebp
or ebx, eax
add ebx, ecx
mov ecx, dword [esp + 0x14]
mov edx, ecx
mov eax, ecx
ror edx, 0xb
rol eax, 7
xor edx, eax
mov eax, ecx
ror eax, 6
not ecx
xor edx, eax
and ecx, edi
mov eax, dword [esp + 0x28]
and eax, dword [esp + 0x14]
add edx, dword [esp + 0x13c]
xor ecx, eax
add ecx, edx
mov edx, dword [esp + 0x20]
add edx, 0xbef9a3f7
add edx, ecx
add dword [esp + 0x34], edx
mov ecx, ebx
ror ecx, 0xd
mov eax, ebx
rol eax, 0xa
mov edi, ebp
xor ecx, eax
add esi, dword [esp + 0x2c]
mov eax, ebx
or edi, ebx
and edi, dword [esp + 0x38]
ror eax, 2
xor ecx, eax
mov eax, ebp
and eax, ebx
add ecx, edx
or edi, eax
add edi, ecx
mov ecx, dword [esp + 0x34]
mov edx, ecx
mov eax, ecx
rol eax, 7
ror edx, 0xb
xor edx, eax
mov eax, ecx
ror eax, 6
not ecx
and ecx, dword [esp + 0x28]
xor edx, eax
mov eax, dword [esp + 0x14]
and eax, dword [esp + 0x34]
add edx, dword [esp + 0x140]
xor ecx, eax
add ecx, 0x8cc70208
mov eax, edi
rol eax, 0xa
add ecx, edx
mov edx, edi
add esi, ecx
ror edx, 0xd
mov ecx, ebx
xor edx, eax
or ecx, edi
mov eax, edi
and ecx, ebp
ror eax, 2
xor edx, eax
mov eax, ebx
add edx, dword [esp + 0x3c]
and eax, edi
or eax, ecx
mov ecx, dword [esp + 0x40]
add eax, 0xc67178f2
add eax, edx
add eax, esi
add dword [ecx + 4], edi
add dword [ecx + 0xc], ebp
add dword [ecx + 8], ebx
mov dword [ecx], eax
mov eax, dword [esp + 0x38]
add eax, 0xc67178f2
add eax, dword [ecx + 0x10]
add eax, esi
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x34]
add dword [ecx + 0x14], eax
mov eax, dword [esp + 0x14]
add dword [ecx + 0x18], eax
mov eax, dword [esp + 0x28]
add dword [ecx + 0x1c], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x134
ret 4