Function at 0x1400397b0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], r8
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
movzx eax, byte [rdx + 6]
movabs r8, 0xaa00aa00aa00aa
movzx r10d, byte [rdx + 7]
movzx r11d, byte [rdx + 0xf]
shl r10, 8
or r10, rax
shl r11, 8
movzx eax, byte [rdx + 5]
shl r10, 8
or r10, rax
movzx eax, byte [rdx + 4]
shl r10, 8
or r10, rax
movzx eax, byte [rdx + 3]
shl r10, 8
or r10, rax
movzx eax, byte [rdx + 2]
shl r10, 8
or r10, rax
movzx eax, byte [rdx + 1]
shl r10, 8
or r10, rax
movzx eax, byte [rdx]
shl r10, 8
or r10, rax
movzx eax, byte [rdx + 0xe]
or r11, rax
mov rcx, r10
movzx eax, byte [rdx + 0xd]
shr rcx, 7
xor rcx, r10
shl r11, 8
or r11, rax
and rcx, r8
movzx eax, byte [rdx + 0xc]
shl r11, 8
or r11, rax
movzx eax, byte [rdx + 0xb]
shl r11, 8
or r11, rax
movzx eax, byte [rdx + 0xa]
shl r11, 8
or r11, rax
movzx eax, byte [rdx + 9]
shl r11, 8
or r11, rax
movzx eax, byte [rdx + 8]
shl r11, 8
or r11, rax
mov rax, rcx
shl rax, 7
xor rax, rcx
mov rcx, r11
shr rcx, 7
xor r10, rax
xor rcx, r11
and rcx, r8
movabs r8, 0xcccc0000cccc
mov rax, rcx
shl rax, 7
xor rax, rcx
mov rcx, r10
xor r11, rax
shr rcx, 0xe
xor rcx, r10
and rcx, r8
mov rax, rcx
shl rax, 0xe
xor rax, rcx
mov rcx, r11
shr rcx, 0xe
xor r10, rax
xor rcx, r11
and rcx, r8
mov rax, rcx
shl rax, 0xe
xor rax, rcx
mov rcx, r10
shr rcx, 0x1c
xor r11, rax
xor rcx, r10
mov r8d, 0xf0f0f0f0
mov ebx, 0x10
and rcx, r8
mov edi, r8d
mov rax, rcx
shl rax, 0x1c
xor rax, rcx
mov rcx, r11
xor r10, rax
shr rcx, 0x1c
xor rcx, r11
and rcx, r8
mov rax, rcx
shl rax, 0x1c
xor rax, rcx
mov rcx, r10
xor r11, rax
shr rcx, 8
xor rcx, r11
movabs rax, 0xff00ff00ff00ff
and rcx, rax
xor r11, rcx
mov rax, rcx
shl rax, 8
xor r10, rax
movzx r15d, r11w
mov rax, r10
movzx esi, r10w
shr rax, 0x10
movzx ebp, ax
mov rax, r10
shr rax, 0x20
movzx r14d, ax
mov rax, r11
shr rax, 0x10
movzx r12d, ax
mov rax, r11
shr rax, 0x20
shr r10, 0x30
movzx r13d, ax
lea rax, [rdx + 0xe]
shr r11, 0x30
movzx ecx, byte [rax + 8]
lea rax, [rax + 0x10]
movzx r8d, byte [rax - 7]
movzx r9d, byte [rax + 1]
shl r8, 8
or r8, rcx
shl r9, 8
movzx ecx, byte [rax - 9]
shl r8, 8
or r8, rcx
movzx ecx, byte [rax - 0xa]
shl r8, 8
or r8, rcx
movzx ecx, byte [rax - 0xb]
shl r8, 8
or r8, rcx
movzx ecx, byte [rax - 0xc]
shl r8, 8
or r8, rcx
movzx ecx, byte [rax - 0xd]
shl r8, 8
or r8, rcx
movzx ecx, byte [rax - 0xe]
shl r8, 8
or r8, rcx
movzx ecx, byte [rax]
or r9, rcx
mov rdx, r8
movzx ecx, byte [rax - 1]
shr rdx, 7
xor rdx, r8
shl r9, 8
or r9, rcx
movzx ecx, byte [rax - 2]
shl r9, 8
or r9, rcx
movzx ecx, byte [rax - 3]
shl r9, 8
or r9, rcx
movzx ecx, byte [rax - 4]
shl r9, 8
or r9, rcx
movzx ecx, byte [rax - 5]
shl r9, 8
or r9, rcx
movzx ecx, byte [rax - 6]
shl r9, 8
or r9, rcx
movabs rcx, 0xaa00aa00aa00aa
and rdx, rcx
mov rcx, rdx
shl rcx, 7
xor rcx, rdx
mov rdx, r9
xor r8, rcx
shr rdx, 7
xor rdx, r9
movabs rcx, 0xaa00aa00aa00aa
and rdx, rcx
mov rcx, rdx
shl rcx, 7
xor rcx, rdx
mov rdx, r8
xor r9, rcx
shr rdx, 0xe
xor rdx, r8
movabs rcx, 0xcccc0000cccc
and rdx, rcx
mov rcx, rdx
shl rcx, 0xe
xor rcx, rdx
mov rdx, r9
xor r8, rcx
shr rdx, 0xe
xor rdx, r9
movabs rcx, 0xcccc0000cccc
and rdx, rcx
mov rcx, rdx
shl rcx, 0xe
xor rcx, rdx
xor r9, rcx
mov rdx, r8
shr rdx, 0x1c
xor rdx, r8
and rdx, rdi
mov rcx, rdx
shl rcx, 0x1c
xor rcx, rdx
mov rdx, r9
xor r8, rcx
shr rdx, 0x1c
xor rdx, r9
and rdx, rdi
mov rcx, rdx
shl rcx, 0x1c
xor rcx, rdx
mov rdx, r8
xor r9, rcx
shr rdx, 8
xor rdx, r9
movabs rcx, 0xff00ff00ff00ff
and rdx, rcx
xor r9, rdx
mov rcx, rdx
shl rcx, 8
xor r8, rcx
mov ecx, ebx
movzx edx, r8w
shl rdx, cl
mov rcx, r8
shr rcx, 0x10
or rsi, rdx
movzx edx, cx
mov ecx, ebx
shl rdx, cl
mov rcx, r8
shr rcx, 0x20
or rbp, rdx
movzx edx, cx
mov ecx, ebx
shl rdx, cl
or r14, rdx
shr r8, 0x30
shl r8, cl
movzx edx, r9w
or r10, r8
shl rdx, cl
mov rcx, r9
shr rcx, 0x10
or r15, rdx
movzx edx, cx
mov ecx, ebx
shl rdx, cl
mov rcx, r9
shr rcx, 0x20
or r12, rdx
movzx edx, cx
mov ecx, ebx
shr r9, 0x30
add ebx, 0x10
shl rdx, cl
shl r9, cl
or r13, rdx
or r11, r9
cmp ebx, 0x40
jb 0x140039992
mov rdi, qword [rsp + 0xb0]
xor rsi, qword [rdi]
lea rbx, [rdi + 0x40]
xor r15, qword [rdi + 8]
xor rbp, qword [rdi + 0x10]
xor r12, qword [rdi + 0x18]
xor r14, qword [rdi + 0x20]
xor r13, qword [rdi + 0x28]
xor r10, qword [rdi + 0x30]
xor r11, qword [rdi + 0x38]
mov eax, dword [rdi + 0x4b0]
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x50], r10
mov qword [rsp + 0x58], r11
sub eax, 1
je 0x140039c1c
mov edi, eax
nop
mov r8, rbx
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x20]
call fcn.14003c520
add rbx, 0x40
sub rdi, 1
jne 0x140039c00
mov r8, rbx
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x20]
call fcn.14003ce60
mov r9, qword [rsp + 0xa0]
xor r10d, r10d
mov r11, qword [rsp + 0x58]
add r9, 0xa
mov rbx, qword [rsp + 0x50]
mov r13d, 0xf0f0f0f0
mov rdi, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x38]
mov r14, qword [rsp + 0x30]
mov r15, qword [rsp + 0x28]
mov r12, qword [rsp + 0x20]
nop dword [rax + rax]
mov ecx, r10d
mov r8, r11
shr r8, cl
mov rax, rdi
shr rax, cl
mov rdx, rbx
movzx eax, ax
shr rdx, cl
shl r8, 0x10
or r8, rax
shl rdx, 0x10
shl r8, 0x10
mov rax, rbp
shr rax, cl
movzx eax, ax
or r8, rax
mov rax, r15
shr rax, cl
movzx eax, ax
shl r8, 0x10
or r8, rax
mov rax, rsi
shr rax, cl
movzx eax, ax
or rdx, rax
mov rax, r14
shr rax, cl
movzx eax, ax
shl rdx, 0x10
or rdx, rax
mov rax, r12
shr rax, cl
movzx eax, ax
shl rdx, 0x10
or rdx, rax
movabs rax, 0xff00ff00ff00ff
mov rcx, rdx
shr rcx, 8
xor rcx, r8
and rcx, rax
xor r8, rcx
mov rax, rcx
shl rax, 8
xor rdx, rax
mov rcx, rdx
shr rcx, 0x1c
xor rcx, rdx
and rcx, r13
mov rax, rcx
shl rax, 0x1c
xor rax, rcx
mov rcx, r8
xor rdx, rax
shr rcx, 0x1c
xor rcx, r8
and rcx, r13
mov rax, rcx
shl rax, 0x1c
xor rax, rcx
mov rcx, rdx
xor r8, rax
shr rcx, 0xe
xor rcx, rdx
movabs rax, 0xcccc0000cccc
and rcx, rax
mov rax, rcx
shl rax, 0xe
xor rax, rcx
mov rcx, r8
xor rdx, rax
shr rcx, 0xe
xor rcx, r8
movabs rax, 0xcccc0000cccc
and rcx, rax
mov rax, rcx
shl rax, 0xe
xor rax, rcx
mov rcx, rdx
shr rcx, 7
xor r8, rax
xor rcx, rdx
movabs rax, 0xaa00aa00aa00aa
and rcx, rax
mov rax, rcx
shl rax, 7
xor rax, rcx
mov rcx, r8
xor rdx, rax
shr rcx, 7
xor rcx, r8
mov byte [r9 - 0xa], dl
movabs rax, 0xaa00aa00aa00aa
and rcx, rax
mov rax, rcx
shl rax, 7
xor rax, rcx
lea ecx, [r10 + 0x10]
xor r8, rax
mov rax, rdx
shr rax, 8
mov byte [r9 - 9], al
mov rax, rdx
shr rax, 0x10
mov byte [r9 - 8], al
mov rax, rdx
shr rax, 0x18
mov byte [r9 - 7], al
mov rax, rdx
shr rax, 0x20
mov byte [r9 - 6], al
mov rax, rdx
shr rax, 0x28
mov byte [r9 - 5], al
mov rax, rdx
shr rax, 0x30
mov byte [r9 - 4], al
mov rax, r8
shr rax, 8
mov byte [r9 - 1], al
mov rax, r8
shr rax, 0x10
mov byte [r9], al
mov rax, r8
shr rax, 0x18
mov byte [r9 + 1], al
mov rax, r8
shr rax, 0x20
mov byte [r9 + 2], al
mov rax, r8
shr rax, 0x28
mov byte [r9 + 3], al
mov rax, r8
shr rax, 0x30
mov byte [r9 + 4], al
mov rax, rdi
shr rax, cl
mov byte [r9 - 2], r8b
shr r8, 0x38
mov byte [r9 + 5], r8b
movzx r8d, ax
mov rax, r11
shr rax, cl
shl rax, 0x10
or r8, rax
shr rdx, 0x38
shl r8, 0x10
mov rax, rbp
shr rax, cl
movzx eax, ax
or r8, rax
mov byte [r9 - 3], dl
shl r8, 0x10
mov rax, r15
shr rax, cl
mov rdx, rbx
movzx eax, ax
or r8, rax
shr rdx, cl
mov rax, rsi
shl rdx, 0x10
shr rax, cl
movzx eax, ax
or rdx, rax
mov rax, r14
shr rax, cl
movzx eax, ax
shl rdx, 0x10
or rdx, rax
mov rax, r12
shr rax, cl
movzx eax, ax
shl rdx, 0x10
or rdx, rax
movabs rax, 0xff00ff00ff00ff
mov rcx, rdx
shr rcx, 8
xor rcx, r8
and rcx, rax
xor r8, rcx
mov rax, rcx
shl rax, 8
xor rdx, rax
mov rcx, rdx
shr rcx, 0x1c
xor rcx, rdx
and rcx, r13
mov rax, rcx
shl rax, 0x1c
xor rax, rcx
mov rcx, r8
xor rdx, rax
shr rcx, 0x1c
xor rcx, r8
and rcx, r13
mov rax, rcx
shl rax, 0x1c
xor rax, rcx
mov rcx, rdx
xor r8, rax
shr rcx, 0xe
xor rcx, rdx
movabs rax, 0xcccc0000cccc
and rcx, rax
mov rax, rcx
shl rax, 0xe
xor rax, rcx
mov rcx, r8
xor rdx, rax
shr rcx, 0xe
xor rcx, r8
movabs rax, 0xcccc0000cccc
and rcx, rax
mov rax, rcx
shl rax, 0xe
xor rax, rcx
mov rcx, rdx
xor r8, rax
shr rcx, 7
xor rcx, rdx
movabs rax, 0xaa00aa00aa00aa
and rcx, rax
mov rax, rcx
shl rax, 7
xor rax, rcx
mov rcx, r8
xor rdx, rax
shr rcx, 7
xor rcx, r8
mov byte [r9 + 6], dl
movabs rax, 0xaa00aa00aa00aa
and rcx, rax
mov rax, rcx
shl rax, 7
xor rax, rcx
xor r8, rax
mov rax, rdx
shr rax, 8
mov byte [r9 + 7], al
mov rax, rdx
shr rax, 0x10
mov byte [r9 + 8], al
mov rax, rdx
shr rax, 0x18
mov byte [r9 + 9], al
lea r9, [r9 + 0x20]
mov rax, rdx
add r10d, 0x20
shr rax, 0x20
mov byte [r9 - 0x16], al
mov rax, rdx
shr rax, 0x28
mov byte [r9 - 0x15], al
mov rax, rdx
shr rax, 0x30
mov byte [r9 - 0x14], al
mov rax, r8
shr rax, 8
shr rdx, 0x38
mov byte [r9 - 0x13], dl
mov byte [r9 - 0x12], r8b
mov byte [r9 - 0x11], al
mov rax, r8
shr rax, 0x10
mov byte [r9 - 0x10], al
mov rax, r8
shr rax, 0x18
mov byte [r9 - 0xf], al
mov rax, r8
shr rax, 0x20
mov byte [r9 - 0xe], al
mov rax, r8
shr rax, 0x28
mov byte [r9 - 0xd], al
mov rax, r8
shr rax, 0x30
shr r8, 0x38
mov byte [r9 - 0xc], al
mov byte [r9 - 0xb], r8b
cmp r10d, 0x40
jb 0x140039c70
mov rbx, qword [rsp + 0xa8]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret