Function at 0x42a197
Capabilities:
Get disk size

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4b1339
mov eax, dword fs:[0]
push eax
mov eax, 0x1f60
call fcn.00492330
mov eax, dword [0x505ef8]
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, dword [ebp + 8]
xor esi, esi
mov dword [ebp - 0x1f54], ebx
mov dword [ebp - 0x1f6c], esi
mov dword [ebp - 4], esi
mov dword [ebp - 0x1f60], esi
mov dword [ebp - 0x1f5c], esi
mov dword [ebp - 0x1f58], esi
call fcn.0042c001
test al, al
jne 0x42a263
xor eax, eax
push 0x1b30
mov word [ebp - 0x1e54], ax
lea eax, [ebp - 0x1e52]
push esi
push eax
call fcn.004913e0
add esp, 0xc
mov edi, esi
xor edx, edx
test edi, edi
je 0x42a242
test edx, edx
je 0x42a242
lea eax, [esi + edx]
lea ecx, [esi + edx]
mov ax, word [ebp + eax*2 - 0x1eca]
inc ax
add ax, word [ebp + ecx*2 - 0x1e56]
mov word [ebp + ecx*2 - 0x1e54], ax
inc edx
cmp edx, 0x3b
jl 0x42a21a
add esi, 0x3b
inc edi
cmp esi, 0xd99
jl 0x42a218
movsx edi, word [ebp - 0x324]
mov dword [0x507340], edi
jmp 0x42a269
mov edi, dword [0x507340]
mov esi, dword [ebp + 0xc]
cmp dword [esi - 0xc], 0
jne 0x42a289
push 0x4c5208
mov ecx, ebx
call fcn.00401b1e
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
jmp 0x42a5f4
call fcn.00439149
test al, al
jne 0x42a2b8
mov eax, edi
sub eax, 0
je 0x42a2ae
dec eax
je 0x42a2a5
inc edi
mov dword [0x507340], edi
jmp 0x42a2b8
and dword [0x507340], 0
jmp 0x42a2b8
mov dword [0x507340], 2
mov eax, dword [0x508968]
test eax, eax
jne 0x42a310
push str.Version.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
call fcn.0042bfdf
test al, al
jne 0x42a2e9
push 0
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_PeekNamedPipe]
test esi, esi
je 0x42a300
push str.GetFileVersionInfoSizeW
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x508968], eax
jmp 0x42a305
mov eax, dword [0x508968]
test eax, eax
je 0x42a522
mov esi, dword [ebp + 0xc]
lea ecx, [ebp - 0x1f60]
push ecx
push esi
call eax
mov esi, eax
push 0x4c03a0
lea ecx, [ebp - 0x1f50]
call fcn.00401b1e
mov ecx, dword [0x507340]
mov eax, ecx
imul eax, ecx
imul eax, ecx
push 0x12
pop edi
cdq
idiv edi
push 4
mov byte [ebp - 4], 1
pop edi
cmp edx, 0xf
jne 0x42a370
mov eax, ecx
cdq
push 0x64
pop ecx
idiv ecx
xor ecx, ecx
lea eax, [edx + 0x63]
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0048dbeb
push eax
call fcn.0048fbd7
pop ecx
pop ecx
test esi, esi
je 0x42a5cb
push esi
call fcn.0048dbeb
mov ebx, eax
pop ecx
mov dword [ebp - 0x1f44], ebx
call fcn.00439149
test al, al
jne 0x42a396
inc dword [0x507340]
push ebx
push esi
push dword [ebp - 0x1f60]
push dword [ebp + 0xc]
call fcn.0041437b
push eax
call fcn.0041b178
push 0xe
pop ebx
test eax, eax
je 0x42a545
lea eax, [ebp - 0x1f5c]
push eax
lea eax, [ebp - 0x1f58]
push eax
push 0x4c0b70
push dword [ebp - 0x1f44]
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x42a545
call fcn.0042c001
mov ebx, dword [0x507340]
test al, al
jne 0x42a446
xor eax, eax
push 0xe
mov dword [ebp - 0x1f48], eax
lea esi, [ebp - 0x320]
pop edi
xor ecx, ecx
xor edx, edx
mov dword [ebp - 0x1f4c], edx
mov eax, ebx
cdq
inc ecx
idiv ecx
mov eax, dword [ebp - 0x1f4c]
mov dword [ebp - 0x1f68], ecx
mov dword [ebp - 0x1f64], edx
lea ecx, [eax + 1]
mov eax, ecx
cmp eax, edi
jl 0x42a41f
mov ecx, dword [ebp - 0x1f68]
add esi, edi
cmp ecx, 4
jl 0x42a3ff
mov eax, dword [ebp - 0x1f48]
inc eax
mov dword [ebp - 0x1f48], eax
cmp eax, edi
jl 0x42a3fd
cmp dword [ebp - 0x1f5c], 0
je 0x42a529
call fcn.00439149
test al, al
jne 0x42a47c
xor esi, esi
test ebx, ebx
je 0x42a474
mov eax, ebx
mov ecx, ebx
cdq
sub eax, edx
and ecx, 1
mov ebx, eax
add esi, ecx
sar ebx, 1
jne 0x42a462
mov ebx, esi
mov dword [0x507340], ebx
imul ebx, ebx
mov eax, ebx
push 0x18
pop ecx
cdq
idiv ecx
mov edi, dword [ebp - 0x1f58]
push 0xe
pop ebx
cmp edx, ebx
jne 0x42a4f0
xor esi, esi
call fcn.0048f9e0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
inc esi
movsd qword [ebp + esi*8 - 0x1f44], xmm0
cmp esi, 0x1d
jb 0x42a496
xor ecx, ecx
push 0x1c
pop eax
cmp ecx, eax
jge 0x42a4ea
movsd xmm0, qword [ebp + eax*8 - 0x1f3c]
movsd xmm1, qword [ebp + eax*8 - 0x1f44]
comisd xmm0, xmm1
jbe 0x42a4e5
movsd qword [ebp + eax*8 - 0x1f3c], xmm1
movsd qword [ebp + eax*8 - 0x1f44], xmm0
dec eax
cmp eax, ecx
jg 0x42a4bb
inc ecx
cmp ecx, 0x1d
jl 0x42a4b4
cmp dword [edi], 0xfeef04bd
jne 0x42a52c
movzx eax, word [edi + 0xc]
push eax
movzx eax, word [edi + 0xe]
push eax
movzx eax, word [edi + 8]
push eax
movzx eax, word [edi + 0xa]
push eax
lea eax, [ebp - 0x1f50]
push 0x4c525c
push eax
call fcn.00405092
add esp, 0x18
jmp 0x42a52c
xor esi, esi
jmp 0x42a31c
push 0xe
pop ebx
call fcn.0042bee9
test al, al
jne 0x42a545
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
push dword [ebp - 0x1f44]
call fcn.0048fbd7
mov esi, dword [0x507340]
pop ecx
lea ecx, [esi + 1]
lea eax, [esi + 2]
imul eax, ecx
imul eax, esi
push 0xc
cdq
pop ecx
idiv ecx
cmp edx, 7
jne 0x42a5c5
mov eax, esi
cdq
sub eax, edx
mov edi, eax
xor ecx, ecx
sar edi, 1
test edi, edi
jle 0x42a5c0
mov eax, esi
cdq
and edx, 3
add eax, edx
sar eax, 2
xor esi, esi
mov edx, edi
mov dword [ebp - 0x1f48], edi
test eax, eax
jle 0x42a5af
mov edx, esi
mov dword [ebp - 0x1f44], eax
add ebx, edx
dec edx
dec dword [ebp - 0x1f44]
jne 0x42a59e
mov edx, dword [ebp - 0x1f48]
add esi, ecx
dec edx
mov dword [ebp - 0x1f48], edx
jne 0x42a592
mov esi, dword [0x507340]
inc ecx
cmp ecx, ebx
jl 0x42a579
mov ebx, dword [ebp - 0x1f54]
mov eax, dword [ebp - 0x1f50]
add eax, 0xfffffff0
push eax
call fcn.00403b5b
pop ecx
mov ecx, dword [ebp - 0x1f50]
add eax, 0x10
lea ecx, [ecx - 0x10]
mov dword [ebx], eax
call fcn.00407864
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx - 0x10]
call fcn.00407864
mov eax, ebx
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.0048f354
leave
ret