Function at 0x43e91b
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x270
push ebx
push esi
push edi
mov edi, ecx
mov ebx, edx
push 0x18
xor esi, esi
mov dword [ebp - 0x28], ebx
pop ecx
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x1c], esi
call fcn.00436b3a
lea ecx, [ebp - 0x3c]
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [ebp - 0x20], eax
call fcn.00430375
push ecx
push 8
push str.RootPath
mov ecx, ebx
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x58], esi
call fcn.0043a719
mov esi, eax
call fcn.0043c5cd
push eax
lea ecx, [ebp - 0x24]
call fcn.0043ac50
mov esi, dword [esi + 4]
mov edx, 0x491414
test esi, esi
jne 0x43e98d
mov esi, edx
lea eax, [ebp - 0x24]
push eax
push ecx
mov ecx, esp
push edx
call fcn.0043b487
mov edx, esi
mov ecx, edi
call fcn.0043db72
mov edi, eax
pop ecx
pop ecx
test edi, edi
jne 0x43eef1
call fcn.0043c5cd
push eax
lea ecx, [ebp - 8]
call fcn.0043ac50
mov eax, dword [ebp - 0x24]
cmp dword [eax - 0xc], edi
jl 0x43ef31
movzx esi, word [eax]
push 3
pop ebx
mov dword [ebp - 0x14], ebx
push 0x5c
pop edi
cmp esi, 0x2a
jne 0x43ea89
cmp dword [eax - 0xc], 1
jl 0x43ef31
lea edi, [eax + 2]
movzx edx, word [edi]
mov dword [ebp - 0x18], edi
test dx, dx
je 0x43ea04
mov ecx, edx
push 0x5c
pop edx
cmp cx, dx
jne 0x43ea86
mov esi, 0x498d84
push esi
call dword [sym.imp.msvcrt.dll_wcslen]
pop ecx
push eax
push esi
lea ecx, [ebp - 8]
call fcn.0043b835
mov esi, dword [ebp - 8]
cmp dword [esi - 4], 1
jle 0x43ea79
push dword [esi - 0xc]
lea ecx, [ebp - 8]
call fcn.0043c727
mov esi, dword [ebp - 8]
jmp 0x43ea79
push esi
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, ebx
jne 0x43ea76
xor eax, eax
lea edx, [ebp - 8]
push eax
push edi
lea ecx, [ebp - 0xc]
call fcn.0043ab55
mov ecx, esp
push 0x491414
mov edi, dword [eax]
call fcn.0043b487
lea edx, [ebp - 0x3c]
mov ecx, edi
call fcn.0044a63f
pop ecx
pop ecx
mov ecx, dword [ebp - 0xc]
lea ecx, [ecx - 0x10]
call fcn.0043c924
mov edi, dword [ebp - 0x18]
inc word [esi]
push 0x5a
pop eax
cmp word [esi], ax
jbe 0x43ea34
jmp 0x43eb47
push 0x5c
pop edi
cmp esi, 0x25
jne 0x43eac5
lea ecx, [ebp - 0xc]
xor ebx, ebx
push ecx
push eax
push dword [ebp - 0x10]
mov dword [ebp - 0xc], ebx
call sym.Dismx86.exe_DismExpandEnvironmentStrings
push dword [ebp - 0xc]
test eax, eax
je 0x43eab2
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov esi, dword [ebp - 8]
jmp 0x43eadd
lea ecx, [ebp - 8]
call fcn.0043b8b2
push dword [ebp - 0xc]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp 0x43ead3
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 8]
call fcn.0043b599
xor ebx, ebx
mov esi, dword [ebp - 8]
mov eax, dword [esi - 0xc]
test eax, eax
jne 0x43eae7
mov edi, 0x80004005
jmp 0x43eee9
dec eax
lea ecx, [ebp - 8]
push eax
call fcn.0043a8ec
cmp ax, di
je 0x43eb02
push edi
lea ecx, [ebp - 8]
call fcn.0043b93f
mov esi, dword [ebp - 8]
push 0x208
lea eax, [ebp - 0x26c]
push ebx
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0x26c]
push esi
push eax
call dword [sym.imp.SHLWAPI.dll_PathCanonicalizeW]
push ebx
push ecx
mov ecx, esp
lea edi, [ebp - 0x3c]
push 0x491414
lea ebx, [ebp - 0x26c]
call fcn.0043b487
mov edx, edi
mov ecx, ebx
call fcn.0044a63f
pop ecx
pop ecx
lea ecx, [ebp - 0x48]
call fcn.004421fc
xor ebx, ebx
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x40], ebx
call fcn.004421fc
mov dword [ebp - 0x4c], ebx
mov ebx, dword [ebp - 0x28]
mov edi, dword [ebx + 0x1c]
test edi, edi
je 0x43ebd7
mov ebx, dword [sym.imp.SHLWAPI.dll_StrCmpW]
cmp dword [edi + 0x18], 1
jne 0x43ebcd
mov eax, dword [edi]
test eax, eax
jne 0x43eb80
mov eax, 0x491414
push str.Query
push eax
call ebx
test eax, eax
jne 0x43eb9d
mov eax, dword [edi + 4]
test eax, eax
jne 0x43eb98
mov eax, 0x491414
lea ecx, [ebp - 0x48]
jmp 0x43ebc7
mov eax, dword [edi]
test eax, eax
jne 0x43eba8
mov eax, 0x491414
push str.Excluded
push eax
call ebx
test eax, eax
jne 0x43ed41
mov eax, dword [edi + 4]
test eax, eax
jne 0x43ebc4
mov eax, 0x491414
lea ecx, [ebp - 0x54]
push eax
call fcn.0043cb57
mov edi, dword [edi + 0x30]
test edi, edi
jne 0x43eb6f
mov ebx, dword [ebp - 0x28]
cmp dword [ebp - 0x44], 0
jne 0x43ebea
push 0x48d254
lea ecx, [ebp - 0x48]
call fcn.0043cb57
push ecx
push 5
xor edi, edi
mov ecx, ebx
push str.Flags
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x30], edi
call fcn.0043a719
test eax, eax
je 0x43ec90
mov dword [ebp - 0x14], edi
mov edi, dword [eax + 4]
test edi, edi
jne 0x43ec18
mov edi, 0x491414
xor eax, eax
cmp word [edi], ax
je 0x43ec90
push 0x7c
push edi
call dword [sym.imp.SHLWAPI.dll_StrChrW]
mov ebx, eax
test ebx, ebx
je 0x43ec34
sub eax, edi
sar eax, 1
jmp 0x43ec3b
mov ecx, edi
call fcn.0044bc8f
cmp eax, 4
jne 0x43ec58
push eax
push edi
push str.File
call dword [sym.imp.SHLWAPI.dll_StrCmpNW]
test eax, eax
jne 0x43ed41
inc eax
jmp 0x43ec79
cmp eax, 9
jne 0x43ed41
push eax
push edi
push str.Directory
call dword [sym.imp.SHLWAPI.dll_StrCmpNW]
test eax, eax
jne 0x43ed41
push 2
pop eax
or eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
test ebx, ebx
je 0x43ec90
lea edi, [ebx + 2]
xor ecx, ecx
cmp word [edi], cx
jne 0x43ec1f
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
cmp byte [eax + 0xd], 0
jne 0x43ed4b
mov esi, dword [ebp - 0x14]
mov ecx, dword [eax + 0x10]
sub ecx, 0x10
call fcn.0043baa0
lea ecx, [ebp - 0xc]
lea edi, [eax + 0x10]
mov eax, dword [edi - 0xc]
dec eax
mov dword [ebp - 0xc], edi
push eax
call fcn.0043a8ec
push 0x5c
pop ecx
cmp ax, cx
je 0x43ecd7
push ecx
lea ecx, [ebp - 0xc]
call fcn.0043b93f
mov edi, dword [ebp - 0xc]
push dword [ebp - 0x10]
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x54]
neg eax
push esi
sbb eax, eax
and eax, ecx
push ecx
lea ecx, [edi - 0x10]
mov dword [ebp - 0x18], eax
mov ebx, esp
call fcn.0043baa0
mov edx, dword [ebp - 0x18]
lea ecx, [ebp - 0x48]
add eax, 0x10
mov dword [ebx], eax
call fcn.0043e805
mov ebx, dword [ebp + 8]
test ebx, ebx
je 0x43ed1f
mov eax, dword [ebp - 0x34]
add dword [ebx], eax
mov eax, dword [ebp - 0x30]
adc dword [ebx + 4], eax
lea ecx, [edi - 0x10]
call fcn.0043c924
lea ecx, [ebp - 0x28]
call fcn.0042f6ed
mov eax, dword [ebp - 0x28]
cmp byte [eax + 0xd], 0
je 0x43eca5
mov esi, dword [ebp - 8]
jmp 0x43ed4e
mov edi, 0x80004005
jmp 0x43eed9
mov ebx, dword [ebp + 8]
mov edi, dword [ebp - 0x20]
mov edi, dword [edi]
test ebx, ebx
je 0x43edff
cmp byte [edi + 0xd], 0
mov dword [ebp - 0x10], edi
jne 0x43eed5
xor eax, eax
mov esi, eax
mov ecx, dword [edi + 0x10]
sub ecx, 0x10
call fcn.0043baa0
add eax, 0x10
mov edi, dword [edi + 0x14]
push 0x5a
mov dword [ebp + 8], eax
xor edx, edx
pop eax
push dword [ebp + 0x10]
add esi, eax
xor eax, eax
push eax
mov eax, esi
div dword [ebp - 0x1c]
add eax, 0xa
push eax
push 0x9478
call dword [ebp + 0xc]
push dword [ebp + 0x10]
xor eax, eax
push eax
push dword [ebp + 8]
push 0x9479
call dword [ebp + 0xc]
push dword [ebp + 0x10]
xor eax, eax
push dword [ebp + 8]
push eax
push 0x9089
call dword [ebp + 0xc]
cmp edi, 2
jne 0x43edda
mov ecx, dword [ebp + 8]
call fcn.0044c18b
add eax, 4
push 0
pop ecx
adc edx, ecx
add dword [ebx], eax
adc dword [ebx + 4], edx
mov ecx, dword [ebp + 8]
lea ecx, [ecx - 0x10]
call fcn.0043c924
lea ecx, [ebp - 0x10]
call fcn.0042f6ed
mov edi, dword [ebp - 0x10]
cmp byte [edi + 0xd], 0
je 0x43ed6c
jmp 0x43eed2
cmp byte [edi + 0xd], 0
mov dword [ebp + 8], edi
jne 0x43eed5
xor eax, eax
mov esi, eax
mov ecx, dword [edi + 0x10]
sub ecx, 0x10
call fcn.0043baa0
push 0x5a
xor edx, edx
lea ebx, [eax + 0x10]
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x28], eax
xor edi, edi
pop eax
add esi, eax
mov dword [ebp - 0x2c], ebx
mov eax, esi
div dword [ebp - 0x1c]
push dword [ebp + 0x10]
add eax, 0xa
push edi
push eax
push 0x9478
call dword [ebp + 0xc]
push dword [ebp + 0x10]
push edi
push ebx
push 0x9479
call dword [ebp + 0xc]
mov ecx, ebx
call fcn.0044c507
test eax, eax
je 0x43eeb5
push eax
call dword [sym.imp.ntdll.dll_RtlNtStatusToDosError]
push eax
lea eax, [ebp - 0x10]
push 0x498dc0
push eax
call fcn.00449eea
add esp, 0xc
lea edx, [ebp - 0x2c]
lea ecx, [ebp - 0x18]
push eax
call fcn.00431007
pop ecx
push dword [eax]
push 0x498de0
push 1
call dword [sym.imp.CBSHost.dll_DismWriteLog]
mov ecx, dword [ebp - 0x18]
lea ecx, [ecx - 0x10]
call fcn.0043c924
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx - 0x10]
call fcn.0043c924
push dword [ebp + 0x10]
push ebx
push edi
push 0x9089
call dword [ebp + 0xc]
lea ecx, [ebx - 0x10]
call fcn.0043c924
lea ecx, [ebp + 8]
call fcn.0042f6ed
mov edi, dword [ebp + 8]
cmp byte [edi + 0xd], 0
je 0x43ee10
mov esi, dword [ebp - 8]
xor eax, eax
mov edi, eax
lea ecx, [ebp - 0x54]
call fcn.0043cbed
lea ecx, [ebp - 0x48]
call fcn.0043cbed
lea ecx, [esi - 0x10]
call fcn.0043c924
mov ecx, dword [ebp - 0x24]
lea ecx, [ecx - 0x10]
call fcn.0043c924
lea ecx, [ebp - 0x60]
call fcn.00430989
lea ecx, [ebp - 0x3c]
call fcn.0040e5b4
mov ecx, dword [ebp - 0x20]
lea eax, [ebp - 0x20]
push dword [ecx + 4]
mov ecx, eax
push eax
call fcn.0043a4c4
mov ecx, dword [ebp - 0x20]
push 0x18
pop edx
call fcn.0043a508
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret 0xc
push 0x80070057
call fcn.0043c873
int3