Function at 0x18002a160
Capabilities:
Reference absolute stream path on windows

Disassembly:
push rsi
sub rsp, 0x30
mov rsi, rcx
test rcx, rcx
je 0x18002a417
mov edx, 0x5c
mov qword [rsp + 0x50], rdi
call qword [sym.imp.VCRUNTIME140.dll_strrchr]
mov edx, 0x2f
mov rcx, rsi
mov rdi, rax
call qword [sym.imp.VCRUNTIME140.dll_strrchr]
test rdi, rdi
je 0x18002a1a2
test rax, rax
je 0x18002a1a5
cmp rax, rdi
jbe 0x18002a1a5
mov rdi, rax
mov qword [rsp + 0x48], rbx
test rdi, rdi
jne 0x18002a2b1
movzx eax, byte [rsi]
lea rdx, [0x18009d910]
test byte [rdx + rax*2], 2
je 0x18002a259
cmp byte [rsi + 1], 0x3a
jne 0x18002a259
mov byte [rsp + 0x40], al
mov rbx, 0xffffffffffffffff
lea rax, [rsp + 0x40]
mov word [rsp + 0x41], 0x2e3a
mov byte [rsp + 0x43], dil
nop dword [rax]
inc rbx
cmp byte [rax + rbx], 0
jne 0x18002a1f0
add rbx, 1
je 0x18002a234
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rdi, rax
test rax, rax
jne 0x18002a236
lea r9, str.d:_buildob_bora_15653658cayman_glibglib_srcglibgmem.c:105
mov qword [rsp + 0x20], rbx
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 0x18002a232
xor edi, edi
mov r8, rbx
lea rdx, [rsp + 0x40]
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
mov rbx, qword [rsp + 0x48]
mov rax, rdi
mov rdi, qword [rsp + 0x50]
add rsp, 0x30
pop rsi
ret
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rcx, rax
test rax, rax
jne 0x18002a294
lea r9, str.d:_buildob_bora_15653658cayman_glibglib_srcglibgmem.c:105
mov qword [rsp + 0x20], 2
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 0x18002a292
movzx eax, word [0x1800ef114]
mov rbx, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
mov word [rcx], ax
mov rax, rcx
add rsp, 0x30
pop rsi
ret
cmp rdi, rsi
jbe 0x18002a2c9
movzx eax, byte [rdi]
cmp al, 0x5c
je 0x18002a2c1
cmp al, 0x2f
jne 0x18002a2c9
dec rdi
cmp rdi, rsi
ja 0x18002a2b6
lea rcx, [rsi + 1]
cmp rdi, rcx
jne 0x18002a2ef
movzx eax, byte [rsi]
lea rdx, [0x18009d910]
test byte [rdx + rax*2], 2
je 0x18002a2ef
cmp byte [rcx], 0x3a
jne 0x18002a2ef
inc rdi
jmp 0x18002a3dc
movzx eax, byte [rsi]
cmp al, 0x5c
je 0x18002a2fe
cmp al, 0x2f
jne 0x18002a3dc
movzx eax, byte [rcx]
cmp al, 0x5c
je 0x18002a30d
cmp al, 0x2f
jne 0x18002a3dc
movzx ecx, byte [rsi + 2]
lea rax, [rsi + 2]
test cl, cl
je 0x18002a3dc
cmp cl, 0x5c
je 0x18002a3dc
cmp cl, 0x2f
je 0x18002a3dc
cmp rdi, rax
jb 0x18002a3dc
cmp cl, 0x5c
je 0x18002a34d
cmp cl, 0x2f
je 0x18002a34d
movzx ecx, byte [rax + 1]
inc rax
test cl, cl
jne 0x18002a338
lea rdx, [rdi + 1]
cmp rax, rdx
jne 0x18002a3a5
mov rbx, 0xffffffffffffffff
nop dword [rax]
inc rbx
cmp byte [rsi + rbx], 0
jne 0x18002a360
inc ebx
mov edx, 1
lea rcx, [rbx + 1]
call sym.glib_2.0.dll_g_malloc_n
mov rdx, rax
sub rdx, rsi
nop
movzx ecx, byte [rsi]
mov byte [rdx + rsi], cl
lea rsi, [rsi + 1]
test cl, cl
jne 0x18002a380
mov rdi, qword [rsp + 0x50]
mov word [rbx + rax - 1], 0x5c
mov rbx, qword [rsp + 0x48]
add rsp, 0x30
pop rsi
ret
movzx ecx, byte [rax]
cmp cl, 0x5c
je 0x18002a3b2
cmp cl, 0x2f
jne 0x18002a3dc
movzx ecx, byte [rax + 1]
inc rax
test cl, cl
je 0x18002a3d5
nop dword [rax]
cmp cl, 0x5c
je 0x18002a3d5
cmp cl, 0x2f
je 0x18002a3d5
movzx ecx, byte [rax + 1]
inc rax
test cl, cl
jne 0x18002a3c0
cmp rax, rdx
cmove rdi, rdx
sub rdi, rsi
mov edx, 1
lea rcx, [rdi + 2]
call sym.glib_2.0.dll_g_malloc_n
lea r8, [rdi + 1]
mov rdx, rsi
mov rcx, rax
mov rbx, rax
call sub.VCRUNTIME140.dll_memmove
mov byte [rdi + rbx + 1], 0
mov rax, rbx
mov rbx, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
add rsp, 0x30
pop rsi
ret
lea rax, str.file_name___NULL
mov edx, 8
lea r9, [0x1800ef118]
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
add rsp, 0x30
pop rsi
ret