Function at 0x46cd44
Capabilities:
Check if file exists
Delete file
Get common file path
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x830
lea eax, [ebp - 0x830]
push ebx
push esi
push edi
push 0x410
xor ebx, ebx
push ebx
push eax
call fcn.0049a3b0
mov edi, dword [ebp + 0xc]
add esp, 0xc
test edi, edi
je 0x46d229
cmp dword [edi], 0x198
jne 0x46d229
mov eax, dword [edi + 4]
mov dword [edi + 8], ebx
test al, 1
je 0x46cdaa
mov eax, dword [edi + 0x18c]
test eax, eax
je 0x46d229
cmp dword [edi + 0x190], ebx
je 0x46d229
xor ecx, ecx
mov word [eax], cx
mov eax, dword [edi + 4]
test al, 2
je 0x46cdb4
mov dword [edi + 0x194], ebx
mov esi, dword [ebp + 8]
mov ebx, 0x52f698
test esi, esi
je 0x46d199
xor ecx, ecx
cmp word [esi], cx
je 0x46d199
cmp word [0x52f698], cx
jne 0x46cdea
push 0x40
push ebx
push 0x174
call fcn.00441947
add esp, 0xc
jmp 0x46cdec
mov eax, ebx
push 0xffffffffffffffff
push eax
push 0xffffffffffffffff
push esi
push 1
push 0x800
call dword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
je 0x46d199
push esi
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
je 0x46ce8e
mov ebx, dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [ebp - 0x830]
push 0x4d4fdc
push esi
push eax
call ebx
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x46ce47
xor eax, eax
mov dword [edi + 8], 2
push eax
push eax
push edi
lea eax, [ebp - 0x830]
jmp 0x46ce80
push 0x4cef44
push esi
lea eax, [ebp - 0x830]
push eax
call ebx
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x46d224
xor eax, eax
mov dword [edi + 8], 1
push eax
push eax
push edi
push 0x4d4ff0
push esi
lea eax, [ebp - 0x830]
push eax
call ebx
push eax
call fcn.0046d2e3
add esp, 0x10
jmp 0x46d224
push 0x208
xor ebx, ebx
lea eax, [ebp - 0x420]
push ebx
push eax
call fcn.0049a3b0
push 0x104
lea eax, [ebp - 0x114]
push ebx
push eax
call fcn.0049a3b0
push 0x103
lea eax, [ebp - 0x217]
push ebx
push eax
call fcn.0049a3b0
add esp, 0x24
lea eax, [ebp - 0x830]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x46d229
lea eax, [ebp - 0x420]
push eax
push ebx
push 0x4cda64
lea eax, [ebp - 0x830]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x46d229
push ebx
push ebx
push esi
call fcn.00404fb9
mov esi, eax
push esi
call fcn.00494c50
push esi
mov ebx, eax
call fcn.004a1b5f
add esp, 0x14
test ebx, ebx
je 0x46d229
mov eax, dword [sym.imp.KERNEL32.dll_lstrlenA]
xor ecx, ecx
mov esi, ecx
mov dword [ebp - 0x10], eax
mov eax, dword [sym.imp.KERNEL32.dll_CompareStringA]
mov byte [ebp - 0x218], 1
mov dword [ebp - 8], ecx
mov dword [ebp + 0xc], esi
mov dword [ebp - 0xc], eax
or eax, 0xffffffff
push ebx
mov dword [ebp - 4], eax
call fcn.00494b40
jmp 0x46d15c
mov al, byte [ebp - 0x218]
test al, al
je 0x46d177
mov ecx, dword [ebp - 4]
inc ecx
mov dword [ebp - 4], ecx
test esi, esi
je 0x46cf7b
cmp ecx, esi
je 0x46d190
xor ecx, ecx
lea eax, [ebp - 0x114]
push ecx
push ecx
push ecx
push ecx
push 0x104
push eax
push ecx
push ebx
call fcn.00494a80
add esp, 0x20
test eax, eax
jne 0x46d156
cmp byte [ebp - 0x114], al
je 0x46d156
lea eax, [ebp - 0x114]
push eax
call dword [ebp - 0x10]
mov esi, eax
test esi, esi
je 0x46d153
cmp byte [ebp + esi - 0x115], 0x2f
je 0x46d153
xor eax, eax
cmp dword [edi + 8], eax
jne 0x46d084
cmp esi, 8
je 0x46cff1
jle 0x46d153
cmp byte [ebp + esi - 0x11d], 0x2f
jne 0x46d153
push 0xffffffffffffffff
lea eax, [ebp + esi - 0x11c]
push eax
push 0xffffffffffffffff
push str.main.bmp
push 1
push 0x409
call dword [ebp - 0xc]
cmp eax, 2
jne 0x46d040
push str.skininfo.xml
push 0x104
lea eax, [ebp - 0x218]
mov dword [edi + 8], 1
push eax
call fcn.00411dad
lea eax, [ebp - 0x218]
push eax
call dword [ebp - 0x10]
mov dword [ebp - 8], eax
jmp 0x46d112
cmp esi, 8
je 0x46d059
jle 0x46d153
cmp byte [ebp + esi - 0x11d], 0x2f
jne 0x46d153
push 0xffffffffffffffff
lea eax, [ebp + esi - 0x11c]
push eax
push 0xffffffffffffffff
push str.skin.xml
push 1
push 0x409
call dword [ebp - 0xc]
push 2
pop ecx
cmp eax, ecx
jne 0x46d153
mov dword [edi + 8], ecx
jmp 0x46d0ec
mov eax, dword [ebp - 8]
cmp esi, eax
je 0x46d0a3
jle 0x46d153
sub esi, eax
cmp byte [ebp + esi - 0x115], 0x2f
jne 0x46d153
jmp 0x46d0a5
sub esi, eax
push 0xffffffffffffffff
lea eax, [ebp - 0x114]
add eax, esi
mov esi, dword [ebp - 0xc]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x218]
push eax
push 1
push 0x409
call esi
cmp eax, 2
jne 0x46d153
push 0xffffffffffffffff
push str.skininfo.xml
push 0xffffffffffffffff
lea eax, [ebp - 0x218]
push eax
push 1
push 0x409
call esi
cmp eax, 2
jne 0x46d11a
push 0x104
lea eax, [ebp - 0x218]
push eax
push edi
lea eax, [ebp - 0x420]
push eax
push ebx
call fcn.0046d3f8
mov esi, eax
add esp, 0x14
mov dword [ebp - 8], esi
test esi, esi
je 0x46d153
mov esi, dword [ebp - 4]
mov dword [ebp + 0xc], esi
jmp 0x46d156
lea eax, [ebp - 0x420]
push eax
push ebx
call fcn.0046cbb6
pop ecx
pop ecx
test eax, eax
je 0x46d143
xor ecx, ecx
lea eax, [ebp - 0x420]
push ecx
push eax
push ecx
push ecx
call fcn.0046a2d6
add esp, 0x10
jmp 0x46d145
xor eax, eax
mov dword [edi + 0x194], eax
xor eax, eax
mov byte [ebp - 0x218], al
mov esi, dword [ebp + 0xc]
push ebx
call fcn.00494ba0
pop ecx
test eax, eax
je 0x46cf5a
mov al, byte [ebp - 0x218]
test al, al
je 0x46d177
test esi, esi
jne 0x46cf49
push ebx
call fcn.00494990
pop ecx
lea ecx, [ebp - 0x420]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x46d224
xor ecx, ecx
mov esi, ecx
mov dword [ebp + 0xc], esi
jmp 0x46d16b
mov dword [edi + 8], 1
cmp word [0x52f698], 0
jne 0x46d1bc
push 0x40
push ebx
push 0x174
call fcn.00441947
add esp, 0xc
mov ebx, eax
push ebx
push 0x20
lea eax, [edi + 0xc]
push eax
call fcn.0040c4d6
mov eax, dword [edi + 4]
test al, 1
je 0x46d1e8
push str.Winamp_base_skin_v5.5
push dword [edi + 0x190]
push dword [edi + 0x18c]
call fcn.0040c4d6
mov eax, dword [edi + 4]
test al, 2
je 0x46d204
xor eax, eax
push eax
push 0x70
push 0x4d4d6c
call fcn.00469fb7
add esp, 0xc
mov dword [edi + 0x194], eax
push str.Steve_Gedikian
push 0x20
lea eax, [edi + 0x6c]
push eax
call fcn.0040c4d6
push 0x4d4fd4
push 0x10
lea eax, [edi + 0x4c]
push eax
call fcn.0040c4d6
xor eax, eax
inc eax
jmp 0x46d22b
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret