Function at 0x416550
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xcc
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x416588
mov dword [esp + 4], 0
mov dword [esp], 0
mov esi, dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsA]
call esi
sub esp, 8
test eax, eax
mov edi, eax
jne 0x416594
xor eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 8
lea edx, [eax + 1]
lea eax, [eax + 0x10]
and eax, 0xfffffff0
call fcn.00435de0
sub esp, eax
lea ebx, [esp + 0x10]
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov dword [esp], ebx
call sub.msvcrt.dll_memset
mov dword [esp + 4], ebx
mov dword [esp], edi
call esi
sub esp, 8
test eax, eax
je 0x416588
mov edx, ebx
add edi, ebx
cmp byte [edx], 0
jne 0x4165d8
mov byte [edx], 0x3b
add edx, 1
cmp edx, edi
jne 0x4165d0
lea ecx, [ebp - 0x90]
mov dword [esp], 0x44130c
call fcn.00438ba0
lea eax, [ebp - 0x90]
sub esp, 4
mov dword [esp + 4], eax
lea eax, [ebp - 0x8c]
mov dword [esp], eax
call dword [method.QDir.toNativeSeparators_QString_const_]
lea eax, [ebp - 0x8c]
mov dword [esp + 8], 0x4414f6
mov dword [esp + 4], eax
lea eax, [ebp - 0x7c]
mov dword [esp], eax
call fcn.00439590
lea ecx, [ebp - 0x94]
mov dword [esp], ebx
call fcn.00438ba0
lea eax, [ebp - 0x7c]
sub esp, 4
lea ecx, [ebp - 0xac]
mov dword [esp + 0xc], 1
mov dword [esp + 8], 1
mov dword [esp + 4], eax
lea eax, [ebp - 0x94]
mov dword [esp], eax
call dword [method.QString.split_QString_const__QString::SplitBehavior__Qt::CaseSensitivity__const]
lea ecx, [ebp - 0x94]
sub esp, 0x10
call fcn.00438be0
lea ecx, [ebp - 0x7c]
call fcn.00438be0
lea ecx, [ebp - 0x8c]
call fcn.00438be0
lea ecx, [ebp - 0x90]
call fcn.00438be0
lea edi, [ebp - 0x7c]
xor eax, eax
mov ecx, 0x19
rep stosd dword es:[edi], eax
lea eax, [ebp - 0xac]
lea ecx, [ebp - 0x8c]
mov dword [esp], eax
call fcn.004381a0
mov edx, dword [ebp - 0x8c]
sub esp, 4
lea edi, [ebp - 0xa4]
mov eax, dword [edx + 8]
mov ecx, dword [edx + 0xc]
mov dword [ebp - 0x80], 1
lea eax, [edx + eax*4 + 0x10]
lea edx, [edx + ecx*4 + 0x10]
cmp eax, edx
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], edx
jne 0x4166f8
jmp 0x41674c
cmp eax, dword [ebp - 0x84]
je 0x41674c
mov eax, dword [eax]
mov esi, dword [eax]
mov dword [ebp - 0xa8], eax
lea edx, [esi + 1]
cmp edx, 1
jbe 0x416711
lock add dword [eax], 1
setne dl
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x41672c
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + 4]
test eax, eax
jne 0x416770
mov dword [ebp - 0x80], 0
lea ecx, [ebp - 0xa8]
call fcn.00438be0
mov eax, dword [ebp - 0x88]
add eax, 4
xor dword [ebp - 0x80], 1
mov dword [ebp - 0x88], eax
jne 0x4166f0
lea ecx, [ebp - 0x8c]
call fcn.00438230
lea ecx, [ebp - 0xac]
call fcn.00438230
jmp 0x416588
mov dword [esp + 4], 2
mov dword [esp], 0x4414f8
call dword [method.QString.fromAscii_helper_char_const__int_]
mov dword [ebp - 0xa4], eax
mov dword [esp + 4], 0
lea ecx, [ebp - 0xa8]
mov dword [ebp - 0xbc], edi
mov dword [esp], edi
mov esi, dword [method.QString.compare_QString_const__Qt::CaseSensitivity__const]
call esi
sub esp, 8
test eax, eax
mov ebx, 1
jne 0x4169c3
mov eax, dword [ebp - 0xa4]
mov edx, dword [eax]
test edx, edx
jne 0x4169a0
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [method.QArrayData.deallocate_QArrayData__unsigned_int__unsigned_int_]
test bl, bl
jne 0x416725
lea eax, [ebp - 0xa8]
lea ecx, [ebp - 0x90]
mov dword [esp], eax
call dword [method.QString.toUtf8___const]
mov eax, dword [ebp - 0x90]
lea edx, [ebp - 0xad]
sub esp, 4
lea ecx, [ebp - 0x9c]
mov dword [esp + 8], edx
mov edx, dword [eax + 4]
mov dword [esp + 4], edx
add eax, dword [eax + 0xc]
mov dword [esp], eax
call fcn.00435c68
mov eax, dword [ebp - 0x90]
sub esp, 0xc
mov edx, dword [eax]
test edx, edx
jne 0x416a50
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [method.QArrayData.deallocate_QArrayData__unsigned_int__unsigned_int_]
lea eax, [ebp - 0x7c]
mov dword [esp + 8], 0x64
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x9c]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceA]
mov edx, dword [ebp - 0x9c]
sub esp, 0xc
mov ecx, 0xffffffff
lock xadd dword [edx - 4], ecx
test ecx, ecx
jle 0x416a73
test eax, eax
je 0x416725
lea edx, [ebp - 0x7c]
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x41689b
mov ecx, eax
shr ecx, 0x10
test eax, 0x8080
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
add al, al
lea eax, [ebp - 0x7c]
sbb edx, 3
sub edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call dword [method.QString.fromAscii_helper_char_const__int_]
lea ebx, [ebp - 0x98]
mov dword [ebp - 0x98], eax
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov ecx, dword [ebp + 0xc]
mov dword [esp], ebx
call dword [method.QString.indexOf_QString_const__int__Qt::CaseSensitivity__const]
sub esp, 0xc
mov ecx, ebx
mov esi, eax
call fcn.00438be0
test esi, esi
jne 0x416725
lea eax, [ebp - 0x7c]
lea ecx, [ebp - 0x94]
mov dword [esp], eax
call fcn.00438ba0
lea eax, [ebp - 0xa8]
sub esp, 4
mov ecx, dword [ebp + 0xc]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x94]
mov eax, dword [eax + 4]
mov dword [esp], 0
mov dword [esp + 4], eax
call dword [method.QString.replace_int__int__QString_const_]
sub esp, 0xc
mov ecx, dword [ebp + 8]
mov dword [esp], eax
call dword [method.QString.operator_QString_const_]
lea ecx, [ebp - 0x94]
sub esp, 4
call fcn.00438be0
lea ecx, [ebp - 0xa8]
call fcn.00438be0
lea ecx, [ebp - 0x8c]
call fcn.00438230
lea ecx, [ebp - 0xac]
call fcn.00438230
mov eax, 1
jmp 0x41658a
cmp edx, 0xffffffff
je 0x4167e3
lock sub dword [eax], 1
setne dl
test dl, dl
jne 0x4167e3
mov eax, dword [ebp - 0xa4]
jmp 0x4167ca
mov dword [esp + 4], 2
mov dword [esp], 0x4414fb
call dword [method.QString.fromAscii_helper_char_const__int_]
lea ebx, [ebp - 0xa0]
mov dword [ebp - 0xa0], eax
mov dword [esp + 4], 0
lea ecx, [ebp - 0xa8]
mov dword [esp], ebx
call esi
sub esp, 8
test eax, eax
mov eax, dword [ebp - 0xa0]
sete bl
mov edx, dword [eax]
test edx, edx
jne 0x416a30
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [method.QArrayData.deallocate_QArrayData__unsigned_int__unsigned_int_]
jmp 0x4167ba
cmp edx, 0xffffffff
je 0x4167ba
lock sub dword [eax], 1
setne dl
test dl, dl
jne 0x4167ba
mov eax, dword [ebp - 0xa0]
jmp 0x416a0b
cmp edx, 0xffffffff
je 0x416857
lock sub dword [eax], 1
setne dl
test dl, dl
jne 0x416857
mov eax, dword [ebp - 0x90]
jmp 0x41683e
mov dword [ebp - 0xbc], eax
lea eax, [ebp - 0x90]
lea ecx, [edx - 0xc]
mov dword [esp], eax
call fcn.00435c90
mov eax, dword [ebp - 0xbc]
sub esp, 4
jmp 0x416890