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

Disassembly:
push 0xffffffffffffffff
push 0x4f5128
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.004df219
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.004df219
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.004df219
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.00481390
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.004040e0
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 0x454b7d
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 0x454ba0
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.004195d0
add esp, 8
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x50], 5
call fcn.004040e0
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 0x454be4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x10]
push eax
call fcn.00485ff0
mov ebx, dword [esp + 0x1c]
push ebx
call fcn.00485ff0
mov ebp, dword [esp + 0x5c]
mov eax, dword [ebp]
mov ecx, dword [eax + 0x18]
add esp, 8
cmp ecx, 2
jbe 0x454c35
cmp ecx, 4
jne 0x454fab
push 0
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x60], esp
push 0x4fca4e
call fcn.00401fd0
call fcn.004527d0
add esp, 0xc
jmp 0x454fab
mov ecx, dword [eax + 0x24]
mov edi, dword [eax + 0x14]
mov edx, ecx
test edx, edx
jbe 0x454c46
mov eax, dword [eax + 0x28]
jmp 0x454c48
xor eax, eax
push 0xffffffffffffffff
push ecx
push eax
call fcn.0047c260
add esp, 0xc
cmp edi, eax
je 0x454ca5
push 0x7c
push str..WallPaperSet.cpp
call fcn.00407350
mov ecx, eax
call fcn.0040a680
push str.WallPaperSet_Check_CRC_error.
push 0x20
call fcn.0047dea0
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 0x454c9d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea eax, [ebx - 0x10]
jmp 0x454e02
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 0x454cc8
mov ecx, dword [ecx + 0x20]
jmp 0x454cca
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.004040e0
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 0x454d0a
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 0x454d2d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea ecx, [esp + 0x34]
call fcn.004e4494
mov dword [esp + 0x34], 0x4fcc68
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.00409450
add esp, 0xc
mov eax, dword [eax]
push 0
push 0x1001
push eax
lea ecx, [esp + 0x40]
mov byte [esp + 0x58], 9
call fcn.00485560
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 0x454d9d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
test bl, bl
je 0x454e5b
push 0x88
push str..WallPaperSet.cpp
call fcn.00407350
mov ecx, eax
call fcn.0040a680
push str.WallPaperSet_Write_Path1_failed.
push 0x20
call fcn.0047dea0
add esp, 8
lea ecx, [esp + 0x34]
mov byte [esp + 0x4c], 2
call fcn.004e44d3
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 0x454dfb
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 0x454e1e
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 0x454e44
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 0x454e6c
mov eax, dword [eax + 0x28]
jmp 0x454e6e
xor eax, eax
push ecx
push eax
lea ecx, [esp + 0x3c]
call fcn.00485660
lea ecx, [esp + 0x34]
call fcn.004e4432
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
push eax
push ecx
call fcn.004ceccf
add esp, 8
test eax, eax
je 0x454f6a
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x34]
push ecx
call fcn.00409450
add esp, 0xc
mov eax, dword [eax]
push 0
push 0x1001
push eax
lea ecx, [esp + 0x40]
mov byte [esp + 0x58], 0xa
call fcn.00485560
mov ebx, eax
neg ebx
sbb bl, bl
lea ecx, [esp + 0x2c]
inc bl
mov byte [esp + 0x4c], 8
call fcn.00401580
test bl, bl
je 0x454f43
push str.WallPaperSet_Write_Path2_failed.
push 0x20
push 0x93
push str..WallPaperSet.cpp
call fcn.0040a700
add esp, 8
call eax
add esp, 8
lea ecx, [esp + 0x34]
mov byte [esp + 0x4c], 2
call fcn.004e44d3
lea ecx, [esp + 0x1c]
call fcn.00401580
lea ecx, [esp + 0x18]
call fcn.00401580
lea ecx, [esp + 0x10]
call fcn.00401580
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 0x454f54
mov eax, dword [eax + 0x28]
jmp 0x454f56
xor eax, eax
push ecx
push eax
lea ecx, [esp + 0x3c]
call fcn.00485660
lea ecx, [esp + 0x34]
call fcn.004e4432
mov eax, dword [ebp]
mov eax, dword [eax + 0x18]
push 0
push eax
mov ecx, esi
call fcn.004546e0
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.00409450
add esp, 0xc
call fcn.004527d0
add esp, 0xc
lea ecx, [esp + 0x34]
mov byte [esp + 0x4c], 2
call fcn.004e44d3
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.00409450
mov eax, dword [eax]
sub eax, 0x10
push eax
mov byte [esp + 0x5c], 0xc
call fcn.00401660
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 0x45501e
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 0x505824
mov dword [esi + 0x28], ecx
push 0x4fcf54
lea ecx, [esp + 0x20]
call fcn.0047d1c0
mov eax, dword [esi + 0x28]
push eax
push str.Type
push 0x4fcf54
lea ecx, [esp + 0x20]
call fcn.0047d1c0
mov ebp, dword [esp + 0x1c]
push ebp
push str.File
push 0x4fcf54
lea ecx, [esp + 0x20]
call fcn.0047d1a0
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
push ecx
push edx
call fcn.004ceccf
add esp, 8
test eax, eax
je 0x455123
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x38]
push edx
call fcn.00409450
add esp, 0xc
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x50], 0xf
call fcn.004040e0
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 0x4550e1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esi + 0x24]
push eax
push 0x505824
push 0x4fcf54
lea ecx, [esp + 0x20]
call fcn.0047d1c0
mov ecx, dword [esi + 0x28]
push ecx
push str.Type
push 0x4fcf54
lea ecx, [esp + 0x20]
call fcn.0047d1c0
push ebp
push str.File
push 0x4fcf54
lea ecx, [esp + 0x20]
call fcn.0047d1a0
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 0x45514d
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 0x455170
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 0x45518f
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 0x4551b2
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 0x4551d8
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