Function at 0x1bfbb7
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
cmp dword [ebp + 0x1c], 0
jne 0x1bfc77
cmp dword [ebp + 0x18], 0
jne 0x1bfc0c
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x14]
mov ecx, 8
cmp ecx, 0x10
je 0x1bfbf5
movq mm0, qword [esi]
add esi, eax
movq qword [edi], mm0
add edi, ebx
dec ecx
jne 0x1bfbe3
jmp 0x1bfe2f
movq mm0, qword [esi]
movq qword [edi], mm0
movq mm0, qword [esi + 8]
add esi, eax
movq qword [edi + 8], mm0
add edi, ebx
dec ecx
jne 0x1bfbf5
jmp 0x1bfc72
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0x10]
mov edx, 1
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x14]
movq mm7, qword [0x1c3480]
movq mm6, qword [0x1c3478]
mov ecx, 8
cmp ecx, 0x10
je 0x1bfc4e
movq mm0, qword [esi]
movq mm1, qword [esi + edx]
pavgb mm0, mm1
movq qword [edi], mm0
add esi, eax
add edi, ebx
dec ecx
jne 0x1bfc35
jmp 0x1bfe2f
movq mm0, qword [esi]
movq mm1, qword [esi + edx]
pavgb mm0, mm1
movq qword [edi], mm0
movq mm0, qword [esi + 8]
movq mm1, qword [esi + edx + 8]
pavgb mm0, mm1
movq qword [edi + 8], mm0
add esi, eax
add edi, ebx
dec ecx
jne 0x1bfc4e
jmp 0x1bfe2f
cmp dword [ebp + 0x18], 0
jne 0x1bfcee
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov edx, 1
imul edx, eax
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x14]
movq mm7, qword [0x1c3480]
movq mm6, qword [0x1c3478]
mov ecx, 8
cmp ecx, 0x10
je 0x1bfcc5
movq mm0, qword [esi]
movq mm1, qword [esi + edx]
pavgb mm0, mm1
movq qword [edi], mm0
add esi, eax
add edi, ebx
dec ecx
jne 0x1bfcac
jmp 0x1bfe2f
movq mm0, qword [esi]
movq mm1, qword [esi + edx]
pavgb mm0, mm1
movq qword [edi], mm0
movq mm0, qword [esi + 8]
movq mm1, qword [esi + edx + 8]
pavgb mm0, mm1
movq qword [edi + 8], mm0
add esi, eax
add edi, ebx
dec ecx
jne 0x1bfcc5
jmp 0x1bfe2f
push eax
push eax
push eax
push eax
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0x10]
mov eax, 1
cmp eax, 0xffffffff
jne 0x1bfd03
dec esi
mov eax, 1
mov edx, dword [ebp + 0xc]
cmp eax, 0xffffffff
jne 0x1bfd12
sub esi, edx
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
movq mm7, qword [0x1c3470]
movq mm6, qword [0x1c3468]
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x14]
mov dword [esp + 4], ebp
mov ebp, 8
movq mm0, qword [esi]
movq mm1, qword [esi + 1]
movq mm4, mm0
pand mm4, mm6
pxor mm0, mm4
movq mm5, mm1
pand mm5, mm6
pxor mm1, mm5
paddw mm4, mm5
pavgb mm0, mm1
movq mm1, qword [esi + edx]
movq mm3, qword [esi + edx + 1]
movq mm7, mm1
pand mm7, mm6
pxor mm1, mm7
movq mm5, mm3
pand mm5, mm6
pxor mm3, mm5
paddw mm7, mm5
paddw mm4, mm7
paddw mm4, qword [0x1c3460]
psrlw mm4, 2
pand mm4, mm6
pavgb mm1, mm3
movq mm2, mm1
pavgb mm0, mm1
paddw mm0, mm4
movq qword [edi], mm0
movq mm0, mm2
movq mm4, mm7
add esi, ecx
add edi, ebx
dec ebp
jne 0x1bfd56
mov ebp, dword [esp + 4]
mov ebp, 8
cmp ebp, 0x10
jne 0x1bfe27
mov esi, dword [esp + 8]
add esi, 8
mov edi, dword [esp + 0xc]
add edi, 8
movq mm0, qword [esi]
movq mm1, qword [esi + 1]
movq mm4, mm0
pand mm4, mm6
pxor mm0, mm4
movq mm5, mm1
pand mm5, mm6
pxor mm1, mm5
paddw mm4, mm5
pavgb mm0, mm1
movq mm1, qword [esi + edx]
movq mm3, qword [esi + edx + 1]
movq mm7, mm1
pand mm7, mm6
pxor mm1, mm7
movq mm5, mm3
pand mm5, mm6
pxor mm3, mm5
paddw mm7, mm5
paddw mm4, mm7
paddw mm4, qword [0x1c3460]
psrlw mm4, 2
pand mm4, mm6
pavgb mm1, mm3
movq mm2, mm1
pavgb mm0, mm1
paddw mm0, mm4
movq qword [edi], mm0
movq mm0, mm2
movq mm4, mm7
add esi, ecx
add edi, ebx
dec ebp
jne 0x1bfddc
mov ebp, dword [esp + 4]
pop eax
pop eax
pop eax
pop eax
emms
pop edi
pop esi
pop ebx
pop ebp
ret 0x18