Function at 0x14003de9c
Capabilities:
Get disk information

Disassembly:
push rbx
push rbp
push rsi
push rdi
sub rsp, 0x2d8
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov rax, qword [0x140197b10]
xor rax, rsp
mov qword [rsp + 0x2c0], rax
mov al, r9b
mov byte [rsp + 0x20], al
mov qword [rsp + 0x40], r8
mov qword [rsp + 0x50], rdx
mov rbp, rcx
mov bl, r9b
and bl, 0xf0
and al, 0xf
mov byte [rsp + 0x21], al
mov eax, 1
mov edi, eax
mov dword [rsp + 0x24], eax
call fcn.14010d9c8
mov qword [rsp + 0x48], rax
lea esi, [rax + 0x20d]
mov dword [rsp + 0x30], esi
xor ecx, ecx
cmp bl, cl
jne 0x14003df2c
cmp eax, 4
jle 0x14003df2c
cdqe
lea rcx, [rbp + rax*2 - 8]
lea rdx, str..INF
call fcn.14010c4b4
xor ecx, ecx
cmp eax, ecx
jne 0x14003df2c
mov dword [rsp + 0x38], edi
jmp 0x14003df30
mov dword [rsp + 0x38], ecx
lea edx, [rsi + 0x325]
lea rcx, [rsp + 0x58]
call fcn.140063580
nop
mov rsi, qword [rsp + 0x58]
movsxd rax, dword [rsp + 0x30]
lea rbx, [rsi + rax*2]
mov r8d, 0x5c
cmp word [rbp], r8w
jne 0x14003dfbe
mov rdx, rbx
mov ecx, 0x324
call qword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
xor eax, eax
cmp word [rbx], ax
je 0x14003dfb9
lea r9, [rbp + 2]
mov r8, rbx
lea rdx, str._s_s
mov rcx, rsi
call fcn.140029bc4
mov r9b, byte [rsp + 0x20]
mov r8, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x50]
mov rcx, rsi
call fcn.14003de9c
neg eax
sbb ecx, ecx
and edi, ecx
mov rcx, rbx
call fcn.14010d9c8
inc eax
lea rbx, [rbx + rax*2]
xor eax, eax
cmp word [rbx], ax
jne 0x14003df71
jmp 0x14003e2c1
xor eax, eax
cmp dword [rsp + 0x38], eax
jne 0x14003e016
xor ebp, ebp
cmp byte [rsp + 0x21], bpl
jne 0x14003dff4
mov rbp, qword [rsp + 0x48]
movsxd rax, ebp
lea rcx, [rsi + rax*2]
mov r8d, 0x16
lea rdx, str.INF.INF
call fcn.14010cd30
lea ebx, [rbp + 5]
xor ebp, ebp
jmp 0x14003e03d
mov rbx, qword [rsp + 0x48]
movsxd rax, ebx
lea rcx, [rsi + rax*2]
mov r8d, 0x16
lea rdx, [0x14014a028]
call fcn.14010cd30
inc ebx
jmp 0x14003e03d
xor edx, edx
mov rcx, rbp
call qword [sym.imp.SHLWAPI.dll_StrRChrW]
mov rbx, rax
xor eax, eax
cmp rbx, rax
je 0x14003e039
sub rbx, rbp
add rbx, 2
sar rbx, 1
xor ebp, ebp
jmp 0x14003e03d
xor ebp, ebp
mov ebx, ebp
mov dword [rsp + 0x70], ebp
xor edx, edx
mov r8d, 0x24c
lea rcx, [rsp + 0x74]
call fcn.14010c6c0
mov qword [rsp + 0x28], rbp
lea r8, [rsp + 0x70]
mov rdx, rsi
lea rcx, [rsp + 0x28]
call fcn.1400cf3b0
cmp qword [rsp + 0x28], rbp
je 0x14003e1a3
mov ebp, dword [rsp + 0x24]
lea rcx, [rsp + 0x9c]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
movsxd r8, eax
add r8, r8
movsxd rax, ebx
lea rcx, [rsi + rax*2]
lea rdx, [rsp + 0x9c]
call fcn.14010cd30
mov rax, qword [rsp + 0x40]
test rax, rax
je 0x14003e0c0
mov rdx, rsi
mov rcx, rax
call fcn.14002bf84
test al, al
je 0x14003e171
mov rdx, rsi
mov rcx, qword [rsp + 0x50]
call fcn.14003db88
mov qword [rsp + 0x30], rax
xor ecx, ecx
cmp byte [0x14019c056], cl
jne 0x14003e161
cmp rax, rcx
je 0x14003e169
mov ebp, ecx
cmp byte [0x14019c0cc], 3
jne 0x14003e113
mov rdx, rax
mov rcx, rsi
call fcn.14002c0b8
mov ecx, eax
inc ebp
cmp ebp, 2
jge 0x14003e14d
xor eax, eax
cmp ecx, eax
je 0x14003e158
mov rax, qword [rsp + 0x30]
xor r8d, r8d
mov rdx, rsi
mov rcx, rax
call fcn.14002be7c
mov ecx, eax
inc ebp
cmp ebp, 2
jge 0x14003e142
xor eax, eax
cmp ecx, eax
je 0x14003e137
mov rax, qword [rsp + 0x30]
jmp 0x14003e0f4
mov rax, qword [rsp + 0x30]
mov ebp, ecx
xor ecx, ecx
jmp 0x14003e161
mov rax, qword [rsp + 0x30]
mov ebp, ecx
xor ecx, ecx
jmp 0x14003e161
mov rax, qword [rsp + 0x30]
mov ebp, ecx
xor ecx, ecx
jmp 0x14003e161
mov rax, qword [rsp + 0x30]
mov ebp, ecx
xor ecx, ecx
cmp rax, rcx
je 0x14003e169
mov word [rax], cx
mov eax, ebp
neg eax
sbb ecx, ecx
and edi, ecx
lea rdx, [rsp + 0x70]
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
xor ecx, ecx
cmp eax, ecx
jne 0x14003e079
mov rcx, qword [rsp + 0x28]
xor ebp, ebp
cmp rcx, rbp
je 0x14003e1a3
cmp rcx, 0xffffffffffffffff
je 0x14003e1a3
call qword [sym.imp.KERNEL32.dll_FindClose]
mov qword [rsp + 0x28], rbp
cmp byte [rsp + 0x21], 1
je 0x14003e1bb
mov qword [rsp + 0x28], rbp
mov edi, ebp
jmp 0x14003e2c1
mov rbx, qword [rsp + 0x48]
movsxd rax, ebx
lea rcx, [rsi + rax*2]
mov r8d, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
lea rdx, str..
call fcn.14010cd30
inc ebx
mov word [rsp + 0xa0], bp
lea r8, [rsp + 0x70]
mov rdx, rsi
lea rcx, [rsp + 0x28]
call fcn.1400cf3b0
cmp qword [rsp + 0x28], rbp
jne 0x14003e208
mov qword [rsp + 0x28], rbp
mov edi, ebp
jmp 0x14003e2c1
mov ecx, 0x2e
test byte [rsp + 0x70], 0x10
je 0x14003e289
cmp cx, word [rsp + 0x9c]
jne 0x14003e23a
movzx eax, word [rsp + 0x9e]
cmp ax, bp
je 0x14003e289
cmp cx, ax
jne 0x14003e23a
cmp word [rsp + 0xa0], bp
je 0x14003e289
lea rcx, [rsp + 0x9c]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
movsxd r8, eax
add r8, r8
movsxd rax, ebx
lea rcx, [rsi + rax*2]
lea rdx, [rsp + 0x9c]
call fcn.14010cd30
mov r9b, byte [rsp + 0x20]
mov r8, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x50]
mov rcx, rsi
call fcn.14003de9c
neg eax
sbb ecx, ecx
and edi, ecx
mov word [rsp + 0xa0], bp
lea rdx, [rsp + 0x70]
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
cmp eax, ebp
mov ecx, 0x2e
jne 0x14003e20d
mov rcx, qword [rsp + 0x28]
cmp rcx, rbp
je 0x14003e2bc
cmp rcx, 0xffffffffffffffff
je 0x14003e2bc
call qword [sym.imp.KERNEL32.dll_FindClose]
mov qword [rsp + 0x28], rbp
lea rcx, [rsp + 0x58]
call fcn.14005b520
mov eax, edi
mov rcx, qword [rsp + 0x2c0]
xor rcx, rsp
call fcn.14010bcc0
add rsp, 0x2d8
pop rdi
pop rsi
pop rbp
pop rbx
ret