Function at 0x4a2fe1
Capabilities:
Check if file exists
Get file attributes
Hide graphical window

Disassembly:
push 0x44c
mov eax, 0x524f41
call fcn.004d8af2
mov edi, edx
mov dword [ebp - 0x3d4], edi
mov ebx, ecx
mov dword [ebp - 0x450], ebx
mov dword [ebp - 0x3cc], ebx
mov dword [ebp - 0x3cc], ebx
lea ecx, [ebp - 0x41c]
mov esi, dword [edi + 0x70]
and dword [ebp - 0x420], 0
mov dword [ebp - 0x424], 0x80004005
call fcn.0040687a
and dword [ebp - 4], 0
cmp byte [edi + 8], 0
je 0x4a31f1
cmp esi, 5
je 0x4a3195
cmp esi, 2
je 0x4a3195
cmp esi, 8
je 0x4a3195
cmp esi, 1
je 0x4a3195
cmp esi, 6
je 0x4a3195
call fcn.0044e842
test al, al
jne 0x4a3195
lea ecx, [ebp - 0x418]
call fcn.0045d004
lea eax, [ebp - 0x418]
mov byte [ebp - 4], 1
push eax
lea ecx, [ebp - 0x43c]
call fcn.0040121b
mov byte [ebp - 4], 2
cmp dword [ebp - 0x43c], 0
jge 0x4a3131
cmp dword [ebp - 0x438], 0
mov eax, 0x50e0
cmovne eax, dword [ebp - 0x438]
push eax
push dword [ebp - 0x43c]
push ecx
mov esi, esp
mov dword [ebp - 0x3cc], esi
mov edi, dword [ebp - 0x434]
lea ecx, [edi - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x430]
mov dword [esi], eax
call fcn.00406620
lea eax, [ebp - 0x430]
mov byte [ebp - 4], 3
push eax
mov ecx, ebx
call fcn.0040121b
mov ecx, dword [ebp - 0x428]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [edi - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x410]
add ecx, 0xfffffff0
call fcn.00407189
mov ecx, dword [ebp - 0x41c]
add ecx, 0xfffffff0
call fcn.00407189
mov eax, ebx
jmp 0x4a37e0
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x434]
add ecx, 0xfffffff0
call fcn.00407189
cmp dword [ebp - 0x418], 1
jne 0x4a3183
push 0x50e2
push 0x80004005
push ecx
mov ecx, esp
push str.Another_installer_is_running__MSI_
call fcn.00406fea
mov ecx, ebx
call fcn.00406620
mov ecx, dword [ebp - 0x410]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x41c]
lea ecx, [ecx - 0x10]
jmp 0x4a3125
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x410]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0x400]
call fcn.004849bc
push 0
lea eax, [ebp - 0x400]
mov byte [ebp - 4], 4
push eax
push ecx
mov eax, esp
lea ecx, [ebp - 0x430]
mov edx, edi
and dword [eax], 0
call fcn.00497492
add esp, 0xc
push eax
lea ecx, [ebp - 0x424]
mov byte [ebp - 4], 5
call fcn.004032ed
mov ecx, dword [ebp - 0x428]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0x400]
call fcn.00497611
jmp 0x4a36d0
push edi
lea ecx, [ebp - 0x3c8]
call fcn.0049f732
xor eax, eax
mov dword [ebp - method.WTL::CMessageLoop.virtual_0], vtable.WTL::CMessageLoop.0
mov dword [ebp - 0x408], eax
mov dword [ebp - 0x404], eax
mov dword [ebp - 0x400], eax
mov dword [ebp - 0x3fc], eax
mov dword [ebp - 0x3f8], eax
mov dword [ebp - 0x3f4], eax
xor ebx, ebx
mov byte [ebp - 4], 7
push 4
inc ebx
push ebx
push eax
call fcn.004f5258
mov ecx, dword [ebp - 0x404]
mov edx, eax
add esp, 0xc
test edx, edx
je 0x4a3284
lea eax, [edx + ecx*4]
mov dword [ebp - 0x408], edx
mov esi, ebx
mov dword [ebp - 0x400], esi
test eax, eax
je 0x4a327b
lea ecx, [ebp - 0x3a8]
mov dword [eax], ecx
mov esi, dword [ebp - 0x400]
mov ecx, dword [ebp - 0x404]
mov edx, dword [ebp - 0x408]
inc ecx
mov dword [ebp - 0x404], ecx
jmp 0x4a3290
mov esi, dword [ebp - 0x400]
mov edx, dword [ebp - 0x408]
cmp ecx, esi
jne 0x4a32ec
lea eax, [ebp - 0x440]
cmp eax, edx
jb 0x4a32af
lea eax, [edx + esi*4]
lea edi, [ebp - 0x440]
cmp edi, eax
jb 0x4a37e6
test esi, esi
jne 0x4a32b7
mov edi, ebx
jmp 0x4a32c6
lea edi, [ecx + ecx]
test edi, edi
js 0x4a3314
cmp edi, 0x1fffffff
ja 0x4a3314
push 4
push edi
push edx
call fcn.004f5258
mov ecx, dword [ebp - 0x404]
mov edx, eax
add esp, 0xc
test edx, edx
je 0x4a333b
mov esi, edi
mov dword [ebp - 0x408], edx
mov dword [ebp - 0x400], esi
lea eax, [edx + ecx*4]
test eax, eax
je 0x4a330d
lea ecx, [ebp - 0x2dc]
mov dword [eax], ecx
mov esi, dword [ebp - 0x400]
mov ecx, dword [ebp - 0x404]
mov edx, dword [ebp - 0x408]
inc ecx
mov dword [ebp - 0x404], ecx
cmp ecx, esi
jne 0x4a337e
lea eax, [ebp - 0x444]
cmp eax, edx
jb 0x4a3333
lea eax, [edx + esi*4]
lea edi, [ebp - 0x444]
cmp edi, eax
jb 0x4a37e6
test esi, esi
jne 0x4a3349
mov edi, ebx
jmp 0x4a3358
mov esi, dword [ebp - 0x400]
mov edx, dword [ebp - 0x408]
jmp 0x4a3314
lea edi, [ecx + ecx]
test edi, edi
js 0x4a33a6
cmp edi, 0x1fffffff
ja 0x4a33a6
push 4
push edi
push edx
call fcn.004f5258
mov ecx, dword [ebp - 0x404]
mov edx, eax
add esp, 0xc
test edx, edx
je 0x4a33cd
mov esi, edi
mov dword [ebp - 0x408], edx
mov dword [ebp - 0x400], esi
lea eax, [edx + ecx*4]
test eax, eax
je 0x4a339f
lea ecx, [ebp - 0x1d0]
mov dword [eax], ecx
mov esi, dword [ebp - 0x400]
mov ecx, dword [ebp - 0x404]
mov edx, dword [ebp - 0x408]
inc ecx
mov dword [ebp - 0x404], ecx
cmp ecx, esi
jne 0x4a340e
lea eax, [ebp - 0x448]
cmp eax, edx
jb 0x4a33c5
lea eax, [edx + esi*4]
lea edi, [ebp - 0x448]
cmp edi, eax
jb 0x4a37e6
test esi, esi
jne 0x4a33db
mov esi, ebx
jmp 0x4a33ea
mov esi, dword [ebp - 0x400]
mov edx, dword [ebp - 0x408]
jmp 0x4a33a6
lea esi, [ecx + ecx]
test esi, esi
js 0x4a342a
cmp esi, 0x1fffffff
ja 0x4a342a
push 4
push esi
push edx
call fcn.004f5258
mov edx, eax
add esp, 0xc
test edx, edx
je 0x4a342a
mov ecx, dword [ebp - 0x404]
mov dword [ebp - 0x400], esi
mov dword [ebp - 0x408], edx
lea eax, [edx + ecx*4]
test eax, eax
je 0x4a3423
lea ecx, [ebp - 0x84]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x404]
inc ecx
mov dword [ebp - 0x404], ecx
mov ecx, dword [ebp - 0x3f8]
mov edx, dword [ebp - 0x3f4]
cmp ecx, edx
jne 0x4a3492
mov esi, dword [ebp - 0x3fc]
lea eax, [ebp - 0x44c]
cmp eax, esi
jb 0x4a345b
lea eax, [esi + edx*4]
lea edi, [ebp - 0x44c]
cmp edi, eax
jb 0x4a37e6
test edx, edx
je 0x4a346e
lea ebx, [ecx + ecx]
test ebx, ebx
js 0x4a34b4
cmp ebx, 0x1fffffff
ja 0x4a34b4
push 4
push ebx
push esi
call fcn.004f5258
add esp, 0xc
test eax, eax
je 0x4a34b4
mov ecx, dword [ebp - 0x3f8]
mov dword [ebp - 0x3f4], ebx
mov dword [ebp - 0x3fc], eax
jmp 0x4a3498
mov eax, dword [ebp - 0x3fc]
lea eax, [eax + ecx*4]
test eax, eax
je 0x4a34ad
lea ecx, [ebp - 0x2d4]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x3f8]
inc ecx
mov dword [ebp - 0x3f8], ecx
xor esi, esi
lea ecx, [ebp - 0x3c0]
push esi
push esi
call fcn.004d3bbf
mov ebx, dword [sym.imp.USER32.dll_CreateDialogParamW]
mov edi, dword [sym.imp.KERNEL32.dll_SetLastError]
test eax, eax
jne 0x4a34d9
push 0xe
call edi
jmp 0x4a3500
lea eax, [ebp - 0x3c8]
push eax
lea eax, [ebp - 0x3c0]
push eax
call fcn.004d3a52
push esi
push 0x4d3bec
push esi
push 0x81
push dword [0x57c488]
call ebx
push esi
push esi
lea ecx, [ebp - 0x2f4]
call fcn.004d3bbf
test eax, eax
jne 0x4a3517
push 0xe
call edi
jmp 0x4a353e
lea eax, [ebp - 0x2fc]
push eax
lea eax, [ebp - 0x2f4]
push eax
call fcn.004d3a52
push esi
push 0x4d3bec
push esi
push 0x89
push dword [0x57c488]
call ebx
push esi
push esi
lea ecx, [ebp - 0x9c]
call fcn.004d3bbf
test eax, eax
jne 0x4a3555
push 0xe
call edi
jmp 0x4a357c
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp - 0x9c]
push eax
call fcn.004d3a52
push esi
push 0x4d3bec
push esi
push 0x8b
push dword [0x57c488]
call ebx
push ecx
mov ecx, dword [ebp - 0x3d4]
mov esi, esp
mov dword [ebp - 0x3cc], esi
mov ecx, dword [ecx + 0x5c]
sub ecx, 0x10
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x430]
mov dword [esi], eax
call fcn.004a2e0a
cmp dword [ebp - 0x430], 0
pop ecx
mov ecx, dword [ebp - 0x428]
sete bl
lea ecx, [ecx - 0x10]
call fcn.00407189
push 0
push 0
lea ecx, [ebp - 0xc4]
mov byte [ebp - 0xa8], bl
call fcn.004d3bbf
test eax, eax
jne 0x4a35de
push 0xe
call edi
jmp 0x4a360b
lea eax, [ebp - 0xcc]
push eax
lea eax, [ebp - 0xc4]
push eax
call fcn.004d3a52
push 0
push 0x4d3bec
push 0
push 0x88
push dword [0x57c488]
call dword [sym.imp.USER32.dll_CreateDialogParamW]
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
push 5
push dword [ebp - 0xc8]
call esi
push 0
push dword [ebp - 0x3c4]
call esi
push 0
push dword [ebp - 0x2f8]
call esi
push 0
push dword [ebp - 0xa0]
call esi
push 0
lea ecx, [ebp - 0x3c8]
call fcn.004a0fca
lea ecx, [ebp - 0x40c]
call fcn.004d5851
push dword [ebp - 0x2f8]
mov esi, dword [sym.imp.USER32.dll_DestroyWindow]
call esi
push dword [ebp - 0xc8]
call esi
push dword [ebp - 0xa0]
call esi
push 0xffffffffffffffff
push dword [ebp - 0x3a4]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
and dword [ebp - 0x418], 0
lea ecx, [ebp - 0x410]
and dword [ebp - 0x414], 0
call fcn.0040687a
lea eax, [ebp - 0x418]
mov byte [ebp - 4], 8
push eax
lea ecx, [ebp - 0x424]
call fcn.004032ed
mov ecx, dword [ebp - 0x410]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0x40c]
call fcn.004d59a2
lea ecx, [ebp - 0x3c8]
call fcn.004a2364
mov eax, dword [0x57d3ec]
add eax, 0x54
mov byte [ebp - 0x3cd], 1
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
xor esi, esi
mov byte [ebp - 4], 9
mov dword [ebp - 0x3d4], esi
call fcn.0044f24f
mov ecx, eax
mov ebx, 0x1ac
mov eax, dword [ecx + ebx + 4]
sub eax, dword [ecx + ebx]
mov ecx, 0xa8
cdq
idiv ecx
test eax, eax
je 0x4a37ab
xor edi, edi
call fcn.0044f24f
mov ecx, dword [eax + ebx]
mov ecx, dword [ecx + edi + 0x58]
sub ecx, 0x10
call fcn.004070e7
add eax, 0x10
mov dword [ebp - 0x3cc], eax
lea ebx, [eax - 0x10]
mov byte [ebp - 4], 0xa
cmp dword [ebx + 4], 0
je 0x4a3770
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4a3770
push ecx
mov esi, esp
mov ecx, ebx
mov dword [ebp - 0x454], esi
call fcn.004070e7
add eax, 0x10
xor ecx, ecx
mov dword [esi], eax
call fcn.00428b15
mov esi, dword [ebp - 0x3d4]
pop ecx
mov ecx, ebx
mov byte [ebp - 4], 9
call fcn.00407189
inc esi
add edi, 0xa8
mov dword [ebp - 0x3d4], esi
call fcn.0044f24f
mov ecx, eax
mov ebx, 0x1ac
mov eax, dword [ecx + ebx + 4]
sub eax, dword [ecx + ebx]
mov ecx, 0xa8
cdq
idiv ecx
cmp esi, eax
jb 0x4a3717
lea ecx, [ebp - 0x3cd]
mov byte [ebp - 4], 0
call fcn.0044f694
mov ecx, dword [ebp - 0x450]
lea eax, [ebp - 0x424]
push eax
call fcn.0040121b
mov ecx, dword [ebp - 0x41c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebp - 0x450]
call fcn.004d8aa1
ret
mov edx, 0xac
mov ecx, 0x80004005
call fcn.004071ab
int3