Function at 0x488440
Capabilities:
Check if file exists
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4dfe40
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push ebx
push esi
push edi
mov eax, dword [0x50f52c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
xor esi, esi
push esi
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x18], esp
push esi
mov edi, 7
xor eax, eax
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], esi
push 0x4e25d8
mov word [ecx + 4], ax
call fcn.00401860
mov dword [ebp - 4], esi
mov edx, dword [0x510ac0]
sub esp, 0x188
mov ecx, esp
mov dword [ebp - 0x14], esp
push edx
call fcn.00410c80
mov byte [ebp - 4], 1
mov eax, dword [0x510ac4]
sub esp, 0x3c4
mov ecx, esp
mov dword [ebp - 0x10], esp
push eax
call fcn.00462ac0
mov byte [ebp - 4], 2
push esi
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x1c], esp
push edi
xor edx, edx
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], esi
push 0x4ef1c0
mov word [ecx + 4], dx
call fcn.00401860
mov byte [ebp - 4], 3
push esi
mov dword [ebp - 4], 0xffffffff
call fcn.0041b950
mov eax, dword [ebx + 4]
mov esi, dword [sym.imp.USER32.dll_GetParent]
push eax
call esi
push eax
lea ecx, [ebx + 0x54]
call fcn.00489280
lea ecx, [ebp - 0x14]
push 0x65
push ecx
call fcn.004285a0
add esp, 8
mov dword [ebp - 4], 4
mov edx, dword [ebx + 4]
mov edi, dword [eax]
push edx
call esi
push edi
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.0041c0e0
mov eax, dword [ebx + 4]
push eax
call esi
mov edi, eax
push 0xfffffffffffffff0
push edi
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov ecx, eax
and ecx, 0xfff7ffff
cmp eax, ecx
je 0x48856a
push ecx
push 0xfffffffffffffff0
push edi
call dword [sym.imp.USER32.dll_SetWindowLongW]
mov ecx, dword [ebx + 4]
push ecx
call esi
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
push 0x3023
push eax
call edi
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov edx, dword [ebx + 4]
push edx
call esi
push 0x3024
push eax
call edi
push 5
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
lea eax, [ebp - 0x10]
push 0xca
push eax
call fcn.004285a0
add esp, 8
mov dword [ebp - 4], 5
mov edx, dword [ebx + 4]
mov ecx, dword [eax]
push edx
mov dword [ebp - 0x14], ecx
call esi
push 0x3023
push eax
call edi
mov ecx, dword [ebp - 0x14]
push ecx
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.0041c0e0
lea edx, [ebp - 0x10]
push 0xc9
push edx
call fcn.004285a0
add esp, 8
mov dword [ebp - 4], 6
mov ecx, dword [ebx + 4]
mov eax, dword [eax]
push ecx
mov dword [ebp - 0x14], eax
call esi
push 0x3024
push eax
call edi
mov edx, dword [ebp - 0x14]
push edx
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.0041c0e0
lea eax, [ebp - 0x10]
push 0xcb
push eax
call fcn.004285a0
add esp, 8
mov dword [ebp - 4], 7
mov edx, dword [ebx + 4]
mov ecx, dword [eax]
push edx
mov dword [ebp - 0x14], ecx
call esi
push 2
push eax
call edi
mov ecx, dword [ebp - 0x14]
push ecx
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.0041c0e0
mov edx, dword [ebx + 4]
push edx
call esi
push 2
push 0
push 0x470
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, dword [ebx + 4]
push 0x459
push eax
call edi
push 1
push 0x4ecbf0
push str.IDB_PNG_BANNER
lea ecx, [ebp - 0x14]
push ecx
mov dword [ebp - 0x14], eax
call fcn.00424e90
mov eax, dword [0x510ac4]
cmp dword [eax + 0x25c], 0
je 0x4886c8
cmp dword [eax + 0x284], 0
je 0x4886c1
mov esi, 0x4ef298
jmp 0x4886cd
mov esi, 0x4ef270
jmp 0x4886cd
mov esi, 0x4ef250
mov edx, dword [ebx + 4]
push 0x453
push edx
call edi
push 1
push 0x4ecbf0
mov dword [ebp - 0x14], eax
push esi
lea eax, [ebp - 0x14]
push eax
call fcn.00424e90
mov esi, dword [0x510ac4]
sub esp, 0x1c
mov edi, esp
add esi, 0x84
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebp - 0x10]
push 0x40b
push ecx
call fcn.004285a0
add esp, 0x24
mov dword [ebp - 4], 8
mov edx, dword [ebx + 4]
mov esi, dword [eax]
push 0x43b
push edx
call dword [sym.imp.USER32.dll_GetDlgItem]
push esi
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.0041c0e0
mov esi, dword [0x510ac4]
sub esp, 0x1c
mov edi, esp
lea eax, [ebp - 0x18]
push 0x422
add esi, 0x84
mov ecx, 7
push eax
rep movsd dword es:[edi], dword [esi]
call fcn.004285a0
add esp, 0x24
mov dword [ebp - 4], 9
mov ecx, dword [ebx + 4]
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
mov esi, dword [eax]
push 0x43e
push ecx
call edi
push esi
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.0041c0e0
mov eax, dword [0x510ac4]
cmp dword [eax + 0x1fc], 0
je 0x48884c
sub esp, 0x1c
mov edi, esp
lea edx, [ebp - 0x18]
lea esi, [eax + 0x84]
push 0x409
mov ecx, 7
push edx
rep movsd dword es:[edi], dword [esi]
call fcn.004285a0
add esp, 0x24
mov dword [ebp - 4], 0xa
mov esi, dword [eax]
mov eax, dword [ebx + 4]
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
push 0x43e
push eax
call edi
push esi
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.0041c0e0
lea ecx, [ebp - 0x18]
push 0xcd
push ecx
call fcn.004285a0
add esp, 8
mov dword [ebp - 4], 0xb
mov edx, dword [ebx + 4]
mov esi, dword [eax]
push edx
call dword [sym.imp.USER32.dll_GetParent]
push 0x3024
push eax
call edi
push esi
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.0041c0e0
mov eax, dword [0x510ac4]
cmp dword [eax + 0x25c], 0
je 0x4888f0
sub esp, 0x1c
lea esi, [eax + 0x84]
mov edi, esp
lea eax, [ebp - 0x18]
push 0x40a
mov ecx, 7
push eax
rep movsd dword es:[edi], dword [esi]
call fcn.004285a0
add esp, 0x24
mov dword [ebp - 4], 0xc
mov ecx, dword [ebx + 4]
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
mov esi, dword [eax]
push 0x43e
push ecx
call edi
push esi
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.0041c0e0
lea edx, [ebp - 0x18]
push 0xcd
push edx
call fcn.004285a0
add esp, 8
mov dword [ebp - 4], 0xd
mov esi, dword [eax]
mov eax, dword [ebx + 4]
push eax
call dword [sym.imp.USER32.dll_GetParent]
push 0x3024
push eax
call edi
push esi
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.0041c0e0
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push str.DEInstall.xml
call esi
test eax, eax
jne 0x488933
push str.ESInstall.xml
call esi
test eax, eax
jne 0x488933
push str.FRInstall.xml
call esi
test eax, eax
jne 0x488933
push str.ITInstall.xml
call esi
test eax, eax
jne 0x488933
mov ecx, dword [0x510ac4]
add ecx, 0x290
call fcn.0041d800
mov eax, dword [0x510ac4]
mov ecx, dword [eax + 0x2a0]
sub ecx, dword [eax + 0x29c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push 0x466
je 0x488b1e
mov edx, dword [ebx + 4]
xor esi, esi
push edx
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x14], esi
call edi
push esi
push esi
push 0x14b
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov esi, dword [0x510ac4]
mov edi, dword [esi + 0x29c]
add esi, 0x290
cmp edi, dword [esi + 0x10]
jbe 0x488998
call fcn.004b32e0
mov eax, dword [esi]
mov dword [ebp - 0x20], eax
lea ecx, [ecx]
mov esi, dword [0x510ac4]
mov ecx, dword [esi + 0x2a0]
add esi, 0x290
mov dword [ebp - 0x18], ecx
cmp dword [esi + 0xc], ecx
jbe 0x4889c2
call fcn.004b32e0
mov eax, dword [ebp - 0x20]
mov esi, dword [esi]
test eax, eax
je 0x4889cc
cmp eax, esi
je 0x4889d4
call fcn.004b32e0
mov eax, dword [ebp - 0x20]
cmp edi, dword [ebp - 0x18]
jae 0x488aa6
test eax, eax
jne 0x488a12
call fcn.004b32e0
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x4889f2
call fcn.004b32e0
mov eax, dword [0x510ac4]
mov ecx, dword [eax + 0x2d8]
mov esi, 8
cmp dword [eax + 0x2dc], esi
jb 0x488a16
mov eax, dword [eax + 0x2c8]
jmp 0x488a1b
mov eax, dword [eax]
jmp 0x4889e8
add eax, 0x2c8
push ecx
push eax
mov eax, dword [edi + 0x30]
push eax
push 0
lea ecx, [edi + 0x1c]
call fcn.00401fe0
test eax, eax
jne 0x488a35
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x488a57
call fcn.004b32e0
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x488a4d
call fcn.004b32e0
cmp dword [edi + 0x18], esi
jb 0x488a5b
mov esi, dword [edi + 4]
jmp 0x488a5e
mov eax, dword [eax]
jmp 0x488a43
lea esi, [edi + 4]
mov edx, dword [ebx + 4]
push 0x466
push edx
call dword [sym.imp.USER32.dll_GetDlgItem]
push esi
push 0xffffffffffffffff
push 0x14a
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x488aa2
call fcn.004b32e0
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x488a94
call fcn.004b32e0
mov eax, dword [ebp - 0x20]
add edi, 0x58
inc dword [ebp - 0x10]
jmp 0x4889a0
mov eax, dword [eax]
jmp 0x488a8a
mov eax, dword [ebx + 4]
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
push 0x466
push eax
call edi
mov ecx, dword [ebp - 0x14]
push 0
push ecx
push 0x14e
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
lea edx, [ebp - 0x18]
push 0x427
push edx
call fcn.004285a0
add esp, 8
mov dword [ebp - 4], 0xe
mov esi, dword [eax]
mov eax, dword [ebx + 4]
push 0x46c
push eax
call edi
push esi
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x488b3f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x488b3f
mov ecx, dword [ebx + 4]
push ecx
call edi
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
push 0
push eax
call esi
mov edx, dword [ebx + 4]
push 0x46c
push edx
call edi
push 0
push eax
call esi
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret