Function at 0x6f247c80
Capabilities:
Access peb ldr_data
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x5c
test byte [0x6f266618], 8
jne 0x6f247eb0
mov dword [esp], 0
call dword [sym.imp.ole32.dll_CoInitialize]
sub esp, 4
mov ebx, eax
lea eax, [ebp - 0x34]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0x6f277c08
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov dword [esp], 0x6f2761f4
call dword [sym.imp.ole32.dll_CoCreateInstance]
sub esp, 0x14
test eax, eax
js 0x6f247ee0
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x30]
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], str.Wine_info_device
mov dword [esp], eax
call dword [edx + 0x14]
mov esi, eax
mov eax, dword [ebp - 0x34]
sub esp, 0xc
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
test esi, esi
js 0x6f247f40
mov eax, dword [ebp - 0x30]
lea ecx, [ebp - 0x2c]
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x10]
sub esp, 0xc
test eax, eax
js 0x6f247f18
mov eax, dword [ebp - 0x2c]
lea edi, [ebp - 0x28]
mov edx, dword [eax]
mov dword [esp + 8], edi
mov dword [esp + 4], 0x6f276ac8
mov dword [esp], eax
call dword [edx + 0x14]
mov esi, eax
mov eax, dword [ebp - 0x2c]
sub esp, 0xc
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [ebp - 0x30]
sub esp, 4
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
test esi, esi
js 0x6f247f80
mov ecx, dword [sym.imp.kernel32.dll_WideCharToMultiByte]
mov eax, dword [ebp - 0x20]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [ebp - 0x44], ecx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 0
call ecx
mov edx, eax
sub esp, 0x20
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov dword [ebp - 0x3c], eax
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x40], edx
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x44]
sub esp, 0xc
mov esi, eax
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x20]
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 0
call ecx
xor ecx, ecx
mov edx, esi
mov eax, esi
sub esp, 0x20
call sym._MMDRV_Install.isra.0
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
mov dword [esp], edi
call sym._PropVariantClear_4
mov ecx, 1
mov edx, str.msacm32.drv
mov eax, str.wavemapper
sub esp, 4
call sym._MMDRV_Install.isra.0
mov ecx, 1
mov edx, str.midimap.dll
mov eax, str.midimapper
call sym._MMDRV_Install.isra.0
test ebx, ebx
js 0x6f247ea0
call dword [sym.imp.ole32.dll_CoUninitialize]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0xc], 0x6f272944
mov dword [esp + 8], str.MMDRV_Init
mov dword [esp + 4], 0x6f266618
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_2
jmp 0x6f247c96
test byte [0x6f266618], 2
je 0x6f247e96
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0x6f272948
mov dword [esp + 8], str.MMDRV_Init
mov dword [esp + 4], 0x6f266618
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_2
jmp 0x6f247e96
test byte [0x6f266618], 2
jne 0x6f247fc0
mov eax, dword [ebp - 0x30]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
jmp 0x6f247e96
test byte [0x6f266618], 2
je 0x6f247e96
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.GetDevice_failed:__08lx_n
mov dword [esp + 8], str.MMDRV_Init
mov dword [esp + 4], 0x6f266618
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_2
jmp 0x6f247e96
test byte [0x6f266618], 2
je 0x6f247e96
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 0x6f2729c5
mov dword [esp + 8], str.MMDRV_Init
mov dword [esp + 4], 0x6f266618
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_2
jmp 0x6f247e96
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0x6f2729a4
mov dword [esp + 8], str.MMDRV_Init
mov dword [esp + 4], 0x6f266618
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_2
jmp 0x6f247f25