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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x118
mov ecx, dword [ebp + 8]
push ebx
push esi
mov esi, dword [ecx]
call fcn.0041cd1e
xor ebx, ebx
xor ecx, ecx
cmp esi, ebx
jbe 0x41aabd
cmp byte [ecx + eax], 0x3c
je 0x41a84b
inc ecx
cmp ecx, esi
jb 0x41a83b
jmp 0x41aabd
mov ecx, 0x47e338
call fcn.0041cd1e
push eax
lea ecx, [ebp - 0x14]
call fcn.0041be35
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x14]
dec eax
push eax
call fcn.0041bfe3
cmp al, 0x5c
jne 0x41a87e
mov eax, dword [ebp - 0x14]
push 1
dec eax
lea ecx, [ebp - 0x14]
push eax
call fcn.0041c3a9
push edi
mov edi, 0x104
push edi
call fcn.00424dd9
mov esi, eax
pop ecx
cmp esi, ebx
mov dword [ebp - 8], esi
jne 0x41a8a5
mov ecx, 0x47e924
call fcn.0041cd1e
push eax
call fcn.0041d881
pop ecx
push edi
call fcn.00424dd9
cmp eax, ebx
pop ecx
mov dword [ebp - 4], eax
jne 0x41a8c4
mov ecx, 0x47e924
call fcn.0041cd1e
push eax
call fcn.0041d881
pop ecx
push edi
push ebx
push esi
call fcn.00424500
push edi
push ebx
push dword [ebp - 4]
call fcn.00424500
add esp, 0x18
lea ecx, [ebp - 0x14]
push edi
push esi
call fcn.0041cd1e
push eax
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
test byte [0x47f2c4], 1
mov esi, 0x47f2c8
jne 0x41a911
or byte [0x47f2c4], 1
mov ecx, esi
call fcn.0041bdc5
push 0x41aac3
call fcn.004251dd
pop ecx
cmp dword [0x47f2c8], ebx
jne 0x41a94d
mov ecx, 0x47e880
call fcn.00411811
push eax
mov ecx, esi
call fcn.0041bf12
mov eax, dword [0x47f2c8]
mov ecx, esi
dec eax
push eax
call fcn.0041bfe3
cmp al, 0x5c
jne 0x41a94d
mov eax, dword [0x47f2c8]
push 1
dec eax
mov ecx, esi
push eax
call fcn.0041c3a9
mov ecx, esi
call fcn.0041cd1e
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x41a974
push edi
mov ecx, esi
push dword [ebp - 4]
call fcn.0041cd1e
push eax
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
jmp 0x41a985
mov ecx, esi
call fcn.0041cd1e
push eax
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 1
push ebx
push ebx
mov ecx, 0x47e1b8
call fcn.0041cd1e
mov edi, dword [ebp + 8]
push eax
push str._UserName_
mov ecx, edi
call fcn.0041cbf9
push 1
push ebx
push ebx
mov ecx, 0x47e1c4
call fcn.0041cd1e
push eax
push str._UserCompany_
mov ecx, edi
call fcn.0041cbf9
push 1
push ebx
push ebx
mov ecx, 0x47e1d0
call fcn.0041cd1e
push eax
push str._UserSerial_
mov ecx, edi
call fcn.0041cbf9
push 1
push ebx
push ebx
mov ecx, edi
push dword [ebp - 8]
push str._ShortInstallDir_
call fcn.0041cbf9
push 1
push ebx
push ebx
mov ecx, edi
push dword [ebp - 4]
push str._ShortShortcutDir_
call fcn.0041cbf9
push 1
push ebx
push ebx
lea ecx, [ebp - 0x14]
call fcn.0041cd1e
push eax
push str._InstallDir_
mov ecx, edi
call fcn.0041cbf9
push 1
push ebx
push ebx
mov ecx, esi
call fcn.0041cd1e
push eax
push str._ShortcutDir_
mov ecx, edi
call fcn.0041cbf9
push 1
mov esi, str._UninstallerName_
push ebx
push esi
mov ecx, edi
call fcn.0041c6d0
cmp eax, 0xffffffff
je 0x41aa87
push 0x40
xor eax, eax
pop ecx
lea edi, [ebp - 0x117]
mov byte [ebp - 0x118], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x118]
mov ecx, 0x47e788
push eax
call fcn.00422a86
push 1
push ebx
push ebx
mov ecx, 0x47e5ec
call fcn.0041cd1e
mov ecx, dword [ebp + 8]
push eax
push esi
call fcn.0041cbf9
mov edi, dword [ebp + 8]
push 1
push ebx
push ebx
mov ecx, 0x47e628
call fcn.0041cd1e
push eax
push str._ResourceDir_
mov ecx, edi
call fcn.0041cbf9
push dword [ebp - 8]
call fcn.00424dce
push dword [ebp - 4]
call fcn.00424dce
pop ecx
pop ecx
lea ecx, [ebp - 0x14]
call fcn.0041befb
pop edi
pop esi
pop ebx
leave
ret 4