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

Disassembly:
lea r12, [rsp - 0x150]
cmp r12, qword [r14 + 0x10]
jbe 0x5607f0
push rbp
mov rbp, rsp
sub rsp, 0x1c8
mov qword [rsp + 0x208], rax
mov qword [rsp + 0x210], rbx
test rcx, rcx
je 0x56031e
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x128], rbx
mov qword [rsp + 0x120], rax
mov rdx, rcx
and edx, 0x1f
mov qword [rsp + 0x88], rdx
nop
nop dword [rax]
cmp rdx, 0x14
jne 0x55fb32
bt ecx, 9
jb 0x55faf5
lea rsi, [0x0075d128]
jmp 0x55fb00
call sym.reflect.Value.typeSlow
mov rsi, rax
mov rax, rbx
mov rcx, qword [rsi + 0xd0]
call rcx
test rax, rax
je 0x5602cd
mov rax, qword [rsp + 0x120]
mov rcx, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x128]
cmp rdx, 0x17
jne 0x55fb43
cmp qword [rbx + 8], 0
sete sil
jmp 0x55fb45
xor esi, esi
test sil, sil
je 0x55fb7c
cmp byte [rsp + 0x201], 0
je 0x55fb7c
xor eax, eax
xor ebx, ebx
mov rcx, rbx
nop dword [rax + rax]
call sym.runtime.convTslice
mov rbx, rax
xor ecx, ecx
xor edi, edi
lea rax, [0x00759a60]
add rsp, 0x1c8
pop rbp
ret
cmp byte [rsp + 0x1d8], 0
je 0x55fcae
cmp qword [rsp + 0x1e0], 0
je 0x55fcae
lea rsi, [rdx - 2]
nop dword [rax]
cmp rsi, 4
ja 0x55fcae
bt ecx, 9
jb 0x55fbb9
lea rsi, [0x0075d128]
jmp 0x55fbc4
call sym.reflect.Value.typeSlow
mov rsi, rax
mov rax, rbx
mov rbx, rax
mov rax, rsi
call sym.reflect.New
call sym.reflect.Value.Elem
mov qword [rsp + 0x118], rax
mov qword [rsp + 0x110], rbx
mov qword [rsp + 0x80], rcx
mov rdx, qword [rsp + 0x1e0]
mov rdi, qword [rdx]
call sym.reflect.Value.SetInt
mov rax, qword [rsp + 0x120]
mov rbx, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x90]
mov edi, 1
call sym.reflect.valueInterface
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x108], rbx
mov rcx, qword [rsp + 0x80]
mov edi, 1
mov rax, qword [rsp + 0x118]
mov rbx, qword [rsp + 0x110]
call sym.reflect.valueInterface
mov rcx, rax
mov rdi, rbx
mov rax, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x108]
call sym.reflect.DeepEqual
test al, al
jne 0x55fc8b
mov rax, qword [rsp + 0x120]
mov rcx, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x128]
jmp 0x55fcae
xor eax, eax
xor ebx, ebx
mov rcx, rbx
call sym.runtime.convTslice
mov rbx, rax
xor ecx, ecx
xor edi, edi
lea rax, [0x00759a60]
add rsp, 0x1c8
pop rbp
ret
cmp byte [rsp + 0x1d8], 0
je 0x55fd93
cmp qword [rsp + 0x1e0], 0
jne 0x55fd93
mov edi, 1
call sym.reflect.valueInterface
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x100], rbx
mov rcx, qword [rsp + 0x90]
bt ecx, 9
jb 0x55fd02
lea rdx, [0x0075d128]
mov rsi, qword [rsp + 0x120]
nop
jmp 0x55fd1d
mov rax, qword [rsp + 0x120]
mov rbx, qword [rsp + 0x128]
call sym.reflect.Value.typeSlow
mov rdx, rax
mov rsi, rbx
mov rax, rdx
mov rbx, rsi
call sym.reflect.Zero
mov edi, 1
call sym.reflect.valueInterface
mov rcx, rax
mov rdi, rbx
mov rax, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x100]
call sym.reflect.DeepEqual
test al, al
jne 0x55fd70
mov rax, qword [rsp + 0x120]
mov rcx, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x128]
jmp 0x55fd93
xor eax, eax
xor ebx, ebx
mov rcx, rbx
call sym.runtime.convTslice
mov rbx, rax
xor ecx, ecx
xor edi, edi
lea rax, [0x00759a60]
add rsp, 0x1c8
pop rbp
ret
bt ecx, 9
jb 0x55fda5
mov rsi, rax
lea rdi, [0x0075d128]
jmp 0x55fdd0
call sym.reflect.Value.typeSlow
mov rcx, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x120]
mov rdi, rax
mov rax, rbx
mov rbx, qword [rsp + 0x128]
cmp qword [0x009056d0], rdi
je 0x55fddf
bt ecx, 9
jmp 0x55fe1d
mov rcx, qword [0x009056d8]
mov rbx, rax
mov rax, rdi
call sym.runtime.ifaceeq
test al, al
jne 0x5600c6
mov rcx, qword [rsp + 0x90]
bt ecx, 9
mov rdx, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x128]
mov rsi, qword [rsp + 0x120]
jb 0x55fe28
lea rax, [0x0075d128]
jmp 0x55fe33
mov rax, rsi
call sym.reflect.Value.typeSlow
mov rsi, rbx
mov rbx, rsi
call sym.encoding_asn1.getUniversalType
nop dword [rax + rax]
test dil, dil
je 0x56001b
test al, al
jne 0x56000d
mov rdx, qword [rsp + 0x1f8]
test rdx, rdx
je 0x55feaa
nop
cmp rbx, 0x17
je 0x55feaa
lea rcx, [0x006e39de]
mov qword [rsp + 0x150], rcx
mov qword [rsp + 0x158], 0x2b
mov rax, qword [rsp + 0x150]
mov ebx, 0x2b
call sym.runtime.convTstring
xor ebx, ebx
lea rcx, [0x00758ee0]
mov rdi, rax
xor eax, eax
add rsp, 0x1c8
pop rbp
ret
mov byte [rsp + 0x4f], cl
mov rsi, qword [rsp + 0x1f0]
test rsi, rsi
je 0x55ff0f
nop dword [rax + rax]
cmp rbx, 0x13
jne 0x55fecb
test rsi, rsi
jmp 0x55ff18
lea rcx, [0x006e5792]
mov qword [rsp + 0x140], rcx
mov qword [rsp + 0x148], 0x2f
mov rax, qword [rsp + 0x140]
mov ebx, 0x2f
call sym.runtime.convTstring
xor ebx, ebx
lea rcx, [0x00758ee0]
mov rdi, rax
xor eax, eax
add rsp, 0x1c8
pop rbp
ret
cmp rbx, 0x13
jne 0x55ff89
test rsi, rsi
jne 0x56067d
mov rdx, qword [rsp + 0x88]
cmp rdx, 0x18
jne 0x55ff3d
mov rbx, qword [rsp + 0x128]
mov rsi, qword [rbx]
mov rdi, qword [rbx + 8]
jmp 0x55ff75
mov rax, qword [rsp + 0x120]
mov rbx, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x90]
call sym.reflect.Value.stringNonString
movzx ecx, byte [rsp + 0x4f]
mov rdx, qword [rsp + 0x88]
mov rdi, rbx
mov rsi, rax
mov rbx, qword [rsp + 0x128]
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x98], rsi
xor eax, eax
jmp 0x560688
cmp rbx, 0x17
jne 0x560005
cmp rdx, 0x18
je 0x55ffe9
mov rax, qword [rsp + 0x120]
mov rbx, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x90]
mov edi, 1
call sym.reflect.valueInterface
lea rdx, [0x006cbb40]
nop
cmp rax, rdx
jne 0x56066e
mov rax, qword [rbx]
mov rdx, qword [rbx + 8]
mov rcx, qword [rbx + 0x10]
mov rbx, rdx
call sym.encoding_asn1.outsideUTCRange
nop dword [rax]
test al, al
je 0x55fff3
movzx ecx, byte [rsp + 0x4f]
mov eax, 0x18
jmp 0x560358
movzx ecx, byte [rsp + 0x4f]
mov eax, 0x17
nop dword [rax]
jmp 0x560358
mov rax, rbx
jmp 0x560358
mov rcx, qword [rsp + 0x90]
bt ecx, 9
jmp 0x560027
mov rcx, qword [rsp + 0x90]
bt ecx, 9
jb 0x56003a
lea rax, [0x0075d128]
mov rbx, qword [rsp + 0x120]
jmp 0x56004f
mov rax, qword [rsp + 0x120]
mov rbx, qword [rsp + 0x128]
call sym.reflect.Value.typeSlow
movups xmmword [rsp + 0x170], xmm15
test rax, rax
je 0x560061
mov rax, qword [rax + 8]
mov qword [rsp + 0x170], rax
mov qword [rsp + 0x178], rbx
lea rax, [0x006d5fd2]
mov ebx, 0x13
lea rcx, [rsp + 0x170]
mov edi, 1
mov rsi, rdi
call sym.fmt.Sprintf
mov qword [rsp + 0x160], rax
mov qword [rsp + 0x168], rbx
mov rax, qword [rsp + 0x160]
call sym.runtime.convTstring
xor ebx, ebx
lea rcx, [0x00758ee0]
mov rdi, rax
xor eax, eax
add rsp, 0x1c8
pop rbp
ret
mov rax, qword [rsp + 0x120]
mov rbx, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x90]
mov edi, 1
call sym.reflect.valueInterface
movups xmmword [rsp + 0x180], xmm15
movups xmmword [rsp + 0x188], xmm15
movups xmmword [rsp + 0x198], xmm15
movups xmmword [rsp + 0x1a8], xmm15
movups xmmword [rsp + 0x1b8], xmm15
lea rdx, [0x006b5520]
nop dword [rax]
cmp rax, rdx
jne 0x560349
mov rdx, qword [rbx]
mov qword [rsp + 0x180], rdx
movups xmm0, xmmword [rbx + 8]
movups xmmword [rsp + 0x188], xmm0
movups xmm0, xmmword [rbx + 0x18]
movups xmmword [rsp + 0x198], xmm0
movups xmm0, xmmword [rbx + 0x28]
movups xmmword [rsp + 0x1a8], xmm0
movups xmm0, xmmword [rbx + 0x38]
movups xmmword [rsp + 0x1b8], xmm0
mov rdx, qword [rsp + 0x180]
mov qword [rsp + 0xb8], rdx
movups xmm0, xmmword [rsp + 0x188]
movups xmmword [rsp + 0xc0], xmm0
movups xmm0, xmmword [rsp + 0x198]
movups xmmword [rsp + 0xd0], xmm0
movups xmm0, xmmword [rsp + 0x1a8]
movups xmmword [rsp + 0xe0], xmm0
movups xmm0, xmmword [rsp + 0x1b8]
movups xmmword [rsp + 0xf0], xmm0
mov rbx, qword [rsp + 0xf0]
nop dword [rax]
test rbx, rbx
jne 0x5602a1
lea rax, [0x006a7fc0]
call sym.runtime.newobject
mov qword [rsp + 0xb0], rax
mov rdi, qword [rsp + 0xb8]
mov rsi, qword [rsp + 0xc0]
mov r8, qword [rsp + 0xd8]
movzx r9d, byte [rsp + 0xc8]
xor ebx, ebx
mov ecx, 8
call sym.encoding_asn1.appendTagAndLength
call sym.runtime.convTslice
lea rcx, [0x00759a60]
mov rdx, qword [rsp + 0xb0]
mov qword [rdx + 8], rcx
cmp dword [0x0098c4d0], 0
je 0x56023b
call sym.runtime.gcWriteBarrier2
mov qword [r11], rax
mov rsi, qword [rdx + 0x10]
mov qword [r11 + 8], rsi
mov qword [rdx + 0x10], rax
mov rax, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0xe0]
call sym.runtime.convTslice
lea rdx, [0x00759a60]
mov rbx, qword [rsp + 0xb0]
mov qword [rbx + 0x18], rdx
cmp dword [0x0098c4d0], 0
je 0x560288
call sym.runtime.gcWriteBarrier2
mov qword [r11], rax
mov rdx, qword [rbx + 0x20]
mov qword [r11 + 8], rdx
mov qword [rbx + 0x20], rax
lea rax, [0x00759a88]
xor ecx, ecx
xor edi, edi
add rsp, 0x1c8
pop rbp
nop
ret
mov rax, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0xf8]
call sym.runtime.convTslice
mov rbx, rax
xor ecx, ecx
xor edi, edi
lea rax, [0x00759a60]
add rsp, 0x1c8
pop rbp
ret
mov rax, qword [rsp + 0x120]
mov rbx, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x90]
call sym.reflect.Value.Elem
movups xmm0, xmmword [rsp + 0x1d8]
movups xmmword [rsp], xmm0
movups xmm0, xmmword [rsp + 0x1e8]
movups xmmword [rsp + 0x10], xmm0
movups xmm0, xmmword [rsp + 0x1f8]
movups xmmword [rsp + 0x20], xmm0
call sym.encoding_asn1.makeField
add rsp, 0x1c8
pop rbp
ret
lea rax, [0x006dc847]
mov ebx, 0x1e
xor ecx, ecx
xor edi, edi
mov rsi, rdi
call sym.fmt.Errorf
mov rcx, rax
mov rdi, rbx
xor eax, eax
xor ebx, ebx
add rsp, 0x1c8
pop rbp
ret
mov rbx, rdx
lea rcx, [0x00684e00]
call sym.runtime.panicdottypeE
movzx edx, byte [rsp + 0x200]
test dl, dl
je 0x5603b5
cmp rax, 0x10
jne 0x560371
mov eax, 0x11
jmp 0x5603b5
lea rcx, [0x006da275]
mov qword [rsp + 0x130], rcx
mov qword [rsp + 0x138], 0x1a
mov rax, qword [rsp + 0x130]
mov ebx, 0x1a
call sym.runtime.convTstring
xor ebx, ebx
lea rcx, [0x00758ee0]
mov rdi, rax
xor eax, eax
add rsp, 0x1c8
pop rbp
ret
mov qword [rsp + 0x58], rax
nop word [rax + rax]
cmp rax, 0x11
jne 0x5603d2
test dl, dl
jne 0x5603d2
mov byte [rsp + 0x200], 1
lea rax, [0x006a7fc0]
call sym.runtime.newobject
mov qword [rsp + 0xa8], rax
movups xmm0, xmmword [rsp + 0x1d8]
movups xmmword [rsp], xmm0
movups xmm0, xmmword [rsp + 0x1e8]
movups xmmword [rsp + 0x10], xmm0
movups xmm0, xmmword [rsp + 0x1f8]
movups xmmword [rsp + 0x20], xmm0
mov rbx, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x90]
mov rax, qword [rsp + 0x120]
call sym.encoding_asn1.makeBody
mov rdx, qword [rsp + 0xa8]
mov qword [rdx + 0x18], rax
cmp dword [0x0098c4d0], 0
je 0x560450
nop
call sym.runtime.gcWriteBarrier2
mov qword [r11], rbx
mov rsi, qword [rdx + 0x20]
mov qword [r11 + 8], rsi
mov qword [rdx + 0x20], rbx
test rcx, rcx
jne 0x560661
mov rcx, qword [rax + 0x20]
mov rax, rbx
call rcx
mov rcx, qword [rsp + 0x1e8]
test rcx, rcx
je 0x5605ee
cmp byte [rsp + 0x1da], 0
nop
je 0x560489
mov edx, 1
jmp 0x5604a3
movzx edx, byte [rsp + 0x1db]
test rdx, rdx
mov edx, 2
mov r10d, 3
cmovne rdx, r10
cmp byte [rsp + 0x1d9], 0
jne 0x5604b5
mov r10, qword [rcx]
jmp 0x5605f5
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x70], rdx
xor ebx, ebx
mov ecx, 8
mov rdi, rbx
mov rsi, qword [rsp + 0x58]
mov r8, rax
movzx r9d, byte [rsp + 0x4f]
mov rax, qword [rsp + 0xa8]
nop
call sym.encoding_asn1.appendTagAndLength
call sym.runtime.convTslice
lea rdx, [0x00759a60]
mov r10, qword [rsp + 0xa8]
mov qword [r10 + 8], rdx
cmp dword [0x0098c4d0], 0
je 0x560516
call sym.runtime.gcWriteBarrier2
mov qword [r11], rax
mov rcx, qword [r10 + 0x10]
mov qword [r11 + 8], rcx
mov qword [r10 + 0x10], rax
lea rax, [0x006a7fc0]
call sym.runtime.newobject
lea rcx, [0x00759a88]
mov qword [rax + 0x18], rcx
cmp dword [0x0098c4d0], 0
jne 0x560544
mov rdx, qword [rsp + 0xa8]
jmp 0x560554
call sym.runtime.gcWriteBarrier1
mov rdx, qword [rsp + 0xa8]
mov qword [r11], rdx
mov qword [rsp + 0xa0], rax
mov qword [rax + 0x20], rdx
mov rcx, qword [rdx + 8]
mov rdx, qword [rdx + 0x10]
mov rcx, qword [rcx + 0x20]
mov rax, rdx
call rcx
mov rcx, qword [rsp + 0x1e8]
mov rsi, qword [rcx]
mov rcx, qword [rsp + 0x78]
lea r8, [rcx + rax]
mov rax, qword [rsp + 0xa0]
xor ebx, ebx
mov ecx, 8
mov rdi, qword [rsp + 0x70]
mov r9d, 1
nop
call sym.encoding_asn1.appendTagAndLength
call sym.runtime.convTslice
lea rcx, [0x00759a60]
mov rbx, qword [rsp + 0xa0]
mov qword [rbx + 8], rcx
cmp dword [0x0098c4d0], 0
je 0x5605d6
call sym.runtime.gcWriteBarrier2
mov qword [r11], rax
mov rdx, qword [rbx + 0x10]
mov qword [r11 + 8], rdx
mov qword [rbx + 0x10], rax
lea rax, [0x00759a88]
xor ecx, ecx
xor edi, edi
add rsp, 0x1c8
pop rbp
ret
xor edx, edx
mov r10, qword [rsp + 0x58]
xor ebx, ebx
mov ecx, 8
mov rdi, rdx
mov rsi, r10
mov r8, rax
movzx r9d, byte [rsp + 0x4f]
mov rax, qword [rsp + 0xa8]
call sym.encoding_asn1.appendTagAndLength
call sym.runtime.convTslice
lea rdx, [0x00759a60]
mov rbx, qword [rsp + 0xa8]
mov qword [rbx + 8], rdx
cmp dword [0x0098c4d0], 0
je 0x560649
call sym.runtime.gcWriteBarrier2
mov qword [r11], rax
mov rdx, qword [rbx + 0x10]
mov qword [r11 + 8], rdx
mov qword [rbx + 0x10], rax
lea rax, [0x00759a88]
xor ecx, ecx
xor edi, edi
add rsp, 0x1c8
pop rbp
ret
xor eax, eax
xor ebx, ebx
add rsp, 0x1c8
pop rbp
ret
mov rbx, rdx
lea rcx, [0x00684e00]
call sym.runtime.panicdottypeE
mov rax, rsi
jmp 0x560358
mov rax, r9
cmp rdi, rax
jle 0x5607e3
movzx r8d, byte [rsi + rax]
cmp r8d, 0x80
jge 0x5606a5
lea r9, [rax + 1]
jmp 0x5606e0
mov rbx, rdi
mov rcx, rax
mov rax, rsi
call sym.runtime.decoderune
movzx ecx, byte [rsp + 0x4f]
mov rdx, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x98]
mov rdi, qword [rsp + 0x50]
mov r8d, eax
mov r9, rbx
mov rbx, qword [rsp + 0x128]
nop dword [rax + rax]
cmp r8d, 0x80
jge 0x560760
lea r10d, [r8 - 0x61]
cmp r10b, 0x19
jbe 0x560685
lea r10d, [r8 - 0x41]
cmp r10b, 0x19
jbe 0x560685
lea r10d, [r8 - 0x30]
cmp r10b, 9
jbe 0x560685
lea r10d, [r8 - 0x27]
cmp r10b, 2
jbe 0x560685
lea r10d, [r8 - 0x2b]
nop dword [rax]
cmp r10b, 4
jbe 0x560685
cmp r8b, 0x20
je 0x560685
cmp r8b, 0x3a
je 0x560685
nop
cmp r8b, 0x3d
je 0x560685
cmp r8b, 0x3f
je 0x560685
cmp rdx, 0x18
jmp 0x560764
cmp rdx, 0x18
jne 0x56076f
mov rdx, qword [rbx]
mov rsi, qword [rbx + 8]
jmp 0x56078b
mov rax, qword [rsp + 0x120]
mov rcx, qword [rsp + 0x90]
nop
call sym.reflect.Value.stringNonString
mov rsi, rbx
mov rdx, rax
mov rax, rdx
mov rbx, rsi
call sym.unicode_utf8.ValidString
test al, al
je 0x5607ae
movzx ecx, byte [rsp + 0x4f]
mov rbx, qword [rsp + 0x128]
mov eax, 0xc
jmp 0x5607e8
lea rax, [0x006951a0]
call sym.runtime.newobject
mov qword [rax + 8], 0x1c
lea rcx, [0x006db551]
mov qword [rax], rcx
xor ebx, ebx
lea rcx, [0x00758260]
mov rdi, rax
xor eax, eax
add rsp, 0x1c8
pop rbp
ret
mov eax, 0x13
mov rsi, rax
jmp 0x56067d
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], rcx
nop
call sym.runtime.morestack_noctxt.abi0
mov rax, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
jmp sym.encoding_asn1.makeField