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

Disassembly:
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x48
mov rdi, rdx
mov qword [rsp + 0x38], 7
mov r15, r8
mov r14, rcx
xor r8d, r8d
mov edx, r8d
mov qword [rsp + 0xa0], r8
mov qword [rdi], r8
lea rbp, [rdi + 0x20]
mov qword [rdi + 8], rbp
lea rax, [r15 + 0x10]
mov qword [r15], r8
lea r12d, [r8 + 7]
mov qword [r15 + 8], rax
mov ebx, r8d
movzx eax, byte [rcx]
mov esi, r8d
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0x90], rbp
test al, al
je 0x180097034
lea r8d, [rbx + 1]
nop dword [rax]
mov rcx, r14
mov r10, rsi
inc r14
mov r11, rsi
cmp al, 0x25
jne 0x180097028
imul rbp, qword [rdi], 0x58
mov r13, 0xffffffffffffffff
add rbp, qword [rdi + 8]
xor edi, edi
mov qword [rbp], rcx
mov dword [rbp + 0x10], edi
mov qword [rbp + 0x18], rdi
mov qword [rbp + 0x20], rdi
mov qword [rbp + 0x28], r13
mov qword [rbp + 0x30], rdi
mov qword [rbp + 0x38], rdi
mov qword [rbp + 0x40], r13
mov qword [rbp + 0x50], r13
movzx r9d, byte [r14]
lea eax, [r9 - 0x30]
cmp al, 9
ja 0x180096796
mov rdx, r14
movzx eax, r9b
nop
movzx ecx, al
cmp al, 0x39
jg 0x180096725
movzx eax, byte [rdx + 1]
inc rdx
movzx ecx, al
cmp al, 0x30
jge 0x180096710
cmp cl, 0x24
jne 0x180096791
mov r8, rdi
movabs rdi, 0x1999999999999999
cmp r9b, 0x39
jg 0x180096773
cmp r8, rdi
ja 0x18009674b
lea rdx, [r8 + r8*4]
add rdx, rdx
jmp 0x18009674e
mov rdx, r13
movsx eax, r9b
mov r8, r13
movzx r9d, byte [r14 + 1]
sub eax, 0x30
movsxd rcx, eax
add rcx, rdx
cmp rcx, rdx
cmovae r8, rcx
inc r14
cmp r9b, 0x30
jge 0x180096737
lea rax, [r8 - 1]
mov edi, 0
cmp rax, 0xfffffffffffffffd
ja case.0x180096d72.38
lea r13, [r8 - 1]
inc r14
lea r8d, [rdi + 1]
mov rdx, qword [rsp + 0x30]
movzx eax, byte [r14]
cmp al, 0x27
jne 0x1800967a7
or dword [rbp + 0x10], 1
inc r14
jmp 0x180096796
cmp al, 0x2d
jne 0x1800967b4
or dword [rbp + 0x10], 2
inc r14
jmp 0x180096796
cmp al, 0x2b
jne 0x1800967c1
or dword [rbp + 0x10], 4
inc r14
jmp 0x180096796
cmp al, 0x20
jne 0x1800967ce
or dword [rbp + 0x10], 8
inc r14
jmp 0x180096796
cmp al, 0x23
jne 0x1800967db
or dword [rbp + 0x10], 0x10
inc r14
jmp 0x180096796
cmp al, 0x30
jne 0x1800967e8
or dword [rbp + 0x10], 0x20
inc r14
jmp 0x180096796
cmp al, 0x2a
jne 0x1800969e7
mov qword [rbp + 0x18], r14
inc r14
cmp rdx, 1
mov qword [rbp + 0x20], r14
cmovb rdx, r8
movzx r9d, byte [r14]
mov qword [rsp + 0x30], rdx
lea eax, [r9 - 0x30]
cmp al, 9
ja 0x1800968a9
mov rcx, r14
movzx eax, r9b
nop
movzx edx, al
cmp al, 0x39
jg 0x180096835
movzx eax, byte [rcx + 1]
inc rcx
movzx edx, al
cmp al, 0x30
jge 0x180096820
cmp dl, 0x24
jne 0x1800968a9
mov r8, rdi
movabs rdi, 0x1999999999999999
cmp r9b, 0x39
jg 0x18009688b
cmp r8, rdi
ja 0x18009685b
lea rdx, [r8 + r8*4]
add rdx, rdx
jmp 0x180096862
mov rdx, 0xffffffffffffffff
movsx eax, r9b
mov r8, 0xffffffffffffffff
movzx r9d, byte [r14 + 1]
sub eax, 0x30
movsxd rcx, eax
add rcx, rdx
cmp rcx, rdx
cmovae r8, rcx
inc r14
cmp r9b, 0x30
jge 0x180096847
lea rax, [r8 - 1]
mov edi, 0
cmp rax, 0xfffffffffffffffd
ja case.0x180096d72.38
lea rax, [r8 - 1]
inc r14
mov qword [rbp + 0x28], rax
mov rbx, qword [rbp + 0x28]
cmp rbx, 0xffffffffffffffff
jne 0x1800968cf
mov qword [rbp + 0x28], rsi
mov rbx, r10
inc rsi
mov qword [rsp + 0xa0], rsi
cmp r11, 0xffffffffffffffff
je case.0x180096d72.38
cmp rbx, r12
jb 0x180096996
movabs rax, 0x7fffffffffffffff
cmp r12, rax
ja 0x1800968ec
add r12, r12
jmp 0x1800968f3
mov r12, 0xffffffffffffffff
cmp r12, rbx
ja 0x18009690a
lea rax, [rbx + 1]
mov r12, 0xffffffffffffffff
cmp rax, rbx
cmovae r12, rax
movabs rax, 0xfffffffffffffff
cmp r12, rax
ja 0x180097082
mov rcx, qword [r15 + 8]
lea rax, [r15 + 0x10]
mov rdi, r12
shl rdi, 4
cmp rcx, rax
je 0x180096944
mov rdx, rdi
call sym.glib_2.0.dll_g_realloc
mov rsi, rax
xor edi, edi
lea rax, [r15 + 0x10]
jmp 0x180096969
test rdi, rdi
je 0x180096966
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rsi, rax
test rax, rax
je 0x18009705b
lea rax, [r15 + 0x10]
xor edi, edi
jmp 0x180096969
mov rsi, rdi
test rsi, rsi
je 0x180097082
mov rdx, qword [r15 + 8]
cmp rdx, rax
jne 0x18009698a
mov r8, qword [r15]
mov rcx, rsi
shl r8, 4
call sub.VCRUNTIME140.dll_memcpy
mov qword [r15 + 8], rsi
mov rsi, qword [rsp + 0xa0]
cmp qword [r15], rbx
ja 0x1800969b5
nop dword [rax + rax]
mov rcx, qword [r15]
mov rax, qword [r15 + 8]
add rcx, rcx
mov dword [rax + rcx*8], edi
inc qword [r15]
cmp qword [r15], rbx
jbe 0x1800969a0
mov rax, qword [r15 + 8]
add rbx, rbx
mov ecx, dword [rax + rbx*8]
test ecx, ecx
jne 0x1800969d4
mov dword [rax + rbx*8], 5
mov rbx, qword [rsp + 0xa8]
jmp 0x180096a27
cmp ecx, 5
jne case.0x180096d72.38
mov rbx, qword [rsp + 0xa8]
jmp 0x180096a27
sub al, 0x30
cmp al, 9
ja 0x180096a27
mov qword [rbp + 0x18], r14
movzx eax, byte [r14]
cmp al, 0x30
jl 0x180096a10
nop dword [rax]
cmp al, 0x39
jg 0x180096a10
movzx eax, byte [r14 + 1]
inc r14
cmp al, 0x30
jge 0x180096a00
mov rax, r14
mov qword [rbp + 0x20], r14
sub rax, qword [rbp + 0x18]
cmp rdx, rax
cmovb rdx, rax
mov qword [rsp + 0x30], rdx
cmp byte [r14], 0x2e
mov r10, rsi
mov r11, rsi
jne 0x180096cab
movzx ecx, byte [r14 + 1]
inc r14
lea rax, [r14 - 1]
mov qword [rbp + 0x30], rax
cmp cl, 0x2a
jne 0x180096c79
inc r14
mov eax, 2
cmp rbx, 2
mov qword [rbp + 0x38], r14
cmovb rbx, rax
movzx r9d, byte [r14]
mov qword [rsp + 0xa8], rbx
lea eax, [r9 - 0x30]
cmp al, 9
ja 0x180096b15
mov rcx, r14
movzx eax, r9b
movzx edx, al
cmp al, 0x39
jg 0x180096a98
movzx eax, byte [rcx + 1]
inc rcx
movzx edx, al
cmp al, 0x30
jge 0x180096a83
cmp dl, 0x24
jne 0x180096b15
mov r8, rdi
movabs rsi, 0x1999999999999999
nop word [rax + rax]
cmp r9b, 0x39
jg 0x180096af4
cmp r8, rsi
ja 0x180096ac4
lea rdx, [r8 + r8*4]
add rdx, rdx
jmp 0x180096acb
mov rdx, 0xffffffffffffffff
movsx eax, r9b
mov r8, 0xffffffffffffffff
movzx r9d, byte [r14 + 1]
sub eax, 0x30
movsxd rcx, eax
add rcx, rdx
cmp rcx, rdx
cmovae r8, rcx
inc r14
cmp r9b, 0x30
jge 0x180096ab0
mov rsi, qword [rsp + 0xa0]
lea rax, [r8 - 1]
cmp rax, 0xfffffffffffffffd
ja case.0x180096d72.38
lea rax, [r8 - 1]
inc r14
mov qword [rbp + 0x40], rax
mov rbx, qword [rbp + 0x40]
cmp rbx, 0xffffffffffffffff
jne 0x180096b3b
mov qword [rbp + 0x40], rsi
mov rbx, r10
inc rsi
mov qword [rsp + 0xa0], rsi
cmp r11, 0xffffffffffffffff
je case.0x180096d72.38
cmp rbx, r12
jb 0x180096bdb
movabs rax, 0x7fffffffffffffff
cmp r12, rax
ja 0x180096b58
add r12, r12
jmp 0x180096b5f
mov r12, 0xffffffffffffffff
cmp r12, rbx
ja 0x180096b76
lea rax, [rbx + 1]
mov r12, 0xffffffffffffffff
cmp rax, rbx
cmovae r12, rax
movabs rax, 0xfffffffffffffff
cmp r12, rax
ja 0x180097082
mov rax, qword [r15 + 8]
lea rdx, [r15 + 0x10]
mov rcx, r12
shl rcx, 4
cmp rax, rdx
je 0x180096baa
mov rdx, rcx
mov rcx, rax
call sym.glib_2.0.dll_g_realloc
jmp 0x180096baf
call sym.glib_2.0.dll_g_malloc
mov rdi, rax
test rax, rax
je 0x180097082
mov rdx, qword [r15 + 8]
lea rax, [r15 + 0x10]
cmp rdx, rax
jne 0x180096bd7
mov r8, qword [r15]
mov rcx, rdi
shl r8, 4
call sub.VCRUNTIME140.dll_memcpy
mov qword [r15 + 8], rdi
cmp qword [r15], rbx
ja 0x180096c06
xor r8d, r8d
nop dword [rax]
nop word [rax + rax]
mov rcx, qword [r15]
mov rax, qword [r15 + 8]
add rcx, rcx
mov dword [rax + rcx*8], r8d
inc qword [r15]
cmp qword [r15], rbx
jbe 0x180096bf0
mov rax, qword [r15 + 8]
shl rbx, 4
mov ecx, dword [rbx + rax]
test ecx, ecx
jne 0x180096c21
mov dword [rbx + rax], 5
jmp 0x180096cab
cmp ecx, 5
je 0x180096cab
mov rcx, qword [r15 + 8]
lea rax, [r15 + 0x10]
cmp rcx, rax
je 0x180096c42
test rcx, rcx
je 0x180096c42
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, qword [rsp + 0x98]
mov rcx, qword [rcx + 8]
cmp rcx, qword [rsp + 0x90]
je 0x180096c63
test rcx, rcx
je 0x180096c63
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov dword [rax], 0x16
mov eax, 0xffffffff
jmp 0x18009704a
movzx eax, byte [r14]
cmp al, 0x30
jl 0x180096c91
cmp al, 0x39
jg 0x180096c91
movzx eax, byte [r14 + 1]
inc r14
cmp al, 0x30
jge 0x180096c81
mov rax, r14
mov qword [rbp + 0x38], r14
sub rax, qword [rbp + 0x30]
cmp rbx, rax
cmovb rbx, rax
mov qword [rsp + 0xa8], rbx
xor r10d, r10d
mov r8, rsi
mov eax, r10d
mov r9, rsi
mov r10d, 3
nop dword [rax]
movzx ebx, byte [r14]
cmp bl, 0x68
jne 0x180096cdb
mov ecx, eax
and ecx, 1
bts eax, ecx
mov ecx, 1
add r14, rcx
jmp 0x180096cc0
cmp bl, 0x4c
jne 0x180096ced
or eax, 4
mov ecx, 1
add r14, rcx
jmp 0x180096cc0
cmp bl, 0x6c
jne 0x180096cff
add eax, 8
mov ecx, 1
add r14, rcx
jmp 0x180096cc0
cmp bl, 0x6a
je 0x180096d2f
lea ecx, [rbx - 0x5a]
test cl, 0xdf
je 0x180096d2f
cmp bl, 0x74
je 0x180096d2f
cmp bl, 0x49
jne 0x180096d3c
cmp byte [r14 + 1], 0x36
jne 0x180096d3c
cmp byte [r14 + 2], 0x34
jne 0x180096d3c
add eax, 0x10
mov rcx, r10
add r14, rcx
jmp 0x180096cc0
add eax, 0x10
mov ecx, 1
add r14, rcx
jmp 0x180096cc0
movsx ecx, bl
inc r14
add ecx, 0xffffffdb
mov r10d, 0
cmp ecx, 0x53
ja case.0x180096d72.38
lea r11, [0x180000000]
movsxd rcx, ecx
movzx ecx, byte [r11 + rcx + 0x97100]
mov edx, dword [r11 + rcx*4 + 0x970d4]
add rdx, r11
jmp rdx
cmp eax, 0x10
jge 0x180096dae
test al, 4
jne 0x180096dae
cmp eax, 8
jl 0x180096d8c
mov edi, 7
jmp 0x180096e75
test al, 2
je 0x180096d9a
mov edi, 1
jmp 0x180096e75
test al, 1
mov edi, 5
mov eax, 3
cmovne edi, eax
jmp 0x180096e75
mov edi, 9
jmp 0x180096e75
cmp eax, 0x10
jge 0x180096df0
test al, 4
jne 0x180096df0
cmp eax, 8
jl 0x180096dd0
mov edi, 8
jmp 0x180096e75
test al, 2
je 0x180096dde
mov edi, 2
jmp 0x180096e75
not al
movzx edi, al
and edi, 1
or edi, 2
add edi, edi
jmp 0x180096e75
mov edi, 0xa
jmp 0x180096e75
cmp eax, 0x10
jge 0x180096e07
test al, 4
jne 0x180096e07
mov edi, 0xb
jmp 0x180096e75
mov edi, recv
jmp 0x180096e75
cmp eax, 8
mov edi, r10d
setge dil
add edi, 0xd
jmp 0x180096e75
mov edi, recv
mov bl, 0x63
jmp 0x180096e75
cmp eax, 8
mov edi, r10d
setge dil
add edi, 0xf
jmp 0x180096e75
mov edi, reloc.WS2_32.dll_recv
mov bl, 0x73
jmp 0x180096e75
mov edi, send
jmp 0x180096e75
cmp eax, 0x10
jge 0x180096e70
test al, 4
jne 0x180096e70
cmp eax, 8
jl 0x180096e5a
mov edi, 0x15
jmp 0x180096e75
test al, 2
je 0x180096e65
mov edi, send
jmp 0x180096e75
and al, 1
neg al
sbb edi, edi
add edi, 0x14
jmp 0x180096e75
mov edi, 0x16
mov qword [rbp + 0x50], r13
cmp r13, 0xffffffffffffffff
jne 0x180096e9b
mov qword [rbp + 0x50], rsi
mov r13, r8
inc rsi
mov qword [rsp + 0xa0], rsi
cmp r9, 0xffffffffffffffff
je case.0x180096d72.38
cmp r13, r12
jb 0x180096f46
movabs rax, 0x7fffffffffffffff
cmp r12, rax
ja 0x180096eb8
add r12, r12
jmp 0x180096ebf
mov r12, 0xffffffffffffffff
cmp r12, r13
ja 0x180096ed6
lea rax, [r13 + 1]
mov r12, 0xffffffffffffffff
cmp rax, r13
cmovae r12, rax
movabs rax, 0xfffffffffffffff
cmp r12, rax
ja 0x180097082
mov rax, qword [r15 + 8]
lea rdx, [r15 + 0x10]
mov rcx, r12
shl rcx, 4
cmp rax, rdx
je 0x180096f0a
mov rdx, rcx
mov rcx, rax
call sym.glib_2.0.dll_g_realloc
jmp 0x180096f0f
call sym.glib_2.0.dll_g_malloc
mov rsi, rax
test rax, rax
je 0x180097082
mov rdx, qword [r15 + 8]
lea rax, [r15 + 0x10]
cmp rdx, rax
jne 0x180096f37
mov r8, qword [r15]
mov rcx, rsi
shl r8, 4
call sub.VCRUNTIME140.dll_memcpy
mov qword [r15 + 8], rsi
xor r10d, r10d
mov rsi, qword [rsp + 0xa0]
cmp qword [r15], r13
ja 0x180096f66
nop dword [rax + rax]
mov rcx, qword [r15]
mov rax, qword [r15 + 8]
add rcx, rcx
mov dword [rax + rcx*8], r10d
inc qword [r15]
cmp qword [r15], r13
jbe 0x180096f50
mov rax, qword [r15 + 8]
add r13, r13
mov ecx, dword [rax + r13*8]
test ecx, ecx
jne 0x180096f7b
mov dword [rax + r13*8], edi
jmp case.0x180096d72.37
cmp ecx, edi
jne case.0x180096d72.38
mov rdi, qword [rsp + 0x98]
mov r8, qword [rsp + 0x38]
mov byte [rbp + 0x48], bl
mov qword [rbp + 8], r14
inc qword [rdi]
cmp qword [rdi], r8
jb 0x180097015
movabs rax, 0x7fffffffffffffff
cmp r8, rax
ja 0x180097082
add r8, r8
movabs rax, 0x2e8ba2e8ba2e8ba
mov qword [rsp + 0x38], r8
cmp r8, rax
ja 0x180097082
mov rcx, qword [rdi + 8]
lea rbp, [rdi + 0x20]
imul rax, r8, 0x58
cmp rcx, rbp
je 0x180096fe8
mov rdx, rax
call sym.glib_2.0.dll_g_realloc
jmp 0x180096ff0
mov rcx, rax
call sym.glib_2.0.dll_g_malloc
mov rbx, rax
test rax, rax
je 0x18009708a
mov rdx, qword [rdi + 8]
cmp rdx, rbp
jne 0x180097011
imul r8, qword [rdi], 0x58
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov qword [rdi + 8], rbx
mov rdx, qword [rsp + 0x30]
mov r8d, 1
mov rbx, qword [rsp + 0xa8]
movzx eax, byte [r14]
test al, al
jne 0x1800966b0
imul rcx, qword [rdi], 0x58
mov rax, qword [rdi + 8]
mov qword [rcx + rax], r14
xor eax, eax
mov qword [rdi + 0x10], rdx
mov qword [rdi + 0x18], rbx
add rsp, 0x48
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
lea r9, str.d:_buildob_bora_15653658cayman_glibglib_srcglibgmem.c:105
mov qword [rsp + 0x20], rdi
lea r8, str._s:_failed_to_allocate__I64u_bytes
mov edx, 4
lea rcx, [0x18009cbc8]
call sym.glib_2.0.dll_g_log
nop
jmp 0x180097080
mov rbp, qword [rsp + 0x90]
mov rcx, qword [r15 + 8]
lea rax, [r15 + 0x10]
cmp rcx, rax
je 0x1800970a2
test rcx, rcx
je 0x1800970a2
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, qword [rsp + 0x98]
mov rcx, qword [rcx + 8]
cmp rcx, rbp
je 0x1800970be
test rcx, rcx
je 0x1800970be
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov dword [rax], recv
mov eax, 0xffffffff
jmp 0x18009704a