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

Disassembly:
lea r12, [rsp - 0x70]
cmp r12, qword [r14 + 0x10]
jbe 0x5dca6e
push rbp
mov rbp, rsp
sub rsp, 0xe8
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0x100], rbx
mov qword [rsp + 0x108], rcx
call sym.net_textproto._Reader_.upcomingHeaderKeys
test rax, rax
jg 0x5dc402
xor ecx, ecx
xor edx, edx
jmp 0x5dc433
cmp rax, 0x3e8
mov edx, 0x3e8
cmovg rax, rdx
mov qword [rsp + 0x78], rax
mov rbx, rax
mov rcx, rbx
lea rax, [0x0067b380]
call sym.runtime.makeslice
mov rcx, qword [rsp + 0x78]
mov rdx, rax
mov rax, rcx
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0xb8], rdx
mov rbx, rax
lea rax, [0x006ad9c0]
xor ecx, ecx
call sym.runtime.makemap
mov qword [rsp + 0xe0], rax
mov rdx, qword [rsp + 0xf8]
mov rsi, qword [rdx]
mov ebx, 1
mov rax, rsi
call sym.bufio._Reader_.Peek
test rdi, rdi
jne 0x5dc4f5
test rbx, rbx
jbe 0x5dca63
movzx edx, byte [rax]
cmp dl, 0x20
je 0x5dc48c
cmp dl, 9
jne 0x5dc4f5
mov rax, qword [rsp + 0xf8]
mov ebx, 0x50
call sym.net_textproto._Reader_.readLineSlice
nop
test rdi, rdi
je 0x5dc4bc
mov rax, qword [rsp + 0xe0]
mov rbx, rdi
mov rcx, rsi
add rsp, 0xe8
pop rbp
ret
mov ecx, 0x24
mov rdi, rax
mov rsi, rbx
xor eax, eax
lea rbx, [0x006dfef9]
call sym.runtime.concatstring2
call sym.runtime.convTstring
lea rbx, [0x00758da0]
mov rcx, rax
mov rax, qword [rsp + 0xe0]
add rsp, 0xe8
pop rbp
ret
mov rsi, qword [rsp + 0x100]
add rsi, 0xfffffffffffffe70
mov rax, qword [rsp + 0x108]
mov rcx, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0x60]
jmp 0x5dc524
mov rsi, rdx
mov rdx, rax
mov rax, rbx
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0xb8], rcx
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0x98], rsi
mov rbx, rsi
mov rax, qword [rsp + 0xf8]
lea rcx, sym.net_textproto.mustHaveFieldNameColon
call sym.net_textproto._Reader_.readContinuedLineSlice
nop dword [rax + rax]
test rbx, rbx
je 0x5dc965
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xd0], rsi
mov qword [rsp + 0x80], rdi
mov rdi, qword [0x008f81b0]
mov rsi, qword [0x008f81b8]
mov r8, qword [0x008f81c0]
nop dword [rax + rax]
call sym.bytes.Cut
test r9b, r9b
je 0x5dc921
mov qword [rsp + 0x50], r8
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0xb0], rdi
call sym.net_textproto.canonicalMIMEHeaderKey
test cl, cl
je 0x5dc8de
mov rdx, qword [rsp + 0xb0]
mov r8, qword [rsp + 0x48]
xor ecx, ecx
nop dword [rax]
jmp 0x5dc980
test rbx, rbx
jne 0x5dc60c
mov rdx, qword [rsp + 0x98]
mov rbx, qword [rsp + 0xa0]
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0xb8]
jmp 0x5dc51b
mov r9, qword [rsp + 0xa0]
dec r9
nop word [rax + rax]
test r9, r9
jl 0x5dca4a
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0xa0], r9
mov rax, rdx
mov rbx, r8
mov rcx, qword [rsp + 0x50]
lea rdi, [0x006d0bf4]
mov esi, 2
call sym.bytes.TrimLeft
mov rcx, rbx
mov rbx, rax
xor eax, eax
call sym.runtime.slicebytetostring
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0xa8], rax
mov rcx, qword [rsp + 0xc8]
mov rdi, qword [rsp + 0x70]
lea rax, [0x006ad9c0]
mov rbx, qword [rsp + 0xe0]
call sym.runtime.mapaccess1_faststr
mov rdx, qword [rax]
mov r8, qword [rsp + 0x98]
mov rdi, qword [rsp + 0x70]
mov r9, r8
sub r8, rdi
add r8, 0xffffffffffffff38
test rdx, rdx
cmovne r8, r9
mov r9, qword [rsp + 0x40]
sub r8, r9
test r8, r8
jl 0x5dca2b
mov qword [rsp + 0x98], r8
test rdx, rdx
je 0x5dc6e5
mov r10, qword [rsp + 0x60]
nop dword [rax]
jmp 0x5dc7b5
mov r10, qword [rsp + 0x60]
test r10, r10
je 0x5dc7b5
mov rdx, qword [rsp + 0xb8]
mov qword [rdx + 8], r9
lea rsi, [r10 - 1]
mov qword [rsp + 0x58], rsi
neg rsi
sar rsi, 0x3f
and esi, 0x10
add rsi, rdx
mov qword [rsp + 0xd8], rsi
cmp dword [0x0098c4d0], 0
jne 0x5dc730
mov r10, qword [rsp + 0xa8]
jmp 0x5dc747
call sym.runtime.gcWriteBarrier2
mov r10, qword [rsp + 0xa8]
mov qword [r11], r10
mov r12, qword [rdx]
mov qword [r11 + 8], r12
mov qword [rdx], r10
lea rax, [0x006ad9c0]
mov rbx, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0xc8]
call sym.runtime.mapassign_faststr
mov qword [rax + 8], 1
mov qword [rax + 0x10], 1
cmp dword [0x0098c4d0], 0
jne 0x5dc789
mov rdx, qword [rsp + 0xb8]
jmp 0x5dc7a0
call sym.runtime.gcWriteBarrier2
mov rdx, qword [rsp + 0xb8]
mov qword [r11], rdx
mov rsi, qword [rax]
mov qword [r11 + 8], rsi
mov qword [rax], rdx
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0xd8]
jmp 0x5dc8b7
mov rcx, qword [rax + 0x10]
mov rbx, qword [rax + 8]
inc rbx
cmp rcx, rbx
jae 0x5dc7f3
mov rax, rdx
mov edi, 1
lea rsi, [0x0067b380]
call sym.runtime.growslice
mov rdi, qword [rsp + 0x70]
mov r8, qword [rsp + 0x98]
mov r9, qword [rsp + 0x40]
mov r10, qword [rsp + 0x60]
mov rdx, rax
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x88], rcx
lea rsi, [rbx - 1]
shl rsi, 4
mov qword [rdx + rsi + 8], r9
cmp dword [0x0098c4d0], 0
jne 0x5dc823
mov r9, qword [rsp + 0xa8]
jmp 0x5dc83b
call sym.runtime.gcWriteBarrier2
mov r9, qword [rsp + 0xa8]
mov qword [r11], r9
mov r12, qword [rdx + rsi]
mov qword [r11 + 8], r12
mov qword [rsp + 0xd8], rdx
mov qword [rdx + rsi], r9
lea rax, [0x006ad9c0]
mov rbx, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0xc8]
nop
call sym.runtime.mapassign_faststr
mov rdx, qword [rsp + 0x90]
mov qword [rax + 8], rdx
mov rdx, qword [rsp + 0x88]
mov qword [rax + 0x10], rdx
cmp dword [0x0098c4d0], 0
jne 0x5dc890
mov rdx, qword [rsp + 0xd8]
jmp 0x5dc8a7
call sym.runtime.gcWriteBarrier2
mov rdx, qword [rsp + 0xd8]
mov qword [r11], rdx
mov rsi, qword [rax]
mov qword [r11 + 8], rsi
mov qword [rax], rdx
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0x80]
nop
test rbx, rbx
jne 0x5dca12
mov rdx, qword [rsp + 0x98]
mov rbx, qword [rsp + 0xa0]
jmp 0x5dc51b
xor eax, eax
lea rbx, [0x006db4e1]
mov ecx, 0x1c
mov rdi, qword [rsp + 0xc0]
mov rsi, qword [rsp + 0x68]
call sym.runtime.concatstring2
nop
call sym.runtime.convTstring
lea rbx, [0x00758da0]
mov rcx, rax
mov rax, qword [rsp + 0xe0]
add rsp, 0xe8
pop rbp
nop
ret
xor eax, eax
lea rbx, [0x006db4e1]
mov ecx, 0x1c
mov rdi, qword [rsp + 0xc0]
mov rsi, qword [rsp + 0x68]
nop dword [rax]
call sym.runtime.concatstring2
call sym.runtime.convTstring
lea rbx, [0x00758da0]
mov rcx, rax
mov rax, qword [rsp + 0xe0]
add rsp, 0xe8
pop rbp
ret
mov rax, qword [rsp + 0xe0]
mov rbx, rdi
mov rcx, rsi
add rsp, 0xe8
pop rbp
ret
lea rcx, [rsi + 1]
cmp r8, rcx
jle 0x5dc5e5
movzx r9d, byte [rdx + rcx]
mov rsi, rcx
mov ecx, r9d
mov r10d, 1
shl r10, cl
lea r11d, [rcx - 0x40]
cmp cl, 0x40
sbb r9, r9
and r9, r10
mov r12d, 0xfffffdff
and r9, r12
cmp r11b, 0x40
sbb r11, r11
and r11, r10
movabs r10, 0x8000000000000000
and r11, r10
or r9, r11
test r9, r9
je 0x5dc97c
xor eax, eax
lea rbx, [0x006db4e1]
mov ecx, 0x1c
mov rdi, qword [rsp + 0xc0]
mov rsi, qword [rsp + 0x68]
call sym.runtime.concatstring2
call sym.runtime.convTstring
lea rbx, [0x00758da0]
mov rcx, rax
mov rax, qword [rsp + 0xe0]
add rsp, 0xe8
pop rbp
ret
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0xd0]
add rsp, 0xe8
pop rbp
ret
mov rbx, qword [0x008f6080]
mov rcx, qword [0x008f6088]
mov rax, qword [rsp + 0xe0]
add rsp, 0xe8
pop rbp
ret
mov rbx, qword [0x008f6080]
mov rcx, qword [0x008f6088]
xor eax, eax
add rsp, 0xe8
pop rbp
ret
xor eax, eax
mov rcx, rax
call sym.runtime.panicIndex
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
nop dword [rax]
call sym.runtime.morestack_noctxt.abi0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
jmp sym.net_textproto.readMIMEHeader