Function at 0x414468
Capabilities:
Check if file exists
Create thread
Query or enumerate registry value
Read .ini file
Set registry value

Disassembly:
mov eax, 0x427b74
call fcn.004273d0
sub esp, 0xc94
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov esi, ecx
mov dword [ebp - 0xca0], esi
xor ebx, ebx
mov dword [ebp - 0x220], ebx
push dword [0x437120]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4144ea
mov eax, dword [esi + 8]
push str.4.0.0.6
push eax
call fcn.0041cf95
pop ecx
pop ecx
test eax, eax
jge 0x4144ea
lea eax, [ebp - 0x224]
push eax
push ebx
push ebx
push 0x41445e
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebp - 0x220], eax
push ebx
push 0x80
push 4
push ebx
push 1
push 0xc0000000
push dword [0x437120]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ecx, esi
call fcn.00414c7e
push 0x1e
push dword [ebp + 8]
mov ecx, dword [esi + 4]
call fcn.00419562
xor edx, edx
mov eax, dword [esi + 4]
mov eax, dword [eax + 4]
cmp eax, 7
jl 0x414513
cmp eax, 9
jg 0x414513
push 1
pop edx
mov word [ebp - 0x218], bx
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x216]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov dword [ebp - 4], ebx
push 0x103
lea eax, [ebp - 0x218]
push eax
push edx
call fcn.0040771a
add esp, 0xc
test eax, eax
je 0x414578
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xc70], eax
push eax
lea eax, [ebp - 0x218]
push eax
push str.PriorDefBro
push 0x432be8
mov ebx, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
call ebx
jmp 0x41457e
mov ebx, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
or dword [ebp - 4], 0xffffffff
mov eax, dword [esi + 4]
xor edi, edi
cmp dword [eax + 8], edi
jne 0x4145dc
push dword [esi + 0x18]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x414647
mov word [ebp - 0x42c], di
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x42a]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push dword [esi + 0x18]
push str.__s___tp:10__v:1
push 0x103
lea eax, [ebp - 0x42c]
push eax
call dword [sym.imp.MSVCRT.dll__snwprintf]
xor eax, eax
push eax
push eax
push eax
lea eax, [ebp - 0x42c]
jmp 0x41463e
mov eax, dword [esi + 8]
push str.4.0.0.0
push eax
call fcn.0041cf95
pop ecx
pop ecx
test eax, eax
jge 0x414647
push dword [esi + 0x18]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x414647
mov word [ebp - 0x634], di
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x632]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push dword [esi + 0x18]
push str.__s___tp:14
push 0x103
lea eax, [ebp - 0x634]
push eax
call dword [sym.imp.MSVCRT.dll__snwprintf]
push 0
push 0x4e20
push 0
lea eax, [ebp - 0x634]
push eax
call fcn.0041cacf
add esp, 0x20
mov ecx, esi
call fcn.00414d92
push 0x23
mov edi, dword [ebp + 8]
push edi
mov ecx, dword [esi + 4]
call fcn.00419562
push edi
mov ecx, esi
call fcn.00415460
push 0x41
push edi
mov ecx, dword [esi + 4]
call fcn.00419562
cmp dword [esi + 0x5c], 0
je 0x414679
push 0
jmp 0x41467b
push 1
mov ecx, esi
call fcn.0041312c
push edi
mov ecx, esi
call fcn.00415c1d
push 0x46
push edi
mov ecx, dword [esi + 4]
call fcn.00419562
mov ecx, esi
call fcn.00417e83
mov ecx, esi
call fcn.00415f81
push 0x4b
push edi
mov ecx, dword [esi + 4]
call fcn.00419562
mov ecx, esi
call fcn.0041676a
mov ecx, esi
call fcn.00416471
mov ecx, esi
call fcn.00416ceb
push 0x55
push edi
mov ecx, dword [esi + 4]
call fcn.00419562
mov eax, dword [esi + 4]
cmp dword [eax + 8], 0
jle 0x4147f3
and word [ebp - 0x840], 0
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x83e]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov dword [ebp - 0x638], 1
mov dword [ebp - 0x844], 0x104
lea eax, [ebp - 0x844]
push eax
lea eax, [ebp - 0x840]
push eax
lea eax, [ebp - 0x638]
push eax
push str.DownProgID
push str.Software360360se3
push SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
cmp word [ebp - 0x840], 0
jne 0x4147f3
mov eax, dword [0x42e50c]
mov dword [ebp - 0x848], eax
push dword [esi + 0x14]
push str._sextensionsExtDownloadExtDownload.ini
lea eax, [ebp - 0x848]
push eax
call fcn.0040959f
add esp, 0xc
push dword [ebp - 0x848]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4147e8
and word [ebp - 0xa50], 0
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0xa4e]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push dword [ebp - 0x848]
push 0x104
lea eax, [ebp - 0xa50]
push eax
push 0x434ee4
mov edi, str.DownProgID
push edi
push str.Download
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp word [ebp - 0xa50], 0
je 0x4147e8
lea eax, [ebp - 0xa50]
push eax
call dword [sym.imp.MSVCRT.dll_wcslen]
pop ecx
shl eax, 1
push eax
lea eax, [ebp - 0xa50]
push eax
push 1
push edi
push str.Software360360se3
push SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
lea ecx, [ebp - 0x848]
call fcn.00404c0d
mov ecx, esi
call fcn.00412de1
push 0x5a
push dword [ebp + 8]
mov ecx, dword [esi + 4]
call fcn.00419562
mov ecx, esi
call fcn.00412f7a
mov ecx, esi
call fcn.00413021
push 0x5f
push dword [ebp + 8]
mov ecx, dword [esi + 4]
call fcn.00419562
cmp dword [0x437094], 0
je 0x414951
push dword [esi + 0x10]
mov edi, 0x42e628
push edi
push str.UseSkin
push str.Main
call ebx
push dword [esi + 0x10]
push 0x432af8
push 0x432aec
push str.Path
call ebx
push dword [esi + 0x10]
push edi
push str.IE6Mode
push str.option
call ebx
push dword [esi + 0x10]
push edi
push str.IsIE6Setup
push str.option
call ebx
mov eax, dword [0x42e50c]
mov dword [ebp - 0xc60], eax
push str.360seie6.ini
push str.360se
mov eax, dword [esi + 4]
push dword [eax + 0x18]
push str._s_s_s
lea eax, [ebp - 0xc60]
push eax
call fcn.0040959f
add esp, 0x14
push dword [ebp - 0xc60]
mov ecx, esi
call fcn.00411fc7
push dword [ebp - 0xc60]
push edi
push str.UseSkin
push str.Main
call ebx
push dword [ebp - 0xc60]
push str.IE6Default
push 0x432aec
push str.Path
call ebx
push dword [ebp + 8]
mov ecx, esi
call fcn.00414fc6
and word [ebp - 0xc5c], 0
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0xc5a]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push dword [esi + 0x14]
push str._sie6_mode
push 0x103
lea eax, [ebp - 0xc5c]
push eax
call dword [sym.imp.MSVCRT.dll__snwprintf]
add esp, 0x10
push 0
push 0x20
push 2
push 0
push 1
push 0x40000000
lea eax, [ebp - 0xc5c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
je 0x414946
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0xc60]
call fcn.00404c0d
mov ecx, esi
call fcn.00417a58
push 0x64
push dword [ebp + 8]
mov ecx, dword [esi + 4]
call fcn.00419562
cmp dword [ebp - 0x220], 0
je 0x41498b
push 0x2710
push dword [ebp - 0x220]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [ebp - 0x220]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret 4