Function at 0x6f2465d0
Capabilities:
Get process heap flags
Link many functions at runtime

Disassembly:
push ebp
push edi
push esi
mov esi, eax
push ebx
sub esp, 0x3c
mov eax, dword [0x6f27a340]
mov dword [esp + 0x24], edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x20], eax
mov ebp, eax
test byte [0x6f266140], 8
je 0x6f246636
cmp ecx, 1
mov dword [esp + 0x14], edx
sbb eax, eax
mov dword [esp + 0x10], esi
and eax, 0xfffffff5
mov dword [esp + 0xc], str.__s___s__mapper_c___n
add eax, 0x59
mov dword [esp + 8], str.MMDRV_Install
mov dword [esp + 0x18], eax
mov dword [esp + 4], 0x6f266140
mov dword [esp], 3
call fcn.6f245ff0
mov ebp, dword [0x6f27a340]
test ebp, ebp
jle 0x6f246670
mov ebx, 0x6f27a0a4
xor edi, edi
jmp 0x6f246652
add edi, 1
add ebx, 0x54
cmp edi, ebp
je 0x6f246670
mov eax, dword [ebx]
mov dword [esp], esi
mov dword [esp + 4], eax
call dword [sym.imp.ucrtbase.dll_strcmp]
test eax, eax
jne 0x6f246648
add esp, 0x3c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp ebp, 8
ja 0x6f246a00
imul ebx, dword [esp + 0x20], 0x54
xor eax, eax
mov ecx, 0x15
lea edi, [ebx + 0x6f27a0a0]
mov dword [esp + 0x28], edi
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call sym.winmm.dll_DrvOpenA
sub esp, 0xc
mov dword [ebx + 0x6f27a0a0], eax
test eax, eax
je 0x6f246a28
mov dword [esp], eax
call fcn.6f243210
mov ebx, eax
mov eax, dword [eax + 8]
test eax, eax
je 0x6f2469a3
mov edi, dword [sym.imp.kernel32.dll_GetProcAddress]
mov dword [esp + 4], str.auxMessage
xor ebp, ebp
mov dword [esp], eax
call edi
sub esp, 8
test eax, eax
je 0x6f246708
mov ecx, dword [esp + 0x28]
mov dword [ecx + 0x14], eax
test byte [0x6f266140], 8
jne 0x6f246a9f
mov ebp, 1
mov dword [esp + 4], str.mxdMessage
mov eax, dword [ebx + 8]
mov dword [esp], eax
call edi
sub esp, 8
test eax, eax
je 0x6f24673a
imul edx, dword [esp + 0x20], 0x54
mov dword [edx + 0x6f27a0c0], eax
test byte [0x6f266140], 8
jne 0x6f246ad8
add ebp, 1
mov dword [esp + 4], str.midMessage
mov eax, dword [ebx + 8]
mov dword [esp], eax
call edi
sub esp, 8
test eax, eax
je 0x6f24676c
imul edx, dword [esp + 0x20], 0x54
mov dword [edx + 0x6f27a0cc], eax
test byte [0x6f266140], 8
jne 0x6f246b83
add ebp, 1
mov dword [esp + 4], str.modMessage
mov eax, dword [ebx + 8]
mov dword [esp], eax
call edi
sub esp, 8
test eax, eax
je 0x6f24679e
imul edx, dword [esp + 0x20], 0x54
mov dword [edx + 0x6f27a0d8], eax
test byte [0x6f266140], 8
jne 0x6f246b4a
add ebp, 1
mov dword [esp + 4], str.widMessage
mov eax, dword [ebx + 8]
mov dword [esp], eax
call edi
sub esp, 8
test eax, eax
je 0x6f246980
imul edx, dword [esp + 0x20], 0x54
mov dword [edx + 0x6f27a0e4], eax
test byte [0x6f266140], 8
jne 0x6f246b11
mov dword [esp + 4], str.wodMessage
mov eax, dword [ebx + 8]
mov dword [esp], eax
call edi
sub esp, 8
test eax, eax
je 0x6f246800
imul edx, dword [esp + 0x20], 0x54
mov dword [edx + 0x6f27a0f0], eax
test byte [0x6f266140], 8
jne 0x6f246a66
imul ebp, dword [esp + 0x20], 0x54
movzx eax, byte [esp + 0x2c]
mov edi, dword fs:[0x18]
lea ebx, [ebp + 0x6f27a0a0]
movzx edx, byte [ebx + 8]
and eax, 1
and edx, 0xfffffffe
or eax, edx
mov byte [ebx + 8], al
mov dword [esp], esi
call dword [sym.imp.ucrtbase.dll_strlen]
mov dword [esp + 4], 0
add eax, 1
mov dword [esp + 8], eax
mov eax, dword [edi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
sub esp, 0xc
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_strcpy]
xor edx, edx
mov ecx, 3
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x28]
call fcn.6f246040
mov ecx, 1
mov edx, 1
mov esi, eax
mov eax, dword [esp + 0x28]
call fcn.6f246040
mov edx, 2
or eax, esi
mov eax, dword [esp + 0x28]
setne cl
mov esi, ecx
mov ecx, 0x35
call fcn.6f246040
mov ecx, esi
mov edx, 3
test eax, eax
movzx esi, cl
mov eax, 1
cmovne esi, eax
mov eax, dword [esp + 0x28]
mov ecx, 1
call fcn.6f246040
mov ecx, 0x32
mov edx, 4
test eax, eax
mov eax, dword [esp + 0x28]
jne 0x6f246bbc
call fcn.6f246040
test eax, eax
jne 0x6f246bc1
mov eax, dword [esp + 0x28]
mov ecx, 3
mov edx, 5
call fcn.6f246040
or eax, esi
jne 0x6f246bd4
mov eax, dword [ebp + 0x6f27a0a0]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call sym.winmm.dll_CloseDriver
mov eax, dword [ebx + 4]
sub esp, 0xc
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov eax, dword [edi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
test byte [0x6f266140], 4
je 0x6f246665
mov dword [esp + 0xc], str.Driver_initialization_failed_n
mov dword [esp + 8], str.MMDRV_Install
mov dword [esp + 4], 0x6f266140
mov dword [esp], 2
call fcn.6f245ff0
jmp 0x6f246665
mov dword [esp + 4], str.wodMessage
mov eax, dword [ebx + 8]
mov dword [esp], eax
call edi
sub esp, 8
test eax, eax
jne 0x6f2467e8
test ebp, ebp
jne 0x6f246800
imul eax, dword [esp + 0x20], 0x54
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov eax, dword [eax + 0x6f27a0a0]
mov dword [esp], eax
call sym.winmm.dll_CloseDriver
sub esp, 0xc
test byte [0x6f266140], 4
je 0x6f246665
mov dword [esp + 0xc], str.No_message_functions_found_n
mov dword [esp + 8], str.MMDRV_Install
mov dword [esp + 4], 0x6f266140
mov dword [esp], 2
call fcn.6f245ff0
jmp 0x6f246665
mov dword [esp + 8], 0x1a8
mov dword [esp + 4], str._Users_gcenx_Documents_GitHub_wineskincx_dlls_winmm_lolvldrv.c
mov dword [esp], str.MMDrvsHi___ARRAY_SIZE_MMDrvs_
call dword [sym.imp.ucrtbase.dll__assert]
jmp 0x6f246679
test byte [0x6f266140], 4
je 0x6f246665
mov eax, dword [esp + 0x24]
mov dword [esp + 0xc], str.Couldnt_open_driver__s_n
mov dword [esp + 8], str.MMDRV_Install
mov dword [esp + 4], 0x6f266140
mov dword [esp], 2
mov dword [esp + 0x10], eax
call fcn.6f245ff0
jmp 0x6f246665
mov dword [esp + 0x14], str.wodMessage
mov dword [esp + 0x10], 0x20
mov dword [esp + 0xc], str.Got__d_bit_func__s_n
mov dword [esp + 8], str.MMDRV_Install
mov dword [esp + 4], 0x6f266140
mov dword [esp], 3
call fcn.6f245ff0
jmp 0x6f246800
mov dword [esp + 0x14], str.auxMessage
mov dword [esp + 0x10], 0x20
mov dword [esp + 0xc], str.Got__d_bit_func__s_n
mov dword [esp + 8], str.MMDRV_Install
mov dword [esp + 4], 0x6f266140
mov dword [esp], 3
call fcn.6f245ff0
jmp 0x6f246703
mov dword [esp + 0x14], str.mxdMessage
mov dword [esp + 0x10], 0x20
mov dword [esp + 0xc], str.Got__d_bit_func__s_n
mov dword [esp + 8], str.MMDRV_Install
mov dword [esp + 4], 0x6f266140
mov dword [esp], 3
call fcn.6f245ff0
jmp 0x6f246737
mov dword [esp + 0x14], str.widMessage
mov dword [esp + 0x10], 0x20
mov dword [esp + 0xc], str.Got__d_bit_func__s_n
mov dword [esp + 8], str.MMDRV_Install
mov dword [esp + 4], 0x6f266140
mov dword [esp], 3
call fcn.6f245ff0
jmp 0x6f2467d1
mov dword [esp + 0x14], str.modMessage
mov dword [esp + 0x10], 0x20
mov dword [esp + 0xc], str.Got__d_bit_func__s_n
mov dword [esp + 8], str.MMDRV_Install
mov dword [esp + 4], 0x6f266140
mov dword [esp], 3
call fcn.6f245ff0
jmp 0x6f24679b
mov dword [esp + 0x14], str.midMessage
mov dword [esp + 0x10], 0x20
mov dword [esp + 0xc], str.Got__d_bit_func__s_n
mov dword [esp + 8], str.MMDRV_Install
mov dword [esp + 4], 0x6f266140
mov dword [esp], 3
call fcn.6f245ff0
jmp 0x6f246769
call fcn.6f246040
mov eax, dword [esp + 0x28]
mov ecx, 3
mov edx, 5
call fcn.6f246040
add dword [0x6f27a340], 1
add esp, 0x3c
pop ebx
pop esi
pop edi
pop ebp
ret