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

Disassembly:
lea r12, [rsp - 0x10]
cmp r12, qword [r14 + 0x10]
jbe 0x47a7d9
push rbp
mov rbp, rsp
sub rsp, 0x88
mov qword [rsp + 0x98], rax
lea rdx, [rsi - 2]
cmp rdx, 0x22
ja 0x47a7c5
movups xmmword [rsp + 0x3f], xmm15
movups xmmword [rsp + 0x40], xmm15
movups xmmword [rsp + 0x50], xmm15
movups xmmword [rsp + 0x60], xmm15
movups xmmword [rsp + 0x70], xmm15
test r8b, r8b
je 0x47a396
neg rdi
cmp rsi, 0xa
jne 0x47a3a6
mov edx, 0x41
jmp 0x47a640
lea rdx, [rsi - 1]
test rsi, rdx
jne 0x47a3c6
lea rdx, [rsi - 1]
bsf r10, rsi
and r10d, 7
mov r11d, 0x41
jmp 0x47a5c3
mov edx, 0x41
jmp 0x47a3e0
mov byte [rsp + r11 + 0x3e], r12b
mov rdi, rdx
mov rdx, rax
mov rax, r10
nop dword [rax + rax]
cmp rsi, rdi
ja 0x47a42b
mov r10, rax
mov rax, rdi
mov r11, rdx
xor edx, edx
div rsi
mov rdx, rax
imul rax, rsi
sub rdi, rax
nop dword [rax]
cmp rdi, 0x24
jae 0x47a59f
lea rax, [r11 - 1]
lea r12, [0x006bd02b]
movzx r12d, byte [rdi + r12]
nop word [rax + rax]
cmp rax, 0x41
jb 0x47a3cd
jmp 0x47a595
lea r10, [rdx - 1]
lea r11, [0x006bd02b]
movzx r11d, byte [rdi + r11]
nop dword [rax + rax]
cmp r10, 0x41
jae 0x47a588
mov byte [rsp + rdx + 0x3e], r11b
test r8b, r8b
je 0x47a472
lea rdx, [r10 - 1]
nop dword [rax + rax]
cmp rdx, 0x41
jae 0x47a57b
mov byte [rsp + r10 + 0x3e], 0x2d
jmp 0x47a475
mov rdx, r10
test r9b, r9b
je 0x47a525
nop
cmp rdx, 0x41
ja 0x47a56e
mov r8, rbx
sub r8, rdx
add r8, 0x41
lea rdi, [rdx - 0x41]
mov r9, rdi
sar r9, 0x3f
and rdx, r9
neg rdi
cmp rcx, r8
jae 0x47a4e0
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0xa0], rbx
mov rbx, r8
lea rsi, [0x0065bae0]
call fcn.0044b880
mov rdx, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x30]
mov r8, rbx
mov rbx, qword [rsp + 0xa0]
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x28], rcx
lea rsi, [rax + rbx]
lea rbx, [rsp + rdx + 0x3f]
mov rax, rsi
mov rcx, rdi
call fcn.00467360
mov rax, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x28]
xor edi, edi
xor esi, esi
add rsp, 0x88
pop rbp
ret
cmp rdx, 0x41
ja 0x47a561
lea rcx, [rdx - 0x41]
mov rsi, rcx
neg rsi
sar rcx, 0x3f
and rdx, rcx
lea rbx, [rsp + rdx + 0x3f]
xor eax, eax
mov rcx, rsi
call fcn.0044f9a0
xor ecx, ecx
mov rdi, rax
mov rsi, rbx
xor eax, eax
mov rbx, rcx
add rsp, 0x88
pop rbp
ret
mov rax, rdx
mov ecx, 0x41
call fcn.00466a20
mov rax, rdx
mov ecx, 0x41
call fcn.00466a20
mov rax, rdx
mov ecx, 0x41
call fcn.00466960
mov rax, r10
mov ecx, 0x41
call fcn.00466960
mov ecx, 0x41
call fcn.00466960
mov rax, rdi
mov ecx, 0x24
call fcn.00466980
mov byte [rsp + r11 + 0x3e], r15b
mov rdi, rcx
mov rcx, r10
shr r13, cl
mov rcx, rdi
mov rdi, r13
mov r11, r12
cmp rsi, rdi
ja 0x47a5e8
lea r12, [r11 - 1]
mov r13, rdi
and rdi, rdx
lea r15, [0x006bd02b]
movzx r15d, byte [rdi + r15]
nop
cmp r12, 0x41
jb 0x47a5ac
jmp 0x47a61b
lea rdx, [r11 - 1]
lea r10, [0x006bd02b]
movzx r10d, byte [rdi + r10]
cmp rdx, 0x41
jae 0x47a60e
mov byte [rsp + r11 + 0x3e], r10b
test r8b, r8b
mov r10, rdx
jmp 0x47a452
mov rax, rdx
mov ecx, 0x41
call fcn.00466960
mov rax, r12
mov ecx, 0x41
call fcn.00466960
movzx r10d, byte [r10]
mov byte [rsp + r11 + 0x3d], r10b
mov rdi, rdx
mov rdx, rax
mov rax, rsi
nop word [rax + rax]
cmp rdi, 0x64
jb 0x47a6e5
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 rax, [r10 + r10]
lea rax, [rax + 1]
nop word [rax + rax]
nop
cmp rax, 0xc8
jae 0x47a7b9
lea rax, [r11 - 1]
lea r12, [0x006c5cc2]
lea r13, [r12 + r10*2]
lea r13, [r13 + 1]
nop
cmp rax, 0x41
jae 0x47a7af
mov rax, r10
shl rax, 1
movzx r13d, byte [r13]
mov byte [rsp + r11 + 0x3e], r13b
nop word [rax + rax]
cmp rax, 0xc8
jae 0x47a7a5
lea rax, [r11 - 2]
lea r10, [r12 + r10*2]
cmp rax, 0x41
jb 0x47a628
nop
jmp 0x47a799
lea r10, [rdi + rdi]
lea r10, [r10 + 1]
cmp r10, 0xc8
jae 0x47a78c
lea r10, [rdx - 1]
lea r11, [0x006c5cc2]
lea r12, [r11 + rdi*2]
lea r12, [r12 + 1]
cmp r10, 0x41
jae 0x47a77f
movzx r12d, byte [r12]
mov byte [rsp + rdx + 0x3e], r12b
nop
cmp rdi, 0xa
jb 0x47a754
mov r10, rdi
shl rdi, 1
cmp rdi, 0xc8
jae 0x47a772
lea r12, [rdx - 2]
lea r10, [r11 + r10*2]
nop dword [rax]
cmp r12, 0x41
jae 0x47a765
movzx r11d, byte [r10]
mov byte [rsp + rdx + 0x3d], r11b
test r8b, r8b
jmp 0x47a75a
test r8b, r8b
mov r12, r10
mov r10, r12
nop dword [rax]
jmp 0x47a452
mov rax, r12
mov ecx, 0x41
call fcn.00466960
mov rax, rdi
mov ecx, 0xc8
call fcn.00466980
mov rax, r10
mov ecx, 0x41
call fcn.00466960
mov rax, r10
mov ecx, 0xc8
call fcn.00466980
mov ecx, 0x41
nop
call fcn.00466960
mov ecx, 0xc8
call fcn.00466980
mov ecx, 0x41
call fcn.00466960
mov ecx, 0xc8
nop
call fcn.00466980
lea rax, [0x0065b7a0]
lea rbx, [0x00727640]
call fcn.00436ac0
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
nop dword [rax]
call fcn.004646a0
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.0047a340