Function at 0x1010cf20
Capabilities:
Hash data using sha1

Disassembly:
sub esp, 0x5c
cmp byte [esp + 0x64], 0
mov eax, dword [esp + 0x60]
mov dword [esp], edx
mov dword [esp + 0x58], ecx
je 0x1010cf3a
mov dword [esp], eax
jmp 0x1010cf5a
movups xmm0, xmmword [eax]
movups xmmword [edx], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [edx + 0x10], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [edx + 0x20], xmm0
movups xmm0, xmmword [eax + 0x30]
mov eax, edx
movups xmmword [edx + 0x30], xmm0
mov eax, dword [eax]
mov edx, dword [ecx + 0x10]
bswap eax
mov dword [esp + 0x30], eax
add edx, 0x5a827999
push ebx
mov ebx, dword [ecx]
push ebp
mov ebp, dword [ecx + 8]
push esi
mov esi, dword [ecx + 4]
push edi
mov edi, dword [ecx + 0xc]
mov eax, edi
xor eax, ebp
mov ecx, ebx
and eax, esi
ror ecx, 0x1b
add ecx, dword [esp + 0x40]
xor eax, edi
add eax, ecx
add edi, 0x5a827999
mov ecx, dword [esp + 0x10]
add edx, eax
mov eax, esi
shr esi, 2
shl eax, 0x1e
or eax, esi
mov esi, dword [ecx + 4]
mov ecx, edx
mov dword [esp + 0x74], eax
mov eax, ebp
xor eax, dword [esp + 0x74]
and eax, ebx
ror ecx, 0x1b
xor eax, ebp
bswap esi
mov dword [esp + 0x2c], esi
add esi, ecx
add esi, eax
mov eax, dword [esp + 0x10]
add esi, edi
mov edi, ebx
shl edi, 0x1e
mov ecx, esi
shr ebx, 2
mov eax, dword [eax + 8]
or edi, ebx
mov ebx, dword [esp + 0x74]
bswap eax
mov dword [esp + 0x54], eax
mov eax, ebx
xor eax, edi
ror ecx, 0x1b
add ecx, dword [esp + 0x54]
and eax, edx
xor eax, ebx
mov dword [esp + 0x64], edi
add eax, ecx
lea edi, [ebp + 0x5a827999]
mov ecx, dword [esp + 0x10]
add edi, eax
mov ebp, dword [esp + 0x64]
mov eax, edx
shl eax, 0x1e
add ebx, 0x5a827999
shr edx, 2
or eax, edx
mov edx, dword [ecx + 0xc]
mov dword [esp + 0x60], eax
mov ecx, edi
xor eax, ebp
ror ecx, 0x1b
bswap edx
and eax, esi
mov dword [esp + 0x38], edx
xor eax, ebp
add edx, ecx
add edx, eax
mov eax, esi
add edx, ebx
shl eax, 0x1e
mov ecx, edx
mov ebx, dword [esp + 0x60]
shr esi, 2
or eax, esi
ror ecx, 0x1b
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x10]
mov eax, ebx
xor eax, dword [esp + 0x74]
and eax, edi
xor eax, ebx
add ebx, 0x5a827999
bswap esi
add ecx, esi
mov dword [esp + 0x34], esi
add eax, ecx
lea esi, [ebp + 0x5a827999]
add esi, eax
mov ebp, dword [esp + 0x74]
mov eax, edi
mov ecx, esi
shl eax, 0x1e
shr edi, 2
or eax, edi
ror ecx, 0x1b
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x14]
mov eax, ebp
xor eax, dword [esp + 0x5c]
and eax, edx
xor eax, ebp
bswap edi
mov dword [esp + 0x30], edi
add edi, ecx
add edi, eax
mov eax, edx
shl eax, 0x1e
add edi, ebx
mov ebx, dword [esp + 0x5c]
mov ecx, edi
shr edx, 2
or eax, edx
ror ecx, 0x1b
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x18]
mov eax, ebx
xor eax, dword [esp + 0x74]
and eax, esi
xor eax, ebx
add ebx, 0x5a827999
bswap edx
add ecx, edx
mov dword [esp + 0x60], edx
add eax, ecx
lea edx, [ebp + 0x5a827999]
mov ebp, dword [esp + 0x74]
add edx, eax
mov eax, esi
mov ecx, edx
shl eax, 0x1e
shr esi, 2
or eax, esi
ror ecx, 0x1b
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x1c]
mov eax, ebp
xor eax, dword [esp + 0x5c]
bswap esi
and eax, edi
mov dword [esp + 0x64], esi
xor eax, ebp
add esi, ecx
add esi, eax
mov eax, edi
add esi, ebx
shl eax, 0x1e
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x5c]
shr edi, 2
or eax, edi
mov edi, dword [ecx + 0x20]
mov ecx, esi
mov dword [esp + 0x58], eax
xor eax, ebx
and eax, edx
ror ecx, 0x1b
xor eax, ebx
add ebx, 0x5a827999
bswap edi
add ecx, edi
mov dword [esp + 0x50], edi
add eax, ecx
lea edi, [ebp + 0x5a827999]
add edi, eax
mov ebp, dword [esp + 0x58]
mov eax, edx
mov ecx, edi
shl eax, 0x1e
shr edx, 2
or eax, edx
ror ecx, 0x1b
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x24]
mov eax, ebp
xor eax, dword [esp + 0x74]
and eax, esi
xor eax, ebp
bswap edx
mov dword [esp + 0x4c], edx
add edx, ecx
add edx, eax
mov eax, esi
shl eax, 0x1e
add edx, ebx
mov ebx, dword [esp + 0x74]
mov ecx, edx
shr esi, 2
or eax, esi
ror ecx, 0x1b
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x28]
mov eax, ebx
xor eax, dword [esp + 0x5c]
and eax, edi
xor eax, ebx
add ebx, 0x5a827999
bswap esi
add ecx, esi
mov dword [esp + 0x48], esi
add eax, ecx
lea esi, [ebp + 0x5a827999]
mov ebp, dword [esp + 0x5c]
add esi, eax
mov eax, edi
mov ecx, esi
shl eax, 0x1e
shr edi, 2
or eax, edi
ror ecx, 0x1b
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x2c]
mov eax, ebp
xor eax, dword [esp + 0x74]
bswap edi
and eax, edx
mov dword [esp + 0x58], edi
xor eax, ebp
add edi, ecx
add edi, eax
mov eax, edx
shl eax, 0x1e
add edi, ebx
shr edx, 2
or eax, edx
mov dword [esp + 0x44], eax
mov ecx, edi
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x74]
ror ecx, 0x1b
mov edx, dword [eax + 0x30]
mov eax, ebx
xor eax, dword [esp + 0x44]
and eax, esi
xor eax, ebx
add ebx, 0x5a827999
bswap edx
add ecx, edx
mov dword [esp + 0x5c], edx
add eax, ecx
lea edx, [ebp + 0x5a827999]
add edx, eax
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x44]
mov eax, esi
shl eax, 0x1e
shr esi, 2
or eax, esi
mov esi, dword [ecx + 0x34]
mov dword [esp + 0x3c], eax
mov ecx, edx
xor eax, ebp
ror ecx, 0x1b
and eax, edi
xor eax, ebp
bswap esi
mov dword [esp + 0x18], esi
add esi, ecx
add esi, eax
mov eax, edi
shl eax, 0x1e
add esi, ebx
mov ebx, dword [esp + 0x3c]
mov ecx, esi
shr edi, 2
or eax, edi
ror ecx, 0x1b
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x38]
mov eax, ebx
xor eax, dword [esp + 0x74]
and eax, edx
xor eax, ebx
add ebx, 0x5a827999
bswap edi
add ecx, edi
mov dword [esp + 0x1c], edi
add eax, ecx
lea edi, [ebp + 0x5a827999]
mov ebp, dword [esp + 0x74]
add edi, eax
mov eax, edx
mov ecx, edi
shl eax, 0x1e
shr edx, 2
or eax, edx
ror ecx, 0x1b
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x3c]
mov eax, ebp
xor eax, dword [esp + 0x44]
and eax, esi
bswap edx
xor eax, ebp
mov dword [esp + 0x20], edx
add edx, ecx
add edx, eax
mov eax, esi
shl eax, 0x1e
add edx, ebx
shr esi, 2
or eax, esi
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x40]
xor eax, dword [esp + 0x54]
mov ecx, edx
xor eax, dword [esp + 0x50]
xor eax, dword [esp + 0x18]
mov esi, eax
mov ebx, dword [esp + 0x44]
add eax, eax
shr esi, 0x1f
or esi, eax
ror ecx, 0x1b
add ecx, esi
mov dword [esp + 0x24], esi
mov eax, ebx
lea esi, [ebp + 0x5a827999]
xor eax, dword [esp + 0x3c]
mov ebp, edi
and eax, edi
shl ebp, 0x1e
xor eax, ebx
shr edi, 2
add eax, ecx
or ebp, edi
add esi, eax
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x2c]
add ebx, 0x5a827999
xor eax, dword [esp + 0x38]
xor eax, dword [esp + 0x4c]
xor eax, dword [esp + 0x1c]
mov ecx, eax
mov dword [esp + 0x44], ebp
add eax, eax
shr ecx, 0x1f
or ecx, eax
mov eax, edi
xor eax, ebp
mov dword [esp + 0x74], ecx
and eax, edx
mov ecx, esi
xor eax, edi
ror ecx, 0x1b
add ecx, dword [esp + 0x74]
mov ebp, edx
add eax, ecx
shr edx, 2
add ebx, eax
shl ebp, 0x1e
mov eax, dword [esp + 0x20]
or ebp, edx
xor eax, dword [esp + 0x54]
add edi, 0x5a827999
xor eax, dword [esp + 0x34]
mov edx, esi
xor eax, dword [esp + 0x48]
mov ecx, eax
shl edx, 0x1e
add eax, eax
shr ecx, 0x1f
or ecx, eax
mov dword [esp + 0x40], ebp
mov dword [esp + 0x14], ecx
mov eax, ebp
xor eax, dword [esp + 0x44]
mov ecx, ebx
and eax, esi
ror ecx, 0x1b
xor eax, dword [esp + 0x44]
add ecx, dword [esp + 0x14]
add eax, ecx
shr esi, 2
add edi, eax
or edx, esi
mov eax, dword [esp + 0x24]
xor eax, dword [esp + 0x38]
xor eax, dword [esp + 0x30]
xor eax, dword [esp + 0x58]
mov esi, eax
mov dword [esp + 0x54], edx
shr esi, 0x1f
add eax, eax
or esi, eax
mov eax, dword [esp + 0x60]
xor edx, ebp
xor eax, dword [esp + 0x5c]
and edx, ebx
xor eax, dword [esp + 0x34]
mov ecx, edi
xor eax, dword [esp + 0x74]
xor edx, ebp
ror ecx, 0x1b
mov ebp, ebx
add ecx, esi
shr ebx, 2
add edx, ecx
shl ebp, 0x1e
mov ecx, dword [esp + 0x44]
or ebp, ebx
mov ebx, eax
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x54]
add eax, eax
add ecx, 0x5a827999
shr ebx, 0x1f
or ebx, eax
add edx, ecx
mov eax, dword [esp + 0x64]
mov ecx, edx
xor eax, dword [esp + 0x18]
xor esi, ebp
xor eax, dword [esp + 0x30]
xor esi, edi
xor eax, dword [esp + 0x14]
ror ecx, 0x1b
add ecx, ebx
mov dword [esp + 0x2c], ebx
add esi, ecx
mov ebx, edi
mov ecx, dword [esp + 0x40]
shr edi, 2
add ecx, 0x6ed9eba1
add esi, ecx
shl ebx, 0x1e
or ebx, edi
mov ecx, esi
mov edi, eax
ror ecx, 0x1b
add eax, eax
shr edi, 0x1f
or edi, eax
mov eax, ebp
xor eax, ebx
mov dword [esp + 0x30], edi
xor eax, edx
add edi, ecx
mov ecx, dword [esp + 0x54]
add edi, eax
mov eax, edx
add ecx, 0x6ed9eba1
shl eax, 0x1e
add edi, ecx
shr edx, 2
mov ecx, edi
or eax, edx
ror ecx, 0x1b
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x60]
xor eax, dword [esp + 0x50]
xor eax, dword [esp + 0x1c]
xor eax, dword [esp + 0x28]
mov edx, eax
add eax, eax
shr edx, 0x1f
or edx, eax
mov eax, esi
xor eax, ebx
mov dword [esp + 0x34], edx
xor eax, dword [esp + 0x54]
add ecx, edx
lea edx, [ebp + 0x6ed9eba1]
add eax, ecx
add edx, eax
mov ebp, esi
mov eax, dword [esp + 0x20]
mov ecx, edx
xor eax, dword [esp + 0x64]
add ebx, 0x6ed9eba1
xor eax, dword [esp + 0x4c]
xor eax, dword [esp + 0x2c]
shr esi, 2
shl ebp, 0x1e
or ebp, esi
ror ecx, 0x1b
mov esi, eax
mov dword [esp + 0x60], ebp
add eax, eax
shr esi, 0x1f
or esi, eax
mov eax, ebp
xor eax, edi
mov ebp, dword [esp + 0x54]
xor eax, ebp
mov dword [esp + 0x38], esi
add esi, ecx
add esi, eax
mov eax, edi
shl eax, 0x1e
add esi, ebx
mov ebx, dword [esp + 0x60]
mov ecx, esi
shr edi, 2
or eax, edi
ror ecx, 0x1b
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x24]
xor eax, dword [esp + 0x50]
xor eax, dword [esp + 0x48]
xor eax, dword [esp + 0x30]
mov edi, eax
add eax, eax
shr edi, 0x1f
or edi, eax
mov eax, ebx
xor eax, dword [esp + 0x64]
add ecx, edi
xor eax, edx
mov dword [esp + 0x3c], edi
add eax, ecx
lea edi, [ebp + 0x6ed9eba1]
add edi, eax
mov ebp, dword [esp + 0x64]
mov eax, edx
mov ecx, edi
shl eax, 0x1e
add ebx, 0x6ed9eba1
shr edx, 2
or eax, edx
ror ecx, 0x1b
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x4c]
xor eax, dword [esp + 0x34]
xor eax, dword [esp + 0x58]
xor eax, dword [esp + 0x74]
mov edx, eax
add eax, eax
shr edx, 0x1f
or edx, eax
mov eax, ebp
xor eax, dword [esp + 0x60]
xor eax, esi
mov dword [esp + 0x40], edx
add edx, ecx
add edx, eax
mov eax, esi
shl eax, 0x1e
add edx, ebx
shr esi, 2
or eax, esi
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x5c]
xor eax, dword [esp + 0x48]
xor eax, dword [esp + 0x38]
xor eax, dword [esp + 0x14]
mov esi, eax
add eax, eax
mov ebx, dword [esp + 0x60]
shr esi, 0x1f
mov ecx, edx
or esi, eax
ror ecx, 0x1b
add ecx, esi
mov dword [esp + 0x44], esi
mov eax, ebx
lea esi, [ebp + 0x6ed9eba1]
xor eax, dword [esp + 0x64]
add ebx, 0x6ed9eba1
xor eax, edi
mov ebp, dword [esp + 0x64]
add eax, ecx
add esi, eax
mov eax, edi
shl eax, 0x1e
mov ecx, esi
shr edi, 2
or eax, edi
ror ecx, 0x1b
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x18]
xor eax, dword [esp + 0x3c]
xor eax, dword [esp + 0x58]
xor eax, dword [esp + 0x28]
mov edi, eax
add eax, eax
shr edi, 0x1f
or edi, eax
mov eax, edx
xor eax, ebp
mov dword [esp + 0x48], edi
xor eax, dword [esp + 0x60]
add edi, ecx
add edi, eax
mov eax, dword [esp + 0x5c]
xor eax, dword [esp + 0x40]
add edi, ebx
xor eax, dword [esp + 0x1c]
mov ebx, edx
xor eax, dword [esp + 0x2c]
mov ecx, edi
shr edx, 2
shl ebx, 0x1e
or ebx, edx
ror ecx, 0x1b
mov edx, eax
mov dword [esp + 0x58], ebx
add eax, eax
shr edx, 0x1f
or edx, eax
mov eax, ebx
mov ebx, dword [esp + 0x60]
xor eax, esi
xor eax, ebx
mov dword [esp + 0x4c], edx
add ecx, edx
lea edx, [ebp + 0x6ed9eba1]
add eax, ecx
mov ebp, dword [esp + 0x58]
add edx, eax
mov eax, esi
shl eax, 0x1e
mov ecx, edx
shr esi, 2
or eax, esi
ror ecx, 0x1b
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x20]
xor eax, dword [esp + 0x18]
xor eax, dword [esp + 0x44]
xor eax, dword [esp + 0x30]
mov esi, eax
add eax, eax
shr esi, 0x1f
or esi, eax
mov eax, ebp
xor eax, dword [esp + 0x64]
mov dword [esp + 0x18], esi
xor eax, edi
add esi, ecx
add esi, eax
add ebx, 0x6ed9eba1
mov eax, edi
add esi, ebx
shl eax, 0x1e
mov ecx, esi
mov ebx, dword [esp + 0x64]
shr edi, 2
or eax, edi
ror ecx, 0x1b
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x24]
xor eax, dword [esp + 0x48]
xor eax, dword [esp + 0x34]
xor eax, dword [esp + 0x1c]
mov edi, eax
add eax, eax
shr edi, 0x1f
or edi, eax
mov eax, ebx
xor eax, dword [esp + 0x60]
add ecx, edi
xor eax, edx
mov dword [esp + 0x1c], edi
add eax, ecx
lea edi, [ebp + 0x6ed9eba1]
add edi, eax
mov ebp, dword [esp + 0x60]
mov eax, edx
mov ecx, edi
shl eax, 0x1e
add ebx, 0x6ed9eba1
shr edx, 2
or eax, edx
ror ecx, 0x1b
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x20]
xor eax, dword [esp + 0x4c]
xor eax, dword [esp + 0x38]
xor eax, dword [esp + 0x74]
mov edx, eax
add eax, eax
shr edx, 0x1f
or edx, eax
mov eax, ebp
xor eax, dword [esp + 0x64]
xor eax, esi
mov dword [esp + 0x20], edx
add edx, ecx
add edx, eax
mov eax, esi
shl eax, 0x1e
add edx, ebx
mov ebx, dword [esp + 0x64]
mov ecx, edx
shr esi, 2
or eax, esi
ror ecx, 0x1b
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x24]
xor eax, dword [esp + 0x18]
xor eax, dword [esp + 0x3c]
xor eax, dword [esp + 0x14]
mov esi, eax
add eax, eax
shr esi, 0x1f
or esi, eax
mov eax, edi
xor eax, ebx
mov dword [esp + 0x24], esi
xor eax, dword [esp + 0x60]
add ecx, esi
lea esi, [ebp + 0x6ed9eba1]
add eax, ecx
mov ebp, edi
add esi, eax
shl ebp, 0x1e
shr edi, 2
or ebp, edi
mov eax, dword [esp + 0x1c]
mov ecx, esi
xor eax, dword [esp + 0x40]
add ebx, 0x6ed9eba1
xor eax, dword [esp + 0x28]
xor eax, dword [esp + 0x74]
mov edi, eax
ror ecx, 0x1b
add eax, eax
shr edi, 0x1f
or edi, eax
mov dword [esp + 0x64], ebp
mov dword [esp + 0x50], edi
mov eax, ebp
xor eax, edx
mov ebp, dword [esp + 0x60]
xor eax, ebp
add edi, ecx
add edi, eax
mov eax, edx
shl eax, 0x1e
add edi, ebx
mov ebx, dword [esp + 0x64]
mov ecx, edi
shr edx, 2
or eax, edx
ror ecx, 0x1b
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x20]
xor eax, dword [esp + 0x44]
xor eax, dword [esp + 0x2c]
xor eax, dword [esp + 0x14]
mov edx, eax
add eax, eax
shr edx, 0x1f
or edx, eax
mov eax, ebx
xor eax, dword [esp + 0x74]
add ecx, edx
xor eax, esi
mov dword [esp + 0x54], edx
add eax, ecx
lea edx, [ebp + 0x6ed9eba1]
add edx, eax
mov ebp, dword [esp + 0x74]
mov eax, esi
mov ecx, edx
shl eax, 0x1e
add ebx, 0x6ed9eba1
shr esi, 2
or eax, esi
ror ecx, 0x1b
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x24]
xor eax, dword [esp + 0x48]
xor eax, dword [esp + 0x30]
xor eax, dword [esp + 0x28]
mov esi, eax
add eax, eax
shr esi, 0x1f
or esi, eax
mov eax, ebp
xor eax, dword [esp + 0x64]
xor eax, edi
mov dword [esp + 0x28], esi
add esi, ecx
add esi, eax
mov eax, edi
shl eax, 0x1e
add esi, ebx
shr edi, 2
or eax, edi
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x50]
xor eax, dword [esp + 0x4c]
xor eax, dword [esp + 0x34]
xor eax, dword [esp + 0x2c]
mov edi, eax
add eax, eax
shr edi, 0x1f
or edi, eax
mov ebx, dword [esp + 0x64]
mov ecx, esi
ror ecx, 0x1b
mov eax, ebx
xor eax, dword [esp + 0x74]
add ecx, edi
xor eax, edx
mov dword [esp + 0x2c], edi
add eax, ecx
lea edi, [ebp + 0x6ed9eba1]
add edi, eax
mov ebp, dword [esp + 0x74]
mov eax, edx
mov ecx, edi
shl eax, 0x1e
add ebx, 0x6ed9eba1
shr edx, 2
or eax, edx
ror ecx, 0x1b
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x54]
xor eax, dword [esp + 0x18]
xor eax, dword [esp + 0x38]
xor eax, dword [esp + 0x30]
mov edx, eax
add eax, eax
shr edx, 0x1f
or edx, eax
mov eax, esi
xor eax, ebp
mov dword [esp + 0x30], edx
xor eax, dword [esp + 0x64]
add edx, ecx
add edx, eax
mov eax, dword [esp + 0x28]
xor eax, dword [esp + 0x1c]
add edx, ebx
xor eax, dword [esp + 0x3c]
mov ebx, esi
xor eax, dword [esp + 0x34]
mov ecx, edx
shr esi, 2
shl ebx, 0x1e
or ebx, esi
ror ecx, 0x1b
mov esi, eax
mov dword [esp + 0x74], ebx
add eax, eax
shr esi, 0x1f
or esi, eax
mov eax, ebx
mov ebx, dword [esp + 0x64]
xor eax, edi
xor eax, ebx
mov dword [esp + 0x34], esi
add ecx, esi
lea esi, [ebp + 0x6ed9eba1]
add eax, ecx
mov ebp, dword [esp + 0x74]
add esi, eax
mov eax, edi
shl eax, 0x1e
mov ecx, esi
shr edi, 2
or eax, edi
ror ecx, 0x1b
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x2c]
xor eax, dword [esp + 0x20]
xor eax, dword [esp + 0x40]
xor eax, dword [esp + 0x38]
mov edi, eax
add eax, eax
shr edi, 0x1f
or edi, eax
mov eax, ebp
xor eax, dword [esp + 0x5c]
mov dword [esp + 0x38], edi
xor eax, edx
add edi, ecx
add edi, eax
mov eax, dword [esp + 0x30]
add ebx, 0x6ed9eba1
xor eax, dword [esp + 0x24]
add edi, ebx
xor eax, dword [esp + 0x44]
mov ebx, edx
xor eax, dword [esp + 0x3c]
mov ecx, eax
shr edx, 2
shr ecx, 0x1f
add eax, eax
or ecx, eax
shl ebx, 0x1e
mov dword [esp + 0x74], ecx
or ebx, edx
mov eax, dword [esp + 0x34]
mov ecx, ebx
xor eax, dword [esp + 0x50]
or ecx, esi
and ecx, dword [esp + 0x5c]
mov edx, edi
xor eax, dword [esp + 0x48]
xor eax, dword [esp + 0x40]
mov dword [esp + 0x64], ebx
and ebx, esi
or ecx, ebx
ror edx, 0x1b
add ecx, dword [esp + 0x74]
add ecx, ebp
mov ebp, dword [esp + 0x64]
lea ebx, [edx - 0x70e44324]
add ebx, ecx
mov ecx, esi
shl ecx, 0x1e
mov edx, ebx
shr esi, 2
or ecx, esi
ror edx, 0x1b
mov esi, eax
mov dword [esp + 0x58], ecx
add eax, eax
shr esi, 0x1f
or esi, eax
or ecx, edi
mov eax, dword [esp + 0x58]
and ecx, ebp
and eax, edi
mov dword [esp + 0x40], esi
or ecx, eax
add esi, 0x8f1bbcdc
mov eax, edi
add esi, ecx
add esi, dword [esp + 0x5c]
add ebp, 0x8f1bbcdc
shl eax, 0x1e
add esi, edx
shr edi, 2
or eax, edi
mov edi, esi
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x38]
xor eax, dword [esp + 0x54]
xor eax, dword [esp + 0x4c]
xor eax, dword [esp + 0x44]
mov ecx, eax
ror edi, 0x1b
shr ecx, 0x1f
add eax, eax
or ecx, eax
mov eax, ebx
and eax, dword [esp + 0x64]
mov dword [esp + 0x14], ecx
mov ecx, ebx
or ecx, dword [esp + 0x64]
and ecx, dword [esp + 0x58]
or ecx, eax
add ecx, dword [esp + 0x14]
add ecx, ebp
add edi, ecx
mov ecx, ebx
shl ecx, 0x1e
mov eax, dword [esp + 0x74]
mov edx, edi
xor eax, dword [esp + 0x28]
xor eax, dword [esp + 0x18]
xor eax, dword [esp + 0x48]
mov ebp, dword [esp + 0x64]
shr ebx, 2
or ecx, ebx
ror edx, 0x1b
mov dword [esp + 0x5c], ecx
mov ebx, eax
or ecx, esi
shr ebx, 0x1f
add eax, eax
and ecx, ebp
or ebx, eax
mov eax, dword [esp + 0x5c]
and eax, esi
mov dword [esp + 0x48], ebx
or ecx, eax
mov eax, dword [esp + 0x40]
xor eax, dword [esp + 0x2c]
add ecx, ebx
add ecx, dword [esp + 0x58]
lea ebx, [edx - 0x70e44324]
xor eax, dword [esp + 0x1c]
add ebx, ecx
xor eax, dword [esp + 0x4c]
mov ecx, esi
shl ecx, 0x1e
mov edx, ebx
shr esi, 2
or ecx, esi
ror edx, 0x1b
mov dword [esp + 0x64], ecx
mov esi, eax
or ecx, edi
shr esi, 0x1f
and ecx, dword [esp + 0x5c]
add eax, eax
or esi, eax
mov eax, dword [esp + 0x64]
and eax, edi
mov dword [esp + 0x4c], esi
or ecx, eax
mov eax, dword [esp + 0x14]
xor eax, dword [esp + 0x30]
add ecx, esi
xor eax, dword [esp + 0x20]
lea esi, [edx - 0x70e44324]
xor eax, dword [esp + 0x18]
add ecx, ebp
mov ebp, dword [esp + 0x64]
add esi, ecx
mov ecx, edi
mov edx, esi
shl ecx, 0x1e
shr edi, 2
or ecx, edi
ror edx, 0x1b
mov dword [esp + 0x58], ecx
mov edi, eax
add eax, eax
shr edi, 0x1f
or edi, eax
or ecx, ebx
mov eax, dword [esp + 0x58]
and ecx, ebp
and eax, ebx
mov dword [esp + 0x44], edi
or ecx, eax
mov eax, dword [esp + 0x48]
add ecx, edi
lea edi, [edx - 0x70e44324]
add ecx, dword [esp + 0x5c]
add edi, ecx
mov ecx, ebx
shl ecx, 0x1e
shr ebx, 2
or ecx, ebx
mov dword [esp + 0x64], ecx
xor eax, dword [esp + 0x34]
or ecx, esi
xor eax, dword [esp + 0x24]
mov edx, edi
xor eax, dword [esp + 0x1c]
and ecx, dword [esp + 0x58]
mov ebx, eax
add eax, eax
shr ebx, 0x1f
or ebx, eax
ror edx, 0x1b
mov eax, dword [esp + 0x64]
and eax, esi
mov dword [esp + 0x3c], ebx
or ecx, eax
mov eax, dword [esp + 0x4c]
xor eax, dword [esp + 0x38]
add ecx, ebx
xor eax, dword [esp + 0x50]
lea ebx, [edx - 0x70e44324]
xor eax, dword [esp + 0x20]
add ecx, ebp
add ebx, ecx
mov ebp, esi
shr esi, 2
mov ecx, edi
shl ebp, 0x1e
mov edx, ebx
or ebp, esi
ror edx, 0x1b
mov esi, eax
mov dword [esp + 0x5c], ebp
add eax, eax
shr esi, 0x1f
or esi, eax
or ecx, ebp
mov ebp, dword [esp + 0x64]
mov eax, edi
and eax, dword [esp + 0x5c]
and ecx, ebp
or ecx, eax
mov dword [esp + 0x20], esi
mov eax, dword [esp + 0x44]
add ecx, esi
add ecx, dword [esp + 0x58]
lea esi, [edx - 0x70e44324]
xor eax, dword [esp + 0x74]
add esi, ecx
xor eax, dword [esp + 0x54]
mov ecx, edi
xor eax, dword [esp + 0x24]
mov edx, esi
shl ecx, 0x1e
shr edi, 2
or ecx, edi
ror edx, 0x1b
mov edi, eax
mov dword [esp + 0x64], ecx
add eax, eax
shr edi, 0x1f
or edi, eax
or ecx, ebx
and ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x64]
and eax, ebx
mov dword [esp + 0x24], edi
or ecx, eax
mov eax, dword [esp + 0x3c]
xor eax, dword [esp + 0x40]
add ecx, edi
xor eax, dword [esp + 0x28]
lea edi, [edx - 0x70e44324]
add ecx, ebp
add edi, ecx
mov ecx, ebx
shr ebx, 2
shl ecx, 0x1e
or ecx, ebx
xor eax, dword [esp + 0x50]
mov dword [esp + 0x58], ecx
mov ebx, eax
mov ebp, dword [esp + 0x64]
add eax, eax
or ecx, esi
shr ebx, 0x1f
or ebx, eax
and ecx, ebp
mov eax, dword [esp + 0x58]
mov edx, edi
and eax, esi
ror edx, 0x1b
or ecx, eax
mov dword [esp + 0x50], ebx
mov eax, dword [esp + 0x20]
add ecx, ebx
add ecx, dword [esp + 0x5c]
xor eax, dword [esp + 0x14]
lea ebx, [edx - 0x70e44324]
xor eax, dword [esp + 0x2c]
add ebx, ecx
xor eax, dword [esp + 0x54]
mov ecx, esi
shl ecx, 0x1e
mov edx, ebx
shr esi, 2
or ecx, esi
ror edx, 0x1b
mov esi, eax
mov dword [esp + 0x64], ecx
add eax, eax
shr esi, 0x1f
or esi, eax
or ecx, edi
and ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x64]
and eax, edi
mov dword [esp + 0x54], esi
or ecx, eax
mov eax, dword [esp + 0x24]
xor eax, dword [esp + 0x48]
add ecx, esi
xor eax, dword [esp + 0x30]
lea esi, [edx - 0x70e44324]
xor eax, dword [esp + 0x28]
add ecx, ebp
mov ebp, dword [esp + 0x64]
add esi, ecx
mov ecx, edi
mov edx, esi
shr edi, 2
shl ecx, 0x1e
or ecx, edi
ror edx, 0x1b
mov edi, eax
mov dword [esp + 0x5c], ecx
add eax, eax
shr edi, 0x1f
or edi, eax
or ecx, ebx
mov eax, dword [esp + 0x5c]
and ecx, ebp
and eax, ebx
mov dword [esp + 0x28], edi
or ecx, eax
add edi, 0x8f1bbcdc
mov eax, ebx
add edi, ecx
add edi, dword [esp + 0x58]
shl eax, 0x1e
add edi, edx
shr ebx, 2
or eax, ebx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x50]
xor eax, dword [esp + 0x4c]
xor eax, dword [esp + 0x34]
xor eax, dword [esp + 0x2c]
mov ecx, eax
add eax, eax
shr ecx, 0x1f
or ecx, eax
mov dword [esp + 0x18], ecx
mov ecx, esi
mov eax, esi
or ecx, dword [esp + 0x64]
mov ebx, edi
and ecx, dword [esp + 0x5c]
add ebp, 0x8f1bbcdc
and eax, dword [esp + 0x64]
or ecx, eax
ror ebx, 0x1b
add ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x54]
add ecx, ebp
xor eax, dword [esp + 0x44]
add ebx, ecx
xor eax, dword [esp + 0x38]
mov ecx, esi
xor eax, dword [esp + 0x30]
mov edx, ebx
mov ebp, dword [esp + 0x64]
shl ecx, 0x1e
shr esi, 2
or ecx, esi
ror edx, 0x1b
mov dword [esp + 0x58], ecx
mov esi, eax
or ecx, edi
shr esi, 0x1f
add eax, eax
and ecx, ebp
or esi, eax
mov eax, dword [esp + 0x58]
and eax, edi
mov dword [esp + 0x30], esi
or ecx, eax
mov eax, dword [esp + 0x28]
xor eax, dword [esp + 0x3c]
add ecx, esi
add ecx, dword [esp + 0x5c]
lea esi, [edx - 0x70e44324]
xor eax, dword [esp + 0x74]
add esi, ecx
xor eax, dword [esp + 0x34]
mov ecx, edi
shl ecx, 0x1e
mov edx, esi
shr edi, 2
or ecx, edi
ror edx, 0x1b
mov edi, eax
mov dword [esp + 0x64], ecx
or ecx, ebx
shr edi, 0x1f
and ecx, dword [esp + 0x58]
add eax, eax
or edi, eax
mov eax, dword [esp + 0x64]
and eax, ebx
mov dword [esp + 0x34], edi
or ecx, eax
mov eax, dword [esp + 0x18]
xor eax, dword [esp + 0x20]
add ecx, edi
xor eax, dword [esp + 0x40]
lea edi, [edx - 0x70e44324]
xor eax, dword [esp + 0x38]
add ecx, ebp
add edi, ecx
mov ecx, ebx
shr ebx, 2
mov edx, edi
shl ecx, 0x1e
or ecx, ebx
ror edx, 0x1b
mov ebx, eax
mov dword [esp + 0x5c], ecx
shr ebx, 0x1f
add eax, eax
or ebx, eax
or ecx, esi
and ecx, dword [esp + 0x64]
mov dword [esp + 0x38], ebx
mov eax, dword [esp + 0x5c]
mov ebp, edi
and eax, esi
shl ebp, 0x1e
or ecx, eax
mov eax, dword [esp + 0x30]
xor eax, dword [esp + 0x24]
add ecx, ebx
add ecx, dword [esp + 0x58]
lea ebx, [edx - 0x70e44324]
xor eax, dword [esp + 0x14]
add ebx, ecx
xor eax, dword [esp + 0x74]
mov ecx, esi
shl ecx, 0x1e
mov edx, ebx
shr esi, 2
or ecx, esi
ror edx, 0x1b
mov esi, eax
mov dword [esp + 0x58], ecx
or ecx, edi
shr esi, 0x1f
and ecx, dword [esp + 0x5c]
add eax, eax
or esi, eax
mov eax, dword [esp + 0x58]
and eax, edi
mov dword [esp + 0x2c], esi
or ecx, eax
shr edi, 2
mov eax, dword [esp + 0x34]
add ecx, esi
xor eax, dword [esp + 0x50]
lea esi, [edx - 0x70e44324]
add ecx, dword [esp + 0x64]
or ebp, edi
xor eax, dword [esp + 0x48]
add esi, ecx
xor eax, dword [esp + 0x40]
mov ecx, ebx
mov edi, eax
mov dword [esp + 0x64], ebp
add eax, eax
shr edi, 0x1f
or edi, eax
or ecx, ebp
and ecx, dword [esp + 0x58]
mov eax, ebx
and eax, ebp
mov dword [esp + 0x40], edi
or ecx, eax
mov edx, esi
mov eax, dword [esp + 0x38]
add ecx, edi
add ecx, dword [esp + 0x5c]
mov edi, ebx
xor eax, dword [esp + 0x54]
xor eax, dword [esp + 0x4c]
xor eax, dword [esp + 0x14]
ror edx, 0x1b
shr ebx, 2
shl edi, 0x1e
or edi, ebx
mov ebx, eax
lea ebp, [edx - 0x70e44324]
mov dword [esp + 0x5c], edi
add ebp, ecx
shr ebx, 0x1f
mov ecx, edi
add eax, eax
or ecx, esi
and edi, esi
and ecx, dword [esp + 0x64]
or ebx, eax
or ecx, edi
mov dword [esp + 0x1c], ebx
mov edx, ebp
add ecx, ebx
ror edx, 0x1b
add ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x2c]
lea edi, [edx - 0x70e44324]
xor eax, dword [esp + 0x28]
add edi, ecx
xor eax, dword [esp + 0x44]
mov ebx, esi
xor eax, dword [esp + 0x48]
mov edx, edi
mov ecx, eax
shl ebx, 0x1e
add eax, eax
shr ecx, 0x1f
or ecx, eax
shr esi, 2
mov eax, dword [esp + 0x40]
or ebx, esi
xor eax, dword [esp + 0x18]
xor eax, dword [esp + 0x3c]
xor eax, dword [esp + 0x4c]
mov dword [esp + 0x74], ecx
mov ecx, ebx
or ecx, ebp
mov dword [esp + 0x60], ebx
and ecx, dword [esp + 0x5c]
and ebx, ebp
or ecx, ebx
ror edx, 0x1b
mov ebx, ebp
add ecx, 0x8f1bbcdc
add ecx, dword [esp + 0x74]
add ecx, dword [esp + 0x64]
shr ebp, 2
add edx, ecx
shl ebx, 0x1e
mov esi, edx
or ebx, ebp
ror esi, 0x1b
mov ebp, eax
add eax, eax
shr ebp, 0x1f
or ebp, eax
mov eax, dword [esp + 0x60]
xor eax, ebx
mov dword [esp + 0x4c], ebp
xor eax, edi
add ebp, 0xca62c1d6
add eax, ebp
mov ebp, edi
add eax, dword [esp + 0x5c]
add esi, eax
shr edi, 2
mov eax, dword [esp + 0x1c]
mov ecx, esi
xor eax, dword [esp + 0x30]
xor eax, dword [esp + 0x20]
xor eax, dword [esp + 0x44]
shl ebp, 0x1e
or ebp, edi
ror ecx, 0x1b
mov edi, eax
add eax, eax
shr edi, 0x1f
or edi, eax
mov eax, ebx
xor eax, ebp
mov dword [esp + 0x48], edi
xor eax, edx
add eax, edi
lea edi, [ecx - 0x359d3e2a]
add eax, dword [esp + 0x60]
add edi, eax
mov eax, edx
shl eax, 0x1e
shr edx, 2
or eax, edx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x74]
xor eax, dword [esp + 0x34]
xor eax, dword [esp + 0x24]
xor eax, dword [esp + 0x3c]
mov edx, eax
add eax, eax
shr edx, 0x1f
or edx, eax
mov ecx, edi
mov eax, esi
ror ecx, 0x1b
xor eax, ebp
mov dword [esp + 0x44], edx
xor eax, dword [esp + 0x64]
add eax, edx
add eax, ebx
lea edx, [ecx - 0x359d3e2a]
add edx, eax
mov ebx, esi
mov eax, dword [esp + 0x4c]
mov ecx, edx
xor eax, dword [esp + 0x38]
xor eax, dword [esp + 0x50]
xor eax, dword [esp + 0x20]
shr esi, 2
shl ebx, 0x1e
or ebx, esi
ror ecx, 0x1b
mov esi, eax
mov dword [esp + 0x60], ebx
add eax, eax
shr esi, 0x1f
or esi, eax
mov eax, ebx
mov ebx, dword [esp + 0x64]
xor eax, edi
xor eax, ebx
mov dword [esp + 0x3c], esi
add eax, esi
lea esi, [ecx - 0x359d3e2a]
add eax, ebp
mov ebp, dword [esp + 0x60]
add esi, eax
mov eax, edi
shl eax, 0x1e
mov ecx, esi
shr edi, 2
or eax, edi
ror ecx, 0x1b
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x48]
xor eax, dword [esp + 0x2c]
xor eax, dword [esp + 0x54]
xor eax, dword [esp + 0x24]
mov edi, eax
add eax, eax
shr edi, 0x1f
or edi, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x5c], edi
mov dword [eax], edi
mov eax, ebp
xor eax, dword [esp + 0x64]
xor eax, edx
add eax, edi
lea edi, [ecx - 0x359d3e2a]
add eax, ebx
add edi, eax
mov eax, edx
shl eax, 0x1e
mov ecx, edi
shr edx, 2
or eax, edx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x44]
xor eax, dword [esp + 0x40]
xor eax, dword [esp + 0x28]
xor eax, dword [esp + 0x50]
mov edx, eax
add eax, eax
shr edx, 0x1f
or edx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x58], edx
ror ecx, 0x1b
mov dword [eax + 4], edx
mov ebx, dword [esp + 0x64]
mov eax, ebx
xor eax, dword [esp + 0x60]
xor eax, esi
add eax, edx
lea edx, [ecx - 0x359d3e2a]
add eax, ebp
mov ebp, dword [esp + 0x60]
add edx, eax
mov eax, esi
shl eax, 0x1e
mov ecx, edx
shr esi, 2
or eax, esi
ror ecx, 0x1b
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x3c]
xor eax, dword [esp + 0x1c]
xor eax, dword [esp + 0x18]
xor eax, dword [esp + 0x54]
mov esi, eax
add eax, eax
shr esi, 0x1f
or esi, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x54], esi
mov dword [eax + 8], esi
mov eax, ebp
xor eax, dword [esp + 0x64]
xor eax, edi
add eax, esi
lea esi, [ecx - 0x359d3e2a]
add eax, ebx
add esi, eax
mov eax, edi
shl eax, 0x1e
mov ecx, esi
shr edi, 2
or eax, edi
ror ecx, 0x1b
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x5c]
xor eax, dword [esp + 0x74]
xor eax, dword [esp + 0x30]
xor eax, dword [esp + 0x28]
mov edi, eax
add eax, eax
shr edi, 0x1f
or edi, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x50], edi
mov dword [eax + 0xc], edi
mov eax, edx
xor eax, dword [esp + 0x64]
xor eax, dword [esp + 0x60]
add eax, edi
lea edi, [ecx - 0x359d3e2a]
add eax, ebp
mov ebp, edx
add edi, eax
shr edx, 2
mov eax, dword [esp + 0x58]
mov ecx, edi
xor eax, dword [esp + 0x4c]
xor eax, dword [esp + 0x34]
xor eax, dword [esp + 0x18]
shl ebp, 0x1e
or ebp, edx
ror ecx, 0x1b
mov edx, eax
mov dword [esp + 0x24], ebp
add eax, eax
shr edx, 0x1f
or edx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x28], edx
mov dword [eax + 0x10], edx
mov eax, ebp
xor eax, esi
xor eax, dword [esp + 0x60]
add eax, edx
add eax, dword [esp + 0x64]
lea edx, [ecx - 0x359d3e2a]
add edx, eax
mov eax, esi
shl eax, 0x1e
mov ecx, edx
shr esi, 2
or eax, esi
ror ecx, 0x1b
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x54]
xor eax, dword [esp + 0x48]
xor eax, dword [esp + 0x38]
xor eax, dword [esp + 0x30]
mov esi, eax
add eax, eax
shr esi, 0x1f
or esi, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x30], esi
mov dword [eax + 0x14], esi
mov eax, ebp
xor eax, dword [esp + 0x64]
xor eax, edi
mov ebp, dword [esp + 0x64]
add eax, esi
lea esi, [ecx - 0x359d3e2a]
add eax, dword [esp + 0x60]
add esi, eax
mov eax, edi
shl eax, 0x1e
mov ecx, esi
shr edi, 2
or eax, edi
ror ecx, 0x1b
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x50]
xor eax, dword [esp + 0x44]
xor eax, dword [esp + 0x2c]
xor eax, dword [esp + 0x34]
mov edi, eax
mov ebx, dword [esp + 0x60]
add eax, eax
shr edi, 0x1f
or edi, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x34], edi
mov dword [eax + 0x18], edi
mov eax, ebp
xor eax, dword [esp + 0x60]
xor eax, edx
add eax, edi
lea edi, [ecx - 0x359d3e2a]
add eax, dword [esp + 0x24]
add edi, eax
mov eax, edx
shl eax, 0x1e
mov ecx, edi
shr edx, 2
or eax, edx
ror ecx, 0x1b
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x28]
xor eax, dword [esp + 0x3c]
xor eax, dword [esp + 0x40]
xor eax, dword [esp + 0x38]
mov edx, eax
add eax, eax
shr edx, 0x1f
or edx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x38], edx
mov dword [eax + 0x1c], edx
mov eax, ebx
xor eax, dword [esp + 0x64]
xor eax, esi
add eax, edx
lea edx, [ecx - 0x359d3e2a]
add eax, ebp
add edx, eax
mov eax, esi
shl eax, 0x1e
mov ecx, edx
shr esi, 2
or eax, esi
ror ecx, 0x1b
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x30]
xor eax, dword [esp + 0x5c]
xor eax, dword [esp + 0x1c]
xor eax, dword [esp + 0x2c]
mov esi, eax
add eax, eax
shr esi, 0x1f
or esi, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x24], esi
mov dword [eax + 0x20], esi
mov eax, edi
xor eax, dword [esp + 0x64]
xor eax, dword [esp + 0x60]
add eax, esi
lea esi, [ecx - 0x359d3e2a]
add eax, ebx
mov ebx, edi
add esi, eax
shr edi, 2
mov eax, dword [esp + 0x34]
mov ecx, esi
xor eax, dword [esp + 0x58]
xor eax, dword [esp + 0x74]
xor eax, dword [esp + 0x40]
shl ebx, 0x1e
or ebx, edi
ror ecx, 0x1b
mov edi, eax
mov dword [esp + 0x2c], ebx
add eax, eax
shr edi, 0x1f
or edi, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x40], edi
mov dword [eax + 0x24], edi
mov eax, ebx
xor eax, edx
xor eax, dword [esp + 0x60]
add eax, edi
lea edi, [ecx - 0x359d3e2a]
add eax, dword [esp + 0x64]
add edi, eax
mov eax, edx
shl eax, 0x1e
mov ecx, edi
shr edx, 2
or eax, edx
ror ecx, 0x1b
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x38]
xor eax, dword [esp + 0x54]
xor eax, dword [esp + 0x4c]
xor eax, dword [esp + 0x1c]
mov edx, eax
add eax, eax
shr edx, 0x1f
or edx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], edx
mov dword [eax + 0x28], edx
mov eax, ebx
xor eax, dword [esp + 0x64]
xor eax, esi
add eax, edx
lea edx, [ecx - 0x359d3e2a]
add eax, dword [esp + 0x60]
add edx, eax
mov eax, esi
shl eax, 0x1e
shr esi, 2
or eax, esi
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x24]
xor eax, dword [esp + 0x50]
xor eax, dword [esp + 0x48]
mov ecx, edx
xor eax, dword [esp + 0x74]
mov esi, eax
mov ebx, dword [esp + 0x64]
add eax, eax
shr esi, 0x1f
or esi, eax
ror ecx, 0x1b
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x60]
mov dword [esp + 0x50], esi
mov dword [eax + 0x2c], esi
mov eax, ebx
xor eax, dword [esp + 0x60]
xor eax, edi
add eax, esi
lea esi, [ecx - 0x359d3e2a]
add eax, dword [esp + 0x2c]
add esi, eax
mov eax, edi
shl eax, 0x1e
shr edi, 2
or eax, edi
mov edi, esi
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x40]
xor eax, dword [esp + 0x28]
xor eax, dword [esp + 0x44]
xor eax, dword [esp + 0x4c]
mov ecx, eax
shl edi, 0x1e
add eax, eax
shr ecx, 0x1f
or ecx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x54], ecx
mov dword [eax + 0x30], ecx
mov eax, ebp
xor eax, dword [esp + 0x64]
mov ecx, esi
xor eax, edx
ror ecx, 0x1b
add eax, dword [esp + 0x54]
add ebp, 0xca62c1d6
add eax, ebx
lea ebx, [ecx - 0x359d3e2a]
add ebx, eax
mov eax, edx
shl eax, 0x1e
mov ecx, ebx
shr edx, 2
or eax, edx
ror ecx, 0x1b
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x20]
xor eax, dword [esp + 0x30]
xor eax, dword [esp + 0x3c]
xor eax, dword [esp + 0x48]
mov edx, eax
add eax, eax
shr edx, 0x1f
or edx, eax
mov eax, dword [esp + 0x10]
mov dword [eax + 0x34], edx
mov eax, esi
xor eax, dword [esp + 0x64]
xor eax, dword [esp + 0x74]
add eax, edx
shr esi, 2
add ebp, eax
or edi, esi
mov eax, dword [esp + 0x50]
add ebp, ecx
xor eax, dword [esp + 0x34]
xor eax, dword [esp + 0x5c]
xor eax, dword [esp + 0x44]
mov edx, eax
mov dword [esp + 0x60], edi
shr edx, 0x1f
add eax, eax
or edx, eax
xor edi, ebx
mov eax, dword [esp + 0x10]
mov esi, ebp
xor edi, dword [esp + 0x74]
ror esi, 0x1b
mov dword [eax + 0x38], edx
add edx, 0xca62c1d6
mov eax, dword [esp + 0x54]
add edi, edx
xor eax, dword [esp + 0x38]
xor eax, dword [esp + 0x58]
xor eax, dword [esp + 0x3c]
add edi, dword [esp + 0x64]
mov edx, eax
add eax, eax
shr edx, 0x1f
add esi, edi
or edx, eax
mov eax, dword [esp + 0x10]
mov edi, ebx
shr ebx, 2
mov ecx, esi
shl edi, 0x1e
or edi, ebx
ror ecx, 0x1b
mov ebx, dword [esp + 0x60]
add ecx, 0xca62c1d6
add ecx, dword [esp + 0x74]
mov dword [eax + 0x3c], edx
mov eax, ebx
xor eax, edi
xor eax, ebp
ror ebp, 2
add eax, edx
add eax, ecx
mov ecx, dword [esp + 0x68]
add dword [ecx + 0xc], edi
add dword [ecx + 4], esi
add dword [ecx + 8], ebp
add dword [ecx], eax
add dword [ecx + 0x10], ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret