Function at 0x140287a20
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r14
lea rbp, [rsp - 0x40]
mov eax, 0x140
call fcn.14029e100
sub rsp, rax
mov rax, qword [0x1403d8618]
xor rax, rsp
mov qword [rbp + 0x10], rax
mov rax, qword [rbp + 0x90]
mov rdi, qword [rbp + 0xa0]
mov qword [rbp - 0x60], rax
mov rax, qword [rbp + 0x98]
mov qword [rbp - 0x58], rax
mov eax, 0x200
mov qword [rbp - 0x70], rcx
xor ecx, ecx
cmp edx, eax
mov qword [rbp - 0x80], rdi
mov esi, ecx
mov dword [rsp + 0x30], ecx
cmovl edx, eax
mov dword [rsp + 0x40], ecx
mov qword [rsp + 0x78], 2
lea eax, [rdx + 0x3f]
cdq
and edx, 0x3f
lea ebx, [rdx + rax]
mov eax, 0x14
and ebx, 0xffffffc0
cmp r9d, 0x14
cmovl r8, rcx
cmp r9d, eax
mov qword [rbp - 0x68], r8
cmovg r9d, eax
mov dword [rsp + 0x44], r9d
test r8, r8
je 0x140287ace
cmp r9d, eax
jne 0x140287ace
movups xmm0, xmmword [r8]
mov eax, dword [r8 + 0x10]
mov dword [rbp - 0x10], eax
movups xmmword [rbp - 0x20], xmm0
call fcn.1402882e0
mov qword [rsp + 0x38], rax
mov r14, rax
test rax, rax
je 0x14028808a
call fcn.14028e470
mov qword [rsp + 0x58], rax
test rax, rax
je 0x140288068
mov qword [rsp + 0x138], r12
mov rcx, r14
mov qword [rsp + 0x130], r13
mov qword [rsp + 0x128], r15
call fcn.140288360
mov rcx, r14
call fcn.140288250
mov rcx, r14
mov rsi, rax
call fcn.140288250
mov rcx, r14
mov qword [rsp + 0x50], rax
call fcn.140288250
mov rcx, r14
mov r12, rax
call fcn.140288250
mov rcx, r14
mov qword [rsp + 0x70], rax
call fcn.140288250
mov rcx, r14
mov r13, rax
call fcn.140288250
mov rcx, r14
mov qword [rbp - 0x78], rax
call fcn.140288250
mov rcx, r14
mov qword [rsp + 0x60], rax
call fcn.140288250
dec ebx
mov qword [rsp + 0x68], rax
mov dword [rsp + 0x48], ebx
mov r15, rax
call fcn.140282dc0
mov rdx, rax
mov r8d, ebx
mov rcx, r15
call fcn.140290090
test eax, eax
je 0x14028804c
nop dword [rax]
mov r14, qword [rsp + 0x70]
xor r15d, r15d
nop dword [rax + rax]
mov ebx, dword [rsp + 0x40]
xor edx, edx
mov r8d, ebx
mov rcx, rdi
call fcn.14028fb00
inc ebx
mov dword [rsp + 0x40], ebx
test eax, eax
je 0x140288179
cmp dword [rsp + 0x44], r15d
jne 0x140287beb
mov edx, 0x14
lea rcx, [rbp - 0x20]
call fcn.14027ae00
mov ebx, 1
jmp 0x140287bf3
mov ebx, r15d
mov dword [rsp + 0x44], r15d
mov eax, dword [rbp - 0x10]
movups xmm0, xmmword [rbp - 0x20]
mov dword [rbp - 0x40], eax
mov dword [rbp + 8], eax
mov eax, 0x13
movups xmmword [rbp - 0x50], xmm0
movups xmmword [rbp - 8], xmm0
nop dword [rax]
add byte [rbp + rax - 0x50], 1
jne 0x140287c39
add byte [rbp + rax - 0x51], 1
jne 0x140287c39
add byte [rbp + rax - 0x52], 1
jne 0x140287c39
add byte [rbp + rax - 0x53], 1
jne 0x140287c39
add byte [rbp + rax - 0x54], 1
jne 0x140287c39
sub rax, 5
jns 0x140287c10
call fcn.140290a90
xor r9d, r9d
mov qword [rsp + 0x28], r15
lea r8, [rbp - 0x38]
mov qword [rsp + 0x20], rax
lea rcx, [rbp - 0x20]
lea edx, [r9 + 0x14]
call fcn.140290560
call fcn.140290a90
xor r9d, r9d
mov qword [rsp + 0x28], r15
lea r8, [rbp - 8]
mov qword [rsp + 0x20], rax
lea rcx, [rbp - 0x50]
lea edx, [r9 + 0x14]
call fcn.140290560
movdqu xmm1, xmmword [rbp - 0x38]
mov rcx, r15
mov edx, 4
movdqu xmm0, xmmword [rbp - 8]
pxor xmm1, xmm0
movdqu xmmword [rbp - 0x38], xmm1
nop word [rax + rax]
movzx eax, byte [rbp + rcx + 8]
xor byte [rbp + rcx - 0x28], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x140287ca0
or byte [rbp - 0x38], 0x80
lea rcx, [rbp - 0x38]
or byte [rbp - 0x25], 1
mov r8, r14
mov edx, 0x14
call fcn.1402824b0
test rax, rax
je 0x140288179
mov r9d, ebx
mov qword [rsp + 0x20], rdi
mov rbx, qword [rsp + 0x38]
mov edx, 0x32
mov r8, rbx
mov rcx, r14
call fcn.14028fb60
test eax, eax
jg 0x140287d07
je 0x140287bb0
mov r14, rbx
mov esi, r15d
jmp 0x140288050
xor r8d, r8d
mov rcx, rdi
lea edx, [r8 + 2]
call fcn.14028fb00
test eax, eax
je 0x140287cfc
xor r8d, r8d
mov rcx, rdi
lea edx, [r8 + 3]
call fcn.14028fb00
test eax, eax
je 0x140287cfc
mov eax, 0x66666667
imul dword [rsp + 0x48]
mov r14d, edx
sar r14d, 6
mov eax, r14d
shr eax, 0x1f
add r14d, eax
test r15d, r15d
je 0x140287d60
mov r8d, r15d
xor edx, edx
mov rcx, rdi
call fcn.14028fb00
test eax, eax
je 0x140288047
xor edx, edx
mov rcx, r12
call fcn.140282ce0
xor eax, eax
mov edi, eax
test r14d, r14d
js 0x140287e31
mov ebx, eax
nop dword [rax]
mov eax, 0x13
add byte [rbp + rax - 0x50], 1
jne 0x140287dae
add byte [rbp + rax - 0x51], 1
jne 0x140287dae
add byte [rbp + rax - 0x52], 1
jne 0x140287dae
add byte [rbp + rax - 0x53], 1
jne 0x140287dae
add byte [rbp + rax - 0x54], 1
jne 0x140287dae
sub rax, 5
jns 0x140287d85
call fcn.140290a90
xor r9d, r9d
mov qword [rsp + 0x28], 0
lea r8, [rbp - 0x38]
mov qword [rsp + 0x20], rax
lea rcx, [rbp - 0x50]
lea edx, [r9 + 0x14]
call fcn.140290560
mov r8, rsi
lea rcx, [rbp - 0x38]
mov edx, 0x14
call fcn.1402824b0
test rax, rax
je 0x140288047
mov r8d, ebx
mov rdx, rsi
mov rcx, rsi
call fcn.140290090
test eax, eax
je 0x140288047
mov r8, rsi
mov rdx, r12
mov rcx, r12
call fcn.14028cd50
test eax, eax
je 0x140288047
inc edi
add ebx, 0xa0
cmp edi, r14d
jle 0x140287d80
mov rbx, qword [rsp + 0x38]
mov edx, dword [rsp + 0x48]
mov rcx, r12
call fcn.1402829d0
test eax, eax
je 0x140288047
mov rdx, r12
mov rcx, r13
call fcn.1402827d0
test rax, rax
je 0x140288047
mov r8, qword [rsp + 0x68]
mov rdx, r13
mov rcx, r13
call fcn.14028cd50
test eax, eax
je 0x140288047
mov rdx, qword [rsp + 0x70]
mov rcx, rsi
call fcn.140290210
test eax, eax
je 0x140288047
mov rdi, qword [rbp - 0x78]
mov r9, rsi
mov rdx, rdi
mov qword [rsp + 0x20], rbx
mov r8, r13
xor ecx, ecx
call fcn.14028d180
test eax, eax
je 0x140288047
call fcn.140282dc0
mov r8, rax
mov rdx, rdi
mov rcx, rsi
call fcn.14028ce00
test eax, eax
je 0x140288047
mov rdi, qword [rsp + 0x60]
mov r8, rsi
mov rcx, rdi
mov rdx, r13
call fcn.14028ce00
test eax, eax
je 0x140288047
mov rdx, qword [rsp + 0x68]
mov rcx, rdi
call fcn.140282730
mov rdi, qword [rbp - 0x80]
test eax, eax
js 0x140287f18
mov rcx, qword [rsp + 0x60]
mov r9d, 1
mov r8, rbx
mov qword [rsp + 0x20], rdi
lea edx, [r9 + 0x31]
call fcn.14028fb60
test eax, eax
jg 0x140287f2d
jne 0x140288047
inc r15d
cmp r15d, 0x1000
jl 0x140287d46
jmp 0x140287ba0
mov edx, 2
mov rcx, rdi
lea r8d, [rdx - 1]
call fcn.14028fb00
test eax, eax
je 0x140288047
call fcn.140282dc0
mov r14, qword [rsp + 0x60]
mov r8, rax
mov r12, qword [rsp + 0x68]
mov rdx, r14
mov rcx, r12
call fcn.14028ce00
test eax, eax
je 0x140288047
mov r13, qword [rsp + 0x70]
mov r8, r12
mov r9, r13
mov qword [rsp + 0x20], rbx
xor edx, edx
mov rcx, rsi
call fcn.14028d180
test eax, eax
je 0x140288047
mov edx, 2
mov rcx, r12
call fcn.140282ce0
test eax, eax
je 0x140288047
mov rcx, qword [rsp + 0x58]
mov r8, rbx
mov rdx, r14
call fcn.14028e4e0
test eax, eax
je 0x140288047
mov rax, qword [rsp + 0x58]
mov r9, r14
mov rcx, qword [rsp + 0x50]
mov r8, rsi
mov qword [rsp + 0x28], rax
mov rdx, r12
mov qword [rsp + 0x20], rbx
call fcn.140288af0
test eax, eax
je 0x140288047
mov rcx, qword [rsp + 0x50]
cmp dword [rcx + 8], 1
jne 0x1402880a6
mov rax, qword [rcx]
cmp qword [rax], 1
jne 0x1402880a6
cmp dword [rcx + 0x10], 0
jne 0x1402880a6
call fcn.140282dc0
mov r8, rax
mov rdx, r12
mov rcx, r12
call fcn.14028cd50
test eax, eax
je 0x140288047
mov rax, qword [rsp + 0x58]
mov r9, r14
mov rcx, qword [rsp + 0x50]
mov r8, rsi
inc dword [rsp + 0x78]
mov rdx, r12
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
call fcn.140288af0
test eax, eax
jne 0x140287fe0
mov r14, qword [rsp + 0x38]
mov esi, dword [rsp + 0x30]
mov r13, qword [rsp + 0x130]
mov r12, qword [rsp + 0x138]
mov r15, qword [rsp + 0x128]
mov rcx, r14
call fcn.140288190
mov rcx, r14
call fcn.140288210
mov rax, qword [rsp + 0x58]
test rax, rax
je 0x14028808a
mov rcx, rax
call fcn.14028e420
mov eax, esi
mov rcx, qword [rbp + 0x10]
xor rcx, rsp
call fcn.14029d460
add rsp, 0x140
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov edx, 3
mov rcx, rdi
lea r8d, [rdx - 2]
call fcn.14028fb00
test eax, eax
je 0x140288047
mov esi, 1
mov rbx, qword [rbp - 0x70]
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x1402880d2
call fcn.140282920
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x1402880e0
call fcn.140282920
mov rcx, qword [rbx + 0x20]
test rcx, rcx
je 0x1402880ee
call fcn.140282920
mov rcx, r14
call fcn.1402828b0
mov rcx, r13
mov qword [rbx + 0x10], rax
call fcn.1402828b0
mov rcx, qword [rsp + 0x50]
mov qword [rbx + 0x18], rax
call fcn.1402828b0
cmp qword [rbx + 0x10], 0
mov qword [rbx + 0x20], rax
je 0x14028816d
cmp qword [rbx + 0x18], 0
je 0x14028816d
test rax, rax
je 0x14028816d
cmp dword [rsp + 0x40], esi
jle 0x140288143
mov rcx, qword [rbp - 0x68]
test rcx, rcx
je 0x140288143
movups xmm0, xmmword [rbp - 0x20]
mov eax, dword [rbp - 0x10]
movups xmmword [rcx], xmm0
mov dword [rcx + 0x10], eax
mov rax, qword [rbp - 0x60]
test rax, rax
je 0x14028814f
mov dword [rax], r15d
mov rcx, qword [rbp - 0x58]
mov r14, qword [rsp + 0x38]
test rcx, rcx
je 0x140288050
mov rax, qword [rsp + 0x78]
mov dword [rcx], eax
jmp 0x140288050
mov r14, qword [rsp + 0x38]
xor esi, esi
jmp 0x140288050
mov r14, qword [rsp + 0x38]
mov esi, r15d
jmp 0x140288050