Function at 0x140046531
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]
sub rsp, 0xd8
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], 0x29b6f213
add qword [rdx + 0x18], 0x13b2d61
sub qword [rdx + 0x18], 0xeab0fa0
sub qword [rdx + 0x18], 0x1c470fd3
mov rsi, qword [rcx + 0x870]
mov rbx, qword [rcx + 0x838]
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.14000ef00
mov r8, rax
mov ecx, 0x19761f2
add ecx, 0x59bb6f82
add ecx, 0x103a8dc0
mov r9d, 0x634b0127
sub r9d, 0x127455b7
sub r9d, 0x9859bd6
sub r9d, 0x47510e9b
test rsi, rsi
je 0x1400461b0
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 0x14004618f
mov word [r8 + rsi*2], r14w
mov r14, qword [rbp - 0x31]
cmp word [r14], 0
je 0x140046666
mov qword [rsp + 0xb8], r15
nop dword [rax + rax]
mov edx, 0x5cabac58
add edx, 0xf3cc57d
sub edx, 0x1ddd3908
sub edx, 0x4e0b38c3
mov rcx, r14
call 0x14009a580
mov qword [rbp + 0x6f], rax
nop
movabs r15, 0xffffffff6c058625
sub r15, 0x51412ade
xor r15, 0x56b4fb36
add r15, 0x7fffffff
add r15, 0x338f5f8f
test rax, rax
je 0x140046232
mov rbx, rax
sub rbx, r14
sar rbx, 1
jmp 0x140046249
mov rbx, r15
nop dword [rax + rax]
inc rbx
cmp word [r14 + rbx*2], 0
jne 0x14004623a
lea rdi, [rbx + 1]
mov eax, 0x54f60039
sub eax, 0x536a19b4
xor eax, 0x18be687
mul rdi
cmovb rax, r15
mov rcx, rax
call fcn.140099540
mov r9, rbx
mov qword [rbp + 0x7f], rax
mov r8, r14
mov rdx, rdi
mov rcx, rax
mov rsi, rax
call fcn.14009a670
cmp byte [r13 + 0x88c], 0
je 0x140046320
xor ebx, ebx
nop word [rax + rax]
lea rdx, [rbp + 7]
mov rcx, r13
call fcn.140038340
mov rcx, qword [rbp + 0x77]
mov rdx, rsi
mov rdi, rax
call fcn.140033170
cmp eax, dword [rdi]
jle 0x140046320
mov edx, 0x6cc00a97
sub edx, 0x3ed62161
sub edx, 0x2de9e916
mov rcx, rsi
call fcn.14009a740
test rax, rax
jne 0x140046302
mov rax, r15
inc rax
cmp word [rsi + rax*2], bx
jne 0x1400462e4
cmp rax, 1
jbe 0x14004650e
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 + 0x88c], bl
jne 0x14004629c
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 0x14004633d
lea rcx, [rbp - 0x71]
mov qword [rbp - 0x39], rdx
call fcn.14000ef00
cmp qword [rbp - 0x39], 0
pushf
mov edx, 0x5a87bec7
xor edx, 0x5d3212d8
add edx, 0x63d7b315
popf
mov rdi, r14
jbe 0x1400463c3
mov r8, rsi
mov r9d, 0x53a6ba7a
xor r9d, 0x32cd4739
xor r9d, 0x616bfdbc
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 0x14004639e
mov rax, qword [r12 + 8]
test rax, rax
je 0x14004654f
mov rcx, qword [r12 + 0x10]
cmp rax, rcx
jb 0x140046546
add rcx, qword [r12 + 0x18]
mov qword [r12 + 0x10], rcx
shl rcx, 6
call fcn.140099990
mov rcx, qword [r12 + 8]
mov r13, rax
mov qword [rbp - 0x79], rax
mov r15, r14
test rcx, rcx
je 0x1400464be
nop
movabs rsi, 0xffffffff4deb0534
add rsi, 0x28f642f5
sub rsi, 0x2d89d9fc
add rsi, 0x7fffffff
xor rsi, 0x36a891e4
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.14000ef00
mov rdi, r13
cmp qword [rbx], r13
jbe 0x14004649e
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 0x140046486
mov rcx, qword [r12 + 8]
inc r15
sub rbx, 0xffffffffffffffc0
cmp r15, rcx
jb 0x140046442
mov rsi, qword [rbp + 0x7f]
xor r14d, r14d
mov r13, qword [rbp - 0x79]
cmp qword [r12], 0
je 0x14004653a
test rcx, rcx
je 0x140046531
xor ebx, ebx
nop
mov rax, qword [r12]
mov rcx, qword [rbx + rax]
lea rdi, [rax + 8]
add rdi, rbx
cmp rcx, rdi
jne 0x14004651a
xor eax, eax
mov ecx, 0x71f14469
xor ecx, 0x5014724b
xor ecx, 0x366bf11d
sub ecx, 0x178ec70f
rep stosb byte [rdi], al
jmp 0x14004651f
xor r14d, r14d
mov qword [rbp + 0x6f], r14
jmp 0x140046323
call fcn.1400996a0
inc r14
add rbx, 0x40
cmp r14, qword [r12 + 8]
jb 0x1400464d6
mov rcx, qword [r12]
call fcn.1400996a0
mov qword [r12], r13
xor r14d, r14d
jmp 0x140046576
mov r13, qword [r12]
jmp 0x140046576
mov r13, qword [r12]
test r13, r13
jne 0x140046576
mov rcx, qword [r12 + 0x18]
mov qword [r12 + 0x10], rcx
shl rcx, 6
call fcn.140099990
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.14000ef00
cmp qword [rbx + 0x38], 0
mov rdi, r14
jbe 0x1400465ea
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 0x1400465d1
mov rcx, qword [rbp - 0x71]
lea rax, [rbp - 0x69]
cmp rcx, rax
jne 0x14004661f
lea rdi, [rbp - 0x69]
xor eax, eax
mov ecx, 0x14ca8de7
xor ecx, 0x497968c4
sub ecx, 0x8213084
xor ecx, 0x5592b4af
rep stosb byte [rdi], al
jmp 0x140046624
call fcn.1400996a0
mov rcx, rsi
call fcn.140099550
mov rax, qword [rbp + 0x6f]
test rax, rax
je 0x14004665a
mov r13, qword [rbp + 0x67]
cmp byte [r13 + 0x88c], 0
je 0x14004665a
cmp word [rax + 2], 0
lea r14, [rax + 2]
jne 0x1400461d1
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 0x1400466bb
xor eax, eax
lea rdi, [rbp - 0x29]
mov ecx, 0x188fae1d
add ecx, 0x2fbef32d
add ecx, 0x392e4f3
sub ecx, 0x4be1860d
rep stosb byte [rdi], al
mov rax, r12
sub rsp, 0xffffffffffffff28
pop r14
pop r12
pop rdi
pop rbp
ret
mov rcx, r14
call fcn.1400996a0
mov rax, r12
add rsp, 0xd8
pop r14
pop r12
pop rdi
pop rbp
ret