Function at 0x1000c580
Capabilities:
Get disk size

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10136363
mov eax, dword fs:[0]
push eax
sub esp, 0x94
mov eax, dword [0x1018e600]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x48], ebx
lea eax, [ebp + 8]
xor esi, esi
push eax
lea ecx, [ebp - 0x90]
mov dword [ebp - 4], esi
call sym.BootstrapLibrary.dll_public:_void___thiscall_SystemConditionItem::constructor_class_SystemConditionItem_const__
mov byte [ebp - 4], 1
push esi
push 0x10163fee
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], esi
mov byte [ebp - 0x2c], 0
call fcn.1000dcd0
lea ecx, [ebp - 0x30]
push ecx
mov ecx, ebx
mov byte [ebp - 4], 2
call sym.BootstrapLibrary.dll_public:_class_ATL::CStringT_wchar_t__class_StrTraitMFC_wchar_t__class_ATL::ChTraitsCRT_wchar_t______thiscall_ConditionChecker::FindInstallDiskDrive_void_
lea edx, [ebp - 0x98]
push edx
mov edx, dword [ebp - 0x30]
lea eax, [ebp - 0xa0]
push eax
lea ecx, [ebp - 0x50]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
mov eax, dword [ebp - 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1000c631
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x3c], esi
push ecx
xor edi, edi
lea esi, [ebp - 0x44]
call fcn.1000e180
mov dword [ebp - 0x34], edi
mov byte [ebp - 4], 3
mov esi, dword [ebp - 0x54]
cmp esi, 2
jne 0x1000c65f
lea eax, [edi + 1]
jmp 0x1000c66f
mov ecx, ebx
call sym.BootstrapLibrary.dll_public:_enum_SystemArchitectureType___thiscall_ConditionChecker::getOSArchitecture_void_
xor edx, edx
cmp esi, eax
sete dl
mov eax, edx
push eax
lea eax, [ebp - 0x44]
call fcn.1000dc70
mov ebx, dword [ebp - 0x90]
cmp ebx, 0xffffffff
jne 0x1000c688
lea eax, [ebx + 2]
jmp 0x1000c6cf
push 0x11c
call fcn.1001ee4b
mov esi, eax
add esp, 4
test esi, esi
je 0x1000c6ad
push 0x11c
push 0
push esi
call fcn.10111520
add esp, 0xc
jmp 0x1000c6af
xor esi, esi
push esi
mov dword [esi], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
mov edi, dword [esi + 0x10]
push esi
call fcn.1001ee85
xor eax, eax
add esp, 4
cmp ebx, edi
sete al
push eax
lea eax, [ebp - 0x44]
call fcn.1000dc70
mov ebx, dword [ebp - 0x8c]
cmp ebx, 0xffffffff
jne 0x1000c6e8
lea eax, [ebx + 2]
jmp 0x1000c72f
push 0x11c
call fcn.1001ee4b
mov esi, eax
add esp, 4
test esi, esi
je 0x1000c70d
push 0x11c
push 0
push esi
call fcn.10111520
add esp, 0xc
jmp 0x1000c70f
xor esi, esi
push esi
mov dword [esi], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
mov edi, dword [esi + 4]
push esi
call fcn.1001ee85
xor eax, eax
add esp, 4
cmp ebx, edi
sete al
push eax
lea eax, [ebp - 0x44]
call fcn.1000dc70
mov ebx, dword [ebp - 0x88]
cmp ebx, 0xffffffff
jne 0x1000c748
lea eax, [ebx + 2]
jmp 0x1000c78f
push 0x11c
call fcn.1001ee4b
mov esi, eax
add esp, 4
test esi, esi
je 0x1000c76d
push 0x11c
push 0
push esi
call fcn.10111520
add esp, 0xc
jmp 0x1000c76f
xor esi, esi
push esi
mov dword [esi], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
mov edi, dword [esi + 8]
push esi
call fcn.1001ee85
xor eax, eax
add esp, 4
cmp ebx, edi
sete al
push eax
lea eax, [ebp - 0x44]
call fcn.1000dc70
mov ebx, dword [ebp - 0x84]
cmp ebx, 0xffffffff
jne 0x1000c7a8
lea eax, [ebx + 2]
jmp 0x1000c7f3
push 0x11c
call fcn.1001ee4b
mov esi, eax
add esp, 4
test esi, esi
je 0x1000c7cd
push 0x11c
push 0
push esi
call fcn.10111520
add esp, 0xc
jmp 0x1000c7cf
xor esi, esi
push esi
mov dword [esi], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
movzx edi, byte [esi + 0x11a]
push esi
call fcn.1001ee85
xor eax, eax
add esp, 4
cmp ebx, edi
sete al
push eax
lea eax, [ebp - 0x44]
call fcn.1000dc70
mov ebx, dword [ebp - 0x80]
cmp ebx, 0xffffffff
jne 0x1000c809
lea eax, [ebx + 2]
jmp 0x1000c854
push 0x11c
call fcn.1001ee4b
mov esi, eax
add esp, 4
test esi, esi
je 0x1000c82e
push 0x11c
push 0
push esi
call fcn.10111520
add esp, 0xc
jmp 0x1000c830
xor esi, esi
push esi
mov dword [esi], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
movzx edi, word [esi + 0x114]
push esi
call fcn.1001ee85
xor eax, eax
add esp, 4
cmp ebx, edi
sete al
push eax
lea eax, [ebp - 0x44]
call fcn.1000dc70
mov ebx, dword [ebp - 0x7c]
cmp ebx, 0xffffffff
jne 0x1000c86a
lea eax, [ebx + 2]
jmp 0x1000c8b5
push 0x11c
call fcn.1001ee4b
mov esi, eax
add esp, 4
test esi, esi
je 0x1000c88f
push 0x11c
push 0
push esi
call fcn.10111520
add esp, 0xc
jmp 0x1000c891
xor esi, esi
push esi
mov dword [esi], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
movzx edi, word [esi + 0x118]
push esi
call fcn.1001ee85
xor eax, eax
add esp, 4
cmp ebx, edi
sete al
push eax
lea eax, [ebp - 0x44]
call fcn.1000dc70
mov eax, dword [ebp - 0x78]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov edx, ecx
and edx, eax
cmp edx, 0xffffffff
jne 0x1000c8d6
mov eax, 1
jmp 0x1000c8eb
cmp eax, dword [ebp - 0x4c]
ja 0x1000c8e9
jb 0x1000c8e2
cmp ecx, dword [ebp - 0x50]
ja 0x1000c8e9
mov eax, 1
jmp 0x1000c8eb
xor eax, eax
push eax
lea eax, [ebp - 0x44]
call fcn.1000dc70
mov ebx, dword [ebp - 0x74]
cmp ebx, 0xffffffff
jne 0x1000c901
lea eax, [ebx + 2]
jmp 0x1000c948
push 0x11c
call fcn.1001ee4b
mov esi, eax
add esp, 4
test esi, esi
je 0x1000c926
push 0x11c
push 0
push esi
call fcn.10111520
add esp, 0xc
jmp 0x1000c928
xor esi, esi
push esi
mov dword [esi], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
mov edi, dword [esi + 4]
push esi
call fcn.1001ee85
xor eax, eax
add esp, 4
cmp ebx, edi
setle al
push eax
lea eax, [ebp - 0x44]
call fcn.1000dc70
mov ebx, dword [ebp - 0x70]
cmp ebx, 0xffffffff
jne 0x1000c95e
lea eax, [ebx + 2]
jmp 0x1000c9a5
push 0x11c
call fcn.1001ee4b
mov esi, eax
add esp, 4
test esi, esi
je 0x1000c983
push 0x11c
push 0
push esi
call fcn.10111520
add esp, 0xc
jmp 0x1000c985
xor esi, esi
push esi
mov dword [esi], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
mov edi, dword [esi + 8]
push esi
call fcn.1001ee85
xor eax, eax
add esp, 4
cmp ebx, edi
setle al
push eax
lea eax, [ebp - 0x44]
call fcn.1000dc70
mov ebx, dword [ebp - 0x6c]
cmp ebx, 0xffffffff
jne 0x1000c9bb
lea eax, [ebx + 2]
jmp 0x1000ca06
push 0x11c
call fcn.1001ee4b
mov esi, eax
add esp, 4
test esi, esi
je 0x1000c9e0
push 0x11c
push 0
push esi
call fcn.10111520
add esp, 0xc
jmp 0x1000c9e2
xor esi, esi
push esi
mov dword [esi], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
movzx edi, byte [esi + 0x11a]
push esi
call fcn.1001ee85
xor eax, eax
add esp, 4
cmp ebx, edi
setle al
push eax
lea eax, [ebp - 0x44]
call fcn.1000dc70
mov ebx, dword [ebp - 0x68]
cmp ebx, 0xffffffff
jne 0x1000ca1c
lea eax, [ebx + 2]
jmp 0x1000ca67
push 0x11c
call fcn.1001ee4b
mov esi, eax
add esp, 4
test esi, esi
je 0x1000ca41
push 0x11c
push 0
push esi
call fcn.10111520
add esp, 0xc
jmp 0x1000ca43
xor esi, esi
push esi
mov dword [esi], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
movzx edi, word [esi + 0x114]
push esi
call fcn.1001ee85
xor eax, eax
add esp, 4
cmp ebx, edi
setle al
push eax
lea eax, [ebp - 0x44]
call fcn.1000dc70
mov edi, dword [ebp - 0x60]
mov esi, dword [ebp - 0x5c]
mov eax, edi
and eax, esi
cmp eax, 0xffffffff
jne 0x1000ca86
mov eax, 1
jmp 0x1000caa9
mov ecx, dword [ebp - 0x48]
call sym.BootstrapLibrary.dll_public:_unsigned_long_long_unsigned___int64____thiscall_ConditionChecker::getTotalRAM_void_
add eax, 0x6400000
adc edx, 0
cmp esi, edx
ja 0x1000caa7
jb 0x1000caa0
cmp edi, eax
ja 0x1000caa7
mov eax, 1
jmp 0x1000caa9
xor eax, eax
push eax
lea eax, [ebp - 0x44]
call fcn.1000dc70
mov edi, dword [ebp - 0x44]
mov esi, dword [ebp - 0x34]
xor eax, eax
mov ebx, edi
mov ecx, eax
mov edi, edi
xor eax, eax
mov edx, edi
test esi, esi
je 0x1000caf2
jns 0x1000cae5
mov edx, esi
neg edx
je 0x1000cae5
or eax, 0xffffffff
sub eax, esi
shr eax, 5
lea eax, [eax*4 + 4]
mov edx, edi
sub edx, eax
jmp 0x1000caed
mov edx, esi
shr edx, 5
lea edx, [edi + edx*4]
mov eax, esi
and eax, 0x1f
cmp ebx, edx
jne 0x1000cafe
cmp ecx, eax
je 0x1000cb92
mov eax, 1
shl eax, cl
test dword [ebx], eax
je 0x1000cb18
cmp ecx, 0x1f
jae 0x1000cb11
inc ecx
jmp 0x1000cac0
xor ecx, ecx
add ebx, 4
jmp 0x1000cac0
xor ebx, ebx
cmp edi, ebx
je 0x1000cb27
push edi
call fcn.1001ee85
add esp, 4
cmp dword [ebp - 0x18], 0x10
jb 0x1000cb39
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.1001ee85
add esp, 4
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x58]
add eax, 0xfffffff0
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x1000cb68
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1000cb8e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
jmp 0x1000cc0a
xor ebx, ebx
cmp edi, ebx
je 0x1000cba1
push edi
call fcn.1001ee85
add esp, 4
cmp dword [ebp - 0x18], 0x10
jb 0x1000cbb3
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.1001ee85
add esp, 4
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x58]
add eax, 0xfffffff0
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x1000cbe2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1000cc08
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1010d913
mov esp, ebp
pop ebp
ret 0x40