Function at 0x405580
Capabilities:
Check if file exists
Create directory
Get common file path

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x473870
push eax
mov dword fs:[0], esp
sub esp, 8
push esi
push 0
push str.currentpic
call fcn.004651e0
mov edx, eax
add esp, 8
test edx, edx
jne 0x4055b5
xor ecx, ecx
jmp 0x4055cf
mov ecx, edx
lea esi, [ecx + 2]
lea ebx, [ebx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4055c0
sub ecx, esi
sar ecx, 1
push ecx
push edx
mov ecx, 0x4a46b8
call fcn.00408f60
push dword [0x4a46b8]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4055f8
push eax
push dword [0x4a46b8]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push 0
push 0x1a
push 0x4a3ec8
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push str.TencentQQSkins_skin.ini
push 0x4a3ec8
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push str._transparent.zip
lea eax, [ebp - 0x10]
push 0x4a46b8
push eax
call fcn.00402190
add esp, 0xc
push eax
mov ecx, 0x4a46c4
mov dword [ebp - 4], 0
call fcn.00401e70
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
or esi, 0xffffffff
mov dword [ebp - 4], 0xffffffff
lea ecx, [edx + 0xc]
mov eax, esi
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x405667
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.msgiftransparent.zip
lea eax, [ebp - 0x10]
push 0x4a46b8
push eax
call fcn.00402190
add esp, 0xc
push eax
mov ecx, 0x4a46c0
mov dword [ebp - 4], 1
call fcn.00401e70
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4056b2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x47e668
lea eax, [ebp - 0x10]
push 0x4a46b8
push eax
call fcn.00402190
add esp, 0xc
push eax
mov ecx, 0x4a46bc
mov dword [ebp - 4], 2
call fcn.00401e70
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4056fd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str._saveever.jpg
lea eax, [ebp - 0x10]
push 0x4a46b8
push eax
call fcn.00402190
add esp, 0xc
push eax
mov ecx, 0x4a46d0
mov dword [ebp - 4], 3
call fcn.00401e70
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x405748
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x47e698
lea eax, [ebp - 0x10]
push 0x4a46b8
push eax
call fcn.00402190
add esp, 0xc
push eax
mov ecx, 0x4a46cc
mov dword [ebp - 4], 4
call fcn.00401e70
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x405793
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.glasseffect.zip
lea eax, [ebp - 0x10]
push 0x4a46b8
push eax
call fcn.00402190
add esp, 0xc
push eax
mov ecx, 0x4a46c8
mov dword [ebp - 4], 5
call fcn.00401e70
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4057de
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x47e440
lea eax, [ebp - 0x10]
push 0x4a46b8
push eax
call fcn.00402190
add esp, 0xc
push eax
mov ecx, 0x4a4768
mov dword [ebp - 4], 6
call fcn.00401e70
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x405829
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x47e6dc
lea eax, [ebp - 0x10]
push 0x4a46b8
push eax
call fcn.00402190
add esp, 0xc
push eax
mov ecx, 0x4a46d4
mov dword [ebp - 4], 7
call fcn.00401e70
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x405874
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x47e6f0
lea eax, [ebp - 0x10]
push 0x4a46b8
push eax
call fcn.00402190
add esp, 0xc
push eax
mov ecx, 0x4a46e4
mov dword [ebp - 4], 8
call fcn.00401e70
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4058bf
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x47e704
lea eax, [ebp - 0x10]
push 0x4a46b8
push eax
call fcn.00402190
add esp, 0xc
push eax
mov ecx, 0x4a46d8
mov dword [ebp - 4], 9
call fcn.00401e70
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40590a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x47e718
lea eax, [ebp - 0x10]
push 0x4a46b8
push eax
call fcn.00402190
add esp, 0xc
push eax
mov ecx, 0x4a46e0
mov dword [ebp - 4], 0xa
call fcn.00401e70
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x405955
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x47e72c
lea eax, [ebp - 0x10]
push 0x4a46b8
push eax
call fcn.00402190
add esp, 0xc
push eax
mov ecx, 0x4a46dc
mov dword [ebp - 4], 0xb
call fcn.00401e70
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4059a0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x47e740
lea eax, [ebp - 0x10]
push 0x4a46b8
push eax
call fcn.00402190
add esp, 0xc
push eax
mov ecx, 0x4a46e8
mov dword [ebp - 4], 0xc
call fcn.00401e70
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4059eb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str._cfsoft
lea eax, [ebp - 0x14]
push 0x4a4780
push eax
call fcn.00402190
add esp, 0xc
push eax
mov ecx, 0x4a4788
mov dword [ebp - 4], 0xd
call fcn.00401e70
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], esi
dec esi
test esi, esi
pop esi
jg 0x405a35
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret