Function at 0x456b20
Capabilities:
Access peb ldr_data
Set file attributes

Disassembly:
push 0xffffffffffffffff
push 0x4fb2e8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x34
push ebx
push ebp
push esi
push edi
mov esi, ecx
call fcn.004e5159
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x10], eax
mov dword [esp + 0x4c], 0
call fcn.004e5159
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x18], eax
mov byte [esp + 0x4c], 1
call fcn.004e5159
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x28]
push eax
mov byte [esp + 0x50], 2
call fcn.00483220
push str.WallPaper_
push eax
lea ecx, [esp + 0x30]
mov bl, 3
push ecx
mov byte [esp + 0x5c], bl
call fcn.00401e30
add esp, 0x10
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x50], 4
call fcn.00403fd0
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0x4c], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x456bdd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0x4c], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x456c00
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x2c]
push ecx
call fcn.0041ab80
add esp, 8
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x50], 5
call fcn.00403fd0
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0x4c], 2
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x456c44
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x10]
push eax
call fcn.00487ee0
mov ebx, dword [esp + 0x1c]
push ebx
call fcn.00487ee0
mov ebp, dword [esp + 0x5c]
mov eax, dword [ebp]
mov ecx, dword [eax + 0x18]
add esp, 8
cmp ecx, 2
jbe 0x456c95
cmp ecx, 4
jne 0x45700b
push 0
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x60], esp
push 0x502a56
call fcn.00401fd0
call fcn.00454810
add esp, 0xc
jmp 0x45700b
mov ecx, dword [eax + 0x24]
mov edi, dword [eax + 0x14]
mov edx, ecx
test edx, edx
jbe 0x456ca6
mov eax, dword [eax + 0x28]
jmp 0x456ca8
xor eax, eax
push 0xffffffffffffffff
push ecx
push eax
call fcn.0047e040
add esp, 0xc
cmp edi, eax
je 0x456d05
push 0x7c
push str..WallPaperSet.cpp
call fcn.00407270
mov ecx, eax
call fcn.0040a520
push str.WallPaperSet_Check_CRC_error.
push 0x20
call fcn.0047fc80
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
add esp, 8
mov byte [esp + 0x4c], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x456cfd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea eax, [ebx - 0x10]
jmp 0x456e62
push str.WallPaper
lea ecx, [esp + 0x2c]
call fcn.00401fd0
mov ecx, dword [ebp]
mov edx, dword [ecx + 0x1c]
test edx, edx
mov bl, 6
mov byte [esp + 0x4c], bl
jbe 0x456d28
mov ecx, dword [ecx + 0x20]
jmp 0x456d2a
xor ecx, ecx
push ecx
push eax
lea eax, [esp + 0x5c]
push eax
call fcn.00401e30
add esp, 0xc
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x50], 7
call fcn.00403fd0
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
mov byte [esp + 0x4c], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x456d6a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0x4c], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x456d8d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea ecx, [esp + 0x34]
call fcn.004ea406
mov dword [esp + 0x34], 0x502c70
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x2c]
push edx
mov byte [esp + 0x58], 8
call fcn.004092f0
add esp, 0xc
mov eax, dword [eax]
push 0
push 0x1001
push eax
lea ecx, [esp + 0x40]
mov byte [esp + 0x58], 9
call fcn.00487450
mov ebx, eax
mov eax, dword [esp + 0x24]
neg ebx
sbb bl, bl
add eax, 0xfffffff0
inc bl
mov byte [esp + 0x4c], 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x456dfd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
test bl, bl
je 0x456ebb
push 0x88
push str..WallPaperSet.cpp
call fcn.00407270
mov ecx, eax
call fcn.0040a520
push str.WallPaperSet_Write_Path1_failed.
push 0x20
call fcn.0047fc80
add esp, 8
lea ecx, [esp + 0x34]
mov byte [esp + 0x4c], 2
call fcn.004ea445
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x4c], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x456e5b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x4c], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x456e7e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov dword [esp + 0x4c], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x456ea4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
xor eax, eax
mov ecx, dword [esp + 0x44]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 4
mov eax, dword [ebp]
mov ecx, dword [eax + 0x24]
mov edx, ecx
test edx, edx
jbe 0x456ecc
mov eax, dword [eax + 0x28]
jmp 0x456ece
xor eax, eax
push ecx
push eax
lea ecx, [esp + 0x3c]
call fcn.00487550
lea ecx, [esp + 0x34]
call fcn.004ea3a4
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
push eax
push ecx
call fcn.004d4c0f
add esp, 8
test eax, eax
je 0x456fca
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x34]
push ecx
call fcn.004092f0
add esp, 0xc
mov eax, dword [eax]
push 0
push 0x1001
push eax
lea ecx, [esp + 0x40]
mov byte [esp + 0x58], 0xa
call fcn.00487450
mov ebx, eax
neg ebx
sbb bl, bl
lea ecx, [esp + 0x2c]
inc bl
mov byte [esp + 0x4c], 8
call fcn.004016e0
test bl, bl
je 0x456fa3
push str.WallPaperSet_Write_Path2_failed.
push 0x20
push 0x93
push str..WallPaperSet.cpp
call fcn.0040a5a0
add esp, 8
call eax
add esp, 8
lea ecx, [esp + 0x34]
mov byte [esp + 0x4c], 2
call fcn.004ea445
lea ecx, [esp + 0x1c]
call fcn.004016e0
lea ecx, [esp + 0x18]
call fcn.004016e0
lea ecx, [esp + 0x10]
call fcn.004016e0
xor eax, eax
mov ecx, dword [esp + 0x44]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 4
mov eax, dword [ebp]
mov ecx, dword [eax + 0x24]
mov edx, ecx
test edx, edx
jbe 0x456fb4
mov eax, dword [eax + 0x28]
jmp 0x456fb6
xor eax, eax
push ecx
push eax
lea ecx, [esp + 0x3c]
call fcn.00487550
lea ecx, [esp + 0x34]
call fcn.004ea3a4
mov eax, dword [ebp]
mov eax, dword [eax + 0x18]
push 0
push eax
mov ecx, esi
call fcn.00456740
push eax
push ecx
mov edx, esp
mov dword [esp + 0x3c], esp
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x20]
push ecx
push edx
call fcn.004092f0
add esp, 0xc
call fcn.00454810
add esp, 0xc
lea ecx, [esp + 0x34]
mov byte [esp + 0x4c], 2
call fcn.004ea445
push str.WallPaper.ini
lea ecx, [esp + 0x24]
call fcn.00401fd0
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x5c]
push ecx
mov byte [esp + 0x58], 0xb
call fcn.004092f0
mov eax, dword [eax]
sub eax, 0x10
push eax
mov byte [esp + 0x5c], 0xc
call fcn.004013d0
mov edi, dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
add esp, 0x10
add eax, 0x10
push 0x80
push eax
mov dword [esp + 0x1c], eax
call edi
mov eax, dword [esp + 0x54]
mov bl, 0xe
add eax, 0xfffffff0
mov byte [esp + 0x4c], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x45707e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebp]
mov eax, dword [eax + 0x14]
mov dword [esi + 0x24], eax
mov ecx, dword [ebp]
mov ecx, dword [ecx + 0x18]
push eax
push 0x50b73c
mov dword [esi + 0x28], ecx
push 0x502f4c
lea ecx, [esp + 0x20]
call fcn.0047efa0
mov eax, dword [esi + 0x28]
push eax
push str.Type
push 0x502f4c
lea ecx, [esp + 0x20]
call fcn.0047efa0
mov ebp, dword [esp + 0x1c]
push ebp
push str.File
push 0x502f4c
lea ecx, [esp + 0x20]
call fcn.0047ef80
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
push ecx
push edx
call fcn.004d4c0f
add esp, 8
test eax, eax
je 0x457183
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x38]
push edx
call fcn.004092f0
add esp, 0xc
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x50], 0xf
call fcn.00403fd0
mov eax, dword [esp + 0x14]
push 0x80
push eax
call edi
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0x4c], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x457141
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esi + 0x24]
push eax
push 0x50b73c
push 0x502f4c
lea ecx, [esp + 0x20]
call fcn.0047efa0
mov ecx, dword [esi + 0x28]
push ecx
push str.Type
push 0x502f4c
lea ecx, [esp + 0x20]
call fcn.0047efa0
push ebp
push str.File
push 0x502f4c
lea ecx, [esp + 0x20]
call fcn.0047ef80
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov dword [esi + 0x2c], 1
mov byte [esp + 0x4c], 0xb
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4571ad
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x4c], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4571d0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea eax, [ebp - 0x10]
mov byte [esp + 0x4c], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4571ef
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x4c], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x457212
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov dword [esp + 0x4c], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x457238
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov ecx, dword [esp + 0x44]
pop edi
pop esi
pop ebp
mov eax, 1
mov dword fs:[0], ecx
pop ebx
add esp, 0x40
ret 4