Function at 0x14000b0c0
Capabilities:
Allocate or change rwx memory
Check os version
Clear file content
Create directory
Execute shellcode via indirect call
Get disk information
Get disk size
Write file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x410]
sub rsp, 0x510
mov rax, qword [0x1400ab680]
xor rax, rsp
mov qword [rbp + 0x400], rax
mov rsi, rcx
mov ecx, 4
mov rax, qword gs:[0x58]
mov rdx, qword [rax]
mov eax, dword [rcx + rdx]
cmp dword [0x1400b2938], eax
jle 0x14000b160
lea rcx, [0x1400b2938]
call fcn.14005e108
cmp dword [0x1400b2938], 0xffffffff
jne 0x14000b160
call fcn.14003be40
mov rcx, rax
test rax, rax
je 0x14000bac6
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [0x1400b2940], rax
lea rcx, [0x1400819e0]
call fcn.14005e450
lea rcx, [0x1400b2938]
call fcn.14005e0a8
mov r8d, 0x104
lea rdx, [rbp + 0x1f0]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov edx, 0x5c
lea rcx, [rbp + 0x1f0]
call fcn.14005fed8
xor ebx, ebx
test rax, rax
je 0x14000b190
mov word [rax], bx
mov qword [0x1400b2680], rbx
mov eax, dword [0x1400ac23c]
cmp eax, 0xffffffff
jne 0x14000b283
mov dword [0x1400ac23c], ebx
xor edx, edx
mov r8d, 0x118
lea rcx, [rbp - 0x4c]
call fcn.140060b10
mov dword [rbp - 0x50], 0x11c
lea rcx, [rbp - 0x50]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
mov eax, dword [rbp - 0x4c]
cmp eax, 5
jbe 0x14000b1f4
cmp eax, 6
jne 0x14000b1e1
cmp dword [rbp - 0x48], 1
jbe 0x14000b1f4
mov dword [0x1400ac23c], 1
lea r9, str.CdmResourcediskspddiskspd64.exe
jmp 0x14000b201
mov dword [0x1400ac23c], ebx
lea r9, str.CdmResourcediskspddiskspd64L.exe
lea r8, [rbp + 0x1f0]
lea rdx, str._s_s
lea rcx, [0x1400b26f0]
call fcn.14000c550
lea r8, [0x140097ac0]
mov rdx, qword [0x1400b26f0]
lea rcx, [rsp + 0x70]
call fcn.14006cc08
test eax, eax
jne 0x14000ba77
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x14000ba77
call fcn.14006d0c4
mov eax, dword [rsi + 0x56c]
inc eax
mov dword [0x1400b2878], eax
mov r15, qword [rsi + 0x540]
lea rdi, [r15 - 0x18]
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rdi + 0x10], ebx
jl 0x14000b297
cmp rax, qword [rdi]
jne 0x14000b297
lock inc dword [rdi + 0x10]
jmp 0x14000b2d0
test eax, eax
je 0x14000b1fa
lea r9, str.CdmResourcediskspddiskspd64.exe
jmp 0x14000b201
lea r14, [rdi + 8]
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [r14]
call qword [rax]
mov rdi, rax
test rax, rax
je 0x14000bad1
mov eax, dword [r14]
mov dword [rdi + 8], eax
mov r9d, dword [r14]
inc r9d
movsxd rdx, r9d
lea rcx, [rdi + 0x18]
mov r8, r15
call fcn.140002d90
add rdi, 0x18
mov qword [rbp - 0x78], rdi
cmp dword [rdi - 0x10], 0
jl 0x14000b30a
lea rdx, [0x140090a98]
mov rcx, rdi
call fcn.14005ff88
test rax, rax
je 0x14000b30a
sub rax, rdi
sar rax, 1
cmp eax, 0xffffffff
je 0x14000b30a
mov rcx, rdi
call fcn.1400680a4
movsxd rcx, eax
jmp 0x14000b319
mov rcx, rdi
call fcn.1400680a4
movsxd rcx, eax
shl rcx, 0xa
mov qword [0x1400b2880], rcx
mov eax, dword [rsi + 0x57c]
mov dword [0x1400b2888], eax
mov eax, dword [rsi + 0x5a0]
mov dword [0x1400b28b0], eax
mov eax, dword [rsi + 0x5c4]
mov dword [0x1400b28d8], eax
mov eax, dword [rsi + 0x5e8]
mov dword [0x1400b2900], eax
mov eax, dword [rsi + 0x580]
mov dword [0x1400b288c], eax
mov eax, dword [rsi + 0x5a4]
mov dword [0x1400b28b4], eax
mov eax, dword [rsi + 0x5c8]
mov dword [0x1400b28dc], eax
mov eax, dword [rsi + 0x5ec]
mov dword [0x1400b2904], eax
mov eax, dword [rsi + 0x584]
mov dword [0x1400b2890], eax
mov eax, dword [rsi + 0x5a8]
mov dword [0x1400b28b8], eax
mov eax, dword [rsi + 0x5cc]
mov dword [0x1400b28e0], eax
mov eax, dword [rsi + 0x5f0]
mov dword [0x1400b2908], eax
mov eax, dword [rsi + 0x588]
mov dword [0x1400b2894], eax
mov eax, dword [rsi + 0x5ac]
mov dword [0x1400b28bc], eax
mov eax, dword [rsi + 0x5d0]
mov dword [0x1400b28e4], eax
mov eax, dword [rsi + 0x5f4]
mov dword [0x1400b290c], eax
mov eax, dword [rsi + 0x58c]
mov dword [0x1400b2898], eax
mov eax, dword [rsi + 0x5b0]
mov dword [0x1400b28c0], eax
mov eax, dword [rsi + 0x5d4]
mov dword [0x1400b28e8], eax
mov eax, dword [rsi + 0x5f8]
mov dword [0x1400b2910], eax
mov eax, dword [rsi + 0x590]
mov dword [0x1400b289c], eax
mov eax, dword [rsi + 0x5b4]
mov dword [0x1400b28c4], eax
mov eax, dword [rsi + 0x5d8]
mov dword [0x1400b28ec], eax
mov eax, dword [rsi + 0x5fc]
mov dword [0x1400b2914], eax
mov eax, dword [rsi + 0x594]
mov dword [0x1400b28a0], eax
mov eax, dword [rsi + 0x5b8]
mov dword [0x1400b28c8], eax
mov eax, dword [rsi + 0x5dc]
mov dword [0x1400b28f0], eax
mov eax, dword [rsi + 0x600]
mov dword [0x1400b2918], eax
mov eax, dword [rsi + 0x598]
mov dword [0x1400b28a4], eax
mov eax, dword [rsi + 0x5bc]
mov dword [0x1400b28cc], eax
mov eax, dword [rsi + 0x5e0]
mov dword [0x1400b28f4], eax
mov eax, dword [rsi + 0x604]
mov dword [0x1400b291c], eax
mov eax, dword [rsi + 0x59c]
mov dword [0x1400b28a8], eax
mov eax, dword [rsi + 0x5c0]
mov dword [0x1400b28d0], eax
mov eax, dword [rsi + 0x5e4]
mov dword [0x1400b28f8], eax
mov eax, dword [rsi + 0x608]
mov dword [0x1400b2920], eax
mov eax, dword [rsi + 0x664]
mov dword [0x1400b287c], eax
mov eax, dword [rsi + 0x668]
mov dword [0x1400b28ac], eax
call fcn.14003be40
mov rcx, rax
test rax, rax
je 0x14000bad7
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x48], rax
mov eax, dword [rsi + 0x574]
mov r15, 0xffffffffffffffff
cmp dword [rsi + 0x564], eax
je 0x14000b6e0
mov rax, qword [rsi + 0x548]
cmp dword [rax - 0x10], 0
jl 0x14000bae2
movzx edi, word [rax]
mov r8d, edi
lea rdx, [0x140090668]
lea rcx, [0x1400b2940]
call fcn.14000c550
lea r9, [rsp + 0x60]
lea r8, [rsp + 0x78]
lea rdx, [rbp - 0x70]
mov rcx, qword [0x1400b2940]
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
movabs rax, 0x200000000
mov r8, qword [rsp + 0x78]
mov rdx, r8
xorps xmm3, xmm3
cmp r8, rax
jae 0x14000b5e6
lea r10, str._C:__.1f_____.1f__.1f_MiB_
sub rdx, qword [rsp + 0x60]
js 0x14000b595
cvtsi2sd xmm3, rdx
jmp 0x14000b5ad
mov rcx, rdx
shr rcx, 1
mov rax, rdx
and eax, 1
or rcx, rax
cvtsi2sd xmm3, rcx
addsd xmm3, xmm3
xorps xmm0, xmm0
test r8, r8
js 0x14000b5c4
cvtsi2sd xmm0, r8
shr rdx, 0xa
shr r8, 0xa
jmp 0x14000b642
mov rcx, r8
shr rcx, 1
mov rax, r8
and eax, 1
or rcx, rax
cvtsi2sd xmm0, rcx
addsd xmm0, xmm0
shr rdx, 0xa
shr r8, 0xa
jmp 0x14000b642
lea r10, str._C:__.1f_____.1f__.1f_GiB_
sub rdx, qword [rsp + 0x60]
js 0x14000b5fb
cvtsi2sd xmm3, rdx
jmp 0x14000b613
mov rcx, rdx
shr rcx, 1
mov rax, rdx
and eax, 1
or rcx, rax
cvtsi2sd xmm3, rcx
addsd xmm3, xmm3
xorps xmm0, xmm0
test r8, r8
js 0x14000b622
cvtsi2sd xmm0, r8
jmp 0x14000b63a
mov rcx, r8
shr rcx, 1
mov rax, r8
and eax, 1
or rcx, rax
cvtsi2sd xmm0, rcx
addsd xmm0, xmm0
shr rdx, 0x14
shr r8, 0x14
divsd xmm3, xmm0
xorps xmm0, xmm0
test r8, r8
js 0x14000b655
cvtsi2sd xmm0, r8
jmp 0x14000b66b
mov rax, r8
shr rax, 1
and r8d, 1
or rax, r8
cvtsi2sd xmm0, rax
addsd xmm0, xmm0
movsd xmm2, qword [0x14009b640]
mulsd xmm0, xmm2
xorps xmm1, xmm1
test rdx, rdx
js 0x14000b686
cvtsi2sd xmm1, rdx
jmp 0x14000b69b
mov rax, rdx
shr rax, 1
and edx, 1
or rax, rdx
cvtsi2sd xmm1, rax
addsd xmm1, xmm1
mulsd xmm1, xmm2
mulsd xmm3, qword [0x14009b690]
lea rcx, [rsi + 0x550]
movsd qword [rsp + 0x28], xmm0
movsd qword [rsp + 0x20], xmm1
movq r9, xmm3
mov r8d, edi
mov rdx, r10
call fcn.14000c550
mov r8d, edi
lea rdx, str._c:_
lea rcx, [rsp + 0x48]
call fcn.14000c550
jmp 0x14000b717
lea rdx, [rsi + 0x558]
lea rcx, [rsp + 0x48]
call fcn.1400026b0
lea rdx, [0x140090a94]
mov rax, r15
nop dword [rax + rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x14000b700
mov r8d, eax
lea rcx, [rsp + 0x48]
call fcn.14000c2b0
call qword [sym.imp.WINMM.dll_timeGetTime]
mov r9d, eax
mov rdi, qword [rsp + 0x48]
mov r8, rdi
lea rdx, str._sCrystalDiskMark_08X
lea rcx, [0x1400b26e8]
call fcn.14000c550
xor edx, edx
mov rcx, qword [0x1400b26e8]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
call qword [sym.imp.WINMM.dll_timeGetTime]
mov r9d, eax
mov r8, qword [0x1400b26e8]
lea rdx, str._sCrystalDiskMark_08X.tmp
lea rcx, [0x1400b26e0]
call fcn.14000c550
mov dword [rsp + 0x38], ebx
mov qword [rsp + 0x30], rbx
lea rax, [rsp + 0x68]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
mov dword [rbp + 0xd0], 0x114
lea rcx, [rbp + 0xd0]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
lea r9, [rbp - 0x80]
lea r8, [rbp - 0x68]
lea rdx, [rbp - 0x60]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
mov rax, qword [rbp - 0x80]
shr rax, 0x14
cmp qword [0x1400b2880], rax
jbe 0x14000b7ef
xor r8d, r8d
xor edx, edx
mov rcx, qword [rsi + 0x670]
call fcn.140045af8
mov dword [rsi + 0x378], ebx
jmp 0x14000ba1c
call fcn.14003be40
mov rcx, rax
test rax, rax
je 0x14000babb
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x58], rax
lea rdx, str.Preparing..._Create_Test_File
lea rcx, [rsp + 0x58]
call fcn.14000c550
xor r9d, r9d
lea r8, [rsp + 0x58]
mov edx, 0x9002
mov rcx, qword [rsi + 0x40]
call qword [sym.imp.USER32.dll_PostMessageW]
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0x28000080
mov dword [rsp + 0x20], 2
xor r9d, r9d
xor r8d, r8d
mov edx, 0xc0000000
mov rcx, qword [0x1400b26e0]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [0x1400b26f8], rax
cmp rax, 0xffffffffffffffff
jne 0x14000b88d
xor r8d, r8d
xor edx, edx
mov rcx, qword [rsi + 0x690]
call fcn.140045af8
mov dword [rsi + 0x378], ebx
jmp 0x14000b9f8
mov rdx, qword [0x1400b2880]
shl rdx, 0x14
xor r9d, r9d
xor r8d, r8d
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
mov rcx, qword [0x1400b26f8]
call qword [sym.imp.KERNEL32.dll_SetEndOfFile]
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov rcx, qword [0x1400b26f8]
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
mov word [rsp + 0x40], bx
mov dword [rsp + 0x50], ebx
mov qword [rsp + 0x38], rbx
lea rax, [rsp + 0x50]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rbx
mov r9d, 2
lea r8, [rsp + 0x40]
mov edx, 0x9c040
mov rcx, qword [0x1400b26f8]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov r12d, dword [0x1400b2880]
mov edx, 0x100000
xor ecx, ecx
lea r9d, [rcx + 4]
mov r8d, 0x3000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r14, rax
test rax, rax
jne 0x14000b94a
xor r8d, r8d
xor edx, edx
lea rcx, str.Failed_VirtualAlloc__.
call fcn.140045af8
mov dword [rsi + 0x378], ebx
jmp 0x14000b9f8
cmp dword [rsi + 0x614], 1
jne 0x14000b965
xor edx, edx
mov r8d, 0x100000
mov rcx, r14
call fcn.140060b10
jmp 0x14000b98d
mov rdi, rbx
call fcn.140068154
and eax, 0x800000ff
jge 0x14000b97d
dec eax
or eax, 0xffffff00
inc eax
mov byte [rdi + r14], al
inc rdi
cmp rdi, 0x100000
jl 0x14000b968
mov edi, ebx
test r12d, r12d
jle 0x14000b9d5
nop dword [rax]
nop dword [rax + rax]
mov eax, dword [rsi + 0x378]
mov rcx, qword [0x1400b26f8]
test eax, eax
je 0x14000ba58
mov qword [rsp + 0x20], rbx
lea r9, [rsp + 0x6c]
mov r8d, 0x100000
mov rdx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
inc edi
cmp edi, r12d
jl 0x14000b9a0
xor edx, edx
mov r8d, 0x8000
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov rcx, qword [0x1400b26f8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, 1
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000ba17
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdi, qword [rsp + 0x48]
lea rdx, [rdi - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000ba37
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x78]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r15d
sub r15d, 1
jg 0x14000ba54
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, ebx
jmp 0x14000ba90
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor edx, edx
mov r8d, 0x8000
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov dword [rsi + 0x378], ebx
jmp 0x14000b9f8
xor r8d, r8d
xor edx, edx
mov rcx, qword [rsi + 0x698]
call fcn.140045af8
mov dword [rsi + 0x378], ebx
xor eax, eax
mov rcx, qword [rbp + 0x400]
xor rcx, rsp
call fcn.14005df90
lea r11, [rsp + 0x510]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
mov ecx, 0x80004005
call fcn.140002fe0
nop
mov ecx, 0x80004005
call fcn.140002fe0
int3
call fcn.140002ee0
nop
mov ecx, 0x80004005
call fcn.140002fe0
nop
mov ecx, 0x80070057
call fcn.140002fe0
int3