Function at 0x14015d3e0
Capabilities:
Encode data using xor
Hash data via bcrypt

Disassembly:
mov r11, rsp
push rbx
push rbp
push rsi
push r12
push r14
push r15
sub rsp, 0x98
mov rax, qword [0x140293028]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0xf8]
mov r15d, r9d
movzx r12d, word [rsp + 0x100]
mov rbp, r8
mov qword [rsp + 0x38], rax
mov r14d, edx
mov rsi, rcx
test rcx, rcx
je 0x14015d762
test r8, r8
je 0x14015d762
test rax, rax
je 0x14015d762
mov qword [r11 - 0x38], rdi
mov r8d, r12d
xor edx, edx
mov qword [r11 - 0x40], r13
mov rcx, rax
call fcn.1401a8d80
mov edx, 0x28
lea ecx, [rdx - 0x27]
call fcn.1401acf48
mov r13, rax
mov edi, 0x17
test rax, rax
je 0x14015d472
mov word [rax + 0x24], di
mov edx, 0x28
lea ecx, [rdx - 0x27]
call fcn.1401acf48
mov qword [rsp + 0x40], rax
mov rbx, rax
test rax, rax
je 0x14015d490
mov word [rax + 0x24], di
mov edx, 0x28
lea ecx, [rdx - 0x27]
call fcn.1401acf48
mov rdi, rax
test rax, rax
je 0x14015d4ae
mov eax, 0x17
mov word [rdi + 0x24], ax
test r13, r13
je 0x14015d705
test rbx, rbx
je 0x14015d705
test rdi, rdi
je 0x14015d705
mov eax, 0x14
mov r8d, r14d
mov word [r13 + 0x24], ax
mov rdx, rsi
mov word [rbx + 0x24], ax
mov rcx, r13
mov word [rdi + 0x24], ax
call fcn.14015f260
mov ebx, eax
test eax, eax
jne 0x14015d70f
mov rdx, rsi
mov r8d, r14d
mov rsi, qword [rsp + 0x40]
mov rcx, rsi
call fcn.14015f260
mov ebx, eax
test eax, eax
jne 0x14015d70f
mov rcx, qword [rsi + 0x10]
test rcx, rcx
je 0x14015d6fe
xor r9d, r9d
mov r8d, r15d
mov rdx, rbp
call qword [sym.imp.bcrypt.dll_BCryptHashData]
test eax, eax
jns 0x14015d53d
mov dword [rsi + 0x20], eax
mov ebx, 0xffffff92
jmp 0x14015d70f
mov r14, qword [rsp + 0x38]
lea ecx, [r12 - 1]
xor eax, eax
movzx ebp, ax
mov ebx, eax
mov eax, 0x66666667
imul ecx
mov r15d, edx
sar r15d, 3
mov eax, r15d
shr eax, 0x1f
add r15d, eax
inc r15w
nop dword [rax]
cmp bp, r15w
jae 0x14015d70f
xorps xmm0, xmm0
xor eax, eax
mov rdx, rdi
mov dword [rsp + 0x70], eax
mov rcx, rsi
movups xmmword [rsp + 0x60], xmm0
call fcn.14015f380
mov ebx, eax
test eax, eax
jne 0x14015d70f
movzx ecx, bp
inc ecx
mov eax, ecx
shr eax, 0x18
mov byte [rsp + 0x48], al
mov eax, ecx
shr eax, 0x10
shr ecx, 8
xor ebx, ebx
mov byte [rsp + 0x49], al
lea eax, [rbp + 1]
mov byte [rsp + 0x4a], cl
mov byte [rsp + 0x4b], al
mov esi, ebx
lea r8d, [rbx + 4]
jmp 0x14015d5d2
xor ebx, ebx
mov rcx, qword [rdi + 0x10]
test rcx, rcx
je 0x14015d6fe
xor r9d, r9d
lea rdx, [rsp + 0x48]
call qword [sym.imp.bcrypt.dll_BCryptHashData]
test eax, eax
js 0x14015d6f4
mov rcx, qword [rdi + 0x10]
mov dword [rsp + 0x30], ebx
mov dword [rsp + 0x38], 4
test rcx, rcx
je 0x14015d6fe
lea rax, [rsp + 0x38]
mov dword [rsp + 0x28], ebx
mov r9d, 4
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x30]
lea rdx, str.HashDigestLength
call qword [sym.imp.bcrypt.dll_BCryptGetProperty]
test eax, eax
js 0x14015d533
mov r8d, dword [rsp + 0x30]
cmp r8d, 0x14
jg 0x14015d6ed
mov rcx, qword [rdi + 0x10]
lea rdx, [rsp + 0x48]
xor r9d, r9d
call qword [sym.imp.bcrypt.dll_BCryptFinishHash]
test eax, eax
js 0x14015d6f4
mov rax, rbx
mov edx, 0x14
nop dword [rax]
movzx ecx, byte [rsp + rax + 0x48]
xor byte [rsp + rax + 0x60], cl
lea rax, [rax + 1]
sub rdx, 1
jne 0x14015d670
mov rdx, rdi
mov rcx, r13
call fcn.14015f380
mov ebx, eax
test eax, eax
jne 0x14015d70f
inc esi
lea r8d, [rax + 0x14]
cmp esi, 0x3e8
jb 0x14015d5d0
xor eax, eax
lea r9, [rsp + 0x60]
mov r8d, eax
movzx eax, bp
shl ax, 2
lea edx, [rax + rbp]
shl dx, 2
nop
cmp dx, r12w
jae 0x14015d6e0
movzx eax, byte [r9]
inc r8d
movzx ecx, dx
inc r9
inc dx
mov byte [rcx + r14], al
cmp r8d, 0x14
jb 0x14015d6c0
mov rsi, qword [rsp + 0x40]
inc bp
jmp 0x14015d570
mov ebx, 0xfffffffb
jmp 0x14015d70f
mov dword [rdi + 0x20], eax
mov ebx, 0xffffff92
jmp 0x14015d70f
mov ebx, 0xffffff9a
jmp 0x14015d70f
mov ebx, 0xfffffffc
test rdi, rdi
je 0x14015d71f
mov rcx, rdi
call fcn.14015f200
mov rcx, rdi
call fcn.1401b3750
test r13, r13
je 0x14015d734
mov rcx, r13
call fcn.14015f200
mov rcx, r13
call fcn.1401b3750
mov rdi, qword [rsp + 0x40]
mov r13, qword [rsp + 0x88]
test rdi, rdi
je 0x14015d756
mov rcx, rdi
call fcn.14015f200
mov rcx, rdi
call fcn.1401b3750
mov rdi, qword [rsp + 0x90]
mov eax, ebx
jmp 0x14015d767
mov eax, 0xffffff9a
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.140185380
add rsp, 0x98
pop r15
pop r14
pop r12
pop rsi
pop rbp
pop rbx
ret