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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
cmp rsp, qword [rcx + 0x10]
jbe 0x587300
sub rsp, 0x60
mov qword [rsp + 0x58], rbp
lea rbp, [rsp + 0x58]
mov rax, qword [rsp + 0x70]
test rax, rax
je 0x587261
lea rcx, [0x00613700]
mov qword [rsp], rcx
lea rcx, [rax + 1]
mov qword [rsp + 0x48], rcx
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], rcx
call fcn.0044dcc0
mov rax, qword [rsp + 0x18]
mov qword [rsp + 0x50], rax
mov rcx, qword [rsp + 0x68]
mov qword [rsp], rcx
mov rdx, qword [rsp + 0x70]
mov qword [rsp + 8], rdx
mov rbx, qword [rsp + 0x78]
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], 0
call fcn.00587320
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
test rdx, rdx
jne 0x587225
cmp rax, 0x50
jge 0x5871e6
mov rbx, rax
movabs rax, 0xcccccccccccccccd
mov rdi, rdx
imul rbx
lea r8, [rbx + rdx]
sar r8, 5
mov r9, rbx
sar rbx, 0x3f
sub r8, rbx
mov rdx, qword [rsp + 0x48]
test rdx, rdx
jbe 0x5872f2
mov rbx, qword [rsp + 0x50]
mov qword [rbx], r8
lea r8, [r8 + r8*4]
shl r8, 3
sub r9, r8
cmp rdx, 1
jbe 0x5872e5
mov qword [rbx + 8], r9
mov eax, 2
jmp 0x587108
mov r8, qword [rsp + 0x50]
mov qword [r8 + rdi*8], rax
lea rax, [rdi + 1]
mov rdi, rbx
mov rbx, r8
mov r8, qword [rsp + 0x70]
cmp r8, rcx
jle 0x5871ab
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x68]
mov qword [rsp], rax
mov qword [rsp + 8], r8
mov rdx, qword [rsp + 0x78]
mov qword [rsp + 0x10], rdx
mov qword [rsp + 0x18], rcx
call fcn.00587320
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
test rbx, rbx
jne 0x58716f
mov rdx, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x40]
cmp rdx, rdi
ja 0x5870f5
jmp 0x5872bf
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], rdx
mov qword [rsp + 0xa0], rsi
mov rbp, qword [rsp + 0x58]
add rsp, 0x60
ret
cmp rdx, rax
jb 0x5872b7
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0x98], rdi
mov qword [rsp + 0xa0], rsi
mov rbp, qword [rsp + 0x58]
add rsp, 0x60
ret
mov rbx, qword [rsp + 0x48]
test rbx, rbx
jbe 0x5872d7
mov rdi, qword [rsp + 0x50]
mov qword [rdi], 2
cmp rbx, 1
jbe 0x5872ca
add rax, 0xffffffffffffffb0
mov qword [rdi + 8], rax
mov rbx, rdi
mov rdi, rdx
mov rdx, qword [rsp + 0x48]
nop dword [rax]
jmp 0x5870ee
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], rbx
mov qword [rsp + 0xa0], rsi
mov rbp, qword [rsp + 0x58]
add rsp, 0x60
ret
lea rax, [0x0066289b]
mov qword [rsp], rax
mov qword [rsp + 8], 0x1d
call fcn.0040b600
mov rax, qword [rsp + 0x10]
mov qword [rsp + 0x80], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x88], xmm0
lea rcx, [0x006a4c40]
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0xa0], rax
mov rbp, qword [rsp + 0x58]
add rsp, 0x60
ret
mov rcx, rax
call fcn.0046ce40
mov rax, rdi
mov rcx, rdx
call fcn.0046cdc0
mov eax, 1
mov rcx, rbx
call fcn.0046cdc0
xor eax, eax
mov rcx, rbx
nop dword [rax]
call fcn.0046cdc0
mov eax, 1
mov rcx, rdx
call fcn.0046cdc0
xor eax, eax
mov rcx, rdx
call fcn.0046cdc0
nop
nop dword [rax]
call fcn.0046abe0
jmp fcn.00586fe0