Function at 0x140307fe0
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
movups xmmword [rsp + 0xf0], xmm6
movups xmmword [rsp + 0x100], xmm7
movups xmmword [rsp + 0x110], xmm8
movups xmmword [rsp + 0x120], xmm9
movups xmmword [rsp + 0x130], xmm10
cmp qword [rsp + 0x1c0], 0
mov rdi, qword [rsp + 0x1b8]
sete al
cmp qword [rsp + 0x1b0], 1
mov r13, rdx
setbe dl
mov qword [rsp + 0x190], rcx
mov rbx, r8
or al, dl
jne 0x140308910
test rdi, rdi
je 0x140308910
mov rax, qword [rsp + 0x1b0]
xor r14d, r14d
lea r12, [rax - 1]
test rax, r12
jne 0x140308913
mov eax, 0x3fffffff
xor edx, edx
div rdi
cmp rax, qword [rsp + 0x1c0]
jb 0x140308955
mov rax, rdi
shl rax, 4
cmp rax, 0x3f
ja 0x1403080b5
mov ecx, edi
mov eax, 1
shl ecx, 4
shl rax, cl
cmp rax, qword [rsp + 0x1b0]
jbe 0x1403089a7
mov rbp, qword [rsp + 0x1c0]
imul rbp, rdi
mov rax, rbp
shl rax, 7
mov qword [rsp + 0x98], rax
cmp rax, 0x7fffffff
ja 0x14030897b
mov rax, qword [rsp + 0x1b0]
xor edx, edx
lea rcx, [rax + 2]
movabs rax, 0x1ffffffffffffff
div rdi
cmp rcx, rax
ja 0x140308a9c
mov rax, rcx
imul rax, rdi
shl rax, 7
add rax, qword [rsp + 0x98]
mov qword [rsp + 0xd0], rax
mov rsi, rax
jb 0x140308aea
cmp qword [rsp + 0x1c8], 0
mov eax, 0x2000000
cmovne rax, qword [rsp + 0x1c8]
mov qword [rsp + 0x1c8], rax
cmp rsi, rax
ja 0x140308ab5
cmp qword [rsp + 0x1d0], 0
mov qword [rsp + 0x1a8], r9
mov r14d, 1
je 0x140308913
lea r14, str.crypto_evp_pbe_scrypt.c
mov rcx, rsi
mov r8d, 0xf0
mov rdx, r14
call fcn.1401f4da0
mov r9, qword [rsp + 0x1a8]
test rax, rax
mov qword [rsp + 0x70], rax
je 0x140308ac2
mov qword [rsp + 0x1a8], r9
call fcn.1401e8ce0
mov rsi, qword [rsp + 0x70]
mov edx, r13d
mov r8, rbx
mov qword [rsp + 0x28], rax
mov r9, qword [rsp + 0x1a8]
mov qword [rsp + 0x38], rsi
mov esi, dword [rsp + 0x98]
mov dword [rsp + 0x20], 1
mov rcx, qword [rsp + 0x190]
mov dword [rsp + 0x30], esi
mov dword [rsp + 0xec], r13d
call fcn.140306ef0
test eax, eax
je 0x1403089b1
mov rcx, qword [rsp + 0x70]
mov rax, r12
mov r13, rdi
mov rdx, rdi
imul rax, rdi
shl r13, 7
shl rdx, 5
mov r12, rdi
mov r10, qword [rsp + 0x98]
mov rbx, rcx
mov qword [rsp + 0x80], rdx
shr rdx, 4
mov qword [rsp + 0xd8], rdx
mov rdx, rcx
movdqu xmm6, xmmword [0x1406d15c0]
mov qword [rsp + 0x78], 0
add rbx, r10
shl rax, 7
mov qword [rsp + 0x88], 0x40
lea r14, [rbx + r13]
lea r11, [r14 + r13]
add rax, r11
mov qword [rsp + 0x48], r11
mov qword [rsp + 0xa8], rax
lea rax, [rbx + r13 - 0x40]
mov qword [rsp + 0x50], rax
lea rax, [rbp + rdi]
mov qword [rsp + 0x60], rax
shl rax, 7
lea r9, [r13 + rax]
lea r15, [rcx + rax]
add rdx, r9
lea r8, [r13 + rax + 0x40]
mov qword [rsp + 0xc0], r9
mov rdi, r15
mov qword [rsp + 0xe0], rdx
lea rdx, [r11 + r13]
mov r15, rcx
mov qword [rsp + 0xb0], rdx
lea rdx, [r13 - 4]
cmp rdx, 8
mov rdx, r10
mov qword [rsp + 0xc8], r8
seta byte [rsp + 0xeb]
neg rdx
sub rax, r13
sub rdx, rcx
sub rax, 4
mov qword [rsp + 0xb8], rdx
mov qword [rsp + 0x68], rax
nop dword [rax]
mov rsi, qword [rsp + 0x80]
mov qword [rsp + 0xa0], r15
test rsi, rsi
je 0x140308aa9
mov rcx, qword [rsp + 0x88]
lea rax, [rcx - 0x40]
cmp rax, qword [rsp + 0xc8]
setge al
cmp rcx, qword [rsp + 0xc0]
setle dl
or al, dl
je 0x140308a46
lea rax, [rsi - 1]
cmp rax, 0xe
jbe 0x140308a46
mov r8, qword [rsp + 0xd8]
xor eax, eax
xor edx, edx
pxor xmm5, xmm5
mov rcx, qword [rsp + 0xe0]
pxor xmm3, xmm3
nop dword [rax]
movdqu xmm0, xmmword [r15 + rax]
movdqu xmm1, xmmword [r15 + rax + 0x10]
movdqa xmm8, xmm6
add rdx, 1
movdqu xmm2, xmmword [r15 + rax + 0x10]
movdqu xmm4, xmmword [r15 + rax + 0x30]
pand xmm1, xmm6
pand xmm0, xmm6
movdqu xmm7, xmmword [r15 + rax + 0x30]
packuswb xmm0, xmm1
movdqu xmm1, xmmword [r15 + rax]
psrlw xmm2, 8
pand xmm4, xmm6
psrlw xmm7, 8
pand xmm8, xmm0
psrlw xmm1, 8
psrlw xmm0, 8
packuswb xmm1, xmm2
movdqu xmm2, xmmword [r15 + rax + 0x20]
pand xmm2, xmm6
packuswb xmm2, xmm4
movdqu xmm4, xmmword [r15 + rax + 0x20]
psrlw xmm4, 8
packuswb xmm4, xmm7
movdqa xmm7, xmm6
pand xmm7, xmm2
psrlw xmm2, 8
packuswb xmm8, xmm7
packuswb xmm0, xmm2
movdqa xmm7, xmm6
movdqa xmm2, xmm6
pand xmm7, xmm4
pand xmm2, xmm1
psrlw xmm1, 8
packuswb xmm2, xmm7
movdqa xmm7, xmm4
movdqa xmm4, xmm8
psrlw xmm7, 8
punpcklbw xmm4, xmm5
packuswb xmm1, xmm7
movdqa xmm7, xmm2
punpckhbw xmm2, xmm5
punpcklbw xmm7, xmm5
psllw xmm2, 8
movdqa xmm9, xmm1
psllw xmm7, 8
punpcklbw xmm9, xmm5
punpckhbw xmm1, xmm5
por xmm7, xmm4
movdqa xmm4, xmm8
punpckhbw xmm4, xmm5
movdqa xmm10, xmm7
punpckhwd xmm7, xmm3
por xmm2, xmm4
movdqa xmm4, xmm0
punpckhbw xmm0, xmm5
punpcklbw xmm4, xmm5
punpcklwd xmm10, xmm3
movdqa xmm8, xmm4
punpckhwd xmm4, 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 0x140308360
mov rsi, qword [rsp + 0x80]
mov rax, qword [rsp + 0xb0]
mov ebp, 1
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x90], rsi
mov rbx, rbp
mov rsi, qword [rsp + 0x1b0]
mov rbp, rax
mov rax, rdi
mov rdi, r13
mov r13, rax
nop dword [rax]
mov rdx, rbp
mov rcx, rbp
mov r8, r12
add rbx, 1
sub rdx, rdi
add rbp, rdi
call fcn.140307ac0
cmp rsi, rbx
ja 0x140308560
mov rbx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x90]
mov rax, r13
mov r8, r12
mov rdx, qword [rsp + 0xa8]
mov r13, rdi
mov rdi, rax
mov rcx, rbx
lea rbp, [rsi*4]
call fcn.140307ac0
mov qword [rsp + 0x58], r13
xor r11d, r11d
mov r13, rsi
mov rsi, qword [rsp + 0x1b0]
mov qword [rsp + 0x90], 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 0x14030865b
add rdx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x68]
shl rdx, 7
sub rax, rdx
cmp rax, 8
seta al
test byte [rsp + 0xeb], al
je 0x1403089e0
lea rax, [r13 - 1]
cmp rax, 2
jbe 0x1403089e0
add rdx, qword [rsp + 0x58]
xor eax, eax
add rdx, qword [rsp + 0x70]
nop dword [rax + 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 0x140308640
mov r8, r14
mov rdx, r15
mov rcx, rbx
add r12, 1
call fcn.140307ac0
cmp rsi, r12
ja 0x1403085d8
mov rsi, r13
mov r12, r14
mov r13, qword [rsp + 0x58]
mov r14, r15
mov r15, qword [rsp + 0x90]
test rsi, rsi
je 0x14030886f
mov rax, qword [rsp + 0xb8]
lea rax, [rax + r15 - 1]
cmp rax, 0x3e
jbe 0x140308a00
lea rax, [rsi - 1]
cmp rax, 0xe
jbe 0x140308a00
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 0x1403086c8
add qword [rsp + 0x78], 1
add r15, r13
mov rax, qword [rsp + 0x78]
add qword [rsp + 0x88], r13
cmp qword [rsp + 0x1c0], rax
ja 0x1403082f0
call fcn.1401e8ce0
mov rdx, qword [rsp + 0x1d8]
mov rsi, qword [rsp + 0x1d0]
mov dword [rsp + 0x20], 1
mov qword [rsp + 0x28], rax
mov r9d, dword [rsp + 0x98]
mov dword [rsp + 0x30], edx
mov r8, qword [rsp + 0x70]
mov qword [rsp + 0x38], rsi
mov edx, dword [rsp + 0xec]
mov rcx, qword [rsp + 0x190]
call fcn.140306ef0
test eax, eax
je 0x1403089b1
mov r14d, 1
mov rdx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0x70]
mov r9d, 0x107
lea r8, str.crypto_evp_pbe_scrypt.c
call fcn.1401f5190
jmp 0x140308913
xor r14d, r14d
movups xmm6, xmmword [rsp + 0xf0]
mov eax, r14d
movups xmm7, xmmword [rsp + 0x100]
movups xmm8, xmmword [rsp + 0x110]
movups xmm9, xmmword [rsp + 0x120]
movups 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.1401d1f90
jmp 0x140308913
mov dword [rsp + 0x20], 0xcb
lea r9, str.crypto_evp_pbe_scrypt.c
mov r8d, 0xac
mov edx, 0xb5
xor r14d, r14d
mov ecx, 6
call fcn.1401d1f90
jmp 0x140308913
mov dword [rsp + 0x20], 0xb9
jmp 0x14030895d
mov dword [rsp + 0x20], 0x105
lea r9, str.crypto_evp_pbe_scrypt.c
mov r8d, 0xb5
xor r14d, r14d
mov edx, 0xb5
mov ecx, 6
call fcn.1401d1f90
jmp 0x1403088ed
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 0x1403089e8
jmp 0x14030865b
mov rax, qword [rsp + 0xa0]
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 0x140308a18
mov rbx, rsi
jmp 0x14030886f
mov r8, qword [rsp + 0x48]
mov r9, qword [rsp + 0x80]
xor eax, eax
nop dword [rax]
movzx edx, byte [r15 + rax*4]
mov dword [r8 + rax*4], edx
movzx ecx, byte [r15 + rax*4 + 1]
shl ecx, 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 0x140308a58
jmp 0x140308523
mov dword [rsp + 0x20], 0xd5
jmp 0x140308983
mov rax, qword [rsp + 0x48]
xor esi, esi
jmp 0x140308533
mov dword [rsp + 0x20], 0xe8
jmp 0x140308983
mov dword [rsp + 0x20], 0xf2
mov r9, r14
mov r8d, 0x41
xor r14d, r14d
mov edx, 0xb5
mov ecx, 6
call fcn.1401d1f90
jmp 0x140308913
mov dword [rsp + 0x20], 0xdc
jmp 0x140308983