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

Disassembly:
lea r12, [rsp - 0x58]
cmp r12, qword [r14 + 0x10]
jbe 0x647266
sub rsp, 0xd8
mov qword [rsp + 0xd0], rbp
lea rbp, [rsp + 0xd0]
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xe8], rbx
mov qword [rsp + 0xf8], rdi
mov qword [rsp + 0xf0], rcx
jmp 0x646f9e
movups xmm0, xmmword [rsp + 0x88]
movups xmmword [rsp + 0x48], xmm0
movups xmm0, xmmword [rsp + 0x98]
movups xmmword [rsp + 0x58], xmm0
movzx r9d, byte [rsp + 0x48]
mov rax, qword [rsp + 0xe0]
mov byte [rax + 0x68], r9b
mov r9, qword [rsp + 0x58]
mov qword [rax + 0x70], r9
mov r9d, dword [rsp + 0x64]
mov dword [rax + 0x78], r9d
mov rcx, qword [rsp + 0xf0]
mov rbx, qword [rsp + 0xe8]
mov rdi, qword [rsp + 0xf8]
mov r9, qword [rax + 0x70]
test r9, r9
jne 0x6471a4
cmp byte [rax + 0x68], 0
jne 0x6470de
mov rdx, qword [rax]
mov rbx, qword [rax + 8]
mov rcx, qword [rax + 0x10]
mov rax, rdx
call fcn.00644a60
mov rdx, qword [rsp]
mov r11, qword [rsp + 8]
cmp qword [rsp], 0
mov byte [rsp + 0xa8], al
mov byte [rsp + 0xa9], bl
mov byte [rsp + 0xaa], cl
mov byte [rsp + 0xab], dil
mov qword [rsp + 0xb0], rsi
mov qword [rsp + 0xb8], r8
mov byte [rsp + 0xc0], r9b
mov dword [rsp + 0xc4], r10d
movups xmm0, xmmword [rsp + 0xa8]
movups xmmword [rsp + 0x88], xmm0
movups xmm0, xmmword [rsp + 0xb8]
movups xmmword [rsp + 0x98], xmm0
movups xmm0, xmmword [rsp + 0xa8]
movups xmmword [rsp + 0x68], xmm0
movups xmm0, xmmword [rsp + 0xb8]
movups xmmword [rsp + 0x78], xmm0
jne 0x6470c6
cmp qword [rsp + 0x70], 0
je 0x646f48
nop
lea rax, [0x0067fd60]
call fcn.0040da20
mov qword [rsp + 0xc8], rax
mov qword [rax + 8], 0x40
lea rcx, [0x006cbff3]
mov qword [rax], rcx
mov rcx, qword [rsp + 0xe0]
mov rcx, qword [rcx]
mov ebx, 0x3ea
mov rdi, rax
mov rax, rcx
lea rcx, [0x0072e7e0]
nop
call fcn.00649fe0
xor eax, eax
lea rbx, [0x0072e7e0]
mov rcx, qword [rsp + 0xc8]
mov rbp, qword [rsp + 0xd0]
add rsp, 0xd8
ret
xor eax, eax
mov rbx, rdx
mov rcx, r11
mov rbp, qword [rsp + 0xd0]
add rsp, 0xd8
ret
cmp byte [rax + 0x18], 0
je 0x647184
mov rdx, qword [rax + 0x48]
cmp qword [rax + 0x40], rdx
jg 0x647104
mov rdx, qword [0x008b5f90]
mov rsi, qword [0x008b5f98]
xor ecx, ecx
jmp 0x64716b
mov qword [rax + 0x50], 0xffffffffffffffff
mov rdx, qword [rax + 0x40]
mov rsi, qword [rax + 0x38]
mov rdi, qword [rax + 0x48]
nop dword [rax + rax]
cmp rdx, rdi
jb 0x647255
sub rdx, rdi
cmp rcx, rdx
cmovg rcx, rdx
neg rdx
sar rdx, 0x3f
and rdi, rdx
lea rdx, [rsi + rdi]
cmp rbx, rdx
je 0x647163
mov qword [rsp + 0x30], rcx
mov rax, rbx
mov rbx, rdx
call fcn.00466460
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0x30]
add qword [rax + 0x48], rcx
xor edx, edx
xor esi, esi
mov rax, rcx
mov rbx, rdx
mov rcx, rsi
mov rbp, qword [rsp + 0xd0]
add rsp, 0xd8
ret
mov rbx, qword [0x008b5f90]
mov rcx, qword [0x008b5f98]
xor eax, eax
mov rbp, qword [rsp + 0xd0]
add rsp, 0xd8
ret
cmp rcx, r9
jle 0x6471b3
cmp rdi, r9
jae 0x6471b6
jmp 0x64724a
mov r9, rcx
mov qword [rsp + 0x40], r9
mov rdx, qword [rax]
mov r10, qword [rax + 8]
mov rcx, qword [rax + 0x10]
mov rsi, r9
mov r8, rdi
mov rdi, rbx
mov rbx, r10
mov rax, rdx
call fcn.00645680
test rbx, rbx
jne 0x64723a
mov rdx, qword [rsp + 0xe0]
sub qword [rdx + 0x70], rax
mov rsi, qword [rdx]
cmp byte [rsi + 0x20], 0
jne 0x647226
mov qword [rsp + 0x38], rax
mov eax, dword [rdx + 0x78]
mov rbx, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0x40]
mov rdi, qword [rsp + 0xf8]
call fcn.00642fe0
mov rdx, qword [rsp + 0xe0]
mov dword [rdx + 0x78], eax
mov rax, qword [rsp + 0x38]
xor ebx, ebx
xor ecx, ecx
mov rbp, qword [rsp + 0xd0]
add rsp, 0xd8
ret
mov rbp, qword [rsp + 0xd0]
add rsp, 0xd8
ret
mov rcx, r9
mov rdx, rdi
call fcn.00465b20
mov rax, rdi
mov rcx, rdx
nop dword [rax + rax]
call fcn.00465b60
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
call fcn.00463440
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
jmp fcn.00646f00