Function at 0x40c23b
Capabilities:
Get disk size

Disassembly:
push 0x25c
mov eax, 0x41845e
call fcn.0041536b
mov ebx, ecx
xor edi, edi
mov dword [ebp - 4], edi
movzx eax, word [0x42bddc]
push edi
push eax
push 5
mov eax, ebx
call fcn.0040c7fb
cmp byte [0x42be1d], 0
je 0x40c280
mov eax, dword [0x42bde0]
cmp byte [eax + 0x1518], 0
je 0x40c280
push eax
call fcn.004055b8
lea ecx, [ebx + 0xa68]
push 0x4206a8
mov dword [ebx + 0x644], edi
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_2]
mov esi, 0x41f9d4
push esi
lea ecx, [ebx + 0x668]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_2]
push esi
lea ecx, [ebx + 0x66c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_2]
push esi
lea ecx, [ebx + 0x670]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_2]
push edi
push edi
push 0x402
push dword [ebx + 0x744]
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebx + 0x19c], edi
cmp byte [0x42be1d], 0
je 0x40c2f3
mov eax, dword [0x42bde0]
cmp byte [eax + 0x1518], 0
jne 0x40c27a
mov ax, word [ebp + 8]
mov esi, 0x41f998
push esi
mov word [0x42bddc], ax
push str.IDS_NOWSCANNING
lea eax, [ebp - 0x254]
push eax
mov ecx, 0x42bc88
call dword [sym.imp.K9PCUhelper.dll_public:_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t______thiscall_CMainApp::LoadStringW_wchar_t_const___wchar_t_const__]
lea ecx, [ebp + 0xc]
push ecx
lea ecx, [ebp - 0x22c]
push ecx
mov ecx, eax
mov byte [ebp - 4], 1
call fcn.004089a9
pop ecx
pop ecx
lea ecx, [ebp - 0x254]
mov byte [ebp - 4], 3
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
push dword [ebp - 0x22c]
lea ecx, [ebx + 0x67c]
call sub.mfc90u.dll_CWnd::SetWindowTextW
lea eax, [ebp + 0xc]
push eax
lea ecx, [ebx + 0x64c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
push edi
push 1
push 0x3e8
push dword [ebx + 0x20]
call dword [sym.imp.USER32.dll_SetTimer]
mov eax, dword [0x41fa74]
mov dword [ebp - 0x24], eax
mov eax, dword [0x41fa78]
mov dword [ebp - 0x20], eax
xor eax, eax
lea edi, [ebp - 0x1c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov ax, word [ebp + 8]
mov word [ebp - 0x24], ax
xor edi, edi
push edi
lea eax, [ebp - 0x234]
push eax
lea eax, [ebp - 0x23c]
push eax
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
push edi
push 0x64
push dword [ebp - 0x238]
push dword [ebp - 0x23c]
call fcn.00415520
push dword [ebp - 0x230]
push dword [ebp - 0x234]
push edx
push eax
call fcn.00415640
cmp edx, edi
ja 0x40c4be
jb 0x40c3e8
cmp eax, 8
jae 0x40c4be
cmp dword [ebp - 0x238], edi
ja 0x40c4be
jb 0x40c406
cmp dword [ebp - 0x23c], 0x40000000
jae 0x40c4be
push 0x3e8
push dword [ebx + 0x20]
call dword [sym.imp.USER32.dll_KillTimer]
push esi
lea ecx, [ebx + 0x6d0]
call sub.mfc90u.dll_CWnd::SetWindowTextW
push edi
push edi
push 0x402
push dword [ebx + 0x744]
call dword [sym.imp.USER32.dll_SendMessageW]
push esi
push str.IDS_WARNING_LOW_FREESPACE
lea eax, [ebp - 0x244]
push eax
mov ecx, 0x42bc88
call dword [sym.imp.K9PCUhelper.dll_public:_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t______thiscall_CMainApp::LoadStringW_wchar_t_const___wchar_t_const__]
push eax
lea eax, [ebp - 0x24c]
push eax
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 4
call fcn.004089a9
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x22c]
mov byte [ebp - 4], 5
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
lea ecx, [ebp - 0x24c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp - 0x244]
mov byte [ebp - 4], 3
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
push 1
push edi
push edi
push edi
push dword [ebp - 0x22c]
call dword [sym.imp.K9PCUhelper.dll_public:_static_int___cdecl_CMainApp::AfxMessageBox_wchar_t_const___unsigned_int__class_CDialog___class_CRect___bool_]
add esp, 0x14
lea ecx, [ebp - 0x22c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp + 0xc]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
xor eax, eax
jmp 0x40c7f3
cmp byte [0x42be1d], 0
je 0x40c4d9
mov eax, dword [0x42bde0]
cmp byte [eax + 0x1518], 0
jne 0x40c27a
xor eax, eax
push 0x1fe
mov word [ebp - 0x224], ax
lea eax, [ebp - 0x222]
push edi
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
push 0x100
lea eax, [ebp - 0x224]
push eax
mov edi, 0x400
push edi
push dword [ebp - 0x230]
push dword [ebp - 0x234]
call dword [sym.imp.K9PCUhelper.dll_int___cdecl_BytesToString_unsigned_long_long_unsigned___int64___unsigned_int__wchar_t___unsigned_int_]
add esp, 0x14
lea eax, [ebp - 0x240]
push 0x420d50
push eax
lea esi, [ebp + 0xc]
call fcn.004063b3
lea ecx, [ebp - 0x224]
push ecx
lea ecx, [ebp - 0x250]
push ecx
mov esi, eax
mov byte [ebp - 4], 6
call fcn.004063b3
add esp, 0x10
push eax
lea ecx, [ebx + 0xa68]
mov byte [ebp - 4], 7
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
lea ecx, [ebp - 0x250]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp - 0x240]
mov byte [ebp - 4], 3
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
push 0
call dword [sym.imp.MSVCR90.dll__time64]
fldz
and dword [ebp - 0x258], 0
fstp qword [ebp - 0x260]
pop ecx
mov dword [ebp - 0x268], eax
lea eax, [ebp - 0x268]
lea ecx, [ebp - 0x260]
mov dword [ebp - 0x264], edx
call fcn.0040d15f
mov esi, dword [0x42be10]
and dword [ebp - 0x228], 0
test esi, esi
jle 0x40c5ec
mov eax, dword [ebp - 0x228]
mov ecx, 0x42be08
call fcn.0040cfa7
mov cx, word [ebp + 8]
cmp cx, word [eax]
je 0x40c72a
inc dword [ebp - 0x228]
cmp dword [ebp - 0x228], esi
jl 0x40c5c1
or dword [ebp - 0x228], 0xffffffff
mov esi, dword [ebp - 0x228]
cmp esi, 0xffffffff
je 0x40c695
test esi, esi
jl 0x40c73b
cmp esi, dword [0x42be10]
jge 0x40c73b
mov eax, dword [0x42be0c]
imul esi, esi, 0x50
add eax, esi
add eax, 0x28
push eax
lea eax, [ebp - 0x260]
call fcn.00406376
lea eax, [ebp - 0x260]
push eax
lea edi, [ebp - 0x248]
call fcn.0040cfc7
mov edi, dword [ebp - 0x228]
mov byte [ebp - 4], 8
cmp edi, dword [0x42be10]
jge 0x40c73b
mov ecx, dword [0x42be0c]
add ecx, esi
push eax
add ecx, 4
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 3
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
cmp edi, dword [0x42be10]
jge 0x40c73b
mov eax, dword [0x42be0c]
add esi, eax
mov byte [esi + 0x38], 1
mov edi, 0x400
cmp byte [0x42be1d], 0
je 0x40c6b0
mov eax, dword [0x42bde0]
cmp byte [eax + 0x1518], 0
jne 0x40c27a
movzx eax, word [0x42bddc]
push 0
push eax
push 5
mov eax, ebx
call fcn.0040c7fb
call sub.mfc90u.dll_AfxGetModuleState
mov ecx, dword [eax + 4]
call sub.mfc90u.dll_CCmdTarget::BeginWaitCursor
mov byte [ebp - 4], 9
cmp dword [ebx + 0x648], 0
jne 0x40c778
cmp byte [0x42be1d], 0
je 0x40c6fc
mov eax, dword [0x42bde0]
cmp byte [eax + 0x1518], 0
jne 0x40c27a
mov esi, dword [ebp + 8]
push 0
push esi
push 6
mov eax, ebx
call fcn.0040c7fb
mov dword [ebp - 0x228], eax
test eax, eax
je 0x40c740
cmp byte [0x42be1d], 0
je 0x40c75b
mov dword [0x42bbec], 1
jmp 0x40c75b
mov esi, dword [ebp - 0x228]
mov dword [ebp - 0x228], esi
jmp 0x40c5f9
call sub.mfc90u.dll_AfxThrowInvalidArgException
cmp byte [0x42be1d], 0
je 0x40c75b
mov eax, dword [0x42bde0]
cmp byte [eax + 0x1518], 0
jne 0x40c27a
cmp word [0x42bbf8], si
je 0x40c76b
mov word [0x42bbf8], si
push 0x800
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x40c7cf
push 1
push dword [ebp + 8]
mov eax, ebx
push 1
call fcn.0040c7fb
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
push edi
mov dword [ebp - 0x228], eax
call ebx
mov esi, 0x42bc88
mov ecx, esi
call sub.mfc90u.dll_CWinThread::PumpMessage
push edi
call ebx
mov ecx, esi
call sub.mfc90u.dll_CWinThread::PumpMessage
mov ax, word [ebp + 8]
cmp word [0x42bbf8], ax
jne 0x40c7cf
cmp dword [0x42bbfc], 0
je 0x40c7cf
cmp dword [0x42bc00], 0
je 0x40c7cf
call fcn.00401095
mov byte [ebp - 4], 3
call fcn.00408b7d
lea ecx, [ebp - 0x22c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp + 0xc]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov eax, dword [ebp - 0x228]
call fcn.004153ee
ret 8