Function at 0x10012044c
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x260
mov rax, qword [0x100176150]
xor rax, rsp
mov qword [rsp + 0x250], rax
mov rdi, rcx
xor ebx, ebx
lea rcx, [0x100044860]
mov r13, r8
mov r15, rdx
lea esi, [rbx + 1]
call fcn.10011c978
lea rcx, [rsp + 0x42]
xor edx, edx
mov r8d, 0x206
mov r12, rbx
mov word [rsp + 0x40], bx
call sub.msvcrt.dll_memset
mov r14, rbx
cmp r15, rbx
jne 0x10012055b
lea r9d, [rbx + 0x57]
mov esi, ebx
mov ebx, r9d
mov rcx, qword [0x100177368]
lea rax, [0x100177368]
cmp rcx, rax
je 0x1001204f7
test byte [rcx + 0x1c], 8
je 0x1001204f7
lea edx, [r14 + 0x1c]
lea rax, [0x100043548]
mov rcx, qword [rcx + 0x10]
lea r8, [0x100002d20]
mov qword [rsp + 0x20], rax
call fcn.100106904
mov rcx, rsi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rcx, r12
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rcx, r14
call qword [sym.imp.ole32.dll_CoTaskMemFree]
lea rcx, [0x100044860]
call fcn.10011c9b8
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, esi
mov rcx, qword [rsp + 0x250]
xor rcx, rsp
call fcn.100130830
mov rbx, qword [rsp + 0x2b8]
add rsp, 0x260
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
cmp rdi, rbx
jne 0x10012059c
mov r9d, 0x57
mov esi, ebx
mov ebx, r9d
mov rcx, qword [0x100177368]
lea rax, [0x100177368]
cmp rcx, rax
je 0x1001204f7
test byte [rcx + 0x1c], 8
je 0x1001204f7
lea edx, [r9 - 0x3a]
lea rax, [0x1000428b0]
jmp 0x1001204e2
cmp r13, rbx
jne 0x1001205dd
mov r9d, 0x57
mov esi, ebx
mov ebx, r9d
mov rcx, qword [0x100177368]
lea rax, [0x100177368]
cmp rcx, rax
je 0x1001204f7
test byte [rcx + 0x1c], 8
je 0x1001204f7
lea edx, [r9 - 0x39]
lea rax, [0x1000448a8]
jmp 0x1001204e2
mov qword [r15], rbx
lea rdx, [0x100021af8]
mov r8d, 4
mov rcx, rdi
mov qword [r13], rbx
call qword [sym.imp.msvcrt.dll__wcsnicmp]
cmp eax, ebx
je 0x100120651
lea rcx, [0x100021af8]
mov rdx, rdi
call fcn.10011cf04
mov r14, rax
cmp rax, rbx
jne 0x100120693
mov r9d, 0xe
mov esi, ebx
mov ebx, r9d
mov rcx, qword [0x100177368]
lea rax, [0x100177368]
cmp rcx, rax
je 0x1001204f7
test byte [rcx + 0x1c], 8
je 0x1001204f7
lea edx, [r9 + 0x11]
lea rax, [0x1000448c0]
jmp 0x1001204e2
mov rcx, rdi
call fcn.10011ce74
mov r14, rax
cmp rax, rbx
jne 0x100120693
mov r9d, 0xe
mov esi, ebx
mov ebx, r9d
mov rcx, qword [0x100177368]
lea rax, [0x100177368]
cmp rcx, rax
je 0x1001204f7
test byte [rcx + 0x1c], 8
je 0x1001204f7
lea edx, [r9 + 0x12]
jmp 0x100120645
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, r14
repne scasw ax, word [rdi]
not rcx
sub rcx, rsi
lea ebp, [rcx + 2]
lea ecx, [rbp + rbp]
call fcn.10011ce34
mov r12, rax
cmp rax, rbx
jne 0x1001206f5
mov r9d, 0xe
mov esi, ebx
mov ebx, r9d
mov rcx, qword [0x100177368]
lea rax, [0x100177368]
cmp rcx, rax
je 0x1001204f7
test byte [rcx + 0x1c], 8
je 0x1001204f7
lea edx, [r9 + 0x13]
lea rax, [0x1000448e0]
jmp 0x1001204e2
mov r8d, ebp
mov rdx, rax
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetVolumePathNameW]
cmp eax, ebx
jne 0x100120754
mov esi, ebx
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov rcx, qword [0x100177368]
lea rax, [0x100177368]
cmp rcx, rax
je 0x1001204f7
test byte [rcx + 0x1c], 8
je 0x1001204f7
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, 0x22
mov r9d, eax
lea rax, [0x100044900]
mov rcx, qword [0x100177368]
jmp 0x1001204e2
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, r12
repne scasw ax, word [rdi]
not rcx
sub rcx, rsi
cmp word [r12 + rcx*2 - 2], 0x5c
je 0x1001207f8
lea r8, [0x1000021a0]
mov edx, ebp
mov rcx, r12
mov edi, ebp
call fcn.100052624
cmp eax, ebx
jge 0x1001207f8
mov ecx, eax
mov esi, ebx
call fcn.10011ca20
mov ebx, eax
mov rcx, qword [0x100177368]
lea rax, [0x100177368]
cmp rcx, rax
je 0x1001204f7
test byte [rcx + 0x1c], 8
je 0x1001204f7
lea r8, [0x1000021a0]
mov rdx, rdi
mov rcx, r12
call fcn.100052624
mov rcx, qword [0x100177368]
lea r8, [0x100002d20]
mov rcx, qword [rcx + 0x10]
mov r9d, eax
lea rax, [0x100044958]
mov edx, 0x23
mov qword [rsp + 0x20], rax
call fcn.100106904
jmp 0x1001204f7
lea rdx, [rsp + 0x40]
mov r8d, 0x104
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GetVolumeNameForVolumeMountPointW]
cmp eax, ebx
jne 0x100120855
mov esi, ebx
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov rcx, qword [0x100177368]
lea rax, [0x100177368]
cmp rcx, rax
je 0x1001204f7
test byte [rcx + 0x1c], 8
je 0x1001204f7
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, 0x24
mov r9d, eax
lea rax, [0x1000449a0]
jmp 0x100120748
or rbp, 0xffffffffffffffff
xor eax, eax
lea rdi, [rsp + 0x40]
mov rcx, rbp
repne scasw ax, word [rdi]
not rcx
sub rcx, rsi
cmp word [rsp + rcx*2 + 0x3e], 0x5c
jne 0x100120879
mov word [rsp + rcx*2 + 0x3e], bx
mov rcx, rbp
mov rdi, r12
repne scasw ax, word [rdi]
not rcx
sub rcx, rsi
cmp word [r12 + rcx*2 - 2], 0x5c
jne 0x100120897
mov word [r12 + rcx*2 - 2], bx
lea rcx, [rsp + 0x40]
call fcn.10011ce74
mov qword [rsp + 0x30], rax
cmp rax, rbx
jne 0x1001208dc
mov r9d, 0xe
mov esi, ebx
mov ebx, r9d
mov rcx, qword [0x100177368]
lea rax, [0x100177368]
cmp rcx, rax
je 0x10012093f
test byte [rcx + 0x1c], 8
je 0x10012093f
lea edx, [r9 + 0x17]
lea rax, [0x100044a10]
jmp 0x10012092a
xor eax, eax
mov rcx, rbp
mov rdi, r12
repne scasw ax, word [rdi]
not rcx
sub rcx, rsi
lea rcx, [r14 + rcx*2]
call fcn.10011ce74
cmp rax, rbx
jne 0x100120949
mov r9d, 0xe
mov esi, ebx
mov ebx, r9d
mov rcx, qword [0x100177368]
lea rax, [0x100177368]
cmp rcx, rax
je 0x10012093f
test byte [rcx + 0x1c], 8
je 0x10012093f
lea edx, [r9 + 0x18]
lea rax, [0x100044a20]
mov rcx, qword [rcx + 0x10]
lea r8, [0x100002d20]
mov qword [rsp + 0x20], rax
call fcn.100106904
mov rcx, qword [rsp + 0x30]
jmp 0x1001204fa
mov rcx, qword [rsp + 0x30]
mov qword [r13], rax
mov qword [r15], rcx
mov rcx, rbx
jmp 0x1001204fa