Function at 0x40db50
Capabilities:
Get disk size

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x42905b
push eax
mov dword fs:[0], esp
sub esp, 0xbfc
push ebx
push ebp
push esi
push edi
call fcn.00410db0
xor ebp, ebp
cmp eax, ebp
jne 0x40e081
lea ecx, [esp + 0x20]
mov dword [esp + 0x10], ebp
call fcn.00410ef0
mov esi, dword [esp + 0xc1c]
mov ecx, 0x232
xor eax, eax
lea edi, [esp + 0x340]
rep stosd dword es:[edi], eax
push esi
lea ecx, [esp + 0x24]
mov dword [esp + 0xc18], ebp
stosb byte es:[edi], al
call fcn.00411090
mov ebx, dword [esp + 0xc20]
lea eax, [esp + 0x340]
push eax
push ebx
lea ecx, [esp + 0x28]
call fcn.004110f0
lea ecx, [esp + 0x7d1]
push ecx
push esi
push str._CAccaSZCore::SZ_UnMountEx____lpszLetter___s__Fine_Name:__s
call fcn.0041ba60
lea edx, [esp + 0x7dd]
push edx
call dword [sym.imp.MSVCRT.dll_wcslen]
add esp, 0x10
test eax, eax
je 0x40dea6
movsx eax, byte [esp + 0x750]
push eax
lea ecx, [esp + 0x2c]
push str._c:_
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
lea edx, [esp + 0xbdd]
lea eax, [esp + 0x28]
push edx
push ebp
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExA]
test eax, eax
jne 0x40dd7b
push str._CAccaSZCore::SZ_UnMountEx____GetDiskFreeSpaceExA_Fail
call fcn.0041ba60
movsx ecx, byte [esp + 0x754]
push ecx
call dword [sym.imp.MSVCRT.dll_toupper]
mov byte [esp + 0x24], al
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x3c]
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x24]
lea edx, [esp + 0x3c]
push edx
push edi
call fcn.00410c90
push edi
call fcn.0040ec70
mov ebp, dword [sym.imp.KERNEL32.dll_Sleep]
add esp, 0x14
push edi
call fcn.00420260
push 0x64
mov esi, eax
call ebp
test esi, esi
je 0x40dce9
mov eax, dword [esp + 0x10]
mov ecx, eax
inc eax
cmp ecx, 0x13
mov dword [esp + 0x10], eax
jl 0x40dc7a
test esi, esi
je 0x40dce9
mov ecx, dword [esp + 0xc24]
mov eax, 1
cmp ecx, eax
je 0x40dcc1
cmp dword [esp + 0xbf9], eax
jne 0x40e06b
push esi
jmp 0x40e0b7
mov dword [esp + 0x10], 0
push edi
call fcn.00420390
push 0x64
mov esi, eax
call ebp
test esi, esi
je 0x40dce9
mov eax, dword [esp + 0x10]
mov edx, eax
inc eax
cmp edx, 0x13
mov dword [esp + 0x10], eax
jl 0x40dcc9
push ebx
push edi
call fcn.00420150
lea eax, [esp + 0x34]
push eax
push ebx
call fcn.0041e450
push ebx
call fcn.0041fb30
push ebx
call fcn.0041f780
push edi
call fcn.0040ed30
mov eax, dword [esp + 0xc2c]
add esp, 4
test eax, eax
je 0x40dd2e
mov ecx, dword [esp + 0xc1c]
push ebx
push ecx
call fcn.0040e4b0
add esp, 8
jmp 0x40dd5d
sub esp, 0x8cc
mov ecx, 0x232
lea esi, [esp + 0xc0c]
mov edi, esp
mov dword [esp + 0x14c5], 0
push ebx
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x8f0]
movsb byte es:[edi], byte [esi]
call fcn.004116e0
mov edx, dword [esp + 0x750]
mov eax, dword [esp + 0xc1c]
push edx
push ebx
push eax
call fcn.004100a0
add esp, 0xc
jmp 0x40e06b
movsx ecx, byte [esp + 0x750]
push ecx
call dword [sym.imp.MSVCRT.dll_toupper]
mov byte [esp + 0x20], al
lea edx, [esp + 0x240]
mov ebp, dword [esp + 0x20]
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x240]
push edx
push ebp
rep stosd dword es:[edi], eax
call fcn.00410c90
push ebp
call fcn.0040ec70
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
add esp, 0x10
push ebp
call fcn.00420260
push 0x64
mov esi, eax
call edi
test esi, esi
je 0x40de14
mov eax, dword [esp + 0x10]
mov ecx, eax
inc eax
cmp ecx, 0x13
mov dword [esp + 0x10], eax
jl 0x40ddbf
test esi, esi
je 0x40de14
cmp dword [esp + 0xc24], 1
je 0x40ddf3
push esi
jmp 0x40e0b7
xor ebx, ebx
push ebp
call fcn.00420390
push 0x64
mov esi, eax
call edi
test esi, esi
je 0x40de0d
mov edx, ebx
inc ebx
cmp edx, 0x13
jl 0x40ddf5
mov ebx, dword [esp + 0xc20]
push ebx
push ebp
call fcn.00420150
lea eax, [esp + 0x23c]
push eax
push ebx
call fcn.0041e450
push ebx
call fcn.0041fb30
push ebx
call fcn.0041f780
mov eax, dword [esp + 0xc28]
test eax, eax
je 0x40de53
mov ecx, dword [esp + 0xc1c]
push ebx
push ecx
call fcn.0040e4b0
add esp, 8
jmp 0x40de82
sub esp, 0x8cc
mov ecx, 0x232
lea esi, [esp + 0xc0c]
mov edi, esp
mov dword [esp + 0x14c5], 0
push ebx
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x8f0]
movsb byte es:[edi], byte [esi]
call fcn.004116e0
push ebp
call fcn.0040ed30
mov edx, dword [esp + 0x754]
mov eax, dword [esp + 0xc20]
push edx
push ebx
push eax
call fcn.004100a0
add esp, 0x10
jmp 0x40e06b
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x18]
push ecx
push edx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x34], ebp
call fcn.0040edf0
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x40dedd
mov eax, dword [esp + 0x18]
cmp eax, ebp
je 0x40ded7
push eax
call sub.MFC42u.DLL_operatordelete
add esp, 4
push esi
jmp 0x40e0b7
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1c], ebp
cmp eax, ebp
jbe 0x40e05e
xor eax, eax
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x18]
mov esi, ebx
add eax, ecx
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x40df1f
test cl, cl
je 0x40df1b
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x40df1f
add eax, 2
add esi, 2
test cl, cl
jne 0x40defb
xor eax, eax
jmp 0x40df24
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40e03e
mov ecx, dword [esp + 0xc1c]
mov byte [esp + 0x17], al
lea eax, [esp + 0x17]
push eax
push ebx
push ecx
call fcn.0040fc50
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x40e09a
movsx edx, byte [esp + 0x17]
push edx
call dword [sym.imp.MSVCRT.dll_toupper]
mov byte [esp + 0x34], al
mov esi, dword [esp + 0x34]
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x13c]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x13c]
push eax
push esi
call fcn.00410c90
push esi
call fcn.0040ec70
mov ebp, dword [sym.imp.KERNEL32.dll_Sleep]
add esp, 0x10
push esi
call fcn.00420260
push 0x64
mov edi, eax
call ebp
test edi, edi
je 0x40dfe9
mov eax, dword [esp + 0x10]
mov ecx, eax
inc eax
cmp ecx, 0x13
mov dword [esp + 0x10], eax
jl 0x40df91
test edi, edi
je 0x40dfe9
cmp dword [esp + 0xc24], 1
jne 0x40e0a5
xor ebp, ebp
mov dword [esp + 0x10], ebp
push esi
call fcn.00420390
push 0x64
mov edi, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
test edi, edi
je 0x40dfe5
mov edx, ebp
inc ebp
cmp edx, 0x13
jl 0x40dfc9
mov dword [esp + 0x10], ebp
push ebx
push esi
call fcn.00420150
lea eax, [esp + 0x138]
push eax
push ebx
call fcn.0041e450
push ebx
call fcn.0041fb30
push ebx
call fcn.0041f780
mov eax, dword [esp + 0xc28]
test eax, eax
je 0x40e026
mov ecx, dword [esp + 0xc1c]
push ebx
push ecx
call fcn.0040e4b0
add esp, 8
push esi
call fcn.0040ed30
mov edx, dword [esp + 0xc20]
push esi
push ebx
push edx
call fcn.004100a0
add esp, 0x10
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
inc ecx
add eax, 0x74
cmp ecx, edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], eax
jb 0x40def3
mov eax, dword [esp + 0x18]
push eax
call sub.MFC42u.DLL_operatordelete
add esp, 4
lea ecx, [esp + 0x20]
mov dword [esp + 0xc14], 0xffffffff
call fcn.00410f30
xor eax, eax
mov ecx, dword [esp + 0xc0c]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xc08
ret
mov eax, dword [esp + 0x18]
test eax, eax
jmp 0x40decc
mov eax, dword [esp + 0x18]
test eax, eax
je 0x40e0b6
push eax
call sub.MFC42u.DLL_operatordelete
add esp, 4
push edi
call fcn.00410d00
add esp, 4
lea ecx, [esp + 0x20]
mov esi, eax
mov dword [esp + 0xc14], 0xffffffff
call fcn.00410f30
mov eax, esi
jmp 0x40e081