Function at 0x528129
Capabilities:
Get disk size

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x248
mov eax, dword [0x7b088c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x218]
push edi
call sym.txupd.exe_public:_void___thiscall_CTXStringW::constructor_void_
lea ecx, [ebp - 0x220]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::constructor_void_
push esi
lea ecx, [ebp - 0x214]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::constructor_wchar_t_const__
lea ecx, [ebp - 0x21c]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::constructor_void_
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x218]
push eax
push esi
call sym.txupd.exe_int___cdecl_FS::SplitQNC_wchar_t_const___class_CTXStringW___class_CTXStringW__
add esp, 0xc
test eax, eax
je 0x5281d9
lea eax, [ebp - 0x218]
push 0x710438
push eax
call sym.txupd.exe_bool___cdecl_operator_class_CTXStringW_const___wchar_t_const__
pop ecx
pop ecx
test al, al
je 0x5281a9
lea eax, [ebp - 0x220]
jmp 0x5281cd
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x218]
call sym.txupd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
push eax
call sym.txupd.exe_int___cdecl_FS::GetFileSystemDirectory_wchar_t_const___class_CTXStringW__
pop ecx
pop ecx
test eax, eax
je 0x5281d9
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x214]
call fcn.0051b603
lea eax, [ebp - 0x210]
push eax
lea eax, [ebp - 0x20c]
push eax
push 0x104
lea ecx, [ebp - 0x214]
call sym.txupd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
push eax
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
push 2
pop edx
push 0x5c
pop esi
xor edi, edi
cmp word [ebp - 0x20c], si
jne 0x528251
cmp word [ebp - 0x20a], si
jne 0x528251
mov cx, word [ebp - 0x208]
lea eax, [ebp - 0x208]
mov dword [ebp - 0x210], eax
test cx, cx
je 0x528248
movzx ecx, cx
cmp cx, si
je 0x528248
add eax, edx
mov dword [ebp - 0x210], eax
movzx ecx, word [eax]
test cx, cx
jne 0x528233
cmp word [eax], di
je 0x52828c
add eax, edx
jmp 0x528257
lea eax, [ebp - 0x20c]
mov dword [ebp - 0x210], eax
movzx ecx, word [eax]
test cx, cx
je 0x52828c
cmp cx, si
je 0x52827a
add eax, edx
mov dword [ebp - 0x210], eax
movzx ecx, word [eax]
test cx, cx
jne 0x528265
cmp word [eax], di
je 0x52828c
add eax, edx
xor ecx, ecx
mov dword [ebp - 0x210], eax
mov word [eax], cx
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
push str.kernel32.dll
call sym.txupd.exe_struct_HINSTANCE______cdecl_Util::Sys::SafeLoadLibrary_wchar_t_const__
pop ecx
mov ebx, eax
call esi
test ebx, ebx
je 0x5282f0
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 0x5282f0
lea eax, [ebp - 0x234]
push eax
lea eax, [ebp - 0x240]
push eax
lea eax, [ebp - 0x248]
push eax
lea eax, [ebp - 0x20c]
push eax
call esi
test eax, eax
je 0x52831d
mov esi, dword [ebp - 0x234]
mov edi, dword [ebp - 0x230]
jmp 0x528338
lea eax, [ebp - 0x238]
push eax
lea eax, [ebp - 0x22c]
push eax
lea eax, [ebp - 0x228]
push eax
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
test eax, eax
jne 0x528324
or esi, 0xffffffff
mov edi, esi
jmp 0x528338
mov esi, dword [ebp - 0x224]
imul esi, dword [ebp - 0x228]
imul esi, dword [ebp - 0x22c]
lea ecx, [ebp - 0x21c]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0x214]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0x220]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0x218]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
mov ecx, dword [ebp - 4]
mov edx, edi
pop edi
mov eax, esi
xor ecx, ebp
pop esi
pop ebx
call fcn.00682c16
mov esp, ebp
pop ebp
ret