Function at 0x100909c0
Capabilities:
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
cmp dword [ebp + 8], 0
je 0x100909ce
jmp 0x100909f5
push 0x100e683c
push 0x6f
push 0x100e6850
push 0x100e686c
push 8
push 0x100e6894
call sym.glib_2.0.dll_g_log
add esp, 0x18
xor eax, eax
jmp 0x10090cd1
xor eax, eax
jne 0x100909c6
cmp dword [ebp + 0x10], 0
je 0x10090a07
mov ecx, dword [ebp + 0x10]
cmp dword [ecx], 0
jne 0x10090a09
jmp 0x10090a30
push str._error__error__NULL
push 0x70
push 0x100e68b8
push 0x100e68d4
push 8
push 0x100e68fc
call sym.glib_2.0.dll_g_log
add esp, 0x18
xor eax, eax
jmp 0x10090cd1
xor edx, edx
jne 0x100909f9
push 0
mov eax, dword [ebp + 0xc]
neg eax
sbb eax, eax
and eax, 2
or eax, 0x8000
push eax
mov ecx, dword [ebp + 8]
push ecx
call sym.glib_2.0.dll_g_open
add esp, 0xc
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0xffffffff
jne 0x10090ac6
call dword [sym.imp.MSVCR90.dll__errno]
mov edx, dword [eax]
mov dword [ebp - 0x44], edx
mov eax, dword [ebp + 8]
push eax
call sym.glib_2.0.dll_g_filename_display_name
add esp, 4
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x44]
push ecx
call sym.glib_2.0.dll_g_strerror
add esp, 4
push eax
mov edx, dword [ebp - 0x40]
push edx
push str.Failed_to_open_file__s:_open___failed:__s
call sym.glib_2.0.dll_glib_gettext
add esp, 4
push eax
mov eax, dword [ebp - 0x44]
push eax
call sym.glib_2.0.dll_g_file_error_from_errno
add esp, 4
push eax
call sym.glib_2.0.dll_g_file_error_quark
push eax
mov ecx, dword [ebp + 0x10]
push ecx
call sym.glib_2.0.dll_g_set_error
add esp, 0x18
mov edx, dword [ebp - 0x40]
push edx
call sym.glib_2.0.dll_g_free
add esp, 4
xor eax, eax
jmp 0x10090cd1
push 0x10
call sym.glib_2.0.dll_g_slice_alloc0
add esp, 4
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov dword [eax + 8], 1
lea ecx, [ebp - 0x38]
push ecx
mov edx, dword [ebp - 0x3c]
push edx
call dword [sym.imp.MSVCR90.dll__fstat64i32]
add esp, 8
cmp eax, 0xffffffff
jne 0x10090b5c
call dword [sym.imp.MSVCR90.dll__errno]
mov eax, dword [eax]
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp + 8]
push ecx
call sym.glib_2.0.dll_g_filename_display_name
add esp, 4
mov dword [ebp - 0x48], eax
mov edx, dword [ebp - 0x4c]
push edx
call sym.glib_2.0.dll_g_strerror
add esp, 4
push eax
mov eax, dword [ebp - 0x48]
push eax
push str.Failed_to_get_attributes_of_file__s:_fstat___failed:__s
call sym.glib_2.0.dll_glib_gettext
add esp, 4
push eax
mov ecx, dword [ebp - 0x4c]
push ecx
call sym.glib_2.0.dll_g_file_error_from_errno
add esp, 4
push eax
call sym.glib_2.0.dll_g_file_error_quark
push eax
mov edx, dword [ebp + 0x10]
push edx
call sym.glib_2.0.dll_g_set_error
add esp, 0x18
mov eax, dword [ebp - 0x48]
push eax
call sym.glib_2.0.dll_g_free
add esp, 4
jmp 0x10090ca7
cmp dword [ebp - 0x24], 0
jne 0x10090b8a
mov ecx, dword [ebp - 4]
mov dword [ecx], 0
mov edx, dword [ebp - 4]
mov dword [edx + 4], 0x100fe74e
mov eax, dword [ebp - 0x3c]
push eax
call dword [sym.imp.MSVCR90.dll__close]
add esp, 4
mov eax, dword [ebp - 4]
jmp 0x10090cd1
mov ecx, dword [ebp - 4]
mov dword [ecx + 4], 0xffffffff
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x24]
mov dword [edx], eax
push 0
push 0
push 0
mov ecx, dword [ebp + 0xc]
neg ecx
sbb ecx, ecx
and ecx, 6
add ecx, 2
push ecx
push 0
mov edx, dword [ebp - 0x3c]
push edx
call dword [sym.imp.MSVCR90.dll__get_osfhandle]
add esp, 4
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0xc], eax
mov edx, dword [ebp - 4]
cmp dword [edx + 0xc], 0
je 0x10090c26
push 0
push 0
push 0
mov eax, dword [ebp + 0xc]
neg eax
sbb eax, eax
and eax, 0xfffffffd
add eax, 4
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0xc]
push edx
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov ecx, dword [ebp - 4]
mov dword [ecx + 4], eax
mov edx, dword [ebp - 4]
cmp dword [edx + 4], 0
jne 0x10090c26
mov eax, dword [ebp - 4]
mov dword [eax + 4], 0xffffffff
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0xc]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 4]
mov dword [eax + 0xc], 0
mov ecx, dword [ebp - 4]
cmp dword [ecx + 4], 0xffffffff
jne 0x10090c95
call dword [sym.imp.MSVCR90.dll__errno]
mov edx, dword [eax]
mov dword [ebp - 0x54], edx
mov eax, dword [ebp + 8]
push eax
call sym.glib_2.0.dll_g_filename_display_name
add esp, 4
mov dword [ebp - 0x50], eax
mov ecx, dword [ebp - 0x54]
push ecx
call sym.glib_2.0.dll_g_strerror
add esp, 4
push eax
mov edx, dword [ebp - 0x50]
push edx
push str.Failed_to_map_file__s:_mmap___failed:__s
call sym.glib_2.0.dll_glib_gettext
add esp, 4
push eax
mov eax, dword [ebp - 0x54]
push eax
call sym.glib_2.0.dll_g_file_error_from_errno
add esp, 4
push eax
call sym.glib_2.0.dll_g_file_error_quark
push eax
mov ecx, dword [ebp + 0x10]
push ecx
call sym.glib_2.0.dll_g_set_error
add esp, 0x18
mov edx, dword [ebp - 0x50]
push edx
call sym.glib_2.0.dll_g_free
add esp, 4
jmp 0x10090ca7
mov eax, dword [ebp - 0x3c]
push eax
call dword [sym.imp.MSVCR90.dll__close]
add esp, 4
mov eax, dword [ebp - 4]
jmp 0x10090cd1
mov ecx, dword [ebp - 0x3c]
push ecx
call dword [sym.imp.MSVCR90.dll__close]
add esp, 4
mov edx, 1
test edx, edx
je 0x10090ccb
mov eax, dword [ebp - 4]
push eax
push 0x10
call sym.glib_2.0.dll_g_slice_free1
add esp, 8
xor ecx, ecx
jne 0x10090cb4
xor eax, eax
mov esp, ebp
pop ebp
ret