Function at 0x140045583
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]
neg rsp
sub rsp, 0xffffffffffffff28
neg rsp
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], 0x4bf81731
add qword [rdx + 0x18], 0xff2e1ce
sub qword [rdx + 0x18], 0x3680ad77
xor qword [rdx + 0x18], 0x256a4b89
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.140016fc0
mov r8, rax
mov ecx, 0xcdae71f
add ecx, 0x6cacd1e4
xor ecx, 0x7a20c419
mov r9d, 0x79bb5904
xor r9d, 0x1e64303c
sub r9d, 0x398ee6e5
sub r9d, 0x2e508154
test rsi, rsi
je 0x1400455b6
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 0x140045595
mov word [r8 + rsi*2], r14w
mov r14, qword [rbp - 0x31]
cmp word [r14], 0
je 0x140045a71
mov qword [rsp + 0xb8], r15
nop dword [rax + rax]
mov edx, 0x341934c
xor edx, 0x6677c955
sub edx, 0x65365a0f
mov rcx, r14
call 0x1400bc490
mov qword [rbp + 0x6f], rax
nop
movabs r15, 0xffffffff24a82caa
add r15, 0x3b782514
sub r15, 0x4be27a62
add r15, 0x7fffffff
xor r15, 0x6bc228a4
test rax, rax
je 0x140045632
mov rbx, rax
sub rbx, r14
sar rbx, 1
jmp 0x140045649
mov rbx, r15
nop dword [rax + rax]
inc rbx
cmp word [r14 + rbx*2], 0
jne 0x14004563a
lea rdi, [rbx + 1]
mov eax, 0x740b8fc6
xor eax, 0x3a88def9
sub eax, 0x3aab25b2
sub eax, 0x13d82b8b
mul rdi
cmovo rax, r15
mov rcx, rax
call fcn.1400bb280
mov r9, rbx
mov qword [rbp + 0x7f], rax
mov r8, r14
mov rdx, rdi
mov rcx, rax
mov rsi, rax
call fcn.1400bc5e0
cmp byte [r13 + 0x884], 0
je 0x140045725
xor ebx, ebx
nop word [rax + rax]
lea rdx, [rbp + 7]
mov rcx, r13
call fcn.14004e8d0
mov rcx, qword [rbp + 0x77]
mov rdx, rsi
mov rdi, rax
call fcn.140033120
cmp eax, dword [rdi]
jle 0x140045725
mov edx, 0xc0eb080
add edx, 0x18129ff1
xor edx, 0x24215051
mov rcx, rsi
call fcn.1400bc6f0
test rax, rax
jne 0x140045707
mov rax, r15
inc rax
cmp word [rsi + rax*2], bx
jne 0x1400456e9
cmp rax, 1
jbe 0x14004591f
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 0x1400456a1
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 0x140045742
lea rcx, [rbp - 0x71]
mov qword [rbp - 0x39], rdx
call fcn.140016fc0
cmp qword [rbp - 0x39], 0
pushf
mov edx, 0x3e99fe86
sub edx, 0x3272346f
sub edx, 0x8804cfd
popf
mov rdi, r14
jbe 0x1400457cf
mov r8, rsi
mov r9d, 0x4148d0e3
sub r9d, 0x5b84085
sub r9d, 0x94b6b5a
sub r9d, 0x32452405
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 0x1400457aa
mov rax, qword [r12 + 8]
test rax, rax
je 0x140045960
mov rcx, qword [r12 + 0x10]
cmp rax, rcx
jb 0x140045957
add rcx, qword [r12 + 0x18]
mov qword [r12 + 0x10], rcx
shl rcx, 6
call fcn.1400bb6f0
mov rcx, qword [r12 + 8]
mov r13, rax
mov qword [rbp - 0x79], rax
mov r15, r14
test rcx, rcx
je 0x1400458d5
nop
movabs rsi, 0xffffffff6334c3ed
sub rsi, 0x3ba25c21
sub rsi, 0x3f05b98
add rsi, 0x7fffffff
add rsi, 0x5c5df395
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.140016fc0
mov rdi, r13
cmp qword [rbx], r13
jbe 0x1400458aa
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 0x140045892
mov rcx, qword [r12 + 8]
inc r15
nop
add rbx, 0x5fa98dd3
sub rbx, 0x5fa98d93
cmp r15, rcx
jb 0x14004584e
mov rsi, qword [rbp + 0x7f]
xor r14d, r14d
mov r13, qword [rbp - 0x79]
cmp qword [r12], 0
je 0x14004594e
mov rbx, r14
test rcx, rcx
je 0x140045945
nop
mov rax, qword [r12]
mov rcx, qword [r14 + rax]
lea rdi, [rax + 8]
add rdi, r14
cmp rcx, rdi
jne 0x14004592b
xor eax, eax
mov ecx, 0x633e3176
sub ecx, 0x232f6cc2
sub ecx, 0x400ec484
rep stosb byte [rdi], al
jmp 0x140045930
xor r14d, r14d
mov qword [rbp + 0x6f], r14
jmp 0x140045728
call fcn.1400bb460
inc rbx
sub r14, 0xffffffffffffffc0
cmp rbx, qword [r12 + 8]
jb 0x1400458ed
xor r14d, r14d
mov rcx, qword [r12]
call fcn.1400bb460
mov qword [r12], r13
jmp 0x140045987
mov r13, qword [r12]
jmp 0x140045987
mov r13, qword [r12]
test r13, r13
jne 0x140045987
mov rcx, qword [r12 + 0x18]
mov qword [r12 + 0x10], rcx
shl rcx, 6
call fcn.1400bb6f0
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.140016fc0
cmp qword [rbx + 0x38], 0
mov rdi, r14
jbe 0x1400459fb
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 0x1400459e2
mov rcx, qword [rbp - 0x71]
lea rax, [rbp - 0x69]
cmp rcx, rax
jne 0x140045a2a
lea rdi, [rbp - 0x69]
xor eax, eax
mov ecx, 0x7e3ad47d
xor ecx, 0xd62f694
sub ecx, 0x735822b9
rep stosb byte [rdi], al
jmp 0x140045a2f
call fcn.1400bb460
mov rcx, rsi
call fcn.1400bb290
mov rax, qword [rbp + 0x6f]
test rax, rax
je 0x140045a65
mov r13, qword [rbp + 0x67]
cmp byte [r13 + 0x884], 0
je 0x140045a65
cmp word [rax + 2], 0
lea r14, [rax + 2]
jne 0x1400455d7
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 0x140045acd
xor eax, eax
lea rdi, [rbp - 0x29]
mov ecx, 0x420d10c1
add ecx, 0x2233b183
sub ecx, 0x3dbc22c8
sub ecx, 0x26849f4c
rep stosb byte [rdi], al
mov rax, r12
add rsp, 0x390f81d8
sub rsp, 0x390f8100
pop r14
pop r12
pop rdi
pop rbp
ret
mov rcx, r14
call fcn.1400bb460
mov rax, r12
sub rsp, 0xffffffffffffff28
pop r14
pop r12
pop rdi
pop rbp
ret