Function at 0x1021dc60
Capabilities:
Encode data using xor
Hash data using sha1

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x28
mov eax, dword [ecx + 0x28]
mov edx, dword [ecx + 0x2c]
bswap eax
mov dword [ecx + 0x28], eax
bswap edx
mov dword [ecx + 0x2c], edx
mov eax, dword [ecx + 0x30]
bswap eax
mov dword [ecx + 0x30], eax
mov eax, dword [ecx + 0x34]
bswap eax
mov dword [ecx + 0x34], eax
mov eax, dword [ecx + 0x38]
bswap eax
mov dword [ecx + 0x38], eax
mov eax, dword [ecx + 0x3c]
bswap eax
mov dword [ecx + 0x3c], eax
mov eax, dword [ecx + 0x40]
bswap eax
mov dword [ecx + 0x40], eax
mov eax, dword [ecx + 0x44]
bswap eax
mov dword [ecx + 0x44], eax
mov eax, dword [ecx + 0x48]
bswap eax
mov dword [ecx + 0x48], eax
mov eax, dword [ecx + 0x4c]
bswap eax
mov dword [ecx + 0x4c], eax
mov eax, dword [ecx + 0x50]
bswap eax
mov dword [ecx + 0x50], eax
mov eax, dword [ecx + 0x54]
bswap eax
mov dword [ecx + 0x54], eax
mov eax, dword [ecx + 0x58]
bswap eax
mov dword [ecx + 0x58], eax
mov eax, dword [ecx + 0x5c]
bswap eax
mov dword [ecx + 0x5c], eax
mov eax, dword [ecx + 0x60]
bswap eax
mov dword [ecx + 0x60], eax
mov eax, dword [ecx + 0x64]
bswap eax
mov dword [ecx + 0x64], eax
mov eax, 0x1a
mov edx, dword [ecx + eax*4 - 0x20]
xor edx, dword [ecx + eax*4 - 0xc]
xor edx, dword [ecx + eax*4 - 0x38]
xor edx, dword [ecx + eax*4 - 0x40]
rol edx, 1
mov dword [ecx + eax*4], edx
inc eax
cmp eax, 0x5a
jne 0x1021dcee
mov edi, dword [ecx + 0x14]
mov eax, dword [ecx + 0x18]
mov dword [ebp - 0x24], eax
mov esi, dword [ecx + 0x1c]
mov edx, dword [ecx + 0x20]
mov dword [ebp - 0x14], ecx
mov eax, dword [ecx + 0x24]
xor ebx, ebx
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x30], edx
mov ecx, edx
mov dword [ebp - 0x2c], esi
mov edx, esi
mov esi, dword [ebp - 0x24]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edx
mov edx, ecx
mov ecx, edi
rol ecx, 5
cmp ebx, 0x14
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], edi
jae 0x1021dd8d
mov dword [ebp - 0x18], ecx
mov ecx, esi
and ecx, dword [ebp - 0x10]
mov edi, edx
mov edx, esi
not edx
and edx, edi
add edx, ecx
add eax, dword [ebp - 0x18]
add eax, edx
mov ecx, dword [ebp - 0x14]
add eax, dword [ecx + ebx*4 + 0x28]
mov edx, 0x5a827999
mov edi, eax
mov eax, dword [ebp - 0x10]
add edi, edx
rol esi, 0x1e
inc ebx
mov ecx, eax
mov edx, esi
cmp ebx, 0x50
jne 0x1021dd39
jmp 0x1021dde3
cmp ebx, 0x28
jae 0x1021ddab
add eax, ecx
mov ecx, dword [ebp - 0x10]
xor ecx, edx
xor ecx, esi
add eax, ecx
mov ecx, dword [ebp - 0x14]
add eax, dword [ecx + ebx*4 + 0x28]
mov edx, 0x6ed9eba1
jmp 0x1021dd77
cmp ebx, 0x3b
mov dword [ebp - 0x18], ecx
ja 0x1021ddc9
mov edi, edx
mov ecx, dword [ebp - 0x10]
mov edx, ecx
or edx, edi
and edx, esi
and ecx, edi
or ecx, edx
mov edx, 0x8f1bbcdc
jmp 0x1021ddd5
mov ecx, dword [ebp - 0x10]
xor ecx, edx
xor ecx, esi
mov edx, 0xca62c1d6
add eax, dword [ebp - 0x18]
add eax, ecx
mov ecx, dword [ebp - 0x14]
add eax, dword [ecx + ebx*4 + 0x28]
jmp 0x1021dd77
mov ebx, eax
mov eax, dword [ebp - 0x14]
mov dword [eax], edi
mov ecx, dword [ebp - 0x28]
add ecx, edi
mov dword [eax + 0xc], ebx
mov dword [eax + 8], esi
mov edi, dword [ebp - 0x1c]
mov dword [eax + 4], edi
mov edx, dword [ebp - 0x20]
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], ecx
mov ecx, dword [ebp - 0x24]
add ecx, edi
mov dword [eax + 0x18], ecx
mov ecx, dword [ebp - 0x2c]
add ecx, esi
mov dword [eax + 0x1c], ecx
mov ecx, dword [ebp - 0x30]
add ecx, ebx
mov dword [eax + 0x20], ecx
mov ecx, dword [ebp - 0x34]
add ecx, edx
mov dword [eax + 0x24], ecx
mov dword [eax + 0x168], 0
add esp, 0x28
pop esi
pop edi
pop ebx
pop ebp
ret