Function at 0x476440
Capabilities:
Check if file exists
Delete file
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x82c
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
xor ecx, ecx
cmp edi, ecx
je 0x4768bc
cmp dword [edi], 0x198
jne 0x4768bc
test byte [edi + 4], 1
mov dword [edi + 8], ecx
je 0x47648b
mov eax, dword [edi + 0x18c]
cmp eax, ecx
je 0x4768bc
cmp dword [edi + 0x190], ecx
je 0x4768bc
mov word [eax], cx
test byte [edi + 4], 2
je 0x476497
mov dword [edi + 0x194], ecx
mov eax, dword [ebp + 8]
cmp eax, ecx
mov esi, 0x4aec68
mov ebx, 0x174
je 0x47682a
cmp word [eax], cx
je 0x47682a
cmp word [0x4aec68], cx
jne 0x4764cc
push 0x40
push esi
push ebx
call fcn.00472111
add esp, 0xc
jmp 0x4764ce
mov eax, esi
push 0xffffffffffffffff
push eax
push 0xffffffffffffffff
push dword [ebp + 8]
push 1
push 0x800
call dword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
je 0x476828
push dword [ebp + 8]
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
lea eax, [ebp - 0x82c]
je 0x476572
mov esi, dword [sym.imp.SHLWAPI.dll_PathCombineW]
push str.skin.xml
push dword [ebp + 8]
push eax
call esi
mov ebx, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push eax
call ebx
test eax, eax
lea eax, [ebp - 0x82c]
je 0x47653d
push 0
push 0
mov dword [edi + 8], 2
push edi
push eax
call fcn.004760c4
add esp, 0x10
jmp 0x4768b7
push 0x48f200
push dword [ebp + 8]
push eax
call esi
push eax
call ebx
test eax, eax
je 0x4768b7
push 0
push 0
push edi
push str.skininfo.xml
push dword [ebp + 8]
lea eax, [ebp - 0x82c]
push eax
mov dword [edi + 8], 1
call esi
jmp 0x47652f
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x4768bc
lea eax, [ebp - 0x41c]
push eax
xor esi, esi
push esi
push 0x487b60
lea eax, [ebp - 0x82c]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x4768bc
push esi
push esi
push dword [ebp + 8]
lea ecx, [ebp - 4]
call fcn.00402b8d
push dword [eax]
call fcn.0041ebec
push dword [ebp - 4]
mov dword [ebp + 0xc], eax
call dword [sym.imp.NSCRT.dll_free]
cmp dword [ebp + 0xc], esi
pop ecx
pop ecx
je 0x4768bc
mov ebx, dword [sym.imp.KERNEL32.dll_CompareStringA]
mov byte [ebp - 0x214], 1
mov dword [ebp - 8], esi
mov dword [ebp - 4], esi
push dword [ebp + 0xc]
or dword [ebp - 0xc], 0xffffffff
call fcn.0041e507
jmp 0x4767ec
cmp byte [ebp - 0x214], 0
je 0x47680d
mov eax, dword [ebp - 4]
inc dword [ebp - 0xc]
xor ecx, ecx
cmp eax, ecx
je 0x47661b
cmp dword [ebp - 0xc], eax
je 0x4767f7
push ecx
push ecx
push ecx
push ecx
push 0x104
lea eax, [ebp - 0x110]
push eax
push ecx
push dword [ebp + 0xc]
call fcn.0041e4e0
add esp, 0x20
test eax, eax
jne 0x4767e4
cmp byte [ebp - 0x110], al
je 0x4767e4
lea eax, [ebp - 0x110]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
test esi, esi
je 0x4767e4
cmp byte [ebp + esi - 0x111], 0x2f
je 0x4767e4
cmp dword [edi + 8], 0
jne 0x476729
cmp esi, 8
je 0x47668b
jle 0x4766e2
cmp byte [ebp + esi - 0x119], 0x2f
jne 0x4766e2
push 0xffffffffffffffff
lea eax, [ebp + esi - 0x118]
push eax
push 0xffffffffffffffff
push str.main.bmp
push 1
push 0x409
call ebx
cmp eax, 2
jne 0x4766e2
push 0x4943e0
push 0x104
lea eax, [ebp - 0x214]
push eax
mov dword [edi + 8], 1
call fcn.00402db5
lea eax, [ebp - 0x214]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 4], eax
jmp 0x4767e4
cmp esi, 8
je 0x4766fb
jle 0x4767e4
cmp byte [ebp + esi - 0x119], 0x2f
jne 0x4767e4
push 0xffffffffffffffff
lea eax, [ebp + esi - 0x118]
push eax
push 0xffffffffffffffff
push 0x48a37c
push 1
push 0x409
call ebx
cmp eax, 2
jne 0x4767e4
mov dword [edi + 8], eax
lea eax, [ebp - 0x41c]
jmp 0x47678f
cmp esi, dword [ebp - 8]
je 0x476747
jle 0x4767e4
mov eax, esi
sub eax, dword [ebp - 8]
cmp byte [ebp + eax - 0x111], 0x2f
jne 0x4767e4
sub esi, dword [ebp - 8]
push 0xffffffffffffffff
lea eax, [ebp + esi - 0x110]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x214]
push eax
push 1
push 0x409
call ebx
cmp eax, 2
jne 0x4767e4
push 0xffffffffffffffff
push 0x4943e0
push 0xffffffffffffffff
lea eax, [ebp - 0x214]
push eax
push 1
push 0x409
call ebx
cmp eax, 2
lea eax, [ebp - 0x41c]
jne 0x4767b4
push 0x104
push eax
push dword [ebp + 0xc]
lea esi, [ebp - 0x214]
mov eax, edi
call fcn.004763a5
add esp, 0xc
test eax, eax
mov dword [ebp - 8], eax
je 0x4767e4
jmp 0x4766d7
push eax
push dword [ebp + 0xc]
call fcn.00475dd5
test eax, eax
pop ecx
pop ecx
je 0x4767dd
xor eax, eax
push eax
lea ecx, [ebp - 0x41c]
push ecx
push eax
push eax
call fcn.00473940
add esp, 0x10
mov dword [edi + 0x194], eax
mov byte [ebp - 0x214], 0
push dword [ebp + 0xc]
call fcn.0041e549
test eax, eax
pop ecx
je 0x4765f9
jmp 0x4767fa
mov dword [ebp - 4], ecx
cmp byte [ebp - 0x214], 0
je 0x47680d
cmp dword [ebp - 4], 0
jne 0x4765e8
push dword [ebp + 0xc]
call fcn.0041ebfa
pop ecx
lea eax, [ebp - 0x41c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x4768b7
xor ecx, ecx
mov dword [edi + 8], 1
cmp word [0x4aec68], cx
jne 0x476848
push 0x40
push esi
push ebx
call fcn.00472111
add esp, 0xc
jmp 0x47684a
mov eax, esi
push eax
push 0x20
lea eax, [edi + 0xc]
push eax
call fcn.0047aaff
test byte [edi + 4], 1
je 0x47687a
mov eax, dword [edi + 0x190]
cmp eax, 0x7fffffff
ja 0x47687a
push str.Winamp_base_skin_v5.5
push eax
push dword [edi + 0x18c]
call fcn.0047aaff
test byte [edi + 4], 2
je 0x476897
push 0
push 0x70
push 0x494028
call fcn.004734df
add esp, 0xc
mov dword [edi + 0x194], eax
push str.Steve_Gedikian
push 0x20
lea eax, [edi + 0x6c]
push eax
call fcn.0047aaff
push 0x49438c
push 0x10
add edi, 0x4c
push edi
call fcn.0047aaff
xor eax, eax
inc eax
jmp 0x4768be
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret