Function at 0x484450
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x188
movaps xmmword [rsp + 0x130], xmm6
movaps xmmword [rsp + 0x140], xmm7
movaps xmmword [rsp + 0x150], xmm8
movaps xmmword [rsp + 0x160], xmm9
movaps xmmword [rsp + 0x170], xmm10
mov qword [rsp + 0x1d8], rdx
mov r14, rcx
mov r12, r9
mov qword [rsp + 0x1e0], r8
call sym.ossl_prov_is_running
test eax, eax
jne 0x4844f0
xor eax, eax
movaps xmm6, xmmword [rsp + 0x130]
movaps xmm7, xmmword [rsp + 0x140]
movaps xmm8, xmmword [rsp + 0x150]
movaps xmm9, xmmword [rsp + 0x160]
movaps xmm10, xmmword [rsp + 0x170]
add rsp, 0x188
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, r12
mov rcx, r14
call sym.kdf_scrypt_set_ctx_params
test eax, eax
je 0x4844ad
mov rax, qword [r14 + 0x10]
mov qword [rsp + 0x88], rax
test rax, rax
je 0x484f10
mov rbx, qword [r14 + 0x20]
test rbx, rbx
je 0x484f44
mov rax, qword [r14 + 0x50]
mov qword [rsp + 0x98], rax
test rax, rax
je 0x4845e8
mov rdi, qword [r14 + 0x38]
mov rcx, qword [r14 + 0x40]
mov rsi, qword [r14 + 0x30]
test rdi, rdi
mov qword [rsp + 0x90], rcx
sete dl
test rcx, rcx
sete al
or dl, al
jne 0x4844ad
cmp rsi, 1
jbe 0x4844ad
lea rbp, [rsi - 1]
test rsi, rbp
jne 0x4844ad
mov eax, 0x3fffffff
xor edx, edx
div rdi
cmp rcx, rax
ja 0x484f7a
mov rax, rdi
shl rax, 4
cmp rax, 0x3f
ja 0x48462c
mov ecx, edi
mov eax, 1
shl ecx, 4
shl rax, cl
cmp rsi, rax
jb 0x48462c
call sym.ERR_new
lea r8, str.scrypt_alg
mov edx, 0x1dd
lea rcx, str..._openssl_3.1.1_providers_implementations_kdfs_scrypt.c
call sym.ERR_set_debug
xor r8d, r8d
mov edx, 0xac
mov ecx, 6
call sym.ERR_set_error
xor eax, eax
jmp 0x4844af
xor ecx, ecx
call sym.EVP_MD_free
mov r8, qword [r14 + 8]
mov rcx, qword [r14]
lea rdx, [0x00780fc9]
call sym.EVP_MD_fetch
mov qword [rsp + 0x98], rax
mov qword [r14 + 0x50], rax
test rax, rax
je 0x485086
mov rax, qword [r14 + 0x10]
mov rbx, qword [r14 + 0x20]
mov qword [rsp + 0x88], rax
jmp 0x484536
mov r12, qword [rsp + 0x90]
imul r12, rdi
mov rax, r12
shl rax, 7
mov qword [rsp + 0xc8], rax
cmp rax, 0x7fffffff
ja 0x484ed0
movabs rax, 0x1ffffffffffffff
xor edx, edx
lea rcx, [rsi + 2]
div rdi
cmp rcx, rax
ja 0x48502d
mov rax, rdi
shl rax, 7
imul rcx, rax
mov r15, rax
mov rax, rcx
not rax
cmp qword [rsp + 0xc8], rax
ja 0x4850d1
add rcx, qword [rsp + 0xc8]
mov qword [rsp + 0x110], rcx
cmp qword [r14 + 0x48], rcx
jb 0x4850e7
cmp qword [rsp + 0x1d8], 0
mov eax, 1
je 0x4844af
mov rax, qword [r14 + 8]
mov r8d, 0x211
lea rdx, str..._openssl_3.1.1_providers_implementations_kdfs_scrypt.c
mov r13, qword [r14 + 0x28]
mov qword [rsp + 0x118], rax
mov rax, qword [r14]
mov qword [rsp + 0x120], rax
mov rax, qword [r14 + 0x18]
mov qword [rsp + 0x128], rax
call sym.CRYPTO_malloc
mov qword [rsp + 0x80], rax
test rax, rax
je 0x4850fd
mov rax, qword [rsp + 0x118]
mov r9d, r13d
mov r8, rbx
mov dword [rsp + 0x20], 1
mov edx, dword [rsp + 0x128]
mov rcx, qword [rsp + 0x88]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x120]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x38], rax
mov eax, dword [rsp + 0xc8]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x28], rax
call sym.ossl_pkcs5_pbkdf2_hmac_ex
test eax, eax
je 0x485050
mov rax, qword [rsp + 0x80]
imul rbp, r15
mov rcx, r15
mov r11, rdi
mov rbx, qword [rsp + 0xc8]
shl r11, 5
mov qword [rsp + 0xa0], 0
mov r13, rax
mov qword [rsp + 0xa8], r11
shr r11, 4
movdqa xmm6, xmmword [0x007812e0]
add rbx, rax
mov qword [rsp + 0x100], r11
lea rdx, [rbx + r15 - 0x40]
lea r14, [rbx + r15]
mov qword [rsp + 0xb8], 0x40
mov qword [rsp + 0x58], rdx
lea rdx, [rdi + r12]
lea r10, [r14 + r15]
mov qword [rsp + 0x70], rdx
shl rdx, 7
add rbp, r10
lea r9, [r15 + rdx]
mov qword [rsp + 0x50], r10
add r10, rcx
lea r15, [r15 + rdx + 0x40]
add rax, r9
mov qword [rsp + 0xf8], r15
lea r15, [r13 + rdx]
mov qword [rsp + 0x108], rax
lea rax, [rcx - 4]
cmp rax, 8
mov rax, r12
mov qword [rsp + 0xd8], rbp
seta byte [rsp + 0x6f]
neg rax
sub rdx, rcx
shl rax, 7
mov qword [rsp + 0xf0], r9
sub rax, r13
mov qword [rsp + 0xe0], r10
mov qword [rsp + 0xe8], rax
lea rax, [rdx - 4]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0xb0], rsi
mov rsi, r15
mov r15, rdi
mov rdi, rcx
nop dword [rax]
mov rcx, qword [rsp + 0xa8]
mov qword [rsp + 0xd0], r13
test rcx, rcx
je 0x485043
mov r11, qword [rsp + 0xb8]
lea rax, [r11 - 0x40]
cmp rax, qword [rsp + 0xf8]
setge dl
cmp r11, qword [rsp + 0xf0]
setle al
or dl, al
je 0x484fd6
lea rax, [rcx - 1]
cmp rax, 0xe
jbe 0x484fd6
mov r8, qword [rsp + 0x100]
xor eax, eax
xor edx, edx
pxor xmm5, xmm5
mov rcx, qword [rsp + 0x108]
pxor xmm3, xmm3
nop dword [rax]
movdqu xmm0, xmmword [r13 + rax]
movdqu xmm1, xmmword [r13 + rax + 0x10]
movdqa xmm9, xmm6
movdqa xmm8, xmm6
movdqu xmm2, xmmword [r13 + rax + 0x10]
movdqu xmm7, xmmword [r13 + rax + 0x20]
add rdx, 1
pand xmm1, xmm6
pand xmm0, xmm6
movdqu xmm4, xmmword [r13 + rax + 0x20]
packuswb xmm0, xmm1
movdqu xmm1, xmmword [r13 + 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 [r13 + rax + 0x30]
pand xmm2, xmm6
packuswb xmm7, xmm2
movdqu xmm2, xmmword [r13 + 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 0x4848e0
mov r12, qword [rsp + 0xa8]
mov rax, qword [rsp + 0xe0]
mov ebp, 1
mov qword [rsp + 0xc0], r12
mov r12, rdi
mov rdi, r15
mov r15, rsi
mov rsi, qword [rsp + 0xb0]
mov qword [rsp + 0x60], rbx
mov rbx, rbp
mov rbp, rax
nop dword [rax]
mov rdx, rbp
mov rcx, rbp
mov r8, rdi
add rbx, 1
sub rdx, r12
add rbp, r12
call sym.scryptBlockMix
cmp rsi, rbx
ja 0x484af0
mov rbx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0xd8]
mov rsi, r15
mov r15, rdi
mov rdi, r12
mov r12, qword [rsp + 0xc0]
mov r8, r15
mov rcx, rbx
call sym.scryptBlockMix
mov rax, r12
mov qword [rsp + 0x60], rdi
xor r11d, r11d
mov rdi, qword [rsp + 0xb0]
mov qword [rsp + 0xc0], r13
lea rbp, [r12*4]
mov r13, r11
mov r12, r14
mov r14, rax
nop word [rax + rax]
mov rax, qword [rsp + 0x58]
xor edx, edx
mov eax, dword [rax]
div rdi
imul rdx, r15
mov rcx, rdx
shl rcx, 7
add rcx, qword [rsp + 0x50]
test r14, r14
je 0x484beb
add rdx, qword [rsp + 0x70]
mov rax, qword [rsp + 0x78]
shl rdx, 7
sub rax, rdx
cmp rax, 8
seta al
test byte [rsp + 0x6f], al
je 0x484ef0
lea rax, [r14 - 1]
cmp rax, 2
jbe 0x484ef0
add rdx, qword [rsp + 0x60]
xor eax, eax
add rdx, qword [rsp + 0x80]
nop dword [rax + rax]
movdqu xmm0, xmmword [rbx + rax]
movdqu xmm5, xmmword [rdx + rax]
pxor xmm0, xmm5
movups xmmword [rsi + rax], xmm0
add rax, 0x10
cmp rax, rbp
jne 0x484bd0
mov r8, r15
mov rdx, r12
mov rcx, rbx
add r13, 1
call sym.scryptBlockMix
cmp rdi, r13
ja 0x484b68
mov rax, r14
mov r13, qword [rsp + 0xc0]
mov r14, r12
mov rdi, qword [rsp + 0x60]
mov r12, rax
test rax, rax
je 0x484dff
mov rax, qword [rsp + 0xe8]
lea rax, [r13 + rax - 1]
cmp rax, 0x3e
jbe 0x484f90
lea rax, [r12 - 1]
cmp rax, 0xe
jbe 0x484f90
lea rcx, [rbx + r12*4]
mov rdx, r13
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 0x484c58
add qword [rsp + 0xa0], 1
add r13, rdi
mov rax, qword [rsp + 0xa0]
add qword [rsp + 0xb8], rdi
cmp qword [rsp + 0x90], rax
ja 0x484870
mov rax, qword [rsp + 0x118]
mov dword [rsp + 0x20], 1
mov r9d, dword [rsp + 0xc8]
mov r8, qword [rsp + 0x80]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x120]
mov edx, dword [rsp + 0x128]
mov rcx, qword [rsp + 0x88]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x1d8]
mov qword [rsp + 0x38], rax
mov eax, dword [rsp + 0x1e0]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x28], rax
call sym.ossl_pkcs5_pbkdf2_hmac_ex
test eax, eax
je 0x485050
mov eax, 1
mov rdx, qword [rsp + 0x110]
mov rcx, qword [rsp + 0x80]
mov dword [rsp + 0x50], eax
mov r9d, 0x228
lea r8, str..._openssl_3.1.1_providers_implementations_kdfs_scrypt.c
call sym.CRYPTO_clear_free
mov eax, dword [rsp + 0x50]
jmp 0x4844af
call sym.ERR_new
lea r8, str.scrypt_alg
mov edx, 0x1ef
jmp 0x4845c0
xor eax, eax
nop word [rax + rax]
mov edx, dword [rbx + rax*4]
xor edx, dword [rcx + rax*4]
mov dword [r12 + rax*4], edx
add rax, 1
cmp r14, rax
jne 0x484ef8
jmp 0x484beb
call sym.ERR_new
lea r8, str.kdf_scrypt_derive
mov edx, 0xc7
lea rcx, str..._openssl_3.1.1_providers_implementations_kdfs_scrypt.c
call sym.ERR_set_debug
xor r8d, r8d
mov edx, 0x82
mov ecx, 0x39
call sym.ERR_set_error
jmp 0x4844ad
call sym.ERR_new
lea r8, str.kdf_scrypt_derive
mov edx, 0xcc
lea rcx, str..._openssl_3.1.1_providers_implementations_kdfs_scrypt.c
call sym.ERR_set_debug
xor r8d, r8d
mov edx, 0x83
mov ecx, 0x39
call sym.ERR_set_error
xor eax, eax
jmp 0x4844af
call sym.ERR_new
lea r8, str.scrypt_alg
mov edx, 0x1d2
jmp 0x4845c0
mov rax, qword [rsp + 0xd0]
lea r11, [r13 + r12*4]
mov rdx, rbx
mov r10, rbx
nop dword [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 0x484fa8
mov rbx, r10
jmp 0x484dff
mov r8, qword [rsp + 0x50]
mov r9, qword [rsp + 0xa8]
xor eax, eax
nop dword [rax]
movzx ecx, byte [r13 + rax*4]
mov dword [r8 + rax*4], ecx
movzx edx, byte [r13 + rax*4 + 1]
shl edx, 8
or ecx, edx
mov dword [r8 + rax*4], ecx
movzx edx, byte [r13 + rax*4 + 2]
shl edx, 0x10
or edx, ecx
mov dword [r8 + rax*4], edx
movzx ecx, byte [r13 + rax*4 + 3]
shl ecx, 0x18
or edx, ecx
mov dword [r8 + rax*4], edx
add rax, 1
cmp r9, rax
jne 0x484fe8
jmp 0x484ab0
call sym.ERR_new
lea r8, str.scrypt_alg
mov edx, 0x1f9
jmp 0x4845c0
mov rax, qword [rsp + 0x50]
xor r12d, r12d
jmp 0x484ac0
call sym.ERR_new
lea r8, str.scrypt_alg
mov edx, 0x226
lea rcx, str..._openssl_3.1.1_providers_implementations_kdfs_scrypt.c
call sym.ERR_set_debug
xor r8d, r8d
mov edx, 0xb5
mov ecx, 6
call sym.ERR_set_error
xor eax, eax
jmp 0x484ea1
mov r8d, 0xa9
lea rdx, str..._openssl_3.1.1_providers_implementations_kdfs_scrypt.c
mov rcx, r14
call sym.CRYPTO_free
call sym.ERR_new
lea r8, str.set_digest
mov edx, 0xaa
lea rcx, str..._openssl_3.1.1_providers_implementations_kdfs_scrypt.c
call sym.ERR_set_debug
xor r8d, r8d
mov edx, 0x93
mov ecx, 0x39
call sym.ERR_set_error
xor eax, eax
jmp 0x4844af
call sym.ERR_new
lea r8, str.scrypt_alg
mov edx, 0x200
jmp 0x4845c0
call sym.ERR_new
lea r8, str.scrypt_alg
mov edx, 0x209
jmp 0x4845c0
call sym.ERR_new
lea r8, str.scrypt_alg
mov edx, 0x213
lea rcx, str..._openssl_3.1.1_providers_implementations_kdfs_scrypt.c
call sym.ERR_set_debug
xor r8d, r8d
mov edx, 0xc0100
mov ecx, 6
call sym.ERR_set_error
xor eax, eax
jmp 0x4844af