Function at 0x457527
Capabilities:
Check for time delay via gettickcount
Create process on windows
Get common file path
Manipulate boot configuration
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
sub esp, 0x35c
lea ebp, [esp - 4]
mov eax, dword [0x4ed820]
xor eax, ebp
mov dword [ebp + 0x35c], eax
push 0x5c
mov eax, 0x4acf21
call fcn.004711ef
xor esi, esi
push esi
mov edi, ecx
push esi
push 0xb5
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x18], esi
call fcn.00402e62
mov ecx, eax
call fcn.00402ef3
mov ecx, edi
call fcn.004573a5
cmp dword [edi + 4], esi
je 0x457cfa
mov ecx, dword [edi + 8]
cmp ecx, esi
je 0x457cfa
cmp dword [ecx + 0x1cc], esi
je 0x457597
call fcn.0045ba6e
mov ecx, eax
call fcn.00430663
push str.Start_SetLowConfigurationPCFlag
call fcn.00404d3e
pop ecx
mov ecx, edi
call fcn.0045619e
push str.End_SetLowConfigurationPCFlag
call fcn.00404d3e
mov dword [esp], str.Start_ClearOldSkin
call fcn.00404d3e
pop ecx
mov ecx, edi
call fcn.00456d5c
push str.End_ClearOldSkin
call fcn.00404d3e
mov dword [esp], str.Start_CheckHomePageForOldVer
call fcn.00404d3e
pop ecx
mov ecx, edi
call fcn.00456466
push str.End_CheckHomePageForOldVer
call fcn.00404d3e
lea eax, [ebp]
push eax
mov dword [ebp], 0x114
call fcn.00403cef
pop ecx
pop ecx
test eax, eax
je 0x457774
cmp dword [ebp + 4], 6
jne 0x457615
cmp dword [ebp + 8], 4
je 0x457628
cmp dword [ebp + 4], 0xa
jne 0x457774
cmp dword [ebp + 8], esi
jne 0x457774
call fcn.00456133
test eax, eax
jne 0x457774
lea eax, [ebp - 0x14]
push eax
push 0x2001f
push esi
push str.SOFTWARE360SafeCoop
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x14], esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x457774
push 4
pop ebx
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x18]
push eax
push esi
push str.Bcdedit
push dword [ebp - 0x14]
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x28], ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp dword [ebp - 0x18], ebx
jne 0x457690
cmp dword [ebp - 0x20], 1
je 0x45776b
xor eax, eax
push 0x206
mov word [ebp + 0x114], ax
lea eax, [ebp + 0x116]
push esi
push eax
call fcn.004701a0
mov ebx, dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
add esp, 0xc
push 0x104
lea eax, [ebp + 0x114]
push eax
call ebx
lea eax, [ebp + 0x114]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
mov edi, dword [sym.imp.SHLWAPI.dll_PathAppendW]
push str.Sysnative
lea eax, [ebp + 0x114]
push eax
call edi
lea eax, [ebp + 0x114]
push eax
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
jne 0x457702
push 0x104
lea eax, [ebp + 0x114]
push eax
call ebx
push str.bcdedit.exe
lea eax, [ebp + 0x114]
push eax
call edi
mov ebx, dword [sym.imp.SHELL32.dll_ShellExecuteW]
push esi
push esi
push str._set_bootmgr_flightsigning_on
lea eax, [ebp + 0x114]
push eax
mov edi, str.open
push edi
push esi
call ebx
cmp eax, 0x20
jbe 0x457768
push esi
push esi
push str._set_flightsigning_on
lea eax, [ebp + 0x114]
push eax
push edi
push esi
call ebx
push 4
lea eax, [ebp - 0x30]
push eax
push 4
push str.Bcdedit
push str.SOFTWARE360SafeCoop
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x30], 1
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
mov edi, dword [ebp - 0x24]
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push str.Start_SetHomePage
call fcn.00404d3e
pop ecx
mov ecx, dword [edi + 8]
call fcn.0045bac6
mov ecx, dword [edi + 8]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x20], esi
call fcn.0045b9ee
mov ebx, str.TRUE
test eax, eax
jne 0x45781d
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x1c]
push eax
call fcn.004567d8
push ebx
mov ecx, eax
mov dword [ebp - 4], esi
mov dword [ebp - 0x18], 1
call fcn.00410377
test eax, eax
jne 0x4577de
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x30]
push eax
call fcn.004567f6
mov eax, dword [eax]
cmp dword [eax - 0xc], esi
mov dword [ebp - 0x18], 3
mov byte [ebp - 0xd], 1
jg 0x4577e2
mov byte [ebp - 0xd], 0
test byte [ebp - 0x18], 2
je 0x4577f7
mov ecx, dword [ebp - 0x30]
and dword [ebp - 0x18], 0xfffffffd
add ecx, 0xfffffff0
call fcn.0040290e
or dword [ebp - 4], 0xffffffff
test byte [ebp - 0x18], 1
je 0x45780c
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.0040290e
cmp byte [ebp - 0xd], 0
je 0x45781d
xor eax, eax
inc eax
mov dword [ebp - 0x20], eax
mov dword [0x4f18f0], eax
cmp dword [0x4f18f0], esi
jne 0x4578ab
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x1c]
push eax
call fcn.0043ca44
mov eax, dword [eax]
cmp dword [eax - 0xc], esi
mov ecx, dword [ebp - 0x1c]
setne byte [ebp - 0xd]
add ecx, 0xfffffff0
call fcn.0040290e
cmp byte [ebp - 0xd], 0
je 0x45788d
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 0xb4], esi
je 0x45789f
lea eax, [ebp - 0x1c]
push eax
call fcn.004567d8
push ebx
mov ecx, eax
mov dword [ebp - 4], 1
call fcn.00410377
mov ecx, dword [ebp - 0x1c]
mov ebx, eax
neg ebx
sbb bl, bl
or dword [ebp - 4], 0xffffffff
add ecx, 0xfffffff0
inc bl
call fcn.0040290e
test bl, bl
jmp 0x457893
cmp dword [0x4f1898], esi
je 0x45789f
mov dword [0x4f18f0], 1
cmp dword [0x4f18f0], esi
je 0x457957
cmp dword [ebp - 0x20], esi
je 0x457912
push 0x4f39f8
lea ecx, [ebp - 0x18]
call fcn.004028e9
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x1c]
push eax
mov dword [ebp - 4], 2
call fcn.004567f6
push dword [eax]
lea eax, [ebp - 0x18]
push str.https:__hao.360.com__srclmls_s
push eax
mov byte [ebp - 4], 3
call fcn.00403ac2
mov ecx, dword [ebp - 0x1c]
add esp, 0xc
add ecx, 0xfffffff0
mov byte [ebp - 4], 2
call fcn.0040290e
push 1
lea eax, [ebp - 0x18]
push str.Setup
push eax
call fcn.0046c712
mov ecx, eax
call fcn.0046c784
mov ecx, dword [ebp - 0x18]
jmp 0x45794b
push str.A766C3B3_3BC3_4ea6_A5A3_FFDB3F4974AE:setuppok_n
call fcn.00404d3e
lea ecx, [ebp - 0x20]
mov dword [esp], str.https:__hao.360.com__safe
call fcn.004025d8
push esi
lea eax, [ebp - 0x20]
push str.Setup
push eax
mov dword [ebp - 4], 4
call fcn.0046c712
mov ecx, eax
call fcn.0046c784
mov ecx, dword [ebp - 0x20]
or dword [ebp - 4], 0xffffffff
add ecx, 0xfffffff0
call fcn.0040290e
push str.End_SetHomePage
call fcn.00404d3e
pop ecx
mov ecx, dword [edi + 8]
mov dword [ebp - 0x2c], esi
call fcn.0045b9ee
test eax, eax
jne 0x45797a
mov dword [ebp - 0x2c], 1
jmp 0x4579e5
mov ecx, dword [edi + 8]
call fcn.0045ba49
push eax
lea ecx, [ebp - 0x1c]
call fcn.00403c4d
xor eax, eax
lea edi, [ebp + 0x350]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
mov edi, dword [ebp - 0x1c]
lea eax, [ebp + 0x356]
push eax
lea eax, [ebp + 0x354]
push eax
lea eax, [ebp + 0x352]
push eax
lea eax, [ebp + 0x350]
push eax
push str._d._d._d._d
push edi
call fcn.00473efc
add esp, 0x18
cmp eax, 4
jne 0x4579da
cmp word [ebp + 0x350], 0xb
jae 0x4579da
mov dword [ebp - 0x2c], 1
lea ecx, [edi - 0x10]
call fcn.0040290e
mov edi, dword [ebp - 0x24]
push 0x4f39f8
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], esi
call fcn.004028e9
lea eax, [ebp - 0x38]
push eax
push 0xf013f
push esi
push str.SoftwareMicrosoftWindows_NTCurrentVersion
mov ebx, reloc.OLEAUT32.dll_SysReAllocString
push ebx
mov dword [ebp - 4], 5
mov dword [ebp - 0x3c], 0x40c
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x457aba
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x34]
push eax
push esi
push esi
push str.InstallDate
push dword [ebp - 0x38]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x457aba
push dword [ebp - 0x34]
lea eax, [ebp - 0x14]
push 0x4bb6e0
push eax
call fcn.00403ac2
add esp, 0xc
push str.WinInstallDate
lea ecx, [ebp - 0x20]
call fcn.0045686c
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x1c]
push eax
mov byte [ebp - 4], 6
call fcn.0043281a
add esp, 0xc
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 7
call fcn.00401d9d
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.0040290e
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
mov byte [ebp - 4], 5
call fcn.0040290e
push dword [ebp - 0x14]
push esi
push 0xa1
call fcn.00402e62
mov ecx, eax
call fcn.00402ef3
push 4
lea eax, [ebp - 0x2c]
push eax
push 4
push str.360Preview
push str.Software360Safe_safemon
push ebx
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
push esi
push esi
push 0xd1
call fcn.00402e62
mov ecx, eax
call fcn.00402ef3
mov ecx, dword [edi + 8]
call fcn.0045bac6
mov ecx, dword [edi + 8]
mov ebx, eax
call fcn.0045b9ee
mov ecx, ebx
mov dword [ebp - 0x40], eax
call fcn.0043c9a3
push 4
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x40]
push eax
push 4
push str.setuptype
mov edi, str.SOFTWARE360Safe_stat
push edi
mov ebx, reloc.OLEAUT32.dll_SysReAllocString
push ebx
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
push 4
lea eax, [ebp - 0x44]
push eax
push 4
push str.setup_updatemode
push edi
push ebx
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
call fcn.0045b9ee
test eax, eax
jne 0x457bda
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x60]
push eax
push str.setup_time
push edi
push ebx
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x4c], 4
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
test eax, eax
jne 0x457b78
cmp dword [ebp - 0x28], esi
jne 0x457bda
lea eax, [ebp - 0x5c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
push 0x32
lea eax, [ebp + 0x31c]
push esi
push eax
call fcn.004701a0
movzx eax, word [ebp - 0x56]
push eax
movzx eax, word [ebp - 0x5a]
push eax
movzx eax, word [ebp - 0x5c]
push eax
push str._.4d_.2d_.2d
lea eax, [ebp + 0x31c]
push 9
push eax
call fcn.0047508d
lea eax, [ebp + 0x31c]
push eax
call fcn.004718b1
add esp, 0x28
push 4
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x48]
push eax
push 4
push str.setup_time
push edi
push ebx
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, dword [ebp - 0x24]
mov ecx, dword [edi + 8]
mov ebx, eax
call fcn.0045bbb8
mov ecx, ebx
sub ecx, eax
cmp ebx, eax
ja 0x457bf6
dec ecx
push ecx
push str.ElapseTickCount__BeforeCallPlugin___StartExtract___u
call fcn.00404d3e
pop ecx
pop ecx
mov ecx, dword [edi + 8]
call fcn.0045bac6
mov ecx, eax
call fcn.0043c9ca
mov dword [0x4f1844], eax
mov ecx, dword [edi + 8]
call fcn.0045ba5f
cmp eax, esi
je 0x457c29
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp eax, ebx
jbe 0x457c37
sub eax, ebx
jmp 0x457c3a
sub eax, ebx
dec eax
push eax
push str.ElapseTickCount__AfterCallPlugin___BeforeCallPlugin___u
call fcn.00404d3e
pop ecx
pop ecx
call fcn.0040a4d6
cmp eax, 1
je 0x457c83
cmp eax, 0x41
je 0x457c83
cmp eax, 0x71
je 0x457c83
cmp eax, 0x51
je 0x457c83
cmp eax, 0x61
je 0x457c83
cmp eax, 7
je 0x457c83
cmp eax, 0x47
je 0x457c83
cmp eax, 8
je 0x457c83
cmp eax, 0x48
je 0x457c83
cmp eax, 3
je 0x457c83
cmp eax, 0x43
jne 0x457c8a
mov ecx, edi
call fcn.0045654c
push dword [edi + 0xc]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x457ca7
push esi
push esi
push 0x3448
push dword [edi + 0xc]
call dword [sym.imp.USER32.dll_PostMessageW]
mov ecx, dword [edi + 8]
call fcn.0045bac6
mov ecx, eax
call fcn.0043c9a3
mov ecx, dword [edi + 8]
call fcn.0045bac6
mov ecx, eax
call fcn.0043c99f
lea eax, [ebp - 0x68]
push eax
mov ecx, 0x4f18a0
call fcn.00467409
push esi
push dword [ebp - 0x68]
push 0xa5
call fcn.00402e62
mov ecx, eax
call fcn.00402ef3
mov ecx, edi
call fcn.0045629c
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
call fcn.0040290e
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x35c]
xor ecx, ebp
call fcn.0047021a
add ebp, 0x360
leave
ret