Function at 0x1401649e0
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 [0x14026be10]
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]
xor eax, eax
mov qword [rbp + 0x30], rax
mov qword [rbp + 0x38], rax
mov qword [rbp + 0x40], rax
lea r8, str.Pbkdf2
lea rcx, [rbp + 0x30]
call fcn.140071270
nop
mov rcx, rdi
call fcn.140035e00
mov rcx, rbx
call fcn.1400501e0
mov r13d, eax
mov ecx, eax
call fcn.140050370
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 0x140164dd7
mov rcx, rsi
call fcn.1400372d0
mov edi, eax
mov rcx, rsi
call fcn.140036f60
mov rbx, rax
mov rcx, r14
call fcn.1400372d0
mov esi, eax
mov dword [rsp + 0x30], eax
mov rcx, r14
call fcn.140036f60
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
xor eax, eax
mov qword [rbp], rax
mov qword [rbp + 8], rax
mov qword [rbp + 0x10], rax
mov qword [rbp + 0x18], rax
mov qword [rbp + 0x20], rax
mov qword [rbp + 0x28], rax
lea rcx, [rbp]
call fcn.140034320
nop
mov r8d, edi
mov rdx, rbx
lea rcx, [rbp]
call fcn.140034960
mov r8d, 4
lea rdx, [rsp + 0x68]
lea rcx, [rbp]
call fcn.140034960
xor eax, eax
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x18], rax
mov qword [rbp - 0x10], rax
mov qword [rbp - 8], rax
lea rcx, [rbp - 0x30]
call fcn.140034320
nop
xor eax, eax
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x58], rax
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rax
lea rcx, [rbp - 0x60]
call fcn.140034320
nop
xor eax, eax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x70], rax
mov qword [rbp - 0x68], rax
lea rcx, [rsp + 0x70]
call fcn.140034320
nop
lea rcx, [rbp]
call fcn.1400372d0
mov ebx, eax
lea rcx, [rbp]
call fcn.140036f60
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.1400cd710
lea rdx, [rsp + 0x70]
lea rcx, [rbp - 0x60]
call fcn.1400348f0
lea rcx, [rsp + 0x70]
call fcn.1400372d0
mov esi, eax
cmp eax, dword [rbp + 0xb0]
cmova esi, dword [rbp + 0xb0]
lea rcx, [rsp + 0x70]
call fcn.140036f60
mov rdi, rax
test rax, rax
jne 0x140164c5b
lea rcx, [rsp + 0x70]
call fcn.1400344a0
nop
lea rcx, [rbp - 0x60]
call fcn.1400344a0
nop
lea rcx, [rbp - 0x30]
call fcn.1400344a0
nop
lea rcx, [rbp]
call fcn.1400344a0
mov rdi, qword [rsp + 0x40]
jmp 0x140164db7
mov r14d, 1
cmp r15d, r14d
jbe 0x140164d7c
nop word [rax + rax]
lea rcx, [rbp - 0x60]
call fcn.1400372d0
mov ebx, eax
lea rcx, [rbp - 0x60]
call fcn.140036f60
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.1400cd710
lea rcx, [rbp - 0x30]
call fcn.140036f60
mov r9, rax
test rax, rax
je 0x140164c29
xor r8d, r8d
test esi, esi
je 0x140164d51
cmp esi, 0x20
jb 0x140164d27
lea ecx, [rsi - 1]
mov edx, ecx
add rcx, rdi
add rax, rdx
cmp rdi, rax
ja 0x140164ce0
cmp rcx, r9
jae 0x140164d27
mov edx, esi
and edx, 0xffffffe0
nop word [rax + rax]
movdqu xmm1, xmmword [r8 + r9]
movdqu xmm0, xmmword [r8 + rdi]
pxor xmm1, xmm0
movdqu xmmword [r8 + rdi], xmm1
lea eax, [r8 + 0x10]
movdqu xmm1, xmmword [rax + r9]
movdqu xmm0, xmmword [rax + rdi]
pxor xmm1, xmm0
movdqu xmmword [rax + rdi], xmm1
add r8d, 0x20
cmp r8d, edx
jb 0x140164cf0
cmp r8d, esi
jae 0x140164d51
mov eax, r8d
add rax, rdi
sub r9, rdi
mov edx, esi
sub edx, r8d
nop word [rax + rax]
movzx ecx, byte [r9 + rax]
xor byte [rax], cl
lea rax, [rax + 1]
sub rdx, 1
jne 0x140164d40
lea rcx, [rbp - 0x60]
call fcn.140035e00
lea rdx, [rbp - 0x30]
lea rcx, [rbp - 0x60]
call fcn.1400348f0
lea rcx, [rbp - 0x30]
call fcn.140035e00
inc r14d
cmp r14d, r15d
jb 0x140164c70
lea rdx, [rsp + 0x70]
mov rdi, qword [rsp + 0x40]
mov rcx, rdi
call fcn.1400348f0
nop
lea rcx, [rsp + 0x70]
call fcn.1400344a0
nop
lea rcx, [rbp - 0x60]
call fcn.1400344a0
nop
lea rcx, [rbp - 0x30]
call fcn.1400344a0
nop
lea rcx, [rbp]
call fcn.1400344a0
inc r12d
cmp r12d, dword [rsp + 0x34]
mov r14, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
jle 0x140164ab1
mov ecx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x3c]
test eax, eax
je 0x140164de8
sub ecx, eax
mov edx, ecx
mov rcx, rdi
call fcn.140038b60
nop
lea rcx, [rbp + 0x30]
call fcn.140071380
mov al, 1
mov rcx, qword [rbp + 0x48]
xor rcx, rsp
call fcn.140168e10
mov rbx, qword [rsp + 0x1a8]
add rsp, 0x150
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret