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

Disassembly:
lea r12, [rsp - 0x18]
cmp r12, qword [r14 + 0x10]
jbe 0x46eec6
sub rsp, 0x98
mov qword [rsp + 0x90], rbp
lea rbp, [rsp + 0x90]
mov qword [rsp + 0xa0], rax
lea rdx, [rsi - 2]
cmp rdx, 0x22
ja 0x46eead
movups xmmword [rsp + 0x47], xmm15
movups xmmword [rsp + 0x48], xmm15
movups xmmword [rsp + 0x58], xmm15
movups xmmword [rsp + 0x68], xmm15
movups xmmword [rsp + 0x78], xmm15
test r8b, r8b
je 0x46eba2
neg rdi
mov byte [rsp + 0xc9], r9b
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0xb0], rcx
cmp rsi, 0xa
jne 0x46ebd2
mov edx, 0x41
jmp 0x46ee62
mov byte [rsp + 0xc8], r8b
mov qword [rsp + 0xc0], rsi
mov qword [rsp + 0x38], rdi
mov rax, rsi
call fcn.0046ef20
test al, al
jne 0x46ec0a
mov rdx, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0x38]
mov eax, 0x41
jmp 0x46ede0
mov rax, qword [rsp + 0xc0]
call fcn.00468940
and eax, 7
mov rcx, qword [rsp + 0xc0]
lea rdx, [rcx - 1]
mov rbx, qword [rsp + 0x38]
mov esi, 0x41
jmp 0x46ec60
mov r8, rbx
and rbx, rdx
lea r9, [0x00651cf5]
movzx r9d, byte [rbx + r9]
mov byte [rsp + rsi + 0x46], r9b
dec rsi
mov rbx, rcx
mov rcx, rax
shr r8, cl
mov rcx, rbx
mov rbx, r8
nop dword [rax + rax]
cmp rcx, rbx
jbe 0x46ec32
lea rdx, [0x00651cf5]
movzx edx, byte [rbx + rdx]
mov byte [rsp + rsi + 0x46], dl
lea rdx, [rsi - 1]
movzx r8d, byte [rsp + 0xc8]
test r8b, r8b
je 0x46ec8e
mov byte [rsp + rdx + 0x46], 0x2d
dec rdx
movzx r8d, byte [rsp + 0xc9]
nop word [rax + rax]
test r8b, r8b
je 0x46ed70
mov rcx, qword [rsp + 0xa8]
mov r8, rcx
sub rcx, rdx
lea rsi, [rcx + 0x41]
mov qword [rsp + 0x30], rsi
lea rcx, [rdx - 0x41]
mov r9, rcx
sar rcx, 0x3f
and rdx, rcx
lea rbx, [rsp + rdx + 0x47]
mov rdi, qword [rsp + 0xb0]
nop dword [rax + rax]
cmp rdi, rsi
jb 0x46ecef
mov rax, qword [rsp + 0xa0]
jmp 0x46ed2b
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0x28], r9
lea rax, [0x005fe2e0]
mov rbx, qword [rsp + 0xa0]
mov rcx, r8
call fcn.00448f20
mov rbx, qword [rsp + 0x88]
mov r8, qword [rsp + 0xa8]
mov r9, qword [rsp + 0x28]
mov rdi, rcx
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x88], rax
lea rdx, [rax + r8]
neg r9
mov rcx, r9
mov rax, rdx
call fcn.00461f80
mov rax, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x28]
xor edi, edi
xor esi, esi
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
lea rcx, [rdx - 0x41]
mov rsi, rcx
sar rcx, 0x3f
and rdx, rcx
lea rbx, [rsp + rdx + 0x47]
neg rsi
xor eax, eax
mov rcx, rsi
call fcn.0044cd60
xor ecx, ecx
mov rdi, rax
mov rsi, rbx
xor eax, eax
mov rbx, rcx
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
mov rcx, rax
mov rax, rdi
mov r8, rdx
xor edx, edx
div r8
mov rdx, r8
imul r8, rax
sub rdi, r8
lea r8, [0x00651cf5]
movzx r8d, byte [rdi + r8]
mov byte [rsp + rcx + 0x46], r8b
lea r8, [rcx - 1]
mov rdi, rax
mov rax, r8
cmp rdx, rdi
jbe 0x46edad
lea r8, [0x00651cf5]
movzx r8d, byte [rdi + r8]
mov byte [rsp + rax + 0x46], r8b
lea rdx, [rax - 1]
movzx r8d, byte [rsp + 0xc8]
test r8b, r8b
jmp 0x46ec84
mov r10, rdi
shr rdi, 1
mov rsi, rax
movabs rax, 0xa3d70a3d70a3d70b
mov r11, rdx
mul rdi
shr rdx, 5
imul r12, rdx, 0x64
sub r10, r12
lea r12, [0x00659bcb]
lea r13, [r12 + r10*2]
lea r13, [r13 + 1]
movzx r13d, byte [r13]
mov byte [rsp + r11 + 0x46], r13b
lea r10, [r12 + r10*2]
movzx r10d, byte [r10]
mov byte [rsp + r11 + 0x45], r10b
lea r10, [r11 - 2]
mov rax, rsi
mov rdi, rdx
mov rdx, r10
cmp rdi, 0x64
jae 0x46ee0b
lea r10, [0x00659bcb]
lea r11, [r10 + rdi*2]
lea r11, [r11 + 1]
movzx r11d, byte [r11]
mov byte [rsp + rdx + 0x46], r11b
lea r11, [rdx - 1]
cmp rdi, 0xa
jb 0x46eea2
lea r10, [r10 + rdi*2]
movzx r10d, byte [r10]
mov byte [rsp + rdx + 0x45], r10b
lea r11, [rdx - 2]
test r8b, r8b
nop
jmp 0x46eea5
test r8b, r8b
mov rdx, r11
jmp 0x46ec84
lea rax, [0x005fe120]
lea rbx, [0x00685090]
nop dword [rax + rax]
call fcn.00436780
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x28], rsi
mov byte [rsp + 0x30], r8b
mov byte [rsp + 0x31], r9b
call fcn.0045f280
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
movzx r8d, byte [rsp + 0x30]
movzx r9d, byte [rsp + 0x31]
jmp fcn.0046eb40