Function at 0x466f9e
Capabilities:
Get disk size

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x53fa80
push eax
mov dword fs:[0], esp
sub esp, 0x20
push ebx
push ebp
mov ebp, dword [esp + 0x38]
push esi
mov esi, ecx
push edi
mov ecx, dword [esi + 0x240]
and ecx, 0xfffffffd
mov dword [esi + 0x240], ecx
mov ecx, ebp
call fcn.0048da80
mov eax, dword [esi + 0x16c]
xor edi, edi
test eax, eax
je 0x466fe3
mov eax, dword [esi + 0x164]
test eax, eax
je 0x466fe3
mov ecx, eax
mov eax, dword [eax]
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x466fdf
cmp dword [ecx], 0xffffffff
je 0x466fdf
inc edi
test eax, eax
jne 0x466fce
mov ecx, esi
call fcn.0046b550
mov ebx, 1
cmp eax, ebx
jle 0x4672a7
test edi, edi
jle 0x4672a7
mov eax, dword [esi + 0x120]
mov ecx, dword [esi + 0x1d8]
cmp eax, ecx
jne 0x46701f
mov ecx, dword [esi + 0x124]
mov eax, dword [esi + 0x1dc]
cmp ecx, eax
je 0x467055
mov eax, dword [esi + 0x24]
test eax, eax
jne 0x467055
mov ecx, dword [esi + 0x280]
cmp dword [ecx + 0xc], ebx
jle 0x46704c
call fcn.0050a124
test eax, eax
je 0x467041
mov edx, dword [eax]
push ebx
mov ecx, eax
call dword [edx]
mov ecx, dword [esi + 0x280]
cmp dword [ecx + 0xc], ebx
jg 0x467031
push 0
mov ecx, esi
call fcn.00464940
mov eax, dword [esi + 0x16c]
test eax, eax
je 0x467067
mov dword [esi + 0x28c], ebx
jmp 0x467071
mov dword [esi + 0x28c], 0
mov eax, dword [esi + 0x124]
mov ecx, dword [esi + 0x120]
push 0
push eax
push ecx
mov ecx, esi
call fcn.00465720
mov eax, dword [esi + 0x100]
test eax, eax
jne 0x4670a7
mov edx, dword [esi + 0x124]
mov eax, dword [esi + 0x120]
push edx
push eax
mov ecx, esi
call fcn.0046e9f0
mov eax, dword [esi + 0x100]
mov ecx, dword [esi + 0x138]
dec eax
cmp ecx, eax
jne 0x46715c
mov eax, dword [esi + 0xf8]
test eax, eax
je 0x46715c
mov ebp, dword [eax]
xor ebx, ebx
test ebp, ebp
je 0x467111
mov eax, ebp
mov ebp, dword [ebp]
mov edi, dword [eax + 8]
test edi, edi
je 0x46710d
push ebx
lea ecx, [esi + 0x13c]
call fcn.0050a1fb
test eax, eax
je 0x46710d
mov eax, dword [eax + 8]
test eax, eax
je 0x46710d
mov ecx, dword [edi + 8]
inc ebx
mov dword [eax], ecx
mov edx, dword [edi + 0xc]
mov dword [eax + 4], edx
mov ecx, dword [edi + 0x10]
mov dword [eax + 8], ecx
mov edx, dword [edi + 0x14]
mov dword [eax + 0xc], edx
test ebp, ebp
jne 0x4670d2
cmp ebx, dword [esi + 0x138]
je 0x467158
mov ecx, dword [esi + 0x24]
xor eax, eax
cmp ecx, 1
mov ecx, dword [esi + 0x280]
setne al
mov edi, eax
mov eax, dword [ecx + 0xc]
cmp eax, edi
jle 0x46714f
call fcn.0050a124
test eax, eax
je 0x467144
mov edx, dword [eax]
push 1
mov ecx, eax
call dword [edx]
mov ecx, dword [esi + 0x280]
cmp dword [ecx + 0xc], edi
jg 0x467133
push 0
mov ecx, esi
call fcn.00464940
mov ebp, dword [esp + 0x40]
mov eax, dword [esi + 0x280]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x467177
push 0
push ebp
push 0
mov ecx, esi
call fcn.0046baf0
jmp 0x4671ad
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 0x596660
call fcn.0050d46b
push 3
mov ecx, ebp
call fcn.0047fc40
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 0x596660
call fcn.0050d46b
push 0
push 3
mov ecx, esi
call fcn.00467420
lea ecx, [esp + 0x10]
push ecx
mov ecx, esi
call fcn.00465200
lea edx, [esp + 0x40]
push 2
push edx
lea ecx, [esp + 0x18]
mov dword [esp + 0x40], 0
call fcn.00505c45
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x3c], 1
call fcn.0050d536
lea ecx, [esp + 0x40]
mov byte [esp + 0x38], 0
call fcn.0050d3fd
lea eax, [esp + 0x18]
lea ecx, [esp + 0x20]
push eax
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x2c]
push ecx
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExA]
mov ecx, dword [esi + 0x228]
mov eax, dword [esi + 0x22c]
or ecx, eax
jne 0x467291
mov edx, dword [esi + 0x1dc]
mov eax, dword [esp + 0x1c]
cmp edx, eax
jb 0x467291
ja 0x467236
mov eax, dword [esi + 0x1d8]
mov ecx, dword [esp + 0x18]
cmp eax, ecx
jbe 0x467291
push 2
push 0xf411
push 0
mov ecx, esi
call fcn.0046b930
mov ecx, eax
call fcn.0047dac0
push 2
push 0xf411
mov ecx, ebp
call fcn.0047dac0
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 0x596660
call fcn.0050d46b
push 3
mov ecx, ebp
call fcn.0047fc40
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 0x596660
call fcn.0050d46b
push 0
push 3
mov ecx, esi
call fcn.00467420
lea ecx, [esp + 0x10]
mov dword [esp + 0x38], 0xffffffff
call fcn.0050d3fd
jmp 0x4673cf
cmp word [esi + 0x23a], bx
jne 0x4672b9
mov word [esi + 0x23a], 0
cmp dword [esi + 0x180], ebx
jne 0x4672ea
push ebx
mov ecx, esi
call fcn.00476dd0
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 0x58c234
call fcn.0050d46b
push 0
push 3
mov ecx, esi
call fcn.00467420
jmp 0x4673cf
mov eax, dword [esi + 0x24]
mov dword [esi + 0x1e8], ebx
cmp eax, ebx
jne 0x467337
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 0x58c234
call fcn.0050d46b
push 3
mov ecx, ebp
call fcn.0047fc40
mov ecx, esi
call fcn.00474870
test eax, eax
je 0x4673c8
push ebx
mov ecx, esi
call fcn.00476dd0
push ebx
push 0
mov ecx, ebp
call fcn.0047dbf0
jmp 0x4673c8
push 0
mov ecx, esi
mov dword [esi + 0x24], 0
call fcn.0046b570
test eax, eax
je 0x467391
mov ecx, eax
call fcn.0041fd30
test eax, eax
je 0x467391
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 0x596660
call fcn.0050d46b
push 0
mov ecx, ebp
call fcn.0047fc40
push 0
mov ecx, esi
call fcn.0046b930
mov edi, eax
mov ecx, edi
call fcn.0047fe90
test eax, eax
jne 0x4673c8
push ebx
push eax
mov ecx, edi
call fcn.0047dbf0
jmp 0x4673c8
mov ecx, esi
call fcn.0046b8d0
cmp eax, dword [esi + 0x230]
jge 0x4673ae
push 0
push ebp
push 0
mov ecx, esi
call fcn.0046baf0
jmp 0x4673c8
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 0x596660
call fcn.0050d46b
push 0
mov ecx, ebp
call fcn.0047fc40
mov dword [esi + 0x24], 0
mov ecx, dword [esp + 0x30]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x2c
ret 4