Function at 0x140198e60
Capabilities:
Get disk information
Get disk size

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xae0]
sub rsp, 0xbe0
mov rax, qword [0x1404779b8]
xor rax, rsp
mov qword [rbp + 0xad0], rax
mov r12, rdx
mov r13, rcx
mov qword [rbp + 0x100], rdx
xor esi, esi
mov dword [rbp - 0x80], esi
mov qword [rdx], rsi
mov qword [rdx + 0x10], rsi
mov qword [rdx + 0x18], SafeArrayLock
mov byte [rdx], sil
mov dword [rbp - 0x80], 1
mov qword [rbp + 0x198], rsi
mov qword [rbp + 0x1a8], rsi
mov qword [rbp + 0x1b0], SafeArrayLock
mov byte [rbp + 0x198], sil
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x4a0]
call fcn.1402539e0
lea rdx, [rbp + 0x4a0]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
mov ebx, eax
xor edx, edx
lea rcx, [rbp - 0x48]
call fcn.1400f39c0
nop
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x110], xmm0
mov qword [rbp + 0x120], rsi
movdqu xmmword [rbp + 0x128], xmm0
mov qword [rbp + 0x138], rsi
lea eax, [rbx - 1]
cmp eax, 0x103
ja 0x1401998c0
lea r15, [rbp + 0x4a0]
cmp word [rbp + 0x4a0], si
je 0x1401998c0
mov byte [rsp + 0x48], 0
xor edx, edx
lea rcx, [rsp + 0x50]
call fcn.1400f4d50
movzx eax, byte [rsp + 0x48]
cmp al, 1
jne 0x140198fa3
cmp qword [rsp + 0x50], 0
jne 0x14019904e
mov r8d, 0x4530
lea rdx, str.D:ProjectAsusSystemAnalysisAsusSystemAnalysisServiceAsusSystemAnalysisServiceOpenSource_nlohmann_jsonjson.hpp
lea rcx, [0x140348220]
call fcn.140283784
mov r8d, 0x4530
lea rcx, [0x140348220]
jmp 0x140199041
cmp al, 2
jne 0x140198fdb
cmp qword [rsp + 0x50], 0
jne 0x14019904e
mov r8d, 0x4531
lea rdx, str.D:ProjectAsusSystemAnalysisAsusSystemAnalysisServiceAsusSystemAnalysisServiceOpenSource_nlohmann_jsonjson.hpp
lea rcx, str.m_type___value_t::array__m_value.array___nullptr
call fcn.140283784
mov r8d, 0x4531
lea rcx, str.m_type___value_t::array__m_value.array___nullptr
jmp 0x140199041
cmp al, 3
jne 0x14019900f
cmp qword [rsp + 0x50], 0
jne 0x14019904e
mov r8d, 0x4532
lea rdx, str.D:ProjectAsusSystemAnalysisAsusSystemAnalysisServiceAsusSystemAnalysisServiceOpenSource_nlohmann_jsonjson.hpp
lea rcx, str.m_type___value_t::string__m_value.string___nullptr
call fcn.140283784
mov r8d, 0x4532
lea rcx, str.m_type___value_t::string__m_value.string___nullptr
jmp 0x140199041
cmp al, 8
jne 0x14019904e
cmp qword [rsp + 0x50], 0
jne 0x14019904e
mov r8d, 0x4533
lea rdx, str.D:ProjectAsusSystemAnalysisAsusSystemAnalysisServiceAsusSystemAnalysisServiceOpenSource_nlohmann_jsonjson.hpp
lea rcx, str.m_type___value_t::binary__m_value.binary___nullptr
call fcn.140283784
mov r8d, 0x4533
lea rcx, str.m_type___value_t::binary__m_value.binary___nullptr
lea rdx, str.D:ProjectAsusSystemAnalysisAsusSystemAnalysisServiceAsusSystemAnalysisServiceOpenSource_nlohmann_jsonjson.hpp
call fcn.140283784
nop
lea r9, [rbp + 0x20]
lea r8, [rbp + 0x18]
lea rdx, [rbp + 0x108]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
je 0x14019937b
mov r8, qword [rbp + 0x18]
lea rdx, str._I64d
lea rcx, [rbp + 0x2a0]
call fcn.14010e060
mov r8, qword [rbp + 0x18]
sub r8, qword [rbp + 0x20]
lea rdx, str._I64d
lea rcx, [rbp + 0x3a0]
call fcn.14010e060
lea rax, [rbp - 0x78]
mov qword [rbp - 0x30], rax
mov qword [rbp + 0x90], rsi
mov qword [rbp + 0xa0], rsi
mov qword [rbp + 0xa8], 7
mov r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp word [r15 + r8*2], 0
jne 0x1401990d0
mov rdx, r15
lea rcx, [rbp + 0x90]
call fcn.140101ff0
lea rdx, [rbp + 0x90]
lea rcx, [rbp + 0x1d8]
call fcn.140215df0
mov rbx, rax
xor eax, eax
mov qword [rbp - 0x70], rax
mov byte [rbp - 0x78], 3
lfence
lea ecx, [rax + 0x20]
call fcn.14021ecb0
mov qword [rax], rsi
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rsi
movups xmm0, xmmword [rbx]
movups xmmword [rax], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rax + 0x10], xmm1
mov qword [rbx + 0x10], rsi
mov qword [rbx + 0x18], SafeArrayLock
mov byte [rbx], 0
mov qword [rbp - 0x70], rax
lea rdx, str.DriveLetter
lea rcx, [rsp + 0x48]
call fcn.1400eac30
mov rbx, rax
lea rcx, [rbp - 0x78]
call fcn.140101e10
movzx ecx, byte [rbx]
movzx eax, byte [rbp - 0x78]
mov byte [rbx], al
mov byte [rbp - 0x78], cl
mov rax, qword [rbx + 8]
mov rcx, qword [rbp - 0x70]
mov qword [rbx + 8], rcx
mov qword [rbp - 0x70], rax
mov rcx, rbx
call fcn.140101e10
lea rcx, [rbp - 0x78]
call fcn.140101e10
movzx edx, byte [rbp - 0x78]
lea rcx, [rbp - 0x70]
call fcn.140103920
nop
mov rdx, qword [rbp + 0x1f0]
cmp rdx, 0x10
jb 0x1401991da
inc rdx
mov rcx, qword [rbp + 0x1d8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401991d5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140199a3e
call fcn.14021ecec
mov byte [rbp + 0x1d8], 0
lea rax, [rbp - 0x68]
mov qword [rbp - 0x30], rax
xor eax, eax
mov qword [rbp - 0x60], rax
mov byte [rbp - 0x68], 3
lfence
lea ecx, [rax + 0x20]
call fcn.14021ecb0
mov rbx, rax
lea rax, [rsp + 0x58]
mov qword [rbp + 0x70], rax
mov qword [rbp + 0x78], rbx
mov qword [rbx], rsi
mov qword [rbx + 0x10], rsi
mov qword [rbx + 0x18], SafeArrayLock
lea rax, [rbp + 0x2a0]
mov r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x140199230
lea rdx, [rbp + 0x2a0]
mov rcx, rbx
call fcn.140101ee0
mov qword [rbp + 0x78], rsi
mov qword [rbp - 0x60], rbx
lea rdx, str.DriveSize
lea rcx, [rsp + 0x48]
call fcn.1400eac30
mov rbx, rax
lea rcx, [rbp - 0x68]
call fcn.140101e10
movzx ecx, byte [rbx]
movzx eax, byte [rbp - 0x68]
mov byte [rbx], al
mov byte [rbp - 0x68], cl
mov rax, qword [rbx + 8]
mov rcx, qword [rbp - 0x60]
mov qword [rbx + 8], rcx
mov qword [rbp - 0x60], rax
mov rcx, rbx
call fcn.140101e10
lea rcx, [rbp - 0x68]
call fcn.140101e10
movzx edx, byte [rbp - 0x68]
lea rcx, [rbp - 0x60]
call fcn.140103920
lea rax, [rbp - 0x58]
mov qword [rbp - 0x30], rax
xor eax, eax
mov qword [rbp - 0x50], rax
mov byte [rbp - 0x58], 3
lfence
lea ecx, [rax + 0x20]
call fcn.14021ecb0
mov rbx, rax
lea rax, [rsp + 0x40]
mov qword [rbp + 0x80], rax
mov qword [rbp + 0x88], rbx
mov qword [rbx], rsi
mov qword [rbx + 0x10], rsi
mov qword [rbx + 0x18], SafeArrayLock
lea rax, [rbp + 0x3a0]
mov r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x140199300
lea rdx, [rbp + 0x3a0]
mov rcx, rbx
call fcn.140101ee0
mov qword [rbp + 0x88], rsi
mov qword [rbp - 0x50], rbx
lea rdx, str.DriveUsage
lea rcx, [rsp + 0x48]
call fcn.1400eac30
mov rbx, rax
lea rcx, [rbp - 0x58]
call fcn.140101e10
movzx ecx, byte [rbx]
movzx eax, byte [rbp - 0x58]
mov byte [rbx], al
mov byte [rbp - 0x58], cl
mov rax, qword [rbx + 8]
mov rcx, qword [rbp - 0x50]
mov qword [rbx + 8], rcx
mov qword [rbp - 0x50], rax
mov rcx, rbx
call fcn.140101e10
lea rcx, [rbp - 0x58]
call fcn.140101e10
movzx edx, byte [rbp - 0x58]
lea rcx, [rbp - 0x50]
call fcn.140103920
xor edx, edx
mov r8d, 0x20a
lea rcx, [rbp + 0x6b0]
call fcn.1402539e0
xor edx, edx
mov r8d, 0x20a
lea rcx, [rbp + 0x8c0]
call fcn.1402539e0
mov dword [rbp - 0x20], esi
mov dword [rbp - 0x24], esi
mov dword [rbp - 0x28], esi
mov dword [rsp + 0x38], 0x20a
lea rax, [rbp + 0x8c0]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x28]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x24]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x20]
mov r8d, 0x20a
lea rdx, [rbp + 0x6b0]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
cmp eax, 1
jne 0x14019955a
lea rax, [rsp + 0x70]
mov qword [rbp - 0x30], rax
mov qword [rbp + 0xb0], rsi
mov qword [rbp + 0xc0], rsi
mov qword [rbp + 0xc8], 7
lea rax, [rbp + 0x6b0]
mov r8, 0xffffffffffffffff
inc r8
cmp word [rax + r8*2], 0
jne 0x140199425
lea rdx, [rbp + 0x6b0]
lea rcx, [rbp + 0xb0]
call fcn.140101ff0
lea rdx, [rbp + 0xb0]
lea rcx, [rbp + 0x1f8]
call fcn.140215df0
mov rbx, rax
xor eax, eax
mov qword [rsp + 0x78], rax
mov byte [rsp + 0x70], 3
lfence
lea ecx, [rax + 0x20]
call fcn.14021ecb0
mov qword [rax], rsi
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rsi
movups xmm0, xmmword [rbx]
movups xmmword [rax], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rax + 0x10], xmm1
mov qword [rbx + 0x10], rsi
mov qword [rbx + 0x18], SafeArrayLock
mov byte [rbx], 0
mov qword [rsp + 0x78], rax
lea rcx, [rsp + 0x70]
call fcn.140101e10
lea rcx, [rsp + 0x70]
call fcn.140101e10
nop
lea rdx, str.DriveName
lea rcx, [rsp + 0x48]
call fcn.1400eac30
mov rbx, rax
lea rcx, [rsp + 0x70]
call fcn.140101e10
movzx ecx, byte [rbx]
movzx eax, byte [rsp + 0x70]
mov byte [rbx], al
mov byte [rsp + 0x70], cl
mov rax, qword [rbx + 8]
mov rcx, qword [rsp + 0x78]
mov qword [rbx + 8], rcx
mov qword [rsp + 0x78], rax
mov rcx, rbx
call fcn.140101e10
lea rcx, [rsp + 0x70]
call fcn.140101e10
movzx edx, byte [rsp + 0x70]
lea rcx, [rsp + 0x78]
call fcn.140103920
nop
mov rdx, qword [rbp + 0x210]
cmp rdx, 0x10
jb 0x140199553
inc rdx
mov rcx, qword [rbp + 0x1f8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14019954e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140199a44
call fcn.14021ecec
mov byte [rbp + 0x1f8], 0
lea rdx, [rbp + 0xe8]
mov rcx, r13
call fcn.1401a1920
nop
lea rdx, [rbp + 0xd0]
mov rcx, r13
call fcn.1401a0dd0
nop
lea rax, [rsp + 0x60]
mov qword [rbp - 0x30], rax
lea rax, [rbp - 0x18]
mov qword [rbp + 0x38], rax
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x18], xmm0
mov qword [rbp - 8], rsi
mov rdi, qword [rbp + 0xd0]
mov r14, qword [rbp + 0xd8]
cmp rdi, r14
je 0x14019962e
mov rsi, r14
sub rsi, rdi
sar rsi, 5
movabs rax, 0x7ffffffffffffff
cmp rsi, rax
ja 0x140199a4a
lfence
shl rsi, 5
mov rcx, rsi
call fcn.1400eb1a0
mov rbx, rax
mov qword [rbp - 0x18], rax
mov qword [rbp - 0x10], rax
add rax, rsi
mov qword [rbp - 8], rax
lea rax, [rbp - 0x18]
mov qword [rbp + 0x28], rax
mov qword [rbp + 0x40], rbx
mov qword [rbp + 0x48], rbx
lea rax, [rbp - 0x18]
mov qword [rbp + 0x50], rax
mov rdx, rdi
mov rcx, rbx
call fcn.1400f3e50
add rbx, 0x20
mov qword [rbp + 0x48], rbx
add rdi, 0x20
cmp rdi, r14
jne 0x140199604
mov qword [rbp + 0x40], rbx
mov qword [rbp - 0x10], rbx
xor esi, esi
mov qword [rbp + 0x28], rsi
xorps xmm0, xmm0
movdqu xmmword [rbp], xmm0
mov qword [rbp + 0x10], rsi
mov rbx, qword [rbp + 0xe8]
mov r14, qword [rbp + 0xf0]
cmp rbx, r14
je 0x1401996da
mov rsi, r14
sub rsi, rbx
sar rsi, 5
movabs rax, 0x7ffffffffffffff
cmp rsi, rax
ja 0x140199a50
lfence
shl rsi, 5
mov rcx, rsi
call fcn.1400eb1a0
mov rdi, rax
mov qword [rbp], rax
mov qword [rbp + 8], rax
add rax, rsi
mov qword [rbp + 0x10], rax
lea rax, [rbp]
mov qword [rbp - 0x38], rax
mov qword [rbp + 0x58], rdi
mov qword [rbp + 0x60], rdi
lea rax, [rbp]
mov qword [rbp + 0x68], rax
nop word [rax + rax]
mov rdx, rbx
mov rcx, rdi
call fcn.1400f3e50
add rdi, 0x20
mov qword [rbp + 0x60], rdi
add rbx, 0x20
cmp rbx, r14
jne 0x1401996b0
mov qword [rbp + 0x58], rdi
mov qword [rbp + 8], rdi
xor esi, esi
mov qword [rbp - 0x38], rsi
lea rax, [rbp - 0x18]
mov qword [rsp + 0x20], rax
lea r9, [rbp]
movzx r8d, word [r15]
lea rdx, [rbp + 0x218]
mov rcx, r13
call fcn.140196a10
mov rbx, rax
xor eax, eax
mov qword [rsp + 0x68], rax
mov byte [rsp + 0x60], 3
lfence
lea ecx, [rax + 0x20]
call fcn.14021ecb0
mov qword [rax], rsi
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rsi
movups xmm0, xmmword [rbx]
movups xmmword [rax], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rax + 0x10], xmm1
mov qword [rbx + 0x10], rsi
mov qword [rbx + 0x18], SafeArrayLock
mov byte [rbx], 0
mov qword [rsp + 0x68], rax
lea rcx, [rsp + 0x60]
call fcn.140101e10
lea rcx, [rsp + 0x60]
call fcn.140101e10
nop
lea rdx, str.DriveType
lea rcx, [rsp + 0x48]
call fcn.1400eac30
mov rbx, rax
lea rcx, [rsp + 0x60]
call fcn.140101e10
movzx ecx, byte [rbx]
movzx eax, byte [rsp + 0x60]
mov byte [rbx], al
mov byte [rsp + 0x60], cl
mov rax, qword [rbx + 8]
mov rcx, qword [rsp + 0x68]
mov qword [rbx + 8], rcx
mov qword [rsp + 0x68], rax
mov rcx, rbx
call fcn.140101e10
lea rcx, [rsp + 0x60]
call fcn.140101e10
movzx edx, byte [rsp + 0x60]
lea rcx, [rsp + 0x68]
call fcn.140103920
nop
lea rcx, [rbp + 0x218]
call fcn.1401019e0
movzx edi, byte [rsp + 0x48]
mov ecx, edi
test dil, dil
je 0x14019985f
sub ecx, 1
je 0x1401997ea
cmp ecx, 1
jne 0x1401997fb
mov rcx, qword [rsp + 0x50]
mov rax, qword [rcx + 8]
cmp qword [rcx], rax
jmp 0x1401997f4
mov rax, qword [rsp + 0x50]
cmp qword [rax + 8], 0
sete al
test al, al
jne 0x14019985f
movzx eax, byte [rbp - 0x48]
test al, al
je 0x140199811
cmp al, 2
jne 0x140199a56
mov rbx, qword [rbp - 0x40]
jmp 0x140199831
mov byte [rbp - 0x48], 2
mov dl, 2
lea rcx, [rbp + 0x30]
call fcn.1400f4d50
mov rbx, qword [rbp + 0x30]
mov qword [rbp - 0x40], rbx
lea rcx, [rbp - 0x48]
call fcn.140101e10
mov rax, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
je 0x14019984f
lea rdx, [rsp + 0x48]
mov rcx, rax
call fcn.1400f3b30
add qword [rbx + 8], 0x10
jmp 0x14019985f
lea r8, [rsp + 0x48]
mov rdx, rax
mov rcx, rbx
call fcn.14018d8c0
mov rax, 0xffffffffffffffff
nop word [rax + rax]
lea rax, [rax + 1]
cmp word [r15 + rax*2], 0
jne 0x140199870
lea r15, [r15 + rax*2]
add r15, 2
lea rcx, [rbp + 0xd0]
call fcn.140114440
nop
lea rcx, [rbp + 0xe8]
call fcn.140114440
nop
lea rcx, [rsp + 0x48]
call fcn.140101e10
movzx edx, dil
lea rcx, [rsp + 0x50]
call fcn.140103920
cmp word [r15], 0
jmp 0x140198f4c
mov dword [rsp + 0x28], esi
mov byte [rsp + 0x20], 0
mov r9b, 0x20
mov r8d, 0xffffffff
lea rdx, [rbp + 0x238]
lea rcx, [rbp - 0x48]
call fcn.140104260
mov rdx, rax
mov rcx, r12
call fcn.1400f6230
lea rcx, [rbp + 0x238]
call fcn.1400f5450
mov rcx, qword [r12 + 0x10]
movabs rax, 0x7fffffffffffffff
sub rax, rcx
cmp rax, 0x31
jb 0x140199aae
lfence
mov rax, r12
cmp qword [r12 + 0x18], 0x10
jb 0x140199927
mov rax, qword [r12]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x31
lea r9, str._SystemInfoClass__Detail_GetDriveList_:_return_:
mov r8, r12
movzx edx, byte [rsp + 0x40]
lea rcx, [rbp + 0x1b8]
call fcn.1400f40e0
mov dword [rbp - 0x80], 3
movups xmm0, xmmword [rbp + 0x1b8]
movups xmmword [rbp + 0x198], xmm0
movups xmm1, xmmword [rbp + 0x1c8]
movups xmmword [rbp + 0x1a8], xmm1
movdqa xmm0, xmmword [0x14034a0c0]
movdqu xmmword [rbp + 0x1c8], xmm0
mov byte [rbp + 0x1b8], 0
lea rcx, [rbp + 0x1b8]
call fcn.1400f5450
lea rdx, [rbp + 0x198]
lea rcx, [rbp + 0x140]
call fcn.1400f3e50
mov rcx, rax
call fcn.1401a7f60
nop
lea rcx, [rbp - 0x48]
call fcn.140101e10
movzx edx, byte [rbp - 0x48]
lea rcx, [rbp - 0x40]
call fcn.140103920
nop
mov rdx, qword [rbp + 0x1b0]
cmp rdx, 0x10
jb 0x140199a0b
inc rdx
mov rcx, qword [rbp + 0x198]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140199a06
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140199a38
call fcn.14021ecec
mov rax, r12
mov rcx, qword [rbp + 0xad0]
xor rcx, rsp
call fcn.14021f250
mov rbx, qword [rsp + 0xc30]
add rsp, 0xbe0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.140260f54
nop
call fcn.140260f54
int3
call fcn.140260f54
nop
call fcn.1401018e0
nop
call fcn.1401018e0
nop
lea rcx, [rbp - 0x48]
call fcn.14010d7c0
mov rdx, rax
lea rcx, [rbp + 0x258]
call fcn.1400f3ef0
nop
mov r8, rax
lea rdx, str.cannot_use_push_back___with
lea rcx, [rbp + 0x278]
call fcn.1400eafe0
nop
mov r8, rax
mov edx, 0x134
lea rcx, [rbp + 0x160]
call fcn.140103370
lea rdx, [0x1403cffd8]
lea rcx, [rbp + 0x160]
call fcn.14025213c
nop
call fcn.140101a70
int3