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

Disassembly:
mov qword [rsp + 0x20], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
xor r14d, r14d
lea eax, [r8 - 2]
cmp eax, 1
mov r13d, 0
lea eax, [r8 - 1]
mov r15, rdx
setbe r14b
mov rdi, rcx
test eax, 0xfffffffd
mov dword [rsp + 0x80], r14d
mov rsi, rcx
sete r13b
xor ebp, ebp
mov dword [rsp + 0x78], r13d
lea r13, [0x180000000]
nop dword [rax]
test r15, r15
js 0x180078932
lea rax, [rdi + r15]
cmp rsi, rax
jae 0x1800789de
movzx ebx, byte [rsi]
test bl, bl
je 0x1800789de
mov rcx, rsi
call sym.glib_2.0.dll_g_utf8_get_char
lea ecx, [rax - 0xac00]
cmp ecx, 0x2ba3
ja 0x18007897c
lea ecx, [rax - 0xac00]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x1c
xor edx, edx
cmp ecx, eax
setne dl
add rdx, 2
jmp 0x1800789c7
mov edx, r14d
mov ecx, eax
call fcn.1800783a0
mov rdx, rax
test rax, rax
je 0x1800789c2
movzx eax, byte [rax]
xor edi, edi
test al, al
je 0x1800789b8
nop word [rax + rax]
movzx ecx, al
inc edi
movsx rax, byte [rcx + r13 + 0xbe4f0]
add rdx, rax
movzx eax, byte [rdx]
test al, al
jne 0x1800789a0
movsxd rdx, edi
mov rdi, qword [rsp + 0x70]
jmp 0x1800789c7
mov edx, 1
movzx eax, bl
movsx rax, byte [rax + r13 + 0xbe4f0]
add rsi, rax
add rbp, rdx
jmp 0x180078920
inc rbp
movabs rax, 0x3fffffffffffffff
cmp rbp, rax
jbe 0x180078a22
mov qword [rsp + 0x28], 4
lea r9, str.d:_buildob_bora_15653658cayman_glibglib_srcglibgmem.c:333
lea r8, str._s:_overflow_allocating__I64u_I64u_bytes
mov qword [rsp + 0x20], rbp
mov edx, 4
lea rcx, [0x18009cbc8]
call sym.glib_2.0.dll_g_log
nop dword [rax]
jmp 0x180078a20
lea rbp, [rbp*4]
test rbp, rbp
je 0x180078a64
mov rcx, rbp
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r14, rax
test rax, rax
jne 0x180078a67
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 0x180078a62
xor r14d, r14d
xor r12d, r12d
mov rbp, rdi
xor ebx, ebx
nop
test r15, r15
js 0x180078a82
lea rax, [rdi + r15]
cmp rbp, rax
jae 0x180078c45
cmp byte [rbp], 0
je 0x180078c45
mov rcx, rbp
call sym.glib_2.0.dll_g_utf8_get_char
mov esi, eax
mov r13, rbx
lea ecx, [rax - 0xac00]
cmp ecx, 0x2ba3
ja 0x180078b36
add esi, 0xffff5400
lea rcx, [r14 + rbx*4]
mov eax, 0x92492493
mov edi, esi
imul esi
add edx, esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x1c
sub edi, eax
test rcx, rcx
je 0x180078b10
mov eax, 0x6f74ae27
imul esi
sar edx, 8
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + 0x1100]
mov dword [rcx], eax
imul eax, edx, 0x24c
sub esi, eax
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, 0x1161
add eax, edx
mov dword [rcx + 4], eax
test edi, edi
je 0x180078b2c
test rcx, rcx
je 0x180078b22
lea eax, [rdi + 0x11a7]
mov dword [rcx + 8], eax
mov eax, 3
add rbx, rax
jmp 0x180078b84
mov eax, 2
add rbx, rax
jmp 0x180078b84
mov edx, dword [rsp + 0x80]
mov ecx, esi
call fcn.1800783a0
mov rdi, rax
test rax, rax
je 0x180078b7d
cmp byte [rax], 0
je 0x180078b84
lea rsi, [0x180000000]
mov rcx, rdi
call sym.glib_2.0.dll_g_utf8_get_char
mov dword [r14 + rbx*4], eax
inc rbx
movzx eax, byte [rdi]
movsx rax, byte [rax + rsi + 0xbe4f0]
add rdi, rax
cmp byte [rdi], 0
jne 0x180078b58
jmp 0x180078b8b
mov dword [r14 + rbx*4], esi
inc rbx
lea rsi, [0x180000000]
test rbx, rbx
je 0x180078c24
mov ecx, dword [r14 + r13*4]
cmp ecx, 0x2faff
ja 0x180078bce
mov eax, ecx
mov edx, ecx
shr rax, 8
mov edi, 0x1100
movzx ecx, word [rsi + rax*2 + 0xe30c0]
cmp cx, di
jl 0x180078bc1
movsx eax, cx
sub eax, edi
jmp 0x180078c0e
movsx rcx, cx
shl rcx, 8
movzx eax, dl
jmp 0x180078c03
lea eax, [rcx - 0xe0000]
cmp eax, 0x2ffff
ja 0x180078c12
shr rax, 8
mov edi, 0x1100
movzx edx, word [rsi + rax*2 + 0xe2ac0]
cmp dx, di
jl 0x180078bf8
movsx eax, dx
sub eax, edi
jmp 0x180078c0e
movsx rax, dx
shl rax, 8
movzx ecx, cl
add rcx, rax
movzx eax, byte [rcx + rsi + 0xe36c0]
test eax, eax
jne 0x180078c24
mov rdx, rbx
lea rcx, [r14 + r12*4]
sub rdx, r12
call sym.glib_2.0.dll_g_unicode_canonical_ordering
mov r12, r13
movzx eax, byte [rbp]
lea r13, [0x180000000]
mov rdi, qword [rsp + 0x70]
movsx rax, byte [rax + r13 + 0xbe4f0]
add rbp, rax
jmp 0x180078a70
test rbx, rbx
je 0x180078c59
mov rdx, rbx
lea rcx, [r14 + r12*4]
sub rdx, r12
call sym.glib_2.0.dll_g_unicode_canonical_ordering
xor r12d, r12d
mov dword [r14 + rbx*4], r12d
cmp dword [rsp + 0x78], r12d
je 0x180078e26
test rbx, rbx
je 0x180078e26
mov edx, r12d
mov r15d, r12d
mov ebp, r12d
mov r8d, 0x1100
mov esi, dword [r14 + rbp*4]
cmp esi, 0x2faff
ja 0x180078cc8
mov eax, esi
mov edi, esi
shr rax, 8
movzx ecx, word [r13 + rax*2 + 0xe30c0]
cmp cx, r8w
jl 0x180078cae
movsx edi, cx
sub edi, r8d
jmp 0x180078d0d
movsx rcx, cx
movzx eax, dil
shl rcx, 8
add rcx, rax
movzx edi, byte [rcx + r13 + 0xe36c0]
jmp 0x180078d0d
lea eax, [rsi - 0xe0000]
cmp eax, 0x2ffff
ja 0x180078d0a
shr rax, 8
movzx eax, word [r13 + rax*2 + 0xe2ac0]
cmp ax, r8w
jl 0x180078cf0
movsx edi, ax
sub edi, r8d
jmp 0x180078d0d
movsx rax, ax
shl rax, 8
movzx ecx, sil
add rcx, rax
movzx edi, byte [rcx + r13 + 0xe36c0]
jmp 0x180078d0d
mov edi, r12d
test rbp, rbp
je 0x180078e06
test edx, edx
je 0x180078d22
cmp edx, edi
jge 0x180078e06
mov ecx, dword [r14 + r15*4]
lea rax, [r14 + r15*4]
mov r8, rax
mov edx, esi
call fcn.1800786b0
test eax, eax
je 0x180078e06
lea rax, [rbp + 1]
cmp rax, rbx
jae 0x180078d55
lea rsi, [r14 + rax*4]
mov rcx, rbx
lea rdi, [rsi - 4]
sub rcx, rax
rep movsd dword [rdi], dword [rsi]
dec rbx
dec rbp
cmp rbp, r15
jne 0x180078d68
mov edx, r12d
jmp 0x180078e14
mov edx, dword [r14 + rbp*4 - 4]
cmp edx, 0x2faff
ja 0x180078db4
mov eax, edx
mov r8d, 0x1100
shr rax, 8
movzx ecx, word [r13 + rax*2 + 0xe30c0]
cmp cx, r8w
jl 0x180078d9b
movsx edx, cx
sub edx, r8d
jmp 0x180078e1a
movsx rcx, cx
movzx eax, dl
shl rcx, 8
add rcx, rax
movzx edx, byte [rcx + r13 + 0xe36c0]
jmp 0x180078e1a
cmp edx, 0xe0000
jb 0x180078d60
cmp edx, 0x10ffff
ja 0x180078d60
lea eax, [rdx - 0xe0000]
mov r8d, 0x1100
mov ecx, eax
shr rcx, 8
movzx eax, word [r13 + rcx*2 + 0xe2ac0]
cmp ax, r8w
jl 0x180078ded
movsx edx, ax
sub edx, r8d
jmp 0x180078e1a
movzx ecx, dl
movsx rax, ax
shl rax, 8
add rcx, rax
movzx edx, byte [rcx + r13 + 0xe36c0]
jmp 0x180078e1a
test edi, edi
mov rcx, rbp
mov edx, edi
cmovne rcx, r15
mov r15, rcx
mov r8d, 0x1100
inc rbp
cmp rbp, rbx
jb 0x180078c83
mov dword [r14 + rbx*4], r12d
mov rax, r14
mov rbx, qword [rsp + 0x88]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret