Function at 0x403a60
Capabilities:
Read .ini file

Disassembly:
sub esp, 0x244
push ebx
push ebp
push esi
mov esi, dword [esp + 0x254]
push edi
push 0x4265dc
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
xor ebx, ebx
test eax, eax
jne 0x403a9b
cmp dword [0x82d69c], ebx
je 0x403a9b
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x244
ret
call fcn.004034c0
cmp dword [0x426ea0], ebx
jne 0x403ad2
push esi
call fcn.00403680
add esp, 4
test eax, eax
je 0x403ad2
push esi
call fcn.00403920
add esp, 4
test eax, eax
je 0x403ad2
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x244
ret
cmp byte [0x82eae0], bl
jne 0x403b2e
push esi
call fcn.00403680
add esp, 4
test eax, eax
je 0x403b04
push esi
call fcn.00403920
add esp, 4
test eax, eax
je 0x403b04
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x244
ret
push esi
call fcn.004036c0
add esp, 4
test eax, eax
je 0x403b2e
push esi
call fcn.004038b0
add esp, 4
test eax, eax
je 0x403b2e
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x244
ret
mov eax, dword [0x42d3d8]
mov ecx, dword [0x42d3c4]
mov dword [0x42d3d0], eax
mov eax, dword [esp + 0x25c]
cmp eax, ecx
mov dword [0x97ad80], eax
jge 0x40411f
lea ecx, [eax + eax*2]
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
shl ecx, 7
sub ecx, eax
add ecx, 0x954fa8
push ecx
call edi
cmp eax, ebx
mov dword [0x42d430], eax
je 0x40411f
mov ebp, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 1
push eax
call ebp
cmp eax, ebx
je 0x40410c
call eax
cmp eax, ebx
mov dword [0x42d3c8], eax
jne 0x403b9f
mov eax, dword [0x42d430]
push eax
jmp 0x404113
cmp dword [0x943ecc], ebx
je 0x403c57
push ebx
push 0xc
call dword [eax + 0x34]
add esp, 8
push str.Mpegsys.dll
call edi
cmp eax, ebx
mov dword [0x42d438], eax
jne 0x403c14
push str.STHVCD.INI
lea ecx, [esp + 0x14]
push 0x104
push ecx
push 0x82d6c0
push str.INSTALLPATH
push str.INSTALL
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea edx, [esp + 0x10]
push str.Mpegsys.dll
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [esp + 0x10]
push eax
call edi
cmp eax, ebx
mov dword [0x42d438], eax
jne 0x403c14
mov ecx, dword [0x42d430]
push ecx
jmp 0x404113
push 0x33
push eax
call ebp
cmp eax, ebx
mov dword [0x42d434], eax
jne 0x403c52
mov edx, dword [0x42d430]
mov esi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
push edx
call esi
mov eax, dword [0x42d438]
mov dword [0x42d430], ebx
push eax
call esi
pop edi
pop esi
mov dword [0x42d438], ebx
pop ebp
xor eax, eax
pop ebx
add esp, 0x244
ret
push ebx
push 0x35
call eax
push 0x4265dc
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x403e0c
cmp dword [0x943ecc], ebx
jne 0x403c7f
mov ecx, dword [0x42d430]
push ecx
jmp 0x404113
mov eax, dword [0x42d438]
cmp eax, ebx
je 0x40410c
push 0x2e
push eax
call ebp
mov edi, eax
mov eax, dword [0x42d434]
cmp eax, ebx
je 0x403ddb
cmp edi, ebx
je 0x403ddb
mov ecx, dword [0x82f304]
mov dword [0x82d69c], 1
push ecx
push 0x13
call eax
test eax, eax
jne 0x403cf7
mov edx, dword [0x42d430]
mov esi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
push edx
call esi
mov eax, dword [0x42d438]
mov dword [0x42d430], ebx
push eax
call esi
pop edi
pop esi
mov dword [0x42d438], ebx
mov dword [0x82d69c], ebx
pop ebp
xor eax, eax
pop ebx
add esp, 0x244
ret
push 0x42d410
push esi
mov dword [0x82d69c], ebx
call edi
cmp eax, 0xffffffff
jne 0x403d4d
mov ecx, dword [0x42d430]
mov esi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
push ecx
call esi
mov edx, dword [0x42d438]
mov dword [0x42d430], ebx
push edx
call esi
push 0x9c97
push 0x9c96
mov dword [0x42d438], ebx
call fcn.00417260
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x244
ret
cmp eax, 1
jne 0x403d94
mov eax, dword [0x42d430]
mov esi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
push eax
call esi
mov ecx, dword [0x42d438]
mov dword [0x42d430], ebx
push ecx
call esi
push 0xc368
push 0xc367
mov dword [0x42d438], ebx
call fcn.00417260
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x244
ret
cmp eax, 3
jne 0x403e0c
mov edx, dword [0x42d430]
mov esi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
push edx
call esi
mov eax, dword [0x42d438]
mov dword [0x42d430], ebx
push eax
call esi
push 0x9c95
push 0x9c94
mov dword [0x42d438], ebx
call fcn.00417260
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x244
ret
mov ecx, dword [0x42d430]
mov esi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
push ecx
call esi
mov edx, dword [0x42d438]
mov dword [0x42d430], ebx
push edx
call esi
pop edi
pop esi
mov dword [0x42d438], ebx
pop ebp
xor eax, eax
pop ebx
add esp, 0x244
ret
mov eax, dword [0x42d3c8]
push esi
call dword [eax + 0x10]
add esp, 4
test eax, eax
jne 0x403e54
mov ecx, dword [0x42d430]
mov esi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
push ecx
call esi
mov eax, dword [0x42d438]
mov dword [0x42d430], ebx
cmp eax, ebx
je 0x40411f
push eax
call esi
pop edi
pop esi
mov dword [0x42d438], ebx
pop ebp
xor eax, eax
pop ebx
add esp, 0x244
ret
mov edx, dword [0x42d3c8]
push 3
call dword [edx + 0x30]
mov dword [0x42d400], eax
mov eax, dword [0x42d3c8]
push ebx
call dword [eax + 0x30]
mov ecx, dword [0x42d3c8]
push 2
mov dword [0x42d404], eax
call dword [ecx + 0x30]
mov edx, dword [0x42d3c8]
mov edi, 1
push edi
mov dword [0x42d408], eax
call dword [edx + 0x30]
mov dword [0x42d40c], eax
mov eax, dword [0x42d3c8]
push 8
call dword [eax + 0x30]
add esp, 0x14
mov dword [0x42d41c], eax
push 0x4265dc
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x403efa
mov dword [0x42d3fc], edi
call fcn.0040eb90
xor ecx, ecx
mov eax, edi
mov dword [0x943a20], ecx
pop edi
mov dword [0x943a24], ecx
pop esi
mov dword [0x943a28], ecx
pop ebp
mov dword [0x943a2c], ecx
mov dword [0x42d410], 0x7fffffff
mov dword [0x943a30], ecx
pop ebx
add esp, 0x244
ret
mov edx, dword [0x42d3c8]
push 2
push ebx
call dword [edx + 0x14]
add esp, 8
cmp eax, 0xffffffff
mov dword [0x42d410], eax
jne 0x403f3b
lea eax, [esp + 0x114]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
je 0x403f3b
mov ecx, dword [esp + 0x134]
push eax
mov dword [0x42d410], ecx
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp dword [0x42d400], ebx
je 0x404103
cmp dword [0x42d404], ebx
je 0x404103
cmp dword [0x42d408], ebx
je 0x404103
cmp dword [0x42d40c], ebx
je 0x404103
cmp dword [0x42d410], ebx
jg 0x403f87
mov edx, dword [0x42d3c8]
call dword [edx + 0x2c]
mov eax, dword [0x42d430]
push eax
jmp 0x404113
mov ecx, dword [0x42d3c8]
push ebx
push ebx
mov dword [0x42d3fc], edi
call dword [ecx + 0x14]
call fcn.0040eb90
xor edx, edx
push esi
mov dword [0x943a20], edx
mov dword [0x943a24], edx
mov dword [0x943a28], edx
mov dword [0x943a2c], edx
mov dword [0x943a30], edx
call fcn.004039d0
add esp, 0xc
cmp eax, ebx
mov dword [0x82d7d4], eax
mov dword [0x82f540], ebx
mov dword [0x954cc0], ebx
mov dword [0x82d8cc], ebx
mov dword [0x82d8c8], ebx
mov dword [0x82d8d0], ebx
jne 0x4040f3
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
push esi
push 0x9547a0
call edi
push 0x9547a0
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, ebx
jle 0x40401d
mov cl, 0x5c
cmp byte [eax + 0x9547a0], cl
je 0x40401d
dec eax
cmp eax, ebx
jg 0x404010
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcatA]
inc eax
push str.Mp3_bmp.ini
push 0x9547a0
mov dword [0x9549a0], eax
mov byte [eax + 0x9547a0], bl
call ebp
mov eax, dword [0x9549a0]
push 0x9547a0
push ebx
add eax, esi
push str.BMPCOUNT
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [0x9549a0]
push 0x9547a0
push 0x100
push 0x9548a0
push 0x82d6c0
add ecx, esi
push str.MusicWord
push ecx
mov dword [0x954cc0], eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp eax, ebx
mov byte [0x97d000], bl
je 0x4040ab
push esi
push 0x97d000
call edi
mov edx, dword [0x9549a0]
push 0x9548a0
push 0x97d000
mov byte [edx + 0x97d000], bl
call ebp
mov eax, dword [0x9549a0]
push 0x9547a0
push 0x100
push 0x954bc0
push str.Music
add eax, esi
push str.MusicName
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push 0x954bc0
push 0x943ee0
call edi
push esi
push 0x9548a0
call edi
cmp dword [0x954cc0], ebx
je 0x4040f3
call fcn.0040dc30
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x244
ret
mov ecx, dword [0x42d3c8]
call dword [ecx + 0x2c]
mov edx, dword [0x42d430]
push edx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [0x42d430], ebx
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x244
ret