Function at 0x427741
Capabilities:
Contain obfuscated stackstrings
Copy file
Create directory
Persist via lnk shortcut

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x509a7c
mov eax, dword fs:[0]
push eax
sub esp, 0x7c
push esi
push edi
mov eax, dword [0x5e4ce0]
xor eax, esp
push eax
lea eax, [esp + 0x88]
mov dword fs:[0], eax
push ecx
mov eax, esp
mov dword [esp + 0x38], esp
lea esi, [ebx + 0x1f0]
push str.__Installing_desktop_icon:
push eax
mov ecx, esi
call fcn.004035c8
pop ecx
pop ecx
xor edi, edi
mov dword [esp + 0x94], edi
mov eax, dword [ebx]
or dword [esp + 0x94], 0xffffffff
mov ecx, ebx
call dword [eax + 0x90]
push edi
call dword [sym.imp.ole32.dll_CoInitialize]
mov eax, dword [esi]
push str._:____
push eax
call fcn.004db6e6
cmp eax, edi
pop ecx
pop ecx
je 0x427869
sub eax, dword [esi]
cmp eax, edi
jle 0x427869
push 0x57
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push str.COfferDesktopIcon::InstallIcon
call fcn.004014b0
inc edi
mov dword [esp + 0x98], edi
push str.Icon_caption_is_invalid:
lea ecx, [esp + 0x40]
call fcn.004014b0
mov byte [esp + 0x98], 2
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push esi
push eax
push ecx
call fcn.0040350d
mov byte [esp + 0xa8], 3
add esp, 8
mov ecx, esp
mov dword [esp + 0x50], esp
push str.badiconcaption
call fcn.004014b0
mov byte [esp + 0xa0], 4
mov eax, dword [ebx]
push edi
mov byte [esp + 0xa4], 5
mov ecx, ebx
call dword [eax + 0x78]
or dword [esp + 0x90], 0xffffffff
lea ecx, [esp + 0x34]
call fcn.004010f8
xor eax, eax
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x44]
push eax
call fcn.004398db
mov dword [esp + 0x90], 6
lea ecx, [esp + 0x18]
call fcn.004037c8
mov byte [esp + 0x90], 7
lea eax, [esp + 0x18]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push str.Desktop
call fcn.004014b0
mov byte [esp + 0x98], 8
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push str.SoftwareMicrosoftWindowsCurrentVersionExplorerShell_Folders
call fcn.004014b0
mov byte [esp + 0x9c], 9
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push str.hkcu
call fcn.004014b0
mov byte [esp + 0xa0], 0xa
mov byte [esp + 0xa0], 7
call fcn.0043a387
test al, al
jne 0x427907
push str._windows_Desktop
lea ecx, [esp + 0x1c]
call fcn.004013dd
lea ecx, [esp + 0x18]
call fcn.00439d54
mov eax, dword [ebx]
lea ecx, [esp + 0x34]
push ecx
mov ecx, ebx
call dword [eax + 0x1c]
mov byte [esp + 0x90], 0xb
push str..url
push eax
lea eax, [esp + 0x2c]
push eax
call fcn.00403564
add esp, 0xc
mov byte [esp + 0x90], 0xd
lea ecx, [esp + 0x34]
call fcn.004010f8
push str._programfiles_Free_Offers_from_Freeze.com
lea ecx, [esp + 0x18]
call fcn.004014b0
mov byte [esp + 0x90], 0xe
lea ecx, [esp + 0x14]
call fcn.00439d54
push ecx
lea eax, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x44], esp
push eax
call fcn.004037f2
mov byte [esp + 0x94], 0xf
mov byte [esp + 0x94], 0xe
call fcn.0040701b
cmp eax, edi
pop ecx
jne 0x427aa6
push edi
push dword [esp + 0x18]
xor esi, esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x4279a6
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push ecx
lea eax, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x44], esp
push eax
call fcn.004037f2
mov byte [esp + 0x94], 0x10
mov byte [esp + 0x94], 0xe
call fcn.0040701b
cmp eax, edi
pop ecx
jne 0x427aa6
push 0x77
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push str.COfferDesktopIcon::InstallIcon
call fcn.004014b0
mov byte [esp + 0x98], 0x11
push str.Create_icon_folder_failed:
lea ecx, [esp + 0x40]
call fcn.004014b0
mov byte [esp + 0x98], 0x12
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
lea edx, [esp + 0x20]
push edx
push eax
push ecx
call fcn.0040350d
mov byte [esp + 0xa8], 0x13
add esp, 8
mov ecx, esp
mov dword [esp + 0x48], esp
push str.createicondirfailed
call fcn.004014b0
mov byte [esp + 0xa0], 0x14
mov eax, dword [ebx]
push esi
mov byte [esp + 0xa4], 0x15
mov ecx, ebx
call dword [eax + 0x78]
mov byte [esp + 0x90], 0xe
lea ecx, [esp + 0x34]
call fcn.004010f8
mov byte [esp + 0x90], 0xd
lea ecx, [esp + 0x14]
call fcn.004010f8
mov byte [esp + 0x90], 7
lea ecx, [esp + 0x24]
call fcn.004010f8
mov byte [esp + 0x90], 6
lea ecx, [esp + 0x18]
call fcn.004010f8
or dword [esp + 0x90], 0xffffffff
lea ecx, [esp + 0x44]
call fcn.00439964
jmp 0x427852
mov eax, dword [ebx]
push ecx
mov edi, esp
mov dword [esp + 0x44], esp
push ecx
mov ecx, esp
mov dword [esp + 0x44], esp
push ecx
mov ecx, ebx
call dword [eax + 0x9c]
mov byte [esp + 0x98], 0x16
mov byte [esp + 0x98], 0xe
call fcn.00407611
mov byte [esp + 0x98], 0x17
lea eax, [esp + 0x1c]
mov ecx, esp
mov dword [esp + 0x44], esp
push eax
call fcn.004037f2
mov byte [esp + 0x98], 0x18
mov byte [esp + 0x98], 0xe
lea esi, [esp + 0x28]
call fcn.00407701
pop ecx
pop ecx
mov byte [esp + 0x90], 0x19
mov eax, dword [ebx]
lea ecx, [esp + 0x34]
push ecx
mov ecx, ebx
call dword [eax + 0x9c]
mov byte [esp + 0x90], 0x1a
mov eax, dword [eax]
push 0
push dword [esp + 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
neg eax
sbb al, al
inc al
mov byte [esp + 0x13], al
mov byte [esp + 0x90], 0x19
lea ecx, [esp + 0x34]
call fcn.004010f8
cmp byte [esp + 0x13], 0
je 0x427bfb
push 0x80
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push str.COfferDesktopIcon::InstallIcon
call fcn.004014b0
mov byte [esp + 0x98], 0x1b
push str.Copy_icon_file_failed:
lea ecx, [esp + 0x40]
call fcn.004014b0
mov byte [esp + 0x98], 0x1c
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
mov edx, esi
push edx
push eax
push ecx
call fcn.0040350d
mov byte [esp + 0xa8], 0x1d
add esp, 8
mov ecx, esp
mov dword [esp + 0x48], esp
push str.copyiconfailed
call fcn.004014b0
mov byte [esp + 0xa0], 0x1e
mov esi, dword [ebx]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov byte [esp + 0xa4], 0x1f
mov ecx, ebx
call dword [esi + 0x78]
mov byte [esp + 0x90], 0x19
lea ecx, [esp + 0x34]
call fcn.004010f8
mov byte [esp + 0x90], 0xe
lea ecx, [esp + 0x20]
jmp 0x427a58
push ecx
lea eax, [esp + 0x28]
mov ecx, esp
mov dword [esp + 0x44], esp
push eax
call fcn.004037f2
mov byte [esp + 0x94], 0x20
push ecx
lea eax, [esp + 0x1c]
mov ecx, esp
mov dword [esp + 0x44], esp
push eax
call fcn.004037f2
mov byte [esp + 0x98], 0x21
mov byte [esp + 0x98], 0x19
lea esi, [esp + 0x30]
call fcn.00407701
pop ecx
pop ecx
mov byte [esp + 0x90], 0x22
push dword [esp + 0x28]
mov eax, dword [ebx + 0x1ec]
mov edi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push eax
push 0x5b3e0c
push str.InternetShortcut
call edi
push str..lnk
lea eax, [ebx + 0x1f0]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00403564
mov byte [esp + 0x9c], 0x23
add esp, 8
lea eax, [esp + 0x20]
mov ecx, esp
mov dword [esp + 0x44], esp
push eax
call fcn.004037f2
mov byte [esp + 0x94], 0x24
push ecx
lea eax, [esp + 0x20]
mov ecx, esp
mov dword [esp + 0x44], esp
push eax
call fcn.004037f2
mov byte [esp + 0x98], 0x25
mov byte [esp + 0x98], 0x23
lea esi, [esp + 0x3c]
call fcn.00407701
pop ecx
pop ecx
mov byte [esp + 0x90], 0x26
push eax
lea ecx, [esp + 0x20]
call fcn.004038a3
mov byte [esp + 0x90], 0x23
mov ecx, esi
call fcn.004010f8
push dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
push dword [esp + 0x20]
call fcn.00427ee8
mov esi, eax
test esi, esi
pop ecx
pop ecx
jge 0x427e13
push 0x8e
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push str.COfferDesktopIcon::InstallIcon
call fcn.004014b0
mov byte [esp + 0x98], 0x27
push str.Create_icon_shortcut_failed:
lea ecx, [esp + 0x40]
call fcn.004014b0
mov byte [esp + 0x98], 0x28
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
lea edx, [esp + 0x28]
push edx
push eax
push ecx
call fcn.0040350d
mov byte [esp + 0xa8], 0x29
add esp, 8
mov ecx, esp
mov dword [esp + 0x48], esp
push str.createiconshortcutfailed
call fcn.004014b0
mov byte [esp + 0xa0], 0x2a
mov eax, dword [ebx]
push esi
mov byte [esp + 0xa4], 0x2b
mov ecx, ebx
call dword [eax + 0x78]
mov byte [esp + 0x90], 0x23
lea ecx, [esp + 0x34]
call fcn.004010f8
xor esi, esi
mov byte [esp + 0x90], 0x22
lea ecx, [esp + 0x1c]
call fcn.004010f8
mov byte [esp + 0x90], 0x19
lea ecx, [esp + 0x28]
call fcn.004010f8
mov byte [esp + 0x90], 0xe
lea ecx, [esp + 0x20]
call fcn.004010f8
mov byte [esp + 0x90], 0xd
lea ecx, [esp + 0x14]
call fcn.004010f8
mov byte [esp + 0x90], 7
lea ecx, [esp + 0x24]
call fcn.004010f8
mov byte [esp + 0x90], 6
lea ecx, [esp + 0x18]
call fcn.004010f8
or dword [esp + 0x90], 0xffffffff
lea ecx, [esp + 0x44]
call fcn.00439964
mov eax, esi
jmp 0x427854
push ecx
mov ecx, esp
mov dword [esp + 0x44], esp
push str.control.txt
call fcn.004014b0
mov byte [esp + 0x94], 0x2c
push ecx
lea eax, [esp + 0x1c]
mov ecx, esp
mov dword [esp + 0x44], esp
push eax
call fcn.004037f2
mov byte [esp + 0x98], 0x2d
mov byte [esp + 0x98], 0x23
lea esi, [esp + 0x38]
call fcn.00407701
pop ecx
pop ecx
mov byte [esp + 0x90], 0x2e
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x30]
call fcn.004037f2
mov byte [esp + 0x90], 0x2f
mov eax, dword [ebx]
lea ecx, [esp + 0x34]
push ecx
mov ecx, ebx
call dword [eax + 0x1c]
mov byte [esp + 0x90], 0x30
push dword [esp + 0x30]
mov eax, dword [eax]
push eax
push str.OfferId
push dword [esp + 0x38]
call edi
mov byte [esp + 0x90], 0x2f
lea ecx, [esp + 0x34]
call fcn.004010f8
push dword [esp + 0x30]
push dword [esp + 0x20]
push str.Shortcut
push dword [esp + 0x38]
call edi
mov byte [esp + 0x90], 0x2e
lea ecx, [esp + 0x2c]
call fcn.004010f8
mov byte [esp + 0x90], 0x23
mov ecx, esi
call fcn.004010f8
xor esi, esi
inc esi
jmp 0x427d95