Function at 0x140487aa0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
movdqa xmmword [rsp + 0x30], xmm6
mov ebx, r9d
mov edi, edx
mov rsi, rcx
movzx ecx, byte [rsp + 0x98]
movzx eax, byte [rsp + 0x90]
mov edx, dword [rsi + 0x58]
cmp edx, r9d
cmovb ebx, edx
test cl, cl
jne 0x140487ae5
test al, al
je 0x140487ae5
mov edx, ebx
sub edx, r8d
cmp edx, 2
jb 0x1404881ce
or byte [rsi + 0xb4], 0x20
test cl, cl
je 0x140487cb5
cmp byte [rsi + 0x52], 0
je 0x140487cb5
test al, al
je 0x140487d00
mov r10d, dword [rsi + 0x54]
mov ebp, 0xffffffff
cmp r10d, ebx
je 0x140487e3a
mov rcx, qword [rsi + 0x68]
cmp dword [rsi + 0x1c], 2
jne 0x140487e22
cmp r10d, ebx
jae 0x140487e3a
mov eax, ebx
mov rdx, rax
sub rdx, r10
cmp rdx, 9
jb 0x140487c90
mov r11d, edx
and r11d, 7
mov r9d, 8
cmovne r9, r11
sub rdx, r9
add rdx, r10
add r9, r10
sub r9, rax
lea r10, [r10 + r10*4]
lea r10, [rcx + r10*4]
add r10, 0x94
pcmpeqd xmm1, xmm1
movdqa xmm0, xmmword [0x140599730]
pcmpeqd xmm2, xmm2
nop dword [rax]
movd xmm3, dword [r10 - 0x50]
movd xmm4, dword [r10 - 0x64]
punpckldq xmm4, xmm3
movd xmm3, dword [r10 - 0x78]
movd xmm5, dword [r10 - 0x8c]
punpckldq xmm5, xmm3
punpcklqdq xmm5, xmm4
movd xmm3, dword [r10]
movd xmm4, dword [r10 - 0x14]
punpckldq xmm4, xmm3
movd xmm3, dword [r10 - 0x28]
movd xmm6, dword [r10 - 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 r10, 0xa0
add r9, 8
jne 0x140487b80
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 ebp, xmm0
mov r10, rdx
sub rax, r10
lea rdx, [r10 + r10*4]
lea rcx, [rcx + rdx*4]
add rcx, 8
nop
mov edx, dword [rcx]
cmp ebp, edx
cmovae ebp, edx
add rcx, 0x14
dec rax
jne 0x140487ca0
jmp 0x140487e3a
test al, al
je 0x140487d9f
mov rdx, qword [rsi + 0x68]
mov r9d, 0xffffffff
cmp ebx, r8d
je 0x140488013
cmp dword [rsi + 0x1c], 2
jne 0x140487dff
cmp ebx, r8d
jbe 0x140488013
mov r10d, r8d
mov eax, ebx
mov rcx, rax
sub rcx, r10
cmp rcx, 9
jae 0x140487e9b
mov rcx, r10
jmp 0x140487fee
cmp dword [rsi + 0x5c], r8d
jbe 0x140487d36
mov eax, r8d
lea rcx, [rax + rax*4]
lea rcx, [rcx*4 + 4]
nop word cs:[rax + rax]
mov rdx, qword [rsi + 0x70]
or dword [rdx + rcx], edi
inc rax
mov edx, dword [rsi + 0x5c]
add rcx, 0x14
cmp rax, rdx
jb 0x140487d20
mov ecx, dword [rsi + 0x54]
cmp ecx, ebx
jae 0x1404881ce
mov eax, ebx
sub ebx, ecx
mov rdx, rcx
not rdx
test bl, 1
je 0x140487d60
mov r8, qword [rsi + 0x68]
lea r9, [rcx + rcx*4]
or dword [r8 + r9*4 + 4], edi
inc rcx
add rdx, rax
je 0x1404881ce
sub rax, rcx
shl rcx, 2
lea rcx, [rcx + rcx*4]
nop word cs:[rax + rax]
mov rdx, qword [rsi + 0x68]
or dword [rdx + rcx + 4], edi
mov rdx, qword [rsi + 0x68]
or dword [rdx + rcx + 0x18], edi
add rcx, 0x28
add rax, 0xfffffffffffffffe
jne 0x140487d80
jmp 0x1404881ce
mov r9d, ebx
sub r9d, r8d
jbe 0x1404881ce
mov ecx, r8d
mov eax, ebx
mov rdx, rcx
not rdx
test r9b, 1
je 0x140487dcc
mov r8, qword [rsi + 0x68]
lea r9, [rcx + rcx*4]
or dword [r8 + r9*4 + 4], edi
inc rcx
add rdx, rax
je 0x1404881ce
sub rax, rcx
shl rcx, 2
lea rcx, [rcx + rcx*4]
mov rdx, qword [rsi + 0x68]
or dword [rdx + rcx + 4], edi
mov rdx, qword [rsi + 0x68]
or dword [rdx + rcx + 0x18], edi
add rcx, 0x28
add rax, 0xfffffffffffffffe
jne 0x140487de0
jmp 0x1404881ce
lea eax, [rbx - 1]
lea rax, [rax + rax*4]
mov ecx, r8d
lea rcx, [rcx + rcx*4]
mov ecx, dword [rdx + rcx*4 + 8]
mov r9d, dword [rdx + rax*4 + 8]
cmp ecx, r9d
cmovb r9d, ecx
jmp 0x140488013
lea eax, [rbx - 1]
lea rax, [rax + rax*4]
lea rdx, [r10 + r10*4]
mov edx, dword [rcx + rdx*4 + 8]
mov ebp, dword [rcx + rax*4 + 8]
cmp edx, ebp
cmovb ebp, edx
mov r9d, dword [rsi + 0x5c]
mov rdx, qword [rsi + 0x70]
cmp r9d, r8d
je 0x1404881a3
cmp dword [rsi + 0x1c], 2
jne 0x140487e75
cmp r9d, r8d
jbe 0x1404881a3
mov r10d, r8d
mov rax, r9
sub rax, r10
cmp rax, 9
jae 0x140488021
mov rax, r10
jmp 0x14048817d
lea eax, [r9 - 1]
lea rax, [rax + rax*4]
mov ecx, r8d
lea rcx, [rcx + rcx*4]
mov ecx, dword [rdx + rcx*4 + 8]
mov eax, dword [rdx + rax*4 + 8]
cmp ecx, eax
cmovb eax, ecx
cmp eax, ebp
cmovb ebp, eax
jmp 0x1404881a3
mov r11d, ecx
and r11d, 7
mov r9d, 8
cmovne r9, r11
sub rcx, r9
add rcx, r10
add r9, r10
sub r9, rax
lea r10, [r10 + r10*4]
lea r10, [rdx + r10*4]
add r10, 0x94
pcmpeqd xmm1, xmm1
movdqa xmm0, xmmword [0x140599730]
pcmpeqd xmm2, xmm2
nop word [rax + rax]
movd xmm3, dword [r10 - 0x50]
movd xmm4, dword [r10 - 0x64]
punpckldq xmm4, xmm3
movd xmm3, dword [r10 - 0x78]
movd xmm5, dword [r10 - 0x8c]
punpckldq xmm5, xmm3
punpcklqdq xmm5, xmm4
movd xmm3, dword [r10]
movd xmm4, dword [r10 - 0x14]
punpckldq xmm4, xmm3
movd xmm3, dword [r10 - 0x28]
movd xmm6, dword [r10 - 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 r10, 0xa0
add r9, 8
jne 0x140487ee0
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 r9d, xmm0
sub rax, rcx
lea rcx, [rcx + rcx*4]
lea rcx, [rdx + rcx*4]
add rcx, 8
nop dword [rax]
mov r10d, dword [rcx]
cmp r9d, r10d
cmovae r9d, r10d
add rcx, 0x14
dec rax
jne 0x140488000
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], r9d
jmp 0x1404881c3
mov r11d, eax
and r11d, 7
mov ecx, 8
cmovne rcx, r11
sub rax, rcx
add rax, r10
movd xmm0, ebp
pshufd xmm1, xmm0, 0
add rcx, r10
sub rcx, r9
lea r10, [r10 + r10*4]
lea r10, [rdx + r10*4]
add r10, 0x94
movdqa xmm0, xmmword [0x140599730]
movdqa xmm2, xmm1
nop word cs:[rax + rax]
movd xmm3, dword [r10 - 0x50]
movd xmm4, dword [r10 - 0x64]
punpckldq xmm4, xmm3
movd xmm3, dword [r10 - 0x78]
movd xmm5, dword [r10 - 0x8c]
punpckldq xmm5, xmm3
punpcklqdq xmm5, xmm4
movd xmm3, dword [r10]
movd xmm4, dword [r10 - 0x14]
punpckldq xmm4, xmm3
movd xmm3, dword [r10 - 0x28]
movd xmm6, dword [r10 - 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 r10, 0xa0
add rcx, 8
jne 0x140488070
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 ebp, xmm0
mov rcx, r9
sub rcx, rax
lea rax, [rax + rax*4]
lea rax, [rdx + rax*4]
add rax, 8
nop
mov r10d, dword [rax]
cmp ebp, r10d
cmovae ebp, r10d
add rax, 0x14
dec rcx
jne 0x140488190
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], ebp
mov rcx, rsi
call fcn.14034bed0
mov r8d, dword [rsi + 0x54]
mov rdx, qword [rsi + 0x68]
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], ebp
mov rcx, rsi
mov r9d, ebx
call fcn.14034bed0
movaps xmm6, xmmword [rsp + 0x30]
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
ret