Function at 0x43e730
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 [esi + 0x28]
call fcn.004e8721
add esp, 4
mov dword [esi + 0x28], eax
push dword [esi + 0x2c]
call fcn.004e8721
add esp, 4
mov dword [esi + 0x2c], eax
push dword [esi + 0x30]
call fcn.004e8721
add esp, 4
mov dword [esi + 0x30], eax
push dword [esi + 0x34]
call fcn.004e8721
add esp, 4
mov dword [esi + 0x34], eax
push dword [esi + 0x38]
call fcn.004e8721
add esp, 4
mov dword [esi + 0x38], eax
push dword [esi + 0x3c]
call fcn.004e8721
add esp, 4
mov dword [esi + 0x3c], eax
push dword [esi + 0x40]
call fcn.004e8721
add esp, 4
mov dword [esi + 0x40], eax
push dword [esi + 0x44]
call fcn.004e8721
add esp, 4
mov dword [esi + 0x44], eax
push dword [esi + 0x48]
call fcn.004e8721
add esp, 4
mov dword [esi + 0x48], eax
push dword [esi + 0x4c]
call fcn.004e8721
add esp, 4
mov dword [esi + 0x4c], eax
push dword [esi + 0x50]
call fcn.004e8721
add esp, 4
mov dword [esi + 0x50], eax
push dword [esi + 0x54]
call fcn.004e8721
add esp, 4
mov dword [esi + 0x54], eax
push dword [esi + 0x58]
call fcn.004e8721
add esp, 4
mov dword [esi + 0x58], eax
push dword [esi + 0x5c]
call fcn.004e8721
add esp, 4
mov dword [esi + 0x5c], eax
push dword [esi + 0x60]
call fcn.004e8721
add esp, 4
mov dword [esi + 0x60], eax
push dword [esi + 0x64]
call fcn.004e8721
add esp, 4
mov dword [esi + 0x64], eax
mov eax, 0xffffff00
mov dword [ebp - 0x14], esi
nop word cs:[eax + 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 0x43e830
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 0x43e8e0
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 0x43e8fd
mov eax, dword [ebp - 0x18]
cmp ebx, 0x28
jae 0x43e910
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 0x43e94d
cmp ebx, 0x3b
ja 0x43e926
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 0x43e92f
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 0x43e8a0
mov edx, ecx
mov ecx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x18]
movd xmm3, eax
movd xmm2, esi
movd xmm4, edx
punpckldq xmm3, xmm4
mov dword [edi + 0x10], ebx
mov dword [edi + 0xc], ecx
mov dword [edi + 8], esi
mov dword [edi + 4], edx
mov dword [edi], eax
mov eax, dword [ebp - 0x20]
movd xmm1, ecx
punpckldq xmm2, xmm1
punpcklqdq xmm3, xmm2
paddd xmm3, xmm0
add eax, ebx
movdqu xmmword [edi + 0x14], xmm3
mov dword [edi + 0x24], eax
mov dword [edi + 0x168], 0
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret