Function at 0x45e5ce
Capabilities:
Get disk size

Disassembly:
push 0x24c
mov eax, 0x4d1570
call fcn.004cbc99
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x220]
call sym.QQProtectUpd.exe_public:_void___thiscall_CTXStringA::constructor_void_
xor edi, edi
lea ecx, [ebp - 0x228]
mov dword [ebp - 4], edi
call sym.QQProtectUpd.exe_public:_void___thiscall_CTXStringA::constructor_void_
push esi
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 1
call sym.QQProtectUpd.exe_public:_void___thiscall_CTXStringW::constructor_wchar_t_const__
lea ecx, [ebp - 0x22c]
mov byte [ebp - 4], 2
call sym.QQProtectUpd.exe_public:_void___thiscall_CTXStringA::constructor_void_
lea eax, [ebp - 0x228]
push eax
lea eax, [ebp - 0x220]
push eax
push esi
mov byte [ebp - 4], 3
call sym.QQProtectUpd.exe_int___cdecl_FS::SplitQNC_wchar_t_const___class_CTXStringW___class_CTXStringW__
add esp, 0xc
test eax, eax
je 0x45e688
lea eax, [ebp - 0x220]
push 0x4e64cc
push eax
call sym.QQProtectUpd.exe_bool___cdecl_operator_class_CTXStringW_const___wchar_t_const__
test al, al
pop ecx
pop ecx
je 0x45e658
lea eax, [ebp - 0x228]
jmp 0x45e67c
lea eax, [ebp - 0x22c]
push eax
lea ecx, [ebp - 0x220]
call sym.QQProtectUpd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
push eax
call sym.QQProtectUpd.exe_int___cdecl_FS::GetFileSystemDirectory_wchar_t_const___class_CTXStringW__
test eax, eax
pop ecx
pop ecx
je 0x45e688
lea eax, [ebp - 0x22c]
push eax
lea ecx, [ebp - 0x224]
call fcn.0044d92a
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x218]
push eax
push 0x104
lea ecx, [ebp - 0x224]
call sym.QQProtectUpd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
push eax
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
push 0x5c
pop edx
cmp word [ebp - 0x218], dx
jne 0x45e6fc
cmp word [ebp - 0x216], dx
jne 0x45e6fc
cmp word [ebp - 0x214], di
lea eax, [ebp - 0x214]
mov dword [ebp - 0x21c], eax
je 0x45e735
movzx ecx, word [ebp - 0x214]
cmp cx, dx
je 0x45e6f3
inc eax
inc eax
mov dword [ebp - 0x21c], eax
movzx ecx, word [eax]
cmp cx, di
jne 0x45e6de
cmp word [eax], di
je 0x45e735
inc eax
inc eax
jmp 0x45e702
lea eax, [ebp - 0x218]
mov dword [ebp - 0x21c], eax
movzx ecx, word [eax]
cmp cx, di
je 0x45e735
cmp cx, dx
je 0x45e725
inc eax
inc eax
mov dword [ebp - 0x21c], eax
movzx ecx, word [eax]
cmp cx, di
jne 0x45e710
cmp word [eax], di
je 0x45e735
inc eax
inc eax
mov dword [ebp - 0x21c], eax
mov word [eax], di
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
mov edi, 0x4e2d90
push edi
mov dword [ebp - 0x238], eax
call sym.QQProtectUpd.exe_struct_HINSTANCE______cdecl_Util::Sys::SafeLoadLibrary_wchar_t_const__
pop ecx
mov ebx, eax
call esi
sub eax, dword [ebp - 0x238]
push eax
push edi
push str._s__u
push str.PerfDLL.LoadDll
push 4
push str.Util::FS::GetDiskFreeSpaceForFile
push 0x23f
push str.....SourceCommonFileSystemUtilFS.cpp
call fcn.00442b40
add esp, 0x20
test ebx, ebx
je 0x45e81a
push str.GetDiskFreeSpaceExW
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push ebx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
test esi, esi
je 0x45e81a
lea eax, [ebp - 0x244]
push eax
lea eax, [ebp - 0x258]
push eax
lea eax, [ebp - 0x250]
push eax
lea eax, [ebp - 0x218]
push eax
call esi
test eax, eax
jne 0x45e80c
or edi, 0xffffffff
mov esi, edi
lea ecx, [ebp - 0x22c]
mov byte [ebp - 4], 2
call sym.QQProtectUpd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 1
call sym.QQProtectUpd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0x228]
mov byte [ebp - 4], 0
call sym.QQProtectUpd.exe_public:_void___thiscall_CTXStringW::destructor_void_
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x220]
call sym.QQProtectUpd.exe_public:_void___thiscall_CTXStringW::destructor_void_
mov eax, esi
mov edx, edi
call fcn.004cbd1c
ret
mov esi, dword [ebp - 0x244]
mov edi, dword [ebp - 0x240]
jmp 0x45e7c6
lea eax, [ebp - 0x248]
push eax
lea eax, [ebp - 0x234]
push eax
lea eax, [ebp - 0x23c]
push eax
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
test eax, eax
je 0x45e7c1
mov eax, dword [ebp - 0x230]
imul eax, dword [ebp - 0x23c]
imul eax, dword [ebp - 0x234]
xor edi, edi
mov esi, eax
jmp 0x45e7c6