Function at 0x101ae1a0
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x168
mov eax, dword [0x10415990]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x1c]
push esi
mov esi, dword [ebx + 0xc]
push edi
mov edi, dword [ebx + 0x14]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x30], eax
test esi, esi
je 0x101ae8a3
movdqa xmm0, xmmword [0x102950e0]
mov edx, ecx
and edx, 0xf
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x38], esi
mov edi, edi
cmp byte [edi], 0xff
movdqa xmm2, xmmword [0x102950f0]
mov esi, dword [ebp - 0x3c]
movdqa xmm7, xmm2
movdqa xmm6, xmm2
movdqa xmm4, xmm2
movdqa xmm5, xmm2
movdqa xmm3, xmm2
movdqa xmmword [ebp - 0x110], xmm2
movdqa xmmword [ebp - 0x100], xmm7
movdqa xmmword [ebp - 0x160], xmm6
movdqa xmmword [ebp - 0xf0], xmm2
movdqa xmmword [ebp - 0x130], xmm4
movdqa xmmword [ebp - 0x140], xmm5
movdqa xmmword [ebp - 0x120], xmm2
movdqa xmmword [ebp - 0x150], xmm3
je 0x101ae702
movzx ecx, word [eax]
mov edx, ecx
shl edx, 0x10
or ecx, edx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], ecx
movzx ecx, word [eax + 2]
mov edx, ecx
shl edx, 0x10
or ecx, edx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], ecx
movzx ecx, word [eax + 4]
movzx eax, word [eax + 6]
mov edx, ecx
shl edx, 0x10
or ecx, edx
movzx edx, byte [edi + 2]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], ecx
mov ecx, eax
shl ecx, 0x10
or eax, ecx
movzx ecx, byte [edi + 1]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], eax
movzx eax, byte [edi]
shl eax, 4
add eax, esi
movzx esi, byte [edi + 3]
mov edi, dword [eax]
movq xmm2, qword [ebp - 0x20]
movq xmm4, qword [ebp - 0x28]
shl ecx, 4
add ecx, eax
mov dword [ebp - 0xe0], edi
mov edi, dword [eax + 4]
mov dword [ebp - 0xdc], edi
mov edi, dword [eax + 8]
mov eax, dword [eax + 0xc]
movq xmm1, qword [ebp - 0xe0]
mov dword [ebp - 0xb4], eax
mov eax, dword [ecx]
mov dword [ebp - 0x98], eax
mov eax, dword [ecx + 4]
shl edx, 4
add edx, ecx
mov dword [ebp - 0x94], eax
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [ebp - 0x88], eax
mov eax, dword [edx]
mov dword [ebp - 0x84], ecx
mov ecx, dword [edx + 4]
movdqa xmm0, xmm1
shl esi, 4
add esi, edx
mov dword [ebp - 0x90], eax
mov eax, dword [edx + 8]
mov dword [ebp - 0x8c], ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [esi]
pmulhw xmm1, xmm2
mov dword [ebp - 0xb8], edi
movq xmm3, qword [ebp - 0xb8]
pmullw xmm0, xmm2
punpcklwd xmm0, xmm1
movdqa xmm1, xmm3
mov dword [ebp - 0x78], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x74], ecx
mov ecx, dword [esi + 8]
mov dword [ebp - 0xd8], edx
mov edx, dword [esi + 0xc]
pmulhw xmm3, xmm2
pmullw xmm1, xmm2
punpcklwd xmm1, xmm3
movq xmm3, qword [ebp - 0x98]
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], edx
movq xmm5, qword [ebp - 0x88]
movq xmm6, qword [ebp - 0x18]
movq xmm7, qword [ebp - 0x78]
movdqa xmm2, xmm3
pmulhw xmm3, xmm4
pmullw xmm2, xmm4
punpcklwd xmm2, xmm3
movdqa xmm3, xmm5
pmulhw xmm5, xmm4
pmullw xmm3, xmm4
punpcklwd xmm3, xmm5
movq xmm5, qword [ebp - 0x90]
movdqa xmm4, xmm5
pmulhw xmm5, xmm6
pmullw xmm4, xmm6
punpcklwd xmm4, xmm5
movdqa xmm5, xmm7
pmulhw xmm7, xmm6
pmullw xmm5, xmm6
movq xmm6, qword [ebp - 0xd8]
movdqa xmmword [ebp - 0xb0], xmm6
punpcklwd xmm5, xmm7
movq xmm7, qword [ebp - 0x10]
pmullw xmm6, xmm7
movdqa xmmword [ebp - 0xd0], xmm6
movdqa xmm6, xmmword [ebp - 0xb0]
pmulhw xmm6, xmm7
movdqa xmm7, xmmword [ebp - 0xd0]
punpcklwd xmm7, xmm6
movq xmm6, qword [ebp - 0x80]
movdqa xmmword [ebp - 0xd0], xmm6
movdqa xmmword [ebp - 0x70], xmm7
movdqa xmm7, xmm6
movq xmm6, qword [ebp - 0x10]
pmullw xmm7, xmm6
movdqa xmmword [ebp - 0xb0], xmm7
movdqa xmm7, xmmword [ebp - 0xd0]
pmulhw xmm7, xmm6
movdqa xmm6, xmmword [ebp - 0xb0]
punpcklwd xmm6, xmm7
movdqa xmm7, xmmword [ebp - 0x110]
movdqa xmmword [ebp - 0x50], xmm6
movdqa xmm6, xmm7
paddd xmm6, xmm0
pxor xmm0, xmm7
movdqa xmmword [ebp - 0xd0], xmm6
pxor xmm6, xmm7
pandn xmm0, xmm6
psrad xmm0, 0x1f
psrld xmm7, 0x1f
paddd xmm7, xmmword [0x102950e0]
movdqa xmmword [ebp - 0xb0], xmm0
movdqa xmm6, xmm0
pandn xmm6, xmmword [ebp - 0xd0]
movdqa xmm0, xmmword [ebp - 0xb0]
pand xmm0, xmm7
por xmm6, xmm0
movdqa xmm0, xmmword [ebp - 0x100]
movdqa xmmword [ebp - 0x110], xmm6
movdqa xmm6, xmm0
paddd xmm6, xmm1
movdqa xmm7, xmm6
pxor xmm7, xmm0
pxor xmm1, xmm0
pandn xmm1, xmm7
psrad xmm1, 0x1f
movdqa xmm7, xmm1
pandn xmm7, xmm6
movdqa xmm6, xmm0
movdqa xmm0, xmmword [0x102950e0]
psrld xmm6, 0x1f
paddd xmm6, xmm0
pand xmm1, xmm6
por xmm7, xmm1
movdqa xmm1, xmmword [ebp - 0x160]
movdqa xmmword [ebp - 0x100], xmm7
movdqa xmm6, xmm1
paddd xmm6, xmm2
movdqa xmm7, xmm6
pxor xmm2, xmm1
pxor xmm7, xmm1
pandn xmm2, xmm7
psrld xmm1, 0x1f
paddd xmm1, xmm0
psrad xmm2, 0x1f
movdqa xmm7, xmm2
pand xmm2, xmm1
movdqa xmm1, xmmword [ebp - 0xf0]
pandn xmm7, xmm6
por xmm7, xmm2
movdqa xmm2, xmm1
paddd xmm2, xmm3
pxor xmm3, xmm1
movdqa xmm6, xmm7
movdqa xmm7, xmm2
pxor xmm7, xmm1
pandn xmm3, xmm7
psrld xmm1, 0x1f
paddd xmm1, xmm0
psrad xmm3, 0x1f
movdqa xmm7, xmm3
pand xmm3, xmm1
movdqa xmm1, xmmword [ebp - 0x130]
pandn xmm7, xmm2
por xmm7, xmm3
movdqa xmm2, xmm1
paddd xmm2, xmm4
pxor xmm4, xmm1
movdqa xmm3, xmm2
pxor xmm3, xmm1
pandn xmm4, xmm3
psrld xmm1, 0x1f
paddd xmm1, xmm0
psrad xmm4, 0x1f
movdqa xmm3, xmm4
pandn xmm3, xmm2
pand xmm4, xmm1
movdqa xmm1, xmmword [ebp - 0x140]
movdqa xmm2, xmm1
paddd xmm2, xmm5
pxor xmm5, xmm1
por xmm4, xmm3
movdqa xmm3, xmm2
pxor xmm3, xmm1
pandn xmm5, xmm3
psrld xmm1, 0x1f
paddd xmm1, xmm0
movdqa xmmword [ebp - 0xf0], xmm7
psrad xmm5, 0x1f
movdqa xmm3, xmm5
pand xmm5, xmm1
movdqa xmm1, xmmword [ebp - 0x70]
pandn xmm3, xmm2
movdqa xmm2, xmmword [ebp - 0x120]
por xmm5, xmm3
movdqa xmm3, xmm2
paddd xmm3, xmm1
pxor xmm1, xmm2
movdqa xmm7, xmm3
pxor xmm7, xmm2
pandn xmm1, xmm7
psrad xmm1, 0x1f
movdqa xmm7, xmm1
pandn xmm7, xmm3
psrld xmm2, 0x1f
paddd xmm2, xmm0
pand xmm1, xmm2
movdqa xmm2, xmmword [ebp - 0x150]
por xmm7, xmm1
movdqa xmm1, xmmword [ebp - 0x50]
movdqa xmmword [ebp - 0x120], xmm7
movdqa xmm3, xmm2
paddd xmm3, xmm1
pxor xmm1, xmm2
movdqa xmm7, xmm3
pxor xmm7, xmm2
pandn xmm1, xmm7
psrad xmm1, 0x1f
movdqa xmmword [ebp - 0x160], xmm6
movdqa xmmword [ebp - 0x130], xmm4
movdqa xmmword [ebp - 0x140], xmm5
movdqa xmm7, xmm1
mov edi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
psrld xmm2, 0x1f
pandn xmm7, xmm3
paddd xmm2, xmm0
add edi, 4
pand xmm1, xmm2
add eax, 8
cmp byte [edi], 0xff
por xmm7, xmm1
movdqa xmm3, xmm7
movdqa xmmword [ebp - 0x150], xmm3
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edi
jne 0x101ae268
movdqa xmm2, xmmword [ebp - 0x110]
movdqa xmm7, xmmword [ebp - 0x100]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x54]
movdqa xmm1, xmm2
paddd xmm1, xmm6
pxor xmm6, xmm2
movdqa xmmword [ebp - 0x50], xmm1
pxor xmm1, xmm2
pandn xmm6, xmm1
psrad xmm6, 0x1f
movdqa xmm1, xmm6
psrld xmm2, 0x1f
paddd xmm2, xmm0
movdqa xmmword [ebp - 0x70], xmm1
pandn xmm1, xmmword [ebp - 0x50]
movdqa xmm6, xmmword [ebp - 0x70]
pand xmm6, xmm2
movdqa xmm2, xmmword [ebp - 0x120]
por xmm1, xmm6
movdqa xmm6, xmm4
paddd xmm6, xmm2
pxor xmm2, xmm4
movdqa xmmword [ebp - 0x50], xmm6
pxor xmm6, xmm4
pandn xmm2, xmm6
psrld xmm4, 0x1f
paddd xmm4, xmm0
psrad xmm2, 0x1f
movdqa xmmword [ebp - 0x70], xmm2
movdqa xmm6, xmm2
pandn xmm6, xmmword [ebp - 0x50]
movdqa xmm2, xmmword [ebp - 0x70]
pand xmm2, xmm4
por xmm6, xmm2
movdqa xmm2, xmmword [ebp - 0xf0]
movdqa xmm4, xmm7
paddd xmm4, xmm2
movdqa xmmword [ebp - 0x50], xmm4
pxor xmm4, xmm7
pxor xmm2, xmm7
pandn xmm2, xmm4
psrad xmm2, 0x1f
movdqa xmmword [ebp - 0x70], xmm2
movdqa xmm4, xmmword [ebp - 0x70]
pandn xmm2, xmmword [ebp - 0x50]
psrld xmm7, 0x1f
paddd xmm7, xmm0
pand xmm4, xmm7
por xmm2, xmm4
movdqa xmm7, xmm5
paddd xmm7, xmm3
pxor xmm3, xmm5
movdqa xmm4, xmm7
pxor xmm4, xmm5
pandn xmm3, xmm4
psrad xmm3, 0x1f
psrld xmm5, 0x1f
movdqa xmm4, xmm3
paddd xmm5, xmm0
pand xmm3, xmm5
pandn xmm4, xmm7
por xmm4, xmm3
movdqa xmm3, xmm1
paddd xmm3, xmm6
pxor xmm6, xmm1
movdqa xmm5, xmm3
pxor xmm5, xmm1
pandn xmm6, xmm5
psrld xmm1, 0x1f
psrad xmm6, 0x1f
paddd xmm1, xmm0
movdqa xmm5, xmm6
pand xmm6, xmm1
pandn xmm5, xmm3
movdqa xmm1, xmm2
paddd xmm1, xmm4
pxor xmm4, xmm2
movdqa xmm3, xmm1
add edi, 4
pxor xmm3, xmm2
pandn xmm4, xmm3
mov dword [ebp - 0x2c], edi
por xmm5, xmm6
psrad xmm4, 0x1f
movdqa xmm3, xmm4
psrld xmm2, 0x1f
paddd xmm2, xmm0
pandn xmm3, xmm1
pand xmm4, xmm2
por xmm3, xmm4
test edx, edx
jne 0x101ae88b
movdqa xmmword [ecx], xmm5
movdqa xmmword [ecx + 0x10], xmm3
jmp 0x101ae894
movdqu xmmword [ecx], xmm5
movdqu xmmword [ecx + 0x10], xmm3
add ecx, 0x20
dec dword [ebp - 0x38]
mov dword [ebp - 0x34], ecx
jne 0x101ae200
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.1015eea7
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret