Function at 0x101266a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov ecx, dword [ebp + 8]
mov eax, 0
mov edx, dword [ebp + 0x14]
test cl, 3
push ebx
mov ebx, dword [ebp + 0xc]
sete al
mov dword [ebp - 0xc], ebx
push esi
push edi
test eax, eax
je 0x10126835
test bl, 3
mov eax, 0
sete al
test eax, eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 4], eax
je 0x10126830
test al, 3
mov eax, 0
sete al
test eax, eax
je 0x10126828
mov edi, edx
xor esi, esi
shr edi, 2
mov dword [ebp - 4], esi
mov dword [ebp - 0x1c], edi
test edi, edi
je 0x10126809
cmp edi, 8
jb 0x101267c8
lea eax, [ecx - 4]
mov dword [ebp - 4], esi
lea eax, [eax + edi*4]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0x10]
lea eax, [eax + edi*4]
add eax, 0xfffffffc
cmp ecx, eax
ja 0x10126736
mov eax, dword [ebp + 0x10]
cmp dword [ebp - 0xc], eax
jae 0x101267cb
lea eax, [ebx - 4]
lea eax, [eax + edi*4]
cmp ecx, eax
ja 0x1012674a
lea eax, [ecx - 4]
lea eax, [eax + edi*4]
cmp eax, ebx
jae 0x101267c8
mov edx, dword [ebp + 0x10]
mov eax, edi
and eax, 7
mov esi, edi
sub esi, eax
sub edx, ebx
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x18], esi
mov esi, ecx
mov dword [ebp - 0x10], edx
sub esi, ebx
mov edi, dword [ebp - 0x10]
mov edx, ecx
sub edx, dword [ebp + 0x10]
lea ecx, [ebx + 0x10]
mov dword [ebp - 8], esi
mov esi, dword [ebp - 4]
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 8]
lea esp, [esp]
movdqu xmm0, xmmword [eax]
mov ebx, dword [ebp - 0x14]
add esi, 8
lea eax, [eax + 0x20]
lea ecx, [ecx + 0x20]
movdqu xmm1, xmmword [ecx - 0x30]
pxor xmm1, xmm0
movdqu xmmword [ebx + eax - 0x20], xmm1
mov ebx, dword [ebp + 0xc]
movdqu xmm1, xmmword [edi + ecx - 0x20]
movdqu xmm0, xmmword [ecx - 0x20]
pxor xmm1, xmm0
movdqu xmmword [edx + ecx - 0x20], xmm1
cmp esi, dword [ebp - 0x18]
jb 0x10126780
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 4], esi
mov eax, dword [ebp + 0x10]
cmp esi, edi
jae 0x10126809
mov edx, dword [ebp + 8]
lea ecx, [eax + esi*4]
mov esi, dword [ebp - 4]
sub ebx, eax
sub edx, eax
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], edx
sub edi, esi
mov edx, ebx
add esi, edi
mov ebx, dword [ebp - 0x18]
jmp 0x101267f0
mov eax, dword [edx + ecx]
lea ecx, [ecx + 4]
xor eax, dword [ecx - 4]
mov dword [ecx + ebx - 4], eax
dec edi
jne 0x101267f0
mov edx, dword [ebp + 0x14]
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
shl esi, 2
sub edx, esi
mov dword [ebp - 8], edx
je 0x10126910
mov eax, dword [ebp + 0x10]
add ecx, esi
add ebx, esi
mov dword [ebp + 8], ecx
mov dword [ebp - 0xc], ebx
add eax, esi
jmp 0x1012683b
mov eax, dword [ebp + 0x10]
mov dword [ebp - 8], edx
jmp 0x1012683e
mov dword [ebp - 8], edx
jmp 0x1012683e
mov eax, dword [ebp + 0x10]
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor edi, edi
test edx, edx
je 0x10126910
cmp edx, 0x20
jb 0x101268e9
dec eax
lea esi, [ecx - 1]
add eax, edx
add esi, edx
cmp ecx, eax
ja 0x10126868
mov eax, dword [ebp - 4]
cmp esi, eax
jae 0x101268ec
lea eax, [ebx - 1]
add eax, edx
cmp ecx, eax
ja 0x10126875
cmp esi, ebx
jae 0x101268e9
mov eax, edx
mov esi, edx
and eax, 0x1f
sub esi, eax
mov eax, ecx
sub eax, ebx
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x1c], eax
mov esi, ebx
mov eax, dword [ebp - 4]
mov ecx, eax
sub ecx, ebx
mov ebx, dword [ebp - 0x1c]
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x18]
sub ecx, eax
mov dword [ebp - 0x14], ecx
lea ecx, [eax + 0x10]
movdqu xmm0, xmmword [esi]
mov eax, dword [ebp - 0x14]
add edi, 0x20
lea esi, [esi + 0x20]
lea ecx, [ecx + 0x20]
movdqu xmm1, xmmword [edx + esi - 0x20]
pxor xmm1, xmm0
movdqu xmmword [ebx + esi - 0x20], xmm1
movdqu xmm1, xmmword [esi - 0x10]
movdqu xmm0, xmmword [ecx - 0x20]
pxor xmm1, xmm0
movdqu xmmword [ecx + eax - 0x20], xmm1
mov eax, dword [ebp - 4]
cmp edi, dword [ebp - 0x10]
jb 0x101268a5
mov edx, dword [ebp - 8]
mov ebx, dword [ebp - 0xc]
jmp 0x101268ec
mov eax, dword [ebp - 4]
cmp edi, edx
jae 0x10126910
mov esi, dword [ebp + 8]
lea ecx, [edi + eax]
sub ebx, eax
sub esi, eax
sub edx, edi
lea esp, [esp]
mov al, byte [ebx + ecx]
lea ecx, [ecx + 1]
xor al, byte [ecx - 1]
mov byte [esi + ecx - 1], al
dec edx
jne 0x10126900
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret