Function at 0x1400515c1
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], r8
mov qword [rax + 8], rcx
push rbp
push rdi
push r12
push r14
lea rbp, [rax - 0x5f]
add rsp, 0x25f16f75
sub rsp, 0x25f1704d
mov qword [rax - 0x28], rbx
xorps xmm0, xmm0
mov qword [rax - 0x30], rsi
xor r14d, r14d
mov qword [rdx], r14
mov r12, rdx
mov qword [rdx + 8], r14
mov qword [rdx + 0x10], r14
mov qword [rdx + 0x18], 0x156b83d1
xor qword [rdx + 0x18], 0x4137636
xor qword [rdx + 0x18], 0x1178f5e6
mov rsi, qword [rcx + 0x868]
mov rbx, qword [rcx + 0x830]
mov qword [rax - 0x38], r13
mov r13, rcx
lea rax, [rbp - 0x29]
lea rdx, [rsi + 1]
mov qword [rbp - 0x31], rax
lea rcx, [rbp - 0x31]
movups xmmword [rbp - 0x29], xmm0
movups xmmword [rbp - 0x19], xmm0
movups xmmword [rbp - 9], xmm0
call fcn.140016760
mov r8, rax
mov ecx, 0x6f1d756a
add ecx, 0x240e18a
sub ecx, 0x444a1e29
mov r9d, 0x1d6ef8dd
xor r9d, 0x23b0adbe
xor r9d, 0x3ede559c
test rsi, rsi
je 0x140051238
mov rdx, rax
sub rbx, rax
mov rdi, rsi
movzx eax, cx
lea rdx, [rdx + 2]
and ax, r9w
ror ecx, 8
xor ax, word [rbx + rdx - 2]
mov word [rdx - 2], ax
sub rdi, 1
jne 0x140051217
mov word [r8 + rsi*2], r14w
mov r14, qword [rbp - 0x31]
cmp word [r14], 0
je 0x1400516fb
mov qword [rsp + 0xb8], r15
nop dword [rax + rax]
mov edx, 0x6d7738fd
add edx, 0x56913d6
sub edx, 0x400d6765
sub edx, 0x32d2e564
mov rcx, r14
call 0x140093ab0
mov qword [rbp + 0x6f], rax
nop
movabs r15, 0xffffffff4a23db52
sub r15, 0x1bc0e9de
add r15, 0x7fffffff
add r15, 0x519d0e8c
test rax, rax
je 0x1400512b3
mov rbx, rax
sub rbx, r14
sar rbx, 1
jmp 0x1400512ca
mov rbx, r15
nop dword [rax + rax]
inc rbx
cmp word [r14 + rbx*2], 0
jne 0x1400512bb
lea rdi, [rbx + 1]
mov eax, 0x214dd945
xor eax, 0x7f9cb7c3
sub eax, 0x3d046b28
sub eax, 0x21cd035c
mul rdi
cmovo rax, r15
mov rcx, rax
call fcn.140092ac0
mov r9, rbx
mov qword [rbp + 0x7f], rax
mov r8, r14
mov rdx, rdi
mov rcx, rax
mov rsi, rax
call fcn.140093b90
cmp byte [r13 + 0x884], 0
je 0x1400513ac
xor ebx, ebx
nop word [rax + rax]
lea rdx, [rbp + 7]
mov rcx, r13
call fcn.1400448a0
mov rcx, qword [rbp + 0x77]
mov rdx, rsi
mov rdi, rax
call fcn.140040428
cmp eax, dword [rdi]
jle 0x1400513ac
mov edx, 0x3e8b7186
xor edx, 0x1b89cfb3
xor edx, 0x1f4a5c96
sub edx, 0x3a48e283
mov rcx, rsi
call fcn.140093c50
test rax, rax
jne 0x14005138e
mov rax, r15
inc rax
cmp word [rsi + rax*2], bx
jne 0x140051370
cmp rax, 1
jbe 0x14005159e
dec rax
lea rax, [rsi + rax*2]
mov word [rax], bx
sub rax, rsi
sar rax, 1
lea rax, [r14 + rax*2]
mov qword [rbp + 0x6f], rax
cmp byte [r13 + 0x884], bl
jne 0x140051322
xor r14d, r14d
xorps xmm0, xmm0
lea rax, [rbp - 0x69]
mov qword [rbp - 0x71], rax
mov rdx, r15
movups xmmword [rbp - 0x69], xmm0
movups xmmword [rbp - 0x59], xmm0
movups xmmword [rbp - 0x49], xmm0
inc rdx
cmp word [rsi + rdx*2], 0
jne 0x1400513c9
lea rcx, [rbp - 0x71]
mov qword [rbp - 0x39], rdx
call fcn.140016760
cmp qword [rbp - 0x39], 0
pushf
mov edx, 0x51134975
sub edx, 0x4c8df4c4
add edx, 0x102a7e12
add edx, 0x18646608
popf
mov rdi, r14
jbe 0x140051455
mov r8, rsi
mov r9d, 0x5052aa16
sub r9d, 0x232e55c1
sub r9d, 0x2d245356
sub r8, rax
nop word [rax + rax]
movzx ecx, dx
lea rax, [rax + 2]
and cx, r9w
ror edx, 8
xor cx, word [r8 + rax - 2]
inc rdi
mov word [rax - 2], cx
cmp rdi, qword [rbp - 0x39]
jb 0x140051430
mov rax, qword [r12 + 8]
test rax, rax
je 0x1400515ea
mov rcx, qword [r12 + 0x10]
cmp rax, rcx
jb 0x1400515e1
add rcx, qword [r12 + 0x18]
mov qword [r12 + 0x10], rcx
shl rcx, 6
call fcn.140092ed0
mov rcx, qword [r12 + 8]
mov r13, rax
mov qword [rbp - 0x79], rax
mov r15, r14
test rcx, rcx
je 0x140051554
nop
movabs rsi, 0xffffffff64f89cda
xor rsi, 0x16965dae
add rsi, 0x7fffffff
add rsi, 0xd913e55
lea rbx, [rax + 0x38]
sub rsi, rax
xor r13d, r13d
nop dword [rax]
mov r14, qword [r12]
lea rax, [rbx - 0x30]
mov qword [rbx - 0x38], rax
lea rcx, [rbx - 0x38]
xorps xmm0, xmm0
add r14, rsi
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm0
mov rdx, qword [r14 + rbx + 0x38]
mov qword [rbx], rdx
call fcn.140016760
mov rdi, r13
cmp qword [rbx], r13
jbe 0x140051529
nop word [rax + rax]
mov rcx, qword [r14 + rbx]
movzx edx, word [rcx + rdi*2]
mov word [rax + rdi*2], dx
inc rdi
cmp rdi, qword [rbx]
jb 0x140051511
mov rcx, qword [r12 + 8]
inc r15
nop
sub rbx, 0x66b898b3
add rbx, 0x66b898f3
cmp r15, rcx
jb 0x1400514cd
mov rsi, qword [rbp + 0x7f]
xor r14d, r14d
mov r13, qword [rbp - 0x79]
cmp qword [r12], 0
je 0x1400515d8
mov rbx, r14
test rcx, rcx
je 0x1400515cf
nop
mov rax, qword [r12]
mov rcx, qword [r14 + rax]
lea rdi, [rax + 8]
add rdi, r14
cmp rcx, rdi
jne 0x1400515aa
xor eax, eax
mov ecx, 0x1c66c4b5
add ecx, 0x3c5a2682
xor ecx, 0x58c0eb07
rep stosb byte [rdi], al
jmp 0x1400515af
xor r14d, r14d
mov qword [rbp + 0x6f], r14
jmp 0x1400513af
call fcn.140092c10
inc rbx
nop
add r14, 0x1d46bb9b
sub r14, 0x1d46bb5b
cmp rbx, qword [r12 + 8]
jb 0x14005156c
xor r14d, r14d
mov rcx, qword [r12]
call fcn.140092c10
mov qword [r12], r13
jmp 0x140051611
mov r13, qword [r12]
jmp 0x140051611
mov r13, qword [r12]
test r13, r13
jne 0x140051611
mov rcx, qword [r12 + 0x18]
mov qword [r12 + 0x10], rcx
shl rcx, 6
call fcn.140092ed0
mov r13, rax
mov qword [r12], rax
mov rax, qword [r12 + 8]
xorps xmm0, xmm0
mov rbx, rax
shl rbx, 6
add rbx, r13
inc rax
mov rcx, rbx
mov qword [r12 + 8], rax
lea rax, [rbx + 8]
mov qword [rbx], rax
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm0
mov rax, qword [rbp - 0x39]
mov qword [rbx + 0x38], rax
mov rdx, qword [rbp - 0x39]
call fcn.140016760
cmp qword [rbx + 0x38], 0
mov rdi, r14
jbe 0x140051685
nop dword [rax]
nop word [rax + rax]
mov rcx, qword [rbp - 0x71]
movzx edx, word [rcx + rdi*2]
mov word [rax + rdi*2], dx
inc rdi
cmp rdi, qword [rbx + 0x38]
jb 0x14005166c
mov rcx, qword [rbp - 0x71]
lea rax, [rbp - 0x69]
cmp rcx, rax
jne 0x1400516b4
lea rdi, [rbp - 0x69]
xor eax, eax
mov ecx, 0x43d9db4b
xor ecx, 0x1251c87d
sub ecx, 0x51881306
rep stosb byte [rdi], al
jmp 0x1400516b9
call fcn.140092c10
mov rcx, rsi
call fcn.140092ad0
mov rax, qword [rbp + 0x6f]
test rax, rax
je 0x1400516ef
mov r13, qword [rbp + 0x67]
cmp byte [r13 + 0x884], 0
je 0x1400516ef
cmp word [rax + 2], 0
lea r14, [rax + 2]
jne 0x140051259
mov r14, qword [rbp - 0x31]
mov r15, qword [rsp + 0xb8]
mov r13, qword [rsp + 0xc0]
lea rax, [rbp - 0x29]
mov rsi, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0xd0]
cmp r14, rax
jne 0x140051750
xor eax, eax
lea rdi, [rbp - 0x29]
mov ecx, 0x45ed7b60
xor ecx, 0x46335b58
xor ecx, 0x605acf8c
sub ecx, 0x6384ef84
rep stosb byte [rdi], al
mov rax, r12
add rsp, 0xd8
pop r14
pop r12
pop rdi
pop rbp
ret
mov rcx, r14
call fcn.140092c10
mov rax, r12
add rsp, 0xd8
pop r14
pop r12
pop rdi
pop rbp
ret