Function at 0x487cb1
Capabilities:
Check if file exists
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5700db
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x150
mov dword [ebp - 0x140], ecx
cmp dword [0x5b3d58], 0
je 0x487d3d
push 0
lea ecx, [ebp - 0x100]
call fcn.0048b970
mov dword [ebp - 4], 0
push 0x5b3f40
lea ecx, [ebp - 0x100]
call fcn.0048bcd5
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jne 0x487d21
lea ecx, [ebp - 0x100]
call fcn.0048cb2d
lea ecx, [ebp - 0x100]
call fcn.0054decd
mov dword [0x5b3d58], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x100]
call fcn.0048ba50
lea ecx, [ebp - 0x14]
call fcn.00401000
mov dword [ebp - 4], 1
push 0x5b3f90
lea ecx, [ebp - 0x14]
call fcn.0040105a
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jne 0x487eaf
push 0x5b3fe0
mov eax, dword [ebp - 0x140]
mov ecx, dword [eax + 0x64]
add ecx, 0x13c
push ecx
lea edx, [ebp - 0x118]
push edx
call fcn.0054d5cd
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x130]
mov ecx, dword [eax]
mov dword [ebp - 0x134], ecx
mov edx, dword [ebp - 0x134]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
neg eax
sbb eax, eax
inc eax
mov byte [ebp - 0x114], al
lea ecx, [ebp - 0x118]
call fcn.0054d328
mov eax, dword [ebp - 0x114]
and eax, 0xff
test eax, eax
je 0x487e29
push ecx
mov ecx, esp
mov dword [ebp - 0x11c], esp
push 0x5b3ff8
call fcn.0054d39c
mov dword [ebp - 0x144], eax
lea ecx, [ebp - 0x104]
push ecx
mov edx, dword [ebp - 0x140]
mov ecx, dword [edx + 0x64]
call fcn.004be333
mov dword [ebp - 0x148], eax
mov byte [ebp - 4], 2
push 0
push 0x30
mov eax, dword [ebp - 0x104]
push eax
call fcn.00555cac
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x104]
call fcn.0054d328
jmp 0x487eaa
mov ecx, dword [ebp - 0x140]
mov edx, dword [ecx + 0x1c]
push edx
call dword [sym.imp.USER32.dll_GetParent]
push eax
call fcn.0054e7f3
mov dword [ebp - 0x108], eax
mov ecx, dword [ebp - 0x108]
call fcn.004c747f
push 0x5b4024
mov eax, dword [ebp - 0x140]
mov ecx, dword [eax + 0x64]
add ecx, 0x13c
push ecx
lea edx, [ebp - 0x120]
push edx
call fcn.0054d5cd
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
mov ecx, dword [eax]
mov dword [ebp - 0x13c], ecx
push 5
push 0
push 0
mov edx, dword [ebp - 0x13c]
push edx
push 0x5b403c
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea ecx, [ebp - 0x120]
call fcn.0054d328
jmp 0x487fb4
cmp dword [ebp - 0x18], 1
je 0x487ebb
cmp dword [ebp - 0x18], 2
jne 0x487f17
push ecx
mov ecx, esp
mov dword [ebp - 0x124], esp
push str.M_UPDATE_INTERNET_FAILED
call fcn.0054d39c
mov dword [ebp - 0x14c], eax
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x140]
mov ecx, dword [ecx + 0x64]
call fcn.004be333
mov dword [ebp - 0x150], eax
mov byte [ebp - 4], 3
push 0
push 0x30
mov edx, dword [ebp - 0x10c]
push edx
call fcn.00555cac
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x10c]
call fcn.0054d328
jmp 0x487fb4
cmp dword [ebp - 0x18], 6
jne 0x487fb4
mov eax, dword [0x5be480]
mov dword [ebp - 0x110], eax
mov byte [ebp - 4], 4
push ecx
mov ecx, esp
mov dword [ebp - 0x128], esp
push str.M_UPDATE_NOUPDATE
call fcn.0054d39c
mov dword [ebp - 0x154], eax
lea ecx, [ebp - 0x12c]
push ecx
mov edx, dword [ebp - 0x140]
mov ecx, dword [edx + 0x64]
call fcn.004be333
mov dword [ebp - 0x158], eax
mov eax, dword [ebp - 0x158]
mov dword [ebp - 0x15c], eax
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x15c]
push ecx
lea ecx, [ebp - 0x110]
call fcn.0054d46f
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x12c]
call fcn.0054d328
push 0
push 0x40
mov edx, dword [ebp - 0x110]
push edx
call fcn.00555cac
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x110]
call fcn.0054d328
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.00401030
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret