Function at 0x180052a20
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x48
mov rbx, rcx
call fcn.180056060
movzx r13d, ax
mov byte [rbx + 0x10], 1
lea rax, [0x18027a9e8]
xor edi, edi
lea rcx, [rbx + 0x118]
mov qword [rbx], rax
mov qword [rbx + 8], rdi
call fcn.18000ba20
mov dword [rbp - 0x1b], 0xf6540ee6
movabs r12, 0xaaaaaaaaaaaaaaab
mov dword [rbp - 0x17], 0x14d710a8
mov dword [rbp - 0x13], 0xfd6e6259
mov word [rbp - 0xf], 0x83
mov qword [rbp + 0x60], rdi
mov rax, qword [rbp + 0x60]
mov rcx, qword [rbp + 0x60]
mov rax, qword [rbp + 0x60]
movzx r8d, byte [rbp + rax - 0x1a]
mov rax, r12
mul rcx
shr rdx, 4
movzx eax, dl
add al, al
add dl, al
mov rax, qword [rbp + 0x60]
shl dl, 3
sub cl, dl
mov edx, 0x736e164d
sar edx, cl
xor dl, r8b
mov byte [rbp + rax - 0x1a], dl
mov rax, qword [rbp + 0x60]
inc rax
mov qword [rbp + 0x60], rax
mov rax, qword [rbp + 0x60]
cmp rax, 0xc
jb 0x180052a91
mov r12, qword [rbp + 0x50]
mov byte [rbp - 0xe], dil
call fcn.1800015c0
mov r14, qword gs:[0x58]
mov rsi, rax
mov r15d, dword [0x1802848b4]
mov eax, 4
mov rdi, qword [r14 + r15*8]
add rdi, rax
mov ecx, dword [rdi]
cmp dword [0x180286968], ecx
jle 0x180052b41
lea rcx, [0x180286968]
call fcn.180249e18
cmp dword [0x180286968], 0xffffffff
jne 0x180052b41
mov rax, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea rcx, [0x180286968]
mov qword [0x18028a9f8], rax
call fcn.180249db8
mov eax, dword [rdi]
cmp dword [0x18028a99c], eax
jle 0x180052b7a
lea rcx, [0x18028a99c]
call fcn.180249e18
cmp dword [0x18028a99c], 0xffffffff
jne 0x180052b7a
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [0x18028a99c]
mov qword [0x18028a9a0], rax
call fcn.180249db8
mov rax, qword [0x18028a9f8]
mov rcx, rsi
call rax
mov r8, qword [0x18028a9a0]
lea rdx, [rbp - 0x1a]
mov rcx, rax
call r8
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call rax
mov qword [rbx + 0x130], rax
mov rax, qword [0x180285d10]
test rax, rax
jne 0x180052cd9
mov dword [rbp + 0x58], 0xea7c5438
movabs r9, 0xaaaaaaaaaaaaaaab
mov dword [rbp + 0x5c], 0x587af
mov qword [rbp + 0x60], rax
mov rax, qword [rbp + 0x60]
nop word [rax + rax]
mov rcx, qword [rbp + 0x60]
mov rax, qword [rbp + 0x60]
movzx r8d, byte [rbp + rax + 0x59]
mov rax, r9
mul rcx
shr rdx, 4
movzx eax, dl
add al, al
add dl, al
mov rax, qword [rbp + 0x60]
shl dl, 3
sub cl, dl
mov edx, 0x26e3ee27
sar edx, cl
xor dl, r8b
mov byte [rbp + rax + 0x59], dl
mov rax, qword [rbp + 0x60]
inc rax
mov qword [rbp + 0x60], rax
mov rax, qword [rbp + 0x60]
cmp rax, 6
jb 0x180052be0
mov byte [rbp + 0x5f], 0
call fcn.1800017a0
mov rdi, qword [r14 + r15*8]
mov rsi, rax
mov eax, 4
add rdi, rax
mov ecx, dword [rdi]
cmp dword [0x180286968], ecx
jle 0x180052c7c
lea rcx, [0x180286968]
call fcn.180249e18
cmp dword [0x180286968], 0xffffffff
jne 0x180052c7c
mov rcx, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [0x18028a9f8], rcx
lea rcx, [0x180286968]
call fcn.180249db8
mov eax, dword [rdi]
cmp dword [0x18028a99c], eax
jle 0x180052cb5
lea rcx, [0x18028a99c]
call fcn.180249e18
cmp dword [0x18028a99c], 0xffffffff
jne 0x180052cb5
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [0x18028a99c]
mov qword [0x18028a9a0], rax
call fcn.180249db8
mov rax, qword [0x18028a9f8]
mov rcx, rsi
call rax
mov r8, qword [0x18028a9a0]
lea rdx, [rbp + 0x59]
mov rcx, rax
call r8
mov qword [0x180285d10], rax
xor r8d, r8d
lea edx, [r8 + 1]
lea ecx, [rdx + 1]
call rax
xor ecx, ecx
mov qword [rbx + 0x18], rax
mov rax, qword [0x180286930]
mov word [rbx + 0x108], 0
mov qword [rbx + 0x110], rcx
mov byte [rbx + 0x10a], 1
mov dword [rbp + 0x48], ecx
test rax, rax
jne 0x180052e3d
mov byte [rbp - 0x1c], al
movabs r12, 0xaaaaaaaaaaaaaaab
mov dword [rbp - 0x28], 0x138eabf4
mov dword [rbp - 0x24], 0xe87d704c
mov dword [rbp - 0x20], 0x8c958aa0
mov qword [rbp + 0x60], rcx
mov rax, qword [rbp + 0x60]
nop
mov rcx, qword [rbp + 0x60]
mov rax, qword [rbp + 0x60]
movzx r8d, byte [rbp + rax - 0x27]
mov rax, r12
mul rcx
shr rdx, 4
movzx eax, dl
add al, al
add dl, al
mov rax, qword [rbp + 0x60]
shl dl, 3
sub cl, dl
mov edx, 0x203e1c2
sar edx, cl
xor dl, r8b
mov byte [rbp + rax - 0x27], dl
mov rax, qword [rbp + 0x60]
inc rax
mov qword [rbp + 0x60], rax
mov rax, qword [rbp + 0x60]
cmp rax, 0xb
jb 0x180052d40
mov r12, qword [rbp + 0x50]
mov byte [rbp - 0x1c], 0
call fcn.1800017a0
mov rdi, qword [r14 + r15*8]
mov rsi, rax
mov eax, 4
add rdi, rax
mov edx, dword [rdi]
cmp dword [0x180286968], edx
jle 0x180052de0
lea rcx, [0x180286968]
call fcn.180249e18
cmp dword [0x180286968], 0xffffffff
jne 0x180052de0
mov rdx, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea rcx, [0x180286968]
mov qword [0x18028a9f8], rdx
call fcn.180249db8
mov eax, dword [rdi]
cmp dword [0x18028a99c], eax
jle 0x180052e19
lea rcx, [0x18028a99c]
call fcn.180249e18
cmp dword [0x18028a99c], 0xffffffff
jne 0x180052e19
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [0x18028a99c]
mov qword [0x18028a9a0], rax
call fcn.180249db8
mov rax, qword [0x18028a9f8]
mov rcx, rsi
call rax
mov r8, qword [0x18028a9a0]
lea rdx, [rbp - 0x27]
mov rcx, rax
call r8
mov qword [0x180286930], rax
mov rcx, qword [rbx + 0x18]
lea r8, [rbp + 0x48]
mov edx, 0x8004667e
call rax
mov rcx, rbx
mov word [rbx + 0x138], r13w
mov byte [rbx + 0x13a], 1
call fcn.180001db0
lea rax, [0x18027aab8]
mov qword [rbx + 0x140], r12
mov qword [rbx], rax
mov rax, rbx
add rsp, 0x48
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret