Function at 0x401470
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
lea eax, [ebp - 0x230]
lea ebx, [ebp - 0x220]
sub esp, 0x25c
mov dword [ebp - 0x230], 1
mov dword [ebp - 0x22c], 0
mov dword [esp + 4], eax
lea eax, [ebp - 0x240]
mov dword [esp + 8], 0
mov dword [ebp - 0x228], 0
mov dword [ebp - 0x224], 0
mov dword [esp], eax
call sym._GdiplusStartup_12
sub esp, 0xc
mov dword [esp + 0xc], 0
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x104
mov dword [esp], 0x73
call sym._SystemParametersInfoW_16
sub esp, 0x10
test eax, eax
je 0x4016f0
lea esi, [ebp - 0x238]
mov dword [esp], ebx
mov dword [ebp - 0x238], 0
mov dword [esp + 4], esi
call sym._GdipCreateBitmapFromFile_8
sub esp, 8
test eax, eax
mov ebx, dword [ebp - 0x238]
jne 0x401760
call sym._GetDesktopWindow_0
mov dword [esp], eax
mov dword [ebp - 0x250], eax
call sym._GetDC_4
sub esp, 4
mov dword [ebp - 0x24c], eax
mov dword [esp], eax
call sym._CreateCompatibleDC_4
mov edi, eax
lea eax, [ebp - 0x23c]
sub esp, 4
mov dword [esp], ebx
mov dword [ebp - 0x23c], 0
mov dword [esp + 4], eax
call sym._GdipGetImageHeight_8
mov edx, dword [ebp - 0x23c]
sub esp, 8
mov dword [ebp - 0x238], 0
mov dword [esp + 4], esi
mov dword [esp], ebx
mov dword [ebp - 0x254], edx
call sym._GdipGetImageWidth_8
mov eax, dword [ebp - 0x238]
sub esp, 8
mov edx, dword [ebp - 0x254]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24c]
mov dword [esp + 8], edx
mov dword [esp], eax
call sym._CreateCompatibleBitmap_12
sub esp, 0xc
mov dword [ebp - 0x258], eax
mov dword [esp + 4], eax
mov dword [esp], edi
call sym._SelectObject_8
sub esp, 8
mov dword [ebp - 0x254], eax
mov dword [ebp - 0x238], 0
mov dword [esp + 4], esi
mov dword [esp], edi
mov dword [ebp - 0x234], 0
call sym._GdipCreateFromHDC_8
mov dword [ebp - 0x234], eax
mov eax, dword [ebp - 0x238]
sub esp, 8
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], eax
call sym._GdipDrawImageI_16
sub esp, 0x10
test eax, eax
jne 0x401830
mov eax, dword [ebp - 0x254]
mov dword [esp], edi
mov dword [esp + 4], eax
call sym._SelectObject_8
sub esp, 8
mov dword [esp], edi
call sym._DeleteDC_4
mov eax, dword [ebp - 0x24c]
sub esp, 4
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x250]
mov dword [esp], eax
call sym._ReleaseDC_8
sub esp, 8
mov dword [esp], 0
call sym._OpenClipboard_4
sub esp, 4
test eax, eax
je 0x4017c4
call sym._EmptyClipboard_0
mov eax, dword [ebp - 0x258]
mov dword [esp], 2
mov dword [esp + 4], eax
call sym._SetClipboardData_8
sub esp, 8
call sym._CloseClipboard_0
mov dword [esp + 8], 0x1e
mov dword [esp + 4], str.Wallpaper_copied_to_clipboard.
mov dword [esp], sym.imp.libstdc_6.dll_std::cout
call sym.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__int_
mov eax, dword [sym.imp.libstdc_6.dll_std::cout]
mov eax, dword [eax - 0xc]
mov esi, dword [eax + 0x409424]
test esi, esi
je 0x401916
cmp byte [esi + 0x1c], 0
je 0x4018b0
movsx eax, byte [esi + 0x27]
mov dword [esp], eax
mov ecx, sym.imp.libstdc_6.dll_std::cout
call sym.std::ostream::put_char_
jmp 0x401811
mov dword [esp + 8], 0x1d
mov dword [esp + 4], str.Failed_to_get_wallpaper_path.
mov dword [esp], sym.imp.libstdc_6.dll_std::cerr
call sym.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__int_
mov eax, dword [sym.imp.libstdc_6.dll_std::cerr]
mov eax, dword [eax - 0xc]
mov ebx, dword [eax + 0x409420]
test ebx, ebx
je 0x4018a6
cmp byte [ebx + 0x1c], 0
je 0x401873
movsx eax, byte [ebx + 0x27]
mov ecx, sym.imp.libstdc_6.dll_std::cerr
mov dword [esp], eax
call sym.std::ostream::put_char_
sub esp, 4
mov ecx, eax
call sym.std::ostream::flush__
mov eax, dword [ebp - 0x240]
mov dword [esp], eax
call sym._GdiplusShutdown_4
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 8], 0x19
mov dword [esp + 4], str.Failed_to_load_wallpaper.
mov dword [esp], sym.imp.libstdc_6.dll_std::cerr
call sym.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__int_
mov eax, dword [sym.imp.libstdc_6.dll_std::cerr]
mov eax, dword [eax - 0xc]
mov esi, dword [eax + 0x409420]
test esi, esi
je 0x401942
cmp byte [esi + 0x1c], 0
je 0x401840
movsx eax, byte [esi + 0x27]
mov dword [esp], eax
mov ecx, sym.imp.libstdc_6.dll_std::cerr
call sym.std::ostream::put_char_
sub esp, 4
mov ecx, eax
call sym.std::ostream::flush__
mov dword [esp], ebx
call sym._GdipDisposeImage_4
sub esp, 4
jmp 0x401747
mov dword [esp + 8], 0x19
mov dword [esp + 4], str.Failed_to_open_clipboard.
mov dword [esp], sym.imp.libstdc_6.dll_std::cerr
call sym.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__int_
mov eax, dword [sym.imp.libstdc_6.dll_std::cerr]
mov eax, dword [eax - 0xc]
mov esi, dword [eax + 0x409420]
test esi, esi
je 0x40193d
cmp byte [esi + 0x1c], 0
je 0x4018e3
movsx eax, byte [esi + 0x27]
mov dword [esp], eax
mov ecx, sym.imp.libstdc_6.dll_std::cerr
call sym.std::ostream::put_char_
sub esp, 4
mov ecx, eax
call sym.std::ostream::flush__
mov eax, dword [ebp - 0x238]
mov dword [esp], eax
call sym._GdipDeleteGraphics_4
sub esp, 4
jmp 0x4017b7
mov dword [ebp - 0x234], eax
jmp 0x401628
mov ecx, esi
call sym.std::ctype_char_::_M_widen_init___const
mov eax, dword [esi]
mov edx, dword [eax + 0x18]
mov eax, 0xa
cmp edx, method.std::ctype_char_.do_widen_char__const
je 0x4017a0
mov dword [esp], 0xa
mov ecx, esi
call edx
sub esp, 4
movsx eax, al
jmp 0x4017a0
mov ecx, ebx
call sym.std::ctype_char_::_M_widen_init___const
mov eax, dword [ebx]
mov edx, dword [eax + 0x18]
mov eax, 0xa
cmp edx, method.std::ctype_char_.do_widen_char__const
je 0x401730
mov dword [esp], 0xa
mov ecx, ebx
call edx
sub esp, 4
movsx eax, al
jmp 0x401730
call sym.std::__throw_bad_cast__
nop
lea esi, [esi]
mov ecx, esi
call sym.std::ctype_char_::_M_widen_init___const
mov eax, dword [esi]
mov edx, dword [eax + 0x18]
mov eax, 0xa
cmp edx, method.std::ctype_char_.do_widen_char__const
je 0x4016dd
mov dword [esp], 0xa
mov ecx, esi
call edx
sub esp, 4
movsx eax, al
jmp 0x4016dd
mov ecx, esi
call sym.std::ctype_char_::_M_widen_init___const
mov eax, dword [esi]
mov edx, dword [eax + 0x18]
mov eax, 0xa
cmp edx, method.std::ctype_char_.do_widen_char__const
je 0x401804
mov dword [esp], 0xa
mov ecx, esi
call edx
sub esp, 4
movsx eax, al
jmp 0x401804
call sym.std::__throw_bad_cast__
mov esi, eax
mov eax, dword [ebp - 0x238]
mov dword [esp], eax
call sym._GdipDeleteGraphics_4
push ecx
mov dword [esp], ebx
call sym._GdipDisposeImage_4
push eax
mov dword [esp], esi
call sym.__Unwind_Resume
call sym.std::__throw_bad_cast__
call sym.std::__throw_bad_cast__
mov esi, eax
jmp 0x40192c