Function at 0x100139d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x94
mov eax, dword [0x1002936c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
mov byte [ebp - 0x24], 0
cmp byte [edi + 0x20], 0
lea ecx, [edi + 0x20]
xorps xmm0, xmm0
mov dword [ebp - 0xb], 0
movups xmmword [ebp - 0x23], xmm0
mov word [ebp - 7], 0
movq qword [ebp - 0x13], xmm0
mov byte [ebp - 5], 0
mov byte [ebp - 0x54], 0
movups xmmword [ebp - 0x53], xmm0
mov dword [ebp - 0x3b], 0
movq qword [ebp - 0x43], xmm0
mov word [ebp - 0x37], 0
mov byte [ebp - 0x35], 0
movups xmmword [ebp - 0x64], xmm0
movups xmmword [ebp - 0x34], xmm0
movups xmmword [ebp - 0x74], xmm0
jne 0x10013a3f
lea ecx, [edi + 0x61]
movaps xmm0, xmmword [0x10020ea0]
movaps xmm1, xmmword [0x10020eb0]
movups xmmword [ebp - 0x94], xmm0
movups xmmword [ebp - 0x84], xmm1
test ecx, ecx
je 0x10013aaf
mov esi, ecx
lea edx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x10013a64
sub esi, edx
je 0x10013aaf
cmp esi, 0x20
jb 0x10013a85
movups xmm0, xmmword [ecx]
movups xmmword [ebp - 0x24], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [ebp - 0x14], xmm0
jmp 0x10013ab7
push esi
push ecx
lea eax, [ebp - 0x24]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, 0x20
sub eax, esi
push eax
lea eax, [ebp - 0x94]
push eax
lea eax, [ebp - 0x24]
add eax, esi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0x18
jmp 0x10013ab7
movups xmmword [ebp - 0x24], xmm0
movups xmmword [ebp - 0x14], xmm1
mov ecx, dword [edi + 8]
call fcn.1001b4d0
test eax, eax
jne 0x10013c90
mov ecx, dword [edi + 8]
lea eax, [ebp - 0x24]
push 0x20
push eax
call fcn.1001c040
test eax, eax
jne 0x10013c90
mov ecx, dword [edi + 8]
lea eax, [ebp - 0x64]
push 0x10
push eax
call fcn.1001b2d0
test eax, eax
jne 0x10013c90
cmp dword [edi + 0x1c], 2
jne 0x10013b4a
xor esi, esi
nop dword [eax + eax]
movups xmm0, xmmword [ebp - 0x64]
mov ecx, dword [edi + 8]
movups xmmword [ebp - 0x24], xmm0
call fcn.1001b4d0
test eax, eax
jne 0x10013c90
mov ecx, dword [edi + 8]
lea eax, [ebp - 0x24]
push 0x10
push eax
call fcn.1001c040
test eax, eax
jne 0x10013c90
mov ecx, dword [edi + 8]
lea eax, [ebp - 0x64]
push 0x10
push eax
call fcn.1001b2d0
test eax, eax
jne 0x10013c90
inc esi
cmp esi, 0x32
jl 0x10013b00
cmp dword [edi + 0x1c], 2
mov eax, 0x10
mov esi, 5
cmove esi, eax
lea eax, [ebp - 0x64]
push esi
push eax
lea eax, [ebp - 0x34]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea eax, [ebp - 0x24]
mov ecx, edi
push eax
push 0
lea eax, [edi + 0x61]
push eax
call fcn.100149b0
mov ecx, dword [edi + 0xc]
lea eax, [ebp - 0x34]
push esi
push eax
call fcn.1001c210
test eax, eax
jne 0x10013c90
mov ecx, dword [edi + 0xc]
lea eax, [ebp - 0x54]
push 0x20
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.1001c190
test eax, eax
jne 0x10013c90
cmp dword [edi + 0x1c], 2
movups xmm0, xmmword [ebp - 0x54]
movups xmm1, xmmword [ebp - 0x44]
movups xmmword [ebp - 0x24], xmm0
movups xmmword [ebp - 0x14], xmm1
jne 0x10013c80
lea ebx, [eax + 1]
nop dword [eax]
xor eax, eax
test esi, esi
je 0x10013c3f
cmp esi, 0x20
jb 0x10013c23
mov ecx, esi
mov edx, esi
and ecx, 0x1f
sub edx, ecx
movsx ecx, bl
movd xmm0, ecx
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
pshufd xmm1, xmm0, 0
nop dword [eax + eax]
movups xmm0, xmmword [ebp + eax - 0x34]
pxor xmm0, xmm1
movups xmmword [ebp + eax - 0x74], xmm0
movups xmm0, xmmword [ebp + eax - 0x24]
pxor xmm0, xmm1
movups xmmword [ebp + eax - 0x64], xmm0
add eax, 0x20
cmp eax, edx
jb 0x10013c00
cmp eax, esi
jae 0x10013c3f
nop word [eax + eax]
mov cl, byte [ebp + eax - 0x34]
xor cl, bl
mov byte [ebp + eax - 0x74], cl
inc eax
cmp eax, esi
jb 0x10013c30
mov ecx, dword [edi + 0xc]
lea eax, [ebp - 0x74]
push esi
push eax
call fcn.1001c210
test eax, eax
jne 0x10013c90
mov ecx, dword [edi + 0xc]
lea eax, [ebp - 0x54]
push 0x20
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.1001c190
test eax, eax
jne 0x10013c90
movups xmm0, xmmword [ebp - 0x54]
inc ebx
movups xmm1, xmmword [ebp - 0x44]
movups xmmword [ebp - 0x24], xmm0
movups xmmword [ebp - 0x14], xmm1
cmp ebx, 0x14
jl 0x10013bd0
movups xmmword [edi + 0xbc], xmm0
xor eax, eax
movups xmmword [edi + 0xcc], xmm1
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10010b9b
mov esp, ebp
pop ebp
ret