Function at 0x140115cc0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
movdqa xmmword [rsp + 0x90], xmm15
movdqa xmmword [rsp + 0x80], xmm14
movdqa xmmword [rsp + 0x70], xmm13
movdqa xmmword [rsp + 0x60], xmm12
movdqa xmmword [rsp + 0x50], xmm11
movdqa xmmword [rsp + 0x40], xmm10
movdqa xmmword [rsp + 0x30], xmm9
movdqa xmmword [rsp + 0x20], xmm8
movdqa xmmword [rsp + 0x10], xmm7
movdqa xmmword [rsp], xmm6
mov r11d, dword [rsp + 0x100]
test r11d, r11d
jle 0x1401161dc
mov eax, r11d
xor r10d, r10d
cmp r11d, 8
jae 0x140115d3d
xor r11d, r11d
jmp 0x140116100
lea r11, [r8 + rax]
cmp r11, r9
seta r14b
lea r11, [r9 + rax*2]
cmp r11, r8
seta r15b
lea rsi, [rdx + rax]
cmp rsi, r9
seta bl
lea rsi, [rcx + rax]
cmp r11, rdx
seta dil
cmp rsi, r9
seta sil
cmp r11, rcx
seta bpl
xor r11d, r11d
test r14b, r15b
jne 0x140116100
and bl, dil
jne 0x140116100
and sil, bpl
jne 0x140116100
mov r11d, eax
and r11d, 0xfffffff8
xor esi, esi
pxor xmm0, xmm0
movdqa xmm4, xmmword [0x140599730]
movdqa xmm7, xmmword [0x1405aeb50]
pcmpeqd xmm8, xmm8
movdqa xmm1, xmmword [0x14059c040]
nop
movq xmm9, qword [r8 + rsi]
punpcklbw xmm9, xmm0
movdqa xmm14, xmm9
punpcklwd xmm14, xmm0
punpckhwd xmm9, xmm0
movq xmm10, qword [rcx + rsi]
punpcklbw xmm10, xmm0
movdqa xmm11, xmm10
punpcklwd xmm11, xmm0
punpckhwd xmm10, xmm0
movdqa xmm2, xmmword [0x1405aeb20]
pmaddwd xmm10, xmm2
pmaddwd xmm11, xmm2
psrld xmm11, 8
psrld xmm10, 8
movdqa xmm3, xmm9
movdqa xmm2, xmmword [0x1405aeb30]
pmaddwd xmm3, xmm2
movdqa xmm13, xmm14
pmaddwd xmm13, xmm2
psrld xmm13, 8
psrld xmm3, 8
paddd xmm3, xmm10
paddd xmm13, xmm11
movdqa xmm12, xmmword [0x1405aeb60]
movdqa xmm6, xmm12
pcmpgtd xmm6, xmm13
movdqa xmm5, xmmword [0x1405aeb40]
paddd xmm13, xmm5
movdqa xmm2, xmm12
pcmpgtd xmm2, xmm3
paddd xmm3, xmm5
movdqa xmm12, xmm3
pxor xmm12, xmm4
movdqa xmm5, xmm7
pcmpgtd xmm5, xmm12
movdqa xmm12, xmm13
pxor xmm12, xmm4
movdqa xmm15, xmm7
pcmpgtd xmm15, xmm12
movq xmm12, qword [rdx + rsi]
punpcklbw xmm12, xmm0
psrld xmm13, 6
pand xmm13, xmm15
pxor xmm15, xmm8
pandn xmm6, xmm15
movdqa xmm15, xmm12
punpckhwd xmm15, xmm0
por xmm6, xmm13
movdqa xmm13, xmm12
punpcklwd xmm13, xmm0
psrld xmm3, 6
pand xmm3, xmm5
pxor xmm5, xmm8
pandn xmm2, xmm5
por xmm2, xmm3
movdqa xmm3, xmmword [0x1405aeb70]
pmaddwd xmm13, xmm3
pmaddwd xmm15, xmm3
psrld xmm15, 8
psrld xmm13, 8
movdqa xmm3, xmmword [0x1405aeb80]
pmaddwd xmm14, xmm3
pmaddwd xmm9, xmm3
psrld xmm9, 8
paddd xmm9, xmm15
psrld xmm14, 8
paddd xmm14, xmm13
movdqa xmm3, xmm12
movdqa xmm5, xmmword [0x1405aebb0]
pmulhuw xmm3, xmm5
pmullw xmm12, xmm5
movdqa xmm13, xmm12
punpckhwd xmm12, xmm3
psrld xmm12, 8
paddd xmm12, xmm10
movdqa xmm5, xmm10
psubd xmm5, xmm9
punpcklwd xmm13, xmm3
psrld xmm13, 8
paddd xmm13, xmm11
psubd xmm11, xmm14
movdqa xmm10, xmmword [0x1405aeba0]
movdqa xmm9, xmm10
pcmpgtd xmm9, xmm11
movdqa xmm3, xmmword [0x1405aeb90]
paddd xmm11, xmm3
pcmpgtd xmm10, xmm5
paddd xmm5, xmm3
movdqa xmm3, xmm5
pxor xmm3, xmm4
movdqa xmm14, xmm7
pcmpgtd xmm14, xmm3
movdqa xmm3, xmm11
pxor xmm3, xmm4
movdqa xmm15, xmm7
pcmpgtd xmm15, xmm3
psrld xmm11, 0xa
psrld xmm5, 0xa
pand xmm11, xmm15
pxor xmm15, xmm8
pandn xmm9, xmm15
pand xmm5, xmm14
pxor xmm14, xmm8
pandn xmm10, xmm14
psrld xmm10, 0x1c
por xmm10, xmm5
psrld xmm9, 0x1c
por xmm9, xmm11
movdqa xmm14, xmmword [0x1405aebd0]
movdqa xmm11, xmm14
pcmpgtd xmm11, xmm12
movdqa xmm5, xmmword [0x1405aebc0]
paddd xmm12, xmm5
movdqa xmm3, xmm14
pcmpgtd xmm3, xmm13
paddd xmm13, xmm5
movdqa xmm5, xmm13
pxor xmm5, xmm4
movdqa xmm14, xmm7
pcmpgtd xmm14, xmm5
movdqa xmm5, xmm12
pxor xmm5, xmm4
movdqa xmm15, xmm7
pcmpgtd xmm15, xmm5
psrld xmm12, 6
pand xmm12, xmm15
pxor xmm15, xmm8
pandn xmm11, xmm15
psrld xmm13, 6
pand xmm13, xmm14
pxor xmm14, xmm8
pandn xmm3, xmm14
movdqa xmm5, xmmword [0x1405a9440]
pand xmm3, xmm5
por xmm3, xmm13
pand xmm11, xmm5
por xmm11, xmm12
pand xmm2, xmm5
por xmm2, xmm10
pand xmm6, xmm5
por xmm6, xmm9
pand xmm11, xmm1
pand xmm3, xmm1
packuswb xmm3, xmm11
pand xmm2, xmm1
pand xmm6, xmm1
packuswb xmm6, xmm2
packuswb xmm3, xmm3
por xmm3, xmmword [0x1405aea90]
packuswb xmm6, xmm6
punpcklbw xmm3, xmm6
movdqu xmmword [r9 + rsi*2], xmm3
add rsi, 8
cmp r11, rsi
jne 0x140115dc0
cmp r11, rax
je 0x1401161dc
nop dword [rax + rax]
movzx ebx, byte [r8 + r11]
movzx esi, byte [rcx + r11]
imul edi, esi, 0x4a85
shr edi, 8
imul ebp, ebx, 0x6625
shr ebp, 8
add ebp, edi
sub ebp, 0x379a
mov r14d, 0xf0
cmovb r14d, r10d
mov esi, ebp
shr esi, 6
cmp ebp, 0x4000
cmovae esi, r14d
movzx ebp, byte [rdx + r11]
imul r14d, ebp, 0x1913
shr r14d, 8
imul ebx, ebx, 0x3408
shr ebx, 8
add ebx, r14d
mov r14d, edi
sub r14d, ebx
neg ebx
add ebx, edi
add ebx, 0x2204
mov r15d, ebx
shr r15d, 0xa
cmp r14d, 0xffffddfc
mov r14d, 0xf
cmovl r14d, r10d
cmp ebx, 0x4000
cmovb r14d, r15d
imul ebx, ebp, 0x811a
shr ebx, 8
add ebx, edi
sub ebx, 0x4515
setb dil
mov ebp, ebx
shr ebp, 6
shl dil, 4
add dil, 0xf0
and esi, 0xf0
or esi, r14d
cmp ebx, 0x4000
movzx edi, dil
cmovb edi, ebp
or dil, 0xf
mov byte [r9 + r11*2], dil
mov byte [r9 + r11*2 + 1], sil
inc r11
cmp rax, r11
jne 0x140116100
movaps xmm6, xmmword [rsp]
movaps xmm7, xmmword [rsp + 0x10]
movaps xmm8, xmmword [rsp + 0x20]
movaps xmm9, xmmword [rsp + 0x30]
movaps xmm10, xmmword [rsp + 0x40]
movaps xmm11, xmmword [rsp + 0x50]
movaps xmm12, xmmword [rsp + 0x60]
movaps xmm13, xmmword [rsp + 0x70]
movaps xmm14, xmmword [rsp + 0x80]
movaps xmm15, xmmword [rsp + 0x90]
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret