Function at 0x1008fe70
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
movzx eax, byte [eax]
test eax, eax
je 0x1008ffca
cmp eax, 1
jne 0x1008fff9
test ebx, ebx
je 0x10090133
setns al
js 0x100901bb
movzx esi, al
push esi
push ebx
call fcn.100985b0
add esp, 8
test eax, eax
je 0x100901c2
mov edi, eax
mov esi, eax
push ebx
push ebp
push edi
call fcn.10193640
add esp, 0xc
cmp ebx, 8
mov ecx, edi
jb 0x10090150
xor eax, eax
cmp ebx, 0x20
jb 0x1008ff66
movdqa xmm0, xmmword [0x101b4610]
movdqa xmm1, xmmword [0x101b1050]
movdqa xmm2, xmmword [0x101b1060]
mov eax, ebx
xor ecx, ecx
and eax, 0xffffffe0
nop
movdqu xmm4, xmmword [esi + ecx]
movdqu xmm3, xmmword [esi + ecx + 0x10]
movdqa xmm5, xmm4
movdqa xmm6, xmm3
paddb xmm5, xmm0
paddb xmm6, xmm0
movdqa xmm7, xmm5
pminub xmm7, xmm1
pcmpeqb xmm7, xmm5
movdqa xmm5, xmm6
pminub xmm5, xmm1
pand xmm7, xmm2
pcmpeqb xmm5, xmm6
pxor xmm7, xmm4
pand xmm5, xmm2
movdqu xmmword [esi + ecx], xmm7
pxor xmm5, xmm3
movdqu xmmword [esi + ecx + 0x10], xmm5
add ecx, 0x20
cmp eax, ecx
jne 0x1008ff00
cmp eax, ebx
je 0x100901aa
test bl, 0x18
je 0x1009014c
movdqa xmm0, xmmword [0x101b4620]
movdqa xmm1, xmmword [0x101b1080]
movdqa xmm2, xmmword [0x101b1090]
mov edx, ebx
and edx, 0xfffffff8
lea ecx, [edi + edx]
nop word cs:[eax + eax]
movq xmm3, qword [esi + eax]
movdqa xmm4, xmm3
paddb xmm4, xmm0
movdqa xmm5, xmm4
pmaxub xmm5, xmm1
pcmpeqb xmm5, xmm4
pandn xmm5, xmm2
pxor xmm5, xmm3
movq qword [esi + eax], xmm5
add eax, 8
cmp edx, eax
jne 0x1008ff90
cmp edx, ebx
jne 0x10090150
jmp 0x100901aa
test ebx, ebx
je 0x1009013a
setns al
js 0x100901bb
movzx edi, al
push edi
push ebx
call fcn.100985b0
add esp, 8
mov esi, eax
test eax, eax
jne 0x1009013f
push ebx
push edi
jmp 0x100901c4
test ebx, ebx
je 0x10090133
setns al
js 0x100901bb
movzx esi, al
push esi
push ebx
call fcn.100985b0
add esp, 8
test eax, eax
je 0x100901c2
mov edi, eax
mov esi, eax
push ebx
push ebp
push edi
call fcn.10193640
add esp, 0xc
cmp ebx, 8
mov ecx, edi
jb 0x10090180
xor eax, eax
cmp ebx, 0x20
jb 0x100900d6
movdqa xmm0, xmmword [0x101b1040]
movdqa xmm1, xmmword [0x101b1050]
movdqa xmm2, xmmword [0x101b1060]
mov eax, ebx
xor ecx, ecx
and eax, 0xffffffe0
nop word cs:[eax + eax]
nop dword [eax]
movdqu xmm4, xmmword [esi + ecx]
movdqu xmm3, xmmword [esi + ecx + 0x10]
movdqa xmm5, xmm4
movdqa xmm6, xmm3
paddb xmm5, xmm0
paddb xmm6, xmm0
movdqa xmm7, xmm5
pminub xmm7, xmm1
pcmpeqb xmm7, xmm5
movdqa xmm5, xmm6
pminub xmm5, xmm1
pand xmm7, xmm2
pcmpeqb xmm5, xmm6
por xmm7, xmm4
pand xmm5, xmm2
movdqu xmmword [esi + ecx], xmm7
por xmm5, xmm3
movdqu xmmword [esi + ecx + 0x10], xmm5
add ecx, 0x20
cmp eax, ecx
jne 0x10090070
cmp eax, ebx
je 0x100901aa
test bl, 0x18
je 0x1009017c
movdqa xmm0, xmmword [0x101b1070]
movdqa xmm1, xmmword [0x101b1080]
movdqa xmm2, xmmword [0x101b1090]
mov edx, ebx
and edx, 0xfffffff8
lea ecx, [edi + edx]
nop word cs:[eax + eax]
movq xmm3, qword [esi + eax]
movdqa xmm4, xmm3
paddb xmm4, xmm0
movdqa xmm5, xmm4
pmaxub xmm5, xmm1
pcmpeqb xmm5, xmm4
pandn xmm5, xmm2
por xmm5, xmm3
movq qword [esi + eax], xmm5
add eax, 8
cmp edx, eax
jne 0x10090100
cmp edx, ebx
jne 0x10090180
jmp 0x100901aa
mov esi, 1
jmp 0x100901aa
mov esi, 1
push ebx
push ebp
push esi
call fcn.10193640
add esp, 0xc
jmp 0x100901aa
add eax, edi
mov ecx, eax
add edi, ebx
nop word cs:[eax + eax]
nop dword [eax]
movzx eax, byte [ecx]
mov edx, eax
add dl, 0x9f
cmp dl, 0x1a
setb dl
shl dl, 5
xor dl, al
mov byte [ecx], dl
inc ecx
cmp ecx, edi
jne 0x10090160
jmp 0x100901aa
add eax, edi
mov ecx, eax
add edi, ebx
nop word cs:[eax + eax]
nop dword [eax]
movzx eax, byte [ecx]
mov edx, eax
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, al
mov byte [ecx], dl
inc ecx
cmp ecx, edi
jne 0x10090190
mov eax, dword [esp + 0x14]
mov dword [eax], esi
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.10176df0
ud2
push ebx
push esi
call fcn.101aefe0
add esp, 8
ud2