Function at 0x43af90
Capabilities:
Get common file path
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x460297
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xf18
push ebx
push esi
push str.output
lea eax, [esp + 0x10]
push 0x4f20c0
mov dword [esp + 0x20], ecx
push eax
call sub.MFC42.DLL_operator_1
push str.CACHE
lea ecx, [esp + 0x18]
xor ebx, ebx
push 0x4f20c0
push ecx
mov dword [esp + 0xf34], ebx
call sub.MFC42.DLL_operator_1
push str.Settings.ini
lea edx, [esp + 0xc]
push 0x4f20c0
push edx
mov byte [esp + 0xf34], 1
call sub.MFC42.DLL_operator_1
lea ecx, [esp + 0x10]
mov byte [esp + 0xf28], 2
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 8]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push eax
push ebx
push str.MP3Encoder
push 0x470610
mov byte [esp + 0xf38], 3
call esi
cmp eax, ebx
mov dword [0x4f1f50], eax
je 0x43b03e
mov dword [0x4f1f50], ebx
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc]
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push edi
push ecx
lea edx, [esp + 0x534]
push 0x9c4
push edx
push eax
push str.OutputFolder
push str.General
call ebp
lea ecx, [esp + 0x530]
push ecx
push 0x46e144
push 0x4f1f54
call sub.MFC42.DLL_CString::Format
mov edx, dword [esp + 0x1c]
add esp, 0xc
push edx
push ebx
push str.OutputFormat
push str.General
call esi
cmp eax, ebx
mov dword [0x4f1f58], eax
je 0x43b0ae
cmp eax, 1
je 0x43b0ae
cmp eax, 2
je 0x43b0ae
mov dword [0x4f1f58], ebx
mov eax, dword [esp + 0x10]
push eax
push 8
push str.BitRate
push 0x470610
call esi
cmp eax, ebx
mov dword [0x4f1f5c], eax
jl 0x43b0cf
cmp eax, 0xd
jle 0x43b0d9
mov dword [0x4f1f5c], 8
mov ecx, dword [esp + 0x10]
push ecx
push 1
push str.EnableID3
push 0x470610
call esi
mov edx, dword [esp + 0x10]
mov dword [0x4f1f60], eax
push edx
push 1
push str.EnableID3V2
push 0x470610
call esi
mov dword [0x4f2050], eax
mov eax, dword [esp + 0x10]
push eax
push ebx
push str.EnableVBR
push 0x470610
call esi
mov ecx, dword [esp + 0x10]
mov dword [0x4f1f70], eax
push ecx
push 0xd
push str.MaxBitRate
push 0x470610
call esi
cmp eax, ebx
mov dword [0x4f1f74], eax
jl 0x43b141
cmp eax, 0xd
jle 0x43b14b
mov dword [0x4f1f74], 0xd
mov edx, dword [esp + 0x10]
push edx
push 2
push str.MPEGQuality
push 0x470610
call esi
cmp eax, ebx
mov dword [0x4f1f78], eax
jl 0x43b16c
cmp eax, 3
jle 0x43b176
mov dword [0x4f1f78], 2
mov eax, dword [esp + 0x10]
push eax
push 4
push str.VBRQuality
push 0x470610
call esi
cmp eax, ebx
mov dword [0x4f1f7c], eax
jl 0x43b197
cmp eax, 8
jle 0x43b1a1
mov dword [0x4f1f7c], 4
mov ecx, dword [esp + 0x10]
push ecx
push 1
push str.Copyright
push 0x470610
call esi
mov edx, dword [esp + 0x10]
mov dword [0x4f1f64], eax
push edx
push 1
push str.Original
push 0x470610
call esi
mov dword [0x4f1f68], eax
mov eax, dword [esp + 0x10]
push eax
push 1
push str.Private
push 0x470610
call esi
mov ecx, dword [esp + 0x10]
mov dword [0x4f1f6c], eax
push ecx
push 1
push str.WriteVBRHeader
push 0x470610
call esi
mov edx, dword [esp + 0x10]
mov dword [0x4f1f80], eax
push edx
push ebx
push str.StereoMode
push 0x470610
call esi
cmp eax, 1
mov dword [0x4f1f84], eax
jle 0x43b223
mov dword [0x4f1f84], ebx
mov eax, dword [esp + 0x10]
push eax
push ebx
push str.CDROMDriver
push str.CDROM
call esi
mov ecx, dword [esp + 0x10]
mov dword [0x4f1fa8], eax
push ecx
push ebx
push str.DeleteSilence
push str.CDROM
call esi
mov edx, dword [esp + 0x10]
mov dword [0x4f1fb0], eax
push edx
push ebx
push str.LeadingFrame
push str.CDROM
call esi
mov dword [0x4f1fb4], eax
mov eax, dword [esp + 0x10]
push eax
push ebx
push str.TrailingFrame
push str.CDROM
call esi
mov ecx, dword [esp + 0x10]
mov dword [0x4f1fb8], eax
push ecx
push 5
push str.RetryTimes
push str.CDROM
call esi
cmp eax, ebx
mov dword [0x4f1fc0], eax
jg 0x43b2a5
mov dword [0x4f1fc0], 5
mov edx, dword [esp + 0x10]
push edx
push 1
push str.DisableAutoPlay
push str.CDROM
call esi
mov dword [0x4f1fbc], eax
mov eax, dword [esp + 0x10]
push eax
push 1
push str.StopPlayExit
push str.CDROM
call esi
mov ecx, dword [esp + 0x10]
mov dword [0x4f1fc4], eax
push ecx
push 0x1a
push str.BufferSize
push str.CDROM
call esi
cmp eax, ebx
mov dword [0x4f1fc8], eax
jg 0x43b2fb
mov dword [0x4f1fc8], 0x1a
mov edx, dword [esp + 0x10]
push edx
push ebx
push str.DeviceType
push str.CDROM
call esi
cmp eax, ebx
mov dword [0x4f1fac], eax
jl 0x43b31b
cmp eax, 0xc
jle 0x43b321
mov dword [0x4f1fac], ebx
mov eax, dword [esp + 0x10]
push eax
push 0xff00
push str.TextColor
push str.COLOR
call esi
mov ecx, dword [esp + 0x10]
mov dword [0x4f1fd4], eax
push ecx
push 0xffff
push str.TextSelColor
push str.COLOR
call esi
mov edx, dword [esp + 0x10]
mov dword [0x4f1fd8], eax
push edx
push ebx
push str.BackgroundColor
push str.COLOR
call esi
mov dword [0x4f1fdc], eax
mov eax, dword [esp + 0x10]
push eax
push 0xb4c8c8
push str.StatusLineColor
push str.COLOR
call esi
mov ecx, dword [esp + 0x10]
mov dword [0x4f1fe0], eax
push ecx
push 0x141414
push str.TextShadowColor
push str.COLOR
call esi
mov edx, dword [esp + 0x10]
mov dword [0x4f1fe8], eax
push edx
push 1
push str.BoolShadowColor
push str.COLOR
call esi
mov dword [0x4f1fe4], eax
mov eax, dword [esp + 0x10]
push eax
lea ecx, [esp + 0x534]
push 0x9c4
push ecx
push 0x4e100c
push str.MP3Player
push str.Misc
call ebp
lea edx, [esp + 0x530]
push edx
push 0x46e144
push 0x4f1fec
call sub.MFC42.DLL_CString::Format
mov eax, dword [esp + 0x1c]
add esp, 0xc
lea ecx, [esp + 0x530]
push eax
push 0x9c4
push ecx
push 0x4e100c
push str.MP3PlayerParameters
push str.Misc
call ebp
lea edx, [esp + 0x530]
push edx
push 0x46e144
push 0x4f1ff0
call sub.MFC42.DLL_CString::Format
mov eax, dword [esp + 0x1c]
add esp, 0xc
lea ecx, [esp + 0x530]
push eax
push 0x9c4
push ecx
push 0x47187c
push str.ReplaceStr01
push str.Misc
call ebp
lea edx, [esp + 0x530]
push edx
push 0x46e144
push 0x4f1ff4
call sub.MFC42.DLL_CString::Format
mov eax, dword [esp + 0x1c]
add esp, 0xc
lea ecx, [esp + 0x530]
push eax
push 0x9c4
push ecx
push 0x471868
push str.ReplaceStr02
push str.Misc
call ebp
lea edx, [esp + 0x530]
push edx
push 0x46e144
push 0x4f1ff8
call sub.MFC42.DLL_CString::Format
mov eax, dword [esp + 0x1c]
add esp, 0xc
lea ecx, [esp + 0x530]
push eax
push 0x9c4
push ecx
push 0x47187c
push str.ReplaceStr03
push str.Misc
call ebp
lea edx, [esp + 0x530]
push edx
push 0x46e144
push 0x4f1ffc
call sub.MFC42.DLL_CString::Format
mov eax, dword [esp + 0x1c]
add esp, 0xc
lea ecx, [esp + 0x530]
push eax
push 0x9c4
push ecx
push 0x46e170
push str.ReplaceStr04
push str.Misc
call ebp
lea edx, [esp + 0x530]
push edx
push 0x46e144
push 0x4f2000
call sub.MFC42.DLL_CString::Format
mov eax, dword [esp + 0x1c]
add esp, 0xc
lea ecx, [esp + 0x530]
push eax
push 0x9c4
push ecx
push 0x47187c
push str.ReplaceStr05
push str.Misc
call ebp
lea edx, [esp + 0x530]
push edx
push 0x46e144
push 0x4f2004
call sub.MFC42.DLL_CString::Format
mov eax, dword [esp + 0x1c]
add esp, 0xc
lea ecx, [esp + 0x530]
push eax
push 0x9c4
push ecx
push 0x47187c
push str.ReplaceStr06
push str.Misc
call ebp
lea edx, [esp + 0x530]
push edx
push 0x46e144
push 0x4f2008
call sub.MFC42.DLL_CString::Format
add esp, 0xc
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x530]
push eax
push 0x9c4
push ecx
push 0x47187c
push str.ReplaceStr07
push str.Misc
call ebp
lea edx, [esp + 0x530]
push edx
push 0x46e144
push 0x4f200c
call sub.MFC42.DLL_CString::Format
mov eax, dword [esp + 0x1c]
add esp, 0xc
lea ecx, [esp + 0x530]
push eax
push 0x9c4
push ecx
push 0x471804
push str.ReplaceStr08
push str.Misc
call ebp
lea edx, [esp + 0x530]
push edx
push 0x46e144
push 0x4f2010
call sub.MFC42.DLL_CString::Format
mov eax, dword [esp + 0x1c]
add esp, 0xc
lea ecx, [esp + 0x530]
push eax
push 0x9c4
push ecx
push 0x4717f0
push str.ReplaceStr09
push str.Misc
call ebp
lea edx, [esp + 0x530]
push edx
push 0x46e144
push 0x4f2014
call sub.MFC42.DLL_CString::Format
mov eax, dword [esp + 0x1c]
add esp, 0xc
lea ecx, [esp + 0x530]
push eax
push 0x9c4
push ecx
push 0x46e040
push str.ReplaceStr10
push str.Misc
call ebp
lea edx, [esp + 0x530]
push edx
push 0x46e144
push 0x4f2018
call sub.MFC42.DLL_CString::Format
mov eax, dword [0x4f2018]
add esp, 0xc
cmp dword [eax - 8], ebx
jne 0x43b6b1
push 0x46e040
mov ecx, 0x4f2018
call sub.MFC42.DLL_CString::operator_1
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x530]
push ecx
push 0x9c4
push edx
push str._number___title_
push str.NamingRule
push str.Misc
call ebp
lea eax, [esp + 0x530]
push eax
push 0x46e144
push 0x4f201c
call sub.MFC42.DLL_CString::Format
mov ecx, dword [esp + 0x1c]
add esp, 0xc
push ecx
push 0x244
push str.WindowWidth
push str.Misc
call esi
cmp eax, 0x1a4
mov dword [0x4f2020], eax
jge 0x43b71c
mov dword [0x4f2020], 0x1a4
jmp 0x43b72d
cmp eax, 0x320
jle 0x43b72d
mov dword [0x4f2020], 0x258
mov edx, dword [esp + 0x10]
push edx
push 0x17c
push str.WindowHeight
push str.Misc
call esi
cmp eax, 0x160
mov dword [0x4f2024], eax
jge 0x43b75b
mov dword [0x4f2024], 0x160
jmp 0x43b76c
cmp eax, 0x258
jle 0x43b76c
mov dword [0x4f2024], 0x17c
mov eax, dword [esp + 0x10]
push eax
push 0x82
push str.WindowLeft
push str.Misc
call esi
mov ecx, dword [esp + 0x10]
mov dword [0x4f2028], eax
push ecx
push 0x5a
push str.WindowTop
push str.Misc
call esi
mov edx, dword [esp + 0x10]
mov dword [0x4f202c], eax
push edx
push 0x3c
push str.ColumnWidth1
push str.Misc
call esi
mov dword [0x4f2030], eax
mov eax, dword [esp + 0x10]
push eax
push 0x118
push str.ColumnWidth2
push str.Misc
call esi
mov ecx, dword [esp + 0x10]
mov dword [0x4f2034], eax
push ecx
push 0x50
push str.ColumnWidth3
push str.Misc
call esi
mov edx, dword [esp + 0x10]
mov dword [0x4f2038], eax
push edx
push 0x50
push str.ColumnWidth4
push str.Misc
call esi
mov dword [0x4f203c], eax
mov eax, dword [esp + 0x10]
push eax
push ebx
push str.BoolSkipError
push str.Misc
call esi
mov ecx, dword [esp + 0x10]
mov dword [0x4f2040], eax
push ecx
push 2
push str.ThreadPriority
push str.Misc
call esi
mov edx, dword [esp + 0x10]
mov dword [0x4f2044], eax
push edx
push ebx
push str.Normalize
push str.Misc
call esi
mov dword [0x4f2048], eax
mov eax, dword [esp + 0x10]
push eax
push 0x5f
push str.NormalizeRatio
push str.Misc
call esi
cmp eax, ebx
mov dword [0x4f204c], eax
jle 0x43b869
cmp eax, 0x64
jle 0x43b873
mov dword [0x4f204c], 0x5f
mov ecx, dword [esp + 0x10]
push ecx
push 1
push str.AutoLoadCDPlayerINI
push str.Misc
call esi
mov dword [0x4f2088], eax
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x28]
rep stosd dword es:[edi], eax
lea edx, [esp + 0x28]
push edx
push 0x104
stosb byte es:[edi], al
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x530]
push eax
push 0x9c4
lea edx, [esp + 0x30]
push ecx
push edx
push str.TEMPDIRECTORY
push str.Misc
call ebp
lea eax, [esp + 0x530]
push eax
push 0x46e144
push 0x4f208c
call sub.MFC42.DLL_CString::Format
mov ecx, dword [0x4f208c]
add esp, 0xc
cmp dword [ecx - 8], ebx
jne 0x43b900
lea edx, [esp + 0x28]
mov ecx, 0x4f208c
push edx
call sub.MFC42.DLL_CString::operator_1
mov eax, dword [esp + 0x10]
push eax
push 0x32
push str.Quality
push str.Ogg_Vorbis
call esi
mov ecx, dword [esp + 0x10]
mov dword [0x4f2054], eax
push ecx
push 1
push str.Title
push str.Ogg_Vorbis
call esi
mov edx, dword [esp + 0x10]
mov dword [0x4f2058], eax
push edx
push 1
push str.Artist
push str.Ogg_Vorbis
call esi
mov dword [0x4f205c], eax
mov eax, dword [esp + 0x10]
push eax
push 1
push str.Album
push str.Ogg_Vorbis
call esi
mov ecx, dword [esp + 0x10]
mov dword [0x4f2060], eax
push ecx
push ebx
push 0x470834
push str.Ogg_Vorbis
call esi
mov edx, dword [esp + 0x10]
mov dword [0x4f2064], eax
push edx
push ebx
push str.Genre
push str.Ogg_Vorbis
call esi
mov dword [0x4f2068], eax
mov eax, dword [esp + 0x10]
push eax
push ebx
push str.Comment
push str.Ogg_Vorbis
call esi
mov ecx, dword [esp + 0x10]
mov dword [0x4f206c], eax
push ecx
push ebx
push str.Composer
push str.Ogg_Vorbis
call esi
mov edx, dword [esp + 0x10]
mov dword [0x4f2070], eax
push edx
push ebx
push str.Orig.Artist
push str.Ogg_Vorbis
call esi
mov dword [0x4f2074], eax
mov eax, dword [esp + 0x10]
push eax
push ebx
push str.Copyright
push str.Ogg_Vorbis
call esi
mov ecx, dword [esp + 0x10]
mov dword [0x4f2078], eax
push ecx
push ebx
push 0x4714d4
push str.Ogg_Vorbis
call esi
mov edx, dword [esp + 0x10]
mov dword [0x4f207c], eax
push edx
push ebx
push str.EncodedBy
push str.Ogg_Vorbis
call esi
mov dword [0x4f2080], eax
mov eax, dword [esp + 0x10]
push eax
push ebx
push str.TrackNo
push str.Ogg_Vorbis
call esi
mov dword [0x4f2084], eax
mov ecx, 0x100
xor eax, eax
lea edi, [esp + 0x130]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x130]
push ecx
push 0x400
push edx
push str.freedb.freedb.org
push str.Server
push str.CDDB
call ebp
lea eax, [esp + 0x130]
mov ecx, 0x4f2090
push eax
call sub.MFC42.DLL_CString::operator_1
mov ecx, 0x100
xor eax, eax
lea edi, [esp + 0x130]
lea edx, [esp + 0x130]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x10]
push ecx
push 0x400
push edx
push str._cddb_cddb.cgi
push str.QueryScript
push str.CDDB
call ebp
lea eax, [esp + 0x130]
mov ecx, 0x4f2094
push eax
call sub.MFC42.DLL_CString::operator_1
mov ecx, 0x100
xor eax, eax
lea edi, [esp + 0x130]
lea edx, [esp + 0x130]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x10]
push ecx
push 0x400
push edx
push str._cddb_submit.cgi
push str.SubmitScript
push str.CDDB
call ebp
lea eax, [esp + 0x130]
mov ecx, 0x4f2098
push eax
call sub.MFC42.DLL_CString::operator_1
mov ecx, 0x100
xor eax, eax
lea edi, [esp + 0x130]
lea edx, [esp + 0x130]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x10]
push ecx
push 0x400
push edx
push str.user_hostname.com
push str.Email
push str.CDDB
call ebp
lea eax, [esp + 0x130]
mov ecx, 0x4f20a4
push eax
call sub.MFC42.DLL_CString::operator_1
mov ecx, dword [esp + 0x10]
push ecx
push ebx
push str.bProxy
push str.CDDB
call esi
mov edx, dword [esp + 0x10]
mov dword [0x4f1f88], eax
mov ecx, 0x100
xor eax, eax
lea edi, [esp + 0x130]
push edx
rep stosd dword es:[edi], eax
lea eax, [esp + 0x134]
push 0x400
push eax
push 0x4e100c
push str.ProxyServer
push str.CDDB
call ebp
lea ecx, [esp + 0x130]
push ecx
mov ecx, 0x4f209c
call sub.MFC42.DLL_CString::operator_1
mov edx, dword [esp + 0x10]
push edx
push 0x50
push str.ProxyPort
push str.CDDB
call esi
mov dword [0x4f20a0], eax
mov eax, dword [esp + 0x10]
push eax
push ebx
push str.ProxyAuthorization
push str.CDDB
call esi
mov dword [0x4f20ac], eax
mov ecx, 0x100
xor eax, eax
lea edi, [esp + 0x130]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x130]
push ecx
push 0x400
push edx
push 0x4e100c
push str.ProxyUsername
push str.CDDB
call ebp
lea eax, [esp + 0x130]
mov ecx, 0x4f20b0
push eax
call sub.MFC42.DLL_CString::operator_1
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x24]
call fcn.00441cb0
push eax
mov ecx, 0x4f20b4
mov byte [esp + 0xf34], 4
call fcn.0045b232
lea ecx, [esp + 0x24]
mov byte [esp + 0xf30], 3
call sub.MFC42.DLL_CString::CString
mov edx, dword [esp + 0x10]
push edx
push ebx
push str.bUseASPI
push str.Misc
call esi
mov dword [0x4f20a8], eax
mov eax, dword [esp + 0x10]
push eax
push 1
push str.AutoSelectAll
push str.Misc
call esi
mov ecx, dword [esp + 0x10]
mov dword [0x4f20b8], eax
push ecx
push 1
push str.bOpenOutputFolder
push str.Misc
call esi
push 0x4f1f54
mov ecx, 0x4f20d0
mov dword [0x4f20bc], eax
call fcn.0045b232
mov ecx, 0x4f20d0
call sub.MFC42.DLL_CString::TrimLeft
mov ecx, 0x4f20d0
call sub.MFC42.DLL_CString::TrimRight
push 0x47053c
mov ecx, 0x4f20d0
call sub.MFC42.DLL_CString::TrimRight_2
push 0x47053c
mov ecx, 0x4f20d0
call sub.MFC42.DLL_CString::operator_2
mov edx, dword [0x4f20d0]
mov esi, dword [sym.imp.IMAGEHLP.dll_MakeSureDirectoryPathExists]
push edx
call esi
pop edi
pop ebp
test eax, eax
jne 0x43bd0b
mov eax, dword [esp + 0xc]
push eax
call esi
test eax, eax
jne 0x43bcfc
push 0xffffffffffffffff
push ebx
push 0xe16a
call sub.MFC42.DLL_AfxMessageBox_1
jmp 0x43bd0b
lea ecx, [esp + 0xc]
push ecx
mov ecx, 0x4f1f54
call fcn.0045b232
mov ecx, 0x4f208c
call sub.MFC42.DLL_CString::TrimLeft
mov ecx, 0x4f208c
call sub.MFC42.DLL_CString::TrimRight
push 0x47053c
mov ecx, 0x4f208c
call sub.MFC42.DLL_CString::TrimRight_2
push 0x47053c
mov ecx, 0x4f208c
call sub.MFC42.DLL_CString::operator_2
mov edx, dword [0x4f208c]
push edx
call esi
test eax, eax
jne 0x43bd73
lea eax, [esp + 0x20]
push eax
call esi
test eax, eax
jne 0x43bd64
push 0xffffffffffffffff
push ebx
push 0xe196
call sub.MFC42.DLL_AfxMessageBox_1
jmp 0x43bd73
lea ecx, [esp + 0x20]
push ecx
mov ecx, 0x4f208c
call sub.MFC42.DLL_CString::operator_1
lea ecx, [esp + 0x10]
mov byte [esp + 0xf28], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 8]
mov byte [esp + 0xf28], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0xf28], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0xc]
mov dword [esp + 0xf28], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0xf20]
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0xf24
ret