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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffe8
mov dword [esp + 4], edx
mov dword [esp], eax
mov ebx, 0x10
mov eax, dword [esp + 4]
mov eax, dword [eax + ebx*4 - 0xc]
mov edx, dword [esp + 4]
xor eax, dword [edx + ebx*4 - 0x20]
mov edx, dword [esp + 4]
xor eax, dword [edx + ebx*4 - 0x38]
mov edx, dword [esp + 4]
xor eax, dword [edx + ebx*4 - 0x40]
mov dl, 1
call fcn.0041757c
mov edx, dword [esp + 4]
mov dword [edx + ebx*4], eax
inc ebx
cmp ebx, 0x50
jne 0x41809f
mov eax, dword [esp]
mov eax, dword [eax]
mov dword [esp + 8], eax
mov esi, dword [esp]
mov esi, dword [esi + 4]
mov edi, dword [esp]
mov edi, dword [edi + 8]
mov ebp, dword [esp]
mov ebp, dword [ebp + 0xc]
mov eax, dword [esp]
mov eax, dword [eax + 0x10]
mov dword [esp + 0xc], eax
xor ebx, ebx
mov eax, edi
and eax, esi
mov edx, esi
not edx
and edx, ebp
or eax, edx
mov dword [esp + 0x10], eax
mov dl, 5
mov eax, dword [esp + 8]
call fcn.0041757c
add eax, dword [esp + 0x10]
add eax, dword [esp + 0xc]
add eax, 0x5a827999
mov edx, dword [esp + 4]
add eax, dword [edx + ebx*4]
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], ebp
mov ebp, edi
mov dl, 0x1e
mov eax, esi
call fcn.0041757c
mov edi, eax
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x14]
mov dword [esp + 8], eax
inc ebx
cmp ebx, 0x14
jne 0x4180fa
mov ebx, 0x14
mov eax, edi
xor eax, esi
xor eax, ebp
mov dword [esp + 0x10], eax
mov dl, 5
mov eax, dword [esp + 8]
call fcn.0041757c
add eax, dword [esp + 0x10]
add eax, dword [esp + 0xc]
add eax, 0x6ed9eba1
mov edx, dword [esp + 4]
add eax, dword [edx + ebx*4]
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], ebp
mov ebp, edi
mov dl, 0x1e
mov eax, esi
call fcn.0041757c
mov edi, eax
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x14]
mov dword [esp + 8], eax
inc ebx
cmp ebx, 0x28
jne 0x418155
mov ebx, 0x28
mov eax, edi
and eax, esi
mov edx, ebp
and edx, esi
or eax, edx
mov edx, ebp
and edx, edi
or eax, edx
mov dword [esp + 0x10], eax
mov dl, 5
mov eax, dword [esp + 8]
call fcn.0041757c
add eax, dword [esp + 0x10]
add eax, dword [esp + 0xc]
add eax, 0x8f1bbcdc
mov edx, dword [esp + 4]
add eax, dword [edx + ebx*4]
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], ebp
mov ebp, edi
mov dl, 0x1e
mov eax, esi
call fcn.0041757c
mov edi, eax
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x14]
mov dword [esp + 8], eax
inc ebx
cmp ebx, 0x3c
jne 0x4181aa
mov ebx, 0x3c
mov eax, edi
xor eax, esi
xor eax, ebp
mov dword [esp + 0x10], eax
mov dl, 5
mov eax, dword [esp + 8]
call fcn.0041757c
add eax, dword [esp + 0x10]
add eax, dword [esp + 0xc]
add eax, 0xca62c1d6
mov edx, dword [esp + 4]
add eax, dword [edx + ebx*4]
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], ebp
mov ebp, edi
mov dl, 0x1e
mov eax, esi
call fcn.0041757c
mov edi, eax
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x14]
mov dword [esp + 8], eax
inc ebx
cmp ebx, 0x50
jne 0x418209
mov eax, dword [esp]
mov eax, dword [eax]
add eax, dword [esp + 8]
mov edx, dword [esp]
mov dword [edx], eax
mov eax, dword [esp]
add esi, dword [eax + 4]
mov eax, dword [esp]
mov dword [eax + 4], esi
mov eax, dword [esp]
add edi, dword [eax + 8]
mov eax, dword [esp]
mov dword [eax + 8], edi
mov eax, dword [esp]
add ebp, dword [eax + 0xc]
mov eax, dword [esp]
mov dword [eax + 0xc], ebp
mov eax, dword [esp]
mov eax, dword [eax + 0x10]
add eax, dword [esp + 0xc]
mov edx, dword [esp]
mov dword [edx + 0x10], eax
add esp, 0x18
pop ebp
pop edi
pop esi
pop ebx
ret