Function at 0x68fff0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x148
movaps xmmword [rsp + 0xf0], xmm6
movaps xmmword [rsp + 0x100], xmm7
movaps xmmword [rsp + 0x110], xmm8
movaps xmmword [rsp + 0x120], xmm9
movaps xmmword [rsp + 0x130], xmm10
cmp qword [rsp + 0x1c0], 0
mov rdi, qword [rsp + 0x1b8]
mov qword [rsp + 0x198], rdx
sete dl
mov rbx, r8
cmp qword [rsp + 0x1b0], 1
setbe al
mov qword [rsp + 0x190], rcx
or dl, al
jne 0x690930
test rdi, rdi
je 0x690930
mov rax, qword [rsp + 0x1b0]
xor r13d, r13d
lea r12, [rax - 1]
test rax, r12
jne 0x690933
mov eax, 0x3fffffff
xor edx, edx
div rdi
cmp rax, qword [rsp + 0x1c0]
jb 0x690975
mov rax, rdi
shl rax, 4
cmp rax, 0x3f
ja 0x6900ca
mov ecx, edi
mov eax, 1
shl ecx, 4
shl rax, cl
cmp rax, qword [rsp + 0x1b0]
jbe 0x6909c7
mov rbp, qword [rsp + 0x1c0]
imul rbp, rdi
mov rax, rbp
shl rax, 7
mov qword [rsp + 0x90], rax
cmp rax, 0x7fffffff
ja 0x69099b
mov rax, qword [rsp + 0x1b0]
xor edx, edx
lea rcx, [rax + 2]
movabs rax, 0x1ffffffffffffff
div rdi
cmp rcx, rax
ja 0x690abc
imul rcx, rdi
shl rcx, 7
mov rax, rcx
not rax
cmp rax, qword [rsp + 0x90]
jb 0x690ad5
cmp qword [rsp + 0x1c8], 0
mov eax, 0x2000000
cmovne rax, qword [rsp + 0x1c8]
add rcx, qword [rsp + 0x90]
mov qword [rsp + 0x1c8], rax
mov qword [rsp + 0xd8], rcx
cmp rcx, rax
ja 0x690ae2
cmp qword [rsp + 0x1d0], 0
mov qword [rsp + 0x1a8], r9
mov r13d, 1
je 0x690933
mov r8d, 0xf0
lea rdx, str.crypto_evp_pbe_scrypt.c
call fcn.00580440
mov r9, qword [rsp + 0x1a8]
test rax, rax
mov qword [rsp + 0x78], rax
je 0x690aef
mov qword [rsp + 0x1a8], r9
call fcn.00574880
mov rsi, qword [rsp + 0x78]
mov r8, rbx
mov dword [rsp + 0x20], 1
mov qword [rsp + 0x28], rax
mov r9, qword [rsp + 0x1a8]
mov qword [rsp + 0x38], rsi
mov esi, dword [rsp + 0x90]
mov edx, dword [rsp + 0x198]
mov rcx, qword [rsp + 0x190]
mov dword [rsp + 0x30], esi
call fcn.0068eda0
test eax, eax
je 0x6909d1
mov rsi, qword [rsp + 0x78]
mov rax, r12
mov r13, rdi
lea rdx, [rbp + rdi]
imul rax, rdi
shl r13, 7
mov qword [rsp + 0x68], rdx
mov rcx, rdi
mov rbx, qword [rsp + 0x90]
shl rdx, 7
shl rcx, 5
mov qword [rsp + 0x80], 0
lea r10, [r13 + rdx]
mov qword [rsp + 0x88], rcx
mov r12, rdi
shr rcx, 4
add rbx, rsi
shl rax, 7
lea r15, [rsi + rdx]
lea r9, [r13 + rdx + 0x40]
lea r14, [rbx + r13]
mov qword [rsp + 0xc8], r10
movdqa xmm6, xmmword [0x0093dc80]
mov rdi, r15
lea r11, [r14 + r13]
mov r15, rsi
mov qword [rsp + 0xd0], r9
add rax, r11
mov qword [rsp + 0x48], r11
mov qword [rsp + 0xb0], rax
lea rax, [rbx + r13 - 0x40]
mov qword [rsp + 0x50], rax
mov rax, rsi
add rax, r10
mov qword [rsp + 0xe0], rcx
mov qword [rsp + 0xe8], rax
lea rax, [r11 + r13]
mov qword [rsp + 0xb8], rax
lea rax, [r13 - 4]
mov qword [rsp + 0x98], 0x40
cmp rax, 8
mov rax, rbp
seta byte [rsp + 0x67]
neg rax
sub rdx, r13
shl rax, 7
sub rax, rsi
mov qword [rsp + 0xc0], rax
lea rax, [rdx - 4]
mov qword [rsp + 0x70], rax
mov rsi, qword [rsp + 0x88]
mov qword [rsp + 0xa8], r15
test rsi, rsi
je 0x690ac9
mov rcx, qword [rsp + 0x98]
lea rax, [rcx - 0x40]
cmp rax, qword [rsp + 0xd0]
setge dl
cmp rcx, qword [rsp + 0xc8]
setle al
or dl, al
je 0x690a66
lea rax, [rsi - 1]
cmp rax, 0xe
jbe 0x690a66
mov r8, qword [rsp + 0xe0]
xor eax, eax
xor edx, edx
pxor xmm5, xmm5
mov rcx, qword [rsp + 0xe8]
pxor xmm3, xmm3
nop dword [rax]
movdqu xmm0, xmmword [r15 + rax]
movdqu xmm1, xmmword [r15 + rax + 0x10]
movdqa xmm9, xmm6
movdqa xmm8, xmm6
movdqu xmm2, xmmword [r15 + rax + 0x10]
movdqu xmm7, xmmword [r15 + rax + 0x20]
add rdx, 1
pand xmm1, xmm6
pand xmm0, xmm6
movdqu xmm4, xmmword [r15 + rax + 0x20]
packuswb xmm0, xmm1
movdqu xmm1, xmmword [r15 + rax]
psrlw xmm2, 8
pand xmm7, xmm6
pand xmm9, xmm0
psrlw xmm4, 8
psrlw xmm1, 8
psrlw xmm0, 8
packuswb xmm1, xmm2
movdqu xmm2, xmmword [r15 + rax + 0x30]
pand xmm2, xmm6
packuswb xmm7, xmm2
movdqu xmm2, xmmword [r15 + rax + 0x30]
pand xmm8, xmm7
psrlw xmm7, 8
psrlw xmm2, 8
packuswb xmm9, xmm8
movdqa xmm8, xmm6
packuswb xmm4, xmm2
movdqa xmm2, xmm6
packuswb xmm0, xmm7
pand xmm2, xmm4
pand xmm8, xmm1
movdqa xmm7, xmm4
packuswb xmm8, xmm2
psrlw xmm7, 8
movdqa xmm4, xmm9
psrlw xmm1, 8
punpcklbw xmm4, xmm5
movdqa xmm2, xmm8
packuswb xmm1, xmm7
movdqa xmm7, xmm8
punpckhbw xmm2, xmm5
punpcklbw xmm7, xmm5
psllw xmm2, 8
psllw xmm7, 8
por xmm7, xmm4
movdqa xmm4, xmm9
movdqa xmm9, xmm1
punpckhbw xmm4, xmm5
punpcklbw xmm9, xmm5
movdqa xmm10, xmm7
por xmm2, xmm4
movdqa xmm4, xmm0
punpckhwd xmm7, xmm3
punpcklbw xmm4, xmm5
punpckhbw xmm0, xmm5
punpckhbw xmm1, xmm5
movdqa xmm8, xmm4
punpckhwd xmm4, xmm3
punpcklwd xmm10, xmm3
pslld xmm4, 0x10
punpcklwd xmm8, xmm3
por xmm4, xmm7
pslld xmm8, 0x10
movdqa xmm7, xmm9
punpckhwd xmm7, xmm3
por xmm8, xmm10
movdqa xmm10, xmm9
pslld xmm7, 0x18
punpcklwd xmm10, xmm3
por xmm4, xmm7
pslld xmm10, 0x18
movdqa xmm7, xmm2
movups xmmword [rcx + rax + 0x10], xmm4
movdqa xmm4, xmm0
punpcklwd xmm7, xmm3
punpckhwd xmm0, xmm3
punpcklwd xmm4, xmm3
pslld xmm0, 0x10
punpckhwd xmm2, xmm3
pslld xmm4, 0x10
por xmm0, xmm2
por xmm8, xmm10
por xmm4, xmm7
movdqa xmm7, xmm1
punpckhwd xmm1, xmm3
movups xmmword [rcx + rax], xmm8
punpcklwd xmm7, xmm3
pslld xmm1, 0x18
pslld xmm7, 0x18
por xmm0, xmm1
por xmm4, xmm7
movups xmmword [rcx + rax + 0x30], xmm0
movups xmmword [rcx + rax + 0x20], xmm4
add rax, 0x40
cmp rdx, r8
jne 0x690370
mov rsi, qword [rsp + 0x88]
mov rax, qword [rsp + 0xb8]
mov ebp, 1
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0xa0], rsi
mov rbx, rbp
mov rsi, qword [rsp + 0x1b0]
mov rbp, rax
mov rax, rdi
mov rdi, r13
mov r13, rax
nop word [rax + rax]
mov rdx, rbp
mov rcx, rbp
mov r8, r12
add rbx, 1
sub rdx, rdi
add rbp, rdi
call fcn.0068f980
cmp rsi, rbx
ja 0x690580
mov rbx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0xa0]
mov rax, r13
mov r8, r12
mov rdx, qword [rsp + 0xb0]
mov r13, rdi
mov rdi, rax
mov rcx, rbx
lea rbp, [rsi*4]
call fcn.0068f980
mov qword [rsp + 0x58], r13
xor r11d, r11d
mov r13, rsi
mov rsi, qword [rsp + 0x1b0]
mov qword [rsp + 0xa0], r15
mov r15, r14
mov r14, r12
mov r12, r11
nop word [rax + rax]
mov rax, qword [rsp + 0x50]
xor edx, edx
mov eax, dword [rax]
div rsi
imul rdx, r14
mov rcx, rdx
shl rcx, 7
add rcx, qword [rsp + 0x48]
test r13, r13
je 0x690673
add rdx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x70]
shl rdx, 7
sub rax, rdx
cmp rax, 8
seta al
test byte [rsp + 0x67], al
je 0x690a00
lea rax, [r13 - 1]
cmp rax, 2
jbe 0x690a00
add rdx, qword [rsp + 0x58]
xor eax, eax
add rdx, qword [rsp + 0x78]
nop dword [rax]
movdqu xmm0, xmmword [rbx + rax]
movdqu xmm5, xmmword [rdx + rax]
pxor xmm0, xmm5
movups xmmword [rdi + rax], xmm0
add rax, 0x10
cmp rax, rbp
jne 0x690658
mov r8, r14
mov rdx, r15
mov rcx, rbx
add r12, 1
call fcn.0068f980
cmp rsi, r12
ja 0x6905f8
mov rsi, r13
mov r12, r14
mov r13, qword [rsp + 0x58]
mov r14, r15
mov r15, qword [rsp + 0xa0]
test rsi, rsi
je 0x690887
mov rax, qword [rsp + 0xc0]
lea rax, [r15 + rax - 1]
cmp rax, 0x3e
jbe 0x690a20
lea rax, [rsi - 1]
cmp rax, 0xe
jbe 0x690a20
lea rcx, [rbx + rsi*4]
mov rdx, r15
mov rax, rbx
nop dword [rax]
movdqu xmm0, xmmword [rax]
movdqu xmm8, xmmword [rax + 0x10]
add rax, 0x40
add rdx, 0x40
movdqu xmm1, xmmword [rax - 0x20]
movdqu xmm7, xmmword [rax - 0x10]
movdqa xmm2, xmm0
movdqa xmm3, xmm0
movdqa xmm9, xmm8
punpcklwd xmm2, xmm8
punpckhwd xmm3, xmm8
movdqa xmm10, xmm7
psrld xmm9, 0x10
psrld xmm10, 0x10
movdqa xmm4, xmm2
punpckhwd xmm4, xmm3
psrld xmm8, 0x18
punpcklwd xmm2, xmm3
movdqa xmm3, xmm1
punpcklwd xmm2, xmm4
movdqa xmm4, xmm1
punpcklwd xmm3, xmm7
punpckhwd xmm4, xmm7
movdqa xmm5, xmm3
psrld xmm7, 0x18
punpcklwd xmm3, xmm4
punpckhwd xmm5, xmm4
movdqa xmm4, xmm6
punpcklwd xmm3, xmm5
movdqa xmm5, xmm6
pand xmm4, xmm3
psrlw xmm3, 8
pand xmm5, xmm2
packuswb xmm5, xmm4
psrlw xmm2, 8
movdqa xmm4, xmm0
pand xmm3, xmm6
psrld xmm4, 0x10
pand xmm2, xmm6
packuswb xmm2, xmm3
psrld xmm0, 0x18
movdqa xmm3, xmm4
punpcklwd xmm4, xmm9
punpckhwd xmm3, xmm9
movdqa xmm9, xmm4
punpcklwd xmm4, xmm3
punpckhwd xmm9, xmm3
movdqa xmm3, xmm1
psrld xmm3, 0x10
psrld xmm1, 0x18
punpcklwd xmm4, xmm9
movdqa xmm9, xmm3
punpcklwd xmm3, xmm10
pand xmm4, xmm6
punpckhwd xmm9, xmm10
movdqa xmm10, xmm3
punpckhwd xmm10, xmm9
punpcklwd xmm3, xmm9
punpcklwd xmm3, xmm10
pand xmm3, xmm6
packuswb xmm4, xmm3
movdqa xmm3, xmm0
punpcklwd xmm0, xmm8
punpckhwd xmm3, xmm8
movdqa xmm8, xmm0
punpckhwd xmm8, xmm3
punpcklwd xmm0, xmm3
movdqa xmm3, xmm1
punpcklwd xmm1, xmm7
punpckhwd xmm3, xmm7
punpcklwd xmm0, xmm8
movdqa xmm7, xmm1
punpcklwd xmm1, xmm3
pand xmm0, xmm6
punpckhwd xmm7, xmm3
movdqa xmm3, xmm2
punpcklwd xmm1, xmm7
pand xmm1, xmm6
packuswb xmm0, xmm1
movdqa xmm1, xmm5
punpckhbw xmm5, xmm4
punpcklbw xmm1, xmm4
punpcklbw xmm3, xmm0
punpckhbw xmm2, xmm0
movdqa xmm0, xmm1
punpckhbw xmm1, xmm3
punpcklbw xmm0, xmm3
movups xmmword [rdx - 0x30], xmm1
movups xmmword [rdx - 0x40], xmm0
movdqa xmm0, xmm5
punpckhbw xmm5, xmm2
punpcklbw xmm0, xmm2
movups xmmword [rdx - 0x10], xmm5
movups xmmword [rdx - 0x20], xmm0
cmp rax, rcx
jne 0x6906e0
add qword [rsp + 0x80], 1
add r15, r13
mov rax, qword [rsp + 0x80]
add qword [rsp + 0x98], r13
cmp qword [rsp + 0x1c0], rax
ja 0x690300
call fcn.00574880
mov rdx, qword [rsp + 0x1d8]
mov rsi, qword [rsp + 0x1d0]
mov dword [rsp + 0x20], 1
mov qword [rsp + 0x28], rax
mov r9d, dword [rsp + 0x90]
mov dword [rsp + 0x30], edx
mov r8, qword [rsp + 0x78]
mov qword [rsp + 0x38], rsi
mov edx, dword [rsp + 0x198]
mov rcx, qword [rsp + 0x190]
call fcn.0068eda0
test eax, eax
je 0x6909d1
mov r13d, 1
mov rdx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x78]
mov r9d, 0x107
lea r8, str.crypto_evp_pbe_scrypt.c
call fcn.00580830
jmp 0x690933
xor r13d, r13d
movaps xmm6, xmmword [rsp + 0xf0]
mov eax, r13d
movaps xmm7, xmmword [rsp + 0x100]
movaps xmm8, xmmword [rsp + 0x110]
movaps xmm9, xmmword [rsp + 0x120]
movaps xmm10, xmmword [rsp + 0x130]
add rsp, 0x148
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov dword [rsp + 0x20], 0xae
mov r8d, 0xac
mov edx, 0xb5
mov ecx, 6
lea r9, str.crypto_evp_pbe_scrypt.c
call fcn.0055dd20
jmp 0x690933
mov dword [rsp + 0x20], 0xcb
lea r9, str.crypto_evp_pbe_scrypt.c
mov r8d, 0xac
mov edx, 0xb5
xor r13d, r13d
mov ecx, 6
call fcn.0055dd20
jmp 0x690933
mov dword [rsp + 0x20], 0xb9
jmp 0x69097d
mov dword [rsp + 0x20], 0x105
lea r9, str.crypto_evp_pbe_scrypt.c
mov r8d, 0xb5
xor r13d, r13d
mov edx, 0xb5
mov ecx, 6
call fcn.0055dd20
jmp 0x69090b
xor eax, eax
nop word [rax + rax]
mov edx, dword [rbx + rax*4]
xor edx, dword [rcx + rax*4]
mov dword [r15 + rax*4], edx
add rax, 1
cmp r13, rax
jne 0x690a08
jmp 0x690673
mov rax, qword [rsp + 0xa8]
lea r11, [r15 + rsi*4]
mov rdx, rbx
mov rsi, rbx
nop word [rax + rax]
mov ecx, dword [rdx]
add rax, 4
add rdx, 4
mov byte [rax - 4], cl
mov r8d, ecx
mov byte [rax - 3], ch
shr r8d, 0x10
shr ecx, 0x18
mov byte [rax - 2], r8b
mov byte [rax - 1], cl
cmp rax, r11
jne 0x690a38
mov rbx, rsi
jmp 0x690887
mov r8, qword [rsp + 0x48]
mov r9, qword [rsp + 0x88]
xor eax, eax
nop dword [rax]
movzx ecx, byte [r15 + rax*4]
mov dword [r8 + rax*4], ecx
movzx edx, byte [r15 + rax*4 + 1]
shl edx, 8
or ecx, edx
mov dword [r8 + rax*4], ecx
movzx edx, byte [r15 + rax*4 + 2]
shl edx, 0x10
or edx, ecx
mov dword [r8 + rax*4], edx
movzx ecx, byte [r15 + rax*4 + 3]
shl ecx, 0x18
or edx, ecx
mov dword [r8 + rax*4], edx
add rax, 1
cmp r9, rax
jne 0x690a78
jmp 0x69053e
mov dword [rsp + 0x20], 0xd5
jmp 0x6909a3
mov rax, qword [rsp + 0x48]
xor esi, esi
jmp 0x69054e
mov dword [rsp + 0x20], 0xdc
jmp 0x6909a3
mov dword [rsp + 0x20], 0xe8
jmp 0x6909a3
mov dword [rsp + 0x20], 0xf2
lea r9, str.crypto_evp_pbe_scrypt.c
mov r8d, 0x41
xor r13d, r13d
mov edx, 0xb5
mov ecx, 6
call fcn.0055dd20
jmp 0x690933