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

Disassembly:
lea r12, [rsp - 8]
cmp r12, qword [r14 + 0x10]
jbe 0x485a96
sub rsp, 0x88
mov qword [rsp + 0x80], rbp
lea rbp, [rsp + 0x80]
test rbx, rbx
je 0x4857fb
test rcx, rcx
jg 0x485615
bsf rdx, rbx
mov r9, rcx
neg rcx
nop
cmp rdx, rcx
jl 0x485618
cmp rcx, 0x40
sbb rdi, rdi
shr rbx, cl
and rdi, rbx
mov rbx, rdi
mov rcx, rbx
mov esi, 1
xor r8d, r8d
call fcn.00485ae0
mov rbp, qword [rsp + 0x80]
add rsp, 0x88
ret
mov r9, rcx
mov rcx, qword [rdi]
cmp rcx, 0x40
sbb rdx, rdx
mov r10d, 1
shl r10, cl
and r10, rdx
cmp rbx, r10
jne 0x485645
mov rdx, qword [rdi + 0x10]
sub rdx, rcx
inc rdx
nop dword [rax]
cmp r9, rdx
jne 0x485662
mov rdx, rbx
shl rbx, 1
lea r10, [rdx + rdx]
lea r10, [r10 - 1]
lea r11, [rdx + rdx]
lea r11, [r11 + 1]
dec r9
nop
jmp 0x485681
mov r10, rbx
shl r10, 2
lea rdx, [r10 - 1]
lea r11, [r10 + 2]
add r9, 0xfffffffffffffffe
mov rcx, rdx
mov rdx, rbx
mov rbx, r10
mov r10, rcx
test r9, r9
je 0x4857d5
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x50], r10
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x40], r11
mov qword [rsp + 0x58], r9
mov qword [rsp + 0x90], rax
imul rcx, r9, 0xfffffffffffecbbf
sar rcx, 0x12
mov qword [rsp + 0x38], rcx
lea rsi, [rcx + 1]
mov qword [rsp + 0x48], rsi
lea r8, [0x00800e20]
cmp rdi, r8
jne 0x485731
mov rax, r10
mov rbx, r9
mov rcx, rsi
call fcn.00485fe0
mov dword [rsp + 0x30], eax
mov byte [rsp + 0x2e], cl
mov rbx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x48]
call fcn.00485fe0
mov dword [rsp + 0x34], eax
mov byte [rsp + 0x2f], cl
mov rbx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
call fcn.00485fe0
mov edx, dword [rsp + 0x30]
mov edx, edx
mov esi, dword [rsp + 0x34]
mov esi, esi
mov edi, eax
movzx eax, byte [rsp + 0x2f]
movzx r8d, byte [rsp + 0x2e]
jmp 0x485791
mov rax, r10
mov rbx, r9
mov rcx, rsi
call fcn.004860c0
mov qword [rsp + 0x60], rax
mov byte [rsp + 0x2e], cl
mov rbx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x48]
call fcn.004860c0
mov qword [rsp + 0x68], rax
mov byte [rsp + 0x2f], cl
mov rbx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
call fcn.004860c0
mov rdx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
mov rdi, rax
movzx eax, byte [rsp + 0x2f]
movzx r8d, byte [rsp + 0x2e]
test rbx, rbx
jge 0x485a82
mov r9, qword [rsp + 0x48]
nop
cmp r9, 0x37
jle 0x4857ad
xor ecx, ecx
xor eax, eax
xor r8d, r8d
mov r10, qword [rsp + 0x38]
lea r11, [r10 + 0x19]
cmp r11, 0x18
jae 0x485810
neg r9
mov r11, qword [rsp + 0x50]
test r11, r11
je 0x4859c6
xor r12d, r12d
jmp 0x485994
mov rcx, rbx
mov rdi, r11
mov esi, 1
xor r8d, r8d
mov rbx, r10
call fcn.00485ae0
mov rbp, qword [rsp + 0x80]
add rsp, 0x88
ret
movups xmmword [rax + 0x18], xmm15
mov rbp, qword [rsp + 0x80]
add rsp, 0x88
ret
mov qword [rsp + 0x68], rsi
mov r9, rbx
neg rbx
cmp rbx, 0x40
sbb r11, r11
mov r12d, ecx
mov rcx, rbx
mov r13d, 1
shl r13, cl
and r13, r11
dec r13
mov r15, rdx
shr rdx, cl
and rdx, r11
shr rsi, cl
and rsi, r11
mov r10, qword [rsp + 0x68]
and r10, r13
mov rbx, rdi
shr rdi, cl
and rdi, r11
and rbx, r13
test r12b, r12b
je 0x48586b
test rbx, rbx
seta r11b
test r12b, r12b
jmp 0x485871
mov r11d, 1
je 0x485888
test rbx, rbx
jne 0x485888
mov r12, qword [rsp + 0x78]
bt r12d, 0
setae r11b
jmp 0x48588d
mov r12, qword [rsp + 0x78]
mov rcx, r12
lea r12, [rdi - 1]
movzx r11d, r11b
test r11, r11
cmovne r12, rdi
nop
test al, al
je 0x4858e6
inc r9
neg r9
cmp r9, 0x40
sbb r11, r11
mov rbx, rcx
mov rcx, r9
mov rdi, r12
mov r12d, 1
shl r12, cl
and r12, r11
cmp r12, r10
jae 0x4858d5
mov rcx, rsi
mov esi, 1
jmp 0x485916
jne 0x4858df
mov rcx, rsi
and esi, 1
jmp 0x485916
mov rcx, rsi
xor esi, esi
jmp 0x485916
inc r9
neg r9
cmp r9, 0x40
sbb r11, r11
mov rbx, rcx
mov rcx, r9
mov rdi, r10
shr r10, cl
and r10, r11
cmp r10, 1
sete r9b
mov rcx, rsi
mov r10, rdi
mov esi, r9d
mov rdi, r12
test r8b, r8b
je 0x48592f
nop dword [rax + rax]
test r13, r15
jne 0x48592f
bt ebx, 0
jb 0x48592f
test al, al
jmp 0x485934
inc rdx
test al, al
je 0x48593f
test r10, r10
sete r9b
jmp 0x485942
xor r9d, r9d
mov rax, qword [rsp + 0x90]
mov rbx, rdx
mov r8d, esi
mov esi, r9d
call fcn.00485ae0
mov rdx, qword [rsp + 0x90]
mov r9, qword [rdx + 0x20]
mov r10, qword [rsp + 0x38]
sub r9, r10
dec r9
mov qword [rdx + 0x20], r9
mov rbp, qword [rsp + 0x80]
add rsp, 0x88
ret
inc r12
mov eax, r13d
mov r10, qword [rsp + 0x38]
mov r11, rdx
mov rdx, r15
cmp r12, r9
jge 0x4859c6
mov r13d, eax
movabs rax, 0xcccccccccccccccd
mov r15, rdx
mul r11
shr rdx, 2
lea r10, [rdx + rdx*4]
cmp r11, r10
je 0x485983
mov eax, r13d
mov rdx, r15
mov r10, qword [rsp + 0x38]
jmp 0x4859cc
mov r8d, 1
mov r11, qword [rsp + 0x70]
test r11, r11
je 0x485a1c
xor r12d, r12d
jmp 0x4859ec
inc r12
mov eax, r13d
mov r10, qword [rsp + 0x38]
mov r11, rdx
mov rdx, r15
cmp r12, r9
jge 0x485a1c
mov r13d, eax
movabs rax, 0xcccccccccccccccd
mov r15, rdx
mul r11
shr rdx, 2
mov rax, r10
lea r10, [rdx + rdx*4]
cmp r11, r10
je 0x4859db
mov rdx, r15
mov r10, rax
jmp 0x485a22
mov r13d, 1
mov r11, qword [rsp + 0x40]
test r11, r11
je 0x485a30
xor eax, eax
jmp 0x485a4e
mov eax, 1
mov ecx, eax
mov eax, r13d
jmp 0x485810
inc r12
mov r10, rax
mov rax, r12
mov r11, rdx
mov rdx, r15
cmp rax, r9
jge 0x485a30
mov r12, rax
movabs rax, 0xcccccccccccccccd
mov r15, rdx
mul r11
shr rdx, 2
mov rax, r10
lea r10, [rdx + rdx*4]
cmp r11, r10
je 0x485a3f
mov rdx, r15
mov r10, rax
mov eax, ecx
nop
jmp 0x485a35
lea rax, [0x00868e20]
lea rbx, [0x0096eff0]
call fcn.00438e60
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
call fcn.00464c60
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
jmp fcn.004855a0