Function at 0x4049e4
Capabilities:
Accept command line arguments
Extract resource via kernel32 functions
Get common file path
Get installed programs
Get startup folder
Hide graphical window
Query or enumerate registry value

Disassembly:
push ebp
push edi
push esi
mov eax, 0xff0
call fcn.0040fb00
sub esp, eax
mov dword [esp + 0xa4], 0x406a58
mov dword [esp + 0xa8], 0x4108c4
lea eax, [esp + 0xff0]
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], 0x4060bd
mov dword [esp + 0xb4], esp
lea eax, [esp + 0x8c]
mov dword [esp], eax
call fcn.0040f398
mov dword [esp + 0xfc4], 1
mov dword [esp + 0xfc8], 0
mov dword [esp + 0xfcc], 0
mov dword [esp + 0xfd0], 0
mov dword [esp + 8], 0
lea eax, [esp + 0xfc4]
mov dword [esp + 4], eax
lea eax, [esp + 0xfdc]
mov dword [esp], eax
mov dword [esp + 0x90], 0xffffffff
call sub.GDIPLUS.DLL_GdiplusStartup
sub esp, 0xc
mov edx, dword [esp + 0x1000]
mov dword [0x4158bc], edx
call sub.KERNEL32.dll_GetCommandLineW
mov dword [esp + 4], 0x415830
mov dword [esp], eax
call sub.SHELL32.DLL_CommandLineToArgvW
sub esp, 8
mov dword [0x415834], eax
cmp dword [0x415830], 1
jle 0x404afa
mov eax, dword [eax + 4]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x4123bc
mov dword [esp], 0x415040
call sub.USER32.dll_wsprintfA
movzx eax, byte [0x415040]
sub eax, 0x30
mov dword [0x415034], eax
cmp dword [0x415830], 2
jg 0x404b24
mov dword [esp + 0x40], 0
lea eax, [esp + 0x8c]
mov dword [esp], eax
call fcn.0040f4b4
mov eax, dword [esp + 0x40]
add esp, 0xff0
pop esi
pop edi
pop ebp
ret 0x10
mov eax, dword [0x415834]
mov eax, dword [eax + 8]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x4123bc
mov dword [esp], 0x415440
call sub.USER32.dll_wsprintfA
cmp dword [0x415830], 3
jg 0x4053ec
mov ecx, dword [esp + 0x1000]
mov dword [esp + 0xf8c], ecx
mov dword [esp + 0xfa0], 0x411000
mov dword [esp + 0xf80], 0x401900
mov dword [esp + 0xf7c], 8
mov dword [esp + 0xf78], 0x30
mov dword [esp + 4], 0x4123c0
mov dword [esp], ecx
mov dword [esp + 0x90], 0xffffffff
call sub.USER32.dll_LoadIconA
sub esp, 8
mov dword [esp + 0xf90], eax
mov dword [esp + 4], 0x4123c0
mov eax, dword [esp + 0x1000]
mov dword [esp], eax
call sub.USER32.dll_LoadIconA
sub esp, 8
mov dword [esp + 0xfa4], eax
mov dword [esp + 4], 0x7f00
mov dword [esp], 0
call sub.USER32.dll_LoadCursorA
sub esp, 8
mov dword [esp + 0xf94], eax
mov dword [esp + 0xf9c], 0
mov dword [esp + 0xf84], 0
mov dword [esp + 0xf88], 0
mov dword [esp + 0xf98], 5
lea eax, [esp + 0xf78]
mov dword [esp], eax
call sub.USER32.dll_RegisterClassExA
push edx
test ax, ax
je 0x404afa
mov dword [esp + 0x2c], 0
mov edx, dword [esp + 0x1000]
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x80000000
mov dword [esp + 0x10], 0x80000000
mov dword [esp + 0xc], 0xc80000
mov dword [esp + 8], str.Direct_Downloader
mov dword [esp + 4], str.DDLR
mov dword [esp], 8
call sub.USER32.dll_CreateWindowExA
sub esp, 0x30
mov dword [0x4158f4], eax
mov edx, dword [0x415034]
cmp edx, 1
je 0x4055e0
jle 0x405790
cmp edx, 2
je 0x405414
cmp edx, 3
jne 0x404afa
mov dword [esp], str.USER32.DLL
mov dword [esp + 0x90], 0xffffffff
call sub.KERNEL32.dll_GetModuleHandleA
push esi
mov dword [esp + 4], str.UpdateLayeredWindow
mov dword [esp], eax
call sub.KERNEL32.dll_GetProcAddress
sub esp, 8
mov dword [0x415020], eax
mov dword [0x415024], 0
test eax, eax
je 0x404afa
mov dword [0x415828], 0x177
mov dword [0x41582c], 0xfa
mov dword [esp], 1
call sub.USER32.dll_GetSystemMetrics
push edx
mov edx, dword [0x41582c]
mov dword [esp + 0x58], edx
mov edx, eax
shr edx, 0x1f
add edx, eax
sar edx, 1
mov eax, dword [esp + 0x58]
shr eax, 0x1f
add eax, dword [esp + 0x58]
sar eax, 1
sub edx, eax
mov dword [esp + 0x4c], edx
mov dword [esp], 0
call sub.USER32.dll_GetSystemMetrics
push ecx
mov edx, dword [0x415828]
mov dword [esp + 0x18], 0x40
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0xc], ecx
mov ecx, eax
shr ecx, 0x1f
add eax, ecx
sar eax, 1
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
sar edx, 1
sub eax, edx
mov dword [esp + 8], eax
mov dword [esp + 4], 0xffffffff
mov eax, dword [0x4158f4]
mov dword [esp], eax
call sub.USER32.dll_SetWindowPos
sub esp, 0x1c
mov dword [esp + 8], 0x8080000
mov dword [esp + 4], 0xffffffec
mov eax, dword [0x4158f4]
mov dword [esp], eax
call sub.USER32.dll_SetWindowLongA
sub esp, 0xc
mov dword [esp + 8], 0x80000000
mov dword [esp + 4], 0xfffffff0
mov eax, dword [0x4158f4]
mov dword [esp], eax
call sub.USER32.dll_SetWindowLongA
sub esp, 0xc
mov eax, dword [0x4158b4]
test eax, eax
je 0x404e03
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 4]
mov dword [0x4158b4], 0
mov eax, dword [0x4158b8]
test eax, eax
je 0x404e42
mov dword [esp], eax
mov dword [esp + 0x90], 0xffffffff
call sub.KERNEL32.dll_GlobalUnlock
push edi
mov eax, dword [0x4158b8]
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalFree
push eax
mov dword [0x4158b8], 0
mov dword [esp + 8], 0x412024
mov dword [esp + 4], str.IDB_BACKGROUND3
mov dword [esp], 0
mov dword [esp + 0x90], 0xffffffff
call sub.KERNEL32.dll_FindResourceA
sub esp, 0xc
mov dword [esp + 0x6c], eax
test eax, eax
je 0x404e93
mov dword [esp + 4], eax
mov dword [esp], 0
call sub.KERNEL32.dll_SizeofResource
sub esp, 8
mov dword [esp + 0x74], eax
test eax, eax
jne 0x405ef8
mov dword [esp], 0
mov dword [esp + 0x90], 0xffffffff
call sub.USER32.dll_GetDC
push edx
mov dword [esp + 0x54], eax
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleDC
push ecx
mov dword [esp + 0x50], eax
mov eax, dword [0x41582c]
mov dword [esp + 8], eax
mov eax, dword [0x415828]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x54]
mov dword [esp], eax
call sub.GDI32.dll_CreateCompatibleBitmap
sub esp, 0xc
mov dword [esp + 0x68], eax
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov dword [esp + 0x78], eax
mov dword [esp + 0xe74], 0
mov dword [esp + 0xe78], 0
lea eax, [esp + 0xe74]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call sub.GDIPLUS.DLL_GdipCreateFromHDC
sub esp, 8
mov dword [esp + 0xe78], eax
mov eax, dword [0x4158b4]
test eax, eax
je 0x4060b6
mov eax, dword [eax + 4]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe74]
mov dword [esp], eax
mov dword [esp + 0x90], 1
call sub.GDIPLUS.DLL_GdipDrawImageI
sub esp, 0x10
test eax, eax
je 0x404f7b
mov dword [esp + 0xe78], eax
mov dword [esp + 0xfec], 0
mov byte [esp + 0xfee], 0xff
mov byte [esp + 0xfef], 1
mov dword [esp + 0xc80], 0
mov dword [esp + 0xc84], 0
mov eax, dword [0x415828]
mov dword [esp + 0xc8], eax
mov eax, dword [0x41582c]
mov dword [esp + 0xcc], eax
mov dword [esp + 0xfd4], 0
mov dword [esp + 0xfd8], 0
mov dword [esp + 0x20], 2
lea eax, [esp + 0xfec]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], 0
lea eax, [esp + 0xfd4]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x10], eax
lea eax, [esp + 0xc8]
mov dword [esp + 0xc], eax
lea eax, [esp + 0xc80]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 4], eax
mov eax, dword [0x4158f4]
mov dword [esp], eax
mov eax, dword [0x415020]
mov dword [esp + 0x90], 1
call eax
sub esp, 0x24
mov dword [esp + 4], 5
mov eax, dword [0x4158f4]
mov dword [esp], eax
call sub.USER32.dll_ShowWindow
sub esp, 8
mov eax, dword [esp + 0x78]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call sub.GDI32.dll_SelectObject
sub esp, 8
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call sub.GDI32.dll_DeleteObject
push eax
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call sub.GDI32.dll_DeleteDC
push edi
mov eax, dword [esp + 0x54]
mov dword [esp + 4], eax
mov dword [esp], 0
call sub.USER32.dll_ReleaseDC
sub esp, 8
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x258
mov dword [esp + 4], 0xc
mov eax, dword [0x4158f4]
mov dword [esp], eax
call sub.USER32.dll_SetTimer
sub esp, 0x10
mov eax, dword [esp + 0xe74]
mov dword [esp], eax
mov dword [esp + 0x90], 0xffffffff
call sub.GDIPLUS.DLL_GdipDeleteGraphics
push esi
mov dword [esp], 1
mov dword [esp + 0x90], 0xffffffff
call sub.USER32.dll_GetSystemMetrics
push edx
mov edx, dword [0x41582c]
mov dword [esp + 0x48], edx
mov edx, eax
shr edx, 0x1f
add edx, eax
sar edx, 1
mov eax, dword [esp + 0x48]
shr eax, 0x1f
add eax, dword [esp + 0x48]
sar eax, 1
sub edx, eax
mov dword [esp + 0x44], edx
mov dword [esp], 0
call sub.USER32.dll_GetSystemMetrics
push ecx
mov edx, dword [0x415828]
mov dword [esp + 0x18], 0x40
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0xc], ecx
mov ecx, eax
shr ecx, 0x1f
add eax, ecx
sar eax, 1
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
sar edx, 1
sub eax, edx
mov dword [esp + 8], eax
mov dword [esp + 4], 0xffffffff
mov eax, dword [0x4158f4]
mov dword [esp], eax
call sub.USER32.dll_SetWindowPos
sub esp, 0x1c
jmp 0x4051b3
lea eax, [esp + 0xfa8]
mov dword [esp], eax
mov dword [esp + 0x90], 0xffffffff
call sub.USER32.dll_TranslateMessage
push eax
lea edx, [esp + 0xfa8]
mov dword [esp], edx
call sub.USER32.dll_DispatchMessageA
push eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
lea ecx, [esp + 0xfa8]
mov dword [esp], ecx
mov dword [esp + 0x90], 0xffffffff
call sub.USER32.dll_GetMessageA
sub esp, 0x10
test eax, eax
jne 0x405188
mov eax, dword [0x4158b4]
test eax, eax
je 0x4051fd
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 4]
mov dword [0x4158b4], 0
mov eax, dword [0x4158b8]
test eax, eax
je 0x40523c
mov dword [esp], eax
mov dword [esp + 0x90], 0xffffffff
call sub.KERNEL32.dll_GlobalUnlock
push eax
mov eax, dword [0x4158b8]
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalFree
push eax
mov dword [0x4158b8], 0
mov eax, dword [0x4158a8]
test eax, eax
je 0x40525a
mov edx, dword [eax]
mov dword [esp], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x90], 0xffffffff
call eax
mov dword [0x4158a8], 0
mov eax, dword [0x4158ac]
test eax, eax
je 0x405299
mov dword [esp], eax
mov dword [esp + 0x90], 0xffffffff
call sub.KERNEL32.dll_GlobalUnlock
push eax
mov eax, dword [0x4158ac]
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalFree
push eax
mov dword [0x4158ac], 0
mov eax, dword [0x41589c]
test eax, eax
je 0x4052b7
mov edx, dword [eax]
mov dword [esp], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x90], 0xffffffff
call eax
mov dword [0x41589c], 0
mov eax, dword [0x4158a0]
test eax, eax
je 0x4052f6
mov dword [esp], eax
mov dword [esp + 0x90], 0xffffffff
call sub.KERNEL32.dll_GlobalUnlock
push edi
mov eax, dword [0x4158a0]
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalFree
push ebp
mov dword [0x4158a0], 0
mov eax, dword [0x415890]
test eax, eax
je 0x405314
mov edx, dword [eax]
mov dword [esp], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x90], 0xffffffff
call eax
mov dword [0x415890], 0
mov eax, dword [0x415894]
test eax, eax
je 0x405353
mov dword [esp], eax
mov dword [esp + 0x90], 0xffffffff
call sub.KERNEL32.dll_GlobalUnlock
push ecx
mov eax, dword [0x415894]
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalFree
push esi
mov dword [0x415894], 0
mov eax, dword [0x415884]
test eax, eax
je 0x405371
mov edx, dword [eax]
mov dword [esp], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x90], 0xffffffff
call eax
mov dword [0x415884], 0
mov eax, dword [0x415888]
test eax, eax
je 0x4053b0
mov dword [esp], eax
mov dword [esp + 0x90], 0xffffffff
call sub.KERNEL32.dll_GlobalUnlock
push eax
mov eax, dword [0x415888]
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalFree
push edx
mov dword [0x415888], 0
mov eax, dword [esp + 0xfdc]
mov dword [esp], eax
mov dword [esp + 0x90], 0xffffffff
call sub.GDIPLUS.DLL_GdiplusShutdown
push eax
mov eax, dword [0x415834]
mov dword [esp], eax
call sub.KERNEL32.dll_LocalFree
push eax
mov eax, dword [esp + 0xfb0]
mov dword [esp + 0x40], eax
jmp 0x404b02
mov eax, dword [0x415834]
mov eax, dword [eax + 0xc]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x4123bc
lea eax, [esp + 0x898]
mov dword [esp], eax
call sub.USER32.dll_wsprintfA
jmp 0x404b51
mov dword [0x41582c], 0x1c2
mov dword [0x415828], 0x27d
mov dword [esp + 0x90], 0xffffffff
call fcn.0040616c
mov dword [esp + 0x2c], 0
mov eax, dword [0x4158bc]
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], 7
mov eax, dword [0x4158f4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], 0x10
mov dword [esp + 0x18], 0x96
mov dword [esp + 0x14], 0x120
mov dword [esp + 0x10], 0x137
mov dword [esp + 0xc], 0x50000100
mov dword [esp + 8], str.Privacy_Policy
mov dword [esp + 4], 0x4123f3
mov dword [esp], 0
call sub.USER32.dll_CreateWindowExA
sub esp, 0x30
mov dword [0x4158c4], eax
mov dword [esp + 0x2c], 0
mov eax, dword [0x4158bc]
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], 8
mov eax, dword [0x4158f4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], 0x10
mov dword [esp + 0x18], 0x96
mov dword [esp + 0x14], 0x120
mov dword [esp + 0x10], 0xd3
mov dword [esp + 0xc], 0x50000100
mov dword [esp + 8], str.Terms_Of_Service
mov dword [esp + 4], 0x4123f3
mov dword [esp], 0
call sub.USER32.dll_CreateWindowExA
sub esp, 0x30
mov dword [0x4158c8], eax
mov dword [esp + 0x34], 0x412400
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 1
mov dword [esp + 0x24], 2
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 1
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0x190
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0xf
call sub.GDI32.dll_CreateFontA
sub esp, 0x38
mov dword [esp + 0x64], eax
mov dword [esp + 0xc], 1
mov dword [esp + 8], eax
mov dword [esp + 4], 0x30
mov eax, dword [0x4158c4]
mov dword [esp], eax
call sub.USER32.dll_SendMessageA
sub esp, 0x10
mov dword [esp + 0xc], 1
mov eax, dword [esp + 0x64]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x30
mov eax, dword [0x4158c8]
mov dword [esp], eax
call sub.USER32.dll_SendMessageA
sub esp, 0x10
jmp 0x4050e6
mov dword [0x41582c], 0x1c2
mov dword [0x415828], 0x27d
mov dword [esp + 0x90], 0xffffffff
call fcn.0040616c
mov dword [esp + 0x2c], 0
mov eax, dword [0x4158bc]
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], 8
mov eax, dword [0x4158f4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], 0xf
mov dword [esp + 0x18], 0x73
mov dword [esp + 0x14], 0x120
mov dword [esp + 0x10], 0xd4
mov dword [esp + 0xc], 0x50000100
mov dword [esp + 8], str.Terms_Of_Service
mov dword [esp + 4], 0x4123f3
mov dword [esp], 0
call sub.USER32.dll_CreateWindowExA
sub esp, 0x30
mov dword [0x4158c8], eax
mov dword [esp + 0x2c], 0
mov eax, dword [0x4158bc]
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], 7
mov eax, dword [0x4158f4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], 0xf
mov dword [esp + 0x18], 0x5a
mov dword [esp + 0x14], 0x120
mov dword [esp + 0x10], 0x136
mov dword [esp + 0xc], 0x50000100
mov dword [esp + 8], str.Privacy_Policy
mov dword [esp + 4], 0x4123f3
mov dword [esp], 0
call sub.USER32.dll_CreateWindowExA
sub esp, 0x30
mov dword [0x4158c4], eax
mov dword [esp + 0x34], str.ARIAL
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 1
mov dword [esp + 0x24], 2
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 1
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0x190
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0xf
call sub.GDI32.dll_CreateFontA
sub esp, 0x38
mov dword [esp + 0x60], eax
mov dword [esp + 0xc], 1
mov dword [esp + 8], eax
mov dword [esp + 4], 0x30
mov eax, dword [0x4158c4]
mov dword [esp], eax
call sub.USER32.dll_SendMessageA
sub esp, 0x10
mov dword [esp + 0xc], 1
mov eax, dword [esp + 0x60]
jmp 0x4055bf
test edx, edx
jne 0x404afa
mov dword [0x41582c], 0x1c2
mov dword [0x415828], 0x27d
mov dword [esp + 0x2c], 0
mov ecx, dword [esp + 0x1000]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], 1
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], 0x18
mov dword [esp + 0x18], 0x4b
mov dword [esp + 0x14], 0x125
mov dword [esp + 0x10], 0x1e0
mov dword [esp + 0xc], 0x50000000
mov dword [esp + 8], str.Browse...
mov dword [esp + 4], 0x4123ec
mov dword [esp], 0
mov dword [esp + 0x90], 0xffffffff
call sub.USER32.dll_CreateWindowExA
sub esp, 0x30
mov dword [0x4158ec], eax
call fcn.0040616c
mov dword [esp + 0x2c], 0
mov eax, dword [esp + 0x1000]
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], 0
mov eax, dword [0x4158f4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], 0x19
mov dword [esp + 0x18], 0x208
mov dword [esp + 0x14], 0xac
mov dword [esp + 0x10], 0x3c
mov dword [esp + 0xc], 0x50000100
mov dword [esp + 8], 0x415440
mov dword [esp + 4], 0x4123f3
mov dword [esp], 0
call sub.USER32.dll_CreateWindowExA
sub esp, 0x30
mov dword [0x4158f0], eax
mov dword [esp + 0x34], str.ARIAL
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 1
mov dword [esp + 0x24], 2
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 1
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0x2bc
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x15
call sub.GDI32.dll_CreateFontA
sub esp, 0x38
mov dword [esp + 0xc], 1
mov dword [esp + 8], eax
mov dword [esp + 4], 0x30
mov eax, dword [0x4158f0]
mov dword [esp], eax
call sub.USER32.dll_SendMessageA
sub esp, 0x10
mov dword [esp + 0x34], 0x412400
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 1
mov dword [esp + 0x24], 2
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0x190
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x10
call sub.GDI32.dll_CreateFontA
sub esp, 0x38
mov dword [esp + 0x5c], eax
mov dword [esp + 0xc], 1
mov dword [esp + 8], eax
mov dword [esp + 4], 0x30
mov eax, dword [0x4158ec]
mov dword [esp], eax
call sub.USER32.dll_SendMessageA
sub esp, 0x10
lea edx, [esp + 0xe74]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov eax, dword [0x4158f4]
mov dword [esp], eax
call sub.SHELL32.DLL_SHGetFolderPathA
sub esp, 0x14
mov dword [esp + 0x2c], 0
mov ecx, dword [esp + 0x1000]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], 0
mov eax, dword [0x4158f4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], 0x11
mov dword [esp + 0x18], 0xc8
mov dword [esp + 0x14], 0x129
mov dword [esp + 0x10], 0x10e
mov dword [esp + 0xc], 0x50000880
lea eax, [esp + 0xe74]
mov dword [esp + 8], eax
mov dword [esp + 4], str.EDIT
mov dword [esp], 0
call sub.USER32.dll_CreateWindowExA
sub esp, 0x30
mov dword [0x4158e0], eax
mov dword [esp + 0xc], 1
mov edx, dword [esp + 0x5c]
mov dword [esp + 8], edx
mov dword [esp + 4], 0x30
mov dword [esp], eax
call sub.USER32.dll_SendMessageA
sub esp, 0x10
mov dword [esp + 0x2c], 0
mov eax, dword [0x4158bc]
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], 0
mov eax, dword [0x4158f4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], 0x10
mov dword [esp + 0x18], 0x64
mov dword [esp + 0x14], 0xc8
mov dword [esp + 0x10], 0x82
mov dword [esp + 0xc], 0x50000100
lea eax, [esp + 0x898]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x4123f3
mov dword [esp], 0
call sub.USER32.dll_CreateWindowExA
sub esp, 0x30
mov dword [0x4158dc], eax
mov dword [esp + 0x34], str.ARIAL
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 1
mov dword [esp + 0x24], 2
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0x190
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x10
call sub.GDI32.dll_CreateFontA
sub esp, 0x38
mov dword [esp + 0xc], 1
mov dword [esp + 8], eax
mov dword [esp + 4], 0x30
mov eax, dword [0x4158dc]
mov dword [esp], eax
call sub.USER32.dll_SendMessageA
sub esp, 0x10
mov dword [esp + 0xc80], 0
lea edi, [esp + 0xc84]
mov ecx, 0x1f0
xor eax, eax
rep stosb byte es:[edi], al
mov dword [esp + 0xfe4], 0x1f4
lea eax, [esp + 0xfe0]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0x20019
mov dword [esp + 8], 0
mov dword [esp + 4], str.SOFTWAREMicrosoftWindowsCurrentVersionUninstallOptimizer_Pro_is1
mov dword [esp], 0x80000002
call sub.ADVAPI32.DLL_RegOpenKeyExA
sub esp, 0x14
lea eax, [esp + 0xfe4]
mov dword [esp + 0x14], eax
lea ecx, [esp + 0xc80]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.UninstallString
mov eax, dword [esp + 0xfe0]
mov dword [esp], eax
call sub.ADVAPI32.DLL_RegQueryValueExA
sub esp, 0x18
mov eax, dword [esp + 0xfe0]
mov dword [esp], eax
call sub.ADVAPI32.DLL_RegCloseKey
push edi
lea eax, [esp + 0xc80]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x412462
lea eax, [esp + 0xc8]
mov dword [esp], eax
call sub.USER32.dll_wsprintfA
cmp byte [esp + 0xc8], 0
jne 0x405eec
mov byte [0x4158f8], 0
mov dword [esp + 0x2c], 0
mov edx, dword [esp + 0x1000]
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], 8
mov eax, dword [0x4158f4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], 0x10
mov dword [esp + 0x18], 0x32
mov dword [esp + 0x14], 0xf2
mov dword [esp + 0x10], 0x1ef
mov dword [esp + 0xc], 0x50000100
mov dword [esp + 8], str.Terms_
mov dword [esp + 4], 0x4123f3
mov dword [esp], 0
call sub.USER32.dll_CreateWindowExA
sub esp, 0x30
mov dword [0x4158c8], eax
mov dword [esp + 0x2c], 0
mov ecx, dword [esp + 0x1000]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], 7
mov eax, dword [0x4158f4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], 0x10
mov dword [esp + 0x18], 0x32
mov dword [esp + 0x14], 0xf2
mov dword [esp + 0x10], 0x226
mov dword [esp + 0xc], 0x50000100
mov dword [esp + 8], str.Privacy
mov dword [esp + 4], 0x4123f3
mov dword [esp], 0
call sub.USER32.dll_CreateWindowExA
sub esp, 0x30
mov dword [0x4158c4], eax
mov dword [esp + 0x2c], 0
mov eax, dword [esp + 0x1000]
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], 0xb
mov eax, dword [0x4158f4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], 0x10
mov dword [esp + 0x18], 0xe6
mov dword [esp + 0x14], 0x104
mov dword [esp + 0x10], 0x177
mov dword [esp + 0xc], 0x50000003
mov dword [esp + 8], str.Speed_up_your_pc_with_optimizer_pro_
mov dword [esp + 4], 0x4123ec
mov dword [esp], 0
call sub.USER32.dll_CreateWindowExA
sub esp, 0x30
mov dword [0x4158c0], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 0xf1
mov dword [esp], eax
call sub.USER32.dll_SendMessageA
sub esp, 0x10
mov dword [esp + 0x34], str.ARIAL
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 1
mov dword [esp + 0x24], 2
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0x190
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x10
call sub.GDI32.dll_CreateFontA
sub esp, 0x38
mov dword [esp + 0x70], eax
mov dword [esp + 0xc], 1
mov dword [esp + 8], eax
mov dword [esp + 4], 0x30
mov eax, dword [0x4158c8]
mov dword [esp], eax
call sub.USER32.dll_SendMessageA
sub esp, 0x10
mov dword [esp + 0xc], 1
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x30
mov eax, dword [0x4158c4]
mov dword [esp], eax
call sub.USER32.dll_SendMessageA
sub esp, 0x10
mov dword [esp + 0xc], 1
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x30
mov eax, dword [0x4158c0]
mov dword [esp], eax
call sub.USER32.dll_SendMessageA
sub esp, 0x10
jmp 0x4050e6
mov byte [0x4158f8], 1
jmp 0x4050e6
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov dword [esp], 0
call sub.KERNEL32.dll_LoadResource
sub esp, 8
mov dword [esp], eax
call sub.KERNEL32.dll_LockResource
push esi
mov dword [esp + 0x7c], eax
test eax, eax
je 0x404e93
mov eax, dword [esp + 0x74]
mov dword [esp + 4], eax
mov dword [esp], 2
call sub.KERNEL32.dll_GlobalAlloc
sub esp, 8
mov dword [0x4158b8], eax
test eax, eax
je 0x404e93
mov dword [esp], eax
call sub.KERNEL32.dll_GlobalLock
push ecx
test eax, eax
je 0x40608e
mov edi, eax
mov esi, dword [esp + 0x7c]
mov ecx, dword [esp + 0x74]
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0xfe0], 0
lea eax, [esp + 0xfe0]
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov eax, dword [0x4158b8]
mov dword [esp], eax
call sub.OLE32.dll_CreateStreamOnHGlobal
sub esp, 0xc
test eax, eax
jne 0x406075
mov edx, dword [esp + 0xfe0]
mov dword [esp + 0x88], edx
mov dword [esp], 0xc
call sub.GDIPLUS.DLL_GdipAlloc
push edx
mov dword [esp + 0x80], eax
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax], 0x414060
mov dword [esp + 0xfe8], 0
lea eax, [esp + 0xfe8]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x88]
mov dword [esp], ecx
mov dword [esp + 0x90], 2
call sub.GDIPLUS.DLL_GdipCreateBitmapFromStream
sub esp, 8
mov edx, dword [esp + 0x80]
mov dword [edx + 8], eax
mov eax, dword [esp + 0xfe8]
mov dword [edx + 4], eax
mov dword [0x4158b4], edx
mov eax, dword [esp + 0xfe0]
mov edx, dword [eax]
mov dword [esp], eax
mov eax, dword [edx + 8]
mov dword [esp + 0x90], 0xffffffff
call eax
push eax
mov eax, dword [0x4158b4]
test eax, eax
je 0x406075
mov edx, dword [eax + 8]
mov dword [eax + 8], 0
test edx, edx
je 0x404e93
mov edx, dword [eax]
mov dword [esp], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x90], 0xffffffff
call eax
mov dword [0x4158b4], 0
mov eax, dword [0x4158b8]
mov dword [esp], eax
mov dword [esp + 0x90], 0xffffffff
call sub.KERNEL32.dll_GlobalUnlock
push edi
mov eax, dword [0x4158b8]
mov dword [esp], eax
mov dword [esp + 0x90], 0xffffffff
call sub.KERNEL32.dll_GlobalFree
push esi
mov dword [0x4158b8], 0
jmp 0x404e93
xor eax, eax
jmp 0x404f3f