Function at 0x513eb8
Capabilities:
Check if file exists
Create process on windows
Get file size

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
push ebx
push esi
mov dword [ebp - 8], ecx
lea ecx, [ebp - 0x38]
push edi
call fcn.00417833
push ecx
mov eax, esp
lea ecx, [ebp + 8]
push ecx
push str.sound_
push eax
call fcn.0044c94c
mov eax, dword [0x735a88]
pop ecx
pop ecx
add eax, 0xfffffff0
mov esi, esp
push eax
call fcn.00418dea
add eax, 0x10
pop ecx
mov dword [esi], eax
lea ecx, [ebp - 0x38]
lea eax, [ebp - 4]
push eax
call fcn.0041934b
mov edi, dword [ebp - 4]
xor bl, bl
push 0
push 0x80
push 3
push 0
push 1
push SysReAllocString
push edi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
je 0x513f36
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, 0x4b000
seta bl
push edi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x513f49
test bl, bl
jne 0x5140c9
mov esi, dword [ebp - 8]
add esi, 0x20
push str.set_soundplan_select
mov ecx, esi
call fcn.005cfc5e
test eax, eax
je 0x513f6b
mov edx, dword [eax]
mov ecx, eax
push 0
call dword [edx + 0x180]
push str.set_soundplan_play
mov ecx, esi
call fcn.005cfc5e
test eax, eax
je 0x513f87
mov edx, dword [eax]
mov ecx, eax
push 0
call dword [edx + 0x180]
push str.set_soundplan_more
mov ecx, esi
call fcn.005cfc5e
test eax, eax
je 0x513fa3
mov edx, dword [eax]
mov ecx, eax
push 0
call dword [edx + 0x180]
push str.set_sound_progress
mov ecx, esi
call fcn.005cfc5e
mov ebx, eax
test ebx, ebx
je 0x513fcd
mov edx, dword [ebx]
mov ecx, ebx
push 0x6b42dc
call dword [edx + 0x3c]
mov edx, dword [ebx]
mov ecx, ebx
push 1
call dword [edx + 0x180]
push str.set_soundplan_path
mov ecx, esi
call fcn.005cfc5e
test eax, eax
je 0x513fe9
mov edx, dword [eax]
mov ecx, eax
push 0
call dword [edx + 0x18c]
lea ecx, [ebp - 0x20]
call fcn.00417833
push ecx
mov ecx, esp
mov ebx, str.rmup.exe
push ebx
call fcn.004177e7
mov eax, dword [0x735a80]
push ecx
add eax, 0xfffffff0
mov esi, esp
push eax
call fcn.00418dea
add eax, 0x10
pop ecx
mov dword [esi], eax
lea ecx, [ebp - 0x20]
lea eax, [ebp - 4]
push eax
call fcn.0041934b
push ecx
mov ecx, esp
push ebx
call fcn.004177e7
push ecx
mov esi, esp
push ecx
mov ecx, esp
push str.MyTime
call fcn.004177e7
push ecx
push esp
lea ecx, [ebp - 0x20]
call fcn.00454cc3
push esi
lea ecx, [ebp - 0x20]
call fcn.0041934b
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x20]
call fcn.0041934b
push eax
lea ecx, [ebp - 4]
call fcn.00418bac
mov ecx, dword [ebp - 8]
lea ecx, [ecx - 0x10]
call fcn.00419521
push 0x6b3cbc
lea ecx, [ebp + 8]
call fcn.004334a5
mov esi, dword [ebp - 4]
test eax, eax
jne 0x51408d
xor eax, eax
push eax
push eax
push str._sound_def__notice__silent__from:_Pcmaster_LunarCalendar
jmp 0x5140a5
push 0x6b3cd4
lea ecx, [ebp + 8]
call fcn.004334a5
test eax, eax
jne 0x5140ae
push eax
push eax
push str._sound_defman__notice__silent__from:_Pcmaster_LunarCalendar
push esi
push eax
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea ecx, [esi - 0x10]
call fcn.00419521
lea ecx, [ebp - 0x20]
call fcn.00418dd0
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx - 0x10]
call fcn.00419521
lea eax, [ebp + 8]
mov ecx, 0x735bd4
push eax
call fcn.00418bac
mov eax, dword [0x735bd4]
push ecx
add eax, 0xfffffff0
mov esi, esp
push eax
call fcn.00418dea
add eax, 0x10
mov ecx, esp
push 0x68c444
mov dword [esi], eax
call fcn.004177e7
push ecx
mov ecx, esp
push str.SoundPack
call fcn.004177e7
mov ecx, 0x735bd8
call fcn.004fdb1b
lea ecx, [edi - 0x10]
call fcn.00419521
lea ecx, [ebp - 0x38]
call fcn.00418dd0
mov ecx, dword [ebp - 0x28]
lea ecx, [ecx - 0x10]
call fcn.00419521
mov ecx, dword [ebp + 8]
lea ecx, [ecx - 0x10]
call fcn.00419521
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4