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

Disassembly:
lea r12, [rsp - 0x180]
cmp r12, qword [r14 + 0x10]
jbe 0x589735
sub rsp, 0x200
mov qword [rsp + 0x1f8], rbp
lea rbp, [rsp + 0x1f8]
mov qword [rsp + 0x218], rcx
cmp qword [rax + 0x320], 0
jne 0x589143
mov qword [rsp + 0x210], rbx
mov qword [rsp + 0x230], r8
mov qword [rsp + 0x208], rax
mov qword [rsp + 0x220], rdi
mov qword [rsp + 0x218], rcx
test rdi, rdi
je 0x588ca8
mov rdx, qword [rcx + rdi*8 - 8]
mov rsi, qword [rdx + 0x68]
mov rdx, qword [rdx + 0x60]
mov r9, qword [rax + 0x48]
cmp qword [rax + 0x50], rsi
jne 0x588c4b
mov rax, rdx
mov rbx, r9
mov rcx, rsi
call fcn.00402d80
test al, al
je 0x588c43
mov rax, qword [rsp + 0x208]
mov rcx, qword [rsp + 0x218]
mov rbx, qword [rsp + 0x210]
mov rdi, qword [rsp + 0x220]
mov r8, qword [rsp + 0x230]
jmp 0x588ca8
mov rax, qword [rsp + 0x208]
movups xmmword [rsp + 0xf8], xmm15
movups xmmword [rsp + 0x108], xmm15
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0x100], 5
movups xmmword [rsp + 0x108], xmm15
lea rax, [0x006848e0]
lea rbx, [rsp + 0xf8]
call fcn.0040ad40
mov rbx, rax
lea rax, [0x00719860]
mov rbp, qword [rsp + 0x1f8]
add rsp, 0x200
ret
mov rdx, qword [r8 + 0x20]
mov r9, qword [r8 + 0x28]
mov r10, qword [r8 + 0x30]
bt rdx, 0x3f
jae 0x588cd4
mov r11, rdx
shl rdx, 1
shr rdx, 0x1f
movabs r12, 0xdd7b17f80
add rdx, r12
jmp 0x588cda
mov r11, rdx
mov rdx, r9
test rdx, rdx
jne 0x588d06
mov rdx, r11
and r11d, 0x3fffffff
test r11d, r11d
jne 0x588d09
call fcn.004c87a0
mov r9, rbx
mov rdx, rax
mov r10, rcx
mov rax, qword [rsp + 0x208]
jmp 0x588d09
mov rdx, r11
mov qword [rsp + 0x98], r10
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x58], r9
mov rsi, qword [rax + 0x2b8]
mov r8, qword [rax + 0x2c0]
mov rdi, qword [rax + 0x2b0]
mov rbx, r9
mov rcx, r10
mov rax, rdx
call fcn.004c7400
nop
test al, al
jne 0x588fe3
mov rdx, qword [rsp + 0x208]
mov rsi, qword [rdx + 0x2d0]
mov r8, qword [rdx + 0x2d8]
mov rdi, qword [rdx + 0x2c8]
mov rax, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x98]
call fcn.004c7340
nop dword [rax]
test al, al
jne 0x588e7e
mov rdx, qword [rsp + 0x230]
mov rdx, qword [rdx + 0x50]
mov qword [rsp + 0x60], rdx
test rdx, rdx
jne 0x588da7
mov qword [rsp + 0x60], 0x3d090
mov qword [rsp + 0x70], 0
mov rdx, qword [rsp + 0x210]
cmp rdx, 1
jne 0x588dcb
mov r8, qword [rsp + 0x220]
test r8, r8
jmp 0x588ddc
cmp rdx, 2
jne 0x588e27
mov r8, qword [rsp + 0x220]
test r8, r8
je 0x588def
mov r9, qword [rsp + 0x218]
mov r9, qword [r9]
cmp rdx, 1
jmp 0x588e39
lea rax, [0x0066df60]
call fcn.0040d960
mov qword [rax + 8], 0x38
lea rcx, [0x006b66c2]
mov qword [rax], rcx
mov rbx, rax
lea rax, [0x007191c0]
mov rbp, qword [rsp + 0x1f8]
add rsp, 0x200
ret
cmp rdx, 1
mov r8, qword [rsp + 0x220]
mov r9d, 0
mov qword [rsp + 0xa0], r9
je 0x588e49
cmp rdx, 2
jne 0x588e77
nop
mov r10, qword [0x008930d0]
mov r11, qword [0x008930d8]
mov r12, qword [rsp + 0x208]
mov r13, qword [r12 + 0x2e8]
mov r15, qword [r12 + 0x2f0]
xor eax, eax
jmp 0x589695
xor eax, eax
jmp 0x589161
mov rax, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x98]
lea rdi, [0x006ab9cb]
mov esi, 0x19
nop dword [rax]
call fcn.004c0820
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0x88], rbx
mov rdx, qword [rsp + 0x208]
mov r8, qword [rdx + 0x2c8]
mov r9, qword [rdx + 0x2d0]
mov rcx, qword [rdx + 0x2d8]
lea rdi, [0x006ab9cb]
mov esi, 0x19
mov rax, r8
mov rbx, r9
call fcn.004c0820
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0x80], rbx
movups xmmword [rsp + 0xd8], xmm15
movups xmmword [rsp + 0xe8], xmm15
mov rax, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0x88]
nop dword [rax + rax]
call fcn.0040afc0
lea rdx, [0x006576e0]
mov qword [rsp + 0xd8], rdx
mov qword [rsp + 0xe0], rax
mov rax, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0x80]
call fcn.0040afc0
lea rdx, [0x006576e0]
mov qword [rsp + 0xe8], rdx
mov qword [rsp + 0xf0], rax
lea rax, [0x006acb1f]
mov ebx, 0x1b
lea rcx, [rsp + 0xd8]
mov edi, 2
mov rsi, rdi
call fcn.004f8500
mov rdx, qword [rsp + 0x208]
mov qword [rsp + 0xf8], rdx
mov qword [rsp + 0x100], 1
mov qword [rsp + 0x108], rax
mov qword [rsp + 0x110], rbx
lea rax, [0x006848e0]
lea rbx, [rsp + 0xf8]
call fcn.0040ad40
mov rbx, rax
lea rax, [0x00719860]
mov rbp, qword [rsp + 0x1f8]
add rsp, 0x200
ret
mov rax, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x98]
lea rdi, [0x006ab9cb]
mov esi, 0x19
call fcn.004c0820
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0x88], rbx
mov rdx, qword [rsp + 0x208]
mov r8, qword [rdx + 0x2b0]
mov r9, qword [rdx + 0x2b8]
mov rcx, qword [rdx + 0x2c0]
lea rdi, [0x006ab9cb]
mov esi, 0x19
mov rax, r8
mov rbx, r9
call fcn.004c0820
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0x80], rbx
movups xmmword [rsp + 0xd8], xmm15
movups xmmword [rsp + 0xe8], xmm15
mov rax, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0x88]
nop dword [rax]
call fcn.0040afc0
lea rdx, [0x006576e0]
mov qword [rsp + 0xd8], rdx
mov qword [rsp + 0xe0], rax
mov rax, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0x80]
call fcn.0040afc0
lea rdx, [0x006576e0]
mov qword [rsp + 0xe8], rdx
mov qword [rsp + 0xf0], rax
lea rax, [0x006ad2b2]
mov ebx, 0x1c
lea rcx, [rsp + 0xd8]
mov edi, 2
mov rsi, rdi
call fcn.004f8500
mov rdx, qword [rsp + 0x208]
mov qword [rsp + 0xf8], rdx
mov qword [rsp + 0x100], 1
mov qword [rsp + 0x108], rax
mov qword [rsp + 0x110], rbx
lea rax, [0x006848e0]
lea rbx, [rsp + 0xf8]
call fcn.0040ad40
mov rbx, rax
lea rax, [0x00719860]
mov rbp, qword [rsp + 0x1f8]
add rsp, 0x200
ret
lea rax, [0x00719900]
lea rbx, [0x008f2a98]
mov rbp, qword [rsp + 0x1f8]
add rsp, 0x200
ret
test al, al
je 0x589188
mov r10, qword [0x008930f0]
mov r11, qword [0x008930f8]
mov r12, qword [r9 + 0x2f0]
mov r13, qword [r9 + 0x2e8]
xor eax, eax
jmp 0x589282
cmp rdx, 1
jne 0x5891f3
mov rcx, qword [rsp + 0x208]
cmp byte [rcx + 0x360], 0
je 0x5891a8
cmp byte [rcx + 0x361], 0
jne 0x5891fb
mov qword [rsp + 0xf8], rcx
mov qword [rsp + 0x100], 0
movups xmmword [rsp + 0x108], xmm15
lea rax, [0x006848e0]
lea rbx, [rsp + 0xf8]
call fcn.0040ad40
mov rbx, rax
lea rax, [0x00719860]
mov rbp, qword [rsp + 0x1f8]
add rsp, 0x200
ret
mov rcx, qword [rsp + 0x208]
cmp byte [rcx + 0x360], 0
je 0x589264
mov rdx, qword [rcx + 0x368]
test rdx, rdx
jl 0x589264
lea rsi, [r8 - 1]
cmp rdx, rsi
jge 0x589264
mov qword [rsp + 0xf8], rcx
mov qword [rsp + 0x100], 3
movups xmmword [rsp + 0x108], xmm15
lea rax, [0x006848e0]
lea rbx, [rsp + 0xf8]
call fcn.0040ad40
mov rbx, rax
lea rax, [0x00719860]
mov rbp, qword [rsp + 0x1f8]
add rsp, 0x200
ret
xor eax, eax
xor ebx, ebx
mov rbp, qword [rsp + 0x1f8]
add rsp, 0x200
ret
add r13, 0x38
inc rax
mov r8, rcx
cmp rax, r12
jge 0x5892e2
mov r15, qword [r13]
mov qword [rsp + 0x150], r15
movups xmm0, xmmword [r13 + 8]
movups xmmword [rsp + 0x158], xmm0
movups xmm0, xmmword [r13 + 0x18]
movups xmmword [rsp + 0x168], xmm0
movups xmm0, xmmword [r13 + 0x28]
movups xmmword [rsp + 0x178], xmm0
mov r15, qword [rsp + 0x158]
mov rcx, r8
mov r8, qword [rsp + 0x150]
cmp r15, r11
jne 0x589278
xor ebx, ebx
jmp 0x589660
mov rdx, rsi
mov r9, rdi
nop
jmp 0x589278
jl 0x5892ef
lea rax, [rsp + 0x40]
xor ecx, ecx
xor ebx, ebx
jmp 0x589347
lea rax, [rsp + 0x40]
mov ebx, 1
xor ecx, ecx
mov rdi, rbx
lea rsi, [0x006929a0]
call fcn.0044a920
cmp dword [0x008f2cf0], 0
jne 0x589322
mov rdx, qword [rsp + 0xa0]
mov qword [rax], rdx
nop
jmp 0x589332
mov rdi, rax
mov rdx, qword [rsp + 0xa0]
call fcn.004655c0
mov rdx, qword [rsp + 0x210]
mov r8, qword [rsp + 0x220]
mov ebx, 1
mov r9, qword [0x008930f0]
mov r10, qword [0x008930f8]
mov qword [rsp + 0x48], r10
mov r11, qword [rsp + 0x208]
mov r12, qword [r11 + 0x2e8]
mov r13, qword [r11 + 0x2f0]
xor esi, esi
jmp 0x589380
add r12, 0x38
inc rsi
mov r8, rdi
nop
cmp rsi, r13
jge 0x589407
mov r15, qword [r12]
mov qword [rsp + 0x118], r15
movups xmm0, xmmword [r12 + 8]
movups xmmword [rsp + 0x120], xmm0
movups xmm0, xmmword [r12 + 0x18]
movups xmmword [rsp + 0x130], xmm0
movups xmm0, xmmword [r12 + 0x28]
movups xmmword [rsp + 0x140], xmm0
mov r15, qword [rsp + 0x120]
mov rdi, r8
mov r8, qword [rsp + 0x118]
cmp r15, r10
jne 0x589374
mov qword [rsp + 0x78], rax
xor eax, eax
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x78]
jmp 0x589623
mov rdx, qword [rsp + 0x210]
mov r10, qword [rsp + 0x48]
mov r11, qword [rsp + 0x208]
jmp 0x589374
jge 0x58945d
inc rbx
cmp rcx, rbx
jae 0x58943d
mov edi, 1
lea rsi, [0x006929a0]
nop dword [rax]
call fcn.0044a920
mov rdx, qword [rsp + 0x210]
mov r8, qword [rsp + 0x220]
mov r11, qword [rsp + 0x208]
lea rdi, [rax + rbx*8]
lea rdi, [rdi - 8]
cmp dword [0x008f2cf0], 0
jne 0x589455
mov qword [rax + rbx*8 - 8], r11
jmp 0x58945d
mov rsi, r11
call fcn.00465600
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x40], rbx
xor ecx, ecx
jmp 0x5894a0
mov rcx, qword [rsp + 0x88]
inc rcx
mov rbx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x210]
mov r8, qword [rsp + 0x220]
mov r11, qword [rsp + 0x208]
nop
cmp rbx, rcx
jle 0x589532
mov qword [rsp + 0x88], rcx
mov rsi, qword [rax + rcx*8]
mov r9, qword [rsi + 0x2e8]
mov rsi, qword [rsi + 0x2f0]
xor edi, edi
jmp 0x589542
xor esi, esi
xor edi, edi
xor r9d, r9d
movups xmmword [rsp + 0xb8], xmm15
movups xmmword [rsp + 0xc8], xmm15
lea rdx, [0x00589780]
mov qword [rsp + 0xb8], rdx
mov qword [rsp + 0xc0], r11
lea r8, [rsp + 0x70]
mov qword [rsp + 0xc8], r8
lea r8, [rsp + 0x60]
mov qword [rsp + 0xd0], r8
mov rax, r9
mov rbx, rdi
mov rcx, rsi
lea rdi, [rsp + 0xb8]
call fcn.00580020
test rax, rax
je 0x58946e
jmp 0x5895b0
cmp rdx, 1
jmp 0x58918c
add r9, 0x38
inc rdi
cmp rdi, rsi
jge 0x5894c7
mov r10, qword [r9]
mov qword [rsp + 0x1c0], r10
movups xmm0, xmmword [r9 + 8]
movups xmmword [rsp + 0x1c8], xmm0
movups xmm0, xmmword [r9 + 0x18]
movups xmmword [rsp + 0x1d8], xmm0
movups xmm0, xmmword [r9 + 0x28]
movups xmmword [rsp + 0x1e8], xmm0
mov r10, qword [rsp + 0x1c8]
mov r12, qword [rsp + 0x1c0]
mov r13, qword [0x008930f0]
cmp qword [0x008930f8], r10
jne 0x58953b
xor r15d, r15d
jmp 0x5895d4
mov rdx, qword [rsp + 0x210]
mov r8, qword [rsp + 0x220]
jmp 0x58953b
mov rbp, qword [rsp + 0x1f8]
add rsp, 0x200
nop
ret
inc r15
mov rdx, qword [rsp + 0x210]
mov r8, qword [rsp + 0x220]
cmp r15, r10
jge 0x5895e9
mov r8, qword [r12 + r15*8]
mov rdx, qword [r13 + r15*8]
cmp rdx, r8
je 0x5895c1
jmp 0x58959e
mov r9, qword [rsp + 0x1e0]
mov rdi, qword [rsp + 0x1e8]
mov rsi, qword [rsp + 0x1f0]
jmp 0x5894ce
inc rdx
mov r10, qword [rsp + 0x48]
mov r11, qword [rsp + 0x208]
mov qword [rsp + 0x68], rdx
mov rdx, qword [rsp + 0x210]
mov rdx, qword [rsp + 0x68]
cmp rdx, r15
jge 0x58963f
mov r11, qword [r8 + rdx*8]
mov r10, qword [r9 + rdx*8]
cmp r10, r11
je 0x589606
jmp 0x5893ed
cmp rsi, r13
mov rdx, qword [rsp + 0x210]
mov r8, rdi
jmp 0x589407
inc rbx
mov rdx, rsi
mov r9, rdi
nop dword [rax + rax]
cmp rbx, r15
jge 0x58967d
mov rsi, rdx
mov rdx, qword [r8 + rbx*8]
mov rdi, r9
mov r9, qword [r10 + rbx*8]
cmp r9, rdx
je 0x589652
jmp 0x5892d9
cmp rax, r12
mov r8, rcx
jmp 0x5892e2
add r13, 0x38
inc rax
mov r8, rcx
mov r12, rbx
cmp rax, r15
jge 0x5896f9
mov rcx, r8
mov r8, qword [r13]
mov qword [rsp + 0x188], r8
movups xmm0, xmmword [r13 + 8]
movups xmmword [rsp + 0x190], xmm0
movups xmm0, xmmword [r13 + 0x18]
movups xmmword [rsp + 0x1a0], xmm0
movups xmm0, xmmword [r13 + 0x28]
movups xmmword [rsp + 0x1b0], xmm0
mov r8, qword [rsp + 0x190]
mov rbx, r12
mov r12, qword [rsp + 0x188]
cmp r8, r11
jne 0x589688
xor esi, esi
jmp 0x589713
mov rdx, rdi
mov r9, qword [rsp + 0xa0]
jmp 0x589688
setl al
nop dword [rax]
jmp 0x589161
inc rsi
mov rdx, rdi
mov r9, qword [rsp + 0xa0]
cmp rsi, r8
jge 0x58972a
mov rdi, rdx
mov rdx, qword [r12 + rsi*8]
mov r9, qword [r10 + rsi*8]
cmp r9, rdx
je 0x589705
jmp 0x5896ec
cmp rax, r15
mov r8, rcx
mov r12, rbx
jmp 0x5896f9
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
call fcn.004632e0
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]
jmp fcn.00588b80