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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
cmp rsp, qword [rcx + 0x10]
jbe 0x5887f7
sub rsp, 0x78
mov qword [rsp + 0x70], rbp
lea rbp, [rsp + 0x70]
mov rax, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x88]
nop dword [rax + rax]
cmp rax, rcx
jge 0x588768
jae 0x5887f1
mov rdx, qword [rsp + 0x80]
movzx ebx, byte [rax + rdx]
test bl, 0x20
setne sil
mov byte [rsp + 0x47], sil
lea rdi, [rax + 1]
mov r8d, ebx
shr bl, 6
movzx ebx, bl
mov qword [rsp + 0x68], rbx
and r8d, 0x1f
nop dword [rax]
cmp r8, 0x1f
je 0x58861d
xor eax, eax
xor r9d, r9d
mov qword [rsp + 0x60], r8
cmp rcx, rdi
jle 0x58859a
nop dword [rax]
jbe 0x5887e9
movzx r10d, byte [rdi + rdx]
inc rdi
test r10b, 0x80
je 0x58858e
and r10d, 0x7f
nop dword [rax]
test r10, r10
je 0x58850b
xor r11d, r11d
xor r12d, r12d
jmp 0x588274
inc r11
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x50], r12
nop
cmp r10, r11
jle 0x588441
cmp rcx, rdi
jle 0x5883c1
jbe 0x5887e1
movzx r13d, byte [rdx + rdi]
inc rdi
mov qword [rsp + 0x58], rdi
cmp r12, 0x800000
jge 0x588342
shl r12, 8
or r12, r13
test r12, r12
jne 0x588271
mov qword [rsp + 0x48], r12
lea rax, [0x00664909]
mov qword [rsp], rax
mov qword [rsp + 8], 0x23
call fcn.0040b600
mov rax, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0xa0], rcx
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0xa8], rcx
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0xb0], rcx
movzx ecx, byte [rsp + 0x47]
mov byte [rsp + 0xb8], cl
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0xc0], rcx
lea rcx, [0x006a4c20]
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0xd0], rax
mov rbp, qword [rsp + 0x70]
add rsp, 0x78
ret
lea rax, [0x0065d3fb]
mov qword [rsp], rax
mov qword [rsp + 8], 0x10
call fcn.0040b600
mov rax, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0xa0], rcx
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0xa8], rcx
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0xb0], rcx
movzx ecx, byte [rsp + 0x47]
mov byte [rsp + 0xb8], cl
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0xc0], rcx
lea rcx, [0x006a4c20]
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0xd0], rax
mov rbp, qword [rsp + 0x70]
add rsp, 0x78
ret
lea rax, [0x006602e2]
mov qword [rsp], rax
mov qword [rsp + 8], 0x17
call fcn.0040b600
mov rax, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0xa0], rcx
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0xa8], rcx
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0xb0], rcx
movzx ecx, byte [rsp + 0x47]
mov byte [rsp + 0xb8], cl
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0xc0], rcx
lea rcx, [0x006a4c40]
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0xd0], rax
mov rbp, qword [rsp + 0x70]
add rsp, 0x78
nop
ret
cmp r12, 0x80
jl 0x58848c
mov qword [rsp + 0xa0], rbx
mov qword [rsp + 0xa8], r8
mov qword [rsp + 0xb0], r12
mov byte [rsp + 0xb8], sil
mov qword [rsp + 0xc0], rdi
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0xd0], r9
mov rbp, qword [rsp + 0x70]
add rsp, 0x78
ret
lea rax, [0x0065de75]
mov qword [rsp], rax
mov qword [rsp + 8], 0x12
call fcn.0040b600
mov rax, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0xa0], rcx
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0xa8], rcx
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0xb0], rcx
movzx ecx, byte [rsp + 0x47]
mov byte [rsp + 0xb8], cl
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0xc0], rcx
lea rcx, [0x006a4c20]
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0xd0], rax
mov rbp, qword [rsp + 0x70]
add rsp, 0x78
ret
mov qword [rsp + 0x58], rdi
lea rax, [0x00663bde]
mov qword [rsp], rax
mov qword [rsp + 8], 0x21
call fcn.0040b600
mov rax, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0xa0], rcx
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0xa8], rcx
mov qword [rsp + 0xb0], 0
movzx ecx, byte [rsp + 0x47]
mov byte [rsp + 0xb8], cl
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0xc0], rcx
lea rcx, [0x006a4c40]
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0xd0], rax
mov rbp, qword [rsp + 0x70]
add rsp, 0x78
ret
and r10d, 0x7f
mov r12, r10
jmp 0x58844a
mov qword [rsp + 0x58], rdi
lea rax, [0x006602e2]
mov qword [rsp], rax
mov qword [rsp + 8], 0x17
call fcn.0040b600
mov rax, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0xa0], rcx
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0xa8], rcx
mov qword [rsp + 0xb0], 0
movzx ecx, byte [rsp + 0x47]
mov byte [rsp + 0xb8], cl
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0xc0], rcx
lea rcx, [0x006a4c40]
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0xd0], rax
mov rbp, qword [rsp + 0x70]
add rsp, 0x78
ret
mov qword [rsp], rdx
mov qword [rsp + 8], rcx
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x10], rax
mov qword [rsp + 0x18], rdi
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 0x588719
nop
cmp rax, 0x1f
jl 0x588691
mov rbx, qword [rsp + 0x68]
mov rdi, rcx
mov r8, rax
mov rax, rdx
mov r9, rsi
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x80]
movzx esi, byte [rsp + 0x47]
jmp 0x58822f
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x58], rcx
lea rax, [0x0065cf39]
mov qword [rsp], rax
mov qword [rsp + 8], 0xf
call fcn.0040b600
mov rax, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0xa0], rcx
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0xa8], rcx
mov qword [rsp + 0xb0], 0
movzx ecx, byte [rsp + 0x47]
mov byte [rsp + 0xb8], cl
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0xc0], rcx
lea rcx, [0x006a4c40]
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0xd0], rax
mov rbp, qword [rsp + 0x70]
add rsp, 0x78
ret
mov rdx, qword [rsp + 0x68]
mov qword [rsp + 0xa0], rdx
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0xb0], 0
movzx eax, byte [rsp + 0x47]
mov byte [rsp + 0xb8], al
mov qword [rsp + 0xc0], rcx
mov qword [rsp + 0xc8], rbx
mov qword [rsp + 0xd0], rsi
mov rbp, qword [rsp + 0x70]
add rsp, 0x78
ret
nop
lea rax, [0x00625ba0]
mov qword [rsp], rax
call fcn.0040e560
mov rax, qword [rsp + 8]
mov qword [rax + 8], 0x29
lea rcx, [0x0066610a]
mov qword [rax], rcx
mov qword [rsp + 0xa0], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0xa8], xmm0
mov byte [rsp + 0xb8], 0
mov rcx, qword [rsp + 0x98]
mov qword [rsp + 0xc0], rcx
lea rcx, [0x006a4760]
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0xd0], rax
mov rbp, qword [rsp + 0x70]
add rsp, 0x78
nop
ret
mov rax, rdi
call fcn.0046cdc0
mov rax, rdi
call fcn.0046cdc0
call fcn.0046cdc0
nop
call fcn.0046abe0
nop dword [rax]
jmp fcn.005881a0