Function at 0x14003f010
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x180]
sub rsp, 0x280
mov rax, qword [0x140183808]
xor rax, rsp
mov qword [rbp + 0x170], rax
mov rax, qword [rbp + 0x1e0]
mov rdi, r9
mov qword [rsp + 0x48], rax
mov ebx, r8d
xor eax, eax
mov qword [rsp + 0x50], r9
mov r15b, al
mov byte [rsp + 0x30], al
mov qword [rsp + 0x40], rax
mov r12b, al
mov byte [rsp + 0x32], al
mov r13d, eax
mov byte [rsp + 0x33], al
mov r14, rdx
mov byte [rsp + 0x31], al
mov dword [rsp + 0x34], eax
mov qword [rsp + 0x38], rax
mov rcx, qword [0x140183048]
lea rdx, [0x140183048]
lea esi, [rax + 1]
cmp rcx, rdx
je 0x14003f0c1
test byte [rcx + 0x1c], sil
je 0x14003f0c1
cmp byte [rcx + 0x19], 4
jb 0x14003f0c1
mov rcx, qword [rcx + 0x10]
lea edx, [rax + 0x5e]
lea r8, [0x14015df88]
call fcn.140004e50
xor eax, eax
lea rdx, [0x140183048]
mov byte [rdi], al
mov rcx, qword [0x140183048]
cmp rcx, rdx
je 0x14003f138
test byte [rcx + 0x1c], sil
je 0x14003f101
cmp byte [rcx + 0x19], 4
jb 0x14003f101
mov rcx, qword [rcx + 0x10]
lea r8, [0x14015df88]
mov edx, 0x5f
mov r9, r14
call fcn.140005f10
mov rcx, qword [0x140183048]
lea rdx, [0x140183048]
cmp rcx, rdx
je 0x14003f138
test byte [rcx + 0x1c], sil
je 0x14003f138
cmp byte [rcx + 0x19], 4
jb 0x14003f138
mov rcx, qword [rcx + 0x10]
lea r8, [0x14015df88]
mov edx, 0x60
mov r9d, ebx
call fcn.140004e7c
mov rcx, qword [0x140183048]
lea rdx, [0x140183048]
test r14, r14
jne 0x14003f17b
mov ebx, 0x80070057
cmp rcx, rdx
je 0x14003f802
test byte [rcx + 0x1c], sil
je 0x14003f802
lea edi, [r14 + 2]
cmp byte [rcx + 0x19], dil
jb 0x14003f802
lea edx, [rdi + 0x5f]
mov rcx, qword [rcx + 0x10]
lea r8, [0x14015df88]
call fcn.140004e50
jmp 0x14003f802
mov edi, 2
cmp ebx, edi
je 0x14003f1b9
lea eax, [rbx - 4]
cmp eax, edi
ja 0x14003f190
mov r15b, sil
jmp 0x14003f1be
mov ebx, 0x80070057
cmp rcx, rdx
je 0x14003f802
test byte [rcx + 0x1c], sil
je 0x14003f802
cmp byte [rcx + 0x19], dil
jb 0x14003f802
mov edx, 0x62
jmp 0x14003f166
mov byte [rsp + 0x30], sil
lea r8, [rsp + 0x32]
xor edx, edx
mov rcx, r14
call fcn.14008f85c
mov ebx, eax
xor eax, eax
test ebx, ebx
jns 0x14003f23f
cmp ebx, 0x8078011a
je 0x14003f336
cmp ebx, 0x8078006f
je 0x14003f336
cmp ebx, 0x80780071
je 0x14003f336
mov rcx, qword [0x140183048]
lea r8, [0x140183048]
cmp rcx, r8
je 0x14003f802
test byte [rcx + 0x1c], sil
je 0x14003f802
cmp byte [rcx + 0x19], dil
jb 0x14003f802
lea edx, [rax + 0x63]
mov rcx, qword [rcx + 0x10]
lea r8, [0x14015df88]
mov r9d, ebx
call fcn.140004e7c
jmp 0x14003f802
cmp byte [rsp + 0x32], al
jne 0x14003f336
mov r8d, 0x104
lea rdx, [rsp + 0x60]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetVolumePathNameW]
nop dword [rax + rax]
test eax, eax
jne 0x14003f2de
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov esi, eax
mov rcx, qword [0x140183048]
lea r8, [0x140183048]
cmp rcx, r8
je 0x14003f2b0
test byte [rcx + 0x1c], 1
je 0x14003f2b0
cmp byte [rcx + 0x19], dil
jb 0x14003f2b0
mov rcx, qword [rcx + 0x10]
lea r8, [0x14015df88]
mov edx, 0x64
mov dword [rsp + 0x20], eax
mov r9, r14
call fcn.140005f80
lea eax, [rsi - 2]
lea rdi, [0x140183048]
cmp eax, 1
jbe 0x14003f2cf
movzx ebx, si
or ebx, 0x80070000
test esi, esi
cmovle ebx, esi
jmp 0x14003f2d4
mov ebx, 0x80780057
mov esi, 1
jmp 0x14003f809
lea rcx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
nop dword [rax + rax]
sub eax, edi
je 0x14003f7fd
sub eax, esi
je 0x14003f340
sub eax, esi
je 0x14003f31e
lea rdi, [0x140183048]
cmp eax, esi
je 0x14003f314
mov ebx, 0x80780057
jmp 0x14003f809
mov ebx, 0x80780082
jmp 0x14003f809
lea r8, [0x14015b4f4]
mov edx, 0x748
lea rcx, str.base_stor_blbengine_serviceengine.cpp
call fcn.14008f4c8
mov ebx, 0x80780083
jmp 0x14003f802
lea rdx, [rsp + 0x31]
lea rcx, [rsp + 0x60]
call fcn.14013c960
mov ebx, eax
xor eax, eax
test ebx, ebx
jns 0x14003f44e
cmp ebx, 0x80780076
jne 0x14003f407
mov rcx, qword [0x140183048]
lea rax, [0x140183048]
cmp rcx, rax
je 0x14003f39b
test byte [rcx + 0x1c], sil
je 0x14003f39b
cmp byte [rcx + 0x19], 4
jb 0x14003f39b
mov rcx, qword [rcx + 0x10]
lea r8, [0x14015df88]
mov edx, 0x65
call fcn.140004e50
lea r8, [rsp + 0x34]
mov dl, sil
lea rcx, [rsp + 0x60]
call fcn.14013de5c
xor edx, edx
mov ebx, eax
test eax, eax
jns 0x14003f49b
mov rcx, qword [0x140183048]
lea rax, [0x140183048]
cmp rcx, rax
je 0x14003f802
test byte [rcx + 0x1c], sil
je 0x14003f802
cmp byte [rcx + 0x19], dil
jb 0x14003f802
mov edx, 0x68
lea r9, [rsp + 0x60]
mov rcx, qword [rcx + 0x10]
lea r8, [0x14015df88]
mov dword [rsp + 0x20], ebx
call fcn.140005f80
jmp 0x14003f802
cmp ebx, 0x80070003
jne 0x14003f419
mov ebx, 0x8078007c
jmp 0x14003f802
mov rcx, qword [0x140183048]
lea rax, [0x140183048]
cmp rcx, rax
je 0x14003f802
test byte [rcx + 0x1c], sil
je 0x14003f802
cmp byte [rcx + 0x19], dil
jb 0x14003f802
mov edx, 0x66
jmp 0x14003f227
cmp byte [rsp + 0x31], al
je 0x14003f39b
mov rcx, qword [0x140183048]
lea rax, [0x140183048]
cmp rcx, rax
je 0x14003f491
test byte [rcx + 0x1c], sil
je 0x14003f491
cmp byte [rcx + 0x19], dil
jb 0x14003f491
mov rcx, qword [rcx + 0x10]
lea r9, [rsp + 0x60]
mov edx, 0x67
lea r8, [0x14015df88]
call fcn.140005f10
mov ebx, 0x80780077
jmp 0x14003f802
mov eax, dword [rsp + 0x34]
bt eax, 0xb
jae 0x14003f4f2
mov rcx, qword [0x140183048]
lea r8, [0x140183048]
cmp rcx, r8
je 0x14003f4eb
test byte [rcx + 0x1c], sil
je 0x14003f4eb
cmp byte [rcx + 0x19], 4
jb 0x14003f4eb
mov rcx, qword [rcx + 0x10]
lea r9, [rsp + 0x60]
mov edx, 0x69
mov dword [rsp + 0x20], eax
lea r8, [0x14015df88]
call fcn.140005f80
mov rcx, qword [0x140183048]
xor edx, edx
mov ebx, 0x807800c7
jmp 0x14003f4f9
mov rcx, qword [0x140183048]
or rsi, 0xffffffffffffffff
test r15b, r15b
je 0x14003f5bd
mov rax, rsi
inc rax
cmp word [r14 + rax*2], dx
jne 0x14003f509
cmp word [r14 + rax*2 - 2], 0x3a
jne 0x14003f559
lea rax, [0x140183048]
mov esi, 1
cmp rcx, rax
je 0x14003f54f
test byte [rcx + 0x1c], sil
je 0x14003f54f
cmp byte [rcx + 0x19], dil
jb 0x14003f54f
mov rcx, qword [rcx + 0x10]
lea edx, [rsi + 0x69]
mov r9, r14
lea r8, [0x14015df88]
call fcn.140005f10
mov ebx, 0x80780057
jmp 0x14003f802
mov byte [rsp + 0x31], dl
mov rcx, r14
lea rdx, [rsp + 0x31]
call fcn.140105d50
xor edx, edx
mov ebx, eax
test eax, eax
jns 0x14003f5a8
mov rcx, qword [0x140183048]
lea rax, [0x140183048]
lea esi, [rdx + 1]
cmp rcx, rax
je 0x14003f802
test byte [rcx + 0x1c], sil
je 0x14003f802
cmp byte [rcx + 0x19], dil
jb 0x14003f802
lea edx, [rsi + 0x6a]
jmp 0x14003f227
cmp byte [rsp + 0x31], dl
jne 0x14003f5bd
mov ebx, 0x80780057
mov esi, 1
jmp 0x14003f802
inc rsi
cmp word [r14 + rsi*2], dx
jne 0x14003f5bd
mov r8, rsi
lea rdx, [rsp + 0x60]
mov rcx, r14
call qword [sym.imp.msvcrt.dll__wcsnicmp]
nop dword [rax + rax]
xor ecx, ecx
test eax, eax
movzx esi, cl
lea eax, [rcx + 1]
cmove esi, eax
cmp byte [rsp + 0x30], cl
je 0x14003f602
test sil, sil
jne 0x14003f602
mov ebx, 0x80780057
mov esi, eax
jmp 0x14003f802
test r15b, r15b
je 0x14003f7f0
mov byte [rsp + 0x30], cl
lea rdx, [rsp + 0x40]
mov rcx, r14
call fcn.140096dd4
mov ebx, eax
test eax, eax
jns 0x14003f65a
mov rcx, qword [0x140183048]
lea rax, [0x140183048]
mov esi, 1
cmp rcx, rax
je 0x14003f802
test byte [rcx + 0x1c], sil
je 0x14003f802
cmp byte [rcx + 0x19], dil
jb 0x14003f802
lea edx, [rsi + 0x6b]
jmp 0x14003f227
mov r15, qword [rsp + 0x40]
lea rdx, [rsp + 0x30]
mov rcx, r15
call fcn.14013c810
xor ecx, ecx
mov ebx, eax
test eax, eax
jns 0x14003f6ac
mov rcx, qword [0x140183048]
lea rax, [0x140183048]
mov esi, 1
cmp rcx, rax
je 0x14003f802
test byte [rcx + 0x1c], sil
je 0x14003f802
cmp byte [rcx + 0x19], dil
jb 0x14003f802
lea edx, [rsi + 0x6c]
jmp 0x14003f227
cmp byte [rsp + 0x30], cl
jne 0x14003f6bc
mov ebx, 0x80780084
jmp 0x14003f5b3
test r15, r15
je 0x14003f754
lea rdx, [rsp + 0x38]
mov rcx, r15
call fcn.14013d118
xor ecx, ecx
mov ebx, eax
test eax, eax
jns 0x14003f722
mov rcx, qword [0x140183048]
lea rdi, [0x140183048]
cmp rcx, rdi
je 0x14003f718
test dword [rcx + 0x1c], 0x200
je 0x14003f718
cmp byte [rcx + 0x19], 3
jb 0x14003f718
mov rcx, qword [rcx + 0x10]
lea r8, [0x14015df88]
mov edx, 0x6e
mov dword [rsp + 0x20], eax
mov r9, r15
call fcn.140005f80
mov r13, qword [rsp + 0x38]
jmp 0x14003f2d4
mov r13, qword [rsp + 0x38]
test sil, sil
je 0x14003f744
mov rcx, r13
call fcn.140094304
xor ecx, ecx
test al, al
je 0x14003f744
mov ebx, 0x80780193
jmp 0x14003f5b3
mov rax, qword [rsp + 0x48]
test rax, rax
je 0x14003f754
mov qword [rax], r13
mov r13, rcx
mov byte [rsp + 0x30], cl
lea rdx, [rsp + 0x30]
mov rcx, r14
call fcn.140105e3c
mov ebx, eax
xor eax, eax
test ebx, ebx
jns 0x14003f799
mov rcx, qword [0x140183048]
lea rax, [0x140183048]
mov esi, 1
cmp rcx, rax
je 0x14003f802
test byte [rcx + 0x1c], sil
je 0x14003f802
cmp byte [rcx + 0x19], dil
jb 0x14003f802
lea edx, [rsi + 0x6e]
jmp 0x14003f227
cmp byte [rsp + 0x30], al
je 0x14003f7a9
mov ebx, 0x80780085
jmp 0x14003f5b3
lea rdx, [rsp + 0x33]
mov rcx, r14
call fcn.140105ee4
mov ebx, eax
test eax, eax
jns 0x14003f7eb
mov rcx, qword [0x140183048]
lea rax, [0x140183048]
mov esi, 1
cmp rcx, rax
je 0x14003f802
test byte [rcx + 0x1c], sil
je 0x14003f802
cmp byte [rcx + 0x19], dil
jb 0x14003f802
lea edx, [rsi + 0x6f]
mov r9, r14
jmp 0x14003f3ee
mov r12b, byte [rsp + 0x33]
mov rax, qword [rsp + 0x50]
mov byte [rax], r12b
jmp 0x14003f5b3
mov ebx, 0x8078012f
lea rdi, [0x140183048]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
test r13, r13
je 0x14003f82e
mov rcx, r13
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
mov rcx, qword [0x140183048]
cmp rcx, rdi
je 0x14003f85b
test byte [rcx + 0x1c], sil
je 0x14003f85b
cmp byte [rcx + 0x19], 4
jb 0x14003f85b
mov rcx, qword [rcx + 0x10]
lea r8, [0x14015df88]
mov edx, 0x71
call fcn.140004e50
mov eax, ebx
mov rcx, qword [rbp + 0x170]
xor rcx, rsp
call fcn.1401534b0
mov rbx, qword [rsp + 0x2c0]
add rsp, 0x280
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret