Function at 0x428108
Capabilities:
Get disk information

Disassembly:
push 0x23c
mov eax, 0x432e5d
call fcn.00430dfb
mov ebx, dword [ebp + 0x14]
xor esi, esi
mov eax, dword [ebp + 8]
mov ecx, ebx
mov dword [ebp - 0x23c], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x230], eax
mov eax, dword [ebp + 0x18]
lea edx, [ecx + 2]
mov dword [ebp - 0x234], ebx
mov dword [ebp - 0x224], eax
mov dword [ebp - 0x21c], esi
mov ax, word [ecx]
add ecx, 2
cmp ax, si
jne 0x428148
sub ecx, edx
sar ecx, 1
lea eax, [ecx + 1]
push eax
push esi
call dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
mov edi, eax
mov dword [ebp - 0x244], edi
mov ecx, ebx
mov dword [ebp - 4], esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, si
jne 0x428172
sub ecx, edx
sar ecx, 1
lea eax, [ecx + 1]
push eax
push esi
call dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
mov esi, eax
mov dword [ebp - 0x248], esi
mov edx, edi
mov byte [ebp - 4], 1
mov ecx, ebx
sub edx, ebx
movzx eax, word [ecx]
mov word [edx + ecx], ax
lea ecx, [ecx + 2]
test ax, ax
jne 0x42819e
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x21c]
jne 0x4281b2
sub ecx, edx
sar ecx, 1
push 0x5c
pop eax
cmp word [ebx + ecx*2 - 2], ax
je 0x4281ed
sub edi, 2
xor ecx, ecx
mov ax, word [edi + 2]
lea edi, [edi + 2]
cmp ax, cx
jne 0x4281d4
mov eax, dword [0x40e5b8]
mov dword [edi], eax
mov edi, dword [ebp - 0x244]
push ebx
call sub.RESUTILS.dll_ClusterIsPathOnSharedVolume
mov edx, eax
mov eax, ebx
lea ecx, [eax + 2]
mov dword [ebp - 0x220], ecx
mov cx, word [eax]
add eax, 2
cmp cx, word [ebp - 0x21c]
jne 0x428200
sub eax, dword [ebp - 0x220]
sar eax, 1
inc eax
push eax
push esi
test edx, edx
je 0x428295
push ebx
call sub.RESUTILS.dll_ClusterGetVolumePathName
test eax, eax
jne 0x42824f
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jg 0x428236
mov ecx, eax
jmp 0x42823f
movzx ecx, ax
or ecx, 0x80070000
push ebx
push eax
push 0x40c088
push ecx
call fcn.004241bf
add esp, 0x10
push 0x104
lea eax, [ebp - 0x218]
push eax
push esi
call sub.RESUTILS.dll_ClusterGetVolumeNameForVolumeMountPoint
test eax, eax
jne 0x428340
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jg 0x428277
mov ecx, eax
jmp 0x428280
movzx ecx, ax
or ecx, 0x80070000
push esi
push eax
push 0x40c0f8
push ecx
call fcn.004241bf
add esp, 0x10
jmp 0x428340
push edi
call dword [sym.imp.KERNEL32.dll_GetVolumePathNameW]
test eax, eax
jne 0x428325
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xce
jne 0x428304
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x21c]
jne 0x4282b6
sub ecx, edx
sar ecx, 1
cmp ecx, 3
jb 0x4282f2
cmp word [edi + 2], 0x3a
jne 0x4282f2
push 0x5c
pop eax
cmp word [edi + 4], ax
jne 0x4282f2
mov eax, dword [edi]
mov dword [esi], eax
mov ax, word [edi + 4]
mov word [esi + 4], ax
xor eax, eax
mov word [esi + 6], ax
jmp 0x428325
push ebx
push 0xce
push 0x40c188
push 0x800700ce
jmp 0x42831d
test eax, eax
jg 0x42830c
mov ecx, eax
jmp 0x428315
movzx ecx, ax
or ecx, 0x80070000
push ebx
push eax
push 0x40c188
push ecx
call fcn.004241bf
add esp, 0x10
push 0x104
lea eax, [ebp - 0x218]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetVolumeNameForVolumeMountPointW]
test eax, eax
je 0x4283ed
mov ecx, dword [ebp - 0x230]
lea eax, [ebp - 0x218]
push eax
lea ecx, [ecx + 0xc]
call fcn.00429163
mov dword [ebp - 0x220], eax
test eax, eax
jne 0x42839f
cmp byte [ebp + 0xc], al
jne 0x42838a
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x21c]
jne 0x42836d
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
jmp 0x4283ac
push ebx
push 0x40c1e8
push 0x8000ffff
call fcn.004241bf
add esp, 0xc
jmp 0x4283b7
push eax
call fcn.0042405d
push eax
push dword [ebp - 0x220]
mov ecx, dword [ebp - 0x224]
call fcn.004176dd
mov edx, esi
lea ecx, [edx + 2]
mov ax, word [edx]
add edx, 2
cmp ax, word [ebp - 0x21c]
jne 0x4283bc
sub edx, ecx
sar edx, 1
lea ebx, [ebx + edx*2]
add ebx, 0xfffffffe
push ebx
call fcn.0042405d
mov ecx, dword [ebp - 0x224]
push eax
push ebx
call fcn.004176dd
jmp 0x42860b
xor eax, eax
mov dword [ebp - 0x22c], eax
cmp byte [0x437010], al
je 0x42840b
push ebx
mov dword [ebp - 0x240], ebx
call fcn.0042405d
jmp 0x428418
push esi
mov dword [ebp - 0x240], esi
call dword [sym.imp.OLEAUT32.dll_VariantInit]
push eax
push dword [ebp - 0x240]
lea ecx, [ebp - 0x22c]
call fcn.004176dd
xor eax, eax
mov dword [ebp - 0x238], eax
push 0x405498
mov byte [ebp - 4], 3
mov dword [ebp - 0x228], eax
mov dword [ebp - 0x220], eax
call sub.msvcrt.dll_wprintf
pop ecx
lea eax, [ebp - 0x238]
push eax
push dword [ebp - 0x23c]
call fcn.00417677
mov ebx, eax
test ebx, ebx
je 0x42848b
push ebx
call fcn.0042423d
push eax
push ebx
push 0x405518
push 0x265
push 0x40bd3c
push 0x402cb8
push 1
call fcn.00424141
add esp, 0x1c
push dword [ebp - 0x22c]
push 0x405538
call sub.msvcrt.dll_wprintf
mov eax, dword [ebp - 0x238]
pop ecx
pop ecx
xor ecx, ecx
mov ebx, dword [eax]
push ecx
lea ecx, [ebp - 0x220]
push ecx
mov ebx, dword [ebx + 0x100]
lea ecx, [ebp - 0x228]
push ecx
push dword [ebp - 0x22c]
mov ecx, ebx
push eax
call dword [0x4392d8]
call ebx
mov ebx, eax
test ebx, ebx
je 0x4284f9
push ebx
call fcn.0042423d
push eax
push ebx
push 0x40c240
push 0x269
push 0x40bd3c
push 0x402cb8
push 1
call fcn.00424141
add esp, 0x1c
push dword [ebp - 0x220]
push dword [ebp - 0x228]
push 0x40c2c0
call sub.msvcrt.dll_wprintf
mov ecx, dword [ebp - 0x230]
add esp, 0xc
mov ebx, dword [ebp - 0x228]
add ecx, 0xc
push ebx
call fcn.00429163
test eax, eax
jne 0x4285b1
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x21c]
jne 0x428534
sub ecx, edx
sar ecx, 1
push 0x5c
pop eax
cmp word [ebx + ecx*2 - 2], ax
jne 0x428576
mov edx, ebx
lea ecx, [edx + 2]
mov ax, word [edx]
add edx, 2
cmp ax, word [ebp - 0x21c]
jne 0x428556
sub edx, ecx
sar edx, 1
xor eax, eax
mov word [ebx + edx*2 - 2], ax
mov ebx, dword [ebp - 0x228]
mov ecx, dword [ebp - 0x230]
push ebx
lea ecx, [ecx + 0xc]
call fcn.00429163
mov dword [ebp - 0x23c], eax
test eax, eax
jne 0x4285b1
push ebx
mov ebx, dword [ebp - 0x234]
push ebx
push 0x40c368
push 0x8000ffff
call fcn.004241bf
mov eax, dword [ebp - 0x23c]
add esp, 0x10
jmp 0x4285b7
mov ebx, dword [ebp - 0x234]
mov ecx, dword [ebp - 0x224]
push eax
call fcn.0041b366
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x21c]
jne 0x4285c8
sub ecx, edx
sar ecx, 1
lea ebx, [ebx + ecx*2]
add ebx, 0xfffffffe
push ebx
call fcn.0042405d
mov ecx, dword [ebp - 0x224]
push eax
push ebx
call fcn.004176dd
lea ecx, [ebp - 0x238]
call fcn.00414b1b
push dword [ebp - 0x22c]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
push esi
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
push edi
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov al, 1
call fcn.00430daa
ret 0x14