Function at 0x18005a6a0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x68
mov qword [rcx + 0x20], rdx
lea rax, [0x18027a718]
xor r13d, r13d
mov qword [rcx], rax
mov qword [rcx + 8], r13
mov r12, rdx
mov byte [rcx + 0x10], 1
mov r14, rcx
mov word [rcx + 0x18], 1
mov dword [rbp + 0x58], 0x116
mov dword [rbp + 0x50], 0x2ea
mov edx, dword [rbp + 0x50]
mov eax, dword [rbp + 0x58]
add edx, eax
mov dword [rbp + 0x50], edx
mov edi, dword [rbp + 0x50]
mov qword [rcx + 0x28], r13
mov edx, edi
mov qword [rcx + 0x30], r13
mov qword [rcx + 0x38], r13
mov qword [rcx + 0x40], r13
mov qword [rcx + 0x48], r13
mov qword [rcx + 0x50], r13
add rcx, 0x28
call fcn.18023a8f0
lea edx, [rdi + 1]
lea rcx, [r14 + 0x40]
call fcn.18023a8f0
mov dword [r14 + 0x58], r13d
mov byte [r14 + 0x5c], r13b
mov byte [r14 + 0x70], r13b
mov qword [r14 + 0x190], r13
mov qword [r14 + 0x198], r13
mov qword [r14 + 0x1a0], r13
mov dword [rbp - 0x23], 0xf6540ee6
mov dword [rbp - 0x1f], 0x14d710a8
mov dword [rbp - 0x1b], 0xfd6e6259
mov word [rbp - 0x17], 0x83
mov qword [rbp + 0x50], r13
movabs r13, 0xaaaaaaaaaaaaaaab
mov rax, qword [rbp + 0x50]
mov rcx, qword [rbp + 0x50]
mov rax, qword [rbp + 0x50]
movzx r8d, byte [rbp + rax - 0x22]
mov rax, r13
mul rcx
shr rdx, 4
movzx eax, dl
add al, al
add dl, al
mov rax, qword [rbp + 0x50]
shl dl, 3
sub cl, dl
mov edx, 0x736e164d
sar edx, cl
xor dl, r8b
mov byte [rbp + rax - 0x22], dl
mov rax, qword [rbp + 0x50]
inc rax
mov qword [rbp + 0x50], rax
mov rax, qword [rbp + 0x50]
cmp rax, 0xc
jb 0x18005a772
xor r13d, r13d
mov byte [rbp - 0x16], r13b
call fcn.1800015c0
mov rsi, qword gs:[0x58]
mov rdi, rax
mov r15d, dword [0x1802848b4]
mov eax, 4
mov rbx, qword [rsi + r15*8]
add rbx, rax
mov ecx, dword [rbx]
cmp dword [0x180286968], ecx
jle 0x18005a821
lea rcx, [0x180286968]
call fcn.180249e18
cmp dword [0x180286968], 0xffffffff
jne 0x18005a821
mov rax, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea rcx, [0x180286968]
mov qword [0x18028a9f8], rax
call fcn.180249db8
mov eax, dword [rbx]
cmp dword [0x18028a99c], eax
jle 0x18005a85a
lea rcx, [0x18028a99c]
call fcn.180249e18
cmp dword [0x18028a99c], 0xffffffff
jne 0x18005a85a
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [0x18028a99c]
mov qword [0x18028a9a0], rax
call fcn.180249db8
mov rax, qword [0x18028a9f8]
mov rcx, rdi
call rax
mov r8, qword [0x18028a9a0]
lea rdx, [rbp - 0x22]
mov rcx, rax
call r8
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call rax
mov qword [r14 + 0x1a8], rax
mov rax, qword [0x180285d10]
test rax, rax
jne 0x18005a9b9
mov dword [rbp - 0x38], 0xea7c5438
movabs r9, 0xaaaaaaaaaaaaaaab
mov dword [rbp - 0x34], 0x587af
mov qword [rbp + 0x50], r13
mov rax, qword [rbp + 0x50]
nop word [rax + rax]
mov rcx, qword [rbp + 0x50]
mov rax, qword [rbp + 0x50]
movzx r8d, byte [rbp + rax - 0x37]
mov rax, r9
mul rcx
shr rdx, 4
movzx eax, dl
add al, al
add dl, al
mov rax, qword [rbp + 0x50]
shl dl, 3
sub cl, dl
mov edx, 0x26e3ee27
sar edx, cl
xor dl, r8b
mov byte [rbp + rax - 0x37], dl
mov rax, qword [rbp + 0x50]
inc rax
mov qword [rbp + 0x50], rax
mov rax, qword [rbp + 0x50]
cmp rax, 6
jb 0x18005a8c0
mov byte [rbp - 0x31], r13b
call fcn.1800017a0
mov rbx, qword [rsi + r15*8]
mov rdi, rax
mov eax, 4
add rbx, rax
mov ecx, dword [rbx]
cmp dword [0x180286968], ecx
jle 0x18005a95c
lea rcx, [0x180286968]
call fcn.180249e18
cmp dword [0x180286968], 0xffffffff
jne 0x18005a95c
mov rcx, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [0x18028a9f8], rcx
lea rcx, [0x180286968]
call fcn.180249db8
mov eax, dword [rbx]
cmp dword [0x18028a99c], eax
jle 0x18005a995
lea rcx, [0x18028a99c]
call fcn.180249e18
cmp dword [0x18028a99c], 0xffffffff
jne 0x18005a995
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [0x18028a99c]
mov qword [0x18028a9a0], rax
call fcn.180249db8
mov rax, qword [0x18028a9f8]
mov rcx, rdi
call rax
mov r8, qword [0x18028a9a0]
lea rdx, [rbp - 0x37]
mov rcx, rax
call r8
mov qword [0x180285d10], rax
xor r8d, r8d
lea edx, [r8 + 1]
lea ecx, [rdx + 1]
call rax
mov qword [r14 + 0x90], rax
mov rax, qword [0x180286930]
mov word [r14 + 0x180], r13w
mov qword [r14 + 0x188], r13
mov byte [r14 + 0x182], 1
mov dword [rbp + 0x60], r13d
test rax, rax
jne 0x18005ab1d
mov byte [rbp - 0x24], al
mov dword [rbp - 0x30], 0x138eabf4
mov dword [rbp - 0x2c], 0xe87d704c
mov dword [rbp - 0x28], 0x8c958aa0
mov qword [rbp + 0x50], r13
movabs r13, 0xaaaaaaaaaaaaaaab
mov rax, qword [rbp + 0x50]
mov rcx, qword [rbp + 0x50]
mov rax, qword [rbp + 0x50]
movzx r8d, byte [rbp + rax - 0x2f]
mov rax, r13
mul rcx
shr rdx, 4
movzx eax, dl
add al, al
add dl, al
mov rax, qword [rbp + 0x50]
shl dl, 3
sub cl, dl
mov edx, 0x203e1c2
sar edx, cl
xor dl, r8b
mov byte [rbp + rax - 0x2f], dl
mov rax, qword [rbp + 0x50]
inc rax
mov qword [rbp + 0x50], rax
mov rax, qword [rbp + 0x50]
cmp rax, 0xb
jb 0x18005aa21
xor r13d, r13d
mov byte [rbp - 0x24], r13b
call fcn.1800017a0
mov rbx, qword [rsi + r15*8]
mov rdi, rax
mov eax, 4
add rbx, rax
mov edx, dword [rbx]
cmp dword [0x180286968], edx
jle 0x18005aac0
lea rcx, [0x180286968]
call fcn.180249e18
cmp dword [0x180286968], 0xffffffff
jne 0x18005aac0
mov rdx, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea rcx, [0x180286968]
mov qword [0x18028a9f8], rdx
call fcn.180249db8
mov eax, dword [rbx]
cmp dword [0x18028a99c], eax
jle 0x18005aaf9
lea rcx, [0x18028a99c]
call fcn.180249e18
cmp dword [0x18028a99c], 0xffffffff
jne 0x18005aaf9
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [0x18028a99c]
mov qword [0x18028a9a0], rax
call fcn.180249db8
mov rax, qword [0x18028a9f8]
mov rcx, rdi
call rax
mov r8, qword [0x18028a9a0]
lea rdx, [rbp - 0x2f]
mov rcx, rax
call r8
mov qword [0x180286930], rax
mov rcx, qword [r14 + 0x90]
lea r8, [rbp + 0x60]
mov edx, 0x8004667e
call rax
mov byte [rbp + 0x48], 1
lea r9, [rbp + 0x48]
mov qword [rbp + 0x58], r13
mov edx, 6
mov qword [rbp + 0x50], 1
mov rcx, qword [rbp + 0x50]
mov rax, qword [rbp + 0x58]
add rcx, rax
lea r8d, [rdx - 5]
mov qword [rbp + 0x50], rcx
mov rcx, r12
mov rax, qword [rbp + 0x50]
mov dword [rsp + 0x20], eax
call fcn.180009cf0
lea rax, [r14 + 0x7c]
mov dword [r14 + 0x78], r13d
mov qword [r14 + 0x60], rax
mov rax, r14
mov byte [r14 + 0x5c], 1
mov dword [r14 + 0x68], r13d
mov dword [r14 + 0x6c], 1
mov dword [r14 + 0x1b0], r13d
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret