Function at 0x18002c010
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r13
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0x90
xor r15d, r15d
mov r10d, 4
mov r14, rdx
mov rdi, rcx
mov rbx, 0xffffffffffffffff
movabs r13, 0xaaaaaaaaaaaaaaab
cmp qword [rcx + 8], r15
je 0x18002c17e
movdqa xmm0, xmmword [0x18027b300]
xor eax, eax
mov byte [rbp - 1], al
movdqu xmmword [rbp - 0x11], xmm0
mov qword [rbp + 0x77], r15
mov rax, qword [rbp + 0x77]
mov rcx, qword [rbp + 0x77]
mov rax, qword [rbp + 0x77]
movzx r8d, byte [rbp + rax - 0x10]
mov rax, r13
mul rcx
shr rdx, 4
movzx eax, dl
add al, al
add dl, al
mov rax, qword [rbp + 0x77]
shl dl, 3
sub cl, dl
mov edx, 0x29a2d727
sar edx, cl
xor dl, r8b
mov byte [rbp + rax - 0x10], dl
mov rax, qword [rbp + 0x77]
inc rax
mov qword [rbp + 0x77], rax
mov rax, qword [rbp + 0x77]
cmp rax, 0xf
jb 0x18002c072
mov byte [rbp - 1], r15b
call fcn.1800015c0
mov rcx, qword gs:[0x58]
mov r15, rax
mov r8d, dword [0x1802848b4]
mov edx, r10d
mov rsi, qword [rcx + r8*8]
add rsi, rdx
mov ecx, dword [rsi]
cmp dword [0x180286968], ecx
jle 0x18002c11b
lea rcx, [0x180286968]
call fcn.180249e18
cmp dword [0x180286968], ebx
jne 0x18002c11b
mov rax, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea rcx, [0x180286968]
mov qword [0x18028a9f8], rax
call fcn.180249db8
mov eax, dword [rsi]
cmp dword [0x18028a99c], eax
jle 0x18002c153
lea rcx, [0x18028a99c]
call fcn.180249e18
cmp dword [0x18028a99c], ebx
jne 0x18002c153
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [0x18028a99c]
mov qword [0x18028a9a0], rax
call fcn.180249db8
mov rax, qword [0x18028a9f8]
mov rcx, r15
call rax
mov r8, qword [0x18028a9a0]
lea rdx, [rbp - 0x10]
mov rcx, rax
call r8
test rax, rax
je 0x18002c19a
mov rcx, qword [rdi + 8]
call rax
xor r15d, r15d
mov rcx, qword [rdi]
cmp rcx, rbx
je 0x18002c191
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov byte [rbp + 0x67], al
mov qword [rdi + 8], r15
mov qword [rdi], rbx
jmp 0x18002c19d
xor r15d, r15d
xor eax, eax
mov dword [rbp - 0x29], 0x6d694ca6
mov byte [rbp - 0x21], al
mov dword [rbp - 0x25], 0x4c4c21e3
mov qword [rbp + 0x77], r15
mov rax, qword [rbp + 0x77]
cmp rax, 7
jae 0x18002c20b
nop
mov rcx, qword [rbp + 0x77]
mov rax, qword [rbp + 0x77]
movzx r8d, byte [rbp + rax - 0x28]
mov rax, r13
mul rcx
shr rdx, 4
movzx eax, dl
add al, al
add dl, al
mov rax, qword [rbp + 0x77]
shl dl, 3
sub cl, dl
mov edx, 0x4e6c840b
sar edx, cl
xor dl, r8b
mov byte [rbp + rax - 0x28], dl
mov rax, qword [rbp + 0x77]
inc rax
mov qword [rbp + 0x77], rax
mov rax, qword [rbp + 0x77]
cmp rax, 7
jb 0x18002c1c0
mov byte [rbp - 0x21], 0
lea rax, [rbp - 0x28]
mov qword [rbp + 0x27], r15
mov r8, rbx
mov qword [rbp + 0x2f], 0xf
mov byte [rbp + 0x17], 0
inc r8
cmp byte [rax + r8], 0
jne 0x18002c226
lea rdx, [rbp - 0x28]
lea rcx, [rbp + 0x17]
call fcn.18023c100
nop dword [rax]
inc rbx
cmp byte [r14 + rbx], 0
jne 0x18002c240
mov r8, rbx
lea rcx, [rbp + 0x17]
mov rdx, r14
call fcn.18023c260
movdqa xmm0, xmmword [0x18027b0c0]
movdqu xmmword [rbp], xmm0
mov word [rbp + 0x10], 0x23
mov qword [rbp + 0x77], r15
mov rax, qword [rbp + 0x77]
cmp rax, 0x10
jae 0x18002c2cb
nop word [rax + rax]
mov rcx, qword [rbp + 0x77]
mov rax, qword [rbp + 0x77]
movzx r8d, byte [rbp + rax + 1]
mov rax, r13
mul rcx
shr rdx, 4
movzx eax, dl
add al, al
add dl, al
mov rax, qword [rbp + 0x77]
shl dl, 3
sub cl, dl
mov edx, 0x6eb15222
sar edx, cl
xor dl, r8b
mov byte [rbp + rax + 1], dl
mov rax, qword [rbp + 0x77]
inc rax
mov qword [rbp + 0x77], rax
mov rax, qword [rbp + 0x77]
cmp rax, 0x10
jb 0x18002c280
mov byte [rbp + 0x11], 0
call fcn.1800015c0
mov rcx, qword gs:[0x58]
mov rsi, rax
mov r8d, dword [0x1802848b4]
mov edx, 4
mov rbx, qword [rcx + r8*8]
add rbx, rdx
mov ecx, dword [rbx]
cmp dword [0x180286968], ecx
jle 0x18002c32c
lea rcx, [0x180286968]
call fcn.180249e18
cmp dword [0x180286968], 0xffffffff
jne 0x18002c32c
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 0x18002c365
lea rcx, [0x18028a99c]
call fcn.180249e18
cmp dword [0x18028a99c], 0xffffffff
jne 0x18002c365
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 + 1]
mov rcx, rax
call r8
mov r14, rax
test rax, rax
je 0x18002c4f2
xor eax, eax
mov dword [rbp - 0x20], 0x624504a5
mov byte [rbp - 0x12], al
mov dword [rbp - 0x1c], 0x16a7ed5f
mov dword [rbp - 0x18], 0x6f4a7e7f
mov word [rbp - 0x14], 0x24ef
mov qword [rbp + 0x77], r15
mov rax, qword [rbp + 0x77]
cmp rax, 0xd
jae 0x18002c40b
nop dword [rax]
mov rcx, qword [rbp + 0x77]
mov rax, qword [rbp + 0x77]
movzx r8d, byte [rbp + rax - 0x1f]
mov rax, r13
mul rcx
shr rdx, 4
movzx eax, dl
add al, al
add dl, al
mov rax, qword [rbp + 0x77]
shl dl, 3
sub cl, dl
mov edx, 0x71f41849
sar edx, cl
xor dl, r8b
mov byte [rbp + rax - 0x1f], dl
mov rax, qword [rbp + 0x77]
inc rax
mov qword [rbp + 0x77], rax
mov rax, qword [rbp + 0x77]
cmp rax, 0xd
jb 0x18002c3c0
mov byte [rbp - 0x12], 0
call fcn.1800015c0
mov edx, dword [rbx]
mov rsi, rax
cmp dword [0x180286968], edx
jle 0x18002c450
lea rcx, [0x180286968]
call fcn.180249e18
cmp dword [0x180286968], 0xffffffff
jne 0x18002c450
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 0x18002c489
lea rcx, [0x18028a99c]
call fcn.180249e18
cmp dword [0x18028a99c], 0xffffffff
jne 0x18002c489
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 - 0x1f]
mov rcx, rax
call r8
mov rbx, rax
test rax, rax
je 0x18002c4f2
cmp qword [rbp + 0x2f], 0x10
lea r8, [rbp + 0x17]
cmovae r8, qword [rbp + 0x17]
xor edx, edx
lea ecx, [rdx + 6]
call r14
mov qword [rdi], rax
test rax, rax
je 0x18002c4f2
xor r9d, r9d
mov qword [rsp + 0x20], r15
xor r8d, r8d
mov rcx, rax
lea edx, [r9 + 6]
call rbx
mov qword [rdi + 8], rax
test rax, rax
je 0x18002c4f2
mov eax, dword [rax]
mov bl, 1
mov dword [rdi + 0x10], eax
jmp 0x18002c4f4
xor bl, bl
lea rcx, [rbp + 0x17]
call fcn.18023c0a0
lea r11, [rsp + 0x90]
movzx eax, bl
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop rdi
pop rbp
ret