Function at 0x140038ed0
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 r13d, 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 r14d, r11w
mov rax, r10
movzx edi, r10w
shr rax, 0x10
movzx esi, ax
mov rax, r10
shr rax, 0x20
movzx ebp, ax
mov rax, r11
shr rax, 0x10
movzx r15d, ax
mov rax, r11
shr rax, 0x20
shr r10, 0x30
movzx r12d, ax
lea rax, [rdx + 0xe]
shr r11, 0x30
movzx ecx, byte [rax + 8]
lea rax, [rax + 0x10]
movzx r9d, byte [rax - 7]
movzx r8d, byte [rax + 1]
shl r9, 8
or r9, rcx
shl r8, 8
movzx ecx, byte [rax - 9]
shl r9, 8
or r9, rcx
movzx ecx, byte [rax - 0xa]
shl r9, 8
or r9, rcx
movzx ecx, byte [rax - 0xb]
shl r9, 8
or r9, rcx
movzx ecx, byte [rax - 0xc]
shl r9, 8
or r9, rcx
movzx ecx, byte [rax - 0xd]
shl r9, 8
or r9, rcx
movzx ecx, byte [rax - 0xe]
shl r9, 8
or r9, rcx
movzx ecx, byte [rax]
or r8, rcx
mov rdx, r9
movzx ecx, byte [rax - 1]
shr rdx, 7
xor rdx, r9
shl r8, 8
or r8, rcx
movzx ecx, byte [rax - 2]
shl r8, 8
or r8, rcx
movzx ecx, byte [rax - 3]
shl r8, 8
or r8, rcx
movzx ecx, byte [rax - 4]
shl r8, 8
or r8, rcx
movzx ecx, byte [rax - 5]
shl r8, 8
or r8, rcx
movzx ecx, byte [rax - 6]
shl r8, 8
or r8, rcx
movabs rcx, 0xaa00aa00aa00aa
and rdx, rcx
mov rcx, rdx
shl rcx, 7
xor rcx, rdx
mov rdx, r8
xor r9, rcx
shr rdx, 7
xor rdx, r8
movabs rcx, 0xaa00aa00aa00aa
and rdx, rcx
mov rcx, rdx
shl rcx, 7
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
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
xor r8, rcx
mov rdx, r9
shr rdx, 0x1c
xor rdx, r9
and rdx, r13
mov rcx, rdx
shl rcx, 0x1c
xor rcx, rdx
mov rdx, r8
xor r9, rcx
shr rdx, 0x1c
xor rdx, r8
and rdx, r13
mov rcx, rdx
shl rcx, 0x1c
xor rcx, rdx
mov rdx, r9
xor r8, rcx
shr rdx, 8
xor rdx, r8
movabs rcx, 0xff00ff00ff00ff
and rdx, rcx
xor r8, rdx
mov rcx, rdx
shl rcx, 8
xor r9, rcx
mov ecx, ebx
movzx edx, r9w
shl rdx, cl
mov rcx, r9
shr rcx, 0x10
or rdi, rdx
movzx edx, cx
mov ecx, ebx
shl rdx, cl
mov rcx, r9
shr rcx, 0x20
or rsi, rdx
movzx edx, cx
mov ecx, ebx
shl rdx, cl
or rbp, rdx
shr r9, 0x30
shl r9, cl
movzx edx, r8w
or r10, r9
shl rdx, cl
mov rcx, r8
shr rcx, 0x10
or r14, rdx
movzx edx, cx
mov ecx, ebx
shl rdx, cl
mov rcx, r8
shr rcx, 0x20
or r15, rdx
movzx edx, cx
mov ecx, ebx
shr r8, 0x30
add ebx, 0x10
shl rdx, cl
shl r8, cl
or r12, rdx
or r11, r8
cmp ebx, 0x40
jb 0x1400390b1
mov r13, qword [rsp + 0xb0]
lea rdx, [rsp + 0x20]
mov qword [rsp + 0x20], rdi
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x50], r10
mov qword [rsp + 0x58], r11
mov ebx, dword [r13 + 0x4b0]
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x28], r14
lea eax, [rbx*8]
mov qword [rsp + 0x38], r15
lea rdi, [rax*8]
mov qword [rsp + 0x48], r12
add rdi, r13
mov r8, rdi
call fcn.14003bf00
sub rdi, 0x40
sub ebx, 1
je 0x140039340
mov r8, rdi
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x20]
call fcn.14003ae40
sub rdi, 0x40
sub rbx, 1
jne 0x140039322
nop
mov r10, qword [rsp + 0x20]
mov r13d, 0xf0f0f0f0
xor r10, qword [rdi]
mov r11, qword [rsp + 0x28]
xor r11, qword [rdi + 8]
mov rbx, qword [rsp + 0x30]
xor rbx, qword [rdi + 0x10]
mov rsi, qword [rsp + 0x38]
xor rsi, qword [rdi + 0x18]
mov rbp, qword [rsp + 0x40]
xor rbp, qword [rdi + 0x20]
mov r14, qword [rsp + 0x48]
xor r14, qword [rdi + 0x28]
mov r15, qword [rsp + 0x50]
xor r15, qword [rdi + 0x30]
mov r12, qword [rsp + 0x58]
xor r12, qword [rdi + 0x38]
xor edi, edi
mov r9, qword [rsp + 0xa0]
add r9, 0xa
nop dword [rax + rax]
mov ecx, edi
mov r8, r12
shr r8, cl
mov rax, r14
shr rax, cl
mov rdx, r15
movzx eax, ax
shr rdx, cl
shl r8, 0x10
or r8, rax
shl rdx, 0x10
shl r8, 0x10
mov rax, rsi
shr rax, cl
movzx eax, ax
or r8, rax
mov rax, r11
shr rax, cl
movzx eax, ax
shl r8, 0x10
or r8, rax
mov rax, rbp
shr rax, cl
movzx eax, ax
or rdx, rax
mov rax, rbx
shr rax, cl
movzx eax, ax
shl rdx, 0x10
or rdx, rax
mov rax, r10
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, [rdi + 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, r14
shr rax, cl
mov byte [r9 - 2], r8b
shr r8, 0x38
mov byte [r9 + 5], r8b
movzx r8d, ax
mov rax, r12
shr rax, cl
shl rax, 0x10
or r8, rax
shr rdx, 0x38
shl r8, 0x10
mov rax, rsi
shr rax, cl
movzx eax, ax
or r8, rax
mov byte [r9 - 3], dl
shl r8, 0x10
mov rax, r11
shr rax, cl
mov rdx, r15
movzx eax, ax
or r8, rax
shr rdx, cl
mov rax, rbp
shl rdx, 0x10
shr rax, cl
movzx eax, ax
or rdx, rax
mov rax, rbx
shr rax, cl
movzx eax, ax
shl rdx, 0x10
or rdx, rax
mov rax, r10
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 edi, 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 edi, 0x40
jb 0x1400393a0
mov rbx, qword [rsp + 0xa8]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret