Function at 0x100189e7
Capabilities:
Get disk size

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10061418
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x40
mov byte [esp + 8], cl
push ebx
push esi
push edi
test cl, cl
je 0x10018c01
mov dword [esp + 0x24], 0x2360
cmp dword [esp + 0x24], 0x9aa
push 0
pop ebx
jge 0x10018bd5
push 2
lea ecx, [esp + 0x2c]
call fcn.10044f67
lea ecx, [esp + 0x28]
mov byte [0x10077004], bl
call fcn.10044fc2
lea eax, [esp + 0x1c]
mov ecx, 0x1007c1f8
push eax
call fcn.1001bff2
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
call fcn.1001ed03
mov dword [esp + 0x2c], eax
mov dword [esp + 0x54], ebx
mov esi, ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], ebx
xor edi, edi
mov byte [esp + 0x54], 1
inc edi
mov dword [esp + 0x18], edi
cmp dword [esp + 0x1c], edi
jl 0x10018b1b
lea eax, [esp + 0x20]
mov ecx, 0x1007c1f8
push eax
call fcn.1001bff2
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x30]
call fcn.1001c831
test eax, eax
je 0x10018aec
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x2c]
push dword [eax + 4]
call fcn.10006adb
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x3c]
mov dword [eax + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [eax], eax
mov eax, dword [esp + 0x2c]
mov dword [eax + 8], eax
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x34], ebx
call fcn.1001c8af
mov edi, dword [esp + 0x18]
jmp 0x10018b08
movzx eax, byte [0x1007d248]
push eax
lea eax, [esp + 0x24]
push eax
push ecx
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x3c]
call fcn.1001edd4
inc edi
mov dword [esp + 0x18], edi
cmp edi, dword [esp + 0x1c]
jle 0x10018a8f
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
sub esi, edi
sar esi, 2
test esi, esi
jne 0x10018b39
mov edx, 0x1006b69c
mov ecx, 0x1007c0d8
call fcn.10006d07
jmp 0x10018ba9
push esi
call fcn.1001c144
push eax
call fcn.1001735e
xor eax, eax
mov dword [esp + 0x28], ebx
inc eax
pop ecx
dec esi
je 0x10018b85
push dword [edi + ebx*4]
push ecx
push eax
mov ecx, 0x1007c0d8
call fcn.1001c267
mov edx, 0x1006b6a0
mov ecx, eax
call fcn.10006d07
pop ecx
mov ecx, eax
call fcn.1001c267
push eax
call fcn.1001735e
mov eax, dword [edi + ebx*4]
inc eax
inc ebx
pop ecx
cmp ebx, esi
jb 0x10018b50
xor ebx, ebx
push dword [esp + 0x1c]
push ecx
push eax
mov ecx, 0x1007c0d8
call fcn.1001c267
mov edx, 0x1006b6a0
mov ecx, eax
call fcn.10006d07
pop ecx
mov ecx, eax
call fcn.1001c267
push eax
call fcn.1001735e
pop ecx
test edi, edi
je 0x10018bc7
push edi
call fcn.10049d79
pop ecx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
or dword [esp + 0x54], 0xffffffff
lea ecx, [esp + 0x2c]
call fcn.1001c808
mov esi, dword [ebp + 0x14]
mov dword [esi], ebx
jmp 0x10018bfa
cmp dword [esi], ebx
jne 0x10018c26
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x10018bf8
sub esp, 0x10
mov dl, 1
call fcn.100188ad
add esp, 0x10
inc dword [esi]
cmp dword [esi], 3
je 0x10018bdc
jmp 0x10018c26
mov esi, dword [ebp + 0xc]
xor ebx, ebx
mov dword [esi], ebx
jmp 0x10018c21
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], bl
je 0x10018c1f
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
inc dword [esi]
cmp dword [esi], 2
jle 0x10018c0a
mov ecx, dword [esp + 0x4c]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret