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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x160
mov eax, dword [0x462114]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
mov ebx, edx
mov dword [ebp - 0x15c], edi
xor esi, esi
mov ecx, dword [ebx + esi*4]
mov edx, ecx
shr edx, 8
mov eax, ecx
shl eax, 8
xor edx, eax
shl ecx, 8
and edx, 0xff00ff
xor edx, ecx
rol edx, 0x10
mov dword [ebp + esi*4 - 0x144], edx
inc esi
cmp esi, 0x10
jl 0x4049de
push 0x40
lea edx, [ebp - 0x13c]
pop esi
mov eax, dword [edx + 0x2c]
xor eax, dword [edx + 0x18]
xor eax, dword [edx - 8]
xor eax, dword [edx]
lea edx, [edx + 4]
mov ecx, eax
add eax, eax
shr ecx, 0x1f
xor ecx, eax
mov dword [edx + 0x34], ecx
sub esi, 1
jne 0x404a11
mov eax, dword [edi]
mov ecx, eax
mov ebx, dword [edi + 0xc]
mov esi, dword [edi + 4]
mov edx, dword [edi + 8]
mov dword [ebp - 0x160], eax
mov eax, dword [edi + 0x10]
xor edi, edi
mov dword [ebp - 0x14c], ecx
mov dword [ebp - 0x148], ebx
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x154], 0x14
jmp 0x404a6c
mov ebx, dword [ebp - 0x148]
mov eax, dword [ebp - 0x14c]
shl eax, 5
shr ecx, 0x1b
xor ecx, eax
mov eax, ebx
xor eax, edx
and eax, esi
xor eax, ebx
mov ebx, dword [ebp - 0x150]
add ecx, eax
add ebx, 0x5a827999
mov eax, dword [ebp - 0x148]
add ecx, dword [ebp + edi*4 - 0x144]
mov dword [ebp - 0x150], eax
add ebx, ecx
mov eax, edx
mov ecx, ebx
mov edx, esi
mov dword [ebp - 0x148], eax
shr esi, 2
shl edx, 0x1e
xor edx, esi
mov esi, dword [ebp - 0x14c]
inc edi
mov dword [ebp - 0x14c], ecx
cmp edi, 0x14
jl 0x404a66
mov dword [ebp - 0x158], 0x28
xor eax, edx
mov ecx, ebx
shr ecx, 0x1b
xor eax, esi
shl ebx, 5
xor ecx, ebx
mov ebx, dword [ebp - 0x150]
add ecx, eax
add ebx, 0x6ed9eba1
mov eax, dword [ebp - 0x154]
add ecx, dword [ebp + eax*4 - 0x144]
mov eax, dword [ebp - 0x148]
add ebx, ecx
mov ecx, dword [ebp - 0x154]
mov dword [ebp - 0x150], eax
mov eax, edx
mov edx, esi
mov dword [ebp - 0x148], eax
shr esi, 2
shl edx, 0x1e
xor edx, esi
mov esi, dword [ebp - 0x14c]
inc ecx
mov dword [ebp - 0x14c], ebx
mov dword [ebp - 0x154], ecx
cmp ecx, 0x28
jl 0x404ad5
mov ecx, edx
or ecx, esi
and ecx, eax
mov eax, edx
and eax, esi
or ecx, eax
mov eax, ebx
shr eax, 0x1b
shl ebx, 5
xor eax, ebx
mov ebx, dword [ebp - 0x150]
add ecx, eax
add ebx, 0x8f1bbcdc
mov eax, dword [ebp - 0x158]
add ecx, dword [ebp + eax*4 - 0x144]
mov eax, dword [ebp - 0x148]
add ebx, ecx
mov ecx, dword [ebp - 0x158]
mov dword [ebp - 0x150], eax
mov eax, edx
mov edx, esi
mov dword [ebp - 0x148], eax
shr esi, 2
shl edx, 0x1e
xor edx, esi
mov esi, dword [ebp - 0x14c]
inc ecx
mov dword [ebp - 0x14c], ebx
mov dword [ebp - 0x158], ecx
cmp ecx, 0x3c
jl 0x404b3c
push 0x3c
pop edi
mov ecx, ebx
xor eax, edx
shr ecx, 0x1b
xor eax, esi
shl ebx, 5
xor ecx, ebx
mov ebx, dword [ebp - 0x150]
add ecx, eax
add ebx, 0xca62c1d6
add ecx, dword [ebp + edi*4 - 0x144]
mov eax, edx
mov edx, esi
add ebx, ecx
mov ecx, dword [ebp - 0x148]
shr esi, 2
shl edx, 0x1e
xor edx, esi
mov dword [ebp - 0x150], ecx
mov esi, dword [ebp - 0x14c]
inc edi
mov dword [ebp - 0x148], eax
mov dword [ebp - 0x14c], ebx
cmp edi, 0x50
jl 0x404bae
mov edi, dword [ebp - 0x15c]
mov eax, dword [ebp - 0x160]
add eax, ebx
add dword [edi + 0x10], ecx
add dword [edi + 4], esi
add dword [edi + 8], edx
mov ecx, dword [ebp - 4]
mov dword [edi], eax
xor ecx, ebp
mov eax, dword [ebp - 0x148]
add dword [edi + 0xc], eax
pop edi
pop esi
pop ebx
call fcn.0041345a
leave
ret