Function at 0x438383
Capabilities:
Get disk information

Disassembly:
push 0x2c4
mov eax, 0x4cb830
call fcn.004019a4
mov edi, ecx
mov dword [ebp - 0x26c], edi
xor ebx, ebx
mov dword [ebp - 0x278], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x268], ebx
mov dword [ebp - 0x24c], ebx
mov dword [ebp - 0x248], ebx
push ecx
push ecx
push 0x4d3bf0
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 3
call fcn.0042f1d3
lea eax, [ebp - 0x278]
push eax
call dword [sym.imp.SHELL32.dll_SHGetDesktopFolder]
test eax, eax
jne 0x4389b1
mov eax, dword [ebp - 0x278]
lea edx, [ebp - 0x268]
push edx
push 0x4dd818
push ebx
push dword [ebp - 0x248]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
test eax, eax
jne 0x4389b1
mov eax, dword [ebp - 0x268]
lea edx, [ebp - 0x24c]
push edx
push 0x2020
push dword [edi + 4]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x4389b1
mov eax, dword [ebp - 0x24c]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov dword [ebp - 0x244], ebx
mov byte [ebp - 4], 4
lea edx, [ebp - 0x244]
mov eax, dword [ebp - 0x24c]
push ebx
push edx
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
mov ebx, dword [sym.imp.msvcrt.dll_void____cdecl_operator_new_unsigned_int_]
mov esi, dword [sym.imp.ole32.dll_CoTaskMemFree]
jmp 0x43874e
mov eax, dword [ebp - 0x268]
lea edx, [ebp - 0x274]
push edx
lea edx, [ebp - 0x244]
mov dword [ebp - 0x274], 0x400110
push edx
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0x24]
test dword [ebp - 0x274], 0x400000
jne 0x43871b
test dword [ebp - 0x274], 0x100
je 0x43871b
lea eax, [ebp - 0x244]
push eax
lea eax, [ebp - 0x264]
push eax
lea ecx, [ebp - 0x248]
call fcn.0042f0ef
and dword [ebp - 0x27c], 0
mov eax, vtable.micro::utils::QString.0
mov dword [ebp - 0x280], eax
and dword [ebp - 0x284], 0
mov dword [ebp - 0x288], eax
lea eax, [ebp - 0x240]
mov byte [ebp - 4], 7
push eax
push dword [ebp - 0x264]
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
lea eax, [ebp - 0x240]
push eax
call dword [sym.imp.KERNEL32.DLL_GetDriveTypeW]
and dword [ebp - 0x28c], 0
cmp eax, 3
je 0x438527
cmp eax, 2
je 0x438527
fld dword [ebp - 0x28c]
jmp 0x438617
lea eax, [ebp - 0x258]
push eax
lea eax, [ebp - 0x260]
push eax
lea eax, [ebp - 0x2d0]
push eax
lea eax, [ebp - 0x240]
push eax
call dword [sym.imp.SHELL32.dll_SHGetDiskFreeSpaceExW]
mov edi, dword [sym.imp.SHLWAPI.dll_StrFormatByteSizeW]
lea eax, [ebp - 0x38]
push 0x14
push eax
push dword [ebp - 0x25c]
push dword [ebp - 0x260]
call edi
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0x280]
call fcn.004ba70a
push 0x14
lea eax, [ebp - 0x38]
push eax
push dword [ebp - 0x254]
push dword [ebp - 0x258]
call edi
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0x288]
call fcn.004ba70a
mov eax, dword [ebp - 0x258]
mov edx, Ordinal_1
mov ecx, dword [ebp - 0x254]
mov edi, Ordinal_1
and dword [ebp - 0x298], 0
mov dword [ebp - 0x2c8], eax
mov eax, ecx
and ecx, edx
and eax, edi
mov dword [ebp - 0x2c4], ecx
fild qword [ebp - 0x2c8]
mov ecx, dword [ebp - 0x25c]
mov dword [ebp - 0x294], eax
mov eax, dword [ebp - 0x260]
fild qword [ebp - 0x298]
mov dword [ebp - 0x2c0], eax
mov eax, ecx
and ecx, edx
and eax, edi
and dword [ebp - 0x2a8], 0
mov dword [ebp - 0x2bc], ecx
fchs
mov dword [ebp - 0x2a4], eax
faddp st(1)
fild qword [ebp - 0x2c0]
fild qword [ebp - 0x2a8]
fchs
faddp st(1)
fdivp st(1)
push 0x50
fstp qword [ebp - 0x2a0]
call ebx
pop ecx
test eax, eax
je 0x438631
mov ecx, eax
call fcn.00437a3f
mov edi, eax
jmp 0x438633
xor edi, edi
push 0x16
push 0x20
push 1
lea eax, [ebp - 0x280]
push eax
push ecx
push ecx
lea eax, [ebp - 0x288]
mov ecx, esp
push eax
call fcn.004b9cf7
mov edx, str._free_of
lea ecx, [ebp - 0x2b8]
call fcn.004066c4
pop ecx
pop ecx
mov edx, eax
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x2b0]
call fcn.0040e5bc
pop ecx
push eax
lea eax, [ebp - 0x264]
mov byte [ebp - 4], 9
push eax
mov ecx, edi
call fcn.00437aeb
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x2b0]
mov dword [ebp - method.mc::MyStrPath.virtual_0], vtable.micro::utils::QString.0
call fcn.004b9e50
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x2b8]
mov dword [ebp - method.mc::MyStrPath.virtual_0], vtable.micro::utils::QString.0
call fcn.004b9e50
fld qword [ebp - 0x2a0]
fstp qword [edi + 0x28]
push edi
mov edi, dword [ebp - 0x26c]
lea ecx, [edi + 0x2c]
call fcn.00403b28
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x288]
mov dword [ebp - method.mc::MyStrPath.virtual_0], vtable.micro::utils::QString.0
call fcn.004b9e50
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x280]
mov dword [ebp - method.mc::MyStrPath.virtual_0], vtable.micro::utils::QString.0
call fcn.004b9e50
cmp dword [ebp - 0x264], 0
je 0x438714
push dword [ebp - 0x264]
call esi
and dword [ebp - 0x264], 0
cmp dword [ebp - 0x244], 0
je 0x43872c
push dword [ebp - 0x244]
call esi
and dword [ebp - 0x244], 0
mov byte [ebp - 4], 4
lea edx, [ebp - 0x244]
mov eax, dword [ebp - 0x24c]
push 0
push edx
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
test eax, eax
je 0x438469
cmp dword [ebp - 0x244], 0
je 0x438767
push dword [ebp - 0x244]
call esi
push ecx
push ecx
push 0x4d3c00
lea ecx, [ebp - 0x248]
call fcn.0042f1d3
and dword [ebp - 0x26c], 0
mov dword [ebp - method.mc::MyStrPath.virtual_0], vtable.micro::utils::QString.0
lea eax, [ebp - 0x270]
mov byte [ebp - 4], 0xa
push eax
lea ecx, [ebp - 0x248]
call fcn.00453d42
push 0x50
call ebx
pop ecx
test eax, eax
je 0x4387b4
mov ecx, eax
call fcn.00437a3f
mov esi, eax
jmp 0x4387b6
xor esi, esi
push 0x16
push 0x20
push 0
lea eax, [ebp - 0x270]
mov ecx, esi
push eax
lea eax, [ebp - 0x248]
push eax
call fcn.00437aeb
add edi, 0x2c
push esi
mov ecx, edi
call fcn.00403b28
push ecx
push ecx
push 0x4d3ba0
lea ecx, [ebp - 0x248]
call fcn.0042f1d3
lea eax, [ebp - 0x270]
push eax
lea ecx, [ebp - 0x248]
call fcn.00453d42
push 0x50
call ebx
pop ecx
test eax, eax
je 0x438814
mov ecx, eax
call fcn.00437a3f
mov esi, eax
jmp 0x438816
xor esi, esi
push 0x16
push 0x20
push 0
lea eax, [ebp - 0x270]
mov ecx, esi
push eax
lea eax, [ebp - 0x248]
push eax
call fcn.00437aeb
push esi
mov ecx, edi
call fcn.00403b28
push 0x50
call ebx
pop ecx
test eax, eax
je 0x43884d
mov ecx, eax
call fcn.00437a3f
mov esi, eax
jmp 0x43884f
xor esi, esi
push 0xffffffffffffffff
push str.Go_to_root
lea ecx, [ebp - 0x258]
call fcn.004b9d49
push 0xffffffffffffffff
push 0x4dbed8
lea ecx, [ebp - 0x260]
mov byte [ebp - 4], 0xb
call fcn.004b9d49
lea eax, [ebp - 0x260]
mov byte [ebp - 4], 0xc
push eax
lea ecx, [esi + 0x10]
call fcn.004ba6d4
lea eax, [ebp - 0x258]
push eax
lea ecx, [esi + 0x18]
call fcn.004ba6d4
or dword [esi + 0x30], 0xffffffff
lea ecx, [ebp - 0x260]
and dword [esi + 0x34], 0
mov byte [ebp - 4], 0xb
mov dword [esi + 0x38], 0x10
mov dword [esi + 0x3c], 0x16
mov dword [ebp - method.mc::MyStrPath.virtual_0], vtable.micro::utils::QString.0
call fcn.004b9e50
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x258]
mov dword [ebp - method.mc::MyStrPath.virtual_0], vtable.micro::utils::QString.0
call fcn.004b9e50
push esi
mov ecx, edi
call fcn.00403b28
push 0x50
call ebx
pop ecx
test eax, eax
je 0x4388fd
mov ecx, eax
call fcn.00437a3f
mov esi, eax
jmp 0x4388ff
xor esi, esi
push 0xffffffffffffffff
push str.Go_to_parent
lea ecx, [ebp - 0x258]
call fcn.004b9d49
push 0xffffffffffffffff
push 0x4e0484
lea ecx, [ebp - 0x260]
mov byte [ebp - 4], 0xd
call fcn.004b9d49
lea eax, [ebp - 0x260]
mov byte [ebp - 4], 0xe
push eax
lea ecx, [esi + 0x10]
call fcn.004ba6d4
lea eax, [ebp - 0x258]
push eax
lea ecx, [esi + 0x18]
call fcn.004ba6d4
or dword [esi + 0x30], 0xffffffff
lea ecx, [ebp - 0x260]
and dword [esi + 0x34], 0
mov ebx, vtable.micro::utils::QString.0
mov byte [ebp - 4], 0xd
mov dword [esi + 0x38], 0x10
mov dword [esi + 0x3c], 0x16
mov dword [ebp - 0x260], ebx
call fcn.004b9e50
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x258]
mov dword [ebp - 0x258], ebx
call fcn.004b9e50
push esi
mov ecx, edi
call fcn.00403b28
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x270]
mov bl, 1
mov dword [ebp - method.mc::MyStrPath.virtual_0], vtable.micro::utils::QString.0
call fcn.004b9e50
lea ecx, [ebp - 0x248]
call fcn.0042e02b
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x24c]
test eax, eax
je 0x4389d7
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
and dword [ebp - 0x24c], 0
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x268]
test eax, eax
je 0x4389f2
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
and dword [ebp - 0x268], 0
or dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x278]
test ecx, ecx
je 0x438a06
mov edx, dword [ecx]
push ecx
call dword [edx + 8]
mov al, bl
call fcn.00401a27
ret