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

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x45dcf0
push rbp
mov rbp, rsp
sub rsp, 0x68
mov rcx, qword [rax + 0x20]
mov rdx, qword [rax + 8]
nop word [rax + rax]
test rcx, rcx
je 0x45dc50
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x50], rdx
mov rdx, qword [rax + 0x48]
mov rbx, qword [rax]
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x60], rdx
mov rax, rcx
call sym.runtime.findfunc
test rax, rax
je 0x45db0b
mov rdx, qword [rsp + 0x78]
mov rsi, qword [rdx + 0x10]
nop
cmp qword [rdx + 0x20], rsi
jne 0x45da94
mov rdi, qword [rdx + 0x28]
cmp qword [rdx + 0x30], rdi
je 0x45dc6c
mov rsi, qword [rsp + 0x48]
movzx edi, byte [rsi + 0x28]
nop dword [rax]
cmp dil, 0x13
je 0x45dab2
cmp dil, 3
je 0x45dab2
cmp dil, 6
jne 0x45dabf
movzx edi, byte [rdx + 0x59]
or edi, 4
mov byte [rdx + 0x59], dil
jmp 0x45daca
movzx edi, byte [rdx + 0x59]
and edi, 0xfffffffb
mov byte [rdx + 0x59], dil
movzx esi, byte [rsi + 0x28]
mov byte [rdx + 0x58], sil
mov qword [rdx], rax
mov qword [rdx + 8], rbx
mov rsi, qword [rdx + 0x20]
mov qword [rdx + 0x10], rsi
mov qword [rdx + 0x20], 0
mov rsi, qword [rdx + 0x30]
mov qword [rdx + 0x28], rsi
mov qword [rdx + 0x30], 0
mov rax, rdx
xor ebx, ebx
mov ecx, ebx
call sym.runtime._unwinder_.resolveInternal
add rsp, 0x68
pop rbp
ret
mov rax, qword [rsp + 0x78]
movzx ecx, byte [rax + 0x59]
test cl, 2
sete dl
jne 0x45db44
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsi + 0x30]
cmp byte [rdi + 0xe8], 0
je 0x45db3d
mov rdi, qword [rsp + 0x48]
cmp byte [rdi + 0x28], 0x13
jne 0x45db4e
xor edx, edx
jmp 0x45db4e
mov rdi, qword [rsp + 0x48]
jmp 0x45db4e
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x48]
test cl, 3
je 0x45db5b
test dl, dl
je 0x45dc38
mov byte [rsp + 0x27], cl
nop
test rdi, rdi
jne 0x45db6b
xor ebx, ebx
xor edx, edx
jmp 0x45db85
mov ebx, dword [rdi + 4]
mov rax, qword [rsp + 0x50]
call sym.runtime._moduledata_.funcName
mov rsi, qword [rsp + 0x60]
mov rdx, rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x58], rdx
mov rcx, qword [rsi + 0x98]
mov qword [rsp + 0x40], rcx
mov rdi, qword [rax + 0x20]
mov qword [rsp + 0x38], rdi
call sym.runtime.printlock
lea rax, [0x006d27e4]
mov ebx, 0xb
call sym.runtime.printstring
mov rax, qword [rsp + 0x40]
nop
call sym.runtime.printuint
lea rax, [0x006da85a]
mov ebx, 0x1b
call sym.runtime.printstring
mov rax, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x28]
call sym.runtime.printstring
lea rax, [0x006d33e6]
mov ebx, 0xd
call sym.runtime.printstring
mov rax, qword [rsp + 0x38]
nop dword [rax + rax]
call sym.runtime.printhex
call sym.runtime.printnl
call sym.runtime.printunlock
mov rax, qword [rsp + 0x60]
mov rcx, qword [rax]
mov rbx, qword [rax + 8]
mov rax, rcx
mov rcx, qword [rsp + 0x78]
xor edi, edi
call sym.runtime.tracebackHexdump
movzx eax, byte [rsp + 0x27]
test al, 3
mov rax, qword [rsp + 0x78]
jmp 0x45dc3b
test cl, 3
je 0x45dc5b
mov qword [rax + 0x20], 0
call sym.runtime._unwinder_.finishInternal
add rsp, 0x68
pop rbp
ret
call sym.runtime._unwinder_.finishInternal
add rsp, 0x68
pop rbp
ret
lea rax, [0x006d4bd5]
mov ebx, 0x11
call sym.runtime.throw
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rdi
call sym.runtime.printlock
lea rax, [0x006dba0f]
mov ebx, 0x1d
call sym.runtime.printstring
mov rax, qword [rsp + 0x38]
call sym.runtime.printhex
lea rax, [0x006d0efe]
mov ebx, 4
call sym.runtime.printstring
mov rax, qword [rsp + 0x30]
call sym.runtime.printhex
call sym.runtime.printnl
call sym.runtime.printunlock
mov rax, qword [rsp + 0x60]
mov rcx, qword [rax]
mov rbx, qword [rax + 8]
mov rax, qword [rsp + 0x78]
mov rdi, qword [rax + 0x28]
mov rdx, rax
mov rax, rcx
mov rcx, rdx
call sym.runtime.tracebackHexdump
lea rax, [0x006d3ef7]
mov ebx, 0xf
call sym.runtime.throw
nop
mov qword [rsp + 8], rax
call sym.runtime.morestack_noctxt.abi0
mov rax, qword [rsp + 8]
nop
jmp sym.runtime._unwinder_.next