Function at 0x401000
Capabilities:
Delete file
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x404210
mov eax, dword fs:[0]
push eax
mov eax, 0x1234
call fcn.00403970
mov eax, dword [0x407130]
xor eax, esp
mov dword [esp + 0x1230], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x407130]
xor eax, esp
push eax
lea eax, [esp + 0x1248]
mov dword fs:[0], eax
mov eax, dword [esp + 0x125c]
mov esi, dword [esp + 0x1258]
xor edi, edi
lea ecx, [esp + 0x18]
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], edi
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
push esi
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1254], edi
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
push esi
call fcn.00402a30
add esp, 4
cmp eax, 1
jne 0x40108f
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::Empty]
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::IsEmpty]
test al, al
jne 0x4013f0
lea ecx, [esp + 0xa44]
push ecx
lea edx, [esp + 0xc48]
push edx
lea eax, [esp + 0x64c]
push eax
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esp + 0x28]
call dword [sym.imp.mfc90u.dll_]
push eax
call dword [sym.imp.MSVCR90.dll__wsplitpath]
add esp, 0x14
lea ecx, [esp + 0x1c]
mov esi, 1
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
mov edi, dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format]
push esi
lea edx, [esp + 0x20]
push str.File_d
mov ebx, 2
push edx
mov byte [esp + 0x125c], bl
call edi
add esp, 0xc
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_]
push eax
push 0x200
push 0x200
lea ecx, [esp + 0x20]
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::GetBuffer]
push eax
push 0x4053f4
lea ecx, [esp + 0x2c]
call dword [sym.imp.mfc90u.dll_]
mov ebp, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push eax
push str.playlist
call ebp
push 0xffffffffffffffff
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::ReleaseBuffer]
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::TrimLeft]
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::TrimRight]
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::IsEmpty]
test al, al
jne 0x4013d8
lea esp, [esp]
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_]
push eax
call fcn.004029f0
add esp, 4
test eax, eax
jne 0x4012cf
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_]
push eax
call fcn.00402a10
add esp, 4
test eax, eax
jne 0x4012ae
lea eax, [esp + 0x244]
push eax
lea ecx, [esp + 0x448]
push ecx
lea edx, [esp + 0x4c]
push edx
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x24]
call dword [sym.imp.mfc90u.dll_]
push eax
call dword [sym.imp.MSVCR90.dll__wsplitpath]
lea eax, [esp + 0x48]
add esp, 0x14
lea edx, [eax + 2]
jmp 0x4011f0
mov cx, word [eax]
add eax, ebx
test cx, cx
jne 0x4011f0
sub eax, edx
sar eax, 1
jne 0x4012ae
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0x38]
push 3
push edx
call dword [sym.imp.MSVCR90.dll_wcscpy_s]
add esp, 0xc
cmp word [esp + 0x44], 0x5c
je 0x40126c
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x848]
push pe_nt_image_headers32
push ecx
call dword [sym.imp.MSVCR90.dll_wcscpy_s]
lea edx, [esp + 0x650]
push edx
lea eax, [esp + 0x54]
push pe_nt_image_headers32
push eax
call dword [sym.imp.MSVCR90.dll_wcscpy_s]
lea ecx, [esp + 0x85c]
push ecx
lea edx, [esp + 0x60]
push pe_nt_image_headers32
push edx
call dword [sym.imp.MSVCR90.dll_wcscat_s]
add esp, 0x24
lea eax, [esp + 0x244]
push eax
lea ecx, [esp + 0x448]
push ecx
lea edx, [esp + 0x4c]
push edx
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0xe54]
push 0x200
push ecx
call dword [sym.imp.MSVCR90.dll__wmakepath_s]
add esp, 0x18
lea edx, [esp + 0xe44]
push edx
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_]
push eax
call fcn.00401d90
add esp, 4
test eax, eax
jne 0x4012cf
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::Empty]
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::GetLength]
test eax, eax
jle 0x40132f
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.00402ac0
add esp, 8
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1254], 3
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_2]
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1250], bl
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 8]
lea edx, [esp + 0x14]
push edx
push eax
call sub.mfc90u.dll_CStringArray::SetAtGrow_1
inc dword [esp + 0x20]
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x1c]
inc esi
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
push esi
lea eax, [esp + 0x20]
push str.File_d
push eax
mov byte [esp + 0x125c], bl
call edi
add esp, 0xc
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_]
push eax
push 0x200
push 0x200
lea ecx, [esp + 0x20]
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::GetBuffer]
push eax
push 0x4053f4
lea ecx, [esp + 0x2c]
call dword [sym.imp.mfc90u.dll_]
push eax
push str.playlist
call ebp
push 0xffffffffffffffff
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::ReleaseBuffer]
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::TrimLeft]
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::TrimRight]
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::IsEmpty]
test al, al
je 0x401180
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov esi, dword [esp + 0x28]
push esi
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_]
push eax
call dword [sym.imp.MSVCR90.dll__wcsicmp]
add esp, 8
test eax, eax
je 0x40141a
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1248]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1230]
xor ecx, esp
call fcn.00403952
add esp, 0x1240
ret