Function at 0x42306a
Capabilities:
Get disk size

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x4028
call fcn.00453130
push ebx
push edi
xor ebx, ebx
push 0x4010
lea eax, [ebp - 0x4024]
push ebx
push eax
mov dword [ebp - 0x4028], ebx
call fcn.00450230
add esp, 0xc
call fcn.004552b3
mov edi, dword [ebp + 0xc]
add eax, 0x20
mov dword [ebp - 0x401c], eax
cmp edi, ebx
jne 0x4230b3
xor eax, eax
inc eax
jmp 0x423373
cmp dword [ebp + 8], ebx
je 0x4230ab
cmp dword [ebp + 0x14], ebx
je 0x423105
push 0x4705bc
push dword [ebp + 0x14]
call fcn.00450b1b
pop ecx
pop ecx
mov dword [ebp - 0x401c], eax
cmp eax, ebx
jne 0x423105
push dword [ebp + 0x14]
push str.cant_write_outputfile__s_n
call dword [sym.imp.___total_physical_size__lu_MB_GetLastError]
push eax
push 0x1a7c
push str.NTCOPY
call fcn.0044dc85
add esp, 0x14
call fcn.004552b3
add eax, 0x20
mov dword [ebp - 0x401c], eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 4]
push eax
push dword [ebp + 8]
push 0x46a500
call fcn.0042f614
pop ecx
pop ecx
push eax
call dword [sym.imp.___total_physical_size__lu_MB_GetDiskFreeSpaceA]
test eax, eax
jne 0x42314a
push dword [ebp + 8]
push str.Cant_get_clustersize_for__s_n
push dword [ebp - 0x401c]
call fcn.00455151
add esp, 0xc
jmp 0x4230ab
push esi
push 8
push dword [ebp + 0x10]
call fcn.00450903
push 8
push dword [ebp + 0x10]
mov esi, eax
mov dword [ebp - 0x4028], esi
call fcn.00450903
add esp, 0x10
push ebx
push dword [ebp - 4]
mov dword [ebp - 0x4024], eax
push dword [edi + 4]
push dword [edi]
call fcn.00453160
mov dword [esi], eax
mov eax, dword [ebp - 0x4028]
mov dword [eax + 4], edx
mov eax, dword [edi]
mov ecx, dword [ebp - 0x4024]
xor esi, esi
mov dword [ecx], eax
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0x4024]
inc esi
mov dword [ecx + 4], eax
mov dword [ebp + 0xc], esi
mov dword [ebp + 0x14], esi
cmp dword [ebp + 0x10], esi
jle 0x423212
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x4028]
shl ebx, 3
add eax, ebx
mov ecx, dword [eax]
mov dword [ebp - 8], eax
cmp ecx, dword [eax - 8]
jne 0x4231cd
mov ecx, dword [eax + 4]
cmp ecx, dword [eax - 4]
je 0x423205
push 0
push dword [ebp - 4]
lea esi, [ebx + edi]
push dword [esi + 4]
push dword [esi]
call fcn.00453160
mov ecx, dword [ebp - 8]
inc dword [ebp + 0xc]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [esi]
mov ecx, dword [ebp - 0x4024]
mov dword [ebx + ecx], eax
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x4024]
xor esi, esi
mov dword [ebx + ecx + 4], eax
inc esi
inc dword [ebp + 0x14]
mov eax, dword [ebp + 0x14]
cmp eax, dword [ebp + 0x10]
jl 0x4231ad
xor ebx, ebx
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x4020], eax
lea eax, [ebp - 0x4028]
push eax
push 0x422ce0
call fcn.004552b3
mov ecx, dword [0x4cce80]
add eax, 0x20
sub ecx, eax
neg ecx
sbb ecx, ecx
and ecx, 0x64
push ecx
push esi
push 0x47057c
push dword [ebp + 8]
call fcn.00413922
test eax, eax
jne 0x42326c
mov eax, dword [ebp - 0x4020]
cmp eax, dword [ebp - 0x18]
je 0x42326c
push str._n_nOperation_aborted_n
call fcn.00450f5c
pop ecx
jmp 0x423364
push 0x46a57c
mov dword [0x4d659c], ebx
call fcn.00450f5c
xor edi, edi
pop ecx
cmp dword [ebp - 0x4020], ebx
jbe 0x423364
lea ebx, [ebp + edi*4 - 0x4018]
mov eax, dword [ebx]
mov esi, edi
test eax, eax
je 0x4232fd
push eax
mov eax, dword [ebp - 0x4028]
push dword [eax + esi*8 + 4]
push dword [eax + esi*8]
mov eax, dword [ebp - 0x4024]
push dword [eax + esi*8 + 4]
push dword [eax + esi*8]
push str.Sector__I64d__Cluster__I64d__is_located_in_file:_n_s_n_n
push dword [ebp - 0x401c]
call fcn.00455151
add esp, 0x1c
cmp dword [ebp + 0x18], 0
je 0x423357
push dword [ebx]
mov eax, dword [ebp - 0x4028]
push dword [eax + esi*8 + 4]
push dword [eax + esi*8]
mov eax, dword [ebp - 0x4024]
push dword [eax + esi*8 + 4]
push dword [eax + esi*8]
push str.UNREADABLE_Sector__I64d__Cluster__I64d__is_located_in_file:__s
call fcn.0041c7ee
add esp, 0x18
jmp 0x423357
mov eax, dword [ebp - 0x4028]
push dword [eax + esi*8 + 4]
push dword [eax + esi*8]
mov eax, dword [ebp - 0x4024]
push dword [eax + esi*8 + 4]
push dword [eax + esi*8]
push str.Sector__I64d__Cluster__I64d__is_not_in_use_n_n
push dword [ebp - 0x401c]
call fcn.00455151
add esp, 0x18
cmp dword [ebp + 0x18], 0
je 0x423357
mov eax, dword [ebp - 0x4028]
push dword [eax + esi*8 + 4]
push dword [eax + esi*8]
mov eax, dword [ebp - 0x4024]
push dword [eax + esi*8 + 4]
push dword [eax + esi*8]
push str.UNREADABLE_Sector__I64d__Cluster__I64d__is_not_in_use
call fcn.0041c7ee
add esp, 0x14
inc edi
cmp edi, dword [ebp - 0x4020]
jb 0x42328b
push dword [ebp - 0x401c]
call fcn.00450317
pop ecx
xor eax, eax
pop esi
pop edi
pop ebx
leave
ret 0x14