Function at 0x101f5ff
Capabilities:
Read .ini file

Disassembly:
sub esp, 0x10
push ebx
push ebp
push esi
push edi
call dword [sym.imp.WINMM.dll_waveOutGetNumDevs]
mov ebp, eax
xor esi, esi
cmp ebp, esi
je 0x101f7b9
mov ebx, dword [esp + 0x24]
test byte [ebx + 3], 4
je 0x101f635
push ebx
call fcn.0101e229
test eax, eax
je 0x101f635
push esi
push esi
push ebx
push esi
jmp 0x101f9aa
test byte [ebx + 2], 0x80
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edi, 0x1032808
je 0x101f64c
movzx eax, word [ebx + 0x14]
jmp 0x101f65b
push edi
push 0
push 0x10034bc
push 0x10034b4
call esi
mov ecx, dword [0x1030544]
mov dword [ecx + 0x18], eax
mov eax, dword [0x1030544]
cmp dword [eax + 0x18], ebp
jb 0x101f677
and dword [eax + 0x18], 0
mov eax, dword [0x1030544]
lea ecx, [eax + 0x7c]
push 0x34
push ecx
push dword [eax + 0x18]
call dword [sym.imp.WINMM.dll_waveOutGetDevCapsA]
test eax, eax
jne 0x101f6a2
mov eax, dword [0x1030544]
add eax, 0x84
push eax
call fcn.0101dfda
test eax, eax
je 0x101f6a2
xor eax, eax
jmp 0x101f6a5
push 1
pop eax
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyA]
test eax, eax
je 0x101f6c1
mov eax, dword [0x1030544]
push 0x100349c
add eax, 0x84
push eax
call ebx
mov eax, dword [0x1030544]
push 0x60
lea ecx, [eax + 0x1c]
push ecx
push dword [eax + 0x18]
call fcn.0101e149
test eax, eax
jne 0x101f6ff
call fcn.0101e103
push eax
mov eax, dword [0x1030544]
add eax, 0x1c
push eax
call ebx
mov eax, dword [0x1030544]
lea ecx, [eax + 0x84]
add eax, 0x1c
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push edi
push 1
mov ebx, 0x1002b28
push 0x1003118
push ebx
call esi
push edi
mov dword [esp + 0x14], eax
mov eax, dword [0x1030544]
push dword [eax + 0x18]
call fcn.0101be68
push eax
push 0x100310c
push ebx
call esi
push edi
mov ebp, 0x1003130
push 3
push ebp
push ebx
mov dword [esp + 0x24], eax
call esi
push edi
push 0xb
push 0x100313c
push ebx
mov dword [esp + 0x28], eax
call esi
mov dword [esp + 0x1c], eax
mov eax, dword [0x1030544]
test byte [eax + 0xac], 0x10
je 0x101f771
cmp dword [0x1032970], 0
je 0x101f7b9
add eax, 0x84
push eax
push 0x1003510
jmp 0x101f79a
push edi
add eax, 0x1c
push 0
push eax
push 0x1003500
call esi
test eax, eax
je 0x101f7c0
cmp dword [0x1032970], 0
je 0x101f7b9
mov eax, dword [0x1030544]
add eax, 0x1c
push eax
push 0x10034cc
mov esi, str.WaveMix_V_2.3_by_Angel_M._Diaz__Jr.__c__Microsoft_1993_1995
push esi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push 0x40
push 0x1002b18
push esi
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
jmp 0x101f9b8
mov eax, dword [0x1030544]
push edi
push dword [esp + 0x14]
add eax, 0x1c
push 0x1003118
push eax
call esi
cmp eax, 2
mov eax, 0x101cc49
je 0x101f7e4
mov eax, 0x101cc54
mov ecx, dword [0x1030544]
push edi
push dword [esp + 0x18]
mov dword [ecx + 0x1b0], eax
mov eax, dword [0x1030544]
add eax, 0x1c
push 0x100310c
push eax
call esi
mov ecx, dword [0x1030544]
push edi
push dword [esp + 0x1c]
neg eax
sbb eax, eax
push ebp
neg eax
mov dword [ecx + 0x1a4], eax
mov eax, dword [0x1030544]
add eax, 0x1c
push eax
call esi
mov ecx, dword [0x1030544]
push 2
pop edx
mov dword [ecx + 0x190], eax
mov eax, dword [0x1030544]
add eax, 0x190
mov ecx, dword [eax]
cmp ecx, edx
jl 0x101f84e
push 0xa
pop edx
cmp ecx, edx
jle 0x101f850
mov dword [eax], edx
mov eax, dword [0x1030544]
push edi
push dword [eax + 0x190]
call fcn.0101be46
push eax
mov eax, dword [0x1030544]
add eax, 0x1c
push 0x10030ec
push eax
call esi
mov ecx, dword [0x1030544]
mov dword [ecx + 0x194], eax
mov edx, dword [0x1030544]
mov ecx, dword [edx + 0x194]
lea eax, [edx + 0x194]
test ecx, ecx
jge 0x101f899
and dword [eax], 0
jmp 0x101f8a5
mov edx, dword [edx + 0x190]
cmp ecx, edx
jle 0x101f8a5
mov dword [eax], edx
mov eax, dword [0x1030544]
push edi
push dword [esp + 0x20]
add eax, 0x1c
push 0x100313c
push eax
call esi
mov ebp, eax
push edi
movzx eax, word [0x1002b0a]
push eax
mov eax, dword [0x1030544]
add eax, 0x1c
push 0x100314c
push eax
call esi
mov ecx, dword [0x1030544]
mov word [ecx + 0x17e], ax
mov ecx, dword [0x1030544]
mov dx, word [ecx + 0x17e]
lea eax, [ecx + 0x17e]
cmp dx, 1
jae 0x101f902
mov word [eax], 1
jmp 0x101f90d
cmp dx, 2
jbe 0x101f913
mov word [eax], 2
mov ecx, dword [0x1030544]
cmp ebp, 0x16
je 0x101f950
cmp ebp, 0x2c
je 0x101f932
movzx eax, word [ecx + 0x17e]
imul eax, eax, 0x2b11
mov dword [ecx + 0x184], eax
jmp 0x101f972
mov dword [ecx + 0x180], 0xac44
mov eax, dword [0x1030544]
movzx ecx, word [eax + 0x17e]
imul ecx, ecx, 0xac44
jmp 0x101f96c
mov dword [ecx + 0x180], 0x5622
mov eax, dword [0x1030544]
movzx ecx, word [eax + 0x17e]
imul ecx, ecx, 0x5622
mov dword [eax + 0x184], ecx
push edi
xor edi, edi
push edi
push 0x1003120
push ebx
call esi
mov ecx, dword [0x1030544]
add ecx, 0x17c
push ecx
push eax
call fcn.0101dfa2
mov ecx, dword [0x1030544]
cmp dword [esp + 0x24], edi
mov dword [ecx + 0x18c], eax
je 0x101f9b5
push edi
push edi
push dword [esp + 0x2c]
push edi
push dword [0x1030544]
call fcn.0101ee21
push 1
pop eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 4