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

Disassembly:
lea r12, [rsp - 0x1a0]
cmp r12, qword [r14 + 0x10]
jbe 0x6273a6
push rbp
mov rbp, rsp
sub rsp, 0x218
mov qword [rsp + 0x228], rax
mov qword [rsp + 0x230], rbx
test byte [rax], al
movups xmmword [rsp + 0x178], xmm15
lea rdx, [sym.net_http._Transport_.onceSetNextProtoDefaults_fm]
mov qword [rsp + 0x178], rdx
mov qword [rsp + 0x180], rax
mov edx, dword [rax + 0x118]
test edx, edx
jne 0x6266c0
lea rcx, [rax + 0x118]
lea rbx, [rsp + 0x178]
mov rax, rcx
call sym.sync._Once_.doSlow
mov rax, qword [rsp + 0x228]
mov rbx, qword [rsp + 0x230]
mov rdx, qword [rbx + 0xe8]
test rdx, rdx
je 0x6266d5
mov rsi, qword [rbx + 0xf0]
jmp 0x6266e3
lea rdx, [0x0075a050]
lea rsi, [0x0098c060]
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x48], rdx
mov rdi, qword [rdx + 0x30]
nop
mov rax, rsi
lea rbx, [0x0068c3e0]
lea rcx, [0x0098c060]
call rdi
lea rdx, [0x00690aa0]
cmp rax, rdx
je 0x626713
xor ebx, ebx
mov rdx, qword [rsp + 0x230]
mov rsi, qword [rdx + 0x10]
nop
test rsi, rsi
je 0x626816
mov r8, qword [rdx + 0x38]
test r8, r8
je 0x6267cf
mov r9, qword [rsi + 8]
mov rsi, qword [rsi]
nop dword [rax]
cmp r9, 4
jne 0x626756
cmp dword [rsi], 0x70747468
jne 0x626756
mov r10d, 1
jmp 0x626771
cmp r9, 5
jne 0x62676e
cmp dword [rsi], 0x70747468
jne 0x62676e
cmp byte [rsi + 4], 0x73
sete r10b
jmp 0x626771
xor r10d, r10d
mov qword [rsp + 0x98], rbx
mov qword [rsp + 0x58], r9
mov qword [rsp + 0xa0], rsi
mov byte [rsp + 0x47], r10b
test r10b, r10b
je 0x626862
lea rdi, [rsp + 0x1b8]
lea rdi, [rdi - 0x20]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.0046c82b
mov rbp, qword [rbp]
lea rax, [0x006bd880]
mov rbx, r8
lea rcx, [rsp + 0x1b8]
call sym.runtime.mapiterinit
jmp 0x627138
mov rcx, qword [rdx + 0x40]
nop
test rcx, rcx
je 0x6267e3
mov rax, qword [rdx + 0x48]
mov rcx, qword [rcx + 0x18]
call rcx
lea rax, [0x006951a0]
call sym.runtime.newobject
mov qword [rax + 8], 0x18
lea rcx, [0x006d8b4c]
mov qword [rax], rcx
lea rbx, [0x00758260]
mov rcx, rax
xor eax, eax
add rsp, 0x218
pop rbp
ret
mov rcx, qword [rdx + 0x40]
nop
nop dword [rax + rax]
test rcx, rcx
je 0x62682f
mov rax, qword [rdx + 0x48]
mov rcx, qword [rcx + 0x18]
call rcx
lea rax, [0x006951a0]
call sym.runtime.newobject
mov qword [rax + 8], 0x15
lea rcx, [0x006d6ca0]
mov qword [rax], rcx
lea rbx, [0x00758260]
mov rcx, rax
xor eax, eax
add rsp, 0x218
pop rbp
ret
mov rax, qword [rdx + 0x40]
test rax, rax
je 0x626999
lea rdi, [0x00759448]
cmp rax, rdi
je 0x62687f
xor eax, eax
jmp 0x6268b2
mov rbx, qword [rdx + 0x48]
lea rcx, [0x0098c060]
call sym.runtime.ifaceeq
mov rdx, qword [rsp + 0x230]
mov rbx, qword [rsp + 0x98]
mov rsi, qword [rsp + 0xa0]
mov r9, qword [rsp + 0x58]
movzx r10d, byte [rsp + 0x47]
test al, al
jne 0x626999
lea rax, [0x006c96e0]
call sym.runtime.newobject
mov qword [rsp + 0x80], rax
cmp dword [0x0098c4d0], 0
je 0x6268f6
mov rbx, rax
mov rcx, qword [rsp + 0x230]
lea rax, [0x006c96e0]
call sym.runtime.wbMove
mov rax, qword [rsp + 0x80]
mov rdi, rax
mov rsi, qword [rsp + 0x230]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.0046cae4
mov rbp, qword [rbp]
lea rax, [0x006a5500]
nop dword [rax + rax]
call sym.runtime.newobject
mov qword [rax], 0
mov byte [rax + 0x10], 0
mov byte [rax + 0x11], 0
mov qword [rax + 8], 0
mov rcx, qword [rsp + 0x230]
mov rdx, qword [rcx + 0x40]
mov rbx, qword [rcx + 0x48]
mov qword [rax], rdx
cmp dword [0x0098c4d0], 0
jne 0x626962
mov rdx, qword [rsp + 0x80]
jmp 0x626986
call sym.runtime.gcWriteBarrier4
mov qword [r11], rbx
mov rdx, qword [rax + 8]
mov qword [r11 + 8], rdx
mov qword [r11 + 0x10], rax
mov rdx, qword [rsp + 0x80]
mov rsi, qword [rdx + 0x48]
mov qword [r11 + 0x18], rsi
mov qword [rax + 8], rbx
lea rsi, [0x00759470]
mov qword [rdx + 0x40], rsi
mov qword [rdx + 0x48], rax
mov qword [rsp + 0x80], rdx
mov rax, qword [rsp + 0x228]
mov rbx, rdx
call sym.net_http._Transport_.alternateRoundTripper
test rax, rax
jne 0x6269cb
movzx esi, byte [rsp + 0x47]
test sil, sil
mov rax, qword [rsp + 0x80]
jmp 0x626a56
mov rcx, qword [rax + 0x18]
mov rax, rbx
mov rbx, qword [rsp + 0x80]
call rcx
nop dword [rax]
cmp qword [0x008f5600], rbx
jne 0x626a2c
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0xd8], rcx
mov qword [rsp + 0x70], rbx
mov rdx, qword [0x008f5608]
mov rax, rbx
mov rbx, rcx
mov rcx, rdx
call sym.runtime.ifaceeq
test al, al
jne 0x626a35
mov rax, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0xd8]
mov rbx, qword [rsp + 0x70]
add rsp, 0x218
pop rbp
ret
mov rax, qword [rsp + 0x80]
nop dword [rax]
call sym.net_http.rewindBody
test rbx, rbx
jne 0x626c1a
movzx esi, byte [rsp + 0x47]
test sil, sil
je 0x626b72
mov qword [rsp + 0xb8], rax
mov rbx, qword [rax + 8]
test rbx, rbx
jne 0x626a71
xor edx, edx
jmp 0x626a94
mov rdx, qword [rax]
lea rcx, sym.net_http.isNotToken
mov rax, rdx
nop
call sym.strings.IndexFunc
cmp rax, 0xffffffffffffffff
setne dl
mov rax, qword [rsp + 0xb8]
test dl, dl
je 0x626b1c
mov rcx, qword [rax + 0x40]
nop
test rcx, rcx
je 0x626abb
mov rdx, qword [rax + 0x48]
mov rcx, qword [rcx + 0x18]
mov rax, rdx
call rcx
mov rax, qword [rsp + 0xb8]
movups xmmword [rsp + 0x1a8], xmm15
mov rcx, qword [rax]
mov rbx, qword [rax + 8]
mov rax, rcx
call sym.runtime.convTstring
lea rcx, [0x0067b380]
mov qword [rsp + 0x1a8], rcx
mov qword [rsp + 0x1b0], rax
lea rax, [0x006da9ef]
mov ebx, 0x1b
lea rcx, [rsp + 0x1a8]
mov edi, 1
mov rsi, rdi
call sym.fmt.Errorf
mov rcx, rbx
mov rbx, rax
xor eax, eax
add rsp, 0x218
pop rbp
ret
mov rcx, qword [rax + 0x10]
cmp qword [rcx + 0x30], 0
jne 0x626c25
mov rcx, qword [rax + 0x40]
nop
test rcx, rcx
je 0x626b3f
mov rax, qword [rax + 0x48]
mov rcx, qword [rcx + 0x18]
call rcx
lea rax, [0x006951a0]
call sym.runtime.newobject
mov qword [rax + 8], 0x1c
lea rcx, [0x006db375]
mov qword [rax], rcx
lea rbx, [0x00758260]
mov rcx, rax
xor eax, eax
add rsp, 0x218
pop rbp
ret
mov rcx, qword [rax + 0x40]
test rcx, rcx
je 0x626b85
mov rax, qword [rax + 0x48]
mov rcx, qword [rcx + 0x18]
call rcx
movups xmmword [rsp + 0x188], xmm15
movups xmmword [rsp + 0x198], xmm15
lea rax, [0x006daa0a]
mov ebx, 0x1b
call sym.runtime.convTstring
lea rcx, [0x0067b380]
mov qword [rsp + 0x188], rcx
mov qword [rsp + 0x190], rax
mov rax, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0x58]
call sym.runtime.convTstring
lea rcx, [0x0067b380]
mov qword [rsp + 0x198], rcx
mov qword [rsp + 0x1a0], rax
lea rax, [0x006d1199]
mov ebx, 5
lea rcx, [rsp + 0x188]
mov edi, 2
mov rsi, rdi
call sym.fmt.Errorf
mov rcx, rbx
mov rbx, rax
xor eax, eax
add rsp, 0x218
pop rbp
ret
xor eax, eax
add rsp, 0x218
pop rbp
ret
mov qword [rsp + 0xb0], rax
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rcx + 0x20]
mov rax, qword [rsp + 0x78]
call rdx
mov rbx, rax
xor eax, eax
call sym.runtime.selectnbrecv
test al, al
jne 0x626fe8
lea rax, [0x006cab40]
call sym.runtime.newobject
cmp dword [0x0098c4d0], 0
jne 0x626c80
mov rcx, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0x98]
mov rsi, qword [rsp + 0x230]
jmp 0x626ca8
call sym.runtime.gcWriteBarrier3
mov rcx, qword [rsp + 0xb0]
mov qword [r11], rcx
mov rdx, qword [rsp + 0x98]
mov qword [r11 + 8], rdx
mov rsi, qword [rsp + 0x230]
mov qword [r11 + 0x10], rsi
mov qword [rsp + 0x90], rax
mov qword [rax], rcx
mov qword [rax + 0x10], rdx
mov qword [rax + 0x18], rsi
mov rbx, rax
mov rax, qword [rsp + 0x228]
call sym.net_http._Transport_.connectMethodForRequest
mov qword [rsp + 0x110], rax
mov qword [rsp + 0x118], rbx
mov qword [rsp + 0x120], rcx
mov qword [rsp + 0x128], rdi
mov qword [rsp + 0x130], rsi
mov byte [rsp + 0x138], r8b
movups xmm0, xmmword [rsp + 0x110]
movups xmmword [rsp + 0xe0], xmm0
movups xmm0, xmmword [rsp + 0x120]
movups xmmword [rsp + 0xf0], xmm0
movups xmm0, xmmword [rsp + 0x130]
movups xmmword [rsp + 0x100], xmm0
test r9, r9
jne 0x626fa1
mov rcx, qword [rsp + 0xe0]
mov rdi, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0xf0]
mov r8, qword [rsp + 0xf8]
mov r9, qword [rsp + 0x100]
movzx r10d, byte [rsp + 0x108]
mov rax, qword [rsp + 0x228]
mov rbx, qword [rsp + 0x90]
call sym.net_http._Transport_.getConn
nop word [rax + rax]
test rbx, rbx
jne 0x626f49
mov qword [rsp + 0xc0], rax
cmp qword [rax], 0
je 0x626dcd
mov rax, qword [rsp + 0x228]
mov rbx, qword [rsp + 0x230]
xor ecx, ecx
call sym.net_http._Transport_.setReqCanceler
mov rdx, qword [rsp + 0xc0]
mov rax, qword [rdx + 8]
mov rsi, qword [rdx]
mov rsi, qword [rsi + 0x18]
mov rbx, qword [rsp + 0xb0]
call rsi
jmp 0x626de0
mov rbx, qword [rsp + 0x90]
call sym.net_http._persistConn_.roundTrip
nop word [rax + rax]
test rbx, rbx
je 0x626f05
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0xd0], rcx
je 0x626e0f
mov rdx, qword [rbx + 8]
mov rsi, qword [0x008f78f0]
mov r8, qword [rsi]
mov r9d, dword [rbx + 0x10]
jmp 0x6270da
mov rax, rbx
test rbx, rbx
je 0x626eb8
mov rax, qword [rsp + 0x228]
mov rbx, qword [rsp + 0xc0]
call sym.net_http._Transport_.removeIdleConn
test al, al
je 0x626edb
mov rdx, qword [rsp + 0xc0]
mov r11, qword [rdx + 0x18]
mov qword [rsp + 0x140], r11
movups xmm0, xmmword [rdx + 0x20]
movups xmmword [rsp + 0x148], xmm0
movups xmm0, xmmword [rdx + 0x30]
movups xmmword [rsp + 0x158], xmm0
movups xmm0, xmmword [rdx + 0x40]
movups xmmword [rsp + 0x168], xmm0
mov rbx, qword [rsp + 0x140]
mov rcx, qword [rsp + 0x148]
mov rdi, qword [rsp + 0x150]
mov rsi, qword [rsp + 0x158]
mov r8, qword [rsp + 0x160]
mov r9, qword [rsp + 0x168]
movzx r10d, byte [rsp + 0x170]
mov rax, qword [rsp + 0x228]
call sym.net_http._Transport_.decConnsPerHost
jmp 0x626edb
mov rbx, qword [rsp + 0xb0]
mov rdi, rcx
mov rcx, rax
mov rax, qword [rsp + 0xc0]
call sym.net_http._persistConn_.shouldRetryRequest
test al, al
je 0x62702f
mov rdx, qword [0x008f4bc0]
mov rax, qword [rdx]
call rax
mov rax, qword [rsp + 0xb0]
call sym.net_http.rewindBody
test rbx, rbx
je 0x626c25
nop dword [rax]
jmp 0x627024
test byte [rax], al
cmp dword [0x0098c4d0], 0
jne 0x626f1a
mov rdx, qword [rsp + 0x230]
jmp 0x626f35
call sym.runtime.gcWriteBarrier2
mov rdx, qword [rsp + 0x230]
mov qword [r11], rdx
mov rsi, qword [rax + 0x80]
mov qword [r11 + 8], rsi
mov qword [rax + 0x80], rdx
xor ebx, ebx
xor ecx, ecx
add rsp, 0x218
pop rbp
ret
mov qword [rsp + 0xd0], rcx
mov qword [rsp + 0x68], rbx
mov rax, qword [rsp + 0x228]
mov rbx, qword [rsp + 0x230]
xor ecx, ecx
call sym.net_http._Transport_.setReqCanceler
mov rdx, qword [rsp + 0xb0]
mov rsi, qword [rdx + 0x40]
nop
test rsi, rsi
je 0x626f89
mov rax, qword [rdx + 0x48]
mov rcx, qword [rsi + 0x18]
call rcx
xor eax, eax
mov rbx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0xd0]
add rsp, 0x218
pop rbp
ret
mov rdx, qword [rsp + 0xb0]
mov rsi, qword [rdx + 0x40]
nop
test rsi, rsi
je 0x626fd7
mov qword [rsp + 0xd0], r10
mov qword [rsp + 0x68], r9
mov rax, qword [rdx + 0x48]
mov rcx, qword [rsi + 0x18]
call rcx
mov r9, qword [rsp + 0x68]
mov r10, qword [rsp + 0xd0]
xor eax, eax
mov rbx, r9
mov rcx, r10
add rsp, 0x218
pop rbp
ret
mov rcx, qword [rsp + 0xb0]
mov rdx, qword [rcx + 0x40]
test rdx, rdx
je 0x627003
mov rax, qword [rcx + 0x48]
mov rcx, qword [rdx + 0x18]
call rcx
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x28]
mov rax, qword [rsp + 0x78]
call rcx
mov rcx, rbx
mov rbx, rax
xor eax, eax
add rsp, 0x218
pop rbp
ret
xor eax, eax
add rsp, 0x218
pop rbp
ret
mov rdx, qword [rsp + 0x68]
lea rsi, [0x00758960]
nop dword [rax + rax]
cmp rdx, rsi
jne 0x627056
mov rdx, qword [rsp + 0xd0]
mov rbx, qword [rdx]
mov rcx, qword [rdx + 8]
jmp 0x627061
mov rbx, rdx
mov rcx, qword [rsp + 0xd0]
lea rdx, [0x00758980]
cmp rbx, rdx
jne 0x627074
mov rbx, qword [rcx]
mov rcx, qword [rcx + 8]
mov rdx, qword [rsp + 0xb0]
mov rsi, qword [rdx + 0x40]
mov rax, qword [rdx + 0x48]
lea rdx, [0x00759470]
cmp rsi, rdx
jne 0x627095
mov rdx, rax
jmp 0x62709d
mov rdx, rax
mov eax, 0
jne 0x6270cf
cmp byte [rax + 0x11], 0
jne 0x6270cf
nop
test rsi, rsi
je 0x6270cf
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0xd0], rcx
mov rcx, qword [rsi + 0x18]
mov rax, rdx
nop
call rcx
mov rcx, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0x68]
xor eax, eax
add rsp, 0x218
pop rbp
ret
mov r10, r9
and r9, r8
shl r9, 4
mov r11, qword [r9 + rsi + 8]
cmp r11, rdx
je 0x62711b
lea r9, [r10 + 1]
test r11, r11
jne 0x6270da
lea rax, [0x008f78f0]
mov rbx, rdx
call sym.runtime.typeAssert
mov rcx, qword [rsp + 0xd0]
mov rbx, rax
mov rax, qword [rsp + 0x68]
jmp 0x626e12
mov rdx, qword [r9 + rsi + 0x10]
mov rax, rbx
mov rbx, rdx
jmp 0x626e12
lea rax, [rsp + 0x1b8]
call sym.runtime.mapiternext
mov rdx, qword [rsp + 0x1b8]
test rdx, rdx
je 0x6271ad
mov rbx, qword [rdx + 8]
mov qword [rsp + 0x60], rbx
mov rsi, qword [rsp + 0x1c0]
mov rax, qword [rdx]
mov qword [rsp + 0xc8], rax
mov rdx, qword [rsi]
mov rsi, qword [rsi + 8]
test rbx, rbx
jne 0x627178
lea r9, [0x008d02e0]
xor ecx, ecx
jmp 0x6271a0
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x88], rdx
xor ecx, ecx
jmp 0x6271d8
lea r9, [0x008d02e0]
xor ecx, ecx
jmp 0x6271a0
lea r9, [0x008d02e0]
mov ecx, 1
test cl, cl
je 0x62724a
jmp 0x6272d5
mov rdx, qword [rsp + 0x230]
mov rbx, qword [rsp + 0x98]
mov rsi, qword [rsp + 0xa0]
mov r9, qword [rsp + 0x58]
movzx r10d, byte [rsp + 0x47]
jmp 0x626862
mov rcx, r8
cmp rcx, rbx
jge 0x627194
movzx edi, byte [rax + rcx]
cmp edi, 0x80
jge 0x6271ef
lea r8, [rcx + 1]
jmp 0x627213
call sym.runtime.decoderune
mov rdx, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x50]
mov edi, eax
mov r8, rbx
mov rax, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0x60]
movsxd rdi, edi
nop word [rax + rax]
nop
cmp rdi, 0x7f
jge 0x627189
jae 0x627398
lea r9, [0x008d02e0]
movzx edi, byte [r9 + rdi]
nop dword [rax]
test dil, dil
jne 0x6271d5
jmp 0x627190
mov rcx, qword [rsp + 0x230]
mov rdx, qword [rcx + 0x40]
nop
test rdx, rdx
je 0x627273
mov rax, qword [rcx + 0x48]
mov rcx, qword [rdx + 0x18]
call rcx
mov rax, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0x60]
movups xmmword [rsp + 0x1a8], xmm15
nop dword [rax]
call sym.runtime.convTstring
lea rcx, [0x0067b380]
mov qword [rsp + 0x1a8], rcx
mov qword [rsp + 0x1b0], rax
lea rax, [0x006e0f25]
mov ebx, 0x26
lea rcx, [rsp + 0x1a8]
mov edi, 1
mov rsi, rdi
call sym.fmt.Errorf
mov rcx, rbx
mov rbx, rax
xor eax, eax
add rsp, 0x218
pop rbp
ret
lea rdx, [rcx + 0x10]
dec rsi
test rsi, rsi
jle 0x62712b
mov rcx, rdx
mov rdi, qword [rdx]
mov rdx, qword [rdx + 8]
xor r8d, r8d
jmp 0x6272f0
inc r8
cmp r8, rdx
jge 0x6272ce
movzx r10d, byte [r8 + rdi]
nop word [rax + rax]
cmp r10b, 0x20
jb 0x627310
cmp r10b, 0x7f
jne 0x6272ed
cmp r10b, 0x20
je 0x6272ed
cmp r10b, 9
je 0x6272ed
mov rcx, qword [rsp + 0x230]
mov rdx, qword [rcx + 0x40]
nop
test rdx, rdx
je 0x627341
mov rax, qword [rcx + 0x48]
mov rcx, qword [rdx + 0x18]
call rcx
mov rax, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0x60]
movups xmmword [rsp + 0x1a8], xmm15
call sym.runtime.convTstring
lea rcx, [0x0067b380]
mov qword [rsp + 0x1a8], rcx
mov qword [rsp + 0x1b0], rax
lea rax, [0x006e3886]
mov ebx, 0x2b
lea rcx, [rsp + 0x1a8]
mov edi, 1
mov rsi, rdi
call sym.fmt.Errorf
mov rcx, rbx
mov rbx, rax
xor eax, eax
add rsp, 0x218
pop rbp
ret
mov rax, rdi
mov ecx, 0x7f
call sym.runtime.panicIndex
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]
nop
jmp sym.net_http._Transport_.roundTrip