Function at 0x140047333
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, 0xffffffffffffff28
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], 0x383a338d
sub qword [rdx + 0x18], 0x15168a72
xor qword [rdx + 0x18], 0x3ef1823c
sub qword [rdx + 0x18], 0x1dd22b26
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.14000ed90
mov r8, rax
mov ecx, 0x59984380
xor ecx, 0x518d472b
add ecx, 0xaae17e4
mov r9d, 0x708729f1
xor r9d, 0x387c1b76
sub r9d, 0x52fe624
xor r9d, 0x43cb4c9c
test rsi, rsi
je 0x140047360
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 0x14004733f
mov word [r8 + rsi*2], r14w
mov r14, qword [rbp - 0x31]
cmp word [r14], 0
je 0x140047824
mov qword [rsp + 0xb8], r15
nop dword [rax + rax]
mov edx, 0x5c97e6ce
sub edx, 0x2a168479
sub edx, 0x3281624b
mov rcx, r14
call 0x1400994a0
mov qword [rbp + 0x6f], rax
nop
movabs r15, 0xffffffff6ca63d5e
add r15, 0x7bd40a4
add r15, 0x3b793d3
add r15, 0x7fffffff
xor r15, 0x7e4ee2b
test rax, rax
je 0x1400473dc
mov rbx, rax
sub rbx, r14
sar rbx, 1
jmp 0x1400473f3
mov rbx, r15
nop dword [rax + rax]
inc rbx
cmp word [r14 + rbx*2], 0
jne 0x1400473e4
lea rdi, [rbx + 1]
mov eax, 0x5a287693
xor eax, 0x48695927
add eax, 0xcdb5626
xor eax, 0x1f1c85d8
mul rdi
cmovo rax, r15
mov rcx, rax
call fcn.1400984e0
mov r9, rbx
mov qword [rbp + 0x7f], rax
mov r8, r14
mov rdx, rdi
mov rcx, rax
mov rsi, rax
call fcn.140099580
cmp byte [r13 + 0x88c], 0
je 0x1400474cf
xor ebx, ebx
nop word [rax + rax]
lea rdx, [rbp + 7]
mov rcx, r13
call fcn.140039290
mov rcx, qword [rbp + 0x77]
mov rdx, rsi
mov rdi, rax
call fcn.1400346b0
cmp eax, dword [rdi]
jle 0x1400474cf
mov edx, 0x785ec9d4
xor edx, 0x2b220e1e
sub edx, 0x537cc7aa
mov rcx, rsi
call fcn.140099640
test rax, rax
jne 0x1400474b1
mov rax, r15
inc rax
cmp word [rsi + rax*2], bx
jne 0x140047493
cmp rax, 1
jbe 0x1400476c1
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 0x14004744b
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 0x1400474ec
lea rcx, [rbp - 0x71]
mov qword [rbp - 0x39], rdx
call fcn.14000ed90
cmp qword [rbp - 0x39], 0
pushf
mov edx, 0x2298d06b
sub edx, 0x2007c860
add edx, 0x10321484
popf
mov rdi, r14
jbe 0x140047572
mov r8, rsi
mov r9d, 0x715f0a5e
xor r9d, 0x7645c41
sub r9d, 0x763b5520
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 0x14004754d
mov rax, qword [r12 + 8]
test rax, rax
je 0x14004770d
mov rcx, qword [r12 + 0x10]
cmp rax, rcx
jb 0x140047704
add rcx, qword [r12 + 0x18]
mov qword [r12 + 0x10], rcx
shl rcx, 6
call fcn.140098900
mov rcx, qword [r12 + 8]
mov r13, rax
mov qword [rbp - 0x79], rax
mov r15, r14
test rcx, rcx
je 0x140047671
nop
movabs rsi, 0xffffffff346af868
xor rsi, 0x5c153b4e
add rsi, 0x7fffffff
xor rsi, 0x17803ced
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.14000ed90
mov rdi, r13
cmp qword [rbx], r13
jbe 0x140047646
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 0x14004762e
mov rcx, qword [r12 + 8]
inc r15
nop
sub rbx, 0x59661a52
add rbx, 0x59661a92
cmp r15, rcx
jb 0x1400475ea
mov rsi, qword [rbp + 0x7f]
xor r14d, r14d
mov r13, qword [rbp - 0x79]
cmp qword [r12], 0
je 0x1400476f8
test rcx, rcx
je 0x1400476ef
xor ebx, ebx
nop
mov rax, qword [r12]
mov rcx, qword [rbx + rax]
lea rdi, [rax + 8]
add rdi, rbx
cmp rcx, rdi
jne 0x1400476cd
xor eax, eax
mov ecx, 0x7dbe45bc
xor ecx, 0x56a5e114
add ecx, 0x228a0133
xor ecx, 0x4da5a5eb
rep stosb byte [rdi], al
jmp 0x1400476d2
xor r14d, r14d
mov qword [rbp + 0x6f], r14
jmp 0x1400474d2
call fcn.140098620
inc r14
nop
sub rbx, 0x135c6019
add rbx, 0x135c6059
cmp r14, qword [r12 + 8]
jb 0x140047689
mov rcx, qword [r12]
call fcn.140098620
mov qword [r12], r13
xor r14d, r14d
jmp 0x140047734
mov r13, qword [r12]
jmp 0x140047734
mov r13, qword [r12]
test r13, r13
jne 0x140047734
mov rcx, qword [r12 + 0x18]
mov qword [r12 + 0x10], rcx
shl rcx, 6
call fcn.140098900
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.14000ed90
cmp qword [rbx + 0x38], 0
mov rdi, r14
jbe 0x1400477a8
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 0x14004778f
mov rcx, qword [rbp - 0x71]
lea rax, [rbp - 0x69]
cmp rcx, rax
jne 0x1400477dd
lea rdi, [rbp - 0x69]
xor eax, eax
mov ecx, 0x305a9e1b
add ecx, 0x6b5a28e
sub ecx, 0x18574eb9
xor ecx, 0x1eb8f1c0
rep stosb byte [rdi], al
jmp 0x1400477e2
call fcn.140098620
mov rcx, rsi
call fcn.1400984f0
mov rax, qword [rbp + 0x6f]
test rax, rax
je 0x140047818
mov r13, qword [rbp + 0x67]
cmp byte [r13 + 0x88c], 0
je 0x140047818
cmp word [rax + 2], 0
lea r14, [rax + 2]
jne 0x140047381
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 0x140047879
xor eax, eax
lea rdi, [rbp - 0x29]
mov ecx, 0x3d9ff733
xor ecx, 0x3d0c8c2e
sub ecx, 0x937aed
rep stosb byte [rdi], al
mov rax, r12
neg rsp
add rsp, 0xffffffffffffff28
neg rsp
pop r14
pop r12
pop rdi
pop rbp
ret
mov rcx, r14
call fcn.140098620
mov rax, r12
add rsp, 0x61b2b08e
sub rsp, 0x61b2afb6
pop r14
pop r12
pop rdi
pop rbp
ret