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

Disassembly:
lea r12, [rsp - 0xb8]
cmp r12, qword [r14 + 0x10]
jbe 0x58d83d
push rbp
mov rbp, rsp
sub rsp, 0x130
mov qword [rsp + 0x148], rbx
mov rsi, qword [rdx + 0x10]
mov qword [rsp + 0x128], rsi
mov r8, qword [rdx + 0x18]
mov qword [rsp + 0x120], r8
mov rdx, qword [rdx + 8]
mov qword [rsp + 0xb0], rdx
cmp rax, 2
jg 0x58d515
cmp rax, 1
je 0x58d2ce
nop dword [rax]
cmp rax, 2
jne 0x58d7ca
xor eax, eax
call sym.runtime.slicebytetostring
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0x78], rbx
nop
call sym.crypto_x509.domainToReverseLabels
test dil, dil
je 0x58d272
mov rax, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0x78]
nop dword [rax + rax]
call sym.runtime.convTstring
mov qword [rsp + 0xc8], rax
mov rcx, qword [rsp + 0xb0]
mov rbx, qword [rcx + 0x448]
mov rdx, qword [rcx + 0x450]
mov rsi, qword [rcx + 0x440]
mov rax, rsi
mov rcx, rdx
call sym.runtime.convTslice
mov qword [rsp + 0xc0], rax
mov rcx, qword [rsp + 0xb0]
mov rdx, qword [rcx + 0x458]
mov rbx, qword [rcx + 0x460]
mov rsi, qword [rcx + 0x468]
mov rax, rdx
mov rcx, rsi
call sym.runtime.convTslice
mov rcx, qword [rsp + 0x120]
mov rcx, qword [rcx]
lea rdx, sym.crypto_x509._Certificate_.isValid.func1.2
mov qword [rsp], rdx
lea rdx, [0x00678560]
mov qword [rsp + 8], rdx
mov rsi, qword [rsp + 0xc0]
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0x128]
lea rdi, [0x006d1c15]
mov esi, 8
mov r8, qword [rsp + 0xa0]
mov r9, qword [rsp + 0x78]
lea r10, [0x0067b380]
mov r11, qword [rsp + 0xc8]
call sym.crypto_x509._Certificate_.checkNameConstraints
nop dword [rax + rax]
test rax, rax
je 0x58d7ca
add rsp, 0x130
pop rbp
ret
movups xmmword [rsp + 0xf0], xmm15
mov rax, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0x78]
call sym.runtime.convTstring
lea rcx, [0x0067b380]
mov qword [rsp + 0xf0], rcx
mov qword [rsp + 0xf8], rax
lea rax, [0x006dbe97]
mov ebx, 0x1d
lea rcx, [rsp + 0xf0]
mov edi, 1
mov rsi, rdi
call sym.fmt.Errorf
add rsp, 0x130
pop rbp
ret
xor eax, eax
call sym.runtime.slicebytetostring
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x100], 0
movups xmmword [rsp + 0x108], xmm15
mov qword [rsp + 0x118], 0
call sym.crypto_x509.parseRFC2821Mailbox
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x108], rbx
mov qword [rsp + 0x110], rcx
mov qword [rsp + 0x118], rdi
test sil, sil
je 0x58d457
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x108], rbx
mov qword [rsp + 0x110], rcx
mov qword [rsp + 0x118], rdi
lea rax, [0x0069f840]
lea rbx, [rsp + 0x100]
call sym.runtime.convT
mov qword [rsp + 0xc8], rax
mov rcx, qword [rsp + 0xb0]
mov rbx, qword [rcx + 0x4a8]
mov rdx, qword [rcx + 0x4b0]
mov rsi, qword [rcx + 0x4a0]
mov rax, rsi
mov rcx, rdx
call sym.runtime.convTslice
mov qword [rsp + 0xc0], rax
mov rcx, qword [rsp + 0xb0]
mov rdx, qword [rcx + 0x4b8]
mov rbx, qword [rcx + 0x4c0]
mov rsi, qword [rcx + 0x4c8]
mov rax, rdx
mov rcx, rsi
call sym.runtime.convTslice
mov rcx, qword [rsp + 0x120]
mov rcx, qword [rcx]
lea rdx, sym.crypto_x509._Certificate_.isValid.func1.1
mov qword [rsp], rdx
lea rdx, [0x00678560]
mov qword [rsp + 8], rdx
mov rsi, qword [rsp + 0xc0]
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0x128]
lea rdi, [0x006d36cb]
mov esi, 0xd
mov r8, qword [rsp + 0xa8]
mov r9, qword [rsp + 0x80]
lea r10, [0x0069f840]
mov r11, qword [rsp + 0xc8]
nop dword [rax]
call sym.crypto_x509._Certificate_.checkNameConstraints
test rax, rax
je 0x58d7ca
add rsp, 0x130
pop rbp
ret
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x108], rbx
mov qword [rsp + 0x110], rcx
mov qword [rsp + 0x118], rdi
movups xmmword [rsp + 0xf0], xmm15
mov rcx, qword [rsp + 0x100]
mov rdx, qword [rsp + 0x108]
mov rsi, qword [rsp + 0x110]
mov rdi, qword [rsp + 0x118]
mov qword [rsp + 0xd0], rcx
mov qword [rsp + 0xd8], rdx
mov qword [rsp + 0xe0], rsi
mov qword [rsp + 0xe8], rdi
lea rax, [0x0069f840]
lea rbx, [rsp + 0xd0]
call sym.runtime.convT
lea rcx, [0x0069f840]
mov qword [rsp + 0xf0], rcx
mov qword [rsp + 0xf8], rax
lea rax, [0x006dd9b2]
mov ebx, 0x20
lea rcx, [rsp + 0xf0]
mov edi, 1
mov rsi, rdi
call sym.fmt.Errorf
add rsp, 0x130
pop rbp
ret
cmp rax, 6
je 0x58d6d2
nop
cmp rax, 7
jne 0x58d7ca
cmp rcx, 4
je 0x58d58e
cmp rcx, 0x10
je 0x58d58e
movups xmmword [rsp + 0xf0], xmm15
mov rax, rbx
mov rbx, rcx
mov rcx, rdi
call sym.runtime.convTslice
lea rdx, [0x00678260]
mov qword [rsp + 0xf0], rdx
mov qword [rsp + 0xf8], rax
lea rax, [0x006e56d6]
mov ebx, 0x2f
lea rcx, [rsp + 0xf0]
mov edi, 1
mov rsi, rdi
call sym.fmt.Errorf
add rsp, 0x130
pop rbp
ret
mov qword [rsp + 0x158], rdi
mov qword [rsp + 0x150], rcx
mov qword [rsp + 0x148], rbx
mov rax, rbx
mov rbx, rcx
mov rcx, rdi
call sym.net.IP.String
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0x88], rbx
mov rcx, qword [rsp + 0x158]
mov rax, qword [rsp + 0x148]
mov rbx, qword [rsp + 0x150]
nop dword [rax]
call sym.runtime.convTslice
mov qword [rsp + 0xc8], rax
mov rdx, qword [rsp + 0xb0]
mov rbx, qword [rdx + 0x478]
mov rcx, qword [rdx + 0x480]
mov rsi, qword [rdx + 0x470]
mov rax, rsi
call sym.runtime.convTslice
mov qword [rsp + 0xc0], rax
mov rdx, qword [rsp + 0xb0]
mov rsi, qword [rdx + 0x488]
mov rbx, qword [rdx + 0x490]
mov rcx, qword [rdx + 0x498]
mov rax, rsi
call sym.runtime.convTslice
mov rdx, qword [rsp + 0x120]
mov rcx, qword [rdx]
lea rdx, sym.crypto_x509._Certificate_.isValid.func1.4
mov qword [rsp], rdx
lea rdx, [0x0067a640]
mov qword [rsp + 8], rdx
mov rsi, qword [rsp + 0xc0]
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0x128]
lea rdi, [0x006d20bb]
mov esi, 0xa
mov r8, qword [rsp + 0xb8]
mov r9, qword [rsp + 0x88]
lea r10, [0x006be3c0]
mov r11, qword [rsp + 0xc8]
call sym.crypto_x509._Certificate_.checkNameConstraints
nop dword [rax + rax]
test rax, rax
je 0x58d7ca
add rsp, 0x130
pop rbp
ret
xor eax, eax
call sym.runtime.slicebytetostring
mov qword [rsp + 0x98], rax
mov qword [rsp + 0x70], rbx
call sym.net_url.Parse
test rbx, rbx
jne 0x58d7e1
mov qword [rsp + 0x90], rax
mov rdx, qword [rsp + 0xb0]
mov rbx, qword [rdx + 0x4d8]
mov rcx, qword [rdx + 0x4e0]
mov rax, qword [rdx + 0x4d0]
call sym.runtime.convTslice
mov qword [rsp + 0xc8], rax
mov rdx, qword [rsp + 0xb0]
mov rsi, qword [rdx + 0x4e8]
mov rbx, qword [rdx + 0x4f0]
mov rcx, qword [rdx + 0x4f8]
mov rax, rsi
call sym.runtime.convTslice
mov rdx, qword [rsp + 0x120]
mov rcx, qword [rdx]
lea rdx, sym.crypto_x509._Certificate_.isValid.func1.3
mov qword [rsp], rdx
lea rdx, [0x00678560]
mov qword [rsp + 8], rdx
mov rsi, qword [rsp + 0xc8]
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0x128]
lea rdi, [0x006d0de8]
mov esi, 3
mov r8, qword [rsp + 0x98]
mov r9, qword [rsp + 0x70]
lea r10, [0x006be7e0]
mov r11, qword [rsp + 0x90]
nop dword [rax]
call sym.crypto_x509._Certificate_.checkNameConstraints
test rax, rax
jne 0x58d7d7
xor eax, eax
xor ebx, ebx
add rsp, 0x130
pop rbp
ret
add rsp, 0x130
pop rbp
nop
ret
movups xmmword [rsp + 0xf0], xmm15
mov rax, qword [rsp + 0x98]
mov rbx, qword [rsp + 0x70]
call sym.runtime.convTstring
lea rcx, [0x0067b380]
mov qword [rsp + 0xf0], rcx
mov qword [rsp + 0xf8], rax
lea rax, [0x006e5c41]
mov ebx, 0x30
lea rcx, [rsp + 0xf0]
mov edi, 1
mov rsi, rdi
call sym.fmt.Errorf
add rsp, 0x130
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]
jmp sym.crypto_x509._Certificate_.isValid.func1