Function at 0x18012d6a0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x50]
sub rsp, 0x150
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov qword [rsp + 0x1a8], rbx
mov rax, qword [0x18036d060]
xor rax, rsp
mov qword [rbp + 0x48], rax
mov r15d, r9d
mov rsi, r8
mov qword [rsp + 0x58], r8
mov rbx, rdx
mov r14, rcx
mov qword [rsp + 0x50], rcx
mov rdi, qword [rbp + 0xb8]
mov qword [rsp + 0x40], rdi
mov rdx, qword [rbp + 0xc0]
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x30], xmm0
mov qword [rbp + 0x40], rax
lea r8, str.Pbkdf2
lea rcx, [rbp + 0x30]
call fcn.180105b50
nop
mov rcx, rdi
call fcn.1800bc850
mov rcx, rbx
call fcn.1800ee9f0
mov r13d, eax
mov ecx, eax
call fcn.1800eec90
mov ecx, eax
mov dword [rsp + 0x38], eax
mov r9d, dword [rbp + 0xb0]
lea eax, [r9 - 1]
add eax, ecx
cdq
idiv ecx
mov r8d, eax
mov dword [rsp + 0x34], eax
mov eax, r9d
cdq
idiv ecx
mov eax, edx
mov dword [rsp + 0x3c], edx
mov r12d, 1
cmp r8d, r12d
jl 0x18012da8d
mov rcx, rsi
call fcn.1800be430
mov edi, eax
mov rcx, rsi
call fcn.1800bdfb0
mov rbx, rax
mov rcx, r14
call fcn.1800be430
mov esi, eax
mov dword [rsp + 0x30], eax
mov rcx, r14
call fcn.1800bdfb0
mov r14, rax
mov qword [rsp + 0x48], rax
mov ecx, r12d
shr ecx, 0x18
mov byte [rsp + 0x68], cl
mov ecx, r12d
shr ecx, 0x10
mov byte [rsp + 0x69], cl
mov ecx, r12d
shr ecx, 8
mov byte [rsp + 0x6a], cl
mov byte [rsp + 0x6b], r12b
xorps xmm0, xmm0
movups xmmword [rbp], xmm0
movups xmmword [rbp + 0x10], xmm0
movups xmmword [rbp + 0x20], xmm0
lea rcx, [rbp]
call fcn.1800ba7a0
nop
mov r8d, edi
mov rdx, rbx
lea rcx, [rbp]
call fcn.1800baf90
mov r8d, 4
lea rdx, [rsp + 0x68]
lea rcx, [rbp]
call fcn.1800baf90
xorps xmm0, xmm0
movups xmmword [rbp - 0x30], xmm0
movups xmmword [rbp - 0x20], xmm0
movups xmmword [rbp - 0x10], xmm0
lea rcx, [rbp - 0x30]
call fcn.1800ba7a0
nop
xorps xmm0, xmm0
movups xmmword [rbp - 0x60], xmm0
movups xmmword [rbp - 0x50], xmm0
movups xmmword [rbp - 0x40], xmm0
lea rcx, [rbp - 0x60]
call fcn.1800ba7a0
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x70], xmm0
movups xmmword [rbp - 0x80], xmm0
movups xmmword [rbp - 0x70], xmm0
lea rcx, [rsp + 0x70]
call fcn.1800ba7a0
nop
lea rcx, [rbp]
call fcn.1800be430
mov ebx, eax
lea rcx, [rbp]
call fcn.1800bdfb0
mov rcx, rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r13d
mov r9d, esi
mov r8, r14
mov edx, ebx
call fcn.18019db20
lea rdx, [rsp + 0x70]
lea rcx, [rbp - 0x60]
call fcn.1800baf20
lea rcx, [rsp + 0x70]
call fcn.1800be430
mov esi, eax
cmp eax, dword [rbp + 0xb0]
cmova esi, dword [rbp + 0xb0]
lea rcx, [rsp + 0x70]
call fcn.1800bdfb0
mov rdi, rax
test rax, rax
je 0x18012da40
mov r14d, 1
cmp r15d, r14d
jbe 0x18012da0c
nop
lea rcx, [rbp - 0x60]
call fcn.1800be430
mov ebx, eax
lea rcx, [rbp - 0x60]
call fcn.1800bdfb0
mov rcx, rax
lea rax, [rbp - 0x30]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r13d
mov r9d, dword [rsp + 0x30]
mov r8, qword [rsp + 0x48]
mov edx, ebx
call fcn.18019db20
lea rcx, [rbp - 0x30]
call fcn.1800bdfb0
mov r8, rax
test rax, rax
je 0x18012da40
xor r9d, r9d
test esi, esi
je 0x18012d9e1
cmp esi, 0x40
jb 0x18012d9b6
lea ecx, [rsi - 1]
mov edx, ecx
add rcx, rdi
add rax, rdx
cmp rdi, rax
ja 0x18012d944
cmp rcx, r8
jae 0x18012d9b6
mov r10d, esi
and r10d, 0xffffffc0
mov edx, 0x20
movdqu xmm1, xmmword [r9 + r8]
movdqu xmm0, xmmword [r9 + rdi]
pxor xmm1, xmm0
movdqu xmmword [r9 + rdi], xmm1
lea eax, [rdx - 0x10]
movdqu xmm1, xmmword [rax + r8]
movdqu xmm0, xmmword [rax + rdi]
pxor xmm1, xmm0
movdqu xmmword [rax + rdi], xmm1
mov eax, edx
movdqu xmm1, xmmword [rax + r8]
movdqu xmm0, xmmword [rax + rdi]
pxor xmm1, xmm0
movdqu xmmword [rax + rdi], xmm1
lea eax, [rdx + 0x10]
movdqu xmm1, xmmword [rax + r8]
movdqu xmm0, xmmword [rax + rdi]
pxor xmm1, xmm0
movdqu xmmword [rax + rdi], xmm1
add r9d, 0x40
add edx, 0x40
cmp r9d, r10d
jb 0x18012d950
cmp r9d, esi
jae 0x18012d9e1
mov eax, r9d
add rax, rdi
sub r8, rdi
mov edx, esi
sub edx, r9d
nop dword [rax]
movzx ecx, byte [r8 + rax]
xor byte [rax], cl
lea rax, [rax + 1]
sub rdx, 1
jne 0x18012d9d0
lea rcx, [rbp - 0x60]
call fcn.1800bc850
lea rdx, [rbp - 0x30]
lea rcx, [rbp - 0x60]
call fcn.1800baf20
lea rcx, [rbp - 0x30]
call fcn.1800bc850
inc r14d
cmp r14d, r15d
jb 0x18012d8d0
lea rdx, [rsp + 0x70]
mov rdi, qword [rsp + 0x40]
mov rcx, rdi
call fcn.1800baf20
nop
lea rcx, [rsp + 0x70]
call fcn.1800ba970
nop
lea rcx, [rbp - 0x60]
call fcn.1800ba970
nop
lea rcx, [rbp - 0x30]
call fcn.1800ba970
nop
jmp 0x18012da64
lea rcx, [rsp + 0x70]
call fcn.1800ba970
nop
lea rcx, [rbp - 0x60]
call fcn.1800ba970
nop
lea rcx, [rbp - 0x30]
call fcn.1800ba970
nop
mov rdi, qword [rsp + 0x40]
lea rcx, [rbp]
call fcn.1800ba970
inc r12d
cmp r12d, dword [rsp + 0x34]
mov r14, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
jle 0x18012d770
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x3c]
test eax, eax
je 0x18012da9e
sub ecx, eax
mov edx, ecx
mov rcx, rdi
call fcn.1800bf4f0
nop
lea rcx, [rbp + 0x30]
call fcn.180105c80
mov al, 1
mov rcx, qword [rbp + 0x48]
xor rcx, rsp
call fcn.18007b140
mov rbx, qword [rsp + 0x1a8]
add rsp, 0x150
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret