Function at 0x1c6ee60
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
nop
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 0x1c6eef0
mov edi, dword [ecx + 0x14]
mov eax, dword [ecx + 0x18]
mov dword [ebp - 0x24], eax
mov esi, dword [ecx + 0x1c]
mov eax, dword [ecx + 0x20]
mov dword [ebp - 0x10], ecx
mov edx, dword [ecx + 0x24]
xor ebx, ebx
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], esi
mov ecx, esi
mov esi, dword [ebp - 0x24]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x20], edx
jmp 0x1c6ef65
mov edi, edx
xor edi, ecx
xor edi, esi
mov ecx, 0xca62c1d6
add edi, dword [ebp - 0x18]
add edi, eax
mov eax, dword [ebp - 0x10]
add edi, dword [eax + ebx*4 + 0x28]
add edi, ecx
rol esi, 0x1e
inc ebx
mov eax, edx
mov ecx, esi
cmp ebx, 0x50
je 0x1c6efea
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edx
mov esi, dword [ebp - 0x1c]
mov edx, ecx
mov ecx, eax
mov eax, edi
rol eax, 5
cmp ebx, 0x14
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], edi
jb 0x1c6efa9
cmp ebx, 0x28
jb 0x1c6efce
cmp ebx, 0x3b
ja 0x1c6ef3b
mov dword [ebp - 0x14], edx
mov edx, ecx
mov ecx, dword [ebp - 0x14]
or ecx, edx
and ecx, esi
mov edi, dword [ebp - 0x14]
and edi, edx
mov edx, dword [ebp - 0x14]
or edi, ecx
mov ecx, 0x8f1bbcdc
jmp 0x1c6ef46
mov edi, edx
mov edx, ecx
mov ecx, esi
not ecx
and ecx, edx
mov edx, edi
add ecx, eax
mov edi, esi
and edi, edx
add edi, dword [ebp - 0x18]
add edi, ecx
mov eax, dword [ebp - 0x10]
add edi, dword [eax + ebx*4 + 0x28]
mov ecx, 0x5a827999
jmp 0x1c6ef52
mov edi, edx
xor edi, ecx
xor edi, esi
add edi, eax
add edi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10]
add edi, dword [eax + ebx*4 + 0x28]
mov ecx, 0x6ed9eba1
jmp 0x1c6ef52
mov eax, dword [ebp - 0x10]
mov dword [eax], edi
mov ecx, dword [ebp - 0x28]
add ecx, edi
mov dword [eax + 0xc], edx
mov dword [eax + 8], esi
mov ebx, dword [ebp - 0x1c]
mov dword [eax + 4], ebx
mov edi, edx
mov edx, dword [ebp - 0x20]
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], ecx
mov ecx, dword [ebp - 0x24]
add ecx, ebx
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, edi
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