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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
lea rax, [rsp - 0x20]
cmp rax, qword [rcx + 0x10]
jbe 0x5898dc
sub rsp, 0xa0
mov qword [rsp + 0x98], rbp
lea rbp, [rsp + 0x98]
xorps xmm0, xmm0
movups xmmword [rsp + 0xe0], xmm0
movups xmmword [rsp + 0xf0], xmm0
mov rax, qword [rsp + 0xa8]
mov qword [rsp], rax
call fcn.00588de0
mov rax, qword [rsp + 0x10]
mov rcx, qword [rsp + 8]
test rcx, rcx
jne 0x58988d
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rax + 0x18]
mov rdx, qword [rsp + 0xb8]
mov qword [rsp], rdx
call rcx
mov rax, qword [rsp + 0x18]
mov rcx, qword [rsp + 0x10]
mov rdx, qword [rsp + 8]
lea rbx, [rsp + 0x20]
cmp byte [rbx], 0
je 0x589102
bt rdx, 0x3f
jae 0x589882
mov rbx, rdx
shl rdx, 1
shr rdx, 0x1f
movabs rsi, 0xdd7b17f80
add rsi, rdx
test rsi, rsi
jne 0x589878
mov rsi, rbx
and rbx, 0x3fffffff
test ebx, ebx
sete bl
test bl, bl
je 0x5897ee
mov rax, qword [rsp + 0xa8]
mov rcx, qword [rax + 0x260]
mov rbx, qword [rax + 0x258]
cmp rcx, 3
jne 0x5896ca
cmp word [rbx], 0x6374
jne 0x5896ca
cmp byte [rbx + 2], 0x70
jne 0x5896ca
mov rcx, qword [rsp + 0xc0]
test rcx, rcx
je 0x58954c
lea rax, [0x00851740]
mov qword [rsp], rax
mov qword [rsp + 8], 0
call fcn.00404830
mov rax, qword [rsp + 0x10]
mov qword [rsp + 0x90], rax
mov dword [rsp], 8
lea rcx, [0x009d28f8]
mov qword [rsp + 8], rcx
call fcn.0042bee0
test eax, eax
jne 0x589536
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x10], rax
mov rcx, qword [rsp + 0xb8]
mov qword [rsp + 0x18], rcx
mov rdx, qword [rsp + 0xa8]
mov qword [rsp + 0x20], rdx
mov rbx, qword [rsp + 0x90]
mov qword [rsp + 0x28], rbx
mov dword [rsp], 0x20
lea rbx, [0x009d2900]
mov qword [rsp + 8], rbx
call fcn.004365e0
mov rax, qword [rsp + 0xa8]
mov qword [rsp], rax
mov rcx, qword [rsp + 0xd0]
mov qword [rsp + 8], rcx
mov rcx, qword [rsp + 0xd8]
mov qword [rsp + 0x10], rcx
call fcn.004cece0
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x18]
test rcx, rcx
je 0x58942f
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x60], rcx
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rax + 0x20]
mov rdx, qword [rsp + 0xb8]
mov qword [rsp], rdx
call rcx
mov qword [rsp], 0
call fcn.00405ef0
lea rax, [rsp + 0x10]
cmp byte [rax], 0
jne 0x589332
lea rax, [0x00a2d5e0]
mov rcx, qword [rsp + 0x60]
cmp rax, rcx
jne 0x589325
lea rax, [0x008a5ee0]
mov qword [rsp], rax
call fcn.0040c4b0
mov rdi, qword [rsp + 8]
mov qword [rdi + 8], 9
cmp dword [0x00d857e0], 0
jne 0x589314
lea rcx, [0x00908fd9]
mov qword [rdi], rcx
mov rcx, qword [rsp + 0x60]
mov qword [rdi + 0x10], rcx
cmp dword [0x00d857e0], 0
jne 0x5892f5
mov rax, qword [rsp + 0x88]
mov qword [rdi + 0x18], rax
lea rax, [0x00a2c7c0]
xorps xmm0, xmm0
movups xmmword [rsp + 0xe0], xmm0
mov qword [rsp + 0xf0], rax
mov qword [rsp + 0xf8], rdi
nop
call fcn.0042c7a0
mov rbp, qword [rsp + 0x98]
add rsp, 0xa0
ret
lea rcx, [rdi + 0x18]
mov rax, rdi
mov rdi, rcx
mov rdx, rax
mov rax, qword [rsp + 0x88]
call fcn.00457490
mov rdi, rdx
jmp 0x5892bd
lea rax, [0x00908fd9]
call fcn.00457490
jmp 0x58929f
mov rdi, qword [rsp + 0x88]
mov rax, rcx
jmp 0x5892c4
mov rax, qword [rsp + 0xb0]
mov rax, qword [rax + 0x28]
mov rcx, qword [rsp + 0xb8]
mov qword [rsp], rcx
call rax
mov rax, qword [rsp + 0x10]
mov qword [rsp + 0x68], rax
mov rcx, qword [rsp + 8]
mov qword [rsp + 0x40], rcx
mov rdx, qword [0x00d67440]
cmp rdx, rcx
je 0x5893e9
mov rdx, qword [0x00d59a90]
cmp rdx, rcx
je 0x5893a9
xorps xmm0, xmm0
movups xmmword [rsp + 0xe0], xmm0
mov qword [rsp + 0xf0], rcx
mov qword [rsp + 0xf8], rax
nop
call fcn.0042c7a0
mov rbp, qword [rsp + 0x98]
add rsp, 0xa0
ret
mov qword [rsp], rcx
mov qword [rsp + 8], rax
mov rdx, qword [0x00d59a98]
mov qword [rsp + 0x10], rdx
call fcn.004037d0
lea rax, [rsp + 0x18]
cmp byte [rax], 0
je 0x5893dd
mov rax, qword [0x00d59c88]
mov rcx, qword [0x00d59c80]
jmp 0x589378
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x40]
jmp 0x589378
mov qword [rsp], rcx
mov qword [rsp + 8], rax
mov rdx, qword [0x00d67448]
mov qword [rsp + 0x10], rdx
call fcn.004037d0
lea rax, [rsp + 0x18]
cmp byte [rax], 0
je 0x589420
mov rax, qword [0x00d683f8]
mov rcx, qword [0x00d683f0]
jmp 0x589378
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x40]
jmp 0x58936c
mov rax, qword [rsp + 0xa8]
mov rcx, qword [rax + 0x10]
add rax, 0x10
mov qword [rsp + 0x10], rax
mov qword [rsp], rcx
movabs rax, 0x70100000ffff
mov qword [rsp + 8], rax
mov dword [rsp + 0x18], 8
call fcn.0046bfd0
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x20]
test rcx, rcx
jne 0x5894a8
xor eax, eax
xor ecx, ecx
xorps xmm0, xmm0
movups xmmword [rsp + 0xe0], xmm0
mov qword [rsp + 0xf0], rax
mov qword [rsp + 0xf8], rcx
nop
call fcn.0042c7a0
mov rbp, qword [rsp + 0x98]
add rsp, 0xa0
ret
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x50], rcx
lea rax, [0x008a5ee0]
mov qword [rsp], rax
call fcn.0040c4b0
mov rdi, qword [rsp + 8]
mov qword [rdi + 8], 0xa
cmp dword [0x00d857e0], 0
jne 0x589528
lea rcx, [0x00909830]
mov qword [rdi], rcx
mov rcx, qword [rsp + 0x50]
mov qword [rdi + 0x10], rcx
cmp dword [0x00d857e0], 0
jne 0x58950c
mov rax, qword [rsp + 0x78]
mov qword [rdi + 0x18], rax
lea rax, [0x00a2c7c0]
mov rcx, rdi
jmp 0x589477
lea rcx, [rdi + 0x18]
mov rax, rdi
mov rdi, rcx
mov rdx, rax
mov rax, qword [rsp + 0x78]
call fcn.00457490
mov rdi, rdx
jmp 0x5894fd
lea rax, [0x00909830]
call fcn.00457490
jmp 0x5894e2
nop
call fcn.0042c7a0
mov rbp, qword [rsp + 0x98]
add rsp, 0xa0
ret
mov rcx, qword [rsp + 0xd0]
test rcx, rcx
je 0x5898be
mov edx, dword [rcx + 0x10]
cmp edx, 0x61a1523f
jne 0x58968d
lea rbx, [0x00a2c8a0]
cmp rbx, rcx
jne 0x58968d
lea rax, [0x008b83c0]
mov qword [rsp], rax
call fcn.0040c4b0
mov rax, qword [rsp + 8]
lea rcx, [0x00a2c8a0]
mov rdx, qword [rsp + 0xa8]
mov rbx, qword [rdx + 0x10]
mov qword [rsp], rbx
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], rax
call fcn.004673f0
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x18]
test rcx, rcx
je 0x589148
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x58], rcx
lea rax, [0x008a5ee0]
mov qword [rsp], rax
call fcn.0040c4b0
mov rdi, qword [rsp + 8]
mov qword [rdi + 8], 4
cmp dword [0x00d857e0], 0
jne 0x58967c
lea rcx, [0x00907848]
mov qword [rdi], rcx
mov rcx, qword [rsp + 0x58]
mov qword [rdi + 0x10], rcx
cmp dword [0x00d857e0], 0
jne 0x58965d
mov rax, qword [rsp + 0x80]
mov qword [rdi + 0x18], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0xe0], xmm0
lea rax, [0x00a2c7c0]
mov qword [rsp + 0xf0], rax
mov qword [rsp + 0xf8], rdi
nop
call fcn.0042c7a0
mov rbp, qword [rsp + 0x98]
add rsp, 0xa0
ret
lea rcx, [rdi + 0x18]
mov rax, rdi
mov rdi, rcx
mov rdx, rax
mov rax, qword [rsp + 0x80]
call fcn.00457490
mov rdi, rdx
jmp 0x589625
lea rax, [0x00907848]
call fcn.00457490
jmp 0x589607
cmp edx, 0x98d3a9ba
jne 0x5898be
lea rdx, [0x00a2c8c0]
cmp rdx, rcx
jne 0x5898be
lea rax, [0x008c6ce0]
mov qword [rsp], rax
call fcn.0040c4b0
mov rax, qword [rsp + 8]
lea rcx, [0x00a2c8c0]
jmp 0x589598
cmp rcx, 4
jne 0x5896e0
cmp dword [rbx], 0x34706374
je 0x589137
cmp rcx, 4
jne 0x5896ee
cmp dword [rbx], 0x36706374
je 0x589137
mov rdx, qword [0x00d592b0]
mov rax, qword [rax + 0x10]
mov qword [rsp], rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 8], rax
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x10], rax
mov rax, qword [rdx]
call rax
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x18]
test rcx, rcx
jne 0x589760
xor eax, eax
xor ecx, ecx
xorps xmm0, xmm0
movups xmmword [rsp + 0xe0], xmm0
mov qword [rsp + 0xf0], rcx
mov qword [rsp + 0xf8], rax
nop
call fcn.0042c7a0
mov rbp, qword [rsp + 0x98]
add rsp, 0xa0
ret
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x48], rcx
lea rax, [0x008a5ee0]
mov qword [rsp], rax
call fcn.0040c4b0
mov rdi, qword [rsp + 8]
mov qword [rdi + 8], 7
cmp dword [0x00d857e0], 0
jne 0x5897e0
lea rcx, [0x0090846c]
mov qword [rdi], rcx
mov rcx, qword [rsp + 0x48]
mov qword [rdi + 0x10], rcx
cmp dword [0x00d857e0], 0
jne 0x5897c4
mov rax, qword [rsp + 0x70]
mov qword [rdi + 0x18], rax
mov rax, rdi
lea rcx, [0x00a2c7c0]
jmp 0x58972f
lea rcx, [rdi + 0x18]
mov rax, rdi
mov rdi, rcx
mov rdx, rax
mov rax, qword [rsp + 0x70]
call fcn.00457490
mov rdi, rdx
jmp 0x5897b5
lea rax, [0x0090846c]
call fcn.00457490
jmp 0x58979a
mov rdx, qword [rsp + 0xa8]
test byte [rdx], al
mov qword [rsp], rdx
mov qword [rsp + 8], rsi
mov qword [rsp + 0x10], rcx
mov qword [rsp + 0x18], rax
call fcn.004cad00
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x10], rax
mov rcx, qword [0x00d68e50]
mov rdx, qword [0x00d68e48]
mov rbx, qword [0x00d68e40]
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rdx
mov qword [rsp + 0x28], rcx
mov dword [rsp], 0x30
lea rcx, fcn.004cad00
mov qword [rsp + 8], rcx
call fcn.0042bee0
test eax, eax
jne 0x589862
jmp 0x589102
nop
call fcn.0042c7a0
mov rbp, qword [rsp + 0x98]
add rsp, 0xa0
ret
mov rsi, rbx
xor ebx, ebx
jmp 0x5890fa
mov rbx, rdx
mov rsi, rcx
jmp 0x5890e2
xorps xmm0, xmm0
movups xmmword [rsp + 0xe0], xmm0
mov qword [rsp + 0xf0], rcx
mov qword [rsp + 0xf8], rax
nop
call fcn.0042c7a0
mov rbp, qword [rsp + 0x98]
add rsp, 0xa0
ret
lea rax, [0x00856740]
mov qword [rsp], rax
lea rax, [0x00a2a190]
mov qword [rsp + 8], rax
call fcn.0042cbc0
ud2
call fcn.004555f0
jmp fcn.00589020