Function at 0x4513a0
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 0x451b49
sub rsp, 0xa0
mov qword [rsp + 0x98], rbp
lea rbp, [rsp + 0x98]
mov qword [rsp + 0xe0], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0xe8], xmm0
mov rax, qword [rsp + 0xa8]
mov rcx, qword [rax + 0x18]
nop dword [rax]
test rcx, rcx
je 0x4516b4
mov rdx, qword [rax]
mov qword [rsp + 0x90], rdx
mov rbx, qword [rax + 8]
mov qword [rsp + 0x88], rbx
cmp qword [rdx], rcx
jne 0x45165d
mov esi, 0xffffffff
mov qword [rsp + 0x40], rcx
cmp esi, 0xffffffff
mov edi, 0
cmove esi, edi
mov dword [rsp + 0x34], esi
mov rdi, qword [rax + 0x38]
sub rdi, qword [rax + 0x28]
test rdi, rdi
ja 0x4515bc
xor edi, edi
xor r8d, r8d
mov qword [rsp + 0x80], r8
mov dword [rsp + 0x3c], edi
mov r9, qword [rax + 0x48]
test r9, r9
jbe 0x4515b3
mov r10, qword [rax + 0x50]
test r10, r10
je 0x451519
mov eax, dword [r10]
shr r9, 3
cmp r9d, eax
cmovl eax, r9d
mov rcx, qword [r10 + 8]
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x78], rcx
mov qword [rsp], rdx
mov qword [rsp + 8], rbx
mov byte [rsp + 0x10], 2
call fcn.00455b20
mov rax, qword [rsp + 0x18]
test rax, rax
je 0x4514d6
mov rcx, qword [rax]
nop
add rax, 8
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xe8], rcx
mov qword [rsp + 0xf0], rcx
mov eax, dword [rsp + 0x3c]
mov dword [rsp + 0xc0], eax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0xc8], rax
mov eax, dword [rsp + 0x38]
mov dword [rsp + 0xd0], eax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0xd8], rax
mov rbp, qword [rsp + 0x98]
add rsp, 0xa0
ret
mov qword [rsp], rdx
mov qword [rsp + 8], rbx
mov byte [rsp + 0x10], 0
call fcn.00455b20
mov rax, qword [rsp + 0x18]
test rax, rax
je 0x451825
mov ecx, dword [rax]
nop dword [rax]
test ecx, ecx
jle 0x451825
mov qword [rsp + 0x70], rax
mov edx, dword [rsp + 0x34]
test edx, edx
jl 0x4516f2
nop dword [rax]
cmp ecx, edx
jle 0x4516f2
mov ecx, dword [rax + 4]
test ecx, ecx
jle 0x4515ad
nop
lea ebx, [rcx + 7]
sar ebx, 3
imul edx, ebx
movsxd rdx, edx
lea rax, [rax + rdx]
lea rax, [rax + 8]
mov rdx, qword [rsp + 0x90]
mov rbx, qword [rsp + 0x88]
mov edi, dword [rsp + 0x3c]
mov r8, qword [rsp + 0x80]
mov rsi, rax
mov eax, ecx
mov rcx, rsi
jmp 0x451490
xor ecx, ecx
xor eax, eax
jmp 0x451584
xor eax, eax
xor ecx, ecx
jmp 0x451490
mov qword [rsp + 0x48], rdi
mov qword [rsp], rdx
mov qword [rsp + 8], rbx
mov byte [rsp + 0x10], 1
call fcn.00455b20
mov rax, qword [rsp + 0x18]
nop dword [rax]
test rax, rax
je 0x451a50
mov ecx, dword [rax]
test ecx, ecx
jle 0x451a50
mov edx, dword [rax + 4]
test edx, edx
jle 0x451653
mov qword [rsp + 0x70], rax
mov ebx, dword [rsp + 0x34]
test ebx, ebx
jl 0x451925
cmp ecx, ebx
jle 0x451925
nop
lea ecx, [rdx + 7]
sar ecx, 3
imul ecx, ebx
movsxd rcx, ecx
lea rax, [rax + rcx]
lea rax, [rax + 8]
mov rcx, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x88]
mov esi, dword [rsp + 0x34]
mov edi, edx
mov r8, rax
mov rax, qword [rsp + 0xa8]
mov rdx, qword [rsp + 0x90]
jmp 0x451458
mov ebx, dword [rsp + 0x34]
xor edx, edx
xor eax, eax
jmp 0x451628
mov qword [rsp], rdx
mov qword [rsp + 8], rbx
mov dword [rsp + 0x10], 1
lea rax, [rcx - 1]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x18], rax
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0x20], rcx
call fcn.004558e0
mov esi, dword [rsp + 0x28]
mov rax, qword [rsp + 0xa8]
mov rdx, qword [rsp + 0x90]
mov rbx, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x40]
jmp 0x45142e
mov dword [rsp + 0xc0], 0
mov qword [rsp + 0xc8], 0
mov dword [rsp + 0xd0], 0
mov qword [rsp + 0xd8], 0
mov rbp, qword [rsp + 0x98]
add rsp, 0xa0
ret
mov rax, qword [rsp + 0x90]
mov qword [rsp], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 8], rax
call fcn.004550e0
mov rax, qword [rsp + 0x10]
mov qword [rsp + 0x80], rax
mov rcx, qword [rsp + 0x18]
mov qword [rsp + 0x68], rcx
mov rdx, qword [rsp + 0x70]
movsxd rdx, dword [rdx]
mov qword [rsp + 0x60], rdx
call fcn.0043aa00
lea rax, [0x0065e605]
mov qword [rsp], rax
mov qword [rsp + 8], 0x13
call fcn.0043b480
mov eax, dword [rsp + 0x34]
movsxd rax, eax
mov qword [rsp], rax
nop dword [rax]
call fcn.0043b220
lea rax, [0x0065a6ca]
mov qword [rsp], rax
mov qword [rsp + 8], 5
call fcn.0043b480
mov rax, qword [rsp + 0x60]
mov qword [rsp], rax
call fcn.0043b220
lea rax, [0x00661bce]
mov qword [rsp], rax
mov qword [rsp + 8], 0x1c
call fcn.0043b480
mov rax, qword [rsp + 0x80]
mov qword [rsp], rax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 8], rax
nop dword [rax + rax]
call fcn.0043b480
lea rax, [0x0065b949]
mov qword [rsp], rax
mov qword [rsp + 8], 0xb
call fcn.0043b480
mov rax, qword [rsp + 0x40]
mov qword [rsp], rax
call fcn.0043b2a0
lea rax, [0x0065a2d0]
mov qword [rsp], rax
mov qword [rsp + 8], 2
call fcn.0043b480
call fcn.0043aaa0
lea rax, [0x0065d32b]
mov qword [rsp], rax
mov qword [rsp + 8], 0x10
nop
call fcn.00439220
mov rax, qword [rsp + 0x90]
mov qword [rsp], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 8], rax
nop
call fcn.004550e0
mov rax, qword [rsp + 0x10]
mov qword [rsp + 0x80], rax
mov rcx, qword [rsp + 0x18]
mov qword [rsp + 0x68], rcx
mov rdx, qword [rsp + 0xa8]
mov rbx, qword [rdx + 0x40]
mov qword [rsp + 0x58], rbx
mov rdx, qword [rdx + 0x48]
mov qword [rsp + 0x50], rdx
call fcn.0043aa00
lea rax, [0x0065cf66]
mov qword [rsp], rax
mov qword [rsp + 8], 0xf
call fcn.0043b480
mov rax, qword [rsp + 0x80]
mov qword [rsp], rax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 8], rax
call fcn.0043b480
lea rax, [0x0065c74b]
mov qword [rsp], rax
mov qword [rsp + 8], 0xe
call fcn.0043b480
mov rax, qword [rsp + 0x58]
mov qword [rsp], rax
call fcn.0043b2a0
lea rax, [0x0065a2a2]
mov qword [rsp], rax
mov qword [rsp + 8], 1
call fcn.0043b480
mov rax, qword [rsp + 0x50]
mov qword [rsp], rax
call fcn.0043b2a0
nop dword [rax]
call fcn.0043ace0
call fcn.0043aaa0
lea rax, [0x0065d43b]
mov qword [rsp], rax
mov qword [rsp + 8], 0x10
nop
call fcn.00439220
mov rax, qword [rsp + 0x90]
mov qword [rsp], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 8], rax
nop
call fcn.004550e0
mov rax, qword [rsp + 0x10]
mov qword [rsp + 0x80], rax
mov rcx, qword [rsp + 0x18]
mov qword [rsp + 0x68], rcx
mov rdx, qword [rsp + 0x70]
movsxd rdx, dword [rdx]
mov qword [rsp + 0x60], rdx
call fcn.0043aa00
lea rax, [0x0065e605]
mov qword [rsp], rax
mov qword [rsp + 8], 0x13
call fcn.0043b480
mov eax, dword [rsp + 0x34]
movsxd rax, eax
mov qword [rsp], rax
call fcn.0043b220
lea rax, [0x0065a6ca]
mov qword [rsp], rax
mov qword [rsp + 8], 5
call fcn.0043b480
mov rax, qword [rsp + 0x60]
mov qword [rsp], rax
call fcn.0043b220
lea rax, [0x006628f4]
mov qword [rsp], rax
mov qword [rsp + 8], 0x1e
call fcn.0043b480
mov rax, qword [rsp + 0x80]
mov qword [rsp], rax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 8], rax
call fcn.0043b480
lea rax, [0x0065b949]
mov qword [rsp], rax
mov qword [rsp + 8], 0xb
call fcn.0043b480
mov rax, qword [rsp + 0x40]
mov qword [rsp], rax
call fcn.0043b2a0
lea rax, [0x0065a2d0]
mov qword [rsp], rax
mov qword [rsp + 8], 2
call fcn.0043b480
call fcn.0043aaa0
lea rax, [0x0065d32b]
mov qword [rsp], rax
mov qword [rsp + 8], 0x10
call fcn.00439220
mov rax, qword [rsp + 0x90]
mov qword [rsp], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 8], rax
call fcn.004550e0
mov rax, qword [rsp + 0x10]
mov qword [rsp + 0x80], rax
mov rcx, qword [rsp + 0x18]
mov qword [rsp + 0x68], rcx
mov rdx, qword [rsp + 0xa8]
mov rdx, qword [rdx + 0x38]
mov qword [rsp + 0x58], rdx
call fcn.0043aa00
lea rax, [0x0065cf66]
mov qword [rsp], rax
mov qword [rsp + 8], 0xf
call fcn.0043b480
mov rax, qword [rsp + 0x80]
mov qword [rsp], rax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 8], rax
call fcn.0043b480
lea rax, [0x0065d03b]
mov qword [rsp], rax
mov qword [rsp + 8], 0x10
call fcn.0043b480
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x48]
sub rax, rcx
mov qword [rsp], rax
call fcn.0043b2a0
lea rax, [0x0065a2a2]
mov qword [rsp], rax
mov qword [rsp + 8], 1
call fcn.0043b480
mov rax, qword [rsp + 0x48]
mov qword [rsp], rax
call fcn.0043b2a0
call fcn.0043ace0
call fcn.0043aaa0
lea rax, [0x0065d43b]
mov qword [rsp], rax
mov qword [rsp + 8], 0x10
call fcn.00439220
nop
call fcn.0046abe0
jmp fcn.004513a0