Function at 0x140050bc0
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 8
cmp byte [0x1400d6f84], 0
mov r9, rdx
je 0x140050bd7
xor eax, eax
add rsp, 8
ret
mov qword [rsp + 0x20], rsi
not ecx
lea rsi, [rdx + r8]
mov qword [rsp + 0x28], rdi
lea r8, [rdx + 3]
mov qword [rsp], r14
and r8, 0xfffffffffffffffc
lea r14, [0x140000000]
cmp r8, rsi
ja 0x140050c2d
cmp rdx, r8
je 0x140050c2d
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [r9]
inc r9
movzx edx, cl
xor rdx, rax
shr ecx, 8
xor ecx, dword [r14 + rdx*4 + 0xb2070]
cmp r9, r8
jne 0x140050c10
mov rax, rsi
mov rdi, r9
sub rax, r9
cmp rax, 0x10
jl 0x14005103d
movzx eax, byte [r9 + 2]
movzx r10d, byte [r9 + 3]
movzx r11d, byte [r9 + 7]
mov qword [rsp + 0x10], rbx
movzx ebx, byte [r9 + 0xb]
shl r10d, 8
or r10d, eax
shl r11d, 8
movzx eax, byte [r9 + 1]
shl ebx, 8
shl r10d, 8
or r10d, eax
mov qword [rsp + 0x18], rbp
movzx eax, byte [r9]
mov rbp, rsi
shl r10d, 8
or r10d, eax
movzx eax, byte [r9 + 6]
or r11d, eax
xor r10d, ecx
movzx eax, byte [r9 + 5]
movzx ecx, byte [r9 + 0xf]
shl ecx, 8
shl r11d, 8
or r11d, eax
movzx eax, byte [r9 + 4]
shl r11d, 8
or r11d, eax
movzx eax, byte [r9 + 0xa]
or ebx, eax
movzx eax, byte [r9 + 9]
shl ebx, 8
or ebx, eax
movzx eax, byte [r9 + 8]
shl ebx, 8
or ebx, eax
movzx eax, byte [r9 + 0xe]
or ecx, eax
movzx eax, byte [r9 + 0xd]
shl ecx, 8
or ecx, eax
movzx eax, byte [r9 + 0xc]
shl ecx, 8
add r9, 0x10
or ecx, eax
sub rbp, r9
cmp rbp, 0x10
jl 0x140050ea7
add rdi, 0x16
nop dword [rax]
movzx eax, byte [rdi - 4]
mov r8d, r10d
movzx r10d, byte [rdi - 3]
shl r10d, 8
or r10d, eax
movzx eax, byte [rdi - 5]
shl r10d, 8
or r10d, eax
movzx eax, byte [r9]
shl r10d, 8
or r10d, eax
mov eax, r8d
shr rax, 0x10
movzx edx, al
mov eax, r8d
shr rax, 8
xor r10d, dword [r14 + rdx*4 + 0xb2870]
movzx edx, al
mov eax, r8d
shr rax, 0x18
xor r10d, dword [r14 + rdx*4 + 0xb2c70]
xor r10d, dword [r14 + rax*4 + 0xb2470]
movzx eax, r8b
mov r8d, r11d
movzx r11d, byte [rdi + 1]
shl r11d, 8
xor r10d, dword [r14 + rax*4 + 0xb3070]
movzx eax, byte [rdi]
or r11d, eax
movzx eax, byte [rdi - 1]
shl r11d, 8
or r11d, eax
movzx eax, byte [rdi - 2]
shl r11d, 8
or r11d, eax
mov eax, r8d
shr rax, 0x10
movzx edx, al
mov eax, r8d
shr rax, 8
xor r11d, dword [r14 + rdx*4 + 0xb2870]
movzx edx, al
mov eax, r8d
shr rax, 0x18
xor r11d, dword [r14 + rdx*4 + 0xb2c70]
xor r11d, dword [r14 + rax*4 + 0xb2470]
movzx eax, r8b
mov r8d, ebx
movzx ebx, byte [rdi + 5]
shl ebx, 8
xor r11d, dword [r14 + rax*4 + 0xb3070]
movzx eax, byte [rdi + 4]
or ebx, eax
movzx eax, byte [rdi + 3]
shl ebx, 8
or ebx, eax
movzx eax, byte [rdi + 2]
shl ebx, 8
or ebx, eax
mov eax, r8d
shr rax, 0x10
movzx edx, al
mov eax, r8d
shr rax, 8
xor ebx, dword [r14 + rdx*4 + 0xb2870]
movzx edx, al
mov eax, r8d
shr rax, 0x18
xor ebx, dword [r14 + rdx*4 + 0xb2c70]
xor ebx, dword [r14 + rax*4 + 0xb2470]
movzx eax, r8b
mov r8d, ecx
movzx ecx, byte [rdi + 9]
shl ecx, 8
xor ebx, dword [r14 + rax*4 + 0xb3070]
movzx eax, byte [rdi + 8]
or ecx, eax
movzx eax, byte [rdi + 7]
shl ecx, 8
or ecx, eax
shl ecx, 8
movzx eax, byte [rdi + 6]
lea rdi, [rdi + 0x10]
or ecx, eax
add r9, 0x10
mov eax, r8d
sub rbp, 0x10
shr rax, 0x10
movzx edx, al
mov eax, r8d
shr rax, 8
xor ecx, dword [r14 + rdx*4 + 0xb2870]
movzx edx, al
mov eax, r8d
shr rax, 0x18
xor ecx, dword [r14 + rdx*4 + 0xb2c70]
xor ecx, dword [r14 + rax*4 + 0xb2470]
movzx eax, r8b
xor ecx, dword [r14 + rax*4 + 0xb3070]
cmp rbp, 0x10
jge 0x140050d00
mov rbp, qword [rsp + 0x18]
mov rdi, rsi
sub rdi, r9
cmp rdi, 4
jl 0x140050f40
nop dword [rax]
movzx eax, byte [r9 + 2]
sub rdi, 4
mov r8d, r10d
mov r10d, r11d
mov r11d, ebx
mov ebx, ecx
movzx ecx, byte [r9 + 3]
shl ecx, 8
or ecx, eax
movzx eax, byte [r9 + 1]
shl ecx, 8
or ecx, eax
movzx eax, byte [r9]
shl ecx, 8
add r9, 4
or ecx, eax
mov eax, r8d
shr rax, 0x10
movzx edx, al
mov eax, r8d
shr rax, 8
xor ecx, dword [r14 + rdx*4 + 0xb2870]
movzx edx, al
mov eax, r8d
shr rax, 0x18
xor ecx, dword [r14 + rdx*4 + 0xb2c70]
xor ecx, dword [r14 + rax*4 + 0xb2470]
movzx eax, r8b
xor ecx, dword [r14 + rax*4 + 0xb3070]
cmp rdi, 4
jge 0x140050ec0
nop word [rax + rax]
movzx edx, r10b
shr r10d, 8
xor r10d, dword [r14 + rdx*4 + 0xb2070]
movzx edx, r10b
shr r10d, 8
xor r10d, dword [r14 + rdx*4 + 0xb2070]
movzx edx, r10b
shr r10d, 8
xor r10d, dword [r14 + rdx*4 + 0xb2070]
movzx edx, r10b
shr r10d, 8
xor r10d, dword [r14 + rdx*4 + 0xb2070]
xor r11d, r10d
movzx edx, r11b
shr r11d, 8
xor r11d, dword [r14 + rdx*4 + 0xb2070]
movzx edx, r11b
shr r11d, 8
xor r11d, dword [r14 + rdx*4 + 0xb2070]
movzx edx, r11b
shr r11d, 8
xor r11d, dword [r14 + rdx*4 + 0xb2070]
movzx edx, r11b
shr r11d, 8
xor r11d, dword [r14 + rdx*4 + 0xb2070]
xor ebx, r11d
movzx edx, bl
shr ebx, 8
xor ebx, dword [r14 + rdx*4 + 0xb2070]
movzx edx, bl
shr ebx, 8
xor ebx, dword [r14 + rdx*4 + 0xb2070]
movzx edx, bl
shr ebx, 8
xor ebx, dword [r14 + rdx*4 + 0xb2070]
movzx edx, bl
shr ebx, 8
xor ebx, dword [r14 + rdx*4 + 0xb2070]
xor ecx, ebx
mov rbx, qword [rsp + 0x10]
movzx edx, cl
shr ecx, 8
xor ecx, dword [r14 + rdx*4 + 0xb2070]
movzx edx, cl
shr ecx, 8
xor ecx, dword [r14 + rdx*4 + 0xb2070]
movzx edx, cl
shr ecx, 8
xor ecx, dword [r14 + rdx*4 + 0xb2070]
movzx edx, cl
shr ecx, 8
xor ecx, dword [r14 + rdx*4 + 0xb2070]
mov rdi, qword [rsp + 0x28]
cmp r9, rsi
je 0x14005106d
nop word [rax + rax]
movzx eax, byte [r9]
inc r9
movzx edx, cl
xor rdx, rax
shr ecx, 8
xor ecx, dword [r14 + rdx*4 + 0xb2070]
cmp r9, rsi
jne 0x140051050
mov r14, qword [rsp]
not ecx
mov rsi, qword [rsp + 0x20]
mov eax, ecx
add rsp, 8
ret