Function at 0x180064c40
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
mov rbp, rsp
sub rsp, 0x78
movdqa xmm0, xmmword [0x18027ac50]
xor esi, esi
mov qword [rbp + 0x38], rsi
movabs r9, 0xaaaaaaaaaaaaaaab
movdqu xmmword [rbp - 0x28], xmm0
mov word [rbp - 0x18], 0xd6
mov qword [rbp + 0x28], rsi
mov rax, qword [rbp + 0x28]
nop dword [rax + rax]
mov rcx, qword [rbp + 0x28]
mov rax, qword [rbp + 0x28]
movzx r8d, byte [rbp + rax - 0x27]
mov rax, r9
mul rcx
shr rdx, 4
movzx eax, dl
add al, al
add dl, al
mov rax, qword [rbp + 0x28]
shl dl, 3
sub cl, dl
mov edx, 0x4959f54c
sar edx, cl
xor dl, r8b
mov byte [rbp + rax - 0x27], dl
mov rax, qword [rbp + 0x28]
inc rax
mov qword [rbp + 0x28], rax
mov rax, qword [rbp + 0x28]
cmp rax, 0x10
jb 0x180064c80
mov byte [rbp - 0x17], sil
call fcn.180001970
mov rcx, qword gs:[0x58]
mov rdi, rax
mov edx, dword [0x1802848b4]
mov eax, 4
mov rbx, qword [rcx + rdx*8]
add rbx, rax
mov ecx, dword [rbx]
cmp dword [0x180286968], ecx
jle 0x180064d2b
lea rcx, [0x180286968]
call fcn.180249e18
cmp dword [0x180286968], 0xffffffff
jne 0x180064d2b
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 0x180064d64
lea rcx, [0x18028a99c]
call fcn.180249e18
cmp dword [0x18028a99c], 0xffffffff
jne 0x180064d64
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 - 0x27]
mov rcx, rax
call r8
mov rdi, rax
test rax, rax
je 0x1800650a1
call fcn.180064320
mov rbx, rax
test rax, rax
je 0x1800650a1
mov dword [rbp + 0x30], 0xabdd7617
mov dword [rbp + 0x28], 0x3e72b10c
mov edx, dword [rbp + 0x28]
mov ecx, dword [rbp + 0x30]
add edx, ecx
mov dword [rbp + 0x28], edx
mov ecx, dword [rbp + 0x28]
mov dword [rbp - 0x48], ecx
mov dword [rbp + 0x30], 0x9fa5
mov dword [rbp + 0x28], 0x298
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x30]
add ecx, eax
mov dword [rbp + 0x28], ecx
mov eax, dword [rbp + 0x28]
mov word [rbp - 0x44], ax
mov dword [rbp + 0x30], 0xfc7
mov dword [rbp + 0x28], 0x20a
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x30]
add ecx, eax
mov dword [rbp + 0x28], ecx
mov eax, dword [rbp + 0x28]
mov word [rbp - 0x42], ax
mov dword [rbp + 0x30], 3
mov dword [rbp + 0x28], 0xa4
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x30]
add ecx, eax
mov dword [rbp + 0x28], ecx
mov eax, dword [rbp + 0x28]
mov byte [rbp - 0x40], al
mov dword [rbp + 0x30], 0x2b
mov dword [rbp + 0x28], 0xa8
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x30]
add ecx, eax
mov dword [rbp + 0x28], ecx
mov eax, dword [rbp + 0x28]
mov byte [rbp - 0x3f], al
mov dword [rbp + 0x30], esi
mov dword [rbp + 0x28], esi
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x30]
add ecx, eax
mov dword [rbp + 0x28], ecx
mov eax, dword [rbp + 0x28]
mov byte [rbp - 0x3e], al
mov dword [rbp + 0x30], esi
mov dword [rbp + 0x28], esi
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x30]
add ecx, eax
mov dword [rbp + 0x28], ecx
mov eax, dword [rbp + 0x28]
mov byte [rbp - 0x3d], al
mov dword [rbp + 0x30], 0x6b
mov dword [rbp + 0x28], 0x8d
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x30]
add ecx, eax
mov dword [rbp + 0x28], ecx
mov eax, dword [rbp + 0x28]
mov byte [rbp - 0x3c], al
mov dword [rbp + 0x30], 0xf
mov dword [rbp + 0x28], 0x66
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x30]
add ecx, eax
mov dword [rbp + 0x28], ecx
mov eax, dword [rbp + 0x28]
mov byte [rbp - 0x3b], al
mov dword [rbp + 0x30], 0xf
mov dword [rbp + 0x28], 0x62
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x30]
add ecx, eax
mov dword [rbp + 0x28], ecx
mov eax, dword [rbp + 0x28]
mov byte [rbp - 0x3a], al
mov dword [rbp + 0x30], 0x4c
mov dword [rbp + 0x28], 0x97
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x30]
add ecx, eax
mov dword [rbp + 0x28], ecx
mov eax, dword [rbp + 0x28]
mov byte [rbp - 0x39], al
mov dword [rbp + 0x30], 0xaef41f8a
mov dword [rbp + 0x28], 0x3b5c0798
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x30]
add ecx, eax
mov dword [rbp + 0x28], ecx
mov eax, dword [rbp + 0x28]
mov dword [rbp - 0x38], eax
mov dword [rbp + 0x30], 0x1891
mov dword [rbp + 0x28], 0x89ac
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x30]
add ecx, eax
mov dword [rbp + 0x28], ecx
mov eax, dword [rbp + 0x28]
mov word [rbp - 0x34], ax
mov dword [rbp + 0x30], 0x525
mov dword [rbp + 0x28], 0xcac
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x30]
add ecx, eax
mov dword [rbp + 0x28], ecx
mov eax, dword [rbp + 0x28]
mov word [rbp - 0x32], ax
mov dword [rbp + 0x30], 0x26
mov dword [rbp + 0x28], 0x81
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x30]
add ecx, eax
mov dword [rbp + 0x28], ecx
mov eax, dword [rbp + 0x28]
mov byte [rbp - 0x30], al
mov dword [rbp + 0x30], 0x7e
mov dword [rbp + 0x28], 0x55
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x30]
add ecx, eax
mov dword [rbp + 0x28], ecx
mov eax, dword [rbp + 0x28]
mov byte [rbp - 0x2f], al
mov dword [rbp + 0x30], esi
mov dword [rbp + 0x28], esi
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x30]
add ecx, eax
mov dword [rbp + 0x28], ecx
mov eax, dword [rbp + 0x28]
mov byte [rbp - 0x2e], al
mov dword [rbp + 0x30], esi
mov dword [rbp + 0x28], esi
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x30]
add ecx, eax
mov dword [rbp + 0x28], ecx
mov eax, dword [rbp + 0x28]
mov byte [rbp - 0x2d], al
mov dword [rbp + 0x30], 0xe8
mov dword [rbp + 0x28], 0x10
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x30]
add ecx, eax
mov dword [rbp + 0x28], ecx
mov eax, dword [rbp + 0x28]
mov byte [rbp - 0x2c], al
mov dword [rbp + 0x30], 0x56
mov dword [rbp + 0x28], 0x1f
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x30]
add ecx, eax
mov dword [rbp + 0x28], ecx
mov eax, dword [rbp + 0x28]
mov byte [rbp - 0x2b], al
mov dword [rbp + 0x30], 6
mov dword [rbp + 0x28], 0x6b
mov ecx, dword [rbp + 0x28]
lea r9, [rbp - 0x48]
mov eax, dword [rbp + 0x30]
xor edx, edx
add ecx, eax
mov dword [rbp + 0x28], ecx
mov eax, dword [rbp + 0x28]
mov byte [rbp - 0x2a], al
lea r8d, [rdx + 1]
mov dword [rbp + 0x30], 0x88
mov dword [rbp + 0x28], 0x5b
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x30]
add ecx, eax
mov dword [rbp + 0x28], ecx
lea rcx, [rbp - 0x38]
mov eax, dword [rbp + 0x28]
mov byte [rbp - 0x29], al
lea rax, [rbp + 0x38]
mov qword [rsp + 0x20], rax
call rdi
test eax, eax
js 0x180065095
mov rcx, qword [rbp + 0x38]
mov edx, 1
mov rax, qword [rcx]
call qword [rax + 0x28]
test eax, eax
js 0x18006508b
mov rcx, qword [rbp + 0x38]
lea r8, [rbp + 0x40]
mov edx, 2
mov rax, qword [rcx]
call qword [rax + 0x78]
test eax, eax
js 0x18006508b
mov rdx, qword [rbp + 0x40]
call fcn.1800646f0
mov rdx, qword [rbp + 0x38]
call fcn.180064960
mov rcx, qword [rbp + 0x40]
call rbx
mov rcx, qword [rbp + 0x38]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rdx, 0xffffffff80000002
call fcn.1800646f0
add rsp, 0x78
pop rdi
pop rsi
pop rbx
pop rbp
ret