Function at 0x57cfd0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0x40
mov ebx, dword [ebp + 0x10]
mov dword [esp + 8], ebx
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0057c430
mov dword [esp + 0x24], eax
test eax, eax
jne 0x57d26e
mov eax, dword [ebx + 0x110]
movdqu xmm0, xmmword [ebx]
lea edx, [ebx + 0x10]
shl eax, 4
lea esi, [ebx + eax]
movdqu xmm6, xmmword [esi]
lea eax, [esi - 0x10]
mov dword [esp + 0x20], eax
movups xmmword [ebx], xmm6
movups xmmword [esi], xmm0
cmp edx, eax
jae 0x57d1d7
mov dword [esp + 0x3c], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], esi
mov dword [esp + 0x38], eax
mov dword [ebp + 0x10], ebx
mov ebx, dword [esp + 0x3c]
mov eax, dword [ebx]
mov edx, eax
ror edx, 8
xor eax, edx
rol eax, 0x10
xor eax, edx
mov edx, dword [ebx + 4]
mov esi, eax
mov eax, edx
ror eax, 8
xor edx, eax
rol edx, 0x10
xor edx, eax
mov eax, dword [ebx + 8]
mov ecx, eax
ror ecx, 8
xor eax, ecx
rol eax, 0x10
xor eax, ecx
mov ecx, dword [ebx + 0xc]
xor edx, eax
mov edi, ecx
xor esi, edx
ror edi, 8
mov dword [esp + 0x34], esi
xor ecx, edi
rol ecx, 0x10
xor ecx, edi
mov edi, edx
xor eax, ecx
xor ecx, edx
xor eax, esi
bswap ecx
mov dword [esp + 0x28], ecx
xor edi, eax
rol eax, 0x10
mov ebx, edi
shl edi, 8
mov esi, edi
shr ebx, 8
and esi, 0xff00ff00
and ebx, 0xff00ff
or ebx, esi
mov edx, ebx
xor edx, eax
xor eax, ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x34], edx
xor ecx, edx
mov dword [esp + 0x30], ecx
xor ecx, eax
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx]
mov ebx, dword [ecx + 4]
mov edx, dword [ecx + 0xc]
mov edi, eax
ror edi, 8
xor eax, edi
rol eax, 0x10
xor eax, edi
mov esi, eax
mov eax, ebx
ror eax, 8
xor ebx, eax
rol ebx, 0x10
xor ebx, eax
mov eax, dword [ecx + 8]
mov edi, eax
ror edi, 8
xor eax, edi
rol eax, 0x10
xor eax, edi
mov edi, edx
ror edi, 8
xor ebx, eax
xor edx, edi
xor esi, ebx
rol edx, 0x10
xor edx, edi
mov edi, ebx
xor eax, edx
xor edx, ebx
mov ebx, dword [esp + 0x34]
xor eax, esi
bswap edx
xor edi, eax
rol eax, 0x10
mov ecx, edi
shl edi, 8
shr ecx, 8
and edi, 0xff00ff00
and ecx, 0xff00ff
or ecx, edi
xor ecx, eax
xor eax, edx
xor esi, ecx
mov edi, ecx
xor eax, esi
movd xmm0, esi
mov esi, dword [esp + 0x3c]
xor edi, eax
xor edx, ecx
movd xmm1, eax
mov ecx, dword [esp + 0x2c]
movd xmm2, edx
movd xmm3, edi
mov eax, dword [esp + 0x28]
mov edx, ebx
punpckldq xmm1, xmm2
punpckldq xmm0, xmm3
xor edx, ecx
add esi, 0x10
punpcklqdq xmm0, xmm1
movd xmm5, edx
movd xmm1, ecx
xor eax, ebx
movups xmmword [esi - 0x10], xmm0
movd xmm0, dword [esp + 0x30]
movd xmm4, eax
mov ecx, dword [esp + 0x38]
punpckldq xmm1, xmm4
mov dword [esp + 0x3c], esi
punpckldq xmm0, xmm5
sub ecx, 0x10
punpcklqdq xmm0, xmm1
movups xmmword [ecx + 0x10], xmm0
mov dword [esp + 0x38], ecx
cmp esi, ecx
jb 0x57d040
mov esi, dword [esp + 0x18]
mov ebx, dword [ebp + 0x10]
mov edx, dword [esp + 0x1c]
sub esi, ebx
lea eax, [esi - 0x21]
shr eax, 5
add eax, 1
shl eax, 4
sub dword [esp + 0x20], eax
add edx, eax
mov ecx, dword [edx]
mov esi, dword [edx + 4]
mov eax, ecx
ror eax, 8
xor ecx, eax
rol ecx, 0x10
xor ecx, eax
mov eax, esi
ror eax, 8
xor esi, eax
rol esi, 0x10
xor esi, eax
mov eax, dword [edx + 8]
mov ebx, eax
ror ebx, 8
xor eax, ebx
rol eax, 0x10
xor eax, ebx
mov ebx, dword [edx + 0xc]
xor esi, eax
mov edx, ebx
xor ecx, esi
ror edx, 8
xor ebx, edx
rol ebx, 0x10
xor ebx, edx
mov edx, ecx
xor eax, ebx
xor ebx, esi
xor eax, ecx
mov ecx, esi
bswap ebx
xor ecx, eax
rol eax, 0x10
mov edi, ecx
shr ecx, 8
shl edi, 8
and ecx, 0xff00ff
and edi, 0xff00ff00
or ecx, edi
xor ecx, eax
xor eax, ebx
xor edx, ecx
mov esi, ecx
xor eax, edx
movd xmm0, edx
xor esi, eax
xor ecx, ebx
movd xmm1, eax
mov eax, dword [esp + 0x20]
movd xmm7, ecx
movd xmm6, esi
punpckldq xmm1, xmm7
punpckldq xmm0, xmm6
punpcklqdq xmm0, xmm1
movups xmmword [eax], xmm0
mov eax, dword [esp + 0x24]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret