Function at 0x1000f670
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x184c
call fcn.10093340
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 8], eax
mov dword [ebp - 0x1830], 0
mov dword [ebp - 0x1828], 0
mov dword [ebp - 0x1814], 0
mov dword [ebp - 0x182c], 0
cmp dword [ebp + 8], 0
je 0x1000f6b7
jmp 0x1000f6e1
push str.program___NULL
push 0x1cd
push 0x100d3514
push 0x100d352c
push 8
push 0x100d3554
call sym.glib_2.0.dll_g_log
add esp, 0x18
xor eax, eax
jmp 0x1000fb76
xor eax, eax
jne 0x1000f6af
mov ecx, dword [ebp + 8]
push ecx
call sym.glib_2.0.dll_g_path_is_absolute
add esp, 4
test eax, eax
jne 0x1000f71b
push 0x5c
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.MSVCR90.dll_strchr]
add esp, 8
test eax, eax
jne 0x1000f71b
push 0x2f
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.MSVCR90.dll_strchr]
add esp, 8
test eax, eax
je 0x1000f759
push 8
mov ecx, dword [ebp + 8]
push ecx
call sym.glib_2.0.dll_g_file_test_utf8
add esp, 8
test eax, eax
je 0x1000f752
push 4
mov edx, dword [ebp + 8]
push edx
call sym.glib_2.0.dll_g_file_test_utf8
add esp, 8
test eax, eax
jne 0x1000f752
mov eax, dword [ebp + 8]
push eax
call sym.glib_2.0.dll_g_strdup
add esp, 4
jmp 0x1000fb76
xor eax, eax
jmp 0x1000fb76
push str.PATH
call sym.glib_2.0.dll_g_getenv_utf8
add esp, 4
mov dword [ebp - 0x1834], eax
push 0x400
lea ecx, [ebp - 0x808]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov dword [ebp - 0x810], eax
cmp dword [ebp - 0x810], 0
jle 0x1000f7b8
cmp dword [ebp - 0x810], 0x400
jge 0x1000f7b8
push 0
push 0
push 0
push 0xffffffffffffffff
lea edx, [ebp - 0x808]
push edx
call sym.glib_2.0.dll_g_utf16_to_utf8
add esp, 0x14
mov dword [ebp - 0x1830], eax
push 0x400
lea eax, [ebp - 0x1810]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov dword [ebp - 0x810], eax
cmp dword [ebp - 0x810], 0
jle 0x1000f802
cmp dword [ebp - 0x810], 0x400
jge 0x1000f802
push 0
push 0
push 0
push 0xffffffffffffffff
lea ecx, [ebp - 0x1810]
push ecx
call sym.glib_2.0.dll_g_utf16_to_utf8
add esp, 0x14
mov dword [ebp - 0x1814], eax
push 0x400
lea edx, [ebp - 0x1010]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
mov dword [ebp - 0x810], eax
cmp dword [ebp - 0x810], 0
jle 0x1000f84c
cmp dword [ebp - 0x810], 0x400
jge 0x1000f84c
push 0
push 0
push 0
push 0xffffffffffffffff
lea eax, [ebp - 0x1010]
push eax
call sym.glib_2.0.dll_g_utf16_to_utf8
add esp, 0x14
mov dword [ebp - 0x182c], eax
cmp dword [ebp - 0x1830], 0
je 0x1000f879
mov ecx, dword [ebp - 0x1830]
push ecx
call sym.glib_2.0.dll_g_path_get_dirname
add esp, 4
mov dword [ebp - 0x1828], eax
mov edx, dword [ebp - 0x1830]
push edx
call sym.glib_2.0.dll_g_free
add esp, 4
mov eax, dword [ebp - 0x1834]
push eax
call sym.glib_2.0.dll_g_strdup
add esp, 4
mov dword [ebp - 0x1834], eax
cmp dword [ebp - 0x182c], 0
je 0x1000f8e4
mov ecx, dword [ebp - 0x1834]
mov dword [ebp - 0x1838], ecx
push 0
mov edx, dword [ebp - 0x1834]
push edx
push 0x100d3564
mov eax, dword [ebp - 0x182c]
push eax
call sym.glib_2.0.dll_g_strconcat
add esp, 0x10
mov dword [ebp - 0x1834], eax
mov ecx, dword [ebp - 0x1838]
push ecx
call sym.glib_2.0.dll_g_free
add esp, 4
mov edx, dword [ebp - 0x182c]
push edx
call sym.glib_2.0.dll_g_free
add esp, 4
cmp dword [ebp - 0x1814], 0
je 0x1000f93a
mov eax, dword [ebp - 0x1834]
mov dword [ebp - 0x183c], eax
push 0
mov ecx, dword [ebp - 0x1834]
push ecx
push 0x100d3568
mov edx, dword [ebp - 0x1814]
push edx
call sym.glib_2.0.dll_g_strconcat
add esp, 0x10
mov dword [ebp - 0x1834], eax
mov eax, dword [ebp - 0x183c]
push eax
call sym.glib_2.0.dll_g_free
add esp, 4
mov ecx, dword [ebp - 0x1814]
push ecx
call sym.glib_2.0.dll_g_free
add esp, 4
mov edx, dword [ebp - 0x1834]
mov dword [ebp - 0x1840], edx
push 0
mov eax, dword [ebp - 0x1834]
push eax
push 0x100d356c
call sym.glib_2.0.dll_g_strconcat
add esp, 0xc
mov dword [ebp - 0x1834], eax
mov ecx, dword [ebp - 0x1840]
push ecx
call sym.glib_2.0.dll_g_free
add esp, 4
cmp dword [ebp - 0x1828], 0
je 0x1000f9c7
mov edx, dword [ebp - 0x1834]
mov dword [ebp - 0x1844], edx
push 0
mov eax, dword [ebp - 0x1834]
push eax
push 0x100d3570
mov ecx, dword [ebp - 0x1828]
push ecx
call sym.glib_2.0.dll_g_strconcat
add esp, 0x10
mov dword [ebp - 0x1834], eax
mov edx, dword [ebp - 0x1844]
push edx
call sym.glib_2.0.dll_g_free
add esp, 4
mov eax, dword [ebp - 0x1828]
push eax
call sym.glib_2.0.dll_g_free
add esp, 4
mov ecx, dword [ebp - 0x1834]
mov dword [ebp - 0x1820], ecx
mov edx, dword [ebp + 8]
push edx
call sub.MSVCR90.dll_strlen
add esp, 4
add eax, 1
mov dword [ebp - 0x1818], eax
mov eax, dword [ebp - 0x1834]
push eax
call sub.MSVCR90.dll_strlen
add esp, 4
mov dword [ebp - 0x80c], eax
mov ecx, dword [ebp - 0x1818]
mov edx, dword [ebp - 0x80c]
lea eax, [edx + ecx + 1]
push eax
call sym.glib_2.0.dll_g_malloc
add esp, 4
mov dword [ebp - 0x181c], eax
mov ecx, dword [ebp - 0x181c]
mov dword [ebp - 0x1824], ecx
mov edx, dword [ebp - 0x1818]
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x80c]
mov edx, dword [ebp - 0x181c]
lea eax, [edx + ecx + 1]
push eax
call sub.MSVCR90.dll_memcpy
add esp, 0xc
mov ecx, dword [ebp - 0x181c]
add ecx, dword [ebp - 0x80c]
mov dword [ebp - 0x181c], ecx
mov edx, dword [ebp - 0x181c]
mov byte [edx], 0x5c
mov eax, dword [ebp - 0x1834]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x1834], ecx
push 0x3b
mov edx, dword [ebp - 0x1834]
push edx
call fcn.1000cb00
add esp, 8
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x1834]
jne 0x1000faa9
mov ecx, dword [ebp - 0x181c]
add ecx, 1
mov dword [ebp - 0x1848], ecx
jmp 0x1000fada
mov edx, dword [ebp - 4]
sub edx, dword [ebp - 0x1834]
push edx
mov eax, dword [ebp - 0x1834]
push eax
mov ecx, dword [ebp - 4]
sub ecx, dword [ebp - 0x1834]
mov edx, dword [ebp - 0x181c]
sub edx, ecx
push edx
call sub.MSVCR90.dll_memcpy
add esp, 0xc
mov dword [ebp - 0x1848], eax
push 8
mov eax, dword [ebp - 0x1848]
push eax
call sym.glib_2.0.dll_g_file_test_utf8
add esp, 8
test eax, eax
je 0x1000fb3f
push 4
mov ecx, dword [ebp - 0x1848]
push ecx
call sym.glib_2.0.dll_g_file_test_utf8
add esp, 8
test eax, eax
jne 0x1000fb3f
mov edx, dword [ebp - 0x1848]
push edx
call sym.glib_2.0.dll_g_strdup
add esp, 4
mov dword [ebp - 0x184c], eax
mov eax, dword [ebp - 0x1824]
push eax
call sym.glib_2.0.dll_g_free
add esp, 4
mov ecx, dword [ebp - 0x1820]
push ecx
call sym.glib_2.0.dll_g_free
add esp, 4
mov eax, dword [ebp - 0x184c]
jmp 0x1000fb76
mov edx, dword [ebp - 4]
movsx eax, byte [edx]
mov ecx, dword [ebp - 4]
add ecx, 1
mov dword [ebp - 4], ecx
test eax, eax
jne 0x1000fa70
mov edx, dword [ebp - 0x1824]
push edx
call sym.glib_2.0.dll_g_free
add esp, 4
mov eax, dword [ebp - 0x1820]
push eax
call sym.glib_2.0.dll_g_free
add esp, 4
xor eax, eax
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.10001000
mov esp, ebp
pop ebp
ret