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

Disassembly:
lea r12, [rsp - 0x10]
cmp r12, qword [r14 + 0x10]
jbe 0x5c4b2f
push rbp
mov rbp, rsp
sub rsp, 0x88
mov qword [rsp + 0x98], rax
mov r8, qword [rdx + 8]
mov qword [rsp + 0x48], r8
movzx r9d, word [r8 + 0x18]
rol r9w, 8
mov r10, qword [rdx + 0x18]
mov qword [rsp + 0x30], r10
mov r11, qword [rdx + 0x10]
mov qword [rsp + 0x50], r11
mov rdx, qword [rdx + 0x20]
mov qword [rsp + 0x38], rdx
mov word [rsp + 0x2e], 0
mov word [rsp + 0x2e], r9w
cmp qword [rax], 0
jne 0x5c4767
cmp qword [rax + 0x30], 0
jne 0x5c4b1b
mov r9, qword [rax + 0x18]
add r9, 2
nop word [rax + rax]
cmp r9, 2
jge 0x5c466b
lea rax, [0x006951a0]
call sym.runtime.newobject
mov qword [rax + 8], 0x1b
lea rcx, [0x006da8fc]
mov qword [rax], rcx
lea rcx, [0x00758260]
mov rdx, qword [rsp + 0x98]
mov qword [rdx], rcx
cmp dword [0x0098c4d0], 0
je 0x5c4650
nop
call sym.runtime.gcWriteBarrier2
mov qword [r11], rax
mov r8, qword [rdx + 8]
mov qword [r11 + 8], r8
mov qword [rdx + 8], rax
mov rax, rdx
mov rdx, qword [rsp + 0x38]
mov r8, qword [rsp + 0x48]
mov r10, qword [rsp + 0x30]
mov r11, qword [rsp + 0x50]
cmp byte [rax + 0x28], 0
je 0x5c46d9
mov r9, qword [rax + 0x18]
add r9, 2
cmp qword [rax + 0x20], r9
jge 0x5c46d9
lea rax, [0x006951a0]
call sym.runtime.newobject
mov qword [rax + 8], 0x36
lea rcx, [0x006e7c94]
mov qword [rax], rcx
lea rcx, [0x00758260]
mov rdx, qword [rsp + 0x98]
mov qword [rdx], rcx
cmp dword [0x0098c4d0], 0
je 0x5c46c8
call sym.runtime.gcWriteBarrier2
mov qword [r11], rax
mov r8, qword [rdx + 8]
mov qword [r11 + 8], r8
mov qword [rdx + 8], rax
mov rax, rdx
mov r8, qword [rsp + 0x48]
jmp 0x5c4767
mov rcx, qword [rax + 0x20]
mov rbx, qword [rax + 0x18]
lea r9, [rbx + 2]
mov r12, qword [rax + 0x10]
cmp rcx, r9
jae 0x5c4731
mov qword [rsp + 0x40], rbx
mov rax, r12
mov rbx, r9
mov edi, 2
lea rsi, [0x0067b400]
call sym.runtime.growslice
mov rdx, qword [rsp + 0x38]
mov r8, qword [rsp + 0x48]
mov r10, qword [rsp + 0x30]
mov r11, qword [rsp + 0x50]
mov r12, rax
mov r9, rbx
mov rax, qword [rsp + 0x98]
mov rbx, qword [rsp + 0x40]
movzx r13d, word [rsp + 0x2e]
mov word [r12 + rbx], r13w
mov qword [rax + 0x18], r9
mov qword [rax + 0x20], rcx
cmp dword [0x0098c4d0], 0
je 0x5c4763
mov rcx, r11
call sym.runtime.gcWriteBarrier2
mov qword [r11], r12
mov r9, qword [rax + 0x10]
mov qword [r11 + 8], r9
mov r11, rcx
mov qword [rax + 0x10], r12
mov rbx, qword [r8 + 0x20]
mov rcx, qword [r8 + 0x28]
mov rdi, qword [r8 + 0x30]
mov esi, 0x20
call sym.crypto_tls.addBytesWithLength
movups xmmword [rsp + 0x78], xmm15
lea rdx, [sym.crypto_tls._serverHelloMsg_.marshal.func10.1]
mov qword [rsp + 0x78], rdx
mov rdx, qword [rsp + 0x48]
mov qword [rsp + 0x80], rdx
mov rax, qword [rsp + 0x98]
mov ebx, 1
xor ecx, ecx
lea rdi, [rsp + 0x78]
call sym.vendor_golang.org_x_crypto_cryptobyte._Builder_.addLengthPrefixed
mov rdx, qword [rsp + 0x48]
movzx r8d, word [rdx + 0x50]
rol r8w, 8
mov word [rsp + 0x2c], 0
mov word [rsp + 0x2c], r8w
mov rax, qword [rsp + 0x98]
cmp qword [rax], 0
nop dword [rax]
jne 0x5c493b
cmp qword [rax + 0x30], 0
jne 0x5c4b08
mov r8, qword [rax + 0x18]
add r8, 2
cmp r8, 2
jge 0x5c4854
lea rax, [0x006951a0]
call sym.runtime.newobject
mov qword [rax + 8], 0x1b
lea rcx, [0x006da8fc]
mov qword [rax], rcx
lea rcx, [0x00758260]
mov rdx, qword [rsp + 0x98]
mov qword [rdx], rcx
cmp dword [0x0098c4d0], 0
je 0x5c4848
call sym.runtime.gcWriteBarrier2
mov qword [r11], rax
mov r8, qword [rdx + 8]
mov qword [r11 + 8], r8
mov qword [rdx + 8], rax
mov rax, rdx
mov rdx, qword [rsp + 0x48]
cmp byte [rax + 0x28], 0
je 0x5c48c2
mov r8, qword [rax + 0x18]
add r8, 2
cmp qword [rax + 0x20], r8
jge 0x5c48c2
lea rax, [0x006951a0]
call sym.runtime.newobject
mov qword [rax + 8], 0x36
lea rcx, [0x006e7c94]
mov qword [rax], rcx
lea rcx, [0x00758260]
mov rdx, qword [rsp + 0x98]
mov qword [rdx], rcx
cmp dword [0x0098c4d0], 0
nop
je 0x5c48b2
call sym.runtime.gcWriteBarrier2
mov qword [r11], rax
mov r8, qword [rdx + 8]
mov qword [r11 + 8], r8
mov qword [rdx + 8], rax
mov rax, rdx
mov rdx, qword [rsp + 0x48]
nop
jmp 0x5c493b
mov rcx, qword [rax + 0x20]
mov rbx, qword [rax + 0x18]
lea r8, [rbx + 2]
mov r9, qword [rax + 0x10]
cmp rcx, r8
jae 0x5c490b
mov qword [rsp + 0x40], rbx
mov rax, r9
mov rbx, r8
mov edi, 2
lea rsi, [0x0067b400]
call sym.runtime.growslice
mov rdx, qword [rsp + 0x48]
mov r9, rax
mov r8, rbx
mov rax, qword [rsp + 0x98]
mov rbx, qword [rsp + 0x40]
movzx r10d, word [rsp + 0x2c]
mov word [r9 + rbx], r10w
mov qword [rax + 0x18], r8
mov qword [rax + 0x20], rcx
cmp dword [0x0098c4d0], 0
je 0x5c4937
call sym.runtime.gcWriteBarrier2
mov qword [r11], r9
mov r8, qword [rax + 0x10]
mov qword [r11 + 8], r8
mov qword [rax + 0x10], r9
movzx edx, byte [rdx + 0x52]
mov byte [rsp + 0x2b], 0
mov byte [rsp + 0x2b], dl
cmp qword [rax], 0
je 0x5c4956
mov rdx, rax
jmp 0x5c4a9d
cmp qword [rax + 0x30], 0
nop dword [rax + rax]
jne 0x5c4af5
mov rdx, qword [rax + 0x18]
inc rdx
test rdx, rdx
jg 0x5c49c2
lea rax, [0x006951a0]
call sym.runtime.newobject
mov qword [rax + 8], 0x1b
lea rcx, [0x006da8fc]
mov qword [rax], rcx
lea rcx, [0x00758260]
mov rdx, qword [rsp + 0x98]
mov qword [rdx], rcx
cmp dword [0x0098c4d0], 0
je 0x5c49bb
call sym.runtime.gcWriteBarrier2
mov qword [r11], rax
mov r8, qword [rdx + 8]
mov qword [r11 + 8], r8
mov qword [rdx + 8], rax
mov rax, rdx
cmp byte [rax + 0x28], 0
je 0x5c4a28
mov rdx, qword [rax + 0x18]
inc rdx
cmp qword [rax + 0x20], rdx
jge 0x5c4a28
lea rax, [0x006951a0]
nop dword [rax]
call sym.runtime.newobject
mov qword [rax + 8], 0x36
lea rcx, [0x006e7c94]
mov qword [rax], rcx
lea rcx, [0x00758260]
mov rdx, qword [rsp + 0x98]
mov qword [rdx], rcx
cmp dword [0x0098c4d0], 0
je 0x5c4a22
call sym.runtime.gcWriteBarrier2
mov qword [r11], rax
mov rsi, qword [rdx + 8]
mov qword [r11 + 8], rsi
mov qword [rdx + 8], rax
jmp 0x5c4a9d
mov rcx, qword [rax + 0x20]
mov rbx, qword [rax + 0x18]
lea rdx, [rbx + 1]
mov r8, qword [rax + 0x10]
cmp rcx, rdx
jae 0x5c4a6c
mov qword [rsp + 0x40], rbx
mov rax, r8
mov rbx, rdx
mov edi, 1
lea rsi, [0x0067b400]
call sym.runtime.growslice
mov r8, rax
mov rdx, rbx
mov rax, qword [rsp + 0x98]
mov rbx, qword [rsp + 0x40]
movzx esi, byte [rsp + 0x2b]
mov byte [r8 + rbx], sil
mov qword [rax + 0x18], rdx
mov qword [rax + 0x20], rcx
cmp dword [0x0098c4d0], 0
je 0x5c4a96
call sym.runtime.gcWriteBarrier2
mov qword [r11], r8
mov rdx, qword [rax + 0x10]
mov qword [r11 + 8], rdx
mov qword [rax + 0x10], r8
mov rdx, rax
mov rsi, qword [rsp + 0x30]
test rsi, rsi
je 0x5c4aec
movups xmmword [rsp + 0x58], xmm15
movups xmmword [rsp + 0x68], xmm15
lea r8, [sym.crypto_tls._serverHelloMsg_.marshal.func10.2]
mov qword [rsp + 0x58], r8
mov qword [rsp + 0x68], rsi
mov rsi, qword [rsp + 0x38]
mov qword [rsp + 0x70], rsi
mov rsi, qword [rsp + 0x50]
mov qword [rsp + 0x60], rsi
mov rax, rdx
mov ebx, 2
xor ecx, ecx
lea rdi, [rsp + 0x58]
call sym.vendor_golang.org_x_crypto_cryptobyte._Builder_.addLengthPrefixed
add rsp, 0x88
pop rbp
ret
lea rax, [0x0067b380]
lea rbx, [0x00757000]
call sym.runtime.gopanic
lea rax, [0x0067b380]
lea rbx, [0x00757000]
call sym.runtime.gopanic
lea rax, [0x0067b380]
lea rbx, [0x00757000]
call sym.runtime.gopanic
nop
mov qword [rsp + 8], rax
call sym.runtime.morestack.abi0
mov rax, qword [rsp + 8]
nop
jmp sym.crypto_tls._serverHelloMsg_.marshal.func10