Function at 0x48dd10
Capabilities:
Check if file exists
Create process on windows
Delete file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4e14fd
mov eax, dword fs:[0]
push eax
sub esp, 0xe4
mov eax, dword [0x5203c4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [0x527b7c]
test eax, eax
jne 0x48dd7e
push 0x4eb980
push 0x2c
call fcn.004a8e8b
add esp, 8
mov dword [ebp - 0xec], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x48dd70
mov ecx, eax
call fcn.00475760
jmp 0x48dd72
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x527b7c], eax
push str.runApp
push str.App___SetupHelper
push eax
call fcn.00477180
lea eax, [ebp - 0xe8]
push eax
call fcn.0048c7d0
add esp, 0x10
mov dword [ebp - 4], 1
call fcn.00476b10
mov ecx, eax
test ecx, ecx
je 0x48e6db
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xd4], eax
push str.setup
push str.from
push str.setup
push str.tray
lea eax, [ebp - 0xd4]
mov byte [ebp - 4], 2
push str.___s____s____s_s
push eax
call fcn.00476950
add esp, 0x18
mov ecx, 0x528720
call fcn.00493940
test al, al
jne 0x48de09
mov ecx, 0x528720
call fcn.00493980
test al, al
je 0x48de22
push str.silent
lea eax, [ebp - 0xd4]
push 0x4e8174
push eax
call fcn.00484050
add esp, 0xc
mov ecx, 0x528720
call fcn.00493960
test al, al
je 0x48de49
push str.show
lea eax, [ebp - 0xd4]
push 0x4e8174
push eax
call fcn.00484050
add esp, 0xc
cmp byte [0x5286b0], 0
je 0x48de6b
push str.update
lea eax, [ebp - 0xd4]
push 0x4e8174
push eax
call fcn.00484050
add esp, 0xc
push str.inst_simulator
lea eax, [ebp - 0x88]
mov ecx, 0x528720
push eax
call fcn.00493920
mov esi, eax
cmp dword [esi + 0x14], 8
mov byte [ebp - 4], 3
jb 0x48de8f
mov esi, dword [esi]
call fcn.00476b10
mov ecx, eax
test ecx, ecx
je 0x48e6e5
mov eax, dword [ecx]
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [ebp - 0xe4], edi
mov byte [ebp - 4], 4
test esi, esi
je 0x48def3
test esi, 0xffff0000
jne 0x48dedd
movzx esi, si
push 0
push esi
call fcn.004763e0
add esp, 8
test eax, eax
je 0x48df08
push esi
push eax
lea ecx, [ebp - 0xe4]
call fcn.0048b6d0
jmp 0x48df02
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x48dee2
sub ecx, edx
sar ecx, 1
jmp 0x48def5
xor ecx, ecx
push ecx
push esi
lea ecx, [ebp - 0xe4]
call fcn.00477ed0
mov edi, dword [ebp - 0xe4]
mov edx, dword [ebp - 0x74]
mov byte [ebp - 4], 6
cmp edx, 8
jb 0x48df49
mov ecx, dword [ebp - 0x88]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x48df3f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x48e6ef
push edx
push ecx
call fcn.004a8c37
add esp, 8
xor eax, eax
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 7
mov word [ebp - 0x88], ax
cmp dword [edi - 0xc], eax
je 0x48df7f
push edi
push str.inst_simulator
lea eax, [ebp - 0xd4]
push str.____s_s
push eax
call fcn.00484050
add esp, 0x10
push str.param
lea eax, [ebp - 0xa0]
mov ecx, 0x528720
push eax
call fcn.00493920
mov esi, eax
cmp dword [esi + 0x14], 8
mov byte [ebp - 4], 7
jb 0x48dfa3
mov esi, dword [esi]
call fcn.00476b10
mov ecx, eax
test ecx, ecx
je 0x48e6f4
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xd8], eax
mov byte [ebp - 4], 8
test esi, esi
je 0x48e007
test esi, 0xffff0000
jne 0x48dff1
movzx esi, si
push 0
push esi
call fcn.004763e0
add esp, 8
test eax, eax
je 0x48e016
push esi
push eax
lea ecx, [ebp - 0xd8]
call fcn.0048b6d0
jmp 0x48e016
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x48dff6
sub ecx, edx
sar ecx, 1
jmp 0x48e009
xor ecx, ecx
push ecx
push esi
lea ecx, [ebp - 0xd8]
call fcn.00477ed0
mov edx, dword [ebp - 0x8c]
mov byte [ebp - 4], 0xa
cmp edx, 8
jb 0x48e05a
mov ecx, dword [ebp - 0xa0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x48e050
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x48e6fe
push edx
push ecx
call fcn.004a8c37
add esp, 8
push str.startup_id
push dword [ebp - 0xd8]
xor eax, eax
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 7
mov word [ebp - 0xa0], ax
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
or ebx, 0xffffffff
test eax, eax
jne 0x48e591
call fcn.00476b10
mov ecx, eax
test ecx, ecx
je 0x48e703
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xf0], eax
push 0xcf
push 0x400000
lea ecx, [ebp - 0xf0]
mov byte [ebp - 4], 0xb
call fcn.0048b6d0
mov esi, dword [ebp - 0xf0]
mov ecx, str.00000000000000000000000000000000
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x48e0fc
test dx, dx
je 0x48e0f8
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x48e0fc
add eax, 4
add ecx, 4
test dx, dx
jne 0x48e0d6
xor eax, eax
jmp 0x48e101
sbb eax, eax
or eax, 1
test eax, eax
je 0x48e124
push esi
push str.startup_id
lea eax, [ebp - 0xd8]
push str.____s_s
push eax
call fcn.00484050
add esp, 0x10
jmp 0x48e576
xor eax, eax
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
lea eax, [ebp - 0xb8]
mov byte [ebp - 4], 0xc
push eax
call fcn.00484a00
add esp, 4
cmp dword [ebp - 0xa4], 8
lea eax, [ebp - 0xb8]
mov byte [ebp - 4], 0xd
jb 0x48e16b
mov eax, dword [ebp - 0xb8]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov edx, eax
test edx, edx
je 0x48e519
mov ecx, edx
mov dword [ebp - 0x58], 0
xor eax, eax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
lea ebx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x48e1a0
sub ecx, ebx
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x58]
call fcn.00408d10
push 0
push 0x4e823c
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0xe
call fcn.00416410
cmp eax, 0xffffffff
je 0x48e4c4
mov ebx, dword [ebp - 0x48]
inc eax
xor ecx, ecx
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], cx
cmp ebx, eax
jb 0x48e70d
sub ebx, eax
cmp ebx, 0xffffffff
jb 0x48e206
or ebx, 0xffffffff
cmp dword [ebp - 0x44], 8
lea ecx, [ebp - 0x58]
jb 0x48e212
mov ecx, dword [ebp - 0x58]
lea eax, [ecx + eax*2]
mov dword [ebp - 0xec], eax
cmp ebx, 7
ja 0x48e23f
mov dword [ebp - 0x30], ebx
add ebx, ebx
push ebx
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.004ad230
add esp, 0xc
xor eax, eax
mov word [ebp + ebx - 0x40], ax
mov ebx, dword [ebp - 0x40]
jmp 0x48e2b3
cmp ebx, 0x7ffffffe
ja 0x48e712
mov eax, ebx
or eax, 7
mov dword [ebp - 0xdc], eax
cmp eax, 0x7ffffffe
jbe 0x48e264
mov eax, 0x7ffffffe
jmp 0x48e26e
cmp eax, 0xa
jae 0x48e274
mov eax, 0xa
mov dword [ebp - 0xdc], eax
inc eax
lea ecx, [ebp - 0x40]
push eax
call fcn.00408cb0
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0x30], ebx
add ebx, ebx
push ebx
push dword [ebp - 0xec]
mov dword [ebp - 0xe0], eax
push eax
mov dword [ebp - 0x2c], ecx
call fcn.004ad230
mov eax, dword [ebp - 0xe0]
add esp, 0xc
xor ecx, ecx
mov word [eax + ebx], cx
mov ebx, eax
mov dword [ebp - 0x40], ebx
push 0
push 0x4e823c
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xf
call fcn.00416410
cmp eax, 0xffffffff
je 0x48e475
push 0xffffffffffffffff
inc eax
lea ecx, [ebp - 0x40]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.0041bf60
push 0
push 0x4e823c
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x10
call fcn.00416410
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x48e396
cmp dword [ebp - 0x5c], 8
lea ecx, [ebp - 0x70]
mov dword [ebp - 0xe0], ecx
jb 0x48e315
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0xe0], ecx
mov eax, dword [ebp - 0x60]
cmp eax, 1
jb 0x48e46a
dec eax
cmp eax, 0xffffffff
jb 0x48e32a
or eax, 0xffffffff
lea ebx, [ecx + eax*2]
mov eax, ebx
sub eax, 0x5055f8
cmp word [ebx], 0x2e
mov dword [ebp - 0xdc], eax
jne 0x48e375
mov edx, 1
mov ecx, 0x5055f8
lea ebx, [ebx]
mov ax, word [eax + ecx]
cmp ax, word [ecx]
jne 0x48e369
add ecx, 2
sub edx, 1
je 0x48e385
mov eax, dword [ebp - 0xdc]
jmp 0x48e350
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0xe0]
cmp ebx, ecx
je 0x48e46a
sub ebx, 2
sub eax, 2
jmp 0x48e334
sub ebx, dword [ebp - 0xe0]
sar ebx, 1
cmp ebx, 0xffffffff
je 0x48e46a
push ebx
push 0
lea eax, [ebp - 0xd0]
push eax
lea ecx, [ebp - 0x70]
call fcn.0041bf60
mov ebx, eax
lea eax, [ebp - 0x28]
cmp eax, ebx
je 0x48e439
mov edx, dword [ebp - 0x14]
cmp edx, 8
jb 0x48e3ef
mov ecx, dword [ebp - 0x28]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x48e3e5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x48e717
push edx
push ecx
call fcn.004a8c37
add esp, 8
mov dword [ebp - 0x18], 0
xor eax, eax
mov word [ebp - 0x28], ax
mov dword [ebp - 0x14], 7
mov eax, dword [ebx]
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 4]
mov dword [ebp - 0x24], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x20], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x18], eax
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0x14], eax
xor eax, eax
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 7
mov word [ebx], ax
lea ecx, [ebp - 0xd0]
call fcn.004074f0
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
jb 0x48e450
mov eax, dword [ebp - 0x28]
push eax
push str.startup_id
lea eax, [ebp - 0xd8]
push str.____s_s
push eax
call fcn.00484050
add esp, 0x10
lea ecx, [ebp - 0x70]
call fcn.004074f0
mov ebx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x2c]
mov byte [ebp - 4], 0xe
cmp ecx, 8
jb 0x48e4b0
lea ecx, [ecx*2 + 2]
mov eax, ebx
cmp ecx, 0x1000
jb 0x48e4a6
mov ebx, dword [ebx - 4]
add ecx, 0x23
sub eax, ebx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x48e71c
push ecx
push ebx
call fcn.004a8c37
add esp, 8
xor eax, eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
mov edx, dword [ebp - 0x44]
mov byte [ebp - 4], 0xd
cmp edx, 8
jb 0x48e502
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x48e4f8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x48e721
push edx
push ecx
call fcn.004a8c37
add esp, 8
xor eax, eax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
or ebx, 0xffffffff
mov word [ebp - 0x58], ax
lea ecx, [ebp - 0xb8]
call fcn.004074f0
mov edx, dword [ebp - 0x14]
mov byte [ebp - 4], 0xb
cmp edx, 8
jb 0x48e562
mov ecx, dword [ebp - 0x28]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x48e558
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x48e726
push edx
push ecx
call fcn.004a8c37
add esp, 8
xor eax, eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
mov byte [ebp - 4], 0xa
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x48e591
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp - 0xd8]
lea eax, [ebp - 0xd4]
push 0x4e8240
push eax
call fcn.00484050
mov esi, dword [ebp - 0xd4]
add esp, 0xc
push 1
push 0
push esi
push dword [ebp - 0xe8]
push 0
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov eax, dword [0x527b7c]
test eax, eax
jne 0x48e600
push 0x4eb980
push 0x2c
call fcn.004a8e8b
add esp, 8
mov dword [ebp - 0xec], eax
mov byte [ebp - 4], 0x11
test eax, eax
je 0x48e5f5
mov ecx, eax
call fcn.00475760
jmp 0x48e5f7
xor eax, eax
mov byte [ebp - 4], 0xa
mov dword [0x527b7c], eax
push esi
push dword [ebp - 0xe8]
push str.runApp___s____s_
push str.App___SetupHelper
push eax
call fcn.00477180
add esp, 0x14
push 0x5284a8
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x48e644
push 0x80
push 0x5284a8
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x5284a8
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov edx, dword [ebp - 0xd8]
mov eax, ebx
mov byte [ebp - 4], 6
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x48e665
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 2
add edi, 0xfffffff0
mov eax, ebx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x48e680
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x48e69b
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xe8]
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x48e6bd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a8e4e
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.00476460
push 0x80004005
call fcn.00476460
call fcn.004b040f
push 0x80004005
call fcn.00476460
call fcn.004b040f
push 0x80004005
call fcn.00476460
call fcn.0040b350
call fcn.00408b50
call fcn.004b040f
call fcn.004b040f
call fcn.004b040f
call fcn.004b040f
int3