Function at 0x43e990
Capabilities:
Get disk information
Get disk size

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x53ff7d
mov eax, dword fs:[0]
push eax
sub esp, 0x298
mov eax, dword [0x5ac020]
xor eax, esp
mov dword [esp + 0x290], eax
push ebx
push esi
push edi
mov eax, dword [0x5ac020]
xor eax, esp
push eax
lea eax, [esp + 0x2a8]
mov dword fs:[0], eax
mov esi, ecx
xor eax, eax
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x48], 7
mov dword [esp + 0x44], 0
mov word [esp + 0x34], ax
mov dword [esp + 0x2b0], eax
mov dword [esp + 0x30], vtable.cafx::tstring_ex_wchar_t__class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___.0
mov dword [esp + 0x2b0], 1
lea ebx, [esi + 0x280c]
push 0x56c344
mov ecx, ebx
xor edi, edi
call fcn.004022e0
mov ecx, dword [esi + 0x63c]
test ecx, ecx
je 0x43ea41
add ecx, 0xa0
cmp dword [ecx + 0x14], 8
jb 0x43ea43
mov ecx, dword [ecx]
jmp 0x43ea43
xor ecx, ecx
lea eax, [esp + 0x34]
xor edx, edx
push eax
call fcn.004bfe20
mov esi, dword [esp + 0x48]
add esp, 4
cmp esi, 1
jbe 0x43ed68
test esi, esi
jne 0x43ea6d
push str.invalid_string_position
call fcn.004ffb7d
mov ecx, dword [esp + 0x48]
lea eax, [esp + 0x34]
mov edx, dword [esp + 0x34]
cmp ecx, 8
cmovae eax, edx
cmp word [eax], 0x5c
jne 0x43eaba
cmp ecx, 8
lea eax, [esp + 0x34]
cmovae eax, edx
cmp word [eax + 2], 0x5c
jne 0x43eaba
push 0x5746a8
lea eax, [esp + 0x98]
mov edi, 1
push 0x104
push eax
call fcn.00500848
add esp, 0xc
jmp 0x43eb6a
cmp ecx, 8
lea eax, [esp + 0x34]
cmovae eax, edx
cmp word [eax], 0x61
jb 0x43eada
cmp ecx, 8
lea eax, [esp + 0x34]
cmovae eax, edx
cmp word [eax], 0x7a
jbe 0x43eb02
cmp ecx, 8
lea eax, [esp + 0x34]
cmovae eax, edx
cmp word [eax], 0x41
jb 0x43ed68
cmp ecx, 8
lea eax, [esp + 0x34]
cmovae eax, edx
cmp word [eax], 0x5a
ja 0x43ed68
cmp ecx, 8
lea eax, [esp + 0x34]
cmovae eax, edx
cmp word [eax + 2], 0x3a
jne 0x43ed68
push 0x56c344
lea eax, [esi - 2]
push eax
push 2
lea ecx, [esp + 0x40]
call fcn.0040a280
push 0x5c
lea ecx, [esp + 0x38]
call fcn.004123b0
cmp dword [esp + 0x48], 8
lea ecx, [esp + 0x94]
push 0x100
push ecx
push 0
push 0
push 0
push 0
lea eax, [esp + 0x4c]
cmovae eax, dword [esp + 0x4c]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
test eax, eax
je 0x43ed68
cmp dword [esp + 0x48], 8
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x1c]
lea eax, [esp + 0x3c]
cmovae eax, dword [esp + 0x3c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
je 0x43ed68
xor eax, eax
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x78], 7
mov dword [esp + 0x74], 0
mov word [esp + 0x64], ax
mov byte [esp + 0x2b0], 2
lea ecx, [esp + 0x64]
push dword [esp + 0x18]
push dword [esp + 0x18]
call fcn.00485640
xor eax, eax
mov dword [esp + 0x64], 0
add esp, 8
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], 7
mov word [esp + 0x4c], ax
test edi, edi
jne 0x43ecb2
mov byte [esp + 0x2b0], 3
mov ecx, 0x5be200
push 0x57556c
push str.Dialog
call fcn.0045eec0
test eax, eax
je 0x43ed25
lea eax, [esp + 0x4c]
mov ecx, 0x5be200
push eax
push str.LOCATE_PATH_INFO
push str.String
call fcn.0045ec80
test eax, eax
je 0x43ed25
push 2
push edi
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x40]
call fcn.00412420
mov ecx, eax
mov byte [esp + 0x2b0], 4
lea edx, [esp + 0x64]
cmp dword [esp + 0x78], 8
cmovae edx, dword [esp + 0x64]
cmp dword [ecx + 0x14], 8
jb 0x43ec7d
mov ecx, dword [ecx]
cmp dword [esp + 0x60], 8
lea eax, [esp + 0x4c]
push edx
cmovae eax, dword [esp + 0x50]
lea edx, [esp + 0x98]
push edx
push ecx
push eax
push ebx
call fcn.00401a00
add esp, 0x14
mov byte [esp + 0x2b0], 3
lea ecx, [esp + 0x7c]
call fcn.00402220
jmp 0x43ed25
mov byte [esp + 0x2b0], 5
mov ecx, 0x5be200
push 0x57556c
push str.Dialog
call fcn.0045eec0
test eax, eax
je 0x43ed25
lea eax, [esp + 0x4c]
mov ecx, 0x5be200
push eax
push str.NET_PATH_INFO
push str.String
call fcn.0045ec80
test eax, eax
je 0x43ed25
cmp dword [esp + 0x78], 8
lea edx, [esp + 0x64]
lea ecx, [esp + 0x34]
cmovae edx, dword [esp + 0x64]
lea eax, [esp + 0x4c]
cmp dword [esp + 0x48], 8
push edx
cmovae ecx, dword [esp + 0x38]
cmp dword [esp + 0x64], 8
push ecx
cmovae eax, dword [esp + 0x54]
push eax
push ebx
call fcn.00401a00
add esp, 0x10
mov byte [esp + 0x2b0], 2
lea ecx, [esp + 0x4c]
call fcn.00402220
mov byte [esp + 0x2b0], 1
cmp dword [esp + 0x78], 8
jb 0x43ed51
push dword [esp + 0x64]
call fcn.0051d3d0
add esp, 4
xor eax, eax
mov dword [esp + 0x78], 7
mov dword [esp + 0x74], 0
mov word [esp + 0x64], ax
mov dword [esp + 0x2b0], 0xffffffff
mov dword [esp + 0x30], vtable.cafx::tstring_ex_wchar_t__class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___.0
mov dword [esp + 0x2b0], 0xffffffff
cmp dword [esp + 0x48], 8
jb 0x43ed99
push dword [esp + 0x34]
call fcn.0051d3d0
add esp, 4
xor eax, eax
mov dword [esp + 0x48], 7
mov dword [esp + 0x44], 0
mov word [esp + 0x34], ax
mov ecx, dword [esp + 0x2a8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x290]
xor ecx, esp
call fcn.004ffcef
mov esp, ebp
pop ebp
ret