Function at 0x4292d0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xe8
mov esi, 1
call fcn.004281c0
mov rbx, rax
test ah, 2
jne 0x4296d0
test bh, 1
jne 0x4296f4
test bl, 0x80
jne 0x429715
test bl, 0x10
jne 0x429736
and ebx, 4
jne 0x429757
lea r8, [0x004269b0]
lea rcx, [0x00426e30]
mov rdx, r8
call fcn.00427e30
test eax, esi
jne 0x4296b0
lea rcx, str.scrypt:_mix_function_power_on_self_test_failed
mov ebx, 4
call qword [0x006b3120]
mov dword [rsp + 0x9c], 6
call fcn.00428350
test eax, eax
jne 0x429375
lea rcx, str.scrypt:_hash_function_power_on_self_test_failed
call qword [0x006b3120]
mov dword [rsp + 0x9c], ebx
lea rax, [0x006bf9e0]
mov qword [rsp + 0x60], 0
mov dword [rsp + 0x98], 1
mov qword [rsp + 0x40], rax
lea rax, [0x006bf940]
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0x40]
lea rdi, [0x00429d80]
movzx r12d, byte [rax + 0x10]
movzx r15d, byte [rax + 0x12]
mov qword [rsp + 0x88], rax
movzx esi, byte [rax + 0x11]
mov r14, qword [rax + 8]
mov rax, qword [rax]
mov ebx, r12d
mov rcx, rax
mov qword [rsp + 0x48], rax
call sub.msvcrt.dll_strlen
mov qword [rsp + 0x50], rax
call fcn.004281c0
mov qword [rsp + 0x30], rdi
test ah, 2
jne 0x429450
lea rdi, [0x0042a070]
mov qword [rsp + 0x30], rdi
test ah, 1
jne 0x429450
lea rdi, [0x0042a360]
mov qword [rsp + 0x30], rdi
test al, 0x80
jne 0x429450
lea rdi, [0x004297a0]
mov qword [rsp + 0x30], rdi
test al, 0x10
jne 0x429450
test al, 4
lea rdx, [0x00429a90]
lea rax, [0x00427d80]
cmovne rax, rdx
mov qword [rsp + 0x30], rax
nop dword [rax + rax]
mov edx, dword [0x0073ae60]
test edx, edx
je 0x429680
cmp bl, 0x1e
jbe 0x429470
lea rcx, str.scrypt:_N_out_of_range
call qword [0x006b3120]
cmp sil, 7
jbe 0x429483
lea rcx, str.scrypt:_r_out_of_range
call qword [0x006b3120]
cmp r15b, 0x19
jbe 0x429496
lea rcx, str.scrypt:_p_out_of_range
call qword [0x006b3120]
mov ebx, 1
inc r12d
mov ebp, 0x100
shlx eax, ebx, esi
shlx ecx, ebx, r12d
shlx esi, ebp, esi
shlx ebx, ebx, r15d
mov r12, rcx
imul rcx, rsi
mov dword [rsp + 0x3c], eax
mov rbp, rsi
add rcx, 0x7f
call sub.msvcrt.dll_malloc
lea r13, [rax + 0x7f]
mov qword [rsp + 0x80], rax
and r13, 0xffffffffffffff80
test rax, rax
je 0x429786
lea eax, [rbx + 1]
mov edi, eax
imul edi, ebp
lea rcx, [rdi + 0x7f]
mov qword [rsp + 0x68], rdi
call sub.msvcrt.dll_malloc
lea rdi, [rax + 0x7f]
mov qword [rsp + 0x78], rax
and rdi, 0xffffffffffffff80
test rax, rax
je 0x429774
mov r9, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x50]
shlx eax, ebp, r15d
add rsi, rdi
mov rcx, qword [rsp + 0x48]
mov r8, r14
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x70], rax
xor r15d, r15d
xor r14d, r14d
call fcn.00429060
test ebx, ebx
je 0x429587
mov eax, r15d
mov r15, r13
mov r13d, ebp
mov ebp, ebx
mov ebx, r14d
mov r14d, eax
nop dword [rax]
mov eax, dword [rsp + 0x3c]
mov ecx, r14d
inc ebx
mov r9d, r12d
add rcx, rsi
mov r8, r15
mov rdx, rdi
add r14d, r13d
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x30]
call rax
cmp ebp, ebx
jne 0x429560
mov rbx, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x48]
mov r8, rsi
mov r9, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x50]
mov qword [rsp + 0x20], rbx
call fcn.00428ee0
xor eax, eax
mov rcx, qword [rsp + 0x68]
push rdi
push rcx
rep stosb byte [rdi], al
pop rcx
pop rdi
mov rcx, qword [rsp + 0x80]
call sub.msvcrt.dll_free
mov rcx, qword [rsp + 0x78]
call sub.msvcrt.dll_free
mov r9, qword [rsp + 0x58]
xor edx, edx
xor ecx, ecx
mov r10, rbx
nop dword [rax + rax]
movzx eax, byte [r9 + rdx]
movzx r8d, byte [r10 + rdx]
inc rdx
xor eax, r8d
movzx eax, al
or ecx, eax
cmp rdx, 0x40
jne 0x4295e0
mov rsi, qword [rsp + 0x88]
dec ecx
add qword [rsp + 0x40], 0x18
shr ecx, 8
add qword [rsp + 0x58], 0x40
and dword [rsp + 0x98], ecx
mov rax, qword [rsp + 0x40]
cmp qword [rsi + 0x18], 0
je 0x429640
mov rcx, qword [rax + 8]
call sub.msvcrt.dll_strlen
mov qword [rsp + 0x60], rax
jmp 0x4293b1
mov eax, dword [rsp + 0x98]
test eax, eax
jne 0x429660
lea rcx, str.scrypt:_scrypt_power_on_self_test_failed
call qword [0x006b3120]
and dword [rsp + 0x9c], 0xfffffffb
mov eax, dword [rsp + 0x9c]
add rsp, 0xe8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov dword [0x0073ae60], 1
call fcn.004292d0
test eax, eax
jne 0x42945e
lea rcx, str.scrypt:_power_on_self_test_failed
call qword [0x006b3120]
jmp 0x42945e
mov ebx, 5
mov dword [rsp + 0x9c], 7
jmp 0x429358
lea r8, [0x004269c0]
lea rcx, [fcn.00425070]
mov rdx, r8
call fcn.00427e30
and eax, 1
mov esi, eax
test bh, 1
je 0x429302
lea r8, [0x004269c0]
lea rcx, [fcn.004252b0]
mov rdx, r8
call fcn.00427e30
and esi, eax
test bl, 0x80
je 0x42930b
lea r8, [0x004269c0]
lea rcx, [fcn.00425630]
mov rdx, r8
call fcn.00427e30
and esi, eax
test bl, 0x10
je 0x429314
lea r8, [0x004269c0]
lea rcx, [fcn.00425a10]
mov rdx, r8
call fcn.00427e30
and esi, eax
and ebx, 4
je 0x42931d
lea r8, [0x004269c0]
lea rcx, [fcn.00425ea0]
mov rdx, r8
call fcn.00427e30
and esi, eax
jmp 0x42931d
lea rcx, str.scrypt:_out_of_memory
call qword [0x006b3120]
jmp 0x429513
lea rcx, str.scrypt:_out_of_memory
call qword [0x006b3120]
jmp 0x4294e7