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

Disassembly:
lea r12, [rsp - 0x1c0]
cmp r12, qword [r14 + 0x10]
jbe 0x5df559
push rbp
mov rbp, rsp
sub rsp, 0x238
mov qword [rsp + 0x250], rbx
mov qword [rsp + 0x248], rax
lea rcx, [0x00755050]
mov edi, 1
call sym.strings.Cut
mov qword [rsp + 0xd0], rbx
call sym.strings.ToLower
call sym.strings.TrimSpace
mov qword [rsp + 0x230], rax
mov qword [rsp + 0xf0], rbx
call sym.mime.checkMediaTypeDisposition
test rax, rax
jne 0x5deb3f
mov qword [rsp + 0x228], rbx
mov qword [rsp + 0xe8], rax
call sym.runtime.makemap_small
mov rcx, qword [rsp + 0xd0]
mov rdx, qword [rsp + 0x250]
cmp rcx, rdx
ja 0x5df54d
mov qword [rsp + 0x118], rax
sub rdx, rcx
mov rsi, rdx
neg rdx
sar rdx, 0x3f
and rcx, rdx
mov rdx, qword [rsp + 0x248]
add rdx, rcx
xor ecx, ecx
jmp 0x5deb80
xor ecx, ecx
mov rdi, rax
mov rsi, rbx
xor eax, eax
xor ebx, ebx
add rsp, 0x238
pop rbp
ret
mov qword [rax], rdx
mov rax, qword [rsp + 0x118]
mov rsi, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x110]
mov rcx, qword [rsp + 0x150]
nop word [rax + rax]
test rsi, rsi
je 0x5dee58
mov qword [rsp + 0x150], rcx
mov rax, rdx
mov rbx, rsi
lea rcx, sym.unicode.IsSpace
nop
call sym.strings.TrimLeftFunc
test rbx, rbx
je 0x5dee50
call sym.mime.consumeMediaParam
test rbx, rbx
je 0x5dee07
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0x90], r8
mov qword [rsp + 0x110], rsi
mov qword [rsp + 0xf8], rcx
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0x130], rax
lea rcx, [0x00754ec0]
mov edi, 1
call sym.strings.Cut
nop word [rax + rax]
test sil, sil
je 0x5decf9
mov qword [rsp + 0xc8], rbx
mov qword [rsp + 0x178], rax
mov rdx, qword [rsp + 0x150]
test rdx, rdx
jne 0x5dec3e
call sym.runtime.makemap_small
mov rbx, qword [rsp + 0xc8]
mov rdx, rax
mov rax, qword [rsp + 0x178]
mov qword [rsp + 0x150], rdx
mov rcx, rax
mov rdi, rbx
lea rax, [0x0068b080]
mov rbx, rdx
call sym.runtime.mapaccess2_faststr
mov rdx, qword [rax]
nop
test bl, bl
jne 0x5decef
call sym.runtime.makemap_small
mov qword [rsp + 0x220], rax
mov rbx, qword [rsp + 0x150]
mov rcx, qword [rsp + 0x178]
mov rdi, qword [rsp + 0xc8]
lea rax, [0x0068b080]
call sym.runtime.mapassign_faststr
test byte [rax], al
cmp dword [0x0098c4d0], 0
jne 0x5decae
mov rdx, qword [rsp + 0x220]
jmp 0x5decc5
call sym.runtime.gcWriteBarrier2
mov rdx, qword [rsp + 0x220]
mov qword [r11], rdx
mov rsi, qword [rax]
mov qword [r11 + 8], rsi
mov qword [rax], rdx
lea rax, [0x0068b080]
mov rbx, qword [rsp + 0x150]
mov rcx, qword [rsp + 0x178]
mov rdi, qword [rsp + 0xc8]
call sym.runtime.mapaccess1_faststr
mov rdx, qword [rax]
mov rax, qword [rsp + 0x150]
jmp 0x5ded09
mov rdx, qword [rsp + 0x118]
mov rax, qword [rsp + 0x150]
mov qword [rsp + 0x218], rdx
mov qword [rsp + 0x150], rax
mov rbx, rdx
mov rcx, qword [rsp + 0x130]
mov rdi, qword [rsp + 0xa8]
lea rax, [0x0068a0c0]
call sym.runtime.mapaccess2_faststr
test bl, bl
je 0x5ded71
mov rcx, qword [rax + 8]
mov rdx, qword [rsp + 0x78]
cmp rdx, rcx
je 0x5ded51
mov eax, 1
jmp 0x5ded6d
mov rax, qword [rax]
mov rbx, qword [rsp + 0xf8]
nop dword [rax]
call sym.runtime.memequal
xor eax, 1
mov rdx, qword [rsp + 0x78]
test al, al
jne 0x5dedd0
lea rax, [0x0068a0c0]
mov rbx, qword [rsp + 0x218]
mov rcx, qword [rsp + 0x130]
mov rdi, qword [rsp + 0xa8]
call sym.runtime.mapassign_faststr
mov rdx, qword [rsp + 0x78]
mov qword [rax + 8], rdx
cmp dword [0x0098c4d0], 0
jne 0x5dedb4
mov rdx, qword [rsp + 0xf8]
jmp 0x5deb54
call sym.runtime.gcWriteBarrier2
mov rdx, qword [rsp + 0xf8]
mov qword [r11], rdx
mov rsi, qword [rax]
mov qword [r11 + 8], rsi
jmp 0x5deb54
lea rax, [0x006951a0]
call sym.runtime.newobject
mov qword [rax + 8], 0x1e
lea rcx, [0x006dc80b]
mov qword [rax], rcx
xor ebx, ebx
xor ecx, ecx
lea rdi, [0x00758260]
mov rsi, rax
xor eax, eax
add rsp, 0x238
pop rbp
ret
mov rax, rsi
mov rbx, r8
call sym.strings.TrimSpace
cmp rbx, 1
jne 0x5dee27
cmp byte [rax], 0x3b
jne 0x5dee27
mov rcx, qword [rsp + 0x150]
jmp 0x5dee58
mov rdi, qword [0x008f60a0]
mov rsi, qword [0x008f60a8]
mov rax, qword [rsp + 0x230]
mov rbx, qword [rsp + 0xf0]
xor ecx, ecx
add rsp, 0x238
pop rbp
ret
mov rcx, qword [rsp + 0x150]
movups xmmword [rsp + 0x158], xmm15
movups xmmword [rsp + 0x168], xmm15
lea rdi, [rsp + 0x1a0]
lea rdi, [rdi - 0x20]
nop word [rax + rax]
nop
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.0046c82b
mov rbp, qword [rbp]
lea rax, [0x0068b080]
mov rbx, rcx
lea rcx, [rsp + 0x1a0]
call sym.runtime.mapiterinit
jmp 0x5deeb9
lea rax, [rsp + 0x1a0]
call sym.runtime.mapiternext
mov rdx, qword [rsp + 0x1a0]
test rdx, rdx
je 0x5defe5
mov rbx, qword [rdx]
mov qword [rsp + 0x128], rbx
mov rcx, qword [rdx + 8]
mov qword [rsp + 0xa0], rcx
mov rdx, qword [rsp + 0x1a8]
mov rdx, qword [rdx]
mov qword [rsp + 0x120], rdx
lea rax, [rsp + 0x50]
lea rdi, [0x00754ec0]
mov esi, 1
call sym.runtime.concatstring2
mov rcx, rax
mov rdi, rbx
lea rax, [0x0068a0c0]
mov rbx, qword [rsp + 0x120]
nop
call sym.runtime.mapaccess2_faststr
test bl, bl
jne 0x5def53
mov qword [rsp + 0x158], 0
movups xmmword [rsp + 0x168], xmm15
mov qword [rsp + 0x160], 0
xor eax, eax
xor ecx, ecx
jmp 0x5df026
mov rcx, qword [rax]
mov rbx, qword [rax + 8]
mov rax, rcx
nop dword [rax]
call sym.mime.decode2231Enc
test cl, cl
je 0x5deeac
mov qword [rsp + 0x148], rax
mov qword [rsp + 0xc0], rbx
lea rax, [0x0068a0c0]
mov rbx, qword [rsp + 0x118]
mov rcx, qword [rsp + 0x128]
mov rdi, qword [rsp + 0xa0]
nop dword [rax]
call sym.runtime.mapassign_faststr
mov rdx, qword [rsp + 0xc0]
mov qword [rax + 8], rdx
cmp dword [0x0098c4d0], 0
jne 0x5defc4
mov rcx, qword [rsp + 0x148]
jmp 0x5defdb
call sym.runtime.gcWriteBarrier2
mov rcx, qword [rsp + 0x148]
mov qword [r11], rcx
mov rdx, qword [rax]
mov qword [r11 + 8], rdx
mov qword [rax], rcx
nop
jmp 0x5deeac
mov rax, qword [rsp + 0x230]
mov rbx, qword [rsp + 0xf0]
mov rcx, qword [rsp + 0x118]
mov rdi, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0x228]
add rsp, 0x238
pop rbp
ret
mov rax, qword [rsp + 0x98]
inc rax
mov ecx, 1
mov byte [rsp + 0x2f], cl
mov qword [rsp + 0x98], rax
movups xmmword [rsp + 0x180], xmm15
movups xmmword [rsp + 0x190], xmm15
mov rbx, qword [rsp + 0xa0]
mov rax, qword [rsp + 0x128]
call sym.runtime.convTstring
lea rcx, [0x0067b380]
mov qword [rsp + 0x180], rcx
mov qword [rsp + 0x188], rax
mov rax, qword [rsp + 0x98]
call sym.runtime.convT64
lea rcx, [0x0067b5c0]
mov qword [rsp + 0x190], rcx
mov qword [rsp + 0x198], rax
lea rax, [0x006d121b]
mov ebx, 5
mov edi, 2
mov rsi, rdi
lea rcx, [rsp + 0x180]
call sym.fmt.Sprintf
mov qword [rsp + 0x108], rax
mov qword [rsp + 0x88], rbx
mov rcx, rax
mov rdi, rbx
lea rax, [0x0068a0c0]
mov rbx, qword [rsp + 0x120]
call sym.runtime.mapaccess2_faststr
mov rdi, qword [rax + 8]
mov rcx, qword [rax]
test bl, bl
je 0x5df1e6
mov rdx, qword [rsp + 0x158]
nop
nop
test rdx, rdx
je 0x5df10f
lea r8, [rsp + 0x158]
cmp rdx, r8
je 0x5df11f
jmp 0x5df53a
lea rdx, [rsp + 0x158]
mov qword [rsp + 0x158], rdx
mov rdx, qword [rsp + 0x170]
mov r8, qword [rsp + 0x168]
lea rbx, [rdi + r8]
mov rax, qword [rsp + 0x160]
nop dword [rax + rax]
cmp rdx, rbx
jae 0x5df187
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x100], rcx
mov qword [rsp + 0xe0], r8
mov rcx, rdx
lea rsi, [0x0067b400]
call sym.runtime.growslice
mov rdi, qword [rsp + 0x80]
mov r8, qword [rsp + 0xe0]
mov rdx, rcx
mov rcx, qword [rsp + 0x100]
mov qword [rsp + 0xe0], rdx
mov qword [rsp + 0xd8], rbx
mov qword [rsp + 0x210], rax
lea rsi, [rax + r8]
mov rax, rsi
mov rbx, rcx
mov rcx, rdi
call sym.runtime.memmove
mov rdx, qword [rsp + 0xd8]
mov qword [rsp + 0x168], rdx
mov rdx, qword [rsp + 0xe0]
mov qword [rsp + 0x170], rdx
mov rdx, qword [rsp + 0x210]
mov qword [rsp + 0x160], rdx
jmp 0x5df016
lea rax, [rsp + 0x30]
mov rbx, qword [rsp + 0x108]
mov rcx, qword [rsp + 0x88]
lea rdi, [0x00754ec0]
mov esi, 1
call sym.runtime.concatstring2
mov rcx, rax
mov rdi, rbx
lea rax, [0x0068a0c0]
mov rbx, qword [rsp + 0x120]
call sym.runtime.mapaccess2_faststr
test bl, bl
je 0x5df46a
mov rcx, qword [rax]
mov rbx, qword [rax + 8]
mov rdx, qword [rsp + 0x98]
nop dword [rax]
test rdx, rdx
jne 0x5df35a
mov rax, rcx
call sym.mime.decode2231Enc
test cl, cl
je 0x5df016
mov rdx, qword [rsp + 0x158]
nop
test rdx, rdx
je 0x5df279
lea r8, [rsp + 0x158]
cmp rdx, r8
je 0x5df289
jmp 0x5df527
lea rdx, [rsp + 0x158]
mov qword [rsp + 0x158], rdx
mov rcx, qword [rsp + 0x170]
mov rdx, qword [rsp + 0x168]
lea r8, [rbx + rdx]
mov r9, qword [rsp + 0x160]
cmp rcx, r8
jae 0x5df2f5
mov qword [rsp + 0xe0], rdx
mov qword [rsp + 0x140], rax
mov qword [rsp + 0xb8], rbx
mov rax, r9
mov rdi, rbx
lea rsi, [0x0067b400]
mov rbx, r8
call sym.runtime.growslice
mov rdx, qword [rsp + 0xe0]
mov r9, rax
mov r8, rbx
mov rax, qword [rsp + 0x140]
mov rbx, qword [rsp + 0xb8]
mov qword [rsp + 0xe0], rcx
mov qword [rsp + 0xd8], r8
mov qword [rsp + 0x208], r9
add rdx, r9
mov rsi, rax
mov rax, rdx
mov rdi, rbx
mov rbx, rsi
mov rcx, rdi
nop
call sym.runtime.memmove
mov rdx, qword [rsp + 0xd8]
mov qword [rsp + 0x168], rdx
mov rdx, qword [rsp + 0xe0]
mov qword [rsp + 0x170], rdx
mov rdx, qword [rsp + 0x208]
mov qword [rsp + 0x160], rdx
jmp 0x5df016
mov rax, rcx
nop dword [rax]
call sym.mime.percentHexUnescape
mov rcx, qword [rsp + 0x158]
nop
test rcx, rcx
je 0x5df38a
lea rdx, [rsp + 0x158]
nop dword [rax + rax]
cmp rcx, rdx
je 0x5df39a
jmp 0x5df514
lea rdx, [rsp + 0x158]
mov qword [rsp + 0x158], rdx
mov rcx, qword [rsp + 0x170]
mov rdx, qword [rsp + 0x168]
lea r8, [rdx + rbx]
mov r9, qword [rsp + 0x160]
cmp rcx, r8
jae 0x5df406
mov qword [rsp + 0x138], rax
mov qword [rsp + 0xb0], rbx
mov qword [rsp + 0xe0], rdx
mov rax, r9
mov rdi, rbx
lea rsi, [0x0067b400]
mov rbx, r8
call sym.runtime.growslice
mov rdx, qword [rsp + 0xe0]
mov r9, rax
mov r8, rbx
mov rax, qword [rsp + 0x138]
mov rbx, qword [rsp + 0xb0]
mov qword [rsp + 0xe0], rcx
mov qword [rsp + 0xd8], r8
mov qword [rsp + 0x200], r9
add rdx, r9
mov rsi, rax
mov rax, rdx
mov rdi, rbx
mov rbx, rsi
mov rcx, rdi
call sym.runtime.memmove
mov rdx, qword [rsp + 0xd8]
mov qword [rsp + 0x168], rdx
mov rdx, qword [rsp + 0xe0]
mov qword [rsp + 0x170], rdx
mov rdx, qword [rsp + 0x200]
mov qword [rsp + 0x160], rdx
jmp 0x5df016
movzx edx, byte [rsp + 0x2f]
test dl, dl
je 0x5deeac
mov rdx, qword [rsp + 0x168]
mov rsi, qword [rsp + 0x160]
mov r8, rsi
neg rsi
cmp rdx, rsi
ja 0x5df505
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0x200], r8
lea rax, [0x0068a0c0]
mov rbx, qword [rsp + 0x118]
mov rcx, qword [rsp + 0x128]
mov rdi, qword [rsp + 0xa0]
nop
call sym.runtime.mapassign_faststr
mov rdx, qword [rsp + 0x70]
mov qword [rax + 8], rdx
cmp dword [0x0098c4d0], 0
jne 0x5df4e2
mov rcx, qword [rsp + 0x200]
nop
jmp 0x5df4f9
call sym.runtime.gcWriteBarrier2
mov rcx, qword [rsp + 0x200]
mov qword [r11], rcx
mov rdx, qword [rax]
mov qword [r11 + 8], rdx
mov qword [rax], rcx
nop dword [rax]
jmp 0x5deeac
test r8, r8
je 0x5df50f
call sym.runtime.panicunsafestringlen
call sym.runtime.panicunsafestringnilptr
lea rax, [0x0067b380]
lea rbx, [0x00756c90]
call sym.runtime.gopanic
lea rax, [0x0067b380]
lea rbx, [0x00756c90]
call sym.runtime.gopanic
lea rax, [0x0067b380]
lea rbx, [0x00756c90]
call sym.runtime.gopanic
mov rax, rcx
mov rcx, rdx
call sym.runtime.panicSliceB
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call sym.runtime.morestack_noctxt.abi0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp sym.mime.ParseMediaType