Function at 0x47d970
Capabilities:
Delete file
Get common file path
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov esi, dword fs:[0x18]
sub esp, 0xa34
mov dword [esp], 0
call dword [sym.imp.gdi32.dll_CreateMetaFileA]
sub esp, 4
mov ebx, eax
call fcn.00492bc0
mov dword [eax], 0x4b8dcc
mov dword [eax + 4], 0xf48
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.CreateMetaFileA_NULL__error__ld_n
mov dword [esp + 8], eax
xor eax, eax
test ebx, ebx
setne al
mov dword [esp], eax
call fcn.00472ba0
mov dword [esp], ebx
call dword [sym.imp.gdi32.dll_CloseMetaFile]
sub esp, 4
mov ebx, eax
call fcn.00492bc0
mov dword [eax], 0x4b8dcc
mov dword [eax + 4], 0xf4b
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.CloseMetaFile_error__ld_n
mov dword [esp + 8], eax
xor eax, eax
test ebx, ebx
setne al
mov dword [esp], eax
call fcn.00472ba0
mov dword [esp], ebx
mov edi, dword [sym.imp.gdi32.dll_GetObjectType]
call edi
sub esp, 4
mov esi, eax
call fcn.00492bc0
mov dword [eax], 0x4b8dcc
mov dword [eax + 4], 0xf4d
xor eax, eax
cmp esi, 9
sete al
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], str.CloseMetaFile_created_object_with_type__d_n
call fcn.00472ba0
mov dword [esp], str.mf_blank
mov ecx, 0x18
mov eax, ebx
mov edx, 0x4c80e4
call fcn.00479240
test eax, eax
je 0x47da8f
mov ecx, dword [0x4975a8]
test ecx, ecx
jne 0x47de10
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x4723c0
mov dword [esp + 4], ebx
mov dword [esp], 0
call dword [sym.imp.gdi32.dll_EnumMetaFile]
sub esp, 0x10
lea esi, [ebp - 0xa14]
mov dword [esp], 0x104
mov dword [esp + 4], esi
call dword [sym.imp.kernel32.dll_GetTempPathA]
lea eax, [ebp - 0x910]
sub esp, 8
mov dword [esp], esi
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0x4baaec
call dword [sym.imp.kernel32.dll_GetTempFileNameA]
lea eax, [ebp - 0x910]
sub esp, 0x10
mov dword [esp + 4], eax
mov dword [esp], ebx
call dword [sym.imp.gdi32.dll_CopyMetaFileA]
sub esp, 8
mov dword [ebp - 0xa1c], eax
call fcn.00492bc0
mov dword [eax], 0x4b8dcc
mov dword [eax + 4], 0xf5a
mov esi, dword fs:[0x18]
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.CopyMetaFile_error__ld_n
mov dword [esp + 8], eax
mov edx, dword [ebp - 0xa1c]
xor eax, eax
test edx, edx
setne al
mov dword [esp], eax
call fcn.00472ba0
mov eax, dword [ebp - 0xa1c]
mov dword [esp], eax
call edi
sub esp, 4
mov edi, eax
call fcn.00492bc0
mov dword [eax], 0x4b8dcc
mov dword [eax + 4], 0xf5d
xor eax, eax
cmp edi, 9
sete al
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], str.CopyMetaFile_created_object_with_type__d_n
call fcn.00472ba0
mov eax, dword [sym.imp.gdi32.dll_DeleteMetaFile]
mov dword [esp], ebx
mov dword [ebp - 0xa20], eax
call eax
sub esp, 4
mov edi, eax
call fcn.00492bc0
mov dword [eax], 0x4b8dcc
mov dword [eax + 4], 0xf60
mov eax, dword [esi + 0x34]
mov dword [esp], edi
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebx
mov dword [esp + 4], str.DeleteMetaFile__p__error__ld_n
call fcn.00472ba0
lea eax, [ebp - 0x910]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 0x80000000
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_CreateFileA]
sub esp, 0x1c
mov edi, eax
cmp eax, 0xffffffff
je 0x47de3e
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetFileSize]
sub esp, 8
mov ebx, eax
cmp eax, 0x800
ja 0x47de21
lea edx, [ebp - 0x80c]
lea eax, [ebp - 0xa18]
mov dword [esp], edi
mov dword [esp + 4], edx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x800
call dword [sym.imp.kernel32.dll_ReadFile]
sub esp, 0x14
mov dword [ebp - 0xa24], eax
call fcn.00492bc0
mov ecx, dword [ebp - 0xa24]
mov dword [eax], 0x4b8dcc
mov dword [eax + 4], 0x850
mov eax, dword [esi + 0x34]
test ecx, ecx
jne 0x47ddb0
mov dword [esp], ecx
mov dword [esp + 8], eax
mov dword [esp + 4], str.ReadFile:_error__ld_n
call fcn.00472ba0
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_CloseHandle]
sub esp, 4
call fcn.00492bc0
mov dword [eax], 0x4b8dcc
mov dword [eax + 4], 0x854
xor eax, eax
cmp ebx, 0x18
sete al
mov dword [esp + 0x10], 0x18
mov dword [esp + 0xc], ebx
mov dword [esp + 8], str.mf_blank
mov dword [esp + 4], str._s:_mfsize_ld__bsize_d._n
mov dword [esp], eax
call fcn.00472ba0
cmp ebx, 0x18
jne 0x47ddc0
xor ebx, ebx
xor eax, eax
lea edx, [ebp - 0x80c]
movzx ecx, byte [eax + 0x4c80e4]
cmp byte [edx + eax], cl
je 0x47dcef
add ebx, 1
add eax, 1
cmp eax, 0x18
jne 0x47dce0
call fcn.00492bc0
mov dword [eax], 0x4b8dcc
mov dword [eax + 4], 0x85f
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], 0x18
mov dword [esp + 0xc], 0x18
mov dword [esp + 8], str.mf_blank
mov dword [esp + 4], str._s:_mfsize_ld__bsize_d__diff_d_n
mov dword [esp], eax
call fcn.00472ba0
test ebx, ebx
jne 0x47ddc0
mov esi, dword [ebp - 0xa1c]
mov dword [esp], esi
mov eax, dword [ebp - 0xa20]
call eax
sub esp, 4
mov ebx, eax
call fcn.00492bc0
mov dword [eax], 0x4b8dcc
mov dword [eax + 4], 0xf69
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp + 8], esi
mov dword [esp], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.DeleteMetaFile__p__error__ld_n
call fcn.00472ba0
lea eax, [ebp - 0x910]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_DeleteFileA]
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
xor ecx, ecx
cmp dword [ebp - 0xa18], ebx
sete cl
jmp 0x47dc6f
mov eax, dword [0x4975a8]
test eax, eax
je 0x47ddd9
mov eax, dword [ebp - 0xa1c]
mov edx, str.mf_Blank
call fcn.004793a0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x4723c0
mov eax, dword [ebp - 0xa1c]
mov dword [esp], 0
mov dword [esp + 4], eax
call dword [sym.imp.gdi32.dll_EnumMetaFile]
sub esp, 0x10
jmp 0x47dd44
mov edx, str.mf_Blank
mov eax, ebx
call fcn.004793a0
jmp 0x47da6b
mov dword [esp + 8], 0x84d
mov dword [esp + 4], str..._dlls_gdi32_tests_metafile.c
mov dword [esp], str.mfsize___MF_BUFSIZE
call dword [sym.imp.msvcrt.dll__assert]
mov dword [esp + 8], 0x84a
mov dword [esp + 4], str..._dlls_gdi32_tests_metafile.c
mov dword [esp], str.hfile___INVALID_HANDLE_VALUE
call dword [sym.imp.msvcrt.dll__assert]
lea esi, [esi]
nop