Function at 0x1801a959c
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rbp
lea rbp, [rax - 0x5f]
sub rsp, 0xe0
mov qword [rbp + 0x47], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rdi
call fcn.1801a945c
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov r8, rax
xor edx, edx
lea rcx, [rbp + 0x27]
call fcn.18018f768
nop
lea r8, [fcn.1801a9150]
xor edx, edx
lea rcx, [rbp + 7]
call fcn.18018f768
nop
lea rcx, [rbp + 7]
mov r10d, 8
cmp qword [rbp + 0x1f], r10
cmovae rcx, qword [rbp + 7]
lea r8, [rbp + 0x27]
cmp qword [rbp + 0x3f], r10
cmovae r8, qword [rbp + 0x27]
xor r9d, r9d
lea ebx, [r10 - 7]
lea r11d, [r10 - 6]
mov rdx, qword [rbp + 0x37]
cmp rdx, qword [rbp + 0x17]
jne 0x1801a9642
test rdx, rdx
je 0x1801a99b0
sub r8, rcx
movzx eax, word [r8 + rcx]
cmp ax, word [rcx]
jne 0x1801a9642
add rcx, r11
sub rdx, rbx
jne 0x1801a962b
jmp 0x1801a99b0
mov edx, 0x28
mov dword [rbp - 0x69], edx
mov eax, dword [rbp - 0x69]
xor ax, 0x5b
mov word [rbp - 0x65], ax
mov eax, dword [rbp - 0x69]
add ax, bx
xor ax, 0x2b
mov word [rbp - 0x63], ax
mov eax, dword [rbp - 0x69]
add ax, r11w
xor ax, 0x5d
mov word [rbp - 0x61], ax
mov eax, dword [rbp - 0x69]
add ax, 3
mov r8w, 0x20
xor ax, r8w
mov word [rbp - 0x5f], ax
mov eax, dword [rbp - 0x69]
add ax, 4
xor ax, 0x49
mov word [rbp - 0x5d], ax
mov eax, dword [rbp - 0x69]
add ax, 5
xor ax, 0x27
mov word [rbp - 0x5b], ax
mov eax, dword [rbp - 0x69]
add ax, 6
xor ax, 0x6d
mov word [rbp - 0x59], ax
mov eax, dword [rbp - 0x69]
add ax, 7
xor ax, r8w
mov word [rbp - 0x57], ax
mov eax, dword [rbp - 0x69]
add ax, r10w
xor ax, 0x72
mov word [rbp - 0x55], ax
mov eax, dword [rbp - 0x69]
add ax, 9
xor ax, 0x75
mov word [rbp - 0x53], ax
mov eax, dword [rbp - 0x69]
add ax, 0xa
mov cx, 0x6e
xor ax, cx
mov word [rbp - 0x51], ax
mov eax, dword [rbp - 0x69]
add ax, 0xb
xor ax, cx
mov word [rbp - 0x4f], ax
mov eax, dword [rbp - 0x69]
add ax, 0xc
xor ax, 0x69
mov word [rbp - 0x4d], ax
mov eax, dword [rbp - 0x69]
add ax, 0xd
xor ax, cx
mov word [rbp - 0x4b], ax
mov eax, dword [rbp - 0x69]
add ax, 0xe
xor ax, 0x67
mov word [rbp - 0x49], ax
mov eax, dword [rbp - 0x69]
add ax, 0xf
xor ax, r8w
mov word [rbp - 0x47], ax
mov eax, dword [rbp - 0x69]
add ax, 0x10
xor ax, 0x61
mov word [rbp - 0x45], ax
mov eax, dword [rbp - 0x69]
add ax, 0x11
xor ax, 0x73
mov word [rbp - 0x43], ax
mov eax, dword [rbp - 0x69]
add ax, 0x12
xor ax, r8w
mov word [rbp - 0x41], ax
mov eax, dword [rbp - 0x69]
add ax, 0x13
xor ax, 0x61
mov word [rbp - 0x3f], ax
mov eax, dword [rbp - 0x69]
add ax, 0x14
xor ax, cx
mov word [rbp - 0x3d], ax
mov eax, dword [rbp - 0x69]
add ax, 0x15
xor ax, r8w
mov word [rbp - 0x3b], ax
mov eax, dword [rbp - 0x69]
add ax, 0x16
xor ax, 0x69
mov word [rbp - 0x39], ax
mov eax, dword [rbp - 0x69]
add ax, 0x17
xor ax, cx
mov word [rbp - 0x37], ax
mov eax, dword [rbp - 0x69]
add ax, 0x18
xor ax, 0x6a
mov word [rbp - 0x35], ax
mov eax, dword [rbp - 0x69]
add ax, 0x19
mov cx, 0x65
xor ax, cx
mov word [rbp - 0x33], ax
mov eax, dword [rbp - 0x69]
add ax, 0x1a
xor ax, 0x63
mov word [rbp - 0x31], ax
mov eax, dword [rbp - 0x69]
add ax, 0x1b
xor ax, 0x74
mov word [rbp - 0x2f], ax
mov eax, dword [rbp - 0x69]
add ax, 0x1c
xor ax, cx
mov word [rbp - 0x2d], ax
mov eax, dword [rbp - 0x69]
add ax, 0x1d
xor ax, 0x64
mov word [rbp - 0x2b], ax
mov eax, dword [rbp - 0x69]
add ax, 0x1e
xor ax, r8w
mov word [rbp - 0x29], ax
mov eax, dword [rbp - 0x69]
add ax, 0x1f
xor ax, 0x73
mov word [rbp - 0x27], ax
mov eax, dword [rbp - 0x69]
add ax, r8w
xor ax, 0x68
mov word [rbp - 0x25], ax
mov eax, dword [rbp - 0x69]
add ax, 0x21
xor ax, cx
mov word [rbp - 0x23], ax
mov eax, dword [rbp - 0x69]
add ax, 0x22
lea edi, [rdx + 0x44]
xor ax, di
mov word [rbp - 0x21], ax
mov eax, dword [rbp - 0x69]
add ax, 0x23
xor ax, di
mov word [rbp - 0x1f], ax
mov eax, dword [rbp - 0x69]
add ax, 0x24
xor ax, 0x63
mov word [rbp - 0x1d], ax
mov eax, dword [rbp - 0x69]
add ax, 0x25
xor ax, 0x6f
mov word [rbp - 0x1b], ax
mov eax, dword [rbp - 0x69]
add ax, 0x26
xor ax, 0x64
mov word [rbp - 0x19], ax
mov eax, dword [rbp - 0x69]
add ax, 0x27
xor ax, cx
mov word [rbp - 0x17], ax
mov eax, dword [rbp - 0x69]
add ax, dx
xor ax, 0x2f
mov word [rbp - 0x15], ax
mov eax, dword [rbp - 0x69]
add ax, 0x29
xor ax, di
mov word [rbp - 0x13], ax
mov eax, dword [rbp - 0x69]
add ax, 0x2a
xor ax, 0x69
mov word [rbp - 0x11], ax
mov eax, dword [rbp - 0x69]
add ax, 0x2b
xor ax, 0x62
mov word [rbp - 0xf], ax
mov eax, dword [rbp - 0x69]
add ax, 0x2c
xor ax, 0x72
mov word [rbp - 0xd], ax
mov eax, dword [rbp - 0x69]
add ax, 0x2d
xor ax, 0x61
mov word [rbp - 0xb], ax
mov eax, dword [rbp - 0x69]
add ax, 0x2e
xor ax, 0x72
mov word [rbp - 9], ax
mov eax, dword [rbp - 0x69]
add ax, 0x2f
xor ax, 0x79
mov word [rbp - 7], ax
mov eax, dword [rbp - 0x69]
add ax, 0x30
xor ax, 0x21
mov word [rbp - 5], ax
mov eax, dword [rbp - 0x69]
add ax, 0x31
xor ax, r8w
mov word [rbp - 3], ax
mov eax, dword [rbp - 0x69]
add ax, 0x32
xor ax, 0x3a
mov word [rbp - 1], ax
mov eax, dword [rbp - 0x69]
add ax, 0x33
xor ax, 0x2d
mov word [rbp + 1], ax
mov eax, dword [rbp - 0x69]
add ax, 0x34
xor ax, 0x29
mov word [rbp + 3], ax
xor eax, eax
mov word [rbp + 5], ax
movzx eax, word [rbp - 0x65]
mov rdx, r9
movzx eax, word [rbp + rdx*2 - 0x65]
mov ecx, dword [rbp - 0x69]
add cx, dx
xor cx, ax
mov word [rbp + rdx*2 - 0x65], cx
add rdx, rbx
cmp rdx, 0x35
jb 0x1801a9970
mov word [rbp + 5], r9w
lea rcx, [rbp - 0x65]
call fcn.18007aae4
nop
mov r8, rdi
xor edx, edx
lea rcx, [rbp - 0x65]
call qword [sym.imp.VCRUNTIME140.dll_memset]
mov byte [0x1802bd271], bl
lea rcx, [rbp + 7]
call fcn.18007a444
nop
lea rcx, [rbp + 0x27]
call fcn.18007a444
lea r11, [rsp + 0xe0]
mov rbx, qword [r11 + 0x10]
mov rdi, qword [r11 + 0x18]
mov rsp, r11
pop rbp
ret