Function at 0x14005faf0
Capabilities:
Encode data using xor
Get storage device properties

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x60]
sub rsp, 0x160
movaps xmmword [rsp + 0x150], xmm6
mov r12, rcx
movdqa xmm6, xmmword [0x1401212a0]
mov word [rbp], 0xd683
lea rax, [rbp + 0x30]
mov qword [rbp + 0xb8], rax
mov dword [rsp + 0x40], 0x898d9aab
mov dword [rsp + 0x44], 0x81ae8d9c
mov dword [rsp + 0x48], 0xe8a98d84
movsd xmm0, qword [rsp + 0x40]
movsd qword [rsp + 0x50], xmm0
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x58], eax
mov esi, 0xc
mov rdx, qword [0x14013bab8]
test rdx, rdx
jne 0x14005fba3
mov ecx, esi
call fcn.140075634
mov rdx, rax
mov qword [0x14013bab8], rax
mov rcx, rax
lea r9, [rsp + 0x50]
sub r9, rax
mov r8d, esi
nop dword [rax]
movzx eax, byte [r9 + rcx]
xor al, 0xe8
mov byte [rcx], al
lea rcx, [rcx + 1]
sub r8, 1
jne 0x14005fb90
xor r14d, r14d
mov qword [rbp + 0x40], r14
mov qword [rbp + 0x48], 0xf
mov byte [rbp + 0x30], r14b
mov rbx, 0xffffffffffffffff
mov r8, rbx
inc r8
cmp byte [rdx + r8], r14b
jne 0x14005fbc0
lea rcx, [rbp + 0x30]
call fcn.1400064d0
nop
mov dword [rsp + 0x40], 0xaab6a1af
mov dword [rsp + 0x44], 0xd6d7a8a1
mov dword [rsp + 0x48], 0x888880ca
movsd xmm0, qword [rsp + 0x40]
movsd qword [rsp + 0x50], xmm0
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x58], eax
mov byte [rsp + 0x5c], 0xe4
mov edi, 0xd
mov r9, qword [0x14013b9a8]
test r9, r9
jne 0x14005fc46
mov ecx, edi
call fcn.140075634
mov r9, rax
mov qword [0x14013b9a8], rax
mov rcx, rax
lea r8, [rsp + 0x50]
sub r8, rax
mov edx, edi
movzx eax, byte [r8 + rcx]
xor al, 0xe4
mov byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x14005fc33
mov qword [rbp + 0x20], r14
mov qword [rbp + 0x28], 0xf
mov byte [rbp + 0x10], 0
mov r8, rbx
nop dword [rax]
inc r8
cmp byte [r9 + r8], 0
jne 0x14005fc60
mov rdx, r9
lea rcx, [rbp + 0x10]
call fcn.1400064d0
nop
lea rdx, [rbp + 0x30]
lea rcx, [rbp + 0x10]
call fcn.14006f890
mov r13, rax
movaps xmmword [rsp + 0x60], xmm6
movzx ecx, word [rbp]
mov word [rsp + 0x70], cx
mov byte [rsp + 0x72], 0xe6
mov r15d, 0x10
mov rcx, qword [0x14013ba90]
test rcx, rcx
jne 0x14005fd13
mov r14d, 0x13
mov ecx, r14d
call fcn.140075634
mov rcx, rax
mov qword [0x14013ba90], rax
xor eax, eax
lea rdx, [rcx + 0x12]
lea r8, [rsp + 0x72]
cmp rcx, r8
ja 0x14005fcde
lea r8, [rsp + 0x60]
cmp rdx, r8
jae 0x14005fcf1
movdqa xmm0, xmmword [0x1401216b0]
pxor xmm0, xmm6
movdqu xmmword [rcx], xmm0
mov rax, r15
lea rdx, [rax + rcx]
lea r8, [rsp + 0x60]
sub r8, rcx
sub r14, rax
movzx eax, byte [r8 + rdx]
xor al, 0xe6
mov byte [rdx], al
lea rdx, [rdx + 1]
sub r14, 1
jne 0x14005fd00
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 3]
call r13
mov r14, rax
mov qword [rbp + 0xb8], rax
cmp rax, 0xffffffffffffffff
jne 0x14005fd6f
mov qword [r12 + 0x10], 0
mov qword [r12 + 0x18], 0xf
mov byte [r12], 0
xor r8d, r8d
lea rdx, [0x14011e533]
mov rcx, r12
call fcn.1400064d0
jmp 0x1400606b7
xor r13d, r13d
mov qword [rbp - 0x3c], r13
mov dword [rbp - 0x40], r13d
mov qword [rbp + 0xb0], r13
mov dword [rbp + 0xa8], r13d
lea rax, [rbp - 0x10]
mov qword [rsp + 0x50], rax
movdqa xmm6, xmmword [0x140121730]
movdqa xmmword [rsp + 0x60], xmm6
mov rdx, qword [0x14013b970]
test rdx, rdx
jne 0x14005fe08
mov rcx, r15
call fcn.140075634
mov rdx, rax
mov qword [0x14013b970], rax
add rax, 0xf
lea rcx, [rsp + 0x6f]
cmp rdx, rcx
ja 0x14005fdf8
lea rcx, [rsp + 0x60]
cmp rax, rcx
jb 0x14005fdf8
mov rcx, rdx
lea r9, [rsp + 0x60]
sub r9, rdx
mov r8, r15
movzx eax, byte [r9 + rcx]
xor al, 0xec
mov byte [rcx], al
lea rcx, [rcx + 1]
sub r8, 1
jne 0x14005fde3
jmp 0x14005fe08
movdqa xmm0, xmmword [0x140121740]
pxor xmm0, xmm6
movdqu xmmword [rdx], xmm0
mov qword [rbp], r13
mov qword [rbp + 8], 0xf
mov byte [rbp - 0x10], r13b
mov r8, rbx
nop dword [rax + rax]
inc r8
cmp byte [rdx + r8], r13b
jne 0x14005fe20
lea rcx, [rbp - 0x10]
call fcn.1400064d0
nop
mov dword [rsp + 0x40], 0xa4b8afa1
mov dword [rsp + 0x44], 0xd8d9a6af
mov dword [rsp + 0x48], 0x86868ec4
movsd xmm0, qword [rsp + 0x40]
movsd qword [rsp + 0x60], xmm0
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x68], eax
mov byte [rsp + 0x6c], 0xea
mov r9, qword [0x14013b8b0]
test r9, r9
jne 0x14005fea3
mov rcx, rdi
call fcn.140075634
mov r9, rax
mov qword [0x14013b8b0], rax
mov rcx, rax
lea r8, [rsp + 0x60]
sub r8, rax
mov rdx, rdi
movzx eax, byte [r8 + rcx]
xor al, 0xea
mov byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x14005fe90
mov qword [rbp - 0x20], r13
mov qword [rbp - 0x18], 0xf
mov byte [rbp - 0x30], 0
mov r8, rbx
inc r8
cmp byte [r9 + r8], 0
jne 0x14005feb6
mov rdx, r9
lea rcx, [rbp - 0x30]
call fcn.1400064d0
nop
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x30]
call fcn.14006fae0
mov qword [rsp + 0x38], r13
lea rcx, [rbp + 0xa8]
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x28], 8
lea rcx, [rbp + 0xb0]
mov qword [rsp + 0x20], rcx
mov r9d, esi
lea r8, [rbp - 0x40]
mov edx, 0x2d1400
mov rcx, r14
call rax
test eax, eax
jne 0x140060075
lea rax, [rbp - 0x80]
mov qword [rbp + 0xb8], rax
mov dword [rsp + 0x40], 0x839f9cb3
mov dword [rsp + 0x44], 0x9e91b895
mov dword [rsp + 0x48], 0xf0959c94
movsd xmm0, qword [rsp + 0x40]
movsd qword [rsp + 0x50], xmm0
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x58], eax
mov rdx, qword [0x14013bc58]
test rdx, rdx
jne 0x14005ff93
mov rcx, rsi
call fcn.140075634
mov rdx, rax
mov qword [0x14013bc58], rax
mov rcx, rax
lea r8, [rsp + 0x50]
sub r8, rax
nop dword [rax + rax]
movzx eax, byte [rcx + r8]
xor al, 0xf0
mov byte [rcx], al
lea rcx, [rcx + 1]
sub rsi, 1
jne 0x14005ff80
mov qword [rbp - 0x70], r13
mov qword [rbp - 0x68], 0xf
mov byte [rbp - 0x80], 0
mov r8, rbx
inc r8
cmp byte [rdx + r8], 0
jne 0x14005ffa6
lea rcx, [rbp - 0x80]
call fcn.1400064d0
nop
mov dword [rsp + 0x40], 0xa0bcaba5
mov dword [rsp + 0x44], 0xdcdda2ab
mov dword [rsp + 0x48], 0x82828ac0
movsd xmm0, qword [rsp + 0x40]
movsd qword [rsp + 0x60], xmm0
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x68], eax
mov byte [rsp + 0x6c], 0xee
mov rdx, qword [0x14013bbe0]
test rdx, rdx
jne 0x140060033
mov rcx, rdi
call fcn.140075634
mov rdx, rax
mov qword [0x14013bbe0], rax
mov rcx, rax
lea r8, [rsp + 0x60]
sub r8, rax
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [r8 + rcx]
xor al, 0xee
mov byte [rcx], al
lea rcx, [rcx + 1]
sub rdi, 1
jne 0x140060020
mov qword [rbp - 0x50], r13
mov qword [rbp - 0x48], 0xf
mov byte [rbp - 0x60], 0
inc rbx
cmp byte [rdx + rbx], 0
jne 0x140060043
mov r8, rbx
lea rcx, [rbp - 0x60]
call fcn.1400064d0
nop
lea rdx, [rbp - 0x80]
lea rcx, [rbp - 0x60]
call fcn.14006f3f0
mov rcx, r14
call rax
mov qword [r12 + 0x10], r13
jmp 0x14005fd4a
mov r13d, dword [rbp + 0xb4]
mov ecx, r13d
call fcn.140075634
mov r14, rax
lea rax, [rbp - 0x60]
mov qword [rsp + 0x40], rax
movdqa xmm6, xmmword [0x140121790]
movdqa xmmword [rsp + 0x60], xmm6
mov rdx, qword [0x14013b698]
test rdx, rdx
jne 0x140060105
mov rcx, r15
call fcn.140075634
mov rdx, rax
mov qword [0x14013b698], rax
add rax, 0xf
lea rcx, [rsp + 0x6f]
cmp rdx, rcx
ja 0x1400600f5
lea rcx, [rsp + 0x60]
cmp rax, rcx
jb 0x1400600f5
mov rcx, rdx
lea r8, [rsp + 0x60]
sub r8, rdx
nop
movzx eax, byte [r8 + rcx]
xor al, 0xf4
mov byte [rcx], al
lea rcx, [rcx + 1]
sub r15, 1
jne 0x1400600e0
jmp 0x140060105
movdqa xmm0, xmmword [0x1401217b0]
pxor xmm0, xmm6
movdqu xmmword [rdx], xmm0
xor r15d, r15d
mov qword [rbp - 0x50], r15
mov qword [rbp - 0x48], 0xf
mov byte [rbp - 0x60], r15b
mov r8, rbx
nop dword [rax + rax]
inc r8
cmp byte [rdx + r8], r15b
jne 0x140060120
lea rcx, [rbp - 0x60]
call fcn.1400064d0
nop
mov dword [rsp + 0x50], 0xbca0b7b9
mov dword [rsp + 0x54], 0xc0c1beb7
mov dword [rsp + 0x58], 0x9e9e96dc
movsd xmm0, qword [rsp + 0x50]
movsd qword [rsp + 0x60], xmm0
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0x68], eax
mov byte [rsp + 0x6c], 0xf2
mov r9, qword [0x14013bbb8]
test r9, r9
jne 0x1400601a3
mov rcx, rdi
call fcn.140075634
mov r9, rax
mov qword [0x14013bbb8], rax
mov rcx, rax
lea r8, [rsp + 0x60]
sub r8, rax
mov rdx, rdi
movzx eax, byte [r8 + rcx]
xor al, 0xf2
mov byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x140060190
mov qword [rbp - 0x70], r15
mov qword [rbp - 0x68], 0xf
mov byte [rbp - 0x80], 0
mov r8, rbx
inc r8
cmp byte [r9 + r8], 0
jne 0x1400601b6
mov rdx, r9
lea rcx, [rbp - 0x80]
call fcn.1400064d0
nop
lea rdx, [rbp - 0x60]
lea rcx, [rbp - 0x80]
call fcn.14006fae0
mov qword [rsp + 0x38], r15
lea rcx, [rbp + 0xa8]
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], r14
mov r9d, esi
lea r8, [rbp - 0x40]
mov edx, 0x2d1400
mov r15, qword [rbp + 0xb8]
mov rcx, r15
call rax
test eax, eax
jne 0x140060375
mov rcx, r14
call fcn.14007562c
lea rax, [rbp - 0x60]
mov qword [rbp + 0xb8], rax
mov dword [rsp + 0x40], 0x8b9794bb
mov dword [rsp + 0x44], 0x9699b09d
mov dword [rsp + 0x48], 0xf89d949c
movsd xmm0, qword [rsp + 0x40]
movsd qword [rsp + 0x50], xmm0
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x58], eax
mov rdx, qword [0x14013b980]
test rdx, rdx
jne 0x140060293
mov rcx, rsi
call fcn.140075634
mov rdx, rax
mov qword [0x14013b980], rax
mov rcx, rax
lea r8, [rsp + 0x50]
sub r8, rax
nop dword [rax]
movzx eax, byte [r8 + rcx]
xor al, 0xf8
mov byte [rcx], al
lea rcx, [rcx + 1]
sub rsi, 1
jne 0x140060280
xor esi, esi
mov qword [rbp - 0x50], rsi
mov qword [rbp - 0x48], 0xf
mov byte [rbp - 0x60], sil
mov r8, rbx
nop dword [rax + rax]
inc r8
cmp byte [rdx + r8], sil
jne 0x1400602b0
lea rcx, [rbp - 0x60]
call fcn.1400064d0
nop
mov dword [rsp + 0x40], 0xb8a4b3bd
mov dword [rsp + 0x44], 0xc4c5bab3
mov dword [rsp + 0x48], 0x9a9a92d8
movsd xmm0, qword [rsp + 0x40]
movsd qword [rsp + 0x60], xmm0
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x68], eax
mov byte [rsp + 0x6c], 0xf6
mov rdx, qword [0x14013b198]
test rdx, rdx
jne 0x140060333
mov rcx, rdi
call fcn.140075634
mov rdx, rax
mov qword [0x14013b198], rax
mov rcx, rax
lea r8, [rsp + 0x60]
sub r8, rax
nop dword [rax]
movzx eax, byte [r8 + rcx]
xor al, 0xf6
mov byte [rcx], al
lea rcx, [rcx + 1]
sub rdi, 1
jne 0x140060320
mov qword [rbp - 0x70], rsi
mov qword [rbp - 0x68], 0xf
mov byte [rbp - 0x80], 0
inc rbx
cmp byte [rdx + rbx], 0
jne 0x140060343
mov r8, rbx
lea rcx, [rbp - 0x80]
call fcn.1400064d0
nop
lea rdx, [rbp - 0x60]
lea rcx, [rbp - 0x80]
call fcn.14006f3f0
mov rcx, r15
call rax
mov qword [r12 + 0x10], rsi
jmp 0x14005fd4a
mov eax, dword [r14 + 0x18]
test eax, eax
jne 0x1400604e5
mov rcx, r14
call fcn.14007562c
lea rax, [rbp - 0x60]
mov qword [rbp + 0xb8], rax
mov dword [rsp + 0x40], 0x8f9390bf
mov dword [rsp + 0x44], 0x929db499
mov dword [rsp + 0x48], 0xfc999098
movsd xmm0, qword [rsp + 0x40]
movsd qword [rsp + 0x50], xmm0
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x58], eax
mov rdx, qword [0x14013b600]
test rdx, rdx
jne 0x140060403
mov rcx, rsi
call fcn.140075634
mov rdx, rax
mov qword [0x14013b600], rax
mov rcx, rax
lea r8, [rsp + 0x50]
sub r8, rax
nop dword [rax]
movzx eax, byte [r8 + rcx]
xor al, 0xfc
mov byte [rcx], al
lea rcx, [rcx + 1]
sub rsi, 1
jne 0x1400603f0
xor esi, esi
mov qword [rbp - 0x50], rsi
mov qword [rbp - 0x48], 0xf
mov byte [rbp - 0x60], sil
mov r8, rbx
nop dword [rax + rax]
inc r8
cmp byte [rdx + r8], sil
jne 0x140060420
lea rcx, [rbp - 0x60]
call fcn.1400064d0
nop
mov dword [rsp + 0x40], 0xb4a8bfb1
mov dword [rsp + 0x44], 0xc8c9b6bf
mov dword [rsp + 0x48], 0x96969ed4
movsd xmm0, qword [rsp + 0x40]
movsd qword [rsp + 0x60], xmm0
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x68], eax
mov byte [rsp + 0x6c], 0xfa
mov rdx, qword [0x14013bc00]
test rdx, rdx
jne 0x1400604a3
mov rcx, rdi
call fcn.140075634
mov rdx, rax
mov qword [0x14013bc00], rax
mov rcx, rax
lea r8, [rsp + 0x60]
sub r8, rax
nop dword [rax]
movzx eax, byte [r8 + rcx]
xor al, 0xfa
mov byte [rcx], al
lea rcx, [rcx + 1]
sub rdi, 1
jne 0x140060490
mov qword [rbp - 0x70], rsi
mov qword [rbp - 0x68], 0xf
mov byte [rbp - 0x80], 0
inc rbx
cmp byte [rdx + rbx], 0
jne 0x1400604b3
mov r8, rbx
lea rcx, [rbp - 0x80]
call fcn.1400064d0
nop
lea rdx, [rbp - 0x60]
lea rcx, [rbp - 0x80]
call fcn.14006f3f0
mov rcx, r15
call rax
mov qword [r12 + 0x10], rsi
jmp 0x14005fd4a
lea rdx, [r14 + rax]
xor r13d, r13d
mov qword [rbp - 0x20], r13
mov qword [rbp - 0x18], 0xf
mov byte [rbp - 0x30], r13b
mov r8, rbx
nop
inc r8
cmp byte [rdx + r8], r13b
jne 0x140060500
lea rcx, [rbp - 0x30]
call fcn.1400064d0
nop
mov rcx, r14
call fcn.14007562c
lea rax, [rbp - 0x60]
mov qword [rbp + 0xb8], rax
mov dword [rsp + 0x40], 0x726e6d42
mov dword [rsp + 0x44], 0x6f604964
mov dword [rsp + 0x48], 0x1646d65
movsd xmm0, qword [rsp + 0x40]
movsd qword [rsp + 0x50], xmm0
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x58], eax
mov rdx, qword [0x14013bc18]
test rdx, rdx
jne 0x140060593
mov rcx, rsi
call fcn.140075634
mov rdx, rax
mov qword [0x14013bc18], rax
mov rcx, rax
lea r8, [rsp + 0x50]
sub r8, rax
nop dword [rax + rax]
movzx eax, byte [r8 + rcx]
xor al, 1
mov byte [rcx], al
lea rcx, [rcx + 1]
sub rsi, 1
jne 0x140060580
mov qword [rbp - 0x50], r13
mov qword [rbp - 0x48], 0xf
mov byte [rbp - 0x60], 0
mov r8, rbx
inc r8
cmp byte [rdx + r8], 0
jne 0x1400605a6
lea rcx, [rbp - 0x60]
call fcn.1400064d0
nop
mov dword [rsp + 0x40], 0xb0acbbb5
mov dword [rsp + 0x44], 0xcccdb2bb
mov dword [rsp + 0x48], 0x92929ad0
movsd xmm0, qword [rsp + 0x40]
movsd qword [rsp + 0x60], xmm0
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x68], eax
mov byte [rsp + 0x6c], 0xfe
mov rdx, qword [0x14013b5c0]
test rdx, rdx
jne 0x140060633
mov rcx, rdi
call fcn.140075634
mov rdx, rax
mov qword [0x14013b5c0], rax
mov rcx, rax
lea r8, [rsp + 0x60]
sub r8, rax
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [r8 + rcx]
xor al, 0xfe
mov byte [rcx], al
lea rcx, [rcx + 1]
sub rdi, 1
jne 0x140060620
mov qword [rbp - 0x70], r13
mov qword [rbp - 0x68], 0xf
mov byte [rbp - 0x80], 0
inc rbx
cmp byte [rdx + rbx], 0
jne 0x140060643
mov r8, rbx
lea rcx, [rbp - 0x80]
call fcn.1400064d0
nop
lea rdx, [rbp - 0x60]
lea rcx, [rbp - 0x80]
call fcn.14006f3f0
mov rcx, r15
call rax
mov rax, qword [0x14013b7b8]
test rax, rax
jne 0x140060692
lea ecx, [rax + 6]
call fcn.140075634
mov qword [0x14013b7b8], rax
mov dword [rax], 0x65727478
mov word [rax + 4], 0x68
lea r8, [rbp - 0x30]
mov rdx, rax
lea rcx, [rbp + 0x10]
call fcn.14000d020
mov rdx, rax
mov rcx, r12
call fcn.14005c670
nop
lea rcx, [rbp - 0x30]
call fcn.140006470
mov rax, r12
mov rbx, qword [rsp + 0x1a0]
movaps xmm6, xmmword [rsp + 0x150]
add rsp, 0x160
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret