Function at 0x48f410
Capabilities:
Get disk size

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5188f0
mov eax, dword fs:[0]
push eax
sub esp, 0x24
push ebx
push esi
push edi
mov eax, dword [0x577680]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x20], edi
mov esi, dword [0x578ad4]
mov ecx, 0x16
lea edx, [esi + 1]
lea eax, [esi + 2]
imul eax, edx
imul eax, esi
cdq
idiv ecx
cmp edx, 9
jne 0x48f46c
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
mov esi, dword [ebp + 8]
push str.known_disabled
push 0x534550
mov ecx, esi
call fcn.00470d60
mov ecx, eax
call fcn.00470d60
mov ecx, eax
call fcn.00471f10
test al, al
jne 0x48f4f1
call fcn.00493af0
test al, al
jne 0x48f7b3
mov esi, dword [0x578ad4]
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, ecx, 0x64
sub esi, ecx
xor ecx, ecx
lea eax, [esi + 0x7b]
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004ef820
push eax
call fcn.004f0683
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
xor al, al
mov byte [ebp - 0xd], al
call fcn.00493930
test al, al
jne 0x48f52c
mov eax, dword [0x578ad4]
mov ecx, eax
sub ecx, 0
je 0x48f522
dec ecx
je 0x48f516
inc eax
mov dword [0x578ad4], eax
jmp 0x48f52c
mov dword [0x578ad4], 0
jmp 0x48f52c
mov dword [0x578ad4], 2
push 0
lea ecx, [ebp - 0x30]
call fcn.004707b0
push str.known_disabled
xor ebx, ebx
push 0x534550
mov ecx, esi
mov dword [ebp - 4], 0
mov dword [ebp - 0x1c], ebx
call fcn.00470d60
mov ecx, eax
call fcn.00470d60
mov ecx, eax
call fcn.00472560
test eax, eax
jle 0x48f7a4
lea esp, [esp]
push ebx
push str.known_disabled
push 0x534550
mov ecx, esi
call fcn.00470d60
mov ecx, eax
call fcn.00470d60
mov ecx, eax
call fcn.00470c20
mov esi, dword [edi + 0xac]
mov ebx, eax
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
call dword [edx + 0x10]
cmp dword [esi - 4], 0
lea edx, [esi - 4]
mov ecx, eax
jl 0x48f5be
cmp ecx, dword [esi - 0x10]
jne 0x48f5be
lea edi, [esi - 0x10]
mov eax, 1
lock xadd dword [edx], eax
jmp 0x48f5f7
mov eax, dword [ecx]
push 2
push dword [esi - 0xc]
call dword [eax]
mov edi, eax
test edi, edi
je 0x48f7c7
mov ecx, dword [esi - 0xc]
mov dword [edi + 4], ecx
mov ecx, dword [esi - 0xc]
lea eax, [ecx*2 + 2]
push eax
lea eax, [ecx*2 + 2]
push esi
push eax
lea eax, [edi + 0x10]
push eax
call fcn.004f18c0
add esp, 0x10
lea esi, [edi + 0x10]
mov dword [ebp - 0x18], esi
mov eax, dword [ebp - 0x20]
mov byte [ebp - 4], 1
cmp dword [eax + 0xd0], 2
jne 0x48f61e
add eax, 0xd4
push eax
lea ecx, [ebp - 0x18]
call fcn.004026b0
mov esi, dword [ebp - 0x18]
mov ecx, ebx
call fcn.00471820
mov edx, dword [0x5771f0]
mov ecx, 0x5771f0
mov edi, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 2
test edi, edi
je 0x48f669
test edi, 0xffff0000
jne 0x48f669
movzx edi, di
push 0
push edi
call fcn.00403070
add esp, 8
test eax, eax
je 0x48f672
push edi
push eax
lea ecx, [ebp - 0x14]
call fcn.00408b00
jmp 0x48f672
push edi
lea ecx, [ebp - 0x14]
call fcn.004027b0
lea eax, [ebp - 0x14]
push eax
push eax
mov byte [ebp - 4], 3
call fcn.004155c0
add esp, 8
mov ecx, ebx
call fcn.00472030
test al, al
je 0x48f6de
xor eax, eax
test esi, esi
setne al
test eax, eax
je 0x48f76b
mov eax, dword [ebp - 0x14]
mov edx, esi
mov ecx, eax
mov di, word [ecx]
cmp di, word [edx]
jne 0x48f6ca
test di, di
je 0x48f6c6
mov di, word [ecx + 2]
cmp di, word [edx + 2]
jne 0x48f6ca
add ecx, 4
add edx, 4
test di, di
jne 0x48f6a4
xor ecx, ecx
jmp 0x48f6cf
sbb ecx, ecx
or ecx, 1
test ecx, ecx
sete cl
test cl, cl
je 0x48f6de
mov byte [ebp - 0xd], 1
jmp 0x48f6fa
push ebx
lea ecx, [ebp - 0x30]
call fcn.00472560
push eax
lea ecx, [ebp - 0x30]
call fcn.00470c20
mov ecx, eax
call fcn.00470b70
mov eax, dword [ebp - 0x14]
lea edx, [eax - 0x10]
mov byte [ebp - 4], 1
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x48f718
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x48f736
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp + 8]
push str.known_disabled
inc ebx
push 0x534550
mov ecx, esi
mov dword [ebp - 0x1c], ebx
call fcn.00470d60
mov ecx, eax
call fcn.00470d60
mov ecx, eax
call fcn.00472560
cmp ebx, eax
jge 0x48f775
mov edi, dword [ebp - 0x20]
jmp 0x48f570
push 0x80004005
call fcn.004030e0
mov al, byte [ebp - 0xd]
test al, al
je 0x48f7a4
lea eax, [ebp - 0x30]
push eax
push str.known_disabled
push 0x534550
mov ecx, esi
call fcn.00470d60
mov ecx, eax
call fcn.00470d60
mov ecx, eax
call fcn.00470b70
call fcn.004939c0
lea ecx, [ebp - 0x30]
mov dword [ebp - 4], 0xffffffff
call fcn.00470ad0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
call fcn.0040cb60
int3