Function at 0x44d190
Capabilities:
Get disk size

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa74
mov eax, dword [0x4ade78]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov ebx, ecx
lea eax, [ebp - 0x9e4]
push eax
push dword [ebx + 0x30]
mov dword [ebp - 0xa54], ebx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [0x4af2c0]
imul eax, eax
cdq
mov ecx, 9
idiv ecx
mov esi, dword [ebp - 0x9dc]
sub esi, dword [ebp - 0x9e4]
mov dword [ebp - 0xa64], 0
mov dword [ebp - 0xa60], 0
mov dword [ebp - 0xa10], esi
cmp edx, 8
jne 0x44d26b
xor esi, esi
jmp 0x44d200
call fcn.00461e71
movd xmm0, eax
cvtdq2pd xmm0, xmm0
inc esi
movsd qword [ebp + esi*8 - 0x304], xmm0
cmp esi, 0x5f
jb 0x44d200
xor ecx, ecx
mov edi, edi
mov eax, 0x5e
cmp ecx, eax
jge 0x44d25f
lea esp, [esp]
movsd xmm0, qword [ebp + eax*8 - 0x2fc]
movsd xmm1, qword [ebp + eax*8 - 0x304]
comisd xmm0, xmm1
jbe 0x44d25a
movsd qword [ebp + eax*8 - 0x2fc], xmm1
movsd qword [ebp + eax*8 - 0x304], xmm0
dec eax
cmp eax, ecx
jg 0x44d230
inc ecx
cmp ecx, 0x5f
jl 0x44d220
mov esi, dword [ebp - 0xa10]
mov edi, dword [ebp - 0x9d8]
sub edi, dword [ebp - 0x9e0]
call fcn.0044d070
test al, al
jne 0x44d286
dec dword [0x4b0580]
mov eax, dword [ebp - 0x9e4]
mov dword [ebp - 0xa74], eax
mov eax, dword [ebp - 0x9e0]
mov dword [ebp - 0xa70], eax
mov dword [ebp - 0xa6c], esi
mov dword [ebp - 0xa68], edi
mov dword [ebp - 0xa30], 0x1ff0000
call fcn.00429110
test al, al
jne 0x44d2e1
push 4
call fcn.00460a63
mov esi, eax
call fcn.00461e71
mov dword [esi], eax
push esi
mov dword [0x4af2c0], eax
call fcn.00460a34
mov esi, dword [ebp - 0xa10]
add esp, 8
push dword [ebx + 0x30]
call dword [sym.imp.USER32.dll_GetDC]
push eax
mov dword [ebp - 0xa38], eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
shl esi, 5
xorps xmm0, xmm0
add esi, 0x1f
sar esi, 3
mov dword [ebp - 0xa4c], eax
movq qword [ebp - 0xa08], xmm0
movq qword [ebp - 0xa00], xmm0
movq qword [ebp - 0x9f8], xmm0
movq qword [ebp - 0x9f0], xmm0
mov dword [ebp - 0x9e8], 0
and esi, 0xfffffffc
call fcn.0044cfa0
mov edx, dword [0x4af2c0]
test al, al
jne 0x44d34c
dec edx
mov dword [0x4af2c0], edx
mov eax, dword [ebp - 0xa10]
mov dword [ebp - 0xa08], eax
lea ecx, [edx + 1]
lea eax, [edx + 2]
imul eax, ecx
imul eax, edx
cdq
mov ecx, 0x12
idiv ecx
mov dword [ebp - 0xa0c], 0x28
mov dword [ebp - 0xa04], edi
cmp edx, 1
jne 0x44d391
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceA]
mov dword [ebp - 0xa00], 0x200001
call fcn.0044cff0
test al, al
jne 0x44d3f0
mov al, byte [0x493fa4]
movq xmm0, qword [str.uGBGdAxS]
mov byte [ebp - 0xa18], al
lea eax, [ebp - 0xa20]
movq qword [ebp - 0xa20], xmm0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x44d3c8
sub eax, edx
xor ecx, ecx
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004601e0
push eax
call fcn.0046208f
add esp, 8
push 0
imul esi, edi
push 0
lea eax, [ebp - 0xa44]
push eax
push 0
lea eax, [ebp - 0xa0c]
push eax
push 0
mov dword [ebp - 0x9fc], 0
mov dword [ebp - 0x9ec], 0
mov dword [ebp - 0x9f8], esi
mov dword [ebp - 0xa44], 0
call dword [sym.imp.GDI32.dll_CreateDIBSection]
mov esi, eax
mov dword [ebp - 0xa58], esi
test esi, esi
je 0x44d8c6
imul edi, dword [ebp - 0xa10]
shl edi, 2
push edi
push 0
push dword [ebp - 0xa44]
call fcn.00462e00
add esp, 0xc
push esi
mov esi, dword [ebp - 0xa4c]
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0xa5c], eax
lea eax, [ebp - 0xa40]
push eax
push esi
mov dword [ebp - 0xa40], 0
call sub.gdiplus.dll_GdipCreateFromHDC
mov edi, dword [ebp - 0xa40]
push 3
push edi
mov dword [ebp - 0xa10], edi
call sub.gdiplus.dll_GdipSetSmoothingMode
mov esi, dword [ebx + 0x54]
lea eax, [ebp - 0xa14]
push eax
push dword [esi + 4]
mov dword [ebp - 0xa14], 0
call sub.gdiplus.dll_GdipGetImageWidth
test eax, eax
je 0x44d4c0
mov dword [esi + 8], eax
mov esi, dword [ebx + 0x54]
lea eax, [ebp - 0xa34]
push eax
push dword [esi + 4]
mov dword [ebp - 0xa34], 0
call sub.gdiplus.dll_GdipGetImageHeight
test eax, eax
je 0x44d4e3
mov dword [esi + 8], eax
mov eax, dword [ebx + 0x54]
test eax, eax
je 0x44d4ef
mov eax, dword [eax + 4]
jmp 0x44d4f1
xor eax, eax
mov esi, dword [ebp - 0xa34]
push esi
push dword [ebp - 0xa14]
push 0
push dword [ebx + 0x5c]
push eax
push edi
call sub.gdiplus.dll_GdipDrawImageRectI
lea eax, [ebp - 0xa28]
push eax
push 0
push ecx
mov dword [ebp - 0xa28], 0
mov dword [esp], 0x3f800000
push 0xff000000
call sub.gdiplus.dll_GdipCreatePen1
push 0
push dword [ebp - 0xa28]
mov dword [ebp - 0xa24], eax
call sub.gdiplus.dll_GdipSetPenMode
mov ecx, dword [ebp - 0xa24]
mov edx, dword [ebp - 0x9d8]
mov edi, dword [ebx + 0x54]
test eax, eax
cmovne ecx, eax
mov dword [ebp - 0xa24], ecx
mov ecx, dword [ebp - 0x9dc]
lea eax, [esi + esi]
sub edx, eax
sub edx, dword [ebp - 0x9e0]
sub ecx, eax
sub ecx, dword [ebp - 0x9e4]
lea eax, [esi - 1]
add eax, edx
mov dword [ebp - 0xa3c], eax
lea eax, [esi - 1]
add eax, ecx
mov dword [ebp - 0xa14], eax
lea eax, [ebp - 0xa2c]
push eax
push dword [edi + 4]
mov dword [ebp - 0xa48], ecx
mov dword [ebp - 0xa50], edx
mov dword [ebp - 0xa2c], 0
call sub.gdiplus.dll_GdipGetImageHeight
test eax, eax
je 0x44d5b7
mov dword [edi + 8], eax
push dword [ebp - 0xa3c]
mov edi, dword [ebx + 0x5c]
sub edi, dword [ebp - 0xa2c]
push esi
push esi
push esi
push dword [ebp - 0xa28]
add edi, esi
push dword [ebp - 0xa10]
call sub.gdiplus.dll_GdipDrawLineI
push esi
push edi
push esi
push esi
push dword [ebp - 0xa28]
push dword [ebp - 0xa10]
call sub.gdiplus.dll_GdipDrawLineI
mov ebx, dword [ebx + 0x54]
lea eax, [ebp - 0xa2c]
push eax
push dword [ebx + 4]
mov dword [ebp - 0xa2c], 0
call sub.gdiplus.dll_GdipGetImageWidth
test eax, eax
je 0x44d614
mov dword [ebx + 8], eax
mov eax, dword [ebp - 0xa2c]
mov ebx, dword [ebp - 0xa10]
push esi
push dword [ebp - 0xa14]
dec eax
push esi
add eax, edi
push eax
push dword [ebp - 0xa28]
push ebx
call sub.gdiplus.dll_GdipDrawLineI
mov edi, dword [ebp - 0xa3c]
mov eax, dword [ebp - 0xa14]
push edi
push eax
push esi
push eax
push dword [ebp - 0xa28]
push ebx
call sub.gdiplus.dll_GdipDrawLineI
push edi
push dword [ebp - 0xa14]
push edi
push esi
push dword [ebp - 0xa28]
push ebx
call sub.gdiplus.dll_GdipDrawLineI
lea eax, [ebp - 0xa20]
push eax
push 0
push ecx
mov dword [ebp - 0xa20], 0
mov dword [esp], 0x40400000
push 0x7d969696
call sub.gdiplus.dll_GdipCreatePen1
push 1
push dword [ebp - 0xa20]
mov dword [ebp - 0xa1c], eax
call sub.gdiplus.dll_GdipSetPenMode
mov ecx, dword [ebp - 0xa1c]
mov edi, dword [ebp - 0xa50]
test eax, eax
cmovne ecx, eax
dec edi
lea ebx, [esi + 2]
add edi, esi
push edi
push ebx
push ebx
push ebx
push dword [ebp - 0xa20]
mov dword [ebp - 0xa1c], ecx
push dword [ebp - 0xa10]
call sub.gdiplus.dll_GdipDrawLineI
mov eax, dword [ebp - 0xa48]
push ebx
dec eax
add eax, esi
push eax
push ebx
push ebx
push dword [ebp - 0xa20]
push dword [ebp - 0xa10]
call sub.gdiplus.dll_GdipDrawLineI
mov eax, dword [ebp - 0xa48]
push edi
add eax, 0xfffffffd
add esi, eax
push esi
push ebx
push esi
push dword [ebp - 0xa20]
push dword [ebp - 0xa10]
call sub.gdiplus.dll_GdipDrawLineI
mov eax, dword [ebp - 0xa50]
add eax, 0xfffffffd
add eax, dword [ebp - 0xa34]
push eax
push esi
push eax
push ebx
push dword [ebp - 0xa20]
mov ebx, dword [ebp - 0xa10]
push ebx
call sub.gdiplus.dll_GdipDrawLineI
mov esi, dword [ebp - 0xa4c]
mov edi, dword [ebp - 0xa54]
push 2
lea eax, [ebp - 0xa30]
push eax
push 0
lea eax, [ebp - 0xa64]
push eax
push esi
lea eax, [ebp - 0xa6c]
push eax
lea eax, [ebp - 0xa74]
push eax
push dword [ebp - 0xa38]
push dword [edi + 0x30]
call dword [sym.imp.USER32.dll_UpdateLayeredWindow]
push esi
push ebx
call sub.gdiplus.dll_GdipReleaseDC
push dword [ebp - 0xa5c]
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [ebp - 0xa58]
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [ebp - 0xa20]
call sub.gdiplus.dll_GdipDeletePen
push dword [ebp - 0xa28]
call sub.gdiplus.dll_GdipDeletePen
push ebx
call sub.gdiplus.dll_GdipDeleteGraphics
push esi
mov esi, dword [sym.imp.GDI32.dll_DeleteDC]
call esi
push dword [ebp - 0xa38]
call esi
mov eax, dword [0x4af2c0]
imul eax, eax
cdq
mov ecx, 0x15
idiv ecx
cmp edx, 0xc
jne 0x44d838
xor esi, esi
call fcn.00461e71
movd xmm0, eax
cvtdq2pd xmm0, xmm0
inc esi
movsd qword [ebp + esi*8 - 0x9dc], xmm0
cmp esi, 0xdb
jb 0x44d7d6
xor ecx, ecx
mov eax, 0xda
cmp ecx, eax
jge 0x44d82f
movsd xmm0, qword [ebp + eax*8 - 0x9d4]
movsd xmm1, qword [ebp + eax*8 - 0x9dc]
comisd xmm0, xmm1
jbe 0x44d82a
movsd qword [ebp + eax*8 - 0x9d4], xmm1
movsd qword [ebp + eax*8 - 0x9dc], xmm0
dec eax
cmp eax, ecx
jg 0x44d800
inc ecx
cmp ecx, 0xdb
jl 0x44d7f7
push 0
push dword [edi + 0x30]
call dword [sym.imp.USER32.dll_ValidateRect]
mov ecx, dword [0x4af2c0]
lea eax, [ecx + 1]
imul eax, ecx
and eax, reloc.OLEAUT32.dll_VariantInit
jns 0x44d85b
dec eax
or eax, 0xfffffff8
inc eax
cmp eax, 3
jne 0x44d878
push 4
call fcn.00460a63
mov ecx, dword [0x4af2c0]
mov dword [eax], ecx
mov ecx, dword [0x4af2c0]
add esp, 4
lea eax, [ecx + 1]
imul eax, ecx
cdq
mov ecx, 0x12
idiv ecx
cmp edx, 3
jne 0x44d8c6
push 0x28
call fcn.004601e0
add esp, 4
mov edi, eax
xor esi, esi
lea esp, [esp]
call fcn.00461e71
add eax, dword [0x4af2c0]
inc esi
mov dword [edi + esi*4 - 4], eax
cmp esi, 0xa
jl 0x44d8a0
mov eax, dword [edi + 0x24]
push edi
mov dword [0x4af2c0], eax
call fcn.0046208f
add esp, 4
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00461234
mov esp, ebp
pop ebp
ret