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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov esi, ecx
push dword [ecx + 0x28]
call fcn.004dfc84
add esp, 4
mov dword [esi + 0x28], eax
push dword [esi + 0x2c]
call fcn.004dfc84
add esp, 4
mov dword [esi + 0x2c], eax
push dword [esi + 0x30]
call fcn.004dfc84
add esp, 4
mov dword [esi + 0x30], eax
push dword [esi + 0x34]
call fcn.004dfc84
add esp, 4
mov dword [esi + 0x34], eax
push dword [esi + 0x38]
call fcn.004dfc84
add esp, 4
mov dword [esi + 0x38], eax
push dword [esi + 0x3c]
call fcn.004dfc84
add esp, 4
mov dword [esi + 0x3c], eax
push dword [esi + 0x40]
call fcn.004dfc84
add esp, 4
mov dword [esi + 0x40], eax
push dword [esi + 0x44]
call fcn.004dfc84
add esp, 4
mov dword [esi + 0x44], eax
push dword [esi + 0x48]
call fcn.004dfc84
add esp, 4
mov dword [esi + 0x48], eax
push dword [esi + 0x4c]
call fcn.004dfc84
add esp, 4
mov dword [esi + 0x4c], eax
push dword [esi + 0x50]
call fcn.004dfc84
add esp, 4
mov dword [esi + 0x50], eax
push dword [esi + 0x54]
call fcn.004dfc84
add esp, 4
mov dword [esi + 0x54], eax
push dword [esi + 0x58]
call fcn.004dfc84
add esp, 4
mov dword [esi + 0x58], eax
push dword [esi + 0x5c]
call fcn.004dfc84
add esp, 4
mov dword [esi + 0x5c], eax
push dword [esi + 0x60]
call fcn.004dfc84
add esp, 4
mov dword [esi + 0x60], eax
push dword [esi + 0x64]
call fcn.004dfc84
add esp, 4
mov dword [esi + 0x64], eax
mov eax, 0xffffff00
mov dword [ebp - 0x14], esi
nop word cs:[eax + eax]
nop dword [eax]
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + eax + 0x148]
xor ecx, dword [edx + eax + 0x15c]
xor ecx, dword [edx + eax + 0x130]
xor ecx, dword [edx + eax + 0x128]
rol ecx, 1
mov dword [edx + eax + 0x168], ecx
add eax, 4
jne 0x44a980
mov eax, dword [ebp - 0x14]
xor ebx, ebx
movdqu xmm0, xmmword [eax + 0x14]
movdqu xmmword [eax], xmm0
pshufd xmm1, xmm0, 0xe5
mov ecx, dword [eax + 0x24]
movd edx, xmm1
pshufd xmm1, xmm0, 0x4e
movd esi, xmm1
pshufd xmm1, xmm0, 0xe7
movd dword [ebp - 0x10], xmm1
mov dword [eax + 0x10], ecx
movd eax, xmm0
mov edi, ecx
mov dword [ebp - 0x20], ecx
nop word cs:[eax + eax]
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], ecx
mov ecx, esi
mov esi, edx
mov edx, eax
rol edx, 5
cmp ebx, 0x14
mov dword [ebp - 0x10], ecx
jae 0x44aa30
mov eax, esi
mov dword [ebp - 0x24], edi
mov edi, esi
not eax
and edi, ecx
mov ecx, dword [ebp - 0x14]
and eax, dword [ebp - 0x18]
or eax, edi
add eax, edx
mov edx, 0x5a827999
add eax, dword [ebp - 0x24]
jmp 0x44aa4d
mov eax, dword [ebp - 0x18]
cmp ebx, 0x28
jae 0x44aa60
mov ecx, eax
mov eax, dword [ebp - 0x10]
xor eax, ecx
mov ecx, dword [ebp - 0x14]
xor eax, esi
add eax, edx
mov edx, 0x6ed9eba1
add eax, edi
add eax, dword [ecx + ebx*4 + 0x28]
mov ecx, dword [ebp - 0x1c]
jmp 0x44aa9d
cmp ebx, 0x3b
ja 0x44aa76
mov ecx, dword [ebp - 0x10]
or ecx, eax
mov eax, dword [ebp - 0x10]
and ecx, esi
and eax, dword [ebp - 0x18]
or eax, ecx
jmp 0x44aa7f
mov ecx, eax
mov eax, dword [ebp - 0x10]
xor eax, ecx
xor eax, esi
add eax, edx
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
add eax, edi
mov edi, 0x8f1bbcdc
add eax, dword [edx + ebx*4 + 0x28]
cmp ebx, 0x3c
mov edx, 0xca62c1d6
cmovb edx, edi
mov edi, dword [ebp - 0x18]
inc ebx
add eax, edx
rol esi, 0x1e
mov edx, ecx
cmp ebx, 0x50
jne 0x44a9f0
mov edx, ecx
mov ecx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x18]
movd xmm2, esi
movd xmm4, eax
movd xmm3, edx
punpckldq xmm4, xmm3
mov dword [edi + 0x10], ebx
mov dword [edi + 0xc], ecx
movd xmm1, ecx
mov ecx, dword [ebp - 0x20]
mov dword [edi + 8], esi
mov dword [edi + 4], edx
mov dword [edi], eax
punpckldq xmm2, xmm1
punpcklqdq xmm4, xmm2
paddd xmm4, xmm0
add ecx, ebx
movdqu xmmword [edi + 0x14], xmm4
mov dword [edi + 0x24], ecx
mov dword [edi + 0x168], 0
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret