Function at 0x180079510
Capabilities:
Get common file path
Reference absolute stream path on windows

Disassembly:
push rbx
push r14
sub rsp, 0x38
mov edx, 0x2e
mov r14, rcx
call qword [sym.imp.VCRUNTIME140.dll_strrchr]
mov rbx, rax
test rax, rax
je 0x180079561
mov edx, 0x5c
mov rcx, rax
call qword [sym.imp.VCRUNTIME140.dll_strchr]
test rax, rax
jne 0x180079561
lea edx, [rax + 0x2f]
mov rcx, rbx
call qword [sym.imp.VCRUNTIME140.dll_strchr]
test rax, rax
jne 0x180079561
mov rcx, r14
add rsp, 0x38
pop r14
pop rbx
jmp 0x1800796d0
mov qword [rsp + 0x50], rbp
mov rbx, 0xffffffffffffffff
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x68], r12
mov qword [rsp + 0x30], r15
inc rbx
cmp byte [r14 + rbx], 0
jne 0x180079581
lea rcx, str.PATHEXT
call sym.glib_2.0.dll_g_getenv
mov r8, rax
lea rdx, str..exe_.cmd_.bat_.com
xor r9d, r9d
lea rcx, [0x1800f87c8]
call sym.glib_2.0.dll_g_build_path
mov r12, rax
movsxd r15, ebx
mov rsi, rax
nop dword [rax]
movzx ecx, byte [rsi]
mov rbx, rsi
test cl, cl
je 0x1800795e0
nop word [rax + rax]
cmp cl, 0x3b
je 0x1800795e0
movzx ecx, byte [rbx + 1]
inc rbx
test cl, cl
jne 0x1800795d0
mov rax, r15
lea rbp, [rbx + 1]
sub rax, rsi
add rbp, rax
je 0x180079624
mov rcx, rbp
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rdi, rax
test rax, rax
jne 0x180079626
lea r9, str.d:_buildob_bora_15653658cayman_glibglib_srcglibgmem.c:105
mov qword [rsp + 0x20], rbp
lea r8, str._s:_failed_to_allocate__I64u_bytes
lea edx, [rax + 4]
lea rcx, [0x18009cbc8]
call sym.glib_2.0.dll_g_log
jmp 0x180079622
xor edi, edi
mov r8, r15
mov rdx, r14
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
mov r8, rbx
lea rcx, [r15 + rdi]
sub r8, rsi
mov rdx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov rax, r15
mov rcx, rdi
sub rax, rsi
add rax, rbx
mov byte [rax + rdi], 0
call 0x1800796d0
mov rsi, rax
test rdi, rdi
je 0x18007966c
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
test rsi, rsi
jne 0x180079690
cmp byte [rbx], 0
lea rsi, [rbx + 1]
jne 0x1800795c0
test r12, r12
je 0x18007968c
mov rcx, r12
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
xor eax, eax
jmp 0x1800796a1
test r12, r12
je 0x18007969e
mov rcx, r12
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rax, rsi
mov r12, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x50]
mov r15, qword [rsp + 0x30]
add rsp, 0x38
pop r14
pop rbx
ret
push rbx
push rbp
push rsi
push r14
push r15
mov eax, 0x1840
call fcn.180099990
sub rsp, rax
mov rax, qword [0x18011c010]
xor rax, rsp
mov qword [rsp + 0x1830], rax
xor ebx, ebx
mov rsi, rcx
mov ebp, ebx
mov r15d, ebx
mov r14d, ebx
test rcx, rcx
je 0x180079a55
call sym.glib_2.0.dll_g_path_is_absolute
test eax, eax
jne 0x180079a29
lea edx, [rbx + 0x5c]
mov rcx, rsi
call qword [sym.imp.VCRUNTIME140.dll_strchr]
test rax, rax
jne 0x180079a29
lea edx, [rbx + 0x2f]
mov rcx, rsi
call qword [sym.imp.VCRUNTIME140.dll_strchr]
test rax, rax
jne 0x180079a29
mov qword [rsp + 0x1878], rdi
lea rcx, str.PATH
mov qword [rsp + 0x1880], r12
call sym.glib_2.0.dll_g_getenv
mov r8d, 0x400
lea rdx, [rsp + 0x30]
xor ecx, ecx
mov r12, rax
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
dec eax
lea rdi, [rbx - 1]
cmp eax, 0x3fe
ja 0x18007979d
xor r9d, r9d
mov qword [rsp + 0x20], rbx
xor r8d, r8d
lea rcx, [rsp + 0x30]
mov edx, edi
call sym.glib_2.0.dll_g_utf16_to_utf8
mov rbp, rax
mov edx, 0x400
lea rcx, [rsp + 0x830]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
dec eax
cmp eax, 0x3fe
ja 0x1800797d6
xor r9d, r9d
mov qword [rsp + 0x20], rbx
xor r8d, r8d
lea rcx, [rsp + 0x830]
mov edx, edi
call sym.glib_2.0.dll_g_utf16_to_utf8
mov r15, rax
mov edx, 0x400
lea rcx, [rsp + 0x1030]
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
dec eax
cmp eax, 0x3fe
ja 0x18007980f
xor r9d, r9d
mov qword [rsp + 0x20], rbx
xor r8d, r8d
lea rcx, [rsp + 0x1030]
mov edx, edi
call sym.glib_2.0.dll_g_utf16_to_utf8
mov r14, rax
test rbp, rbp
je 0x180079828
mov rcx, rbp
call sym.glib_2.0.dll_g_path_get_dirname
mov rcx, rbp
mov rbx, rax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, r12
call sym.glib_2.0.dll_g_strdup
mov rbp, rax
test r14, r14
je 0x18007986a
xor r9d, r9d
lea rdx, [0x1800f87c8]
mov r8, rax
mov rcx, r14
mov r12, rax
call sym.glib_2.0.dll_g_strconcat
mov rbp, rax
test r12, r12
je 0x180079861
mov rcx, r12
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
test r15, r15
je 0x1800798a1
xor r9d, r9d
lea rdx, [0x1800f87c8]
mov r8, rbp
mov rcx, r15
mov r14, rbp
call sym.glib_2.0.dll_g_strconcat
mov rbp, rax
test r14, r14
je 0x180079898
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
xor r8d, r8d
lea rcx, [0x1800fa7dc]
mov rdx, rbp
call sym.glib_2.0.dll_g_strconcat
mov r14, rax
test rbp, rbp
je 0x1800798c4
mov rcx, rbp
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
test rbx, rbx
je 0x1800798fb
xor r9d, r9d
lea rdx, [0x1800f87c8]
mov r8, r14
mov rcx, rbx
mov rbp, r14
call sym.glib_2.0.dll_g_strconcat
mov r14, rax
test rbp, rbp
je 0x1800798f2
mov rcx, rbp
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rbx, rdi
nop
cmp byte [rsi + rbx + 1], 0
lea rbx, [rbx + 1]
jne 0x180079900
nop dword [rax + rax]
inc rdi
cmp byte [r14 + rdi], 0
jne 0x180079910
lea rcx, [rbx + 2]
add rcx, rdi
call sym.glib_2.0.dll_g_malloc
lea r8, [rbx + 1]
mov rdx, rsi
mov r15, rax
lea r12, [rax + rdi]
lea rcx, [r12 + 1]
call sub.VCRUNTIME140.dll_memcpy
mov rdx, r14
mov byte [r12], 0x5c
movzx eax, byte [rdx]
mov rbx, rdx
test al, al
je 0x180079980
cmp al, 0x3b
je 0x18007995f
movzx eax, byte [rbx + 1]
inc rbx
test al, al
jne 0x180079950
cmp rbx, rdx
je 0x180079980
mov rdi, r12
mov r8, rbx
sub rdi, rbx
sub r8, rdx
add rdi, rdx
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
mov rsi, rdi
jmp 0x180079985
lea rsi, [r12 + 1]
mov edx, 8
mov rcx, rsi
call sym.glib_2.0.dll_g_file_test
test eax, eax
je 0x1800799a7
mov edx, 4
mov rcx, rsi
call sym.glib_2.0.dll_g_file_test
test eax, eax
je 0x1800799fd
cmp byte [rbx], 0
lea rdx, [rbx + 1]
jne 0x180079946
test r15, r15
je 0x1800799be
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
test r14, r14
je 0x1800799cc
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
xor eax, eax
mov rdi, qword [rsp + 0x1878]
mov r12, qword [rsp + 0x1880]
mov rcx, qword [rsp + 0x1830]
xor rcx, rsp
call fcn.1800989b0
add rsp, 0x1840
pop r15
pop r14
pop rsi
pop rbp
pop rbx
ret
mov rcx, rsi
call sym.glib_2.0.dll_g_strdup
mov rbx, rax
test r15, r15
je 0x180079a16
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
test r14, r14
je 0x180079a24
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rax, rbx
jmp 0x1800799ce
mov edx, 8
mov rcx, rsi
call sym.glib_2.0.dll_g_file_test
test eax, eax
je 0x180079a80
mov edx, 4
mov rcx, rsi
call sym.glib_2.0.dll_g_file_test
test eax, eax
jne 0x180079a80
mov rcx, rsi
call sym.glib_2.0.dll_g_strdup
jmp 0x1800799de
lea rax, str.program___NULL
mov edx, 8
lea r9, str.inner_find_program_in_path
mov qword [rsp + 0x20], rax
lea r8, str._s:_assertion__s_failed
lea rcx, [0x18009cbc8]
call sym.glib_2.0.dll_g_log
xor eax, eax
jmp 0x1800799de