Function at 0x47b3f0
Capabilities:
Query or enumerate registry value
Set file attributes
Set registry value

Disassembly:
sub esp, 0x434
push ebp
push esi
push edi
mov edi, dword [esp + 0x444]
xor esi, esi
xor ebp, ebp
test edi, edi
mov dword [esp + 0x18], ebp
jne 0x47b418
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x434
ret
call fcn.004c5c70
cmp eax, 8
jl 0x47b42e
mov dword [esp + 0x18], 1
mov ebp, dword [esp + 0x18]
push 0x1a
push 0x5b6fc0
call fcn.00499400
push 0x5b96a0
push 0x5b6fc0
call fcn.004d62f1
push 0x598458
push 0x5b6fc0
call fcn.004d62f1
push 0x5b6fc0
call fcn.004c7a80
push str.IrfanView_Wallpaper
push 0x5b6fc0
call fcn.004d62f1
add esp, 0x24
test ebp, ebp
je 0x47b47f
push str..png
jmp 0x47b484
push str..bmp
push 0x5b6fc0
call fcn.004d62f1
mov eax, dword [esp + 0x458]
add esp, 8
test eax, eax
push ebx
mov ebx, dword [sym.imp.USER32.dll_GetDesktopWindow]
je 0x47b515
push 0
push 0
lea eax, [esp + 0x18]
push 0
lea ecx, [esp + 0x20]
push eax
push ecx
push edi
call fcn.004c5070
mov ecx, dword [esp + 0x28]
add esp, 0x18
lea edx, [esp + 0x10]
lea eax, [esp + 0x14]
push edx
mov edx, dword [esp + 0x18]
push eax
push ecx
push edx
call ebx
push eax
call fcn.004c7480
mov eax, dword [0x5b5604]
mov ecx, dword [0x59f74c]
mov edx, dword [0x59f748]
push 1
push 1
push eax
mov eax, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x38]
push edx
push eax
push ecx
push edi
call fcn.00421dd0
add esp, 0x34
mov esi, eax
xor eax, eax
mov dword [esp + 0x44c], eax
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x458]
test eax, eax
je 0x47b666
push 0
push 0
lea edx, [esp + 0x1c]
push 0
lea eax, [esp + 0x1c]
push edx
push eax
push edi
call fcn.004c5070
add esp, 0x18
lea ecx, [esp + 0x24]
push ecx
call ebx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
fild dword [esp + 0x10]
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
sub ebx, edx
fstp dword [esp + 0x20]
fild dword [esp + 0x14]
mov ebp, ebx
fstp dword [esp + 0x10]
fld dword [esp + 0x20]
fdiv dword [esp + 0x10]
mov dword [esp + 0x10], ebp
fstp dword [esp + 0x20]
fild dword [esp + 0x10]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fdiv dword [esp + 0x20]
fadd qword [0x5526c8]
call fcn.004d6118
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
mov edi, eax
sub esi, ecx
cmp edi, esi
mov dword [esp + 0x14], edi
jge 0x47b5cd
mov edi, esi
mov dword [esp + 0x14], edi
fild dword [esp + 0x14]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fmul dword [esp + 0x20]
fadd qword [0x5526c8]
call fcn.004d6118
mov ebp, eax
mov dword [esp + 0x10], ebp
mov eax, ebp
mov ecx, dword [0x59f748]
sub eax, ebx
push 1
cdq
sub eax, edx
push 1
sar eax, 1
mov dword [esp + 0x2c], eax
mov eax, edi
sub eax, esi
mov dword [esp + 0x34], ebx
cdq
sub eax, edx
mov edx, dword [0x5b5604]
sar eax, 1
mov dword [esp + 0x30], eax
mov eax, dword [0x59f74c]
push edx
mov edx, dword [esp + 0x454]
push eax
push ecx
push edi
push ebp
push edx
mov dword [esp + 0x50], esi
call fcn.00421dd0
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
mov esi, eax
mov eax, dword [esp + 0x50]
push eax
mov eax, dword [esp + 0x48]
push ecx
push edx
push eax
push esi
call fcn.0041c6c0
xor ebx, ebx
add esp, 0x34
cmp esi, ebx
mov edi, eax
je 0x47b64b
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov ebp, dword [esp + 0x1c]
mov esi, edi
mov edi, dword [esp + 0x448]
mov dword [esp + 0x44c], ebx
mov dword [esp + 0x450], ebx
push 0x20
push 0x5b6fc0
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x5b6fc0
push 0x5b9b00
call fcn.004d631b
add esp, 8
test esi, esi
pop ebx
je 0x47b6cd
test ebp, ebp
je 0x47b6a8
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
push 6
push esi
push 0x5b6fc0
call fcn.0040d7c0
add esp, 0x1c
jmp 0x47b6bb
push 0x5b9b00
push esi
push 0x5b6fc0
call fcn.004046c0
add esp, 0xc
push esi
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
jmp 0x47b700
test ebp, ebp
je 0x47b6eb
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
push 6
push edi
push 0x5b6fc0
call fcn.0040d7c0
add esp, 0x1c
jmp 0x47b6fe
push 0x5b9b00
push edi
push 0x5b6fc0
call fcn.004046c0
add esp, 0xc
mov edi, eax
test edi, edi
jne 0x47b73b
mov eax, dword [esp + 0x458]
test eax, eax
jne 0x47b72f
mov ecx, dword [0x5b5574]
push edi
push edi
push 0x5b9b00
push 0x598e5c
push 0x4d0
push ecx
call fcn.004cc7f0
add esp, 0x18
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x434
ret
lea edx, [esp + 0x14]
push edx
push 0x2001f
push 0
push str.Control_PanelDesktop
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x47b8fd
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea eax, [esp + 0x18]
lea ecx, [esp + 0x30]
push eax
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x20]
push ecx
push edx
push 0
mov edi, 0x104
push str.Wallpaper
push eax
mov dword [esp + 0x30], edi
call esi
lea ecx, [esp + 0x18]
lea edx, [esp + 0x238]
push ecx
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x20]
push edx
push eax
push 0
push str.TileWallpaper
push ecx
mov dword [esp + 0x30], edi
call esi
lea edx, [esp + 0x30]
push 0x5b6fc0
push edx
call fcn.004d7652
mov esi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
add esp, 8
test eax, eax
je 0x47b81f
lea eax, [esp + 0x30]
push eax
call fcn.004d6713
add esp, 4
lea ecx, [eax + eax + 2]
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x30]
push ecx
push edx
push 1
push 0
push str.PrevWallpaper
push eax
call esi
lea ecx, [esp + 0x238]
push ecx
call fcn.004d6713
mov ecx, dword [esp + 0x18]
add esp, 4
lea edx, [eax + eax + 2]
lea eax, [esp + 0x238]
push edx
push eax
push 1
push 0
push 0x59ffd4
push ecx
call esi
push 0x5b6fc0
call fcn.004d6713
add esp, 4
lea edx, [eax + eax + 2]
mov eax, dword [esp + 0x14]
push edx
push 0x5b6fc0
push 1
push 0
push str.Wallpaper
push eax
call esi
lea ecx, [esp + 0x20]
push 0x598478
push ecx
call fcn.004d631b
mov eax, dword [esp + 0x450]
add esp, 8
test eax, eax
je 0x47b875
lea edx, [esp + 0x20]
push 0x598490
push edx
call fcn.004d631b
add esp, 8
lea eax, [esp + 0x20]
push eax
call fcn.004d6713
add esp, 4
lea ecx, [eax + eax + 2]
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x20]
push ecx
push edx
push 1
push 0
push str.TileWallpaper
push eax
call esi
lea ecx, [esp + 0x20]
push 0x598478
push ecx
call fcn.004d631b
mov eax, dword [esp + 0x454]
add esp, 8
test eax, eax
je 0x47b8cb
lea edx, [esp + 0x20]
push 0x59ffd0
push edx
call fcn.004d631b
add esp, 8
lea eax, [esp + 0x20]
push eax
call fcn.004d6713
add esp, 4
lea ecx, [eax + eax + 2]
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x20]
push ecx
push edx
push 1
push 0
push str.WallpaperStyle
push eax
call esi
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0x5b6fc0
call fcn.0047b3a0
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebp
add esp, 0x434
ret