Function at 0x100e8180
Capabilities:
Get disk size

Disassembly:
push 0xffffffffffffffff
push 0x1027c269
mov eax, dword fs:[0]
push eax
sub esp, 0x1f4
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1037c990]
xor eax, esp
push eax
lea eax, [esp + 0x208]
mov dword fs:[0], eax
mov edi, ecx
xor ebx, ebx
mov dword [esp + 0x24], ebx
cmp edi, ebx
jne 0x100e81ce
push ebx
push 0x195
push 0x102c8bc4
push 0x80070057
call fcn.100048f0
cmp dword [esp + 0x218], ebx
jne 0x100e81ec
push ebx
push 0x196
push 0x102c8bc4
push 0x80070057
call fcn.100048f0
mov esi, dword [esp + 0x21c]
call fcn.101bdd60
fld dword [0x102e4348]
fst dword [esp + 0xb4]
lea ecx, [esp + 0xa8]
fld dword [0x102e4344]
mov dword [esp + 0xa8], ebx
fst dword [esp + 0xb8]
mov dword [esp + 0xac], ebx
fld dword [0x102e4340]
mov dword [esp + 0xb0], 0x11
fst dword [esp + 0xbc]
mov dword [esp + 0xc0], 0xffffffff
fxch st(2)
mov dword [esp + 0xc4], ebx
fstp dword [esp + 0xb4]
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], 0xa
fstp dword [esp + 0xb8]
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], ebx
fstp dword [esp + 0xbc]
call fcn.10052ce0
mov dword [esp + 0x210], ebx
lea eax, [esp + 0x40]
push eax
call fcn.10136270
mov byte [esp + 0x210], 2
lea ecx, [esp + 0x13c]
push ecx
mov ecx, dword [esp + 0x44]
call fcn.100bf190
mov byte [esp + 0x210], 4
nop
mov ebp, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea edx, [esp + 0x144]
push edx
call ebp
mov eax, dword [esp + 0x13c]
xor edi, edi
mov dword [esp + 0x70], edi
cmp eax, edi
je 0x100e8300
mov ecx, dword [eax]
lea edx, [esp + 0x70]
push edx
lea edx, [esp + 0x148]
push edx
push 1
push eax
mov eax, dword [ecx + 0xc]
call eax
cmp eax, edi
jl 0x100e8ca0
cmp dword [esp + 0x70], edi
seta al
test al, al
je 0x100e8d8e
lea ecx, [esp + 0x20]
push ecx
lea esi, [esp + 0x140]
call fcn.100f36a0
mov byte [esp + 0x210], 5
mov eax, dword [esp + 0x20]
mov edx, dword [eax]
mov edx, dword [edx + 0x38]
lea ecx, [esp + 0x44]
push ecx
push eax
call edx
cmp eax, edi
jl 0x100e8cad
push 0x103b7524
lea ecx, [esp + 0x50]
call fcn.10003eb0
mov byte [esp + 0x210], 7
lea eax, [esp + 0x54]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov byte [esp + 0x210], 8
mov dword [esp + 0x64], edi
mov byte [esp + 0x210], 9
mov esi, dword [esp + 0x20]
lea ecx, [esp + 0x4c]
mov dword [esp + 0x64], edi
call fcn.100041b0
lea ecx, [esp + 0x54]
push ecx
call ebp
cmp eax, edi
jl 0x100e8ca0
mov edx, 8
mov word [esp + 0x54], dx
lea ecx, [esp + 0x5c]
mov dword [esp + 0x64], 2
mov dword [esp + 0x5c], edi
mov eax, dword [esi]
mov edx, dword [eax + 0x28]
push ecx
push esi
call edx
cmp eax, edi
jl 0x100e8cbe
lea ecx, [esp + 0x114]
call fcn.10056c80
mov byte [esp + 0x210], 0xa
lea ecx, [esp + 0x4c]
call fcn.10003840
mov eax, dword [eax]
mov ebx, 0x10
sub eax, ebx
lea ecx, [esp + 0x12c]
push eax
mov dword [esp + 0x20], ecx
call fcn.10004780
add eax, ebx
add esp, 4
mov dword [esp + 0x12c], eax
mov byte [esp + 0x210], 0xd
lea edx, [esp + 0xd8]
push edx
lea ecx, [esp + 0x118]
call fcn.101da900
mov byte [esp + 0x210], bl
lea eax, [esp + 0x12c]
mov dword [esp + 0x1c], eax
mov byte [esp + 0x210], bl
mov eax, dword [esp + 0x12c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100e845c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x210], 0xf
lea ecx, [esp + 0x114]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
lea edx, [esp + 0x16c]
push edx
lea ecx, [esp + 0xdc]
call fcn.10055810
mov byte [esp + 0x210], 0x14
lea eax, [esp + 0x16c]
push eax
lea ecx, [esp + 0x190]
call fcn.10055870
mov esi, eax
mov byte [esp + 0x210], 0x15
mov ecx, esi
call fcn.10003840
cmp dword [esi + 0x18], 3
jne 0x100e84ce
lea ecx, [esi + 8]
push ecx
mov dword [esi + 0x18], 1
call ebp
cmp eax, edi
jl 0x100e8ca0
cmp dword [esi + 0x18], edi
jne 0x100e84da
mov dword [esi + 0x18], 1
mov eax, dword [esi]
mov edi, dword [eax - 0xc]
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
sub eax, edi
or eax, ecx
jge 0x100e84f8
push edi
mov ecx, esi
call fcn.100042e0
mov eax, dword [esi]
lea edx, [edi + 1]
push edx
push eax
call fcn.102317bd
add esp, 8
test edi, edi
jl 0x100e8d78
mov eax, dword [esi]
cmp edi, dword [eax - 8]
jg 0x100e8d78
mov dword [eax - 0xc], edi
mov eax, dword [esi]
xor ecx, ecx
mov word [eax + edi*2], cx
mov esi, dword [esi]
sub esi, ebx
push esi
call fcn.10004780
add eax, 0x10
add esp, 4
mov dword [esp + 0x30], eax
mov byte [esp + 0x210], 0x19
lea edx, [esp + 0x194]
push edx
call ebp
mov byte [esp + 0x210], 0x18
mov eax, dword [esp + 0x18c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100e8576
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x210], 0x1d
lea ecx, [esp + 0x174]
push ecx
call ebp
mov byte [esp + 0x210], 0x1c
mov eax, dword [esp + 0x16c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x100e85b3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x1c]
push ecx
push edx
lea eax, [esp + 0x160]
lea edi, [esp + 0x118]
lea ecx, [esp + 0xb0]
mov dword [esp + 0x30], 0
call fcn.10137d10
test eax, eax
je 0x100e85ea
mov eax, dword [eax + 4]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
lea edx, [esp + 0x48]
push edx
push eax
mov eax, dword [ecx + 0x20]
call eax
test eax, eax
jl 0x100e8ccf
mov edi, dword [esp + 0x218]
lea ecx, [esp + 0x34]
push ecx
mov byte [esp + 0x1f], 0
mov byte [esp + 0x1e], 0
call fcn.10136270
mov byte [esp + 0x210], 0x21
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0xf4]
push edx
call fcn.100bf190
mov byte [esp + 0x210], 0x23
lea eax, [esp + 0xfc]
push eax
call ebp
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x78], 0
test eax, eax
je 0x100e867b
mov ecx, dword [eax]
lea edx, [esp + 0x78]
push edx
lea edx, [esp + 0x100]
push edx
push 1
push eax
mov eax, dword [ecx + 0xc]
call eax
test eax, eax
jl 0x100e8ce1
cmp dword [esp + 0x78], 0
seta al
test al, al
je 0x100e887d
lea ecx, [esp + 0x2c]
push ecx
lea esi, [esp + 0xf8]
call fcn.100f36a0
mov bl, 0x24
mov byte [esp + 0x210], bl
push 0x103b7524
lea ecx, [esp + 0x88]
call fcn.10003eb0
mov byte [esp + 0x210], 0x26
lea edx, [esp + 0x8c]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov byte [esp + 0x210], 0x27
xor edi, edi
mov dword [esp + 0x9c], edi
mov byte [esp + 0x210], 0x28
mov esi, dword [esp + 0x2c]
lea ecx, [esp + 0x84]
mov dword [esp + 0x9c], edi
call fcn.100041b0
lea eax, [esp + 0x8c]
push eax
call ebp
cmp eax, edi
jl 0x100e8ca0
mov ecx, 8
mov word [esp + 0x8c], cx
lea eax, [esp + 0x94]
mov dword [esp + 0x9c], 2
mov dword [esp + 0x94], edi
mov edx, dword [esi]
mov ecx, dword [edx + 0x28]
push eax
push esi
call ecx
cmp eax, edi
jl 0x100e8cf0
lea ecx, [esp + 0x4c]
call fcn.10003840
cmp dword [esp + 0x64], 3
jne 0x100e876c
lea edx, [esp + 0x54]
push edx
mov dword [esp + 0x68], 1
call ebp
cmp eax, edi
jl 0x100e8ca0
cmp dword [esp + 0x64], edi
jne 0x100e877a
mov dword [esp + 0x64], 1
lea ecx, [esp + 0x84]
call fcn.10002aa0
push eax
mov eax, dword [esp + 0x50]
push eax
call fcn.10231171
add esp, 8
test eax, eax
jne 0x100e87c5
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
lea edx, [esp + 0x7c]
push edx
push eax
mov eax, dword [ecx + 0x20]
call eax
cmp eax, edi
jl 0x100e8d01
mov eax, dword [esp + 0x7c]
cmp eax, dword [esp + 0x48]
je 0x100e8822
cmp eax, 6
jne 0x100e87c5
mov byte [esp + 0x1b], 1
mov byte [esp + 0x210], 0x2d
lea ecx, [esp + 0x8c]
push ecx
call ebp
mov byte [esp + 0x210], bl
mov eax, dword [esp + 0x84]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x100e8801
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x210], 0x23
mov eax, dword [esp + 0x2c]
cmp eax, edi
je 0x100e863f
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x100e863f
mov byte [esp + 0x1a], 1
mov byte [esp + 0x210], 0x29
lea eax, [esp + 0x8c]
push eax
call ebp
mov byte [esp + 0x210], bl
mov eax, dword [esp + 0x84]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100e8863
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x210], 0x23
mov eax, dword [esp + 0x2c]
cmp eax, edi
je 0x100e887f
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x100e887f
xor edi, edi
mov byte [esp + 0x210], 0x33
lea eax, [esp + 0xfc]
push eax
call ebp
mov byte [esp + 0x210], 0x21
mov eax, dword [esp + 0xf4]
cmp eax, edi
je 0x100e88ac
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
cmp byte [esp + 0x1a], 0
je 0x100e89a3
mov byte [esp + 0x210], 0x1c
mov eax, dword [esp + 0x34]
cmp eax, edi
je 0x100e88cf
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x210], 0xf
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100e88f7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, 0x3a
mov byte [esp + 0x210], al
lea ecx, [esp + 0xf0]
mov dword [esp + 0x1c], ecx
mov byte [esp + 0x210], al
mov eax, dword [esp + 0xf0]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x100e8935
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x210], 9
lea ecx, [esp + 0xd8]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov byte [esp + 0x210], 0x3e
lea edx, [esp + 0x54]
push edx
call ebp
mov byte [esp + 0x210], 5
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100e8982
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x210], 4
mov eax, dword [esp + 0x20]
cmp eax, edi
je 0x100e82c0
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x100e82c0
mov ecx, dword [esp + 0x48]
mov eax, ecx
xor ebx, ebx
xor ebp, ebp
sub eax, 2
je 0x100e89ce
sub eax, 4
jne 0x100e8d12
cmp byte [esp + 0x1b], al
jne 0x100e8b41
mov ebx, dword [esp + 0x44]
jmp 0x100e8b41
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x44]
lea edx, [esp + 0x74]
mov dword [esp + 0x74], ebx
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0x30]
call eax
cmp eax, ebx
jl 0x100e8d67
cmp word [esp + 0x74], bx
setne cl
movzx edx, cl
push edx
lea ecx, [esp + 0x138]
call fcn.101f5ff0
mov byte [esp + 0x210], 0x42
cmp byte [esp + 0x1b], 0
jne 0x100e8a44
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x1cc]
call fcn.100555b0
mov byte [esp + 0x210], 0x43
or dword [esp + 0x24], 1
mov ecx, eax
call fcn.101dc6d0
mov byte [esp + 0x1a], 1
test al, al
jne 0x100e8a49
mov byte [esp + 0x1a], 0
mov dword [esp + 0x210], 0x42
test byte [esp + 0x24], 1
je 0x100e8a6c
and dword [esp + 0x24], 0xfffffffe
lea ecx, [esp + 0x1c8]
call fcn.10056b10
cmp byte [esp + 0x1a], 0
je 0x100e8b2d
push 0x1ff
push 0x102c8bc4
lea ecx, [esp + 0x88]
push ecx
lea edx, [esp + 0x28]
push edx
mov edx, dword [esp + 0x100]
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x50]
xor edi, edi
push ecx
push edx
mov dword [esp + 0x58], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x9c], edi
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
push eax
call fcn.100556a0
mov esi, dword [esp + 0x44]
imul esi, dword [esp + 0x48]
add esp, 0xc
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x1b0]
call fcn.100555b0
mov byte [esp + 0x210], 0x44
mov ecx, eax
call fcn.101dc770
push edi
push esi
push edx
push eax
call fcn.10234f30
mov dword [esp + 0x168], edx
test ebx, ebx
ja 0x100e8b05
test ecx, ecx
jbe 0x100e8b06
inc eax
push edi
push esi
push 0
push eax
call fcn.10233430
mov ebx, eax
shrd ebx, edx, 0xa
shr edx, 0xa
mov byte [esp + 0x210], 0x42
lea ecx, [esp + 0x1ac]
call fcn.10056b10
mov byte [esp + 0x210], 0x21
lea ecx, [esp + 0x134]
call fcn.101f6080
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
mov ecx, ebp
sub ecx, ebx
add eax, ecx
push eax
lea edx, [esp + 0xac]
push edx
mov ecx, edi
mov dword [esp + 0x30], eax
call fcn.100f5e70
mov ecx, dword [esp + 0x21c]
lea eax, [esp + 0x1c]
push eax
push edi
lea eax, [esp + 0x138]
lea edi, [esp + 0x168]
xor esi, esi
call fcn.10137d10
test eax, eax
je 0x100e8b9c
mov esi, dword [eax + 4]
test esi, esi
jle 0x100e8b9c
mov eax, dword [esp + 0x28]
cmp eax, esi
jle 0x100e8ba0
mov esi, eax
jmp 0x100e8ba0
sub ebp, ebx
add esi, ebp
mov ecx, dword [esp + 0x21c]
push esi
mov esi, dword [esp + 0x34]
push ecx
mov ecx, esi
call fcn.100f5e70
mov byte [esp + 0x210], 0x1c
mov eax, dword [esp + 0x34]
test eax, eax
je 0x100e8bcc
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov byte [esp + 0x210], 0xf
lea eax, [esi - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100e8bf0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, 0x4b
mov byte [esp + 0x210], al
lea ecx, [esp + 0xf0]
mov dword [esp + 0x1c], ecx
mov byte [esp + 0x210], al
mov eax, dword [esp + 0xf0]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x100e8c2e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x210], 9
lea ecx, [esp + 0xd8]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov byte [esp + 0x210], 0x4f
lea edx, [esp + 0x54]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov byte [esp + 0x210], 5
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100e8c7f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x210], 4
mov eax, dword [esp + 0x20]
test eax, eax
je 0x100e82c0
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x100e82c0
push edi
push edi
push 0x102b274a
push eax
call fcn.100048f0
push edi
push 0x1a0
push 0x102c8bc4
push eax
call fcn.100048f0
push edi
push 0x1a2
push 0x102c8bc4
push eax
call fcn.100048f0
push 0
push 0x1ab
push 0x102c8bc4
push eax
call fcn.100048f0
push 0
push 0
push 0x102b274a
push eax
call fcn.100048f0
push edi
push 0x1bf
push 0x102c8bc4
push eax
call fcn.100048f0
push edi
push 0x1c4
push 0x102c8bc4
push eax
call fcn.100048f0
push ecx
lea eax, [esp + 0x1e8]
push eax
call fcn.100550d0
add esp, 8
mov byte [esp + 0x210], 0x45
mov ecx, eax
call fcn.10003840
push eax
lea ecx, [esp + 0x160]
push str.File_action_not_supported._File_action_value
push ecx
call fcn.10002820
add esp, 0xc
mov byte [esp + 0x210], 0x46
mov edx, dword [eax]
push edx
push 0x209
push 0x102c8bc4
push 0x80004001
call fcn.100048f0
push ebx
push 0x1f1
push 0x102c8bc4
push eax
call fcn.100048f0
push 0
push 0x359
push str.c:dvsp4_build_sw_toolswin32msvc90VC_atlmfcinclude_atlsimpstr.h
push 0x80070057
call fcn.100048f0
mov byte [esp + 0x210], 2
lea eax, [esp + 0x13c]
push eax
call fcn.10085de0
mov byte [esp + 0x210], 0
lea ecx, [esp + 0x40]
push ecx
call fcn.100b9200
mov dword [esp + 0x210], 0xffffffff
lea ecx, [esp + 0xa8]
call fcn.101bd2d0
mov ecx, dword [esp + 0x208]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x200
ret 8