Function at 0x4222ca
Capabilities:
Check if file exists
Get common file path
Get disk size

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x23c
mov eax, dword [0x4db020]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor esi, esi
push 0x208
lea eax, [ebp - 0x216]
push esi
push eax
mov word [ebp - 0x218], si
call sub.MSVCR80.dll_memset
add esp, 0xc
push 0x104
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x42252d
lea eax, [ebp - 0x218]
push eax
mov word [ebp - 0x212], si
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x42252d
push esi
lea eax, [ebp - 0x238]
push eax
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
je 0x42252d
call fcn.0047b170
cmp eax, 0xb
je 0x42249d
call fcn.0047b170
cmp eax, 0xc
je 0x42249d
cmp dword [ebp - 0x234], 2
mov edx, dword [ebp - 0x238]
mov ecx, SysReAllocStringLen
ja 0x4223af
jb 0x42238e
cmp edx, ecx
jae 0x4223af
cmp dword [ebp - 0x22c], esi
ja 0x42252d
jb 0x422502
cmp dword [ebp - 0x230], 0x1f400000
jmp 0x42252b
cmp dword [ebp - 0x234], 5
ja 0x4223fe
jb 0x4223be
cmp edx, esi
jae 0x4223fe
mov eax, dword [ebp - 0x22c]
mov edx, dword [ebp - 0x230]
mov dword [ebp - 0x234], eax
and eax, 0x7fffffff
and dword [ebp - 0x234], ecx
mov dword [ebp - 0x220], edx
mov dword [ebp - 0x21c], eax
fild qword [ebp - 0x220]
mov dword [ebp - 0x238], esi
fild qword [ebp - 0x238]
jmp 0x4224f1
mov ebx, dword [ebp - 0x22c]
mov edi, dword [ebp - 0x230]
mov dword [ebp - 0x21c], ebx
and dword [ebp - 0x21c], ecx
mov eax, SysReAllocString
and ebx, eax
mov dword [ebp - 0x228], edi
mov dword [ebp - 0x224], ebx
fild qword [ebp - 0x228]
mov dword [ebp - 0x220], esi
fild qword [ebp - 0x220]
mov dword [ebp - 0x228], edx
mov edx, dword [ebp - 0x234]
mov dword [ebp - 0x21c], edx
and dword [ebp - 0x21c], ecx
fchs
faddp st(1)
and edx, eax
mov dword [ebp - 0x224], edx
fild qword [ebp - 0x228]
mov dword [ebp - 0x220], esi
fild qword [ebp - 0x220]
fchs
faddp st(1)
fmul qword [0x4bfb50]
fcompp
fnstsw ax
test ah, 0x41
jne 0x42252d
cmp dword [ebp - 0x22c], esi
ja 0x42252d
jb 0x422502
cmp edi, ecx
jmp 0x42252b
cmp dword [ebp - 0x234], 5
mov edx, dword [ebp - 0x238]
ja 0x422507
jb 0x4224b2
cmp edx, esi
jae 0x422507
mov eax, dword [ebp - 0x22c]
mov ecx, dword [ebp - 0x230]
mov dword [ebp - 0x21c], eax
and eax, 0x7fffffff
and dword [ebp - 0x21c], 0x80000000
mov dword [ebp - 0x228], ecx
mov dword [ebp - 0x224], eax
fild qword [ebp - 0x228]
mov dword [ebp - 0x220], esi
fild qword [ebp - 0x220]
fchs
faddp st(1)
fcomp qword [str.333333]
fnstsw ax
test ah, 5
jp 0x42252d
xor eax, eax
inc eax
jmp 0x42252f
cmp dword [ebp - 0x234], 7
mov ecx, SysReAllocStringLen
ja 0x42253e
jb 0x42251b
cmp edx, ecx
jae 0x42253e
cmp dword [ebp - 0x22c], esi
ja 0x42252d
jb 0x422502
cmp dword [ebp - 0x230], ecx
jb 0x422502
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00495616
leave
ret
mov ebx, dword [ebp - 0x22c]
mov edi, dword [ebp - 0x230]
mov dword [ebp - 0x21c], ebx
and dword [ebp - 0x21c], ecx
mov eax, SysReAllocString
and ebx, eax
mov dword [ebp - 0x228], edi
mov dword [ebp - 0x224], ebx
fild qword [ebp - 0x228]
mov dword [ebp - 0x220], esi
fild qword [ebp - 0x220]
mov dword [ebp - 0x228], edx
mov edx, dword [ebp - 0x234]
mov dword [ebp - 0x21c], edx
and dword [ebp - 0x21c], ecx
fchs
faddp st(1)
and edx, eax
mov dword [ebp - 0x224], edx
fild qword [ebp - 0x228]
mov dword [ebp - 0x220], esi
fild qword [ebp - 0x220]
fchs
faddp st(1)
fmul qword [0x4bfb50]
fcompp
fnstsw ax
test ah, 0x41
jne 0x42252d
cmp dword [ebp - 0x22c], esi
ja 0x42252d
jb 0x422502
cmp edi, 0xc0000000
jmp 0x42252b