Function at 0x6f250cd0
Capabilities:
Check if file exists
Get file attributes
Get process heap flags

Disassembly:
push ebp
mov ebp, eax
push edi
push esi
push ebx
mov ebx, edx
sub esp, 0x1bc
mov dword [esp + 0x28], ecx
test byte [0x6f2661c8], 8
je 0x6f250e5d
mov edi, dword [esp + 0x1d0]
mov edx, str.ansi
mov eax, str.unicode
test edi, edi
cmove eax, edx
mov edi, eax
test ebp, ebp
je 0x6f251116
mov eax, ebp
shr eax, 0x10
test eax, eax
je 0x6f2511b9
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebp
call dword [sym.imp.kernel32.dll_IsBadStringPtrA]
mov edx, eax
sub esp, 8
mov eax, 0x6f26b676
test edx, edx
jne 0x6f250e25
cmp byte [ebp], 0
je 0x6f2512fb
lea eax, [ebp + 1]
mov esi, ebp
mov dword [esp], eax
call sub.ucrtbase.dll_strlen
mov dword [esp + 0x2c], ebp
mov ebp, ebx
lea ecx, [eax - 1]
mov byte [esp + 0x84], 0x22
lea eax, [esp + 0x85]
mov dword [esp + 0x24], ecx
jmp 0x6f250dc1
cmp dl, 9
je 0x6f251146
cmp dl, 0xa
jne 0x6f2511ce
mov ecx, 0x6e5c
add eax, 2
mov word [eax - 2], cx
lea esi, [esi]
lea esi, [esi]
cmp dword [esp + 0x24], 0xffffffff
je 0x6f25120f
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x1a7]
lea ebx, [ecx - 1]
cmp edx, eax
jb 0x6f250df2
mov dword [esp + 0x24], ebx
movzx edx, byte [esi]
add esi, 1
cmp dl, 0xd
je 0x6f251133
jle 0x6f250d78
cmp dl, 0x22
je 0x6f251120
cmp dl, 0x5c
jne 0x6f2511fd
mov ebx, 0x5c5c
add eax, 2
mov word [eax - 2], bx
jmp 0x6f250da0
mov ebx, ebp
mov byte [eax], 0x22
mov ebp, dword [esp + 0x2c]
test ecx, ecx
je 0x6f251218
mov edx, 0x2e2e
mov byte [eax + 3], 0x2e
mov word [eax + 1], dx
lea edx, [eax + 4]
lea eax, [esp + 0x84]
mov byte [edx], 0
mov dword [esp], eax
call fcn.6f264c70
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.__s___p___08lX___s___n
mov dword [esp + 0x18], ecx
mov dword [esp + 8], str.MMIO_Open
mov dword [esp + 4], 0x6f2661c8
mov dword [esp], 3
call fcn.6f24eee0
test ebx, ebx
je 0x6f251157
test dword [esp + 0x28], 0x4100
je 0x6f250f10
test ebp, ebp
je 0x6f250eff
lea ebx, [esp + 0x84]
mov dword [esp + 0xc], 0
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x104
mov dword [esp], ebp
call dword [sym.imp.kernel32.dll_GetFullPathNameA]
sub esp, 0x10
cmp eax, 0x103
ja 0x6f250eff
test dword [esp + 0x28], 0x4000
je 0x6f250ec4
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_GetFileAttributesA]
sub esp, 4
cmp eax, 0xffffffff
je 0x6f250eff
mov dword [esp + 4], ebx
mov dword [esp], ebp
call dword [sym.imp.ucrtbase.dll_strcpy]
add esp, 0x1bc
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret
test dword [esi], 0x10000
jne 0x6f25124c
mov eax, dword [esi + 0x4c]
test eax, eax
je 0x6f250ef8
sub dword [eax + 0x10], 1
mov eax, esi
call fcn.6f24edf0
add esp, 0x1bc
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 8], 0x58
mov dword [esp + 4], 8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
sub esp, 0xc
mov esi, eax
test eax, eax
je 0x6f250eff
mov edi, dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [esp], 0x6f266460
call edi
sub esp, 4
mov dword [esp + 0x24], ebx
lea esi, [esi]
movzx eax, word [0x6f27a520]
mov dword [esp], 0x6f266460
lea edx, [eax + 1]
mov eax, 1
test dx, dx
cmove edx, eax
mov word [0x6f27a520], dx
movzx ebx, dx
call edi
mov eax, dword [0x6f27a524]
sub esp, 4
test eax, eax
jne 0x6f250f97
jmp 0x6f250fb0
mov eax, dword [eax + 0x48]
test eax, eax
je 0x6f250fb0
cmp ebx, dword [eax + 0x44]
jne 0x6f250f90
mov dword [esp], 0x6f266460
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
sub esp, 4
jmp 0x6f250f58
mov ebx, dword [esp + 0x24]
mov dword [esp], 0x6f266460
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
movzx eax, word [0x6f27a520]
movd xmm1, dword [0x6f27a524]
sub esp, 4
mov dword [0x6f27a524], esi
movd xmm0, eax
punpckldq xmm0, xmm1
movq qword [esi + 0x44], xmm0
mov dword [esp], 0x6f266460
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
mov eax, dword [ebx + 4]
sub esp, 4
test eax, eax
jne 0x6f251180
mov edx, dword [ebx + 8]
test edx, edx
je 0x6f251220
mov ecx, dword [esp + 0x1d0]
mov dword [esi + 4], eax
mov dword [esp], ecx
mov ecx, 0x10000
call fcn.6f24f310
mov edx, dword [0x6f266180]
mov eax, dword [esi + 4]
test edx, edx
jne 0x6f251042
jmp 0x6f2512a3
mov edx, dword [edx]
test edx, edx
je 0x6f2512a3
cmp eax, dword [edx + 4]
jne 0x6f251038
mov eax, dword [ebx + 8]
mov dword [esi + 0x4c], edx
cmp dword [edx + 8], eax
je 0x6f251072
mov dword [esp + 8], 0x2af
mov dword [esp + 4], str._Users_gcenx_Documents_GitHub_wineskincx_dlls_winmm_mmio.c
mov dword [esp], str.wm__ioProc__pIOProc__refmminfo__pIOProc
call dword [sym.imp.ucrtbase.dll__assert]
mov edx, dword [esi + 0x4c]
mov ecx, 1
movzx eax, byte [esi + 0x50]
and eax, 0xfffffffe
or eax, ecx
mov ecx, dword [ebx + 0x14]
mov byte [esi + 0x50], al
mov eax, dword [esp + 0x28]
add dword [edx + 0x10], 1
mov edx, dword [ebx + 0x18]
mov dword [esi], eax
test eax, 0x10000
je 0x6f2510a4
test ecx, ecx
mov eax, 0x2000
cmove ecx, eax
mov dword [esp], 0
mov eax, esi
call fcn.6f24f150
mov dword [ebx + 0xc], eax
test eax, eax
jne 0x6f250ee1
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebx + 0x38]
mov eax, dword [esi + 0x4c]
mov dword [esi + 0x30], ecx
mov ecx, dword [ebx + 0x34]
mov dword [esi + 0x38], edx
mov edx, esi
mov dword [esi + 0x34], ecx
mov ecx, 3
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.6f24ef30
cmp dword [esi + 4], 0x20534f44
mov dword [ebx + 0xc], eax
je 0x6f251278
mov dword [esi + 0x54], 0
test eax, eax
jne 0x6f250ee1
mov eax, dword [esi + 0x44]
add esp, 0x1bc
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, 0x6f26b688
jmp 0x6f250e25
movzx edx, word [0x6f26ba94]
add eax, 2
mov word [eax - 2], dx
jmp 0x6f250da0
movzx edx, word [0x6f26ba92]
add eax, 2
mov word [eax - 2], dx
jmp 0x6f250da0
mov edx, 0x745c
add eax, 2
mov word [eax - 2], dx
jmp 0x6f250da0
lea edx, [esp + 0x3c]
mov eax, ebx
mov ecx, 0x12
mov dword [esp + 0x1d0], 0
mov edi, edx
mov ebx, edx
rep stosd dword es:[edi], eax
jmp 0x6f250e65
mov edx, dword [ebx + 8]
test edx, edx
jne 0x6f25100c
mov edx, dword [0x6f266180]
mov dword [esi + 4], eax
test edx, edx
jne 0x6f2511aa
jmp 0x6f2512a3
mov edx, dword [edx]
test edx, edx
je 0x6f2512a3
cmp eax, dword [edx + 4]
jne 0x6f2511a0
mov dword [esi + 0x4c], edx
xor ecx, ecx
jmp 0x6f251077
mov dword [esp + 4], ebp
mov dword [esp], 0x6f26b2a0
call fcn.6f24ed90
jmp 0x6f250e25
mov ebx, edx
mov ecx, 0x785c
and edx, 0xf
shr bl, 4
mov word [eax], cx
xor ecx, ecx
add eax, 4
movzx ebx, bl
mov cl, byte [ebx + str.0123456789abcdefmmioDosIOProc]
mov ebx, ecx
mov bh, byte [edx + str.0123456789abcdefmmioDosIOProc]
mov word [eax - 2], bx
jmp 0x6f250da0
lea ebx, [edx - 0x20]
cmp bl, 0x5e
ja 0x6f2511ce
mov byte [eax], dl
add eax, 1
jmp 0x6f250da0
mov ebx, ebp
mov ebp, dword [esp + 0x2c]
mov byte [eax], 0x22
lea edx, [eax + 1]
jmp 0x6f250e13
mov eax, ebp
call fcn.6f2509e0
mov dword [esi + 4], eax
test eax, eax
jne 0x6f251314
mov dword [esi + 4], 0x20534f44
mov dword [esi + 0x4c], 0x6f2661a0
mov edx, 0x6f2661a0
xor ecx, ecx
jmp 0x6f251077
mov edx, dword [esi + 0x18]
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov dword [esp + 8], edx
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
jmp 0x6f250eed
mov eax, dword [esi + 0x4c]
mov ecx, 2
mov edx, esi
mov dword [esp + 4], 1
mov dword [esp], 0
call fcn.6f24ef30
cmp eax, 0xffffffff
jne 0x6f2512af
mov eax, dword [ebx + 0xc]
jmp 0x6f2510f9
mov dword [esi + 0x4c], 0
jmp 0x6f250ef8
mov edi, dword [esi + 0x2c]
mov ecx, 2
mov edx, esi
mov eax, dword [esi + 0x4c]
mov dword [esi + 0x28], edi
mov dword [esp + 4], 2
mov dword [esp], 0
call fcn.6f24ef30
mov eax, dword [esi + 0x2c]
mov ecx, 2
mov edx, esi
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0x4c]
mov dword [esp + 4], 0
mov dword [esp], edi
call fcn.6f24ef30
mov eax, dword [ebx + 0xc]
jmp 0x6f251100
lea edx, [esp + 0x86]
mov esi, 0x2222
mov word [esp + 0x84], si
jmp 0x6f250e13
mov edx, dword [0x6f266180]
test edx, edx
jne 0x6f251332
jmp 0x6f251239
mov edx, dword [edx]
test edx, edx
je 0x6f251239
cmp eax, dword [edx + 4]
jne 0x6f251328
jmp 0x6f2511af