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

Disassembly:
lea r12, [rsp - 0x10]
cmp r12, qword [r14 + 0x10]
jbe 0x479871
push rbp
mov rbp, rsp
sub rsp, 0x88
nop word [rax + rax]
test rbx, rbx
je 0x479604
test rcx, rcx
jg 0x47940e
mov rdx, rcx
neg rdx
bsf r9, rbx
cmp r9, rdx
jl 0x47940e
mov rcx, rdx
shr rbx, cl
cmp rcx, 0x40
sbb rdi, rdi
and rdi, rbx
mov rbx, rdi
mov rcx, rbx
mov esi, 1
xor r8d, r8d
nop dword [rax + rax]
call fcn.004798c0
add rsp, 0x88
pop rbp
ret
mov rdx, qword [rdi]
mov rsi, rcx
mov rcx, rdx
mov r9d, 1
shl r9, cl
cmp rcx, 0x40
sbb r10, r10
and r9, r10
cmp rbx, r9
jne 0x47943f
mov r9, qword [rdi + 0x10]
sub r9, rcx
lea rdx, [r9 + 1]
cmp rsi, rdx
jne 0x47945b
mov rdx, rbx
shl rbx, 1
lea r9, [rdx + rdx]
lea r9, [r9 - 1]
lea r10, [rdx + rdx]
lea r10, [r10 + 1]
lea r11, [rsi - 1]
jmp 0x479480
mov r9, rbx
shl r9, 2
lea rdx, [r9 - 1]
lea r10, [r9 + 2]
lea r11, [rsi - 2]
mov rcx, rdx
mov rdx, rbx
mov rbx, r9
mov r9, rcx
nop word [rax + rax]
test r11, r11
je 0x4795e5
mov qword [rsp + 0x80], rdx
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x58], r11
mov qword [rsp + 0x98], rax
imul rcx, r11, 0xfffffffffffecbbf
sar rcx, 0x12
mov qword [rsp + 0x38], rcx
lea rsi, [rcx + 1]
mov qword [rsp + 0x48], rsi
lea r8, [0x0088d530]
cmp rdi, r8
jne 0x479542
mov rax, r9
mov rbx, r11
mov rcx, rsi
nop dword [rax + rax]
call fcn.00479da0
mov dword [rsp + 0x30], eax
mov byte [rsp + 0x2e], cl
mov rbx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x48]
nop dword [rax]
call fcn.00479da0
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]
nop dword [rax]
call fcn.00479da0
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]
nop
jmp 0x4795a2
mov rax, r9
mov rbx, r11
mov rcx, rsi
call fcn.00479e80
mov qword [rsp + 0x68], rax
mov byte [rsp + 0x2e], cl
mov rbx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x48]
call fcn.00479e80
mov qword [rsp + 0x70], rax
mov byte [rsp + 0x2f], cl
mov rbx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
call fcn.00479e80
mov rdx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
mov rdi, rax
movzx eax, byte [rsp + 0x2f]
movzx r8d, byte [rsp + 0x2e]
test rbx, rbx
jge 0x47985d
mov r9, qword [rsp + 0x48]
cmp r9, 0x37
jle 0x4795bd
xor ecx, ecx
xor eax, eax
xor r8d, r8d
mov r10, qword [rsp + 0x38]
lea r11, [r10 + 0x19]
cmp r11, 0x18
jae 0x479612
neg r9
mov r11, qword [rsp + 0x50]
test r11, r11
je 0x4797b8
xor r12d, r12d
jmp 0x47978b
mov rcx, rbx
mov rdi, r10
mov esi, 1
xor r8d, r8d
mov rbx, r9
call fcn.004798c0
add rsp, 0x88
pop rbp
ret
movups xmmword [rax + 0x18], xmm15
add rsp, 0x88
pop rbp
ret
mov qword [rsp + 0x60], rdi
mov r9, rbx
neg rbx
mov r11d, ecx
mov rcx, rbx
mov r12d, 1
shl r12, cl
mov r13, rdx
shr rdx, cl
mov r15, rsi
shr rsi, cl
shr rdi, cl
cmp rcx, 0x40
sbb rcx, rcx
and r12, rcx
dec r12
and rdx, rcx
and rsi, rcx
and r15, r12
and rdi, rcx
mov rcx, r10
mov r10, qword [rsp + 0x60]
and r10, r12
nop
test r11b, r11b
je 0x479670
test r10, r10
seta bl
test r11b, r11b
jmp 0x479675
mov ebx, 1
je 0x47968e
test r10, r10
jne 0x47968e
mov r10, qword [rsp + 0x80]
bt r10d, 0
setae bl
jmp 0x479696
mov r10, qword [rsp + 0x80]
lea r11, [rdi - 1]
movzx ebx, bl
test rbx, rbx
cmovne r11, rdi
test al, al
je 0x4796ea
inc r9
neg r9
mov rbx, rcx
mov rcx, r9
mov rdi, r11
mov r11d, 1
shl r11, cl
cmp rcx, 0x40
sbb r9, r9
and r11, r9
cmp r11, r15
jae 0x4796d9
mov rcx, rsi
mov esi, 1
jmp 0x47971a
jne 0x4796e3
mov rcx, rsi
and esi, 1
jmp 0x47971a
mov rcx, rsi
xor esi, esi
jmp 0x47971a
inc r9
neg r9
mov rbx, rcx
mov rcx, r9
mov rdi, r15
shr r15, cl
cmp rcx, 0x40
sbb r9, r9
and r15, r9
cmp r15, 1
sete r9b
mov rcx, rsi
mov r15, rdi
mov esi, r9d
mov rdi, r11
test r8b, r8b
je 0x479730
nop
test r12, r13
jne 0x479730
bt r10d, 0
jb 0x479730
test al, al
jmp 0x479735
inc rdx
test al, al
je 0x479742
test r15, r15
sete r9b
nop
jmp 0x479745
xor r9d, r9d
mov rax, qword [rsp + 0x98]
mov rbx, rdx
mov r8d, esi
mov esi, r9d
call fcn.004798c0
mov rdx, qword [rsp + 0x98]
mov r9, qword [rdx + 0x20]
mov r10, qword [rsp + 0x38]
sub r9, r10
dec r9
mov qword [rdx + 0x20], r9
add rsp, 0x88
pop rbp
ret
inc r12
mov eax, r13d
mov r11, rdx
mov rdx, r15
cmp r12, r9
jge 0x4797b8
mov r13d, eax
movabs rax, 0xcccccccccccccccd
mov r15, rdx
mul r11
shr rdx, 2
lea rax, [rdx + rdx*4]
cmp r11, rax
je 0x47977f
mov eax, r13d
mov rdx, r15
jmp 0x4797be
mov r8d, 1
mov r11, qword [rsp + 0x78]
test r11, r11
je 0x479803
xor r12d, r12d
jmp 0x4797d9
inc r12
mov eax, r13d
mov r11, rdx
mov rdx, r15
cmp r12, r9
jge 0x479803
mov r13d, eax
movabs rax, 0xcccccccccccccccd
mov r15, rdx
mul r11
shr rdx, 2
lea rax, [rdx + rdx*4]
cmp r11, rax
je 0x4797cd
mov rdx, r15
jmp 0x479809
mov r13d, 1
mov r11, qword [rsp + 0x40]
test r11, r11
je 0x479817
xor eax, eax
jmp 0x479831
mov eax, 1
mov ecx, eax
mov eax, r13d
jmp 0x479612
lea rax, [r12 + 1]
mov r11, rdx
mov rdx, r15
cmp rax, r9
jge 0x479817
mov r12, rax
movabs rax, 0xcccccccccccccccd
mov r15, rdx
mul r11
shr rdx, 2
lea rax, [rdx + rdx*4]
cmp r11, rax
je 0x479826
mov rdx, r15
mov eax, ecx
jmp 0x47981c
lea rax, [0x0065b7a0]
lea rbx, [0x00727610]
call fcn.00436ac0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
call fcn.004646a0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
nop
jmp fcn.004793a0