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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
cmp rsp, qword [rcx + 0x10]
jbe 0x484855
sub rsp, 0x48
mov qword [rsp + 0x40], rbp
lea rbp, [rsp + 0x40]
mov rcx, qword [rsp + 0x50]
mov edx, dword [rcx]
xor eax, eax
xor ebx, ebx
xor esi, esi
xor edi, edi
jmp 0x4845bc
mov rax, r8
mov qword [rsp + 0x30], rdi
mov byte [rsp + 0x1e], sil
mov byte [rsp + 0x1d], bl
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x24], edx
mov r8d, edx
and edx, 5
mov dword [rsp + 0x2c], edx
nop dword [rax]
cmp edx, 1
je 0x48481f
xor r9d, r9d
test r9b, r9b
jne 0x4847b1
mov r9d, r8d
or r8d, 1
test r9d, 4
mov r10d, r9d
cmove r9d, r8d
lea r8d, [r9 + 8]
test edx, edx
cmovne r9d, r8d
test bl, bl
je 0x484623
bt r10d, 0
jae 0x484623
or r9d, 4
test sil, sil
je 0x484637
bt r9d, 1
jae 0x484765
and r9d, 0xfffffffd
mov r8, rax
mov eax, r10d
lock cmpxchg dword [rcx], r9d
sete r9b
test r9b, r9b
jne 0x484652
mov edx, dword [rcx]
jmp 0x4845b9
test edx, edx
je 0x484713
nop word [rax + rax]
test rdi, rdi
je 0x48474c
mov rax, rdi
mov qword [rsp + 0x30], rdi
lea rdx, [rcx + 4]
mov qword [rsp], rdx
test rax, rax
setne byte [rsp + 8]
mov qword [rsp + 0x10], 1
call fcn.00467de0
movzx eax, byte [rsp + 0x1d]
test al, al
je 0x48472d
mov eax, 1
mov rcx, qword [rsp + 0x50]
mov edx, dword [rcx]
bt edx, 2
jb 0x4846c5
xor r8d, r8d
mov ebx, eax
mov esi, 1
mov rdi, qword [rsp + 0x30]
nop dword [rax]
jmp 0x4845b9
mov byte [rsp + 0x1f], al
mov dword [rsp + 0x20], edx
test edx, 3
je 0x484724
lea rax, [0x00662e1c]
mov qword [rsp], rax
mov qword [rsp + 8], 0x1e
call fcn.00466f80
movzx eax, byte [rsp + 0x1f]
test al, al
je 0x484705
mov eax, dword [rsp + 0x20]
sar eax, 3
nop
cmp eax, 1
jne 0x48471d
mov eax, 0xfffffff5
mov rcx, qword [rsp + 0x50]
lock xadd dword [rcx], eax
mov rbp, qword [rsp + 0x40]
add rsp, 0x48
ret
mov eax, 0xfffffff9
jmp 0x48470a
sar edx, 3
test edx, edx
je 0x4846d5
jmp 0x4846ee
call fcn.00468460
mov rax, qword [rsp]
mov rcx, qword [rsp + 0x30]
sub rax, rcx
cmp rax, 0xf4240
setg al
jmp 0x4846a1
call fcn.00468460
mov rdi, qword [rsp]
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x50]
nop
jmp 0x48466c
mov dword [rsp + 0x28], r9d
lea rax, [0x00662e1c]
mov qword [rsp], rax
mov qword [rsp + 8], 0x1e
nop
call fcn.00466f80
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x50]
mov edx, dword [rsp + 0x2c]
movzx ebx, byte [rsp + 0x1d]
movzx esi, byte [rsp + 0x1e]
mov rdi, qword [rsp + 0x30]
mov r9d, dword [rsp + 0x28]
mov r10d, dword [rsp + 0x24]
jmp 0x484633
test sil, sil
je 0x4847e9
mov byte [rsp + 0x1e], sil
nop dword [rax + rax]
call fcn.004673c0
mov rax, qword [rsp + 0x38]
lea r8, [rax + 1]
mov rcx, qword [rsp + 0x50]
mov edx, dword [rcx]
movzx ebx, byte [rsp + 0x1d]
movzx esi, byte [rsp + 0x1e]
mov rdi, qword [rsp + 0x30]
jmp 0x4845b9
bt r8d, 1
jb 0x4847b6
mov edx, r8d
sar r8d, 3
test r8d, r8d
je 0x4847b6
mov r8d, edx
or edx, 2
mov r9, rax
mov eax, r8d
lock cmpxchg dword [rcx], edx
sete dl
test dl, dl
je 0x48481a
mov esi, 1
jmp 0x4847b6
mov rax, r9
jmp 0x4847b6
mov qword [rsp], rax
call fcn.00467340
movzx r9d, byte [rsp + 8]
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x50]
mov edx, dword [rsp + 0x2c]
movzx ebx, byte [rsp + 0x1d]
movzx esi, byte [rsp + 0x1e]
mov rdi, qword [rsp + 0x30]
mov r8d, dword [rsp + 0x24]
jmp 0x4845ec
call fcn.0046abe0
jmp fcn.00484580