Function at 0x419a30
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
mov eax, dword [0x548014]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [ecx], 0
push ebx
mov ebx, dword [ebp + 0x10]
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], ebx
jne 0x419d83
cmp dword [ecx + 8], 0
jne 0x419d83
test edi, edi
je 0x419d6f
mov eax, dword [ebp + 0xc]
test eax, eax
jle 0x419d6f
cdq
and edx, 0xf
add eax, edx
mov edx, dword [ecx + 4]
sar eax, 4
mov dword [ebp - 0x20], eax
push esi
sub edx, 0
je 0x419cfd
sub edx, 1
je 0x419aa8
pop esi
pop edi
or eax, 0xffffffff
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004ad8d4
mov esp, ebp
pop ebp
ret 0xc
mov dword [ebp - 0x1c], eax
lea esi, [ecx + 0xc]
mov dword [ebp - 0x34], esi
test eax, eax
jle 0x419b00
mov eax, dword [edi]
xor eax, dword [esi]
mov dword [ebp - 0x14], eax
mov eax, dword [edi + 4]
xor eax, dword [esi + 4]
mov dword [ebp - 0x10], eax
mov eax, dword [edi + 8]
xor eax, dword [esi + 8]
mov dword [ebp - 0xc], eax
mov eax, dword [edi + 0xc]
xor eax, dword [esi + 0xc]
mov dword [ebp - 8], eax
lea eax, [ebp - 0x14]
push ebx
push eax
call fcn.0041a180
mov eax, dword [ebp - 0x1c]
mov esi, ebx
mov ecx, dword [ebp - 0x28]
dec eax
add edi, 0x10
mov dword [ebp - 0x1c], eax
add ebx, 0x10
test eax, eax
jg 0x419ab5
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x34], esi
shl eax, 4
mov edx, 0x10
mov dword [ebp - 0x20], eax
xor ecx, ecx
sub eax, dword [ebp + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], ecx
sub edx, eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x38], edx
test edx, edx
jle 0x419c48
cmp edx, 0x40
jb 0x419c17
mov dword [ebp - 0x18], ecx
lea eax, [esi - 1]
lea ecx, [ebp - 0x14]
add eax, edx
cmp ecx, eax
mov ecx, 0
ja 0x419b4f
lea eax, [ebp + edx - 0x15]
cmp eax, esi
jae 0x419c17
lea eax, [edi - 1]
lea ebx, [ebp - 0x14]
add eax, edx
cmp ebx, eax
mov ebx, dword [ebp - 0x24]
ja 0x419b6a
lea eax, [ebp + edx - 0x15]
cmp eax, edi
jae 0x419c17
mov eax, edx
and eax, 0x8000003f
jns 0x419b78
dec eax
or eax, 0xffffffc0
inc eax
mov dword [ebp - 0x18], edx
mov ebx, edi
sub dword [ebp - 0x18], eax
lea edx, [ebp - 0x14]
sub edx, esi
sub ebx, esi
mov dword [ebp - 0x40], edx
mov eax, esi
lea edx, [ebp - 4]
mov dword [ebp - 0x3c], ebx
sub edx, esi
mov dword [ebp - 0x44], edx
lea edx, [ebp + 0xc]
sub edx, esi
mov dword [ebp - 0x2c], edx
lea edx, [ebp + 0x1c]
sub edx, esi
mov esi, dword [ebp - 0x40]
mov dword [ebp - 0x30], edx
mov edx, ebx
nop dword [eax]
movups xmm0, xmmword [eax]
mov ebx, dword [ebp - 0x44]
lea eax, [eax + 0x40]
movups xmm1, xmmword [edx + eax - 0x40]
pxor xmm1, xmm0
movups xmm0, xmmword [eax - 0x30]
movups xmmword [esi + eax - 0x40], xmm1
movups xmm1, xmmword [edi + ecx + 0x10]
pxor xmm1, xmm0
movups xmm0, xmmword [eax - 0x20]
movups xmmword [ebx + eax - 0x40], xmm1
mov ebx, dword [ebp - 0x2c]
movups xmm1, xmmword [edi + ecx + 0x20]
pxor xmm1, xmm0
movups xmm0, xmmword [eax - 0x10]
movups xmmword [ebx + eax - 0x40], xmm1
mov ebx, dword [ebp - 0x30]
movups xmm1, xmmword [edi + ecx + 0x30]
add ecx, 0x40
pxor xmm1, xmm0
movups xmmword [eax + ebx - 0x40], xmm1
mov ebx, dword [ebp - 0x24]
cmp ecx, dword [ebp - 0x18]
jl 0x419bb0
mov esi, dword [ebp - 0x34]
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x18], ecx
cmp ecx, edx
jge 0x419c48
lea eax, [ebp - 0x14]
mov dword [ebp - 0x30], edx
sub eax, esi
add ecx, esi
sub edi, esi
mov dword [ebp - 0x2c], eax
sub edx, dword [ebp - 0x18]
mov ebx, eax
nop
mov al, byte [edi + ecx]
lea ecx, [ecx + 1]
xor al, byte [ecx - 1]
mov byte [ebx + ecx - 1], al
sub edx, 1
jne 0x419c30
mov ebx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x38]
mov eax, edx
cmp edx, 0x10
jge 0x419cde
cmp dword [ebp - 0x1c], 0x40
jb 0x419cde
lea ecx, [ebp - 0x14]
lea edi, [edx + esi]
add edx, ecx
lea ecx, [esi + 0xf]
cmp edx, ecx
ja 0x419c73
lea ecx, [ebp - 5]
cmp ecx, edi
jae 0x419cde
mov edx, dword [ebp - 0x1c]
mov ecx, edx
and ecx, 0x8000003f
jns 0x419c85
dec ecx
or ecx, 0xffffffc0
inc ecx
mov edi, 0x10
sub edi, ecx
movsx ecx, dl
movd xmm0, ecx
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
pshufd xmm1, xmm0, 0
movups xmm0, xmmword [esi + eax]
pxor xmm0, xmm1
movups xmmword [ebp + eax - 0x14], xmm0
movups xmm0, xmmword [esi + eax + 0x10]
pxor xmm0, xmm1
movups xmmword [ebp + eax - 4], xmm0
movups xmm0, xmmword [esi + eax + 0x20]
pxor xmm0, xmm1
movups xmmword [ebp + eax + 0xc], xmm0
movups xmm0, xmmword [esi + eax + 0x30]
pxor xmm0, xmm1
movups xmmword [ebp + eax + 0x1c], xmm0
add eax, 0x40
cmp eax, edi
jl 0x419ca0
cmp eax, 0x10
jge 0x419d49
lea ecx, [ebp - 0x14]
sub esi, ecx
lea edx, [ebp - 0x14]
add edx, eax
inc eax
mov cl, byte [edx + esi]
xor cl, byte [ebp - 0x1c]
mov byte [edx], cl
cmp eax, 0x10
jl 0x419ce8
jmp 0x419d49
mov esi, eax
test eax, eax
jle 0x419d1b
push ebx
push edi
call fcn.0041a180
mov ecx, dword [ebp - 0x28]
dec esi
add edi, 0x10
add ebx, 0x10
test esi, esi
jg 0x419d03
mov eax, dword [ebp - 0x20]
shl eax, 4
mov dword [ebp - 0x20], eax
sub eax, dword [ebp + 0xc]
lea esi, [eax + 0x10]
mov eax, 0x10
sub eax, esi
push eax
lea eax, [ebp - 0x14]
push edi
push eax
call fcn.004f3ce0
push esi
lea eax, [ebp - 4]
sub eax, esi
push esi
push eax
call fcn.004f3cce
add esp, 0x18
mov ecx, dword [ebp - 0x28]
lea eax, [ebp - 0x14]
push ebx
push eax
call fcn.0041a180
mov eax, dword [ebp - 0x20]
pop esi
pop edi
add eax, 0x10
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004ad8d4
mov esp, ebp
pop ebp
ret 0xc
pop edi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004ad8d4
mov esp, ebp
pop ebp
ret 0xc
mov ecx, dword [ebp - 4]
mov eax, 0xfffffffb
pop edi
xor ecx, ebp
pop ebx
call fcn.004ad8d4
mov esp, ebp
pop ebp
ret 0xc