Function at 0x4605b0
Capabilities:
Check if file exists
Delete file
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4f5b51
mov eax, dword fs:[0]
push eax
sub esp, 0x51c
mov eax, dword [0x54c1b4]
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 ebx, ecx
mov dword [ebp - 0x510], ebx
mov dword [ebp - 0x514], 0
call fcn.00461340
call fcn.00461420
lea eax, [ebp - 0x43c]
push eax
call fcn.0040efa0
add esp, 4
xor edi, edi
mov dword [ebp - 4], edi
xor ecx, ecx
mov dword [ebp - 0x4b4], 7
mov dword [ebp - 0x4b8], edi
mov word [ebp - 0x4c8], cx
mov byte [ebp - 4], 1
test byte [0x550018], 1
jne 0x46064d
or dword [0x550018], 1
call fcn.004443f0
push 0x4f70a0
call fcn.004bd58e
add esp, 4
push 0xffffffffffffffff
lea esi, [ebx + 0x24]
push edi
push 0x54ff68
mov ecx, esi
mov dword [ebp - 0x518], esi
call fcn.004082e0
mov ecx, dword [ebx + 0x34]
mov edi, 8
cmp dword [esi + 0x14], edi
jb 0x460676
mov eax, dword [esi]
jmp 0x460678
mov eax, esi
cmp word [eax + ecx*2 - 2], 0x5c
je 0x46068e
push 1
mov eax, 0x5118c0
mov ecx, esi
call fcn.00407820
xor edx, edx
push 0x206
push edx
lea eax, [ebp - 0x41e]
push eax
mov dword [ebx + 0x108], 1
mov word [ebp - 0x420], dx
call fcn.004c3610
mov eax, dword [ebp - 0x43c]
add esp, 0xc
cmp dword [ebp - 0x428], edi
jae 0x4606ca
lea eax, [ebp - 0x43c]
push eax
push 0x104
lea ecx, [ebp - 0x420]
push ecx
push 0x51bf50
push str.UpdateStep
push str.QuietUpdate
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
je 0x4611ff
lea edx, [ebp - 0x420]
push str.HasDownloadUpdateZip
push edx
call fcn.004bc356
add esp, 8
test eax, eax
jne 0x4611ff
mov eax, dword [ebp - 0x43c]
cmp dword [ebp - 0x428], edi
jae 0x460724
lea eax, [ebp - 0x43c]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
push eax
push 0
push 0x5184a8
push str.UpdateParam
call esi
mov ebx, eax
mov eax, dword [ebp - 0x43c]
cmp dword [ebp - 0x428], edi
jae 0x46074f
lea eax, [ebp - 0x43c]
push eax
push 0
push str.silentupgrade
push str.UpdateParam
call esi
cmp dword [ebp - 0x428], 8
mov edi, eax
mov eax, dword [ebp - 0x43c]
jae 0x460775
lea eax, [ebp - 0x43c]
push eax
push 0
push str.upgradesetup
push str.UpdateParam
call esi
test ebx, ebx
jne 0x4611b4
cmp edi, 1
jne 0x4611b4
test eax, eax
jne 0x4611b4
push 0x206
push eax
lea ecx, [ebp - 0x216]
push ecx
mov word [ebp - 0x218], ax
call fcn.004c3610
mov eax, dword [ebp - 0x43c]
add esp, 0xc
cmp dword [ebp - 0x428], 8
jae 0x4607ce
lea eax, [ebp - 0x43c]
push eax
push 0x104
lea edx, [ebp - 0x218]
push edx
push 0x5118c4
push str.version
push str.UpdateParam
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
jne 0x460848
mov eax, dword [0x54fee0]
test eax, eax
je 0x46082d
cmp dword [eax + 8], 4
mov edi, eax
jl 0x46082d
push 0x51be7c
push 4
push ecx
mov esi, 0x8b
mov ecx, 0x51bf8c
mov eax, esp
mov dword [ebp - 0x508], esp
push eax
call fcn.0042fa10
push edi
mov ecx, esi
call fcn.0042d670
lea ecx, [ebp - 0x4c8]
call fcn.00407bb0
lea ecx, [ebp - 0x43c]
call fcn.00407bb0
jmp 0x461216
mov eax, 7
xor esi, esi
xor ecx, ecx
mov dword [ebp - 0x444], eax
mov dword [ebp - 0x448], esi
mov word [ebp - 0x458], cx
xor edx, edx
mov dword [ebp - 0x460], eax
mov dword [ebp - 0x464], esi
mov word [ebp - 0x474], dx
lea edi, [ebp - 0x490]
mov byte [ebp - 4], 3
call fcn.0040f010
mov eax, edi
push eax
mov eax, str.UpdateScript.XML
mov byte [ebp - 4], 4
call fcn.00407980
cmp dword [ebp - 0x47c], 8
mov ecx, dword [ebp - 0x490]
jae 0x4608aa
mov ecx, edi
lea edx, [ebp - 0x50c]
push edx
call fcn.00467790
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x50c]
push eax
lea ecx, [ebp - 0x4ac]
call fcn.00408170
mov byte [ebp - 4], 6
mov dword [ebp - 0x514], 1
call fcn.00448650
lea ecx, [ebp - 0x4ac]
call fcn.004417a0
test al, al
je 0x460901
call fcn.00448650
push eax
call fcn.00441dd0
test al, al
je 0x460901
xor bl, bl
jmp 0x460903
mov bl, 1
lea ecx, [ebp - 0x4ac]
mov dword [ebp - 4], 5
call fcn.00401ea0
test bl, bl
je 0x46095f
mov eax, dword [0x54fee0]
cmp eax, esi
je 0x460b8d
cmp dword [eax + 8], 2
mov edi, eax
jl 0x460b8d
push 0x51be7c
push 2
push ecx
mov ecx, esp
mov dword [ebp - 0x508], esp
push ecx
mov ecx, 0x518fc4
mov esi, 0x99
call fcn.0042fa10
push edi
mov ecx, esi
call fcn.0042d670
jmp 0x460b8d
call fcn.00448650
push eax
call fcn.00441880
call fcn.00448650
mov ecx, dword [ebp - 0x510]
push 0xffffffffffffffff
lea esi, [eax + 0x40]
push 0
add ecx, 8
push esi
mov dword [ebp - 0x508], ecx
call fcn.004082e0
cmp dword [esi + 0x14], 8
jb 0x460995
mov eax, dword [esi]
jmp 0x460997
mov eax, esi
lea ecx, [ebp - 0x218]
lea ecx, [ecx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4609c6
test dx, dx
je 0x4609c2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4609c6
add eax, 4
add ecx, 4
test dx, dx
jne 0x4609a0
xor eax, eax
jmp 0x4609cb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x460a15
mov eax, dword [0x54fee0]
test eax, eax
je 0x460b8d
cmp dword [eax + 8], 2
mov edi, eax
jl 0x460b8d
push 0x51be7c
push 2
push ecx
mov edx, esp
mov dword [ebp - 0x508], esp
push edx
mov ecx, 0x51bfa4
mov esi, 0xa1
call fcn.0042fa10
push edi
mov ecx, esi
call fcn.0042d670
jmp 0x460b8d
call fcn.00448650
push eax
call fcn.00442250
test al, al
jne 0x460a6a
mov eax, dword [0x54fee0]
test eax, eax
je 0x460b8d
cmp dword [eax + 8], 2
mov edi, eax
jl 0x460b8d
push 0x51be7c
push 2
push ecx
mov eax, esp
mov dword [ebp - 0x508], esp
push eax
mov ecx, 0x51beac
mov esi, 0xa6
call fcn.0042fa10
push edi
mov ecx, esi
call fcn.0042d670
jmp 0x460b8d
lea edi, [ebp - 0x4ac]
call fcn.0040f010
mov esi, dword [ebp - 0x510]
add esi, 0xc4
mov edi, eax
mov byte [ebp - 4], 7
mov dword [ebp - 0x528], esi
call fcn.00407a10
lea ecx, [ebp - 0x4ac]
mov byte [ebp - 4], 5
call fcn.00407bb0
call fcn.00448650
mov ebx, eax
call fcn.00442a40
call fcn.00448650
mov ebx, eax
call fcn.00442ab0
call fcn.00448650
mov ebx, eax
call fcn.00442ba0
mov esi, dword [ebp - 0x510]
lea ecx, [ebp - 0x458]
push ecx
lea ecx, [ebp - 0x474]
mov edx, esi
call fcn.00462b10
test al, al
jne 0x460b05
cmp dword [ebp - 0x444], 8
mov eax, dword [ebp - 0x458]
jae 0x460af8
lea eax, [ebp - 0x458]
push eax
push 0x51bfcc
mov edx, 0xb1
jmp 0x460b76
call fcn.00448650
mov ebx, dword [ebp - 0x518]
push ebx
lea edi, [eax + 0x1b4]
call fcn.004431f0
add esp, 4
call fcn.00448650
push ebx
lea ebx, [eax + 0x184]
call fcn.00443340
add esp, 4
lea edx, [ebp - 0x458]
push edx
lea ecx, [ebp - 0x474]
mov edx, esi
call fcn.00465d80
test al, al
jne 0x460c18
mov ecx, esi
call fcn.00467160
cmp dword [ebp - 0x444], 8
mov eax, dword [ebp - 0x458]
jae 0x460b6b
lea eax, [ebp - 0x458]
push eax
push 0x51bfec
mov edx, 0xba
push 0x51be7c
mov esi, 2
mov eax, 0x54fee0
call fcn.0042c610
add esp, 0xc
lea eax, [ebp - 0x50c]
call fcn.00413620
lea ecx, [ebp - 0x490]
call fcn.00407bb0
lea ecx, [ebp - 0x474]
call fcn.00407bb0
lea ecx, [ebp - 0x458]
mov byte [ebp - 4], 1
call fcn.00407bb0
cmp dword [ebp - 0x428], 8
mov eax, dword [ebp - 0x43c]
jae 0x460bd2
lea eax, [ebp - 0x43c]
push eax
push 0x51bf50
push str.UpdateStep
push str.QuietUpdate
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov eax, dword [0x54fee0]
test eax, eax
je 0x46082d
cmp dword [eax + 8], 2
mov edi, eax
jl 0x46082d
push 0x51be7c
push 2
push ecx
mov esi, pe_nt_image_headers32
mov ecx, 0x51c1dc
jmp 0x460817
mov eax, dword [esi + 0x98]
test eax, eax
je 0x460c42
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, dword [esi + 0x98]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0x98], 0
lea ebx, [esi + 0x78]
mov edi, 8
cmp dword [ebx + 0x14], edi
jb 0x460c53
mov eax, dword [ebx]
jmp 0x460c55
mov eax, ebx
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x460cd5
lea edx, [ebp - 0x474]
push edx
mov edx, 0x51c00c
call fcn.00408960
lea eax, [ebp - 0x458]
push eax
mov edx, 0x51c014
call fcn.00408960
mov ecx, dword [ebp - 0x474]
cmp dword [ebp - 0x460], edi
jae 0x460c96
lea ecx, [ebp - 0x474]
mov eax, dword [ebp - 0x458]
cmp dword [ebp - 0x444], edi
jae 0x460caa
lea eax, [ebp - 0x458]
push ecx
push eax
push 0x51c030
push 0x51be7c
mov edx, 0xcc
mov esi, 2
mov eax, 0x54fee0
call fcn.0042c610
mov edi, dword [ebp - 0x510]
jmp 0x460da6
mov edi, dword [ebp - 0x510]
xor eax, eax
mov dword [ebp - 0x520], esi
lea esi, [ebp - 0x4ac]
mov edx, edi
mov dword [ebp - 0x524], eax
mov dword [ebp - 0x51c], eax
call fcn.0045fa20
push 0x54fec0
lea ecx, [ebp - 0x458]
push ecx
lea edx, [ebp - 0x524]
push edx
mov ecx, ebx
mov byte [ebp - 4], 8
call fcn.00402910
add esp, 0xc
test al, al
mov ecx, esi
sete byte [ebp - 0x501]
mov byte [ebp - 4], 5
call fcn.00407bb0
cmp byte [ebp - 0x501], 0
je 0x460da9
mov esi, 8
cmp dword [ebx + 0x14], esi
jb 0x460d46
mov ebx, dword [ebx]
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [ebp - 0x474]
push eax
mov edx, 0x51c074
call fcn.00408960
mov ecx, dword [ebp - 0x474]
cmp dword [ebp - 0x460], esi
jae 0x460d72
lea ecx, [ebp - 0x474]
mov eax, dword [ebp - 0x458]
cmp dword [ebp - 0x444], esi
jae 0x460d86
lea eax, [ebp - 0x458]
push ecx
push eax
push 0x51c080
push 0x51be7c
mov edx, 0xd9
mov esi, 2
mov eax, 0x54fee0
call fcn.0042c610
add esp, 0x10
mov eax, dword [edi + 0x94]
test eax, eax
je 0x460dd3
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, dword [edi + 0x94]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi + 0x94], 0
lea ebx, [edi + 0x5c]
mov esi, 8
cmp dword [ebx + 0x14], esi
jb 0x460de4
mov eax, dword [ebx]
jmp 0x460de6
mov eax, ebx
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x460e4c
lea edx, [ebp - 0x474]
push edx
mov edx, 0x51c00c
call fcn.00408960
lea eax, [ebp - 0x458]
push eax
mov edx, 0x51c0c4
call fcn.00408960
mov ecx, dword [ebp - 0x474]
cmp dword [ebp - 0x460], esi
jae 0x460e27
lea ecx, [ebp - 0x474]
mov eax, dword [ebp - 0x458]
cmp dword [ebp - 0x444], esi
jae 0x460e3b
lea eax, [ebp - 0x458]
push ecx
push eax
push 0x51c0d4
mov edx, 0xef
jmp 0x460f03
xor eax, eax
lea esi, [ebp - 0x4ac]
mov edx, edi
mov dword [ebp - 0x524], eax
mov dword [ebp - 0x520], edi
mov dword [ebp - 0x51c], eax
call fcn.0045fa20
push 0x54fec0
lea ecx, [ebp - 0x458]
push ecx
lea edx, [ebp - 0x524]
push edx
mov ecx, ebx
mov byte [ebp - 4], 9
call fcn.00402910
add esp, 0xc
test al, al
mov ecx, esi
sete byte [ebp - 0x501]
mov byte [ebp - 4], 5
call fcn.00407bb0
cmp byte [ebp - 0x501], 0
je 0x460f1a
mov esi, 8
cmp dword [ebx + 0x14], esi
jb 0x460eb7
mov ebx, dword [ebx]
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [ebp - 0x474]
push eax
mov edx, 0x51c074
call fcn.00408960
mov ecx, dword [ebp - 0x474]
cmp dword [ebp - 0x460], esi
jae 0x460ee3
lea ecx, [ebp - 0x474]
mov eax, dword [ebp - 0x458]
cmp dword [ebp - 0x444], esi
jae 0x460ef7
lea eax, [ebp - 0x458]
push ecx
push eax
push 0x51c110
mov edx, 0xfc
push 0x51be7c
mov esi, 2
mov eax, 0x54fee0
call fcn.0042c610
add esp, 0x10
lea esi, [ebp - 0x500]
mov edx, edi
call fcn.0045fa20
push eax
mov eax, str.dataconfig.ini
lea ecx, [ebp - 0x4e4]
mov byte [ebp - 4], 0xa
call fcn.004070c0
add esp, 4
mov esi, eax
lea ecx, [ebp - 0x4ac]
push ecx
mov ecx, 0x54d674
mov byte [ebp - 4], 0xb
call fcn.00468170
mov ecx, 8
add esp, 4
cmp dword [esi + 0x14], ecx
jb 0x460f65
mov esi, dword [esi]
cmp dword [eax + 0x14], ecx
jb 0x460f6c
mov eax, dword [eax]
mov ebx, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push esi
push eax
push str.channel
push 0x511624
call ebx
lea ecx, [ebp - 0x4ac]
call fcn.00407bb0
lea ecx, [ebp - 0x4e4]
call fcn.00407bb0
lea ecx, [ebp - 0x500]
mov byte [ebp - 4], 5
call fcn.00407bb0
lea esi, [ebp - 0x4e4]
mov edx, edi
call fcn.0045fa20
push eax
mov eax, str.dataconfig.ini
lea ecx, [ebp - 0x500]
mov byte [ebp - 4], 0xc
call fcn.004070c0
add esp, 4
cmp dword [eax + 0x14], 8
jb 0x460fd2
mov eax, dword [eax]
push eax
push str.MediaTaskMgr.dll
push str.MediaTaskMgrModule
push 0x511624
call ebx
lea ecx, [ebp - 0x500]
call fcn.00407bb0
lea ecx, [ebp - 0x4e4]
mov byte [ebp - 4], 5
call fcn.00407bb0
lea esi, [ebp - 0x4e4]
mov edx, edi
call fcn.0045fa20
push eax
mov eax, str.WEMediaPlatform.exe
lea ecx, [ebp - 0x500]
mov byte [ebp - 4], 0xd
call fcn.004070c0
add esp, 4
cmp dword [eax + 0x14], 8
jb 0x46102b
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp - 0x500]
call fcn.00407bb0
lea ecx, [ebp - 0x4e4]
mov byte [ebp - 4], 5
call fcn.00407bb0
call fcn.00444350
mov dl, byte [eax + 0xfe]
mov byte [ebp - 0x514], dl
mov eax, dword [ebp - 0x514]
push eax
push edi
lea ecx, [ebp - 0x458]
call fcn.00466420
call fcn.00448650
mov ecx, dword [ebp - 0x518]
push ecx
lea edi, [eax + 0x1c4]
call fcn.004431f0
mov eax, dword [ebp - 0x528]
mov esi, 8
add esp, 4
cmp dword [eax + 0x14], esi
jb 0x46109c
mov eax, dword [eax]
push eax
call fcn.00402580
add esp, 4
call fcn.0040fb40
mov eax, dword [ebp - 0x43c]
cmp dword [ebp - 0x428], esi
jae 0x4610be
lea eax, [ebp - 0x43c]
push eax
push str.HasQuietUpdate
push str.UpdateStep
push str.QuietUpdate
call ebx
mov edi, dword [ebp - 0x43c]
cmp dword [ebp - 0x428], esi
jae 0x4610e4
lea edi, [ebp - 0x43c]
call fcn.00444350
add eax, 0x8c
cmp dword [eax + 0x14], esi
jb 0x4610f5
mov eax, dword [eax]
push edi
push eax
push str.OldVersion
push str.QuietUpdate
call ebx
mov ecx, dword [ebp - 0x43c]
cmp dword [ebp - 0x428], esi
jae 0x461117
lea ecx, [ebp - 0x43c]
mov eax, dword [ebp - 0x508]
cmp dword [eax + 0x14], esi
jb 0x461124
mov eax, dword [eax]
push ecx
push eax
push str.CurVersion
push str.QuietUpdate
call ebx
mov eax, dword [0x54fee0]
test eax, eax
je 0x46116b
cmp dword [eax + 8], 4
mov edi, eax
jl 0x46116b
push 0x51be7c
push 4
push ecx
mov edx, esp
mov dword [ebp - 0x508], esp
push edx
mov ecx, 0x51c1c8
mov esi, 0x113
call fcn.0042fa10
push edi
mov ecx, esi
call fcn.0042d670
lea eax, [ebp - 0x50c]
call fcn.00413620
lea ecx, [ebp - 0x490]
call fcn.00407bb0
lea ecx, [ebp - 0x474]
call fcn.00407bb0
lea ecx, [ebp - 0x458]
call fcn.00407bb0
lea ecx, [ebp - 0x4c8]
call fcn.00407bb0
lea ecx, [ebp - 0x43c]
call fcn.00407bb0
mov eax, 1
jmp 0x461218
mov eax, dword [0x54fee0]
test eax, eax
je 0x4611ed
cmp dword [eax + 8], 4
mov ebx, eax
jl 0x4611ed
push 0x51be7c
push 4
push ecx
mov eax, esp
mov dword [ebp - 0x508], esp
push eax
mov ecx, 0x51bf70
mov esi, 0x83
call fcn.0042fa10
push ebx
mov ecx, esi
call fcn.0042d670
cmp dword [ebp - 0x428], 8
jb 0x461216
mov ecx, dword [ebp - 0x43c]
push ecx
jmp 0x46120e
cmp dword [ebp - 0x428], edi
jb 0x461216
mov edx, dword [ebp - 0x43c]
push edx
call fcn.004bb4d8
add esp, 4
xor eax, eax
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.004bb4e3
mov esp, ebp
pop ebp
ret