Function at 0x14002a710
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r14
push rbp
mov rbp, rsp
sub rsp, 0x80
mov rax, qword [0x14009e018]
xor rax, rsp
mov qword [rbp - 0x18], rax
mov rcx, qword [0x1400a3478]
xor edi, edi
mov qword [rbp - 0x50], rdi
test rcx, rcx
je 0x14002a768
mov rax, qword [rcx]
lea r8, [rbp - 0x50]
mov edx, 0xf020
call qword [rax + 0x28]
test eax, eax
js 0x14002a768
mov rsi, qword [rbp - 0x50]
jmp 0x14002a76f
mov rsi, rdi
mov qword [rbp - 0x50], rdi
mov ecx, 0xb9e93e78
call fcn.140029550
mov rdx, rax
movzx ecx, byte [rax]
xor cl, 0x88
mov byte [rbp - 0x30], cl
movzx ecx, byte [rax + 1]
xor cl, 0x88
mov byte [rbp - 0x2f], cl
movzx ecx, byte [rax + 2]
xor cl, 0x88
mov byte [rbp - 0x2e], cl
movzx ecx, byte [rax + 3]
xor cl, 0x88
mov byte [rbp - 0x2d], cl
movzx ecx, byte [rax + 4]
xor cl, 0x88
mov byte [rbp - 0x2c], cl
mov ecx, 0xbbcebb48
movzx eax, byte [rax + 5]
xor al, 0x88
mov byte [rbp - 0x2b], al
movzx eax, byte [rdx + 6]
xor al, 0x88
mov byte [rbp - 0x2a], al
movzx eax, byte [rdx + 7]
xor al, 0x88
mov byte [rbp - 0x29], al
movzx eax, byte [rdx + 8]
xor al, 0x88
mov byte [rbp - 0x28], al
movzx eax, byte [rdx + 9]
xor al, 0x88
mov byte [rbp - 0x26], dil
mov byte [rbp - 0x27], al
call fcn.140028900
mov rbx, rax
mov qword [rbp - 0x58], rdi
mov r14d, 0x5017
mov qword [rbp - 0x60], rdi
movzx eax, word [rax]
xor ax, r14w
mov word [rbp - 0x48], ax
movzx eax, word [rbx + 2]
xor ax, r14w
mov word [rbp - 0x46], ax
movzx eax, word [rbx + 4]
xor ax, r14w
mov word [rbp - 0x44], ax
movzx eax, word [rbx + 6]
xor ax, r14w
mov word [rbp - 0x42], ax
movzx eax, word [rbx + 8]
xor ax, r14w
mov word [rbp - 0x40], ax
movzx eax, word [rbx + 0xa]
xor ax, r14w
mov word [rbp - 0x3e], ax
movzx eax, word [rbx + 0xc]
xor ax, r14w
mov word [rbp - 0x3c], ax
movzx eax, word [rbx + 0xe]
xor ax, r14w
mov word [rbp - 0x3a], ax
movzx eax, word [rbx + 0x10]
xor ax, r14w
mov word [rbp - 0x36], di
mov word [rbp - 0x38], ax
test rsi, rsi
je 0x14002a89b
mov rax, qword [rsi]
lea r8, [rbp - 0x48]
lea rdx, [rbp - 0x60]
mov rcx, rsi
call qword [rax + 0x30]
test eax, eax
js 0x14002a89b
mov rax, qword [rsi]
lea r9, [rbp - 0x30]
mov r8, qword [rbp - 0x60]
lea rdx, [rbp - 0x58]
mov rcx, rsi
call qword [rax + 0x38]
test eax, eax
jns 0x14002a8bd
lea rcx, [rbp - 0x48]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov qword [rbp - 0x60], rax
test rax, rax
je 0x14002a8bd
lea rdx, [rbp - 0x30]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x14002a8c1
mov rax, qword [rbp - 0x58]
mov qword [0x1400a3488], rax
test rax, rax
jne 0x14002a8d7
mov eax, 0xe0010001
jmp 0x14002ac8f
mov ecx, 0x5f3955e7
movaps xmmword [rsp + 0x70], xmm6
call fcn.14002a180
movdqa xmm6, xmmword [0x140093500]
mov r8, rax
mov rdx, rdi
lea rcx, [rax + 0x14]
lea rax, [rbp - 0x30]
cmp rax, rcx
ja 0x14002a910
lea rax, [rbp - 0x1c]
cmp rax, r8
jae 0x14002a927
nop word [rax + rax]
movdqu xmm0, xmmword [r8]
mov edx, 0x10
movdqa xmm1, xmm6
pxor xmm1, xmm0
movdqu xmmword [rbp - 0x30], xmm1
lea rax, [rbp - 0x30]
sub r8, rax
nop
lea rcx, [rbp - 0x30]
add rcx, rdx
inc rdx
movzx eax, byte [r8 + rcx]
xor al, 0x88
mov byte [rcx], al
cmp rdx, 0x15
jb 0x14002a930
mov rsi, qword [rbp - 0x50]
mov byte [rbp - 0x1b], dil
movzx eax, word [rbx]
xor ax, r14w
mov qword [rbp - 0x60], rdi
mov word [rbp - 0x48], ax
movzx eax, word [rbx + 2]
xor ax, r14w
mov qword [rbp - 0x58], rdi
mov word [rbp - 0x46], ax
movzx eax, word [rbx + 4]
xor ax, r14w
mov word [rbp - 0x44], ax
movzx eax, word [rbx + 6]
xor ax, r14w
mov word [rbp - 0x42], ax
movzx eax, word [rbx + 8]
xor ax, r14w
mov word [rbp - 0x40], ax
movzx eax, word [rbx + 0xa]
xor ax, r14w
mov word [rbp - 0x3e], ax
movzx eax, word [rbx + 0xc]
xor ax, r14w
mov word [rbp - 0x3c], ax
movzx eax, word [rbx + 0xe]
xor ax, r14w
mov word [rbp - 0x3a], ax
movzx eax, word [rbx + 0x10]
xor ax, r14w
mov word [rbp - 0x36], di
mov word [rbp - 0x38], ax
test rsi, rsi
je 0x14002a9fb
mov rax, qword [rsi]
lea r8, [rbp - 0x48]
lea rdx, [rbp - 0x58]
mov rcx, rsi
call qword [rax + 0x30]
test eax, eax
js 0x14002a9fb
mov rax, qword [rsi]
lea r9, [rbp - 0x30]
mov r8, qword [rbp - 0x58]
lea rdx, [rbp - 0x60]
mov rcx, rsi
call qword [rax + 0x38]
test eax, eax
jns 0x14002aa1d
lea rcx, [rbp - 0x48]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov qword [rbp - 0x58], rax
test rax, rax
je 0x14002aa1d
lea rdx, [rbp - 0x30]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x14002aa21
mov rax, qword [rbp - 0x60]
mov qword [0x1400a3498], rax
test rax, rax
je 0x14002ab7d
mov ecx, 0xfc32e167
call fcn.14002a180
mov r8, rax
mov rdx, rdi
lea rcx, [rax + 0x14]
lea rax, [rbp - 0x30]
cmp rax, rcx
ja 0x14002aa60
lea rax, [rbp - 0x1c]
cmp rax, r8
jae 0x14002aa73
nop word [rax + rax]
movdqu xmm0, xmmword [r8]
mov edx, 0x10
pxor xmm6, xmm0
movdqu xmmword [rbp - 0x30], xmm6
lea rax, [rbp - 0x30]
sub r8, rax
nop word [rax + rax]
lea rcx, [rbp - 0x30]
add rcx, rdx
inc rdx
movzx eax, byte [rcx + r8]
xor al, 0x88
mov byte [rcx], al
cmp rdx, 0x15
jb 0x14002aa80
mov rsi, qword [rbp - 0x50]
mov byte [rbp - 0x1b], dil
movzx eax, word [rbx]
xor ax, r14w
mov qword [rbp - 0x60], rdi
mov word [rbp - 0x48], ax
movzx eax, word [rbx + 2]
xor ax, r14w
mov qword [rbp - 0x58], rdi
mov word [rbp - 0x46], ax
movzx eax, word [rbx + 4]
xor ax, r14w
mov word [rbp - 0x44], ax
movzx eax, word [rbx + 6]
xor ax, r14w
mov word [rbp - 0x42], ax
movzx eax, word [rbx + 8]
xor ax, r14w
mov word [rbp - 0x40], ax
movzx eax, word [rbx + 0xa]
xor ax, r14w
mov word [rbp - 0x3e], ax
movzx eax, word [rbx + 0xc]
xor ax, r14w
mov word [rbp - 0x3c], ax
movzx eax, word [rbx + 0xe]
xor ax, r14w
mov word [rbp - 0x3a], ax
movzx eax, word [rbx + 0x10]
xor ax, r14w
mov word [rbp - 0x36], di
mov word [rbp - 0x38], ax
test rsi, rsi
je 0x14002ab4b
mov rax, qword [rsi]
lea r8, [rbp - 0x48]
lea rdx, [rbp - 0x58]
mov rcx, rsi
call qword [rax + 0x30]
test eax, eax
js 0x14002ab4b
mov rax, qword [rsi]
lea r9, [rbp - 0x30]
mov r8, qword [rbp - 0x58]
lea rdx, [rbp - 0x60]
mov rcx, rsi
call qword [rax + 0x38]
test eax, eax
jns 0x14002ab6d
lea rcx, [rbp - 0x48]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov qword [rbp - 0x58], rax
test rax, rax
je 0x14002ab6d
lea rdx, [rbp - 0x30]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x14002ab71
mov rax, qword [rbp - 0x60]
mov qword [0x1400a3480], rax
test rax, rax
jne 0x14002ab87
mov eax, 0xe0010001
jmp 0x14002ac8a
mov ecx, 0xfb0c4ecc
call fcn.140029550
mov rdx, rax
lea r9, [0x1400a3490]
lea r8, [rbp - 0x30]
movzx ecx, byte [rax]
xor cl, 0x88
mov byte [rbp - 0x30], cl
movzx ecx, byte [rax + 1]
xor cl, 0x88
mov byte [rbp - 0x2f], cl
movzx ecx, byte [rax + 2]
xor cl, 0x88
mov byte [rbp - 0x2e], cl
movzx ecx, byte [rax + 3]
xor cl, 0x88
mov byte [rbp - 0x2d], cl
movzx ecx, byte [rax + 4]
xor cl, 0x88
mov byte [rbp - 0x2c], cl
movzx eax, byte [rax + 5]
xor al, 0x88
mov byte [rbp - 0x2b], al
movzx eax, byte [rdx + 6]
xor al, 0x88
mov byte [rbp - 0x2a], al
movzx eax, byte [rdx + 7]
xor al, 0x88
mov byte [rbp - 0x29], al
movzx eax, byte [rdx + 8]
xor al, 0x88
mov byte [rbp - 0x28], al
movzx eax, byte [rdx + 9]
lea rdx, [rbp - 0x48]
xor al, 0x88
mov byte [rbp - 0x26], dil
mov byte [rbp - 0x27], al
movzx eax, word [rbx]
xor ax, r14w
mov word [rbp - 0x48], ax
movzx eax, word [rbx + 2]
xor ax, r14w
mov word [rbp - 0x46], ax
movzx eax, word [rbx + 4]
xor ax, r14w
mov word [rbp - 0x44], ax
movzx eax, word [rbx + 6]
xor ax, r14w
mov word [rbp - 0x42], ax
movzx eax, word [rbx + 8]
xor ax, r14w
mov word [rbp - 0x40], ax
movzx eax, word [rbx + 0xa]
xor ax, r14w
mov word [rbp - 0x3e], ax
movzx eax, word [rbx + 0xc]
xor ax, r14w
mov word [rbp - 0x3c], ax
movzx eax, word [rbx + 0xe]
xor ax, r14w
mov word [rbp - 0x3a], ax
movzx ecx, word [rbx + 0x10]
xor cx, r14w
mov word [rbp - 0x36], di
mov word [rbp - 0x38], cx
mov rcx, qword [rbp - 0x50]
call fcn.14002a670
test rax, rax
mov ecx, 0xe0010001
cmove edi, ecx
mov eax, edi
movaps xmm6, xmmword [rsp + 0x70]
mov rcx, qword [rbp - 0x18]
xor rcx, rsp
call fcn.140051aa0
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov r14, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret