Function at 0x454a90
Capabilities:
Check if file exists
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2e4
mov eax, dword [0x54c384]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0
call fcn.004c82ab
add esp, 4
mov dword [ebp - 0x2c8], edx
mov esi, eax
mov dword [ebp - 0x290], 0
lea eax, [ebp - 0x274]
mov dword [ebp - 0x2c4], 4
mov dword [ebp - 0x274], 4
push eax
lea eax, [ebp - 0x290]
push eax
lea eax, [ebp - 0x2c4]
push eax
push str.alivetime
push str.Software360360huabao
push SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
mov edi, dword [ebp - 0x290]
mov ecx, esi
sub ecx, edi
mov eax, 0xc22e4507
imul ecx
add edx, ecx
sar edx, 0x10
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
cmp ebx, 0xf
jle 0x454b52
push edi
push dword [ebp - 0x2c8]
push esi
push 0xa6
push str.UnInstallUtil::RestoreUserWallpaper
push str.__s__d___dwCurTime:__d__dwInstallTime:__d
call fcn.0041f720
add esp, 0x18
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004bdaf8
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [ebp - 0x298], 0
mov word [ebp - 0x2a8], ax
mov edx, str.Software360360huabao
lea eax, [ebp - 0x2a8]
mov dword [ebp - 0x294], 7
push eax
push str.user_wallpaper_path
mov ecx, SysReAllocString
call fcn.0040ffe0
add esp, 8
test eax, eax
je 0x4552ed
cmp dword [ebp - 0x298], 0
je 0x454f54
cmp dword [ebp - 0x294], 8
lea eax, [ebp - 0x2a8]
cmovae eax, dword [ebp - 0x2a8]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x454f54
call fcn.0040eba0
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
lea eax, [ebp - 0x274]
push eax
push 0x4e7890
push 1
push 0
push 0x4e7880
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov eax, dword [ebp - 0x274]
lea edx, [ebp - 0x2a8]
cmp dword [ebp - 0x294], 8
push 0
cmovae edx, dword [ebp - 0x2a8]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x14]
test eax, eax
jns 0x454da4
push str.https:__dd.browser.360.cn_static_a_1286.3246.gif__referer
lea ecx, [ebp - 0x28c]
call fcn.00402f10
lea esi, [ebp - 0x32]
mov ecx, 2
mov eax, 0xcccccccd
sub esi, 2
mul ecx
shr edx, 3
lea eax, [edx + edx*4]
add eax, eax
sub ecx, eax
add ecx, 0x30
mov word [esi], cx
mov ecx, edx
test ecx, ecx
jne 0x454c30
mov word [ebp - 0x2e0], dx
mov eax, 7
lea edx, [ebp - 0x32]
mov dword [ebp - 0x2d0], ecx
mov dword [ebp - 0x2cc], eax
cmp esi, edx
je 0x454c8e
mov eax, edx
lea ecx, [ebp - 0x2e0]
sub eax, esi
sar eax, 1
push eax
push esi
call fcn.00403e30
mov ecx, dword [ebp - 0x2d0]
mov eax, dword [ebp - 0x2cc]
mov ebx, dword [ebp - 0x2e0]
lea edx, [ebp - 0x2e0]
mov esi, dword [ebp - 0x27c]
cmp eax, 8
mov eax, dword [ebp - 0x278]
cmovae edx, ebx
mov dword [ebp - 0x2c8], esi
sub eax, esi
cmp ecx, eax
ja 0x454cf4
cmp dword [ebp - 0x278], 8
lea edi, [esi + ecx]
lea eax, [ecx + ecx]
mov dword [ebp - 0x27c], edi
push eax
mov eax, dword [ebp - 0x2c8]
lea esi, [ebp - 0x28c]
cmovae esi, dword [ebp - 0x28c]
push edx
lea eax, [esi + eax*2]
push eax
call fcn.004c0040
add esp, 0xc
xor eax, eax
mov word [esi + edi*2], ax
jmp 0x454d15
push ecx
push edx
mov byte [ebp - 0x2c8], 0
push dword [ebp - 0x2c8]
push ecx
lea ecx, [ebp - 0x28c]
call fcn.00404fc0
mov ebx, dword [ebp - 0x2e0]
mov eax, dword [ebp - 0x2cc]
cmp eax, 8
jb 0x454d4f
lea ecx, [eax*2 + 2]
mov eax, ebx
cmp ecx, 0x1000
jb 0x454d45
mov ebx, dword [ebx - 4]
add ecx, 0x23
sub eax, ebx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x455388
push ecx
push ebx
call fcn.004bdd39
add esp, 8
push 0
mov dl, 1
lea ecx, [ebp - 0x28c]
call fcn.00412a10
mov edx, dword [ebp - 0x278]
add esp, 4
cmp edx, 8
jb 0x45533b
mov ecx, dword [ebp - 0x28c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4552e1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x455388
jmp 0x4552e1
mov eax, dword [ebp - 0x274]
push 0xf
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov eax, dword [ebp - 0x274]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
push 4
lea eax, [ebp - 0x2c8]
mov dword [ebp - 0x2c8], 1
push eax
push 4
push str.play_last_type_detail
push str.Software360360huabaoDynamicWallpaper
push SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
push str.https:__dd.browser.360.cn_static_a_1286.3246.gif__referer
lea ecx, [ebp - 0x20]
call fcn.00402f10
lea esi, [ebp - 0x32]
xor ecx, ecx
mov eax, 0xcccccccd
sub esi, 2
mul ecx
shr edx, 3
lea eax, [edx + edx*4]
add eax, eax
sub ecx, eax
add ecx, 0x30
mov word [esi], cx
mov ecx, edx
test ecx, ecx
jne 0x454e00
mov word [ebp - 0x28c], dx
mov eax, 7
lea edx, [ebp - 0x32]
mov dword [ebp - 0x27c], ecx
mov dword [ebp - 0x278], eax
cmp esi, edx
je 0x454e5e
mov eax, edx
lea ecx, [ebp - 0x28c]
sub eax, esi
sar eax, 1
push eax
push esi
call fcn.00403e30
mov ecx, dword [ebp - 0x27c]
mov eax, dword [ebp - 0x278]
mov esi, dword [ebp - 0x10]
lea edx, [ebp - 0x28c]
cmp eax, 8
mov dword [ebp - 0x2c8], esi
mov eax, dword [ebp - 0xc]
cmovae edx, dword [ebp - 0x28c]
sub eax, esi
cmp ecx, eax
ja 0x454eb0
cmp dword [ebp - 0xc], 8
lea edi, [esi + ecx]
lea eax, [ecx + ecx]
mov dword [ebp - 0x10], edi
push eax
mov eax, dword [ebp - 0x2c8]
lea esi, [ebp - 0x20]
cmovae esi, dword [ebp - 0x20]
push edx
lea eax, [esi + eax*2]
push eax
call fcn.004c0040
add esp, 0xc
xor eax, eax
mov word [esi + edi*2], ax
jmp 0x454ec8
push ecx
push edx
mov byte [ebp - 0x2c8], 0
push dword [ebp - 0x2c8]
push ecx
lea ecx, [ebp - 0x20]
call fcn.00404fc0
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x28c]
cmp eax, 8
jb 0x454f08
lea edx, [eax*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x454efe
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45538d
push edx
push ecx
call fcn.004bdd39
add esp, 8
push 0
mov dl, 1
lea ecx, [ebp - 0x20]
call fcn.00412a10
mov edx, dword [ebp - 0xc]
add esp, 4
cmp edx, 8
jb 0x45510d
mov ecx, dword [ebp - 0x20]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x455103
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45538d
jmp 0x455103
push 0x3a
xor eax, eax
mov dword [ebp - 0x27c], 0
push str.https:__dd.browser.360.cn_static_a_1286.3246.gif__referer
lea ecx, [ebp - 0x28c]
mov dword [ebp - 0x278], 7
mov word [ebp - 0x28c], ax
call fcn.00403e30
lea esi, [ebp - 0x32]
mov ecx, 1
nop dword [eax + eax]
mov eax, 0xcccccccd
sub esi, 2
mul ecx
shr edx, 3
lea eax, [edx + edx*4]
add eax, eax
sub ecx, eax
add ecx, 0x30
mov word [esi], cx
mov ecx, edx
test ecx, ecx
jne 0x454f90
mov word [ebp - 0x20], dx
mov eax, 7
lea edx, [ebp - 0x32]
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], eax
cmp esi, edx
je 0x454fdc
mov eax, edx
lea ecx, [ebp - 0x20]
sub eax, esi
sar eax, 1
push eax
push esi
call fcn.00403e30
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
mov esi, dword [ebp - 0x27c]
lea edx, [ebp - 0x20]
cmp eax, 8
mov dword [ebp - 0x2c8], esi
mov eax, dword [ebp - 0x278]
cmovae edx, dword [ebp - 0x20]
sub eax, esi
cmp ecx, eax
ja 0x45503a
cmp dword [ebp - 0x278], 8
lea edi, [ecx + esi]
lea eax, [ecx + ecx]
mov dword [ebp - 0x27c], edi
push eax
mov eax, dword [ebp - 0x2c8]
lea esi, [ebp - 0x28c]
cmovae esi, dword [ebp - 0x28c]
push edx
lea eax, [esi + eax*2]
push eax
call fcn.004c0040
add esp, 0xc
xor eax, eax
mov word [esi + edi*2], ax
jmp 0x455055
push ecx
push edx
mov byte [ebp - 0x2c8], 0
push dword [ebp - 0x2c8]
push ecx
lea ecx, [ebp - 0x28c]
call fcn.00404fc0
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x20]
cmp eax, 8
jb 0x45508f
lea edx, [eax*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x455085
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x455392
push edx
push ecx
call fcn.004bdd39
add esp, 8
push 0
mov dl, 1
lea ecx, [ebp - 0x28c]
call fcn.00412a10
add esp, 4
lea eax, [ebp - 0x2a8]
cmp dword [ebp - 0x294], 8
cmovae eax, dword [ebp - 0x2a8]
push eax
push 0xcc
push str.UnInstallUtil::RestoreUserWallpaper
push str.__s__d___get_user_wallpaper_path_err:__s
call fcn.0041f720
mov edx, dword [ebp - 0x278]
add esp, 0x10
cmp edx, 8
jb 0x45510d
mov ecx, dword [ebp - 0x28c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x455103
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x455392
push edx
push ecx
call fcn.004bdd39
add esp, 8
push 0x3a
xor eax, eax
mov dword [ebp - 0x2b0], 0
push str.https:__dd.browser.360.cn_static_a_1286.1453.gif__referer
lea ecx, [ebp - 0x2c0]
mov dword [ebp - 0x2ac], 7
mov word [ebp - 0x2c0], ax
call fcn.00403e30
lea ecx, [ebp - 6]
test ebx, ebx
jns 0x455172
neg ebx
mov eax, 0xcccccccd
sub ecx, 2
mul ebx
shr edx, 3
lea eax, [edx + edx*4]
add eax, eax
sub ebx, eax
add ebx, 0x30
mov word [ecx], bx
mov ebx, edx
test ebx, ebx
jne 0x455145
add ecx, 0xfffffffe
mov eax, 0x2d
mov word [ecx], ax
jmp 0x455192
mov eax, 0xcccccccd
sub ecx, 2
mul ebx
shr edx, 3
lea eax, [edx + edx*4]
add eax, eax
sub ebx, eax
add ebx, 0x30
mov word [ecx], bx
mov ebx, edx
test ebx, ebx
jne 0x455172
xor esi, esi
xor edx, edx
mov word [ebp - 0x2e0], si
mov eax, 7
lea esi, [ebp - 6]
mov dword [ebp - 0x2d0], edx
mov dword [ebp - 0x2cc], eax
cmp ecx, esi
je 0x4551d4
mov eax, esi
sub eax, ecx
sar eax, 1
push eax
push ecx
lea ecx, [ebp - 0x2e0]
call fcn.00403e30
mov edx, dword [ebp - 0x2d0]
mov eax, dword [ebp - 0x2cc]
mov ebx, dword [ebp - 0x2e0]
lea ecx, [ebp - 0x2e0]
mov esi, dword [ebp - 0x2b0]
cmp eax, 8
mov eax, dword [ebp - 0x2ac]
cmovae ecx, ebx
mov dword [ebp - 0x2c8], esi
sub eax, esi
cmp edx, eax
ja 0x45523a
cmp dword [ebp - 0x2ac], 8
lea edi, [edx + esi]
lea eax, [edx + edx]
mov dword [ebp - 0x2b0], edi
push eax
mov eax, dword [ebp - 0x2c8]
lea esi, [ebp - 0x2c0]
cmovae esi, dword [ebp - 0x2c0]
push ecx
lea eax, [esi + eax*2]
push eax
call fcn.004c0040
add esp, 0xc
xor eax, eax
mov word [esi + edi*2], ax
jmp 0x45525b
push edx
push ecx
mov byte [ebp - 0x2c8], 0
lea ecx, [ebp - 0x2c0]
push dword [ebp - 0x2c8]
push edx
call fcn.00404fc0
mov ebx, dword [ebp - 0x2e0]
mov eax, dword [ebp - 0x2cc]
cmp eax, 8
jb 0x455295
lea ecx, [eax*2 + 2]
mov eax, ebx
cmp ecx, 0x1000
jb 0x45528b
mov ebx, dword [ebx - 4]
add ecx, 0x23
sub eax, ebx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x455397
push ecx
push ebx
call fcn.004bdd39
add esp, 8
push 0
mov dl, 1
lea ecx, [ebp - 0x2c0]
call fcn.00412a10
mov edx, dword [ebp - 0x2ac]
add esp, 4
cmp edx, 8
jb 0x45533b
mov ecx, dword [ebp - 0x2c0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4552e1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x455397
push edx
push ecx
call fcn.004bdd39
add esp, 8
jmp 0x45533b
push 0x20a
lea eax, [ebp - 0x270]
push 0
push eax
call fcn.004c05c0
mov esi, dword [sym.imp.USER32.dll_SystemParametersInfoW]
lea eax, [ebp - 0x270]
add esp, 0xc
push 0
push eax
push 0x104
push 0x73
call esi
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x45533b
push 1
lea eax, [ebp - 0x270]
push eax
push 0
push 0x14
call esi
mov edx, dword [ebp - 0x294]
cmp edx, 8
jb 0x455377
mov ecx, dword [ebp - 0x2a8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x45536d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45539c
push edx
push ecx
call fcn.004bdd39
add esp, 8
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004bdaf8
mov esp, ebp
pop ebp
ret
call fcn.004c8da3
call fcn.004c8da3
call fcn.004c8da3
call fcn.004c8da3
call fcn.004c8da3
int3