Function at 0x689f30
Capabilities:
Encode data using xor
Hash data using sha256

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xa8
mov dword [esp + 0x20], ecx
mov edi, dword [ecx + 0x50]
mov dword [esp + 0x64], edi
mov ebx, dword [ecx + 0x54]
mov dword [esp + 0x70], ebx
mov eax, edi
rol eax, 0x12
mov ebp, dword [ecx + 0x58]
mov dword [esp + 0x80], ebp
xor eax, edi
rol eax, 0x1b
mov edx, dword [ecx + 0x5c]
xor eax, edi
rol eax, 0x1a
mov esi, ebp
xor esi, ebx
and esi, edi
xor esi, ebp
mov dword [esp + 0x8c], edx
add esi, edx
add esi, eax
mov edx, dword [ecx]
bswap edx
lea eax, [edx + esi]
add eax, 0x428a2f98
mov dword [esp], eax
mov dword [esp + 0x4c], edx
add esi, edx
mov edx, dword [ecx + 0x4c]
mov dword [esp + 0x88], edx
lea ebp, [edx + esi]
add ebp, 0x428a2f98
mov esi, dword [ecx + 0x40]
mov edx, esi
rol edx, 0x17
xor edx, esi
rol edx, 0x15
xor edx, esi
mov dword [esp + 0x60], esi
rol edx, 0x1e
mov eax, dword [ecx + 0x44]
mov ebx, dword [ecx + 0x48]
mov edi, ebx
mov dword [esp + 0x6c], eax
xor edi, eax
and edi, esi
mov esi, ebx
and esi, eax
mov ecx, ebp
rol ecx, 0x12
add esi, edi
mov dword [esp + 4], ebp
xor ecx, ebp
rol ecx, 0x1b
add esi, edx
xor ecx, ebp
rol ecx, 0x1a
add esi, dword [esp]
mov edi, dword [esp + 0x70]
mov edx, edi
xor edx, dword [esp + 0x64]
and edx, ebp
xor edx, edi
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 4]
bswap eax
mov dword [esp + 0x5c], eax
mov edi, dword [esp + 0x80]
add eax, edi
add edx, eax
lea eax, [edx + ecx]
mov dword [esp], eax
add edx, ecx
add edx, 0x71374491
mov edi, dword [esp + 0x6c]
mov ecx, edi
mov eax, dword [esp + 0x60]
xor ecx, eax
and ecx, esi
and edi, eax
add edi, ecx
mov ebp, esi
mov ecx, esi
rol ecx, 0x17
xor ecx, esi
rol ecx, 0x15
xor ecx, esi
rol ecx, 0x1e
add edi, ecx
add edi, edx
mov esi, edi
mov dword [esp + 0x84], ebx
mov eax, dword [esp]
lea edx, [ebx + eax]
add edx, 0x71374491
mov ecx, dword [esp + 4]
mov eax, dword [esp + 0x64]
xor ecx, eax
and ecx, edx
xor ecx, eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 8]
bswap eax
mov dword [esp + 0x68], eax
mov edi, dword [esp + 0x70]
add eax, edi
add ecx, eax
mov eax, edx
mov edi, edx
rol edi, 0x12
xor edi, edx
rol edi, 0x1b
xor edi, edx
mov dword [esp + 0xc], edx
rol edi, 0x1a
lea edx, [ecx + edi]
mov dword [esp + 8], edx
add ecx, edi
add ecx, 0xb5c0fbcf
mov dword [esp], ecx
mov edi, esi
rol edi, 0x17
mov ecx, ebp
mov dword [esp + 0x18], ebp
mov edx, dword [esp + 0x60]
xor ebp, edx
and ebp, esi
and ecx, edx
add ecx, ebp
xor edi, esi
rol edi, 0x15
xor edi, esi
mov ebx, esi
rol edi, 0x1e
add ecx, edi
mov edx, dword [esp + 0x6c]
mov esi, dword [esp + 8]
add edx, esi
add edx, 0xb5c0fbcf
mov ebp, edx
rol ebp, 0x12
add ecx, dword [esp]
mov edi, eax
mov eax, dword [esp + 4]
xor edi, eax
and edi, edx
xor edi, eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0xc]
bswap eax
mov dword [esp + 0x58], eax
mov esi, dword [esp + 0x64]
add eax, esi
add edi, eax
xor ebp, edx
rol ebp, 0x1b
xor ebp, edx
mov dword [esp + 0x1c], edx
rol ebp, 0x1a
lea eax, [edi + ebp]
mov dword [esp + 8], eax
lea eax, [edi + ebp]
add eax, 0xe9b5dba5
mov dword [esp + 0x10], eax
mov eax, ecx
mov edi, ecx
rol edi, 0x17
xor edi, ecx
rol edi, 0x15
mov ecx, ebx
mov dword [esp + 0x14], ebx
mov esi, dword [esp + 0x18]
xor ebx, esi
and ebx, eax
mov ebp, ecx
and ebp, esi
add ebp, ebx
xor edi, eax
mov esi, eax
rol edi, 0x1e
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 8]
add ecx, eax
add ecx, 0xe9b5dba5
mov eax, ecx
rol eax, 0x12
add ebp, edi
xor eax, ecx
mov ebx, ecx
rol eax, 0x1b
add ebp, dword [esp + 0x10]
mov edi, edx
mov ecx, dword [esp + 0xc]
xor edi, ecx
and edi, ebx
mov edx, ebx
mov dword [esp + 8], ebx
xor edi, ecx
mov ecx, dword [esp + 0x20]
mov ebx, dword [ecx + 0x10]
bswap ebx
mov dword [esp + 0x54], ebx
mov ecx, dword [esp + 4]
add ecx, ebx
add ecx, edi
xor eax, edx
rol eax, 0x1a
add ecx, eax
add ecx, 0x3956c25b
mov dword [esp + 0x10], ebp
mov edi, ebp
rol edi, 0x17
xor edi, ebp
rol edi, 0x15
mov dword [esp], esi
mov eax, esi
mov edx, dword [esp + 0x14]
xor eax, edx
and eax, ebp
mov ebx, esi
and ebx, edx
add ebx, eax
xor edi, ebp
rol edi, 0x1e
mov esi, dword [esp + 0x18]
add esi, ecx
mov eax, esi
rol eax, 0x12
add ebx, edi
xor eax, esi
rol eax, 0x1b
add ebx, ecx
mov dword [esp + 4], ebx
mov edi, dword [esp + 8]
mov ebp, dword [esp + 0x1c]
xor edi, ebp
and edi, esi
mov dword [esp + 0x18], esi
xor edi, ebp
mov ebx, dword [esp + 0x20]
mov ebx, dword [ebx + 0x14]
bswap ebx
mov dword [esp + 0x50], ebx
mov ecx, dword [esp + 0xc]
add ecx, ebx
add ecx, edi
xor eax, esi
rol eax, 0x1a
add eax, ecx
add eax, 0x59f111f1
mov dword [esp + 0xc], eax
mov esi, dword [esp + 4]
mov edi, esi
rol edi, 0x17
xor edi, esi
rol edi, 0x15
mov edx, dword [esp + 0x10]
mov eax, edx
mov ecx, dword [esp]
xor eax, ecx
and eax, esi
mov ebx, edx
and ebx, ecx
add ebx, eax
xor edi, esi
rol edi, 0x1e
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
add ecx, edx
mov eax, ecx
rol eax, 0x12
add ebx, edi
xor eax, ecx
rol eax, 0x1b
add ebx, edx
mov dword [esp + 0xc], ebx
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 8]
xor edx, esi
mov ebx, ecx
mov dword [esp + 0x14], ecx
and edx, ecx
xor edx, esi
mov ecx, dword [esp + 0x20]
mov edi, dword [ecx + 0x18]
bswap edi
mov dword [esp + 0x48], edi
add ebp, edi
add ebp, edx
xor eax, ebx
rol eax, 0x1a
lea ebx, [eax + ebp]
add ebx, 0x923f82a4
mov eax, dword [esp + 0xc]
mov edi, eax
rol edi, 0x17
xor edi, eax
rol edi, 0x15
mov ebp, dword [esp + 4]
mov edx, ebp
mov ecx, dword [esp + 0x10]
xor edx, ecx
and edx, eax
mov esi, ebp
and esi, ecx
add esi, edx
xor edi, eax
mov ebp, eax
rol edi, 0x1e
mov ecx, dword [esp]
add ecx, ebx
mov edx, ecx
rol edx, 0x12
add esi, edi
mov edi, ecx
xor edx, ecx
rol edx, 0x1b
add esi, ebx
mov dword [esp + 0x24], esi
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
xor eax, ecx
and eax, edi
mov ebx, edi
mov dword [esp], edi
xor eax, ecx
mov ecx, dword [esp + 0x20]
mov edi, dword [ecx + 0x1c]
bswap edi
mov dword [esp + 0x74], edi
mov ecx, dword [esp + 8]
add ecx, edi
add ecx, eax
xor edx, ebx
rol edx, 0x1a
lea esi, [edx + ecx]
add esi, 0xab1c5ed5
mov ebx, dword [esp + 0x24]
mov edi, ebx
rol edi, 0x17
xor edi, ebx
rol edi, 0x15
mov ecx, ebp
mov edx, ebp
mov ebp, dword [esp + 4]
xor edx, ebp
and edx, ebx
and ecx, ebp
add ecx, edx
xor edi, ebx
rol edi, 0x1e
mov eax, dword [esp + 0x10]
mov ebp, esi
add eax, esi
mov edx, eax
rol edx, 0x12
add ecx, edi
xor edx, eax
mov esi, eax
rol edx, 0x1b
add ecx, ebp
mov eax, dword [esp]
mov edi, dword [esp + 0x14]
xor eax, edi
and eax, esi
xor eax, edi
mov edi, dword [esp + 0x20]
mov edi, dword [edi + 0x20]
bswap edi
mov dword [esp + 0x7c], edi
mov ebp, dword [esp + 0x18]
add ebp, edi
add ebp, eax
mov eax, ebp
xor edx, esi
mov ebp, esi
mov dword [esp + 0x10], esi
rol edx, 0x1a
add eax, edx
add eax, 0xd807aa98
mov dword [esp + 0x18], eax
mov edx, ecx
mov dword [esp + 0x28], ecx
mov edi, ecx
rol edi, 0x17
xor edi, ecx
rol edi, 0x15
mov eax, ebx
mov ecx, dword [esp + 0xc]
xor eax, ecx
and eax, edx
mov esi, ebx
and esi, ecx
add esi, eax
xor edi, edx
rol edi, 0x1e
mov ebx, dword [esp + 4]
mov eax, dword [esp + 0x18]
add ebx, eax
mov edx, ebx
rol edx, 0x12
add esi, edi
xor edx, ebx
rol edx, 0x1b
add esi, eax
mov dword [esp + 8], esi
mov ecx, dword [esp]
xor ebp, ecx
and ebp, ebx
mov dword [esp + 4], ebx
xor ebp, ecx
mov esi, dword [esp + 0x20]
mov esi, dword [esi + 0x24]
bswap esi
mov dword [esp + 0x30], esi
mov edi, dword [esp + 0x14]
add edi, esi
add edi, ebp
xor edx, ebx
rol edx, 0x1a
lea esi, [edx + edi]
add esi, 0x12835b01
mov edx, dword [esp + 8]
mov edi, edx
rol edi, 0x17
xor edi, edx
rol edi, 0x15
mov ebp, dword [esp + 0x28]
mov eax, ebp
mov ebx, dword [esp + 0x24]
xor eax, ebx
and eax, edx
and ebp, ebx
add ebp, eax
xor edi, edx
mov ebx, edx
rol edi, 0x1e
mov eax, dword [esp + 0xc]
add eax, esi
mov edx, eax
rol edx, 0x12
add ebp, edi
xor edx, eax
mov edi, eax
rol edx, 0x1b
add ebp, esi
mov dword [esp + 0x14], ebp
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x10]
xor eax, ecx
and eax, edi
mov dword [esp + 0xc], edi
xor eax, ecx
mov ebp, dword [esp + 0x20]
mov esi, dword [ebp + 0x28]
bswap esi
mov dword [esp + 0x34], esi
mov ecx, dword [esp]
add ecx, esi
add ecx, eax
xor edx, edi
rol edx, 0x1a
lea eax, [edx + ecx]
add eax, 0x243185be
mov dword [esp], eax
mov edi, dword [esp + 0x14]
mov ecx, edi
rol ecx, 0x17
xor ecx, edi
rol ecx, 0x15
mov eax, ebx
mov esi, dword [esp + 0x28]
xor eax, esi
and eax, edi
and ebx, esi
add ebx, eax
mov esi, ebx
xor ecx, edi
rol ecx, 0x1e
mov ebx, dword [esp + 0x24]
mov eax, dword [esp]
add ebx, eax
mov edx, ebx
rol edx, 0x12
add esi, ecx
xor edx, ebx
mov dword [esp + 0x24], ebx
rol edx, 0x1b
add esi, eax
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 4]
xor eax, ecx
and eax, ebx
xor eax, ecx
mov ecx, dword [ebp + 0x2c]
bswap ecx
mov dword [esp + 0x2c], ecx
mov ebp, dword [esp + 0x10]
add ebp, ecx
add ebp, eax
xor edx, ebx
rol edx, 0x1a
add ebp, edx
add ebp, 0x550c7dc3
mov ecx, esi
rol ecx, 0x17
xor ecx, esi
rol ecx, 0x15
mov eax, edi
mov edx, dword [esp + 8]
xor eax, edx
and eax, esi
and edi, edx
add edi, eax
xor ecx, esi
mov ebx, esi
rol ecx, 0x1e
mov eax, dword [esp + 0x28]
add eax, ebp
mov edx, eax
rol edx, 0x12
add edi, ecx
xor edx, eax
mov esi, eax
rol edx, 0x1b
add edi, ebp
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
xor eax, ecx
and eax, esi
mov edi, esi
mov dword [esp + 0x28], esi
xor eax, ecx
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx + 0x30]
bswap ecx
mov dword [esp + 0x40], ecx
mov esi, dword [esp + 4]
add esi, ecx
add esi, eax
xor edx, edi
rol edx, 0x1a
lea ebp, [edx + esi]
add ebp, 0x72be5d74
mov edi, dword [esp + 0x18]
mov esi, edi
rol esi, 0x17
xor esi, edi
rol esi, 0x15
mov edx, ebx
mov dword [esp], ebx
mov eax, ebx
mov ecx, dword [esp + 0x14]
xor eax, ecx
and eax, edi
mov ebx, edi
mov edi, edx
and edi, ecx
add edi, eax
xor esi, ebx
rol esi, 0x1e
mov eax, dword [esp + 8]
add eax, ebp
mov ebx, ebp
mov edx, eax
rol edx, 0x12
add edi, esi
xor edx, eax
mov ebp, eax
rol edx, 0x1b
add edi, ebx
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
xor eax, esi
and eax, ebp
xor eax, esi
mov ecx, dword [esp + 0x20]
mov esi, dword [ecx + 0x34]
bswap esi
mov dword [esp + 0x44], esi
mov ecx, dword [esp + 0xc]
add ecx, esi
add ecx, eax
mov dword [esp + 8], ebp
xor edx, ebp
rol edx, 0x1a
lea ebp, [edx + ecx]
add ebp, 0x80deb1fe
mov ebx, edi
mov esi, edi
rol esi, 0x17
xor esi, edi
rol esi, 0x15
mov edx, dword [esp + 0x18]
mov eax, edx
mov ecx, dword [esp]
xor eax, ecx
and eax, edi
mov dword [esp + 0x10], edi
mov edi, edx
and edi, ecx
add edi, eax
xor esi, ebx
rol esi, 0x1e
mov eax, dword [esp + 0x14]
add eax, ebp
mov edx, eax
rol edx, 0x12
add edi, esi
xor edx, eax
mov esi, eax
rol edx, 0x1b
add edi, ebp
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x28]
xor eax, ecx
and eax, esi
mov ebx, esi
xor eax, ecx
mov ecx, dword [esp + 0x20]
mov esi, dword [ecx + 0x38]
bswap esi
mov dword [esp + 0x38], esi
mov ecx, dword [esp + 0x24]
add ecx, esi
add ecx, eax
xor edx, ebx
rol edx, 0x1a
lea eax, [edx + ecx]
add eax, 0x9bdc06a7
mov dword [esp + 4], eax
mov esi, edi
rol esi, 0x17
xor esi, edi
mov edx, edi
mov dword [esp + 0x1c], edi
rol esi, 0x15
mov ecx, dword [esp + 0x10]
mov eax, ecx
mov edi, dword [esp + 0x18]
xor eax, edi
and eax, edx
mov ebp, ecx
and ebp, edi
add ebp, eax
xor esi, edx
rol esi, 0x1e
mov edi, dword [esp]
mov ecx, dword [esp + 4]
add edi, ecx
mov edx, edi
rol edx, 0x12
add ebp, esi
xor edx, edi
rol edx, 0x1b
add ebp, ecx
mov eax, ebx
mov esi, dword [esp + 8]
xor eax, esi
and eax, edi
xor eax, esi
mov esi, dword [esp + 0x20]
mov ecx, dword [esi + 0x3c]
bswap ecx
mov dword [esp + 0x3c], ecx
mov esi, dword [esp + 0x28]
add esi, ecx
add esi, eax
mov dword [esp], edi
xor edx, edi
rol edx, 0x1a
lea eax, [edx + esi]
add eax, 0xc19bf174
mov dword [esp + 4], eax
mov esi, ebp
rol esi, 0x17
xor esi, ebp
rol esi, 0x15
mov edx, dword [esp + 0x1c]
mov eax, edx
mov ecx, dword [esp + 0x10]
xor eax, ecx
and eax, ebp
and edx, ecx
add edx, eax
mov dword [esp + 0xc], ebp
xor esi, ebp
rol esi, 0x1e
add edx, esi
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 4]
add edi, eax
add edx, eax
mov dword [esp + 4], 0
nop word cs:[eax + eax]
mov eax, edi
mov dword [esp + 0x18], edi
mov esi, edi
rol esi, 0x12
mov edi, edx
mov dword [esp + 0x14], ebx
mov edx, ebx
xor edx, dword [esp]
and edx, eax
xor edx, ebx
add edx, dword [esp + 8]
xor esi, eax
rol esi, 0x1b
xor esi, eax
rol esi, 0x1a
add edx, esi
mov eax, dword [esp + 0x38]
mov esi, eax
rol esi, 0x1e
xor esi, eax
rol esi, 0xf
shr eax, 0xa
xor eax, esi
mov ecx, dword [esp + 0x5c]
mov esi, ecx
rol esi, 0x15
xor esi, ecx
rol esi, 0x19
shr ecx, 3
xor ecx, esi
mov ebx, dword [esp + 0x4c]
add ebx, dword [esp + 0x30]
add ebx, ecx
add ebx, eax
mov dword [esp + 0x4c], ebx
mov eax, edi
rol eax, 0x17
xor eax, edi
mov ebp, edi
mov dword [esp + 0x24], edi
rol eax, 0x15
mov esi, dword [esp + 0x1c]
mov ecx, esi
mov dword [esp + 0x1c], esi
mov edi, dword [esp + 0xc]
xor ecx, edi
and ecx, ebp
and esi, edi
add esi, ecx
xor eax, ebp
rol eax, 0x1e
add esi, eax
mov edi, esi
mov eax, dword [esp + 4]
add edx, dword [eax*4 + 0x70176c]
add edx, ebx
mov eax, dword [esp + 0x10]
add eax, edx
mov esi, eax
mov ecx, dword [esp + 0x3c]
mov eax, ecx
rol eax, 0x1e
add edi, edx
mov dword [esp + 8], edi
xor eax, ecx
mov edx, ecx
mov dword [esp + 0x3c], ecx
rol eax, 0xf
mov ebp, dword [esp + 0x68]
mov ecx, ebp
rol ecx, 0x15
shr edx, 0xa
xor ecx, ebp
rol ecx, 0x19
xor edx, eax
mov eax, ebp
shr eax, 3
xor eax, ecx
mov edi, esi
mov dword [esp + 0x10], esi
mov ecx, esi
rol ecx, 0x12
mov esi, dword [esp + 0x5c]
add esi, dword [esp + 0x34]
add esi, eax
xor ecx, edi
rol ecx, 0x1b
add esi, edx
mov dword [esp + 0x5c], esi
mov edx, dword [esp]
mov eax, edx
xor eax, dword [esp + 0x18]
and eax, edi
xor eax, edx
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0x14]
add ebx, dword [edx*4 + 0x701770]
add ebx, esi
add ebx, eax
xor ecx, edi
rol ecx, 0x1a
add ebx, ecx
mov esi, dword [esp + 8]
mov eax, esi
rol eax, 0x17
xor eax, esi
rol eax, 0x15
mov edx, dword [esp + 0xc]
mov ecx, edx
mov edi, dword [esp + 0x24]
xor ecx, edi
and ecx, esi
and edx, edi
add edx, ecx
xor eax, esi
rol eax, 0x1e
add edx, eax
mov eax, dword [esp + 0x4c]
mov ecx, eax
rol ecx, 0x1e
mov edi, dword [esp + 0x1c]
add edi, ebx
xor ecx, eax
rol ecx, 0xf
add edx, ebx
mov ebx, edx
shr eax, 0xa
xor eax, ecx
mov esi, dword [esp + 0x58]
mov ecx, esi
rol ecx, 0x15
xor ecx, esi
rol ecx, 0x19
shr esi, 3
xor esi, ecx
mov dword [esp + 0x1c], edi
mov edx, edi
rol edx, 0x12
xor edx, edi
rol edx, 0x1b
add ebp, dword [esp + 0x2c]
add ebp, esi
xor edx, edi
rol edx, 0x1a
add ebp, eax
mov dword [esp + 0x68], ebp
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
xor eax, ecx
and eax, edi
xor eax, ecx
mov ecx, dword [esp]
mov esi, dword [esp + 4]
add ecx, dword [esi*4 + 0x701774]
add ecx, ebp
add ecx, eax
mov dword [esp + 0x14], ebx
mov eax, ebx
rol eax, 0x17
add ecx, edx
mov ebp, ecx
xor eax, ebx
rol eax, 0x15
xor eax, ebx
rol eax, 0x1e
mov edx, dword [esp + 8]
mov ecx, edx
mov edi, dword [esp + 0x24]
xor ecx, edi
and ecx, ebx
and edx, edi
mov ebx, edi
add edx, ecx
add edx, eax
mov esi, dword [esp + 0xc]
add esi, ebp
add edx, ebp
mov ebp, edx
mov eax, dword [esp + 0x5c]
mov ecx, eax
rol ecx, 0x1e
xor ecx, eax
rol ecx, 0xf
shr eax, 0xa
xor eax, ecx
mov edx, dword [esp + 0x54]
mov ecx, edx
rol ecx, 0x15
xor ecx, edx
rol ecx, 0x19
shr edx, 3
xor edx, ecx
mov edi, dword [esp + 0x58]
add edi, dword [esp + 0x40]
add edi, edx
add edi, eax
mov dword [esp + 0x58], edi
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
xor eax, edx
mov ecx, esi
mov dword [esp + 0xc], esi
and eax, esi
xor eax, edx
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 4]
add edx, dword [esi*4 + str._f_o_]
add edx, edi
add edx, eax
mov eax, ecx
rol eax, 0x12
xor eax, ecx
rol eax, 0x1b
xor eax, ecx
rol eax, 0x1a
add edx, eax
mov esi, edx
mov ecx, dword [esp + 0x14]
mov eax, ecx
mov edi, dword [esp + 8]
xor eax, edi
mov dword [esp], ebp
and eax, ebp
and ecx, edi
add ecx, eax
mov eax, ebp
rol eax, 0x17
xor eax, ebp
rol eax, 0x15
xor eax, ebp
rol eax, 0x1e
add ecx, eax
mov edi, ebx
add edi, edx
add ecx, edx
mov ebp, ecx
mov eax, dword [esp + 0x68]
mov ecx, eax
rol ecx, 0x1e
xor ecx, eax
rol ecx, 0xf
shr eax, 0xa
mov esi, dword [esp + 0x50]
mov edx, esi
rol edx, 0x15
xor eax, ecx
xor edx, esi
rol edx, 0x19
mov ecx, esi
shr ecx, 3
xor ecx, edx
mov esi, dword [esp + 0x54]
add esi, dword [esp + 0x44]
add esi, ecx
mov dword [esp + 0x24], edi
mov ecx, edi
rol ecx, 0x12
add esi, eax
mov dword [esp + 0x54], esi
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
xor edx, eax
and edx, edi
xor edx, eax
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 4]
add eax, dword [ebx*4 + 0x70177c]
add eax, esi
add eax, edx
xor ecx, edi
rol ecx, 0x1b
xor ecx, edi
rol ecx, 0x1a
add eax, ecx
mov dword [esp + 0x10], eax
mov eax, ebp
rol eax, 0x17
mov esi, dword [esp]
mov ecx, esi
mov edx, dword [esp + 0x14]
xor ecx, edx
and ecx, ebp
and esi, edx
add esi, ecx
xor eax, ebp
rol eax, 0x15
xor eax, ebp
rol eax, 0x1e
add esi, eax
mov edi, dword [esp + 8]
mov ecx, dword [esp + 0x10]
add edi, ecx
mov edx, dword [esp + 0x58]
mov eax, edx
rol eax, 0x1e
add esi, ecx
xor eax, edx
rol eax, 0xf
mov ebx, dword [esp + 0x48]
mov ecx, ebx
rol ecx, 0x15
shr edx, 0xa
xor ecx, ebx
rol ecx, 0x19
xor edx, eax
mov eax, ebx
shr eax, 3
xor eax, ecx
mov ecx, dword [esp + 0x50]
add ecx, dword [esp + 0x38]
add ecx, eax
add ecx, edx
mov dword [esp + 0x50], ecx
mov edx, edi
mov dword [esp + 8], edi
mov eax, edi
rol eax, 0x12
mov edi, dword [esp + 4]
mov edi, dword [edi*4 + 0x701780]
add edi, ecx
add edi, dword [esp + 0x1c]
xor eax, edx
rol eax, 0x1b
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0xc]
xor ecx, ebx
and ecx, edx
xor ecx, ebx
add edi, ecx
xor eax, edx
rol eax, 0x1a
add edi, eax
mov dword [esp + 0x10], esi
mov eax, esi
rol eax, 0x17
xor eax, esi
rol eax, 0x15
xor eax, esi
rol eax, 0x1e
mov edx, ebp
mov dword [esp + 0x18], ebp
mov ecx, ebp
mov ebx, dword [esp]
xor ecx, ebx
and ecx, esi
mov ebp, dword [esp + 0x54]
mov esi, ebp
rol esi, 0x1e
xor esi, ebp
rol esi, 0xf
and edx, ebx
mov ebx, dword [esp + 0x74]
rol ebx, 0x15
mov dword [esp + 0xa4], ebx
add edx, ecx
mov ebx, dword [esp + 0x7c]
mov ecx, ebx
rol ecx, 0x15
add edx, eax
xor ecx, ebx
rol ecx, 0x19
mov dword [esp + 0xa0], ecx
add dword [esp + 0x14], edi
mov eax, dword [esp + 0x30]
mov ecx, eax
rol ecx, 0x15
add edx, edi
mov dword [esp + 0x1c], edx
xor ecx, eax
rol ecx, 0x19
mov dword [esp + 0x9c], ecx
mov eax, dword [esp + 0x34]
mov ecx, eax
rol ecx, 0x15
shr ebp, 0xa
xor ecx, eax
rol ecx, 0x19
mov dword [esp + 0x94], ecx
xor ebp, esi
mov dword [esp + 0x98], ebp
mov ebx, dword [esp + 0x2c]
mov edx, ebx
rol edx, 0x15
mov ecx, dword [esp + 0x4c]
mov eax, ecx
rol eax, 0x15
xor eax, ecx
rol eax, 0x19
mov esi, ecx
shr esi, 3
xor esi, eax
mov dword [esp + 0x2c], ebx
xor edx, ebx
rol edx, 0x19
mov dword [esp + 0x90], edx
mov ebx, dword [esp + 0x3c]
add dword [esp + 0x48], ebx
mov eax, ebx
rol eax, 0x15
xor eax, ebx
mov ebp, dword [esp + 0x40]
mov edx, ebp
rol edx, 0x15
add esi, ebx
mov dword [esp + 0x28], esi
xor edx, ebp
rol edx, 0x19
rol eax, 0x19
shr ebx, 3
xor ebx, eax
mov esi, dword [esp + 0x38]
mov eax, esi
rol eax, 0x15
xor eax, esi
mov edi, dword [esp + 0x44]
mov ecx, edi
rol ecx, 0x15
add ebx, esi
mov dword [esp + 0x78], ebx
xor ecx, edi
rol ecx, 0x19
rol eax, 0x19
shr esi, 3
xor esi, eax
add esi, edi
mov dword [esp + 0x3c], esi
shr edi, 3
xor edi, ecx
add edi, ebp
mov dword [esp + 0x38], edi
shr ebp, 3
xor ebp, edx
mov eax, dword [esp + 0x2c]
add ebp, eax
mov dword [esp + 0x44], ebp
mov ecx, eax
shr ecx, 3
xor ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x34]
add ecx, eax
mov dword [esp + 0x40], ecx
mov ecx, eax
shr ecx, 3
xor ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x30]
add ecx, eax
mov dword [esp + 0x2c], ecx
mov ecx, eax
shr ecx, 3
xor ecx, dword [esp + 0x9c]
mov eax, dword [esp + 0x7c]
add ecx, eax
mov dword [esp + 0x30], ecx
mov esi, eax
shr esi, 3
xor esi, dword [esp + 0xa0]
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0x74]
xor eax, edx
rol eax, 0x19
mov ecx, eax
add esi, edx
mov dword [esp + 0x34], esi
mov eax, edx
shr eax, 3
xor eax, ecx
mov ecx, dword [esp + 0x48]
add ecx, eax
add ecx, dword [esp + 0x98]
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 4]
mov eax, dword [eax*4 + 0x701784]
add eax, ecx
add eax, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
mov ecx, esi
rol ecx, 0x12
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x24]
xor edx, edi
and edx, esi
xor edx, edi
add eax, edx
xor ecx, esi
rol ecx, 0x1b
xor ecx, esi
rol ecx, 0x1a
add eax, ecx
mov esi, dword [esp + 0x1c]
mov ecx, esi
rol ecx, 0x17
mov ebp, dword [esp + 0x10]
mov edx, ebp
mov ebx, dword [esp + 0x18]
xor edx, ebx
and edx, esi
and ebp, ebx
add ebp, edx
xor ecx, esi
rol ecx, 0x15
xor ecx, esi
mov edi, esi
rol ecx, 0x1e
add ebp, ecx
mov edx, dword [esp]
add edx, eax
mov dword [esp], edx
mov esi, dword [esp + 0x50]
mov ecx, esi
rol ecx, 0x1e
add ebp, eax
xor ecx, esi
rol ecx, 0xf
mov eax, esi
shr eax, 0xa
xor eax, ecx
mov ecx, dword [esp + 0x34]
add ecx, dword [esp + 0x4c]
add ecx, eax
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 4]
mov eax, dword [eax*4 + 0x701788]
add eax, ecx
add eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 8]
xor ecx, esi
and ecx, edx
xor ecx, esi
add eax, ecx
mov ecx, edx
rol ecx, 0x12
xor ecx, edx
rol ecx, 0x1b
xor ecx, edx
rol ecx, 0x1a
add eax, ecx
mov edx, edi
mov ecx, edi
mov esi, dword [esp + 0x10]
xor ecx, esi
and ecx, ebp
and edx, esi
add edx, ecx
mov ecx, ebp
rol ecx, 0x17
xor ecx, ebp
rol ecx, 0x15
xor ecx, ebp
rol ecx, 0x1e
add edx, ecx
add ebx, eax
add edx, eax
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0x48]
mov eax, ecx
rol eax, 0x1e
xor eax, ecx
rol eax, 0xf
shr ecx, 0xa
xor ecx, eax
mov eax, dword [esp + 0x30]
add eax, dword [esp + 0x5c]
add eax, ecx
mov edi, eax
mov dword [esp + 0x30], eax
mov eax, ebx
rol eax, 0x12
xor eax, ebx
rol eax, 0x1b
mov ecx, dword [esp + 4]
mov ecx, dword [ecx*4 + 0x70178c]
add ecx, edi
add ecx, dword [esp + 8]
xor eax, ebx
rol eax, 0x1a
mov edi, dword [esp]
mov esi, dword [esp + 0x14]
xor edi, esi
and edi, ebx
mov dword [esp + 0x18], ebx
xor edi, esi
add ecx, edi
mov edi, edx
rol edi, 0x17
add ecx, eax
xor edi, edx
rol edi, 0x15
xor edi, edx
rol edi, 0x1e
mov eax, ebp
mov esi, dword [esp + 0x1c]
xor eax, esi
and eax, edx
mov edx, ebp
and edx, esi
add edx, eax
add edx, edi
mov esi, dword [esp + 0x10]
add esi, ecx
add edx, ecx
mov dword [esp + 8], edx
mov ecx, dword [esp + 0x34]
mov eax, ecx
rol eax, 0x1e
xor eax, ecx
rol eax, 0xf
shr ecx, 0xa
xor ecx, eax
mov edx, dword [esp + 0x2c]
add edx, dword [esp + 0x68]
add edx, ecx
mov dword [esp + 0x2c], edx
mov eax, esi
rol eax, 0x12
mov ecx, dword [esp + 4]
mov ecx, dword [ecx*4 + 0x701790]
add ecx, edx
add ecx, dword [esp + 0x14]
mov edx, esi
mov dword [esp + 0x10], esi
xor eax, esi
rol eax, 0x1b
mov esi, dword [esp]
xor ebx, esi
and ebx, edx
xor ebx, esi
add ecx, ebx
xor eax, edx
rol eax, 0x1a
add ecx, eax
mov ebx, dword [esp + 8]
mov eax, ebx
rol eax, 0x17
xor eax, ebx
rol eax, 0x15
mov edx, dword [esp + 0xc]
mov edi, edx
xor edi, ebp
and edi, ebx
and edx, ebp
add edx, edi
xor eax, ebx
rol eax, 0x1e
add edx, eax
mov ebx, edx
mov edx, dword [esp + 0x30]
mov eax, edx
rol eax, 0x1e
mov esi, dword [esp + 0x1c]
add esi, ecx
xor eax, edx
rol eax, 0xf
add ebx, ecx
mov ecx, edx
shr ecx, 0xa
xor ecx, eax
mov eax, dword [esp + 0x40]
add eax, dword [esp + 0x58]
add eax, ecx
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 4]
mov ecx, dword [ecx*4 + 0x701794]
add ecx, eax
add ecx, dword [esp]
mov edx, esi
mov dword [esp + 0x1c], esi
mov eax, esi
rol eax, 0x12
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
xor edi, esi
and edi, edx
xor edi, esi
add ecx, edi
xor eax, edx
rol eax, 0x1b
xor eax, edx
rol eax, 0x1a
add ecx, eax
mov edx, ebx
mov dword [esp + 0x14], ebx
mov eax, ebx
rol eax, 0x17
mov ebx, dword [esp + 8]
mov edi, ebx
mov esi, dword [esp + 0xc]
xor edi, esi
and edi, edx
mov edx, ebx
and edx, esi
add edx, edi
mov esi, dword [esp + 0x14]
xor eax, esi
rol eax, 0x15
xor eax, esi
rol eax, 0x1e
add edx, eax
add ebp, ecx
mov edi, dword [esp + 0x2c]
mov eax, edi
rol eax, 0x1e
add edx, ecx
xor eax, edi
rol eax, 0xf
mov ecx, edi
shr ecx, 0xa
xor ecx, eax
mov edi, dword [esp + 0x44]
add edi, dword [esp + 0x54]
add edi, ecx
mov dword [esp + 0x44], edi
mov eax, dword [esp + 4]
mov eax, dword [eax*4 + 0x701798]
add eax, edi
add eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
xor ecx, edi
and ecx, ebp
xor ecx, edi
add eax, ecx
mov ecx, ebp
rol ecx, 0x12
xor ecx, ebp
rol ecx, 0x1b
xor ecx, ebp
rol ecx, 0x1a
add eax, ecx
mov ecx, esi
xor ecx, ebx
mov edi, edx
mov dword [esp], edx
and ecx, edx
mov edx, esi
and edx, ebx
add edx, ecx
mov ecx, edi
rol ecx, 0x17
xor ecx, edi
rol ecx, 0x15
xor ecx, edi
rol ecx, 0x1e
add edx, ecx
mov ebx, dword [esp + 0xc]
add ebx, eax
mov dword [esp + 0xc], ebx
add edx, eax
mov ecx, dword [esp + 0x40]
mov eax, ecx
rol eax, 0x1e
xor eax, ecx
rol eax, 0xf
shr ecx, 0xa
xor ecx, eax
mov esi, dword [esp + 0x38]
add esi, dword [esp + 0x50]
add esi, ecx
mov dword [esp + 0x38], esi
mov eax, ebx
rol eax, 0x12
xor eax, ebx
rol eax, 0x1b
mov ecx, dword [esp + 4]
mov ecx, dword [ecx*4 + 0x70179c]
add ecx, esi
add ecx, dword [esp + 0x10]
xor eax, ebx
rol eax, 0x1a
mov esi, ebp
mov edi, dword [esp + 0x1c]
xor esi, edi
and esi, ebx
xor esi, edi
add ecx, esi
mov dword [esp + 0x18], edx
mov esi, edx
rol esi, 0x17
add ecx, eax
xor esi, edx
rol esi, 0x15
xor esi, edx
rol esi, 0x1e
mov eax, dword [esp]
mov edi, dword [esp + 0x14]
xor eax, edi
and eax, edx
mov ebx, dword [esp]
and ebx, edi
add ebx, eax
add ebx, esi
mov edx, dword [esp + 8]
add edx, ecx
add ebx, ecx
mov ecx, dword [esp + 0x44]
mov eax, ecx
rol eax, 0x1e
xor eax, ecx
rol eax, 0xf
shr ecx, 0xa
xor ecx, eax
mov esi, dword [esp + 0x3c]
add esi, dword [esp + 0x48]
add esi, ecx
mov dword [esp + 0x3c], esi
mov ecx, edx
mov dword [esp + 8], edx
rol ecx, 0x12
mov eax, dword [esp + 4]
mov eax, dword [eax*4 + 0x7017a0]
add eax, esi
add eax, dword [esp + 0x1c]
xor ecx, edx
rol ecx, 0x1b
mov esi, dword [esp + 0xc]
xor esi, ebp
and esi, edx
xor esi, ebp
add eax, esi
xor ecx, edx
rol ecx, 0x1a
add eax, ecx
mov ecx, ebx
rol ecx, 0x17
xor ecx, ebx
rol ecx, 0x15
mov esi, dword [esp + 0x18]
mov edx, dword [esp]
xor esi, edx
and esi, ebx
mov edi, dword [esp + 0x18]
and edi, edx
add edi, esi
xor ecx, ebx
rol ecx, 0x1e
add edi, ecx
mov edx, dword [esp + 0x38]
mov ecx, edx
rol ecx, 0x1e
mov esi, dword [esp + 0x14]
add esi, eax
xor ecx, edx
rol ecx, 0xf
add edi, eax
mov eax, edx
shr eax, 0xa
xor eax, ecx
mov ecx, dword [esp + 0x78]
add ecx, dword [esp + 0x34]
add ecx, eax
mov dword [esp + 0x78], ecx
mov eax, dword [esp + 4]
mov eax, dword [eax*4 + 0x7017a4]
add eax, ecx
add eax, ebp
mov ebp, esi
mov dword [esp + 0x14], esi
mov ecx, esi
rol ecx, 0x12
mov esi, dword [esp + 8]
mov edx, dword [esp + 0xc]
xor esi, edx
and esi, ebp
xor esi, edx
add eax, esi
xor ecx, ebp
rol ecx, 0x1b
xor ecx, ebp
rol ecx, 0x1a
add eax, ecx
mov ecx, edi
rol ecx, 0x17
mov esi, ebx
mov edx, dword [esp + 0x18]
xor esi, edx
and esi, edi
mov ebp, ebx
and ebp, edx
add ebp, esi
xor ecx, edi
rol ecx, 0x15
xor ecx, edi
rol ecx, 0x1e
add ebp, ecx
add dword [esp], eax
mov edx, dword [esp + 0x3c]
mov ecx, edx
rol ecx, 0x1e
add ebp, eax
xor ecx, edx
rol ecx, 0xf
mov eax, edx
shr eax, 0xa
xor eax, ecx
mov ecx, dword [esp + 0x28]
add ecx, dword [esp + 0x30]
add ecx, eax
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 4]
mov esi, dword [eax*4 + 0x7017a8]
add esi, ecx
add esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 8]
xor eax, ecx
mov edx, dword [esp]
and eax, edx
xor eax, ecx
add esi, eax
mov eax, edx
rol eax, 0x12
xor eax, edx
rol eax, 0x1b
xor eax, edx
rol eax, 0x1a
add esi, eax
mov eax, edi
xor eax, ebx
and eax, ebp
mov dword [esp + 0x1c], edi
mov edx, edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x10], ebx
and edx, ebx
mov ebx, dword [esp + 0x14]
add edx, eax
mov eax, ebp
rol eax, 0x17
xor eax, ebp
rol eax, 0x15
mov dword [esp + 0xc], ebp
xor eax, ebp
rol eax, 0x1e
add edx, eax
add edi, esi
add edx, esi
mov eax, dword [esp + 0x34]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 4]
add eax, 0x10
mov esi, dword [esp + 0x78]
mov dword [esp + 0x38], esi
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x3c], ecx
mov dword [esp + 4], eax
cmp eax, 0x30
jb 0x68a6e0
add edx, dword [esp + 0x60]
mov eax, dword [esp + 0x20]
mov dword [eax + 0x40], edx
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x6c]
mov dword [eax + 0x44], ecx
mov ecx, dword [esp + 0x1c]
add ecx, dword [esp + 0x84]
mov dword [eax + 0x48], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x88]
mov dword [eax + 0x4c], ecx
add edi, dword [esp + 0x64]
mov dword [eax + 0x50], edi
mov ecx, dword [esp]
add ecx, dword [esp + 0x70]
mov dword [eax + 0x54], ecx
add ebx, dword [esp + 0x80]
mov dword [eax + 0x58], ebx
mov ecx, dword [esp + 8]
add ecx, dword [esp + 0x8c]
mov dword [eax + 0x5c], ecx
add esp, 0xa8
pop esi
pop edi
pop ebx
pop ebp
ret