Function at 0x5872e0
Capabilities:
Reference http user-agent string

Disassembly:
lea r12, [rsp - 0x60]
cmp r12, qword [r14 + 0x10]
jbe 0x58782e
push rbp
mov rbp, rsp
sub rsp, 0xd8
mov qword [rsp + 0xf0], rbx
mov r8, qword [rdx + 0x10]
mov r9, qword [rdx + 0x18]
mov r10, qword [rdx + 8]
cmp rax, 2
jg 0x587500
nop dword [rax + rax]
cmp rax, 1
je 0x587410
cmp rax, 2
jne 0x587718
mov qword [rsp + 0xd0], r8
xor eax, eax
nop
call sym.runtime.slicebytetostring
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x48], rbx
call sym.crypto_x509.isIA5String
test rax, rax
jne 0x5873f6
mov rdx, qword [rsp + 0xd0]
mov rcx, qword [rdx + 0x10]
mov rbx, qword [rdx + 8]
inc rbx
mov rax, qword [rdx]
cmp rcx, rbx
jae 0x5873b2
mov edi, 1
lea rsi, [0x0067b380]
call sym.runtime.growslice
mov rdx, qword [rsp + 0xd0]
mov qword [rdx + 0x10], rcx
cmp dword [0x0098c4d0], 0
je 0x5873af
nop
call sym.runtime.gcWriteBarrier2
mov qword [r11], rax
mov rcx, qword [rdx]
mov qword [r11 + 8], rcx
mov qword [rdx], rax
mov qword [rdx + 8], rbx
lea rcx, [rbx - 1]
shl rcx, 4
mov rdx, qword [rsp + 0x48]
mov qword [rax + rcx + 8], rdx
cmp dword [0x0098c4d0], 0
jne 0x5873d8
mov rdx, qword [rsp + 0x70]
jmp 0x5873ed
call sym.runtime.gcWriteBarrier2
mov rdx, qword [rsp + 0x70]
mov qword [r11], rdx
mov rsi, qword [rax + rcx]
mov qword [r11 + 8], rsi
mov qword [rax + rcx], rdx
jmp 0x587718
lea rax, [0x006dc793]
mov ebx, 0x1e
call sym.errors.New
add rsp, 0xd8
pop rbp
ret
mov qword [rsp + 0xc8], r10
xor eax, eax
call sym.runtime.slicebytetostring
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x58], rbx
call sym.crypto_x509.isIA5String
test rax, rax
jne 0x5874e5
mov rdx, qword [rsp + 0xc8]
mov rcx, qword [rdx + 0x10]
mov rbx, qword [rdx + 8]
inc rbx
mov rax, qword [rdx]
cmp rcx, rbx
jae 0x587492
mov edi, 1
lea rsi, [0x0067b380]
call sym.runtime.growslice
mov rdx, qword [rsp + 0xc8]
mov qword [rdx + 0x10], rcx
cmp dword [0x0098c4d0], 0
je 0x58748f
nop dword [rax + rax]
call sym.runtime.gcWriteBarrier2
mov qword [r11], rax
mov rcx, qword [rdx]
mov qword [r11 + 8], rcx
mov qword [rdx], rax
mov qword [rdx + 8], rbx
lea rcx, [rbx - 1]
shl rcx, 4
mov rdx, qword [rsp + 0x58]
mov qword [rax + rcx + 8], rdx
cmp dword [0x0098c4d0], 0
jne 0x5874c0
mov rdx, qword [rsp + 0x80]
jmp 0x5874d8
call sym.runtime.gcWriteBarrier2
mov rdx, qword [rsp + 0x80]
mov qword [r11], rdx
mov rsi, qword [rax + rcx]
mov qword [r11 + 8], rsi
mov qword [rax + rcx], rdx
nop dword [rax]
jmp 0x587718
lea rax, [0x006de521]
mov ebx, 0x21
call sym.errors.New
add rsp, 0xd8
pop rbp
ret
cmp rax, 6
je 0x587623
cmp rax, 7
jne 0x587718
cmp rcx, 4
je 0x58752a
nop word [rax + rax]
cmp rcx, 0x10
jne 0x5875f4
mov rdx, qword [rdx + 0x20]
mov r8, qword [rdx + 0x10]
mov r9, qword [rdx + 8]
inc r9
mov rax, qword [rdx]
nop dword [rax]
cmp r8, r9
jae 0x5875be
mov qword [rsp + 0xc0], rdx
mov qword [rsp + 0xf8], rcx
mov qword [rsp + 0xf0], rbx
mov qword [rsp + 0x100], rdi
mov rbx, r9
mov rcx, r8
mov edi, 1
lea rsi, [0x006be3c0]
call sym.runtime.growslice
mov rdx, qword [rsp + 0xc0]
mov qword [rdx + 0x10], rcx
cmp dword [0x0098c4d0], 0
je 0x5875a0
call sym.runtime.gcWriteBarrier2
mov qword [r11], rax
mov rcx, qword [rdx]
mov qword [r11 + 8], rcx
mov qword [rdx], rax
mov rcx, qword [rsp + 0xf8]
mov rdi, qword [rsp + 0x100]
mov r9, rbx
mov rbx, qword [rsp + 0xf0]
mov qword [rdx + 8], r9
lea rdx, [r9 + r9*2]
mov qword [rax + rdx*8 - 0x10], rcx
mov qword [rax + rdx*8 - 8], rdi
cmp dword [0x0098c4d0], 0
je 0x5875ea
call sym.runtime.gcWriteBarrier2
mov qword [r11], rbx
mov rcx, qword [rax + rdx*8 - 0x18]
mov qword [r11 + 8], rcx
mov qword [rax + rdx*8 - 0x18], rbx
jmp 0x587718
mov rax, rcx
call sym.strconv.Itoa
mov ecx, 0x28
mov rdi, rax
mov rsi, rbx
xor eax, eax
lea rbx, [0x006e1fb2]
call sym.runtime.concatstring2
call sym.errors.New
add rsp, 0xd8
pop rbp
ret
mov qword [rsp + 0xb8], r9
xor eax, eax
call sym.runtime.slicebytetostring
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x40], rbx
nop dword [rax]
call sym.crypto_x509.isIA5String
test rax, rax
jne 0x587812
mov rax, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x40]
call sym.net_url.Parse
nop dword [rax]
test rbx, rbx
jne 0x58777e
mov qword [rsp + 0x68], rax
mov rbx, qword [rax + 0x30]
test rbx, rbx
je 0x587693
mov rcx, qword [rax + 0x28]
mov rax, rcx
nop
call sym.crypto_x509.domainToReverseLabels
test dil, dil
je 0x587725
mov rax, qword [rsp + 0x68]
mov rdx, qword [rsp + 0xb8]
mov rcx, qword [rdx + 0x10]
mov rbx, qword [rdx + 8]
inc rbx
mov r8, qword [rdx]
cmp rcx, rbx
jae 0x5876f4
mov rax, r8
mov edi, 1
lea rsi, [0x006be7e0]
nop dword [rax]
call sym.runtime.growslice
mov rdx, qword [rsp + 0xb8]
mov qword [rdx + 0x10], rcx
cmp dword [0x0098c4d0], 0
je 0x5876e9
call sym.runtime.gcWriteBarrier2
mov qword [r11], rax
mov rcx, qword [rdx]
mov qword [r11 + 8], rcx
mov qword [rdx], rax
mov r8, rax
mov rax, qword [rsp + 0x68]
mov qword [rdx + 8], rbx
cmp dword [0x0098c4d0], 0
nop
je 0x587713
call sym.runtime.gcWriteBarrier2
mov qword [r11], rax
mov rcx, qword [r8 + rbx*8 - 8]
mov qword [r11 + 8], rcx
mov qword [r8 + rbx*8 - 8], rax
xor eax, eax
xor ebx, ebx
add rsp, 0xd8
pop rbp
ret
movups xmmword [rsp + 0x88], xmm15
mov rax, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x40]
call sym.runtime.convTstring
lea rcx, [0x0067b380]
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x90], rax
lea rax, [0x006e28c9]
mov ebx, 0x29
lea rcx, [rsp + 0x88]
mov edi, 1
mov rsi, rdi
call sym.fmt.Errorf
add rsp, 0xd8
pop rbp
ret
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x50], rbx
movups xmmword [rsp + 0x98], xmm15
movups xmmword [rsp + 0xa8], xmm15
mov rax, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x40]
call sym.runtime.convTstring
lea rcx, [0x0067b380]
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0xa0], rax
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x5877d0
mov rbx, qword [rcx + 8]
jmp 0x5877d3
mov rbx, rcx
mov qword [rsp + 0xa8], rbx
mov rdx, qword [rsp + 0x78]
mov qword [rsp + 0xb0], rdx
lea rax, [0x006dbe5d]
mov ebx, 0x1d
lea rcx, [rsp + 0x98]
mov edi, 2
mov rsi, rdi
call sym.fmt.Errorf
add rsp, 0xd8
pop rbp
ret
lea rax, [0x006e5bb1]
mov ebx, 0x30
nop
call sym.errors.New
add rsp, 0xd8
pop rbp
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
call sym.runtime.morestack.abi0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
nop dword [rax + rax]
jmp sym.crypto_x509.processExtensions.parseSANExtension.func1