Function at 0x7b32d5c0
Capabilities:
Check if file exists
Get file attributes
Get file size

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, eax
push esi
mov esi, edx
push ebx
sub esp, 0x184
mov dword [ebp - 0x164], ecx
test byte [0x7b33c188], 8
je 0x7b32d639
mov ebx, dword [ebp + 8]
mov eax, str.unicode
test ebx, ebx
je 0x7b32d6e0
mov dword [esp + 0x24], eax
mov eax, dword [ebp - 0x164]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], str.__s___p___08X___s___n
mov dword [esp + 0x10], 0x23d
mov dword [esp + 0xc], str.MMIO_Open
mov dword [esp + 8], 0x7b33f17d
mov dword [esp + 4], 0x7b33c188
mov dword [esp], 3
call sym._ros_dbg_log
test esi, esi
je 0x7b32d862
test dword [ebp - 0x164], 0x4100
je 0x7b32d6f0
test edi, edi
je 0x7b32d6d2
lea ebx, [ebp - 0x114]
mov dword [esp + 0xc], 0
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x104
mov dword [esp], edi
call sym._GetFullPathNameA_16
sub esp, 0x10
cmp eax, 0x103
ja 0x7b32d6d2
test dword [ebp - 0x164], 0x4000
je 0x7b32d69d
mov dword [esp], ebx
call sym._GetFileAttributesA_4
sub esp, 4
cmp eax, 0xffffffff
je 0x7b32d6d2
mov dword [esp + 4], ebx
mov ebx, 1
mov dword [esp], edi
call sym._strcpy
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebx + 0x4c]
test eax, eax
je 0x7b32d6cb
sub dword [eax + 0x10], 1
mov eax, ebx
call sym._MMIO_Destroy
xor ebx, ebx
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, str.ansi
jmp 0x7b32d5ef
call sym._GetProcessHeap_0
mov dword [esp + 8], 0x58
mov dword [esp + 4], 8
mov dword [esp], eax
call sym._HeapAlloc_12
sub esp, 0xc
mov ebx, eax
test eax, eax
je 0x7b32d6d4
mov dword [esp], 0x7b342a00
call sym._EnterCriticalSection_4
sub esp, 4
movzx eax, word [0x7b3429c0]
lea esi, [esi]
add ax, 1
je 0x7b32d730
mov word [0x7b3429c0], ax
movzx eax, ax
call sym._MMIO_Get
test eax, eax
jne 0x7b32d725
movzx eax, word [0x7b3429c0]
mov dword [ebx + 0x44], eax
mov eax, dword [0x7b3429c4]
mov dword [0x7b3429c4], ebx
mov dword [ebx + 0x48], eax
mov dword [esp], 0x7b342a00
call sym._LeaveCriticalSection_4
mov eax, dword [esi + 4]
sub esp, 4
test eax, eax
jne 0x7b32d8a0
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x7b32d8f5
mov ecx, dword [ebp + 8]
mov dword [ebx + 4], eax
mov edx, dword [esi + 8]
mov dword [esp], ecx
mov ecx, 0x10000
call sym._MMIO_InstallIOProc
mov edx, dword [0x7b33c140]
mov eax, dword [ebx + 4]
test edx, edx
jne 0x7b32d7ba
jmp 0x7b32d960
mov edx, dword [edx]
test edx, edx
je 0x7b32d960
cmp eax, dword [edx + 4]
jne 0x7b32d7b0
or byte [ebx + 0x50], 1
mov dword [ebx + 0x4c], edx
mov eax, dword [ebp - 0x164]
add dword [edx + 0x10], 1
mov dword [ebx], eax
mov ecx, dword [esi + 0x14]
test eax, 0x10000
je 0x7b32d7e5
test ecx, ecx
jne 0x7b32d7e5
mov ecx, 0x2000
mov edx, dword [esi + 0x18]
mov dword [esp], 0
mov eax, ebx
call sym._MMIO_SetBuffer
mov dword [esi + 0xc], eax
test eax, eax
jne 0x7b32d6c0
cmp dword [ebx + 4], 0x204d454d
je 0x7b32d8e0
mov eax, dword [esi + 0x30]
mov ecx, 3
mov edx, ebx
mov dword [ebx + 0x30], eax
mov eax, dword [ebx + 0x4c]
mov dword [esp + 4], 0
mov dword [esp], edi
call sym._send_message.constprop.2
mov dword [esi + 0xc], eax
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov dword [esp], eax
call sym._GetFileSize_8
mov dword [ebx + 0x54], eax
mov eax, dword [esi + 0xc]
sub esp, 8
test eax, eax
jne 0x7b32d6c0
mov ebx, dword [ebx + 0x44]
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [ebp - 0x158], 0
lea esi, [ebp - 0x15c]
mov dword [ebp - 0x154], 0
mov dword [ebp - 0x144], 0
mov dword [ebp - 0x148], 0
mov dword [ebp + 8], 0
jmp 0x7b32d641
mov edx, dword [esi + 8]
test edx, edx
jne 0x7b32d785
mov edx, dword [0x7b33c140]
mov dword [ebx + 4], eax
test edx, edx
jne 0x7b32d8ca
jmp 0x7b32d960
mov edx, dword [edx]
test edx, edx
je 0x7b32d960
cmp eax, dword [edx + 4]
jne 0x7b32d8c0
mov dword [ebx + 0x4c], edx
and byte [ebx + 0x50], 0xfe
jmp 0x7b32d7c6
test dword [ebx], 0x10000
jne 0x7b32d80e
or byte [ebx + 0x50], 2
jmp 0x7b32d80e
mov eax, edi
call sym._MMIO_ParseExtA
test eax, eax
je 0x7b32d96c
mov dword [ebx + 4], eax
mov ecx, dword [0x7b33c140]
test ecx, ecx
je 0x7b32d959
mov edx, ecx
cmp eax, dword [ecx + 4]
jne 0x7b32d925
jmp 0x7b32d8cf
cmp dword [edx + 4], eax
je 0x7b32d8cf
mov edx, dword [edx]
test edx, edx
jne 0x7b32d920
mov dword [ebx + 0x4c], 0
mov dword [ebx + 4], 0x20534f44
jmp 0x7b32d946
mov ecx, dword [ecx]
test ecx, ecx
je 0x7b32d960
cmp dword [ecx + 4], 0x20534f44
jne 0x7b32d940
mov dword [ebx + 0x4c], ecx
mov edx, ecx
jmp 0x7b32d8d2
mov dword [ebx + 4], 0x20534f44
mov dword [ebx + 0x4c], 0
jmp 0x7b32d6cb
mov dword [ebx + 4], 0x20534f44
mov eax, 0x20534f44
jmp 0x7b32d903