Function at 0x1404bc870
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
sub rsp, 0x48
movdqa xmmword [rsp + 0x30], xmm6
mov r9d, r8d
mov r8d, edx
mov eax, dword [rcx + 0x58]
cmp eax, r9d
cmovb r9d, eax
mov eax, r9d
sub eax, edx
test byte [rcx + 0x18], 0x80
jne 0x1404bc8e7
cmp eax, 2
jb 0x1404bcc85
or byte [rcx + 0xb4], 0x20
mov rdx, qword [rcx + 0x68]
mov r11d, 0xffffffff
cmp r9d, r8d
je 0x1404bcaf3
cmp dword [rcx + 0x1c], 2
jne 0x1404bc937
cmp r9d, r8d
jbe 0x1404bcaf3
mov esi, r8d
mov eax, r9d
mov r10, rax
sub r10, rsi
cmp r10, 9
jae 0x1404bc981
mov r10, rsi
jmp 0x1404bcac6
cmp eax, 2
jb 0x1404bcc85
or byte [rcx + 0xb4], 0x20
mov rdx, qword [rcx + 0x68]
mov r11d, 0xffffffff
cmp r9d, r8d
je 0x1404bcc73
cmp dword [rcx + 0x1c], 2
jne 0x1404bc95c
cmp r9d, r8d
jbe 0x1404bcc73
mov esi, r8d
mov eax, r9d
mov r10, rax
sub r10, rsi
cmp r10, 9
jae 0x1404bcb05
mov r10, rsi
jmp 0x1404bcc46
lea eax, [r9 - 1]
lea rax, [rax + rax*4]
mov r10d, r8d
lea r10, [r10 + r10*4]
mov r10d, dword [rdx + r10*4 + 8]
mov r11d, dword [rdx + rax*4 + 8]
cmp r10d, r11d
cmovb r11d, r10d
jmp 0x1404bcaf3
lea eax, [r9 - 1]
lea rax, [rax + rax*4]
mov r10d, r8d
lea r10, [r10 + r10*4]
mov r10d, dword [rdx + r10*4 + 8]
mov r11d, dword [rdx + rax*4 + 8]
cmp r10d, r11d
cmovb r11d, r10d
jmp 0x1404bcc73
mov edi, r10d
and edi, 7
mov r11d, 8
cmovne r11, rdi
sub r10, r11
add r10, rsi
add r11, rsi
sub r11, rax
lea rsi, [rsi + rsi*4]
lea rsi, [rdx + rsi*4]
add rsi, 0x94
pcmpeqd xmm1, xmm1
movdqa xmm0, xmmword [0x140599730]
pcmpeqd xmm2, xmm2
nop dword [rax]
movd xmm3, dword [rsi - 0x50]
movd xmm4, dword [rsi - 0x64]
punpckldq xmm4, xmm3
movd xmm3, dword [rsi - 0x78]
movd xmm5, dword [rsi - 0x8c]
punpckldq xmm5, xmm3
punpcklqdq xmm5, xmm4
movd xmm3, dword [rsi]
movd xmm4, dword [rsi - 0x14]
punpckldq xmm4, xmm3
movd xmm3, dword [rsi - 0x28]
movd xmm6, dword [rsi - 0x3c]
punpckldq xmm6, xmm3
punpcklqdq xmm6, xmm4
movdqa xmm3, xmm1
movdqa xmm4, xmm5
pxor xmm4, xmm0
pxor xmm1, xmm0
pcmpgtd xmm4, xmm1
pand xmm3, xmm4
pandn xmm4, xmm5
movdqa xmm1, xmm4
por xmm1, xmm3
movdqa xmm3, xmm2
movdqa xmm4, xmm6
pxor xmm4, xmm0
pxor xmm2, xmm0
pcmpgtd xmm4, xmm2
pand xmm3, xmm4
pandn xmm4, xmm6
movdqa xmm2, xmm4
por xmm2, xmm3
add rsi, 0xa0
add r11, 8
jne 0x1404bc9c0
movdqa xmm3, xmm1
pxor xmm3, xmm0
movdqa xmm4, xmm2
pxor xmm4, xmm0
pcmpgtd xmm4, xmm3
pand xmm1, xmm4
pandn xmm4, xmm2
por xmm4, xmm1
pshufd xmm1, xmm4, 0xee
movdqa xmm2, xmm4
pxor xmm2, xmm0
movdqa xmm3, xmm1
pxor xmm3, xmm0
pcmpgtd xmm3, xmm2
pand xmm4, xmm3
pandn xmm3, xmm1
por xmm3, xmm4
pshufd xmm1, xmm3, 0x55
movdqa xmm2, xmm3
pxor xmm2, xmm0
pxor xmm0, xmm1
pcmpgtd xmm0, xmm2
pand xmm3, xmm0
pandn xmm0, xmm1
por xmm0, xmm3
movd r11d, xmm0
sub rax, r10
lea r10, [r10 + r10*4]
lea r10, [rdx + r10*4]
add r10, 8
nop word cs:[rax + rax]
mov esi, dword [r10]
cmp r11d, esi
cmovae r11d, esi
add r10, 0x14
dec rax
jne 0x1404bcae0
mov dword [rsp + 0x20], r11d
mov dword [rsp + 0x28], 3
jmp 0x1404bcc80
mov edi, r10d
and edi, 7
mov r11d, 8
cmovne r11, rdi
sub r10, r11
add r10, rsi
add r11, rsi
sub r11, rax
lea rsi, [rsi + rsi*4]
lea rsi, [rdx + rsi*4]
add rsi, 0x94
pcmpeqd xmm1, xmm1
movdqa xmm0, xmmword [0x140599730]
pcmpeqd xmm2, xmm2
movd xmm3, dword [rsi - 0x50]
movd xmm4, dword [rsi - 0x64]
punpckldq xmm4, xmm3
movd xmm3, dword [rsi - 0x78]
movd xmm5, dword [rsi - 0x8c]
punpckldq xmm5, xmm3
punpcklqdq xmm5, xmm4
movd xmm3, dword [rsi]
movd xmm4, dword [rsi - 0x14]
punpckldq xmm4, xmm3
movd xmm3, dword [rsi - 0x28]
movd xmm6, dword [rsi - 0x3c]
punpckldq xmm6, xmm3
punpcklqdq xmm6, xmm4
movdqa xmm3, xmm1
movdqa xmm4, xmm5
pxor xmm4, xmm0
pxor xmm1, xmm0
pcmpgtd xmm4, xmm1
pand xmm3, xmm4
pandn xmm4, xmm5
movdqa xmm1, xmm4
por xmm1, xmm3
movdqa xmm3, xmm2
movdqa xmm4, xmm6
pxor xmm4, xmm0
pxor xmm2, xmm0
pcmpgtd xmm4, xmm2
pand xmm3, xmm4
pandn xmm4, xmm6
movdqa xmm2, xmm4
por xmm2, xmm3
add rsi, 0xa0
add r11, 8
jne 0x1404bcb40
movdqa xmm3, xmm1
pxor xmm3, xmm0
movdqa xmm4, xmm2
pxor xmm4, xmm0
pcmpgtd xmm4, xmm3
pand xmm1, xmm4
pandn xmm4, xmm2
por xmm4, xmm1
pshufd xmm1, xmm4, 0xee
movdqa xmm2, xmm4
pxor xmm2, xmm0
movdqa xmm3, xmm1
pxor xmm3, xmm0
pcmpgtd xmm3, xmm2
pand xmm4, xmm3
pandn xmm3, xmm1
por xmm3, xmm4
pshufd xmm1, xmm3, 0x55
movdqa xmm2, xmm3
pxor xmm2, xmm0
pxor xmm0, xmm1
pcmpgtd xmm0, xmm2
pand xmm3, xmm0
pandn xmm0, xmm1
por xmm0, xmm3
movd r11d, xmm0
sub rax, r10
lea r10, [r10 + r10*4]
lea r10, [rdx + r10*4]
add r10, 8
nop word cs:[rax + rax]
mov esi, dword [r10]
cmp r11d, esi
cmovae r11d, esi
add r10, 0x14
dec rax
jne 0x1404bcc60
mov dword [rsp + 0x20], r11d
mov dword [rsp + 0x28], 4
call fcn.14034bed0
movaps xmm6, xmmword [rsp + 0x30]
add rsp, 0x48
pop rdi
pop rsi
ret