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

Disassembly:
lea r12, [rsp - 0x28]
cmp r12, qword [r14 + 0x10]
jbe 0x4f35f0
push rbp
mov rbp, rsp
sub rsp, 0xa0
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], rbx
mov qword [rsp + 0xc8], rdi
mov qword [rsp + 0xd0], rsi
mov rdx, rcx
and edx, 0x1f
mov qword [rsp + 0x68], rdx
nop
cmp rdx, 0x11
je 0x4f31ba
cmp rdx, 0x17
jne 0x4f35b5
cmp rdx, 0x11
mov qword [rsp + 0x60], r8
mov qword [rsp + 0x98], rdi
mov qword [rsp + 0x90], rsi
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0x80], rax
jne 0x4f322d
nop
test rcx, 0x60
jne 0x4f31f6
bt ecx, 8
jb 0x4f322d
mov rax, rcx
call sym.reflect.flag.mustBeAssignableSlow
mov rax, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x90]
mov rdi, qword [rsp + 0x98]
mov r8, qword [rsp + 0x60]
nop
test rcx, rcx
je 0x4f323c
test rcx, 0x60
je 0x4f3274
mov rax, rcx
nop
call sym.reflect.flag.mustBeExportedSlow
mov rax, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x90]
mov rdi, qword [rsp + 0x98]
mov r8, qword [rsp + 0x60]
mov r10, r8
and r8d, 0x1f
mov qword [rsp + 0x50], r8
nop
cmp r8, 0x11
je 0x4f330a
cmp r8, 0x17
je 0x4f330a
cmp r8, 0x18
jne 0x4f32fa
movzx r11d, byte [rax + 0x17]
and r11d, 0x1f
cmp r11, 0x12
ja 0x4f32c0
cmp r11, 0x11
jne 0x4f32b2
mov r11, qword [rax + 0x30]
jmp 0x4f32e7
cmp r11, 0x12
jne 0x4f32e4
mov r11, qword [rax + 0x30]
jmp 0x4f32e7
cmp r11, 0x15
jne 0x4f32cc
mov r11, qword [rax + 0x38]
jmp 0x4f32e7
cmp r11, 0x16
jne 0x4f32d8
mov r11, qword [rax + 0x30]
jmp 0x4f32e7
cmp r11, 0x17
jne 0x4f32e4
mov r11, qword [rax + 0x30]
jmp 0x4f32e7
xor r11d, r11d
movzx r11d, byte [r11 + 0x17]
and r11d, 0x1f
cmp r11, 8
sete r11b
jmp 0x4f3300
xor r11d, r11d
nop dword [rax]
test r11b, r11b
jne 0x4f330d
jmp 0x4f357f
xor r11d, r11d
mov byte [rsp + 0x3f], r11b
nop
test r10, r10
je 0x4f3329
nop dword [rax + rax]
test r10, 0x60
je 0x4f336b
mov rax, r10
call sym.reflect.flag.mustBeExportedSlow
mov rax, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x90]
mov rdi, qword [rsp + 0x98]
mov r8, qword [rsp + 0x50]
mov r10, qword [rsp + 0x60]
movzx r11d, byte [rsp + 0x3f]
movzx r12d, byte [rax + 0x17]
and r12d, 0x1f
cmp r12, 0x12
ja 0x4f3398
nop word [rax + rax]
cmp r12, 0x11
jne 0x4f338c
mov r12, qword [rax + 0x30]
jmp 0x4f33bf
cmp r12, 0x12
jne 0x4f33bc
mov r12, qword [rax + 0x30]
jmp 0x4f33bf
cmp r12, 0x15
jne 0x4f33a4
mov r12, qword [rax + 0x38]
jmp 0x4f33bf
cmp r12, 0x16
jne 0x4f33b0
mov r12, qword [rax + 0x30]
jmp 0x4f33bf
cmp r12, 0x17
jne 0x4f33bc
mov r12, qword [rax + 0x30]
jmp 0x4f33bf
xor r12d, r12d
mov qword [rsp + 0x70], r12
test r11b, r11b
je 0x4f33d2
cmp rdx, 0x11
jmp 0x4f34af
movzx r9d, byte [rdi + 0x17]
and r9d, 0x1f
nop dword [rax + rax]
cmp r9, 0x12
ja 0x4f3400
cmp r9, 0x11
jne 0x4f33f2
mov r9, qword [rdi + 0x30]
jmp 0x4f3427
cmp r9, 0x12
jne 0x4f3424
mov r9, qword [rdi + 0x30]
jmp 0x4f3427
cmp r9, 0x15
jne 0x4f340c
mov r9, qword [rdi + 0x38]
jmp 0x4f3427
cmp r9, 0x16
jne 0x4f3418
mov r9, qword [rdi + 0x30]
jmp 0x4f3427
cmp r9, 0x17
jne 0x4f3424
mov r9, qword [rdi + 0x30]
jmp 0x4f3427
xor r9d, r9d
test r12, r12
je 0x4f3438
mov r11, r12
lea r13, [0x0075d128]
jmp 0x4f3441
mov r11, r12
xor r13d, r13d
xor r12d, r12d
test r9, r9
je 0x4f344f
lea r15, [0x0075d128]
jmp 0x4f3455
xor r15d, r15d
xor r9d, r9d
lea rax, [0x006d30a8]
mov ebx, 0xc
mov rcx, r13
mov rdi, r12
mov rsi, r15
mov r8, r9
call sym.reflect.typesMustMatch
mov rdx, qword [rsp + 0x68]
cmp rdx, 0x11
mov rax, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x90]
mov rdi, qword [rsp + 0x98]
mov r8, qword [rsp + 0x50]
mov r10, qword [rsp + 0x60]
mov r12, qword [rsp + 0x70]
je 0x4f34c2
mov rdx, qword [rbx]
mov r11, qword [rbx + 8]
mov r13, qword [rbx + 0x10]
cmp r8, 0x11
jmp 0x4f34fc
nop
call sym.reflect.Value.lenNonSlice
mov rdx, qword [rsp + 0x50]
cmp rdx, 0x11
mov rsi, qword [rsp + 0x90]
mov rdi, qword [rsp + 0x98]
mov r8, rdx
mov r10, qword [rsp + 0x60]
mov r12, qword [rsp + 0x70]
mov r13, rax
mov r11, r13
mov rdx, qword [rsp + 0x88]
je 0x4f351f
nop
cmp r8, 0x17
jne 0x4f3513
mov r10, qword [rsi]
mov r15, qword [rsi + 8]
mov rax, qword [rsi + 0x10]
jmp 0x4f355c
mov r15, qword [rsi + 8]
mov r10, qword [rsi]
mov rax, r15
jmp 0x4f355c
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x40], r11
mov qword [rsp + 0x78], rdx
nop
mov rax, rdi
mov rbx, rsi
mov rcx, r10
call sym.reflect.Value.lenNonSlice
mov rdx, qword [rsp + 0x78]
mov r11, qword [rsp + 0x40]
mov r12, qword [rsp + 0x70]
mov r13, qword [rsp + 0x48]
mov r15, rax
mov r10, qword [rsp + 0x90]
mov rbx, rdx
mov rcx, r11
mov rdi, r13
mov rsi, r10
mov r8, r15
mov r9, rax
mov rax, r12
call sym.reflect.typedslicecopy
add rsp, 0xa0
pop rbp
ret
lea rax, [0x0069f0c0]
call sym.runtime.newobject
mov qword [rax + 8], 0xc
lea rcx, [0x006d30a8]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x50]
mov qword [rax + 0x10], rcx
mov rbx, rax
lea rax, [0x00687cc0]
call sym.runtime.gopanic
lea rax, [0x0069f0c0]
nop dword [rax]
call sym.runtime.newobject
mov qword [rax + 8], 0xc
lea rcx, [0x006d30a8]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x68]
mov qword [rax + 0x10], rcx
mov rbx, rax
lea rax, [0x00687cc0]
call sym.runtime.gopanic
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x30], r8
call sym.runtime.morestack_noctxt.abi0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
mov r8, qword [rsp + 0x30]
jmp sym.reflect.Copy