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

Disassembly:
lea r12, [rsp - 0x78]
cmp r12, qword [r14 + 0x10]
jbe 0x61cd65
push rbp
mov rbp, rsp
sub rsp, 0xf0
mov qword [rsp + 0x110], rcx
mov qword [rsp + 0x120], rsi
mov qword [rsp + 0x138], r10
mov qword [rsp + 0x130], r9
mov qword [rsp + 0x108], rbx
mov qword [rsp + 0x100], rax
test rdi, rdi
mov edx, 3
cmove rdi, rdx
mov qword [rsp + 0x30], rdi
lea rdx, [0x006d0c3e]
cmove rcx, rdx
mov qword [rsp + 0x98], rcx
test rdi, rdi
jne 0x61c5d7
xor edx, edx
jmp 0x61c63d
mov qword [rsp + 0x128], r8
mov qword [rsp + 0x120], rsi
mov rax, rcx
mov rbx, rdi
lea rcx, sym.net_http.isNotToken
call sym.strings.IndexFunc
cmp rax, 0xffffffffffffffff
sete dl
mov rax, qword [rsp + 0x100]
mov rcx, qword [rsp + 0x98]
mov rbx, qword [rsp + 0x108]
mov rsi, qword [rsp + 0x120]
mov rdi, qword [rsp + 0x30]
mov r8, qword [rsp + 0x128]
mov r9, qword [rsp + 0x130]
mov r10, qword [rsp + 0x138]
nop dword [rax]
test dl, dl
je 0x61c6cc
test rax, rax
je 0x61c698
mov rax, rsi
mov rbx, r8
call sym.net_url.Parse
test rbx, rbx
jne 0x61c68d
mov qword [rsp + 0x58], rax
mov rcx, qword [rsp + 0x130]
test rcx, rcx
je 0x61c685
mov rbx, qword [rcx + 8]
mov rdx, qword [0x008f7670]
mov rsi, qword [rdx]
mov edi, dword [rcx + 0x10]
jmp 0x61cd16
mov rdx, rcx
jmp 0x61c72e
xor eax, eax
add rsp, 0xf0
pop rbp
ret
lea rax, [0x006951a0]
nop
call sym.runtime.newobject
mov qword [rax + 8], 0x15
lea rcx, [0x006d6d09]
mov qword [rax], rcx
lea rbx, [0x00758260]
mov rcx, rax
xor eax, eax
add rsp, 0xf0
pop rbp
ret
movups xmmword [rsp + 0xe0], xmm15
mov rax, rcx
mov rbx, rdi
nop dword [rax + rax]
call sym.runtime.convTstring
lea rcx, [0x0067b380]
mov qword [rsp + 0xe0], rcx
mov qword [rsp + 0xe8], rax
lea rax, [0x006da9ef]
mov ebx, 0x1b
lea rcx, [rsp + 0xe0]
mov edi, 1
mov rsi, rdi
call sym.fmt.Errorf
mov rcx, rbx
mov rbx, rax
xor eax, eax
add rsp, 0xf0
pop rbp
ret
test rcx, rcx
jne 0x61c762
test rdx, rdx
je 0x61c758
je 0x61c750
mov rbx, qword [rdx + 8]
mov rcx, qword [0x008f7690]
mov rsi, qword [rcx]
mov edi, dword [rdx + 0x10]
jmp 0x61ccc5
mov rcx, rdx
jmp 0x61cc37
mov rbx, qword [rsp + 0x138]
jmp 0x61c76a
mov rbx, qword [rsp + 0x138]
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x28], rcx
mov rdx, qword [rax + 0x28]
mov rsi, qword [rax + 0x30]
mov rax, rdx
mov rbx, rsi
call sym.net_http.removeEmptyPort
mov rcx, qword [rsp + 0x58]
mov qword [rcx + 0x30], rbx
cmp dword [0x0098c4d0], 0
je 0x61c7b0
nop dword [rax]
call sym.runtime.gcWriteBarrier2
mov qword [r11], rax
mov rdx, qword [rcx + 0x28]
mov qword [r11 + 8], rdx
mov qword [rcx + 0x28], rax
call sym.runtime.makemap_small
mov qword [rsp + 0xb8], rax
lea rax, [0x006c96e0]
call sym.runtime.newobject
mov rcx, qword [rsp + 0x100]
mov qword [rax + 0xe8], rcx
cmp dword [0x0098c4d0], 0
jne 0x61c800
mov rdx, qword [rsp + 0x108]
mov rsi, qword [rsp + 0x98]
mov rdi, qword [rsp + 0x58]
jmp 0x61c825
call sym.runtime.gcWriteBarrier3
mov rdx, qword [rsp + 0x108]
mov qword [r11], rdx
mov rsi, qword [rsp + 0x98]
mov qword [r11 + 8], rsi
mov rdi, qword [rsp + 0x58]
mov qword [r11 + 0x10], rdi
mov qword [rax + 0xf0], rdx
mov rdx, qword [rsp + 0x30]
mov qword [rax + 8], rdx
mov qword [rax], rsi
mov qword [rax + 0x10], rdi
mov qword [rax + 0x20], 8
lea rdx, [0x006d1b45]
mov qword [rax + 0x18], rdx
mov qword [rax + 0x28], 1
mov qword [rax + 0x30], 1
cmp dword [0x0098c4d0], 0
jne 0x61c87a
mov rdx, qword [rsp + 0xb8]
mov rsi, qword [rsp + 0x90]
jmp 0x61c896
call sym.runtime.gcWriteBarrier2
mov rdx, qword [rsp + 0xb8]
mov qword [r11], rdx
mov rsi, qword [rsp + 0x90]
mov qword [r11 + 8], rsi
mov qword [rax + 0x38], rdx
mov rdx, qword [rsp + 0x28]
mov qword [rax + 0x40], rdx
mov qword [rax + 0x48], rsi
mov rdx, qword [rdi + 0x30]
mov rsi, qword [rdi + 0x28]
mov qword [rax + 0x88], rdx
cmp dword [0x0098c4d0], 0
jne 0x61c8cc
mov rdx, qword [rsp + 0x130]
test rdx, rdx
jmp 0x61c8df
call sym.runtime.gcWriteBarrier1
mov qword [r11], rsi
mov rdx, qword [rsp + 0x130]
test rdx, rdx
mov qword [rax + 0x80], rsi
je 0x61cc1c
je 0x61cbcb
mov qword [rsp + 0x88], rax
mov esi, dword [rdx + 0x10]
nop dword [rax]
cmp esi, 0x86b58769
jne 0x61c9e5
lea rsi, [0x00758660]
cmp rdx, rsi
jne 0x61cbcb
mov rcx, qword [rsp + 0x138]
mov rdx, qword [rcx + 0x10]
mov rbx, qword [rcx + 8]
mov rsi, rbx
sub rbx, rdx
cmp rsi, rdx
mov edx, 0
cmovle rbx, rdx
mov qword [rax + 0x58], rbx
mov rdx, qword [rcx + 0x18]
mov qword [rsp + 0x50], rdx
mov rbx, qword [rcx + 0x10]
mov qword [rsp + 0x48], rbx
mov rsi, qword [rcx + 8]
mov qword [rsp + 0x40], rsi
mov rcx, qword [rcx]
mov qword [rsp + 0xb0], rcx
lea rax, [0x00698220]
call sym.runtime.newobject
lea rcx, [sym.net_http.NewRequestWithContext.func3]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x40]
mov qword [rax + 0x10], rcx
mov rcx, qword [rsp + 0x48]
mov qword [rax + 0x18], rcx
mov rcx, qword [rsp + 0x50]
mov qword [rax + 0x20], rcx
cmp dword [0x0098c4d0], 0
jne 0x61c9b4
mov rdx, qword [rsp + 0xb0]
mov rsi, qword [rsp + 0x88]
jmp 0x61c9d8
call sym.runtime.gcWriteBarrier3
mov rdx, qword [rsp + 0xb0]
mov qword [r11], rdx
mov qword [r11 + 8], rax
mov rsi, qword [rsp + 0x88]
mov rdi, qword [rsi + 0x50]
mov qword [r11 + 0x10], rdi
mov qword [rax + 8], rdx
mov qword [rsi + 0x50], rax
jmp 0x61cbce
cmp esi, 0x994ec28c
jne 0x61cae0
lea rsi, [0x00758640]
nop dword [rax + rax]
cmp rdx, rsi
jne 0x61cbcb
mov rcx, qword [rsp + 0x138]
mov rdx, qword [rcx + 0x18]
mov rbx, qword [rcx + 8]
mov rsi, rbx
sub rbx, rdx
cmp rdx, rsi
mov edx, 0
cmovge rbx, rdx
mov qword [rax + 0x58], rbx
mov rdx, qword [rcx]
mov qword [rsp + 0x60], rdx
movups xmm0, xmmword [rcx + 8]
movups xmmword [rsp + 0x68], xmm0
movups xmm0, xmmword [rcx + 0x18]
movups xmmword [rsp + 0x78], xmm0
lea rax, [0x00697ba0]
call sym.runtime.newobject
lea rcx, [sym.net_http.NewRequestWithContext.func2]
mov qword [rax], rcx
cmp dword [0x0098c4d0], 0
je 0x61caa5
mov qword [rsp + 0xa8], rax
call sym.runtime.gcWriteBarrier2
mov qword [r11], rax
mov rdx, qword [rsp + 0x88]
mov rsi, qword [rdx + 0x50]
mov qword [r11 + 8], rsi
lea rbx, [rax + 8]
lea rcx, [rsp + 0x60]
lea rax, [0x006a4fc0]
call sym.runtime.wbMove
mov rax, qword [rsp + 0xa8]
mov rdx, qword [rsp + 0x60]
mov qword [rax + 8], rdx
movups xmm0, xmmword [rsp + 0x68]
movups xmmword [rax + 0x10], xmm0
movups xmm0, xmmword [rsp + 0x78]
movups xmmword [rax + 0x20], xmm0
mov rdx, qword [rsp + 0x88]
mov qword [rdx + 0x50], rax
mov rsi, rdx
jmp 0x61cbce
cmp esi, 0xd1e4ef3c
jne 0x61cbcb
lea rsi, [0x00758020]
cmp rdx, rsi
jne 0x61cbcb
mov rdx, qword [rsp + 0x138]
mov rbx, qword [rdx + 8]
sub rbx, qword [rdx + 0x18]
mov qword [rax + 0x58], rbx
mov rcx, qword [rdx + 8]
mov rbx, qword [rdx + 0x18]
nop
nop dword [rax]
cmp rbx, rcx
ja 0x61cc2f
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x40], rbx
mov rcx, qword [rdx]
mov qword [rsp + 0xa0], rcx
mov rdx, qword [rdx + 0x10]
mov qword [rsp + 0x38], rdx
lea rax, [0x00697a20]
call sym.runtime.newobject
lea rcx, [sym.net_http.NewRequestWithContext.func1]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x40]
sub rcx, rdx
mov rbx, qword [rsp + 0x50]
sub rbx, rdx
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rcx
neg rcx
sar rcx, 0x3f
and rdx, rcx
mov rcx, qword [rsp + 0xa0]
add rcx, rdx
cmp dword [0x0098c4d0], 0
jne 0x61cba2
mov rdx, qword [rsp + 0x88]
jmp 0x61cbbe
call sym.runtime.gcWriteBarrier3
mov qword [r11], rcx
mov qword [r11 + 8], rax
mov rdx, qword [rsp + 0x88]
mov rsi, qword [rdx + 0x50]
mov qword [r11 + 0x10], rsi
mov qword [rax + 8], rcx
mov qword [rdx + 0x50], rax
mov rsi, rdx
jmp 0x61cbce
mov rsi, rax
cmp qword [rsi + 0x50], 0
je 0x61cc1f
cmp qword [rsi + 0x58], 0
jne 0x61cc1f
lea rdx, [0x00759448]
mov qword [rsi + 0x40], rdx
cmp dword [0x0098c4d0], 0
je 0x61cc04
mov rdx, qword [rsi + 0x48]
call sym.runtime.gcWriteBarrier2
mov qword [r11], rdx
mov rdx, qword [rsi + 0x50]
mov qword [r11 + 8], rdx
lea rdx, [0x0098c060]
mov qword [rsi + 0x48], rdx
lea rdx, vtable.9uH8KuH8K18u_H8KuH8KuH_.0
mov qword [rsi + 0x50], rdx
jmp 0x61cc1f
mov rsi, rax
mov rax, rsi
xor ebx, ebx
xor ecx, ecx
add rsp, 0xf0
pop rbp
ret
mov rax, rbx
call sym.runtime.panicSliceB
test rdx, rdx
je 0x61cc7a
movups xmmword [rsp + 0xd0], xmm15
mov qword [rsp + 0xd0], rcx
mov rdx, qword [rsp + 0x138]
mov qword [rsp + 0xd8], rdx
lea rax, [0x006a6580]
lea rbx, [rsp + 0xd0]
call sym.runtime.convT
lea rcx, [0x00759880]
jmp 0x61ccb6
movups xmmword [rsp + 0xc0], xmm15
mov qword [rsp + 0xc0], rcx
mov rdx, qword [rsp + 0x138]
mov qword [rsp + 0xc8], rdx
lea rax, [0x006a15a0]
lea rbx, [rsp + 0xc0]
call sym.runtime.convT
lea rcx, [0x007598a8]
mov rbx, rax
mov rax, qword [rsp + 0x58]
nop
jmp 0x61c76a
mov r8, rdi
and rdi, rsi
shl rdi, 4
mov r9, qword [rcx + rdi + 8]
cmp r9, rbx
je 0x61cd06
lea rdi, [r8 + 1]
nop dword [rax]
test r9, r9
jne 0x61ccc5
lea rax, [0x008f7690]
call sym.runtime.typeAssert
mov rcx, qword [rsp + 0x130]
mov rdx, rax
mov rax, qword [rsp + 0x58]
jmp 0x61cc37
mov rsi, qword [rcx + rdi + 0x10]
mov rcx, rdx
mov rdx, rsi
jmp 0x61cc37
mov r8, rdi
and rdi, rsi
shl rdi, 4
mov r9, qword [rdx + rdi + 8]
cmp r9, rbx
je 0x61cd54
lea rdi, [r8 + 1]
test r9, r9
jne 0x61cd16
lea rax, [0x008f7670]
call sym.runtime.typeAssert
mov rdx, qword [rsp + 0x130]
mov rcx, rax
mov rax, qword [rsp + 0x58]
jmp 0x61c72e
mov rsi, qword [rdx + rdi + 0x10]
mov rdx, rcx
mov rcx, rsi
nop
jmp 0x61c72e
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
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x40], r10
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]
mov r9, qword [rsp + 0x38]
mov r10, qword [rsp + 0x40]
jmp sym.net_http.NewRequestWithContext