Function at 0x140054f9c
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 [0x14017d140]
xor rax, rsp
mov qword [rbp + 0x170], rax
mov rax, qword [rbp + 0x1e0]
mov rdi, r9
mov qword [rsp + 0x58], r9
mov qword [rsp + 0x50], rax
xor eax, eax
mov ebx, r8d
mov r13b, al
mov byte [rsp + 0x31], al
mov r15b, al
mov byte [rsp + 0x34], al
mov byte [rsp + 0x32], al
mov byte [rsp + 0x36], al
mov qword [rsp + 0x48], rax
mov byte [rsp + 0x35], al
mov byte [rsp + 0x33], al
mov byte [rsp + 0x30], al
mov dword [rsp + 0x38], eax
mov r12d, eax
mov qword [rsp + 0x40], rax
mov r14, rdx
mov rcx, qword [0x14017d3a8]
lea rdx, [0x14017d3a8]
lea esi, [rax + 1]
cmp rcx, rdx
je 0x140055059
test byte [rcx + 0x1c], sil
je 0x140055059
cmp byte [rcx + 0x19], 4
jb 0x140055059
mov rcx, qword [rcx + 0x10]
lea edx, [rax + 0x58]
lea r8, [0x1400068c8]
call fcn.14001dd24
xor eax, eax
lea rdx, [0x14017d3a8]
mov byte [rdi], al
mov rcx, qword [0x14017d3a8]
cmp rcx, rdx
je 0x1400550d0
test byte [rcx + 0x1c], sil
je 0x140055099
cmp byte [rcx + 0x19], 4
jb 0x140055099
mov rcx, qword [rcx + 0x10]
lea r8, [0x1400068c8]
mov edx, 0x59
mov r9, r14
call fcn.14001ec40
mov rcx, qword [0x14017d3a8]
lea rdx, [0x14017d3a8]
cmp rcx, rdx
je 0x1400550d0
test byte [rcx + 0x1c], sil
je 0x1400550d0
cmp byte [rcx + 0x19], 4
jb 0x1400550d0
mov rcx, qword [rcx + 0x10]
lea r8, [0x1400068c8]
mov edx, 0x5a
mov r9d, ebx
call fcn.14001de24
mov rcx, qword [0x14017d3a8]
lea rdx, [0x14017d3a8]
test r14, r14
jne 0x140055113
mov ebx, 0x80070057
cmp rcx, rdx
je 0x1400557b2
test byte [rcx + 0x1c], sil
je 0x1400557b2
lea edi, [r14 + 2]
cmp byte [rcx + 0x19], dil
jb 0x1400557b2
lea edx, [rdi + 0x59]
mov rcx, qword [rcx + 0x10]
lea r8, [0x1400068c8]
call fcn.14001dd24
jmp 0x1400557b2
mov edi, 2
cmp ebx, edi
je 0x140055166
cmp ebx, 3
jle 0x14005513d
cmp ebx, 6
jg 0x14005513d
mov r13b, sil
mov byte [rsp + 0x31], sil
mov r15b, sil
mov byte [rsp + 0x34], sil
mov byte [rsp + 0x36], sil
jmp 0x14005516b
mov ebx, 0x80070057
cmp rcx, rdx
je 0x1400557b2
test byte [rcx + 0x1c], sil
je 0x1400557b2
cmp byte [rcx + 0x19], dil
jb 0x1400557b2
mov edx, 0x5c
jmp 0x1400550fe
mov byte [rsp + 0x32], sil
lea r8, [rsp + 0x35]
xor edx, edx
mov rcx, r14
call fcn.1400a8f3c
mov ebx, eax
xor eax, eax
test ebx, ebx
jns 0x1400551ec
cmp ebx, 0x8078011a
je 0x1400552cd
cmp ebx, 0x8078006f
je 0x1400552cd
cmp ebx, 0x80780071
je 0x1400552cd
mov rcx, qword [0x14017d3a8]
lea r8, [0x14017d3a8]
cmp rcx, r8
je 0x1400557b2
test byte [rcx + 0x1c], sil
je 0x1400557b2
cmp byte [rcx + 0x19], dil
jb 0x1400557b2
lea edx, [rax + 0x5d]
mov rcx, qword [rcx + 0x10]
lea r8, [0x1400068c8]
mov r9d, ebx
call fcn.14001de24
jmp 0x1400557b2
cmp byte [rsp + 0x35], al
jne 0x1400552cd
lea rdx, [rsp + 0x60]
mov r8d, 0x104
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetVolumePathNameW]
test eax, eax
jne 0x14005527b
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov rcx, qword [0x14017d3a8]
lea r8, [0x14017d3a8]
cmp rcx, r8
je 0x140055253
mov eax, 1
test byte [rcx + 0x1c], al
je 0x140055253
cmp byte [rcx + 0x19], dil
jb 0x140055253
mov rcx, qword [rcx + 0x10]
lea edx, [rax + 0x5d]
lea r8, [0x1400068c8]
mov r9, r14
mov dword [rsp + 0x20], esi
call fcn.14001ecbc
cmp esi, edi
je 0x140055274
cmp esi, 3
je 0x140055274
movzx ebx, si
or ebx, 0x80070000
test esi, esi
cmovle ebx, esi
mov esi, 1
jmp 0x1400557b2
mov ebx, 0x80780057
jmp 0x14005526a
lea rcx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
sub eax, edi
je 0x1400557ad
dec eax
je 0x1400552d7
dec eax
je 0x1400552b5
lea rdi, [0x14017d3a8]
dec eax
je 0x1400552ab
mov ebx, 0x80780057
jmp 0x1400557b9
mov ebx, 0x80780082
jmp 0x1400557b9
lea r8, [0x140003304]
lea rcx, [0x140005730]
mov edx, 0x716
call fcn.1400a8be8
mov ebx, 0x80780083
jmp 0x1400557b2
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x60]
call fcn.140152890
mov ebx, eax
xor eax, eax
test ebx, ebx
jns 0x1400553e5
cmp ebx, 0x80780076
jne 0x14005539e
mov rcx, qword [0x14017d3a8]
lea rax, [0x14017d3a8]
cmp rcx, rax
je 0x140055332
test byte [rcx + 0x1c], sil
je 0x140055332
cmp byte [rcx + 0x19], 4
jb 0x140055332
mov rcx, qword [rcx + 0x10]
lea r8, [0x1400068c8]
mov edx, 0x5f
call fcn.14001dd24
lea r8, [rsp + 0x38]
lea rcx, [rsp + 0x60]
mov dl, sil
call fcn.140153ce4
xor edx, edx
mov ebx, eax
test eax, eax
jns 0x140055432
mov rcx, qword [0x14017d3a8]
lea rax, [0x14017d3a8]
cmp rcx, rax
je 0x1400557b2
test byte [rcx + 0x1c], sil
je 0x1400557b2
cmp byte [rcx + 0x19], dil
jb 0x1400557b2
mov edx, 0x62
lea r9, [rsp + 0x60]
mov rcx, qword [rcx + 0x10]
lea r8, [0x1400068c8]
mov dword [rsp + 0x20], ebx
call fcn.14001ecbc
jmp 0x1400557b2
cmp ebx, 0x80070003
jne 0x1400553b0
mov ebx, 0x8078007c
jmp 0x1400557b2
mov rcx, qword [0x14017d3a8]
lea rax, [0x14017d3a8]
cmp rcx, rax
je 0x1400557b2
test byte [rcx + 0x1c], sil
je 0x1400557b2
cmp byte [rcx + 0x19], dil
jb 0x1400557b2
mov edx, 0x60
jmp 0x1400551d4
cmp byte [rsp + 0x30], al
je 0x140055332
mov rcx, qword [0x14017d3a8]
lea rax, [0x14017d3a8]
cmp rcx, rax
je 0x140055428
test byte [rcx + 0x1c], sil
je 0x140055428
cmp byte [rcx + 0x19], dil
jb 0x140055428
mov rcx, qword [rcx + 0x10]
lea r9, [rsp + 0x60]
lea r8, [0x1400068c8]
mov edx, 0x61
call fcn.14001ec40
mov ebx, 0x80780077
jmp 0x1400557b2
mov eax, dword [rsp + 0x38]
bt eax, 0xb
jae 0x140055489
mov rcx, qword [0x14017d3a8]
lea r8, [0x14017d3a8]
cmp rcx, r8
je 0x140055482
test byte [rcx + 0x1c], sil
je 0x140055482
cmp byte [rcx + 0x19], 4
jb 0x140055482
mov rcx, qword [rcx + 0x10]
lea r9, [rsp + 0x60]
lea r8, [0x1400068c8]
mov edx, 0x63
mov dword [rsp + 0x20], eax
call fcn.14001ecbc
mov rcx, qword [0x14017d3a8]
xor edx, edx
mov ebx, 0x807800c7
jmp 0x140055490
mov rcx, qword [0x14017d3a8]
or rsi, 0xffffffffffffffff
test r15b, r15b
je 0x140055549
mov rax, rsi
inc rax
cmp word [r14 + rax*2], dx
jne 0x1400554a0
cmp word [r14 + rax*2 - 2], 0x3a
jne 0x1400554f0
lea rax, [0x14017d3a8]
mov esi, 1
cmp rcx, rax
je 0x1400554e6
test byte [rcx + 0x1c], sil
je 0x1400554e6
cmp byte [rcx + 0x19], dil
jb 0x1400554e6
mov rcx, qword [rcx + 0x10]
lea edx, [rsi + 0x63]
lea r8, [0x1400068c8]
mov r9, r14
call fcn.14001ec40
mov ebx, 0x80780057
jmp 0x1400557b2
mov byte [rsp + 0x30], dl
lea rdx, [rsp + 0x30]
mov rcx, r14
call fcn.14011e5ac
xor edx, edx
mov ebx, eax
test eax, eax
jns 0x14005553f
mov rcx, qword [0x14017d3a8]
lea rax, [0x14017d3a8]
lea esi, [rdx + 1]
cmp rcx, rax
je 0x1400557b2
test byte [rcx + 0x1c], sil
je 0x1400557b2
cmp byte [rcx + 0x19], dil
jb 0x1400557b2
lea edx, [rsi + 0x64]
jmp 0x1400551d4
cmp byte [rsp + 0x30], dl
je 0x140055274
inc rsi
cmp word [r14 + rsi*2], dx
jne 0x140055549
lea rdx, [rsp + 0x60]
mov r8, rsi
mov rcx, r14
call qword [sym.imp.msvcrt.dll__wcsnicmp]
xor ecx, ecx
test eax, eax
lea eax, [rcx + 1]
movzx esi, cl
cmove esi, eax
cmp byte [rsp + 0x32], cl
je 0x140055588
test sil, sil
jne 0x140055588
mov ebx, 0x80780057
mov esi, eax
jmp 0x1400557b2
test r13b, r13b
je 0x1400556f6
mov byte [rsp + 0x32], cl
lea rdx, [rsp + 0x48]
mov rcx, r14
call fcn.1400b001c
mov ebx, eax
test eax, eax
jns 0x1400555e0
mov rcx, qword [0x14017d3a8]
lea rax, [0x14017d3a8]
mov esi, 1
cmp rcx, rax
je 0x1400557b2
test byte [rcx + 0x1c], sil
je 0x1400557b2
cmp byte [rcx + 0x19], dil
jb 0x1400557b2
lea edx, [rsi + 0x65]
jmp 0x1400551d4
mov r15, qword [rsp + 0x48]
lea rdx, [rsp + 0x32]
mov rcx, r15
call fcn.140152768
xor ecx, ecx
mov ebx, eax
test eax, eax
jns 0x140055632
mov rcx, qword [0x14017d3a8]
lea rax, [0x14017d3a8]
mov esi, 1
cmp rcx, rax
je 0x1400557b2
test byte [rcx + 0x1c], sil
je 0x1400557b2
cmp byte [rcx + 0x19], dil
jb 0x1400557b2
lea edx, [rsi + 0x66]
jmp 0x1400551d4
cmp byte [rsp + 0x32], cl
jne 0x140055642
mov ebx, 0x80780084
jmp 0x14005526a
test r15, r15
je 0x1400556f6
lea rdx, [rsp + 0x40]
mov rcx, r15
call fcn.140152fbc
xor ecx, ecx
mov ebx, eax
test eax, eax
jns 0x1400556ad
mov rcx, qword [0x14017d3a8]
lea rdi, [0x14017d3a8]
cmp rcx, rdi
je 0x14005569e
test dword [rcx + 0x1c], reloc.ADVAPI32.dll_TraceEvent
je 0x14005569e
cmp byte [rcx + 0x19], 3
jb 0x14005569e
mov rcx, qword [rcx + 0x10]
lea r8, [0x1400068c8]
mov edx, DeleteCriticalSection
mov r9, r15
mov dword [rsp + 0x20], eax
call fcn.14001ecbc
mov r12, qword [rsp + 0x40]
mov esi, 1
jmp 0x1400557b9
mov r12, qword [rsp + 0x40]
cmp byte [rsp + 0x36], cl
je 0x1400556e6
test sil, sil
je 0x1400556e6
test r12, r12
je 0x1400556e6
lea rdx, [0x140009cf0]
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
xor ecx, ecx
test eax, eax
sete al
test al, al
je 0x1400556e6
mov ebx, 0x80780193
jmp 0x14005526a
mov rax, qword [rsp + 0x50]
test rax, rax
je 0x1400556f6
mov qword [rax], r12
mov r12, rcx
cmp byte [rsp + 0x31], cl
je 0x140055755
mov byte [rsp + 0x31], cl
lea rdx, [rsp + 0x31]
mov rcx, r14
call fcn.14011e680
xor ecx, ecx
mov ebx, eax
test eax, eax
jns 0x140055745
mov rcx, qword [0x14017d3a8]
lea rax, [0x14017d3a8]
mov esi, 1
cmp rcx, rax
je 0x1400557b2
test byte [rcx + 0x1c], sil
je 0x1400557b2
cmp byte [rcx + 0x19], dil
jb 0x1400557b2
lea edx, [rsi + 0x68]
jmp 0x1400551d4
cmp byte [rsp + 0x31], cl
je 0x140055755
mov ebx, 0x80780085
jmp 0x14005526a
cmp byte [rsp + 0x34], cl
je 0x14005579d
lea rdx, [rsp + 0x33]
mov rcx, r14
call fcn.14011e718
mov ebx, eax
test eax, eax
jns 0x14005579d
mov rcx, qword [0x14017d3a8]
lea rax, [0x14017d3a8]
mov esi, 1
cmp rcx, rax
je 0x1400557b2
test byte [rcx + 0x1c], sil
je 0x1400557b2
cmp byte [rcx + 0x19], dil
jb 0x1400557b2
lea edx, [rsi + 0x69]
mov r9, r14
jmp 0x140055385
mov rcx, qword [rsp + 0x58]
mov al, byte [rsp + 0x33]
mov byte [rcx], al
jmp 0x14005526a
mov ebx, 0x8078012f
lea rdi, [0x14017d3a8]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
test r12, r12
je 0x1400557d2
mov rcx, r12
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rcx, qword [0x14017d3a8]
cmp rcx, rdi
je 0x1400557ff
test byte [rcx + 0x1c], sil
je 0x1400557ff
cmp byte [rcx + 0x19], 4
jb 0x1400557ff
mov rcx, qword [rcx + 0x10]
lea r8, [0x1400068c8]
mov edx, 0x6b
call fcn.14001dd24
mov eax, ebx
mov rcx, qword [rbp + 0x170]
xor rcx, rsp
call fcn.140168920
mov rbx, qword [rsp + 0x2c0]
add rsp, 0x280
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret