Function at 0x65013090
Capabilities:
Get storage device properties

Disassembly:
push rbx
push rsi
push rdi
push r12
push r14
push r15
mov eax, 0x2f98
call fcn.65033230
sub rsp, rax
mov rax, qword [0x65043120]
xor rax, rsp
mov qword [rsp + 0x2f80], rax
xor dil, dil
xor eax, eax
mov r15, r8
xor r12d, r12d
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x48], rcx
mov esi, 1
lock cmpxchg dword [0x65047d5c], esi
jne 0x6501314a
lea r8, [0x65039450]
lea edx, [rsi + 0xa]
lea rcx, [0x65039490]
call fcn.6500bcb0
lea r8, [0x650394a0]
lea edx, [rsi + 7]
lea rcx, [0x650392d8]
mov rbx, rax
call fcn.6500c660
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
add dword [0x65044948], esi
test rax, rax
je 0x6501313e
mov rdx, rbx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
add dword [0x6504494c], esi
mov rbx, rax
mov qword [0x65047e88], rax
jmp 0x65013151
mov rbx, r12
mov qword [0x65047e88], rbx
jmp 0x65013151
mov rbx, qword [0x65047e88]
lea r8, [0x65038dc0]
lea rcx, [0x65038df8]
mov edx, 0x12
call fcn.6500c660
xor r9d, r9d
mov qword [rsp + 0x30], r12
lea r8d, [r9 + 3]
xor edx, edx
mov rcx, rax
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], 3
call rbx
cmp rax, 0xffffffffffffffff
mov r14, rax
jne 0x65013199
xor al, al
jmp 0x650135e3
xor eax, eax
lea rcx, [rsp + 0x870]
xor edx, edx
mov qword [rsp + 0x58], rax
mov r8d, 0x2710
mov dword [rsp + 0x40], r12d
mov dword [rsp + 0x58], r12d
mov dword [rsp + 0x5c], r12d
mov dword [rsp + 0x60], eax
call fcn.6501efa0
xor eax, eax
lock cmpxchg dword [0x65047d74], esi
jne 0x65013242
lea r8, [0x65039760]
lea rcx, [0x650397a0]
mov edx, 0xf
call fcn.6500bcb0
lea r8, [0x650397b0]
lea rcx, [0x650392d8]
mov edx, 8
mov rbx, rax
call fcn.6500c660
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
add dword [0x65044948], esi
test rax, rax
je 0x65013236
mov rdx, rbx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
add dword [0x6504494c], esi
mov qword [0x65047eb8], rax
jmp 0x65013249
mov rax, r12
mov qword [0x65047eb8], rax
jmp 0x65013249
mov rax, qword [0x65047eb8]
mov qword [rsp + 0x38], r12
lea rcx, [rsp + 0x40]
lea r8, [rsp + 0x58]
mov qword [rsp + 0x30], rcx
lea rcx, [rsp + 0x870]
mov dword [rsp + 0x28], 0x2710
mov qword [rsp + 0x20], rcx
mov r9d, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
mov edx, 0x2d1400
mov rcx, r14
call rax
test eax, eax
je 0x650134dc
mov edx, dword [rsp + 0x880]
mov byte [rsp + 0x480], r12b
test edx, edx
jle 0x650132b5
lea r9, [rsp + 0x480]
lea rcx, [rsp + 0x870]
xor r8d, r8d
call fcn.65012ed0
movsxd rax, dword [rsp + 0x888]
mov byte [rsp + 0x90], r12b
test eax, eax
jle 0x650134b5
mov qword [rsp + 0x2fe8], rbp
xor esi, esi
mov qword [rsp + 0x2f90], r13
mov r13, rax
lea rdi, [rsp + 0x90]
lea rbp, [rsp + rax + 0x870]
mov byte [rsp + 0x90], sil
nop
nop
movzx eax, byte [rbp]
test al, al
je 0x650133bc
movsx ecx, al
call fcn.6501f8a0
movsx ecx, al
mov ebx, eax
call fcn.6501f9d0
movzx edx, byte [rdi]
movzx ecx, bl
test eax, eax
mov eax, 0x30
cmovne ecx, eax
shl dl, 4
add r12b, 1
lea eax, [rcx - 0x30]
mov byte [rdi], dl
cmp al, 9
ja 0x65013344
or al, dl
mov byte [rdi], al
jmp 0x65013352
lea eax, [rcx - 0x61]
cmp al, 5
ja 0x6501337e
sub cl, 0x57
or cl, dl
mov byte [rdi], cl
cmp r12b, 2
jne 0x65013378
movzx eax, byte [rdi]
test al, al
je 0x6501336b
movsx ecx, al
call fcn.6501fae0
test eax, eax
je 0x6501337e
add rdi, 1
add esi, 1
xor r12b, r12b
mov byte [rdi], r12b
add rbp, 1
jmp 0x65013300
xor r12d, r12d
lea rbp, [rsp + 0x90]
lea rdi, [rsp + r13 + 0x870]
mov esi, r12d
movzx ebx, byte [rdi]
test bl, bl
je 0x650133bf
movsx ecx, bl
call fcn.6501fae0
test eax, eax
je 0x650133b7
mov byte [rbp], bl
add rbp, 1
add esi, 1
add rdi, 1
jmp 0x65013394
mov esi, r12d
jmp 0x650133bf
xor r12d, r12d
test esi, esi
mov r13, qword [rsp + 0x2f90]
movsxd r8, esi
mov byte [rsp + r8 + 0x90], 0
mov rdx, r12
jle 0x65013407
nop
nop
movzx ecx, byte [rsp + rdx + 0x90]
movzx eax, byte [rsp + rdx + 0x91]
add rdx, 2
cmp rdx, r8
mov byte [rsp + rdx + 0x8e], al
mov byte [rsp + rdx + 0x8f], cl
jl 0x650133e0
or ebp, 0xffffffff
cmp byte [rsp + 0x90], 0
mov esi, r12d
mov ebx, ebp
je 0x6501349a
lea rdi, [rsp + 0x90]
movsx ecx, byte [rdi]
call fcn.6501f9d0
test eax, eax
jne 0x65013438
test ebx, ebx
mov ebp, esi
cmovs ebx, esi
add rdi, 1
add esi, 1
cmp byte [rdi], 0
jne 0x65013425
test ebx, ebx
js 0x650134a8
test ebp, ebp
js 0x650134a1
movsxd r8, ebx
movsxd r9, ebp
cmp r8, r9
mov rdx, r8
jg 0x65013485
nop
nop
movzx ecx, byte [rsp + rdx + 0x90]
test cl, cl
je 0x65013485
mov rax, rdx
add rdx, 1
add ebx, 1
sub rax, r8
cmp rdx, r9
mov byte [rsp + rax + 0x90], cl
jle 0x65013460
movsxd rax, ebx
mov esi, 1
sub rax, r8
mov byte [rsp + rax + 0x90], 0
jmp 0x650134ad
mov esi, 1
jmp 0x650134ad
mov esi, 1
jmp 0x650134ad
mov esi, 1
mov rbp, qword [rsp + 0x2fe8]
mov rcx, qword [rsp + 0x48]
lea rdx, [rsp + 0x90]
call fcn.65003cc0
mov rcx, qword [rsp + 0x50]
lea rdx, [rsp + 0x480]
call fcn.65003cc0
mov dil, 1
xor eax, eax
mov dword [rsp + 0x68], r12d
mov qword [r15], r12
mov dword [rsp + 0x6c], eax
mov dword [rsp + 0x70], eax
mov dword [rsp + 0x74], eax
mov dword [rsp + 0x78], eax
mov dword [rsp + 0x7c], eax
mov dword [rsp + 0x80], eax
mov dword [rsp + 0x84], eax
mov dword [rsp + 0x88], eax
mov dword [rsp + 0x8c], eax
lock cmpxchg dword [0x65047d74], esi
jne 0x65013590
lea r8, [0x65039760]
lea rcx, [0x650397a0]
mov edx, 0xf
call fcn.6500bcb0
lea r8, [0x650397b0]
lea rcx, [0x650392d8]
mov edx, 8
mov rbx, rax
call fcn.6500c660
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
add dword [0x65044948], 1
test rax, rax
je 0x65013584
mov rdx, rbx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
add dword [0x6504494c], 1
mov qword [0x65047eb8], rax
jmp 0x65013597
mov rax, r12
mov qword [0x65047eb8], rax
jmp 0x65013597
mov rax, qword [0x65047eb8]
mov qword [rsp + 0x38], r12
lea rcx, [rsp + 0x44]
xor r9d, r9d
mov qword [rsp + 0x30], rcx
lea rcx, [rsp + 0x68]
mov dword [rsp + 0x28], 0x28
mov qword [rsp + 0x20], rcx
xor r8d, r8d
mov edx, 0x700a0
mov rcx, r14
call rax
test eax, eax
je 0x650135d7
mov rcx, qword [rsp + 0x80]
mov qword [r15], rcx
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov al, dil
mov rcx, qword [rsp + 0x2f80]
xor rcx, rsp
call fcn.6501e650
add rsp, 0x2f98
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
ret