Function at 0x1400015d0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
xor r15d, r15d
mov ebx, r8d
mov r14, rdx
mov dword [rbp - 0x40], 0xe1b0537
mov edx, r15d
mov dword [rbp - 0x3c], 0x281e2210
mov r9d, r15d
mov dword [rbp - 0x38], 0x20c0518
mov rsi, rcx
mov word [rbp - 0x34], 0x2b29
mov dword [rbp - 0x30], 0xe001e36
lea rax, [rbp - 0x3f]
mov dword [rbp - 0x2c], 0x6001300
lea r10, [0x14001bb10]
mov dword [rbp - 0x28], 0x12100c17
mov dword [rbp - 0x24], 0xc083621
mov word [rbp - 0x20], 0x1006
mov dword [rbp - 0x18], 0x1b0c1e22
mov dword [rbp - 0x14], 0xc202611
mov dword [rbp - 0x10], 0x4170619
mov dword [rbp - 0xc], 0x6173b38
mov word [rbp - 8], 0xd15
nop word [rax + rax]
cmp edx, 0x19
mov r8d, r15d
cmovne r8d, edx
mov edx, r15d
movsxd rcx, r8d
movzx ecx, byte [rcx + r10]
xor byte [rax - 1], cl
lea ecx, [r8 + 1]
cmp r8d, 0x18
mov r8d, r15d
cmovne edx, ecx
movsxd rcx, edx
movzx ecx, byte [rcx + r10]
xor byte [rax], cl
lea ecx, [rdx + 1]
cmp edx, 0x18
mov edx, r15d
cmovne r8d, ecx
movsxd rcx, r8d
movzx ecx, byte [rcx + r10]
xor byte [rax + 1], cl
lea ecx, [r8 + 1]
cmp r8d, 0x18
mov r8d, r15d
cmovne edx, ecx
movsxd rcx, edx
movzx ecx, byte [rcx + r10]
xor byte [rax + 2], cl
lea ecx, [rdx + 1]
cmp edx, 0x18
mov edx, r15d
cmovne r8d, ecx
movsxd rcx, r8d
movzx ecx, byte [rcx + r10]
xor byte [rax + 3], cl
lea ecx, [r8 + 1]
cmp r8d, 0x18
mov r8d, r15d
cmovne edx, ecx
movsxd rcx, edx
movzx ecx, byte [rcx + r10]
xor byte [rax + 4], cl
lea ecx, [rdx + 1]
cmp edx, 0x18
mov edx, r15d
cmovne r8d, ecx
movsxd rcx, r8d
movzx ecx, byte [rcx + r10]
xor byte [rax + 5], cl
lea ecx, [r8 + 1]
cmp r8d, 0x18
mov r8d, r15d
cmovne edx, ecx
movsxd rcx, edx
movzx ecx, byte [rcx + r10]
xor byte [rax + 6], cl
lea ecx, [rdx + 1]
cmp edx, 0x18
mov edx, r15d
cmovne r8d, ecx
movsxd rcx, r8d
movzx ecx, byte [rcx + r10]
xor byte [rax + 7], cl
lea ecx, [r8 + 1]
cmp r8d, 0x18
mov r8d, r15d
cmovne edx, ecx
movsxd rcx, edx
movzx ecx, byte [rcx + r10]
xor byte [rax + 8], cl
lea ecx, [rdx + 1]
cmp edx, 0x18
mov edx, r15d
cmovne r8d, ecx
movsxd rcx, r8d
movzx ecx, byte [rcx + r10]
xor byte [rax + 9], cl
lea ecx, [r8 + 1]
cmp r8d, 0x18
cmovne edx, ecx
movsxd rcx, edx
movzx ecx, byte [rcx + r10]
mov r8d, r15d
xor byte [rax + 0xa], cl
lea rax, [rax + 0xe]
cmp edx, 0x18
lea ecx, [rdx + 1]
mov edx, r15d
cmovne r8d, ecx
movsxd rcx, r8d
movzx ecx, byte [rcx + r10]
xor byte [rax - 3], cl
lea ecx, [r8 + 1]
cmp r8d, 0x18
cmovne edx, ecx
add r9d, 0xe
movsxd rcx, edx
movzx ecx, byte [rcx + r10]
xor byte [rax - 2], cl
inc edx
cmp r9d, 0xe
jb 0x140001670
mov ecx, r15d
lea r8, [rbp - 0x2f]
mov r9d, r15d
cmp ecx, 0x19
mov edx, r15d
cmovne edx, ecx
mov ecx, r15d
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [r8 - 1], al
lea eax, [rdx + 1]
cmp edx, 0x18
mov edx, r15d
cmovne ecx, eax
movsxd rax, ecx
movzx eax, byte [rax + r10]
xor byte [r8], al
lea eax, [rcx + 1]
cmp ecx, 0x18
mov ecx, r15d
cmovne edx, eax
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [r8 + 1], al
lea eax, [rdx + 1]
cmp edx, 0x18
mov edx, r15d
cmovne ecx, eax
movsxd rax, ecx
movzx eax, byte [rax + r10]
xor byte [r8 + 2], al
lea eax, [rcx + 1]
cmp ecx, 0x18
mov ecx, r15d
cmovne edx, eax
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [r8 + 3], al
lea eax, [rdx + 1]
cmp edx, 0x18
mov edx, r15d
cmovne ecx, eax
movsxd rax, ecx
movzx eax, byte [rax + r10]
xor byte [r8 + 4], al
lea eax, [rcx + 1]
cmp ecx, 0x18
mov ecx, r15d
cmovne edx, eax
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [r8 + 5], al
lea eax, [rdx + 1]
cmp edx, 0x18
mov edx, r15d
cmovne ecx, eax
movsxd rax, ecx
movzx eax, byte [rax + r10]
xor byte [r8 + 6], al
lea eax, [rcx + 1]
cmp ecx, 0x18
mov ecx, r15d
cmovne edx, eax
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [r8 + 7], al
lea eax, [rdx + 1]
cmp edx, 0x18
mov edx, r15d
cmovne ecx, eax
movsxd rax, ecx
movzx eax, byte [rax + r10]
xor byte [r8 + 8], al
lea eax, [rcx + 1]
cmp ecx, 0x18
mov ecx, r15d
cmovne edx, eax
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [r8 + 9], al
lea eax, [rdx + 1]
cmp edx, 0x18
cmovne ecx, eax
movsxd rax, ecx
movzx eax, byte [rax + r10]
mov edx, r15d
xor byte [r8 + 0xa], al
lea r8, [r8 + 0x12]
cmp ecx, 0x18
lea eax, [rcx + 1]
mov ecx, r15d
cmovne edx, eax
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [r8 - 7], al
lea eax, [rdx + 1]
cmp edx, 0x18
mov edx, r15d
cmovne ecx, eax
movsxd rax, ecx
movzx eax, byte [rax + r10]
xor byte [r8 - 6], al
lea eax, [rcx + 1]
cmp ecx, 0x18
mov ecx, r15d
cmovne edx, eax
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [r8 - 5], al
lea eax, [rdx + 1]
cmp edx, 0x18
mov edx, r15d
cmovne ecx, eax
movsxd rax, ecx
movzx eax, byte [rax + r10]
xor byte [r8 - 4], al
lea eax, [rcx + 1]
cmp ecx, 0x18
mov ecx, r15d
cmovne edx, eax
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [r8 - 3], al
lea eax, [rdx + 1]
cmp edx, 0x18
cmovne ecx, eax
add r9d, 0x12
movsxd rax, ecx
movzx eax, byte [rax + r10]
xor byte [r8 - 2], al
inc ecx
cmp r9d, 0x12
jb 0x1400017e1
mov ecx, r15d
lea r8, [rbp - 0x17]
mov r9d, r15d
nop dword [rax + rax]
cmp ecx, 0x19
mov edx, r15d
cmovne edx, ecx
mov ecx, r15d
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [r8 - 1], al
lea eax, [rdx + 1]
cmp edx, 0x18
mov edx, r15d
cmovne ecx, eax
movsxd rax, ecx
movzx eax, byte [rax + r10]
xor byte [r8], al
lea eax, [rcx + 1]
cmp ecx, 0x18
mov ecx, r15d
cmovne edx, eax
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [r8 + 1], al
lea eax, [rdx + 1]
cmp edx, 0x18
mov edx, r15d
cmovne ecx, eax
movsxd rax, ecx
movzx eax, byte [rax + r10]
xor byte [r8 + 2], al
lea eax, [rcx + 1]
cmp ecx, 0x18
mov ecx, r15d
cmovne edx, eax
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [r8 + 3], al
lea eax, [rdx + 1]
cmp edx, 0x18
mov edx, r15d
cmovne ecx, eax
movsxd rax, ecx
movzx eax, byte [rax + r10]
xor byte [r8 + 4], al
lea eax, [rcx + 1]
cmp ecx, 0x18
mov ecx, r15d
cmovne edx, eax
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [r8 + 5], al
lea eax, [rdx + 1]
cmp edx, 0x18
mov edx, r15d
cmovne ecx, eax
movsxd rax, ecx
movzx eax, byte [rax + r10]
xor byte [r8 + 6], al
lea eax, [rcx + 1]
cmp ecx, 0x18
mov ecx, r15d
cmovne edx, eax
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [r8 + 7], al
lea eax, [rdx + 1]
cmp edx, 0x18
mov edx, r15d
cmovne ecx, eax
movsxd rax, ecx
movzx eax, byte [rax + r10]
xor byte [r8 + 8], al
lea eax, [rcx + 1]
cmp ecx, 0x18
mov ecx, r15d
cmovne edx, eax
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [r8 + 9], al
lea eax, [rdx + 1]
cmp edx, 0x18
cmovne ecx, eax
movsxd rax, ecx
movzx eax, byte [rax + r10]
mov edx, r15d
xor byte [r8 + 0xa], al
lea r8, [r8 + 0x12]
cmp ecx, 0x18
lea eax, [rcx + 1]
mov ecx, r15d
cmovne edx, eax
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [r8 - 7], al
lea eax, [rdx + 1]
cmp edx, 0x18
mov edx, r15d
cmovne ecx, eax
movsxd rax, ecx
movzx eax, byte [rax + r10]
xor byte [r8 - 6], al
lea eax, [rcx + 1]
cmp ecx, 0x18
mov ecx, r15d
cmovne edx, eax
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [r8 - 5], al
lea eax, [rdx + 1]
cmp edx, 0x18
mov edx, r15d
cmovne ecx, eax
movsxd rax, ecx
movzx eax, byte [rax + r10]
xor byte [r8 - 4], al
lea eax, [rcx + 1]
cmp ecx, 0x18
mov ecx, r15d
cmovne edx, eax
movsxd rax, edx
movzx eax, byte [rax + r10]
xor byte [r8 - 3], al
lea eax, [rdx + 1]
cmp edx, 0x18
cmovne ecx, eax
add r9d, 0x12
movsxd rax, ecx
movzx eax, byte [rax + r10]
xor byte [r8 - 2], al
inc ecx
cmp r9d, 0x12
jb 0x1400019b0
lea rcx, [0x14001b020]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, [rbp - 0x40]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [0x14001b030]
mov qword [0x14001cce0], rax
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, str.kernel32.dll
mov qword [0x14001ccd8], rax
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, [rbp - 0x18]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r9d, 0x1000
mov dword [rsp + 0x20], 0x20
mov r8, rbx
mov qword [0x14001ccd0], rax
xor edx, edx
mov rcx, rsi
call qword [0x14001cce0]
mov r9, rbx
mov qword [rsp + 0x20], r15
mov rdx, rax
mov r8, r14
mov rcx, rsi
mov rdi, rax
call qword [0x14001ccd8]
mov qword [rsp + 0x30], r15
mov r9, rdi
mov dword [rsp + 0x28], r15d
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x20], r15
mov rcx, rsi
call qword [0x14001ccd0]
mov rbx, rax
test rax, rax
je 0x140001c4c
mov edx, 0x1f4
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x140001c51
mov eax, 0xffffffff
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop rbp
ret