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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
lea rax, [rsp - 0x50]
cmp rax, qword [rcx + 0x10]
jbe 0x50a1b4
sub rsp, 0xd0
mov qword [rsp + 0xc8], rbp
lea rbp, [rsp + 0xc8]
mov rax, qword [rsp + 0xe0]
nop
test rax, rax
je 0x50a128
cmp rax, 1
je 0x50a0f9
lea rcx, [rax - 1]
mov rdx, qword [rsp + 0xf8]
mov rbx, rdx
imul rdx, rcx
mov rsi, qword [rsp + 0xd8]
xor edi, edi
jmp 0x509c05
lea r8, [rdi + 1]
shl rdi, 4
mov r9, qword [rsi + rdi + 8]
add rdx, r9
mov rdi, r8
cmp rax, rdi
jg 0x509bf2
xorps xmm0, xmm0
movups xmmword [rsp + 0xa8], xmm0
movups xmmword [rsp + 0xb8], xmm0
nop
lea rax, [rsp + 0xa8]
mov qword [rsp + 0xa8], rax
test rdx, rdx
jl 0x50a197
mov qword [rsp + 0x68], rcx
mov rdi, qword [rsp + 0xb8]
mov r8, qword [rsp + 0xc0]
mov r9, r8
sub r8, rdi
cmp r8, rdx
jl 0x50a03e
mov rdx, qword [rsi + 8]
mov rdi, qword [rsi]
nop
mov r8, qword [rsp + 0xa8]
test r8, r8
je 0x50a031
cmp rax, r8
jne 0x50a17b
mov r8, qword [rsp + 0xb8]
lea r9, [rdx + r8]
mov qword [rsp + 0x60], r9
mov r10, qword [rsp + 0xc0]
mov r11, qword [rsp + 0xb0]
nop
cmp r10, r9
jb 0x509fda
mov qword [rsp + 0x78], r10
mov qword [rsp + 0xa0], r11
lea rax, [r11 + r8]
mov qword [rsp], rax
mov qword [rsp + 8], rdi
mov qword [rsp + 0x10], rdx
call fcn.0046d6c0
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0xb8], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + 0xe8]
dec rax
neg rax
sar rax, 0x3f
and rax, 0x10
mov rcx, qword [rsp + 0xd8]
add rax, rcx
mov rcx, qword [rsp + 0x68]
nop dword [rax]
test rcx, rcx
jle 0x509ee9
mov rdx, qword [rsp + 0xf8]
mov rbx, qword [rsp + 0xf0]
xor esi, esi
jmp 0x509d5f
mov rdi, qword [rsp + 0x98]
add rdi, 0x10
mov rdx, qword [rsp + 0xf8]
mov rbx, qword [rsp + 0xf0]
mov rsi, rax
mov rax, rdi
mov rdi, qword [rax + 8]
mov r8, qword [rax]
nop
nop
mov r9, qword [rsp + 0xa8]
test r9, r9
je 0x509fc5
lea r10, [rsp + 0xa8]
cmp r10, r9
jne 0x50a15f
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x88], r8
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x98], rax
mov r9, qword [rsp + 0xb8]
lea r11, [rdx + r9]
mov qword [rsp + 0x78], r11
mov r12, qword [rsp + 0xc0]
mov r13, qword [rsp + 0xb0]
cmp r12, r11
jb 0x509f73
mov qword [rsp + 0x70], r12
mov qword [rsp + 0xa0], r13
lea rax, [r13 + r9]
mov qword [rsp], rax
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdx
call fcn.0046d6c0
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0xb8], rax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0xb0], rax
nop
nop
mov rax, qword [rsp + 0xa8]
test rax, rax
je 0x509f5e
lea rcx, [rsp + 0xa8]
nop dword [rax + rax]
cmp rcx, rax
jne 0x50a143
mov rax, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0x48]
lea rbx, [rdx + rax]
mov qword [rsp + 0x78], rbx
mov rsi, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0xb0]
cmp rsi, rbx
jb 0x509f19
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0xa0], rdi
add rax, rdi
mov qword [rsp], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rdx
nop
call fcn.0046d6c0
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0xb8], rax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + 0x60]
inc rax
mov rcx, qword [rsp + 0x68]
nop dword [rax]
cmp rcx, rax
jg 0x509d3d
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0xb8]
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x108], rcx
mov rbp, qword [rsp + 0xc8]
add rsp, 0xd0
ret
mov qword [rsp + 0x70], rax
lea rcx, [0x00614000]
mov qword [rsp], rcx
mov qword [rsp + 8], rdi
mov qword [rsp + 0x10], rax
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rbx
nop dword [rax]
call fcn.0044ddc0
mov rdi, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x38]
mov rax, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x48]
jmp 0x509e78
lea rcx, [rsp + 0xa8]
mov qword [rsp + 0xa8], rcx
jmp 0x509e49
mov qword [rsp + 0x70], r9
lea rax, [0x00614000]
mov qword [rsp], rax
mov qword [rsp + 8], r13
mov qword [rsp + 0x10], r9
mov qword [rsp + 0x18], r12
mov qword [rsp + 0x20], r11
call fcn.0044ddc0
mov r13, qword [rsp + 0x28]
mov r12, qword [rsp + 0x38]
mov rdx, qword [rsp + 0xf8]
mov rbx, qword [rsp + 0xf0]
mov r9, qword [rsp + 0x70]
nop dword [rax + rax]
jmp 0x509dce
lea r10, [rsp + 0xa8]
mov qword [rsp + 0xa8], r10
jmp 0x509d8a
mov qword [rsp + 0x78], r8
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x80], rdi
lea rax, [0x00614000]
mov qword [rsp], rax
mov qword [rsp + 8], r11
mov qword [rsp + 0x10], r8
mov qword [rsp + 0x18], r10
mov qword [rsp + 0x20], r9
call fcn.0044ddc0
mov r11, qword [rsp + 0x28]
mov r10, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x80]
mov r8, qword [rsp + 0x78]
jmp 0x509ca9
mov qword [rsp + 0xa8], rax
jmp 0x509c7d
mov qword [rsp + 0x50], rdi
nop
lea rax, [0x00614000]
mov qword [rsp], rax
mov qword [rsp + 8], rdi
lea rcx, [rdx + r9*2]
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x10], rcx
call fcn.0044dcc0
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0x50]
cmp rax, rcx
mov rdx, rcx
cmovl rcx, rax
mov rax, qword [rsp + 0x18]
mov rbx, qword [rsp + 0xb0]
cmp rax, rbx
jne 0x50a0cf
mov qword [rsp + 0xb8], rdx
mov rdx, qword [rsp + 0x58]
mov qword [rsp + 0xc0], rdx
mov qword [rsp + 0xb0], rax
lea rax, [rsp + 0xa8]
mov rcx, qword [rsp + 0x68]
mov rbx, qword [rsp + 0xf8]
mov rsi, qword [rsp + 0xd8]
jmp 0x509c5b
mov qword [rsp + 0x90], rax
mov qword [rsp], rax
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rcx
call fcn.0046d6c0
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x50]
jmp 0x50a090
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rax]
mov rax, qword [rax + 8]
mov qword [rsp + 0x100], rcx
mov qword [rsp + 0x108], rax
mov rbp, qword [rsp + 0xc8]
add rsp, 0xd0
ret
xorps xmm0, xmm0
movups xmmword [rsp + 0x100], xmm0
mov rbp, qword [rsp + 0xc8]
add rsp, 0xd0
ret
lea rax, [0x00613e40]
mov qword [rsp], rax
lea rax, [0x006a15c0]
mov qword [rsp + 8], rax
call fcn.00438920
lea rax, [0x00613e40]
mov qword [rsp], rax
lea rax, [0x006a15c0]
mov qword [rsp + 8], rax
call fcn.00438920
lea rax, [0x00613e40]
mov qword [rsp], rax
lea rax, [0x006a15c0]
mov qword [rsp + 8], rax
call fcn.00438920
lea rax, [0x00613e40]
mov qword [rsp], rax
lea rax, [0x006a19f0]
mov qword [rsp + 8], rax
call fcn.00438920
nop
call fcn.0046abe0
jmp fcn.00509b80