Function at 0x440998
Capabilities:
Check if file exists
Get file attributes

Disassembly:
sub esp, 0xa7c
push ebx
push ebp
push esi
mov esi, ecx
lea ecx, [esp + 0x86c]
push edi
call fcn.0040b6e3
lea ecx, [esp + 0x658]
call fcn.0040b6e3
lea ecx, [esp + 0x440]
call fcn.0040b6e3
lea ecx, [esp + 0x228]
call fcn.0040b6e3
lea ecx, [esp + 0x10]
call fcn.0040b6e3
push dword [esi + 0x20e0]
mov eax, dword [esi + 0x54]
push dword [esi + 0x20d8]
add eax, 0x6ac
push eax
call fcn.0043b2d2
test eax, eax
je 0x440c11
lea ecx, [esi + 0x20d4]
call fcn.00401be0
xor ebx, ebx
mov ebp, 0x45c788
push 0x23
lea edi, [ebx + 1]
pop ebx
push edi
lea eax, [esp + 0x22c]
push str.link_name__u
push eax
call fcn.0040c813
mov ecx, dword [esi + 0x58]
lea eax, [esp + 0x1c]
add esp, 0xc
push eax
push dword [esp + 0x230]
call fcn.004461fa
test al, al
je 0x440c0c
mov eax, dword [esp + 0x14]
test eax, eax
je 0x440a65
mov edx, str.PROGRAM
mov ecx, eax
call fcn.00401de3
mov ecx, eax
mov eax, dword [esp + 0x14]
jmp 0x440a68
or ecx, 0xffffffff
test ecx, ecx
jne 0x440a98
mov ecx, dword [esi + 0x58]
lea eax, [esp + 0x10]
push eax
push str.company_program_brief
call fcn.004461fa
test al, al
je 0x440c0c
push str..lnk
lea ecx, [esp + 0x14]
call fcn.0040c7b8
mov eax, dword [esp + 0x14]
push eax
push dword [esi + 0x20d8]
lea eax, [esp + 0x878]
push ebp
push eax
call fcn.0040c813
push edi
lea eax, [esp + 0x23c]
push str.file_name__u
push eax
call fcn.0040c813
mov ecx, dword [esi + 0x58]
lea eax, [esp + 0x2c]
add esp, 0x1c
push eax
push dword [esp + 0x230]
call fcn.004461fa
test al, al
je 0x440c0c
mov eax, dword [esp + 0x14]
cmp word [eax], bx
jne 0x440b04
lea ecx, [esp + 0x10]
mov edx, eax
push ecx
mov ecx, dword [esi + 0x54]
call fcn.0043fc1c
pop ecx
test al, al
je 0x440c0c
mov eax, dword [esp + 0x14]
push eax
mov eax, dword [esi + 0x54]
add eax, 0x29c
push eax
lea eax, [esp + 0x448]
push ebp
push eax
call fcn.0040c813
push edi
lea eax, [esp + 0x23c]
push str.icon_file__u
push eax
call fcn.0040c813
mov ecx, dword [esi + 0x58]
lea eax, [esp + 0x2c]
add esp, 0x1c
push eax
push dword [esp + 0x230]
call fcn.004461fa
test al, al
je 0x440c0c
mov eax, dword [esp + 0x14]
cmp word [eax], bx
jne 0x440b73
lea ecx, [esp + 0x10]
mov edx, eax
push ecx
mov ecx, dword [esi + 0x54]
call fcn.0043fc1c
pop ecx
test al, al
je 0x440c0c
mov eax, dword [esp + 0x14]
push eax
mov eax, dword [esi + 0x54]
add eax, 0x29c
push eax
lea eax, [esp + 0x660]
push ebp
push eax
call fcn.0040c813
push edi
lea eax, [esp + 0x23c]
push str.icon_index__u
push eax
call fcn.0040c813
mov ecx, dword [esi + 0x58]
lea eax, [esp + 0x2c]
add esp, 0x1c
push eax
push dword [esp + 0x230]
call fcn.004461fa
test al, al
je 0x440c0c
push dword [esp + 0x14]
call fcn.00425442
pop ecx
push dword [esp + 0x444]
mov ebp, eax
call dword [sym.imp.KERNEL32.DLL_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x440bfd
mov eax, dword [esi + 0x54]
push ebp
push dword [esp + 0x660]
add eax, 0x29c
push ecx
push ecx
push dword [esp + 0x884]
push dword [esp + 0x458]
push eax
call fcn.0043ad7c
inc edi
mov ebp, 0x45c788
cmp edi, 0x40
jb 0x440a17
xor ebx, ebx
inc ebx
jmp 0x440c1e
push ecx
push str.InstallFailCreateGroup
call fcn.00411f77
xor bl, bl
pop edi
pop esi
pop ebp
mov al, bl
pop ebx
add esp, 0xa7c
ret