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

Disassembly:
lea r12, [rsp - 0x10]
cmp r12, qword [r14 + 0x10]
jbe 0x487879
push rbp
mov rbp, rsp
sub rsp, 0x88
mov qword [rsp + 0x98], rax
lea rdx, [rsi - 2]
cmp rdx, 0x22
ja 0x487865
movups xmmword [rsp + 0x2f], xmm15
movups xmmword [rsp + 0x30], xmm15
movups xmmword [rsp + 0x40], xmm15
movups xmmword [rsp + 0x50], xmm15
movups xmmword [rsp + 0x60], xmm15
test r8b, r8b
je 0x487436
neg rdi
cmp rsi, 0xa
jne 0x487446
mov edx, 0x41
jmp 0x4876e0
lea rdx, [rsi - 1]
test rsi, rdx
jne 0x487467
nop
lea rdx, [rsi - 1]
bsf r10, rsi
and r10d, 7
mov r11d, 0x41
jmp 0x487663
mov edx, 0x41
jmp 0x487480
mov byte [rsp + r11 + 0x2e], r12b
mov rdi, rdx
mov rdx, rax
mov rax, r10
nop dword [rax]
cmp rsi, rdi
ja 0x4874cb
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 0x48763f
lea rax, [r11 - 1]
lea r12, [0x006d05d2]
movzx r12d, byte [rdi + r12]
nop word [rax + rax]
cmp rax, 0x41
jb 0x48746e
jmp 0x487635
lea r10, [rdx - 1]
lea r11, [0x006d05d2]
movzx r11d, byte [rdi + r11]
nop dword [rax + rax]
cmp r10, 0x41
jae 0x487628
mov byte [rsp + rdx + 0x2e], r11b
test r8b, r8b
je 0x487512
lea rdx, [r10 - 1]
nop dword [rax + rax]
cmp rdx, 0x41
jae 0x48761b
mov byte [rsp + r10 + 0x2e], 0x2d
jmp 0x487515
mov rdx, r10
test r9b, r9b
je 0x4875c5
nop
cmp rdx, 0x41
ja 0x48760e
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 0x487580
mov qword [rsp + 0xa0], rbx
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0x70], rdx
mov rbx, r8
lea rsi, [0x0066d1c0]
call fcn.00447aa0
mov rdx, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
mov r8, rbx
mov rbx, qword [rsp + 0xa0]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x78], r8
mov qword [rsp + 0x70], rcx
lea rsi, [rax + rbx]
lea rbx, [rsp + rdx + 0x2f]
mov rax, rsi
mov rcx, rdi
call fcn.00460ba0
mov rax, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x70]
xor edi, edi
xor esi, esi
add rsp, 0x88
pop rbp
ret
cmp rdx, 0x41
ja 0x487601
lea rcx, [rdx - 0x41]
mov rsi, rcx
neg rsi
sar rcx, 0x3f
and rdx, rcx
lea rbx, [rsp + rdx + 0x2f]
xor eax, eax
mov rcx, rsi
call fcn.0044af60
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.004602a0
mov rax, rdx
mov ecx, 0x41
call fcn.004602a0
mov rax, rdx
mov ecx, 0x41
call fcn.004601e0
mov rax, r10
mov ecx, 0x41
call fcn.004601e0
mov ecx, 0x41
call fcn.004601e0
mov rax, rdi
mov ecx, 0x24
call fcn.00460200
mov byte [rsp + r11 + 0x2e], r15b
mov rdi, rcx
mov rcx, r10
shr r13, cl
mov rcx, rdi
mov rdi, r13
mov r11, r12
cmp rsi, rdi
ja 0x487688
lea r12, [r11 - 1]
mov r13, rdi
and rdi, rdx
lea r15, [0x006d05d2]
movzx r15d, byte [rdi + r15]
nop
cmp r12, 0x41
jb 0x48764c
jmp 0x4876bb
lea rdx, [r11 - 1]
lea r10, [0x006d05d2]
movzx r10d, byte [rdi + r10]
cmp rdx, 0x41
jae 0x4876ae
mov byte [rsp + r11 + 0x2e], r10b
test r8b, r8b
mov r10, rdx
jmp 0x4874f2
mov rax, rdx
mov ecx, 0x41
call fcn.004601e0
mov rax, r12
mov ecx, 0x41
call fcn.004601e0
movzx r10d, byte [r10]
mov byte [rsp + r11 + 0x2d], r10b
mov rdi, rdx
mov rdx, rax
mov rax, rsi
nop word [rax + rax]
cmp rdi, 0x64
jb 0x487785
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 0x487859
lea rax, [r11 - 1]
lea r12, [0x006d9685]
lea r13, [r12 + r10*2]
lea r13, [r13 + 1]
nop
cmp rax, 0x41
jae 0x48784f
mov rax, r10
shl rax, 1
movzx r13d, byte [r13]
mov byte [rsp + r11 + 0x2e], r13b
nop word [rax + rax]
cmp rax, 0xc8
jae 0x487845
lea rax, [r11 - 2]
lea r10, [r12 + r10*2]
cmp rax, 0x41
jb 0x4876c8
nop
jmp 0x487839
lea r10, [rdi + rdi]
lea r10, [r10 + 1]
cmp r10, 0xc8
jae 0x48782c
lea r10, [rdx - 1]
lea r11, [0x006d9685]
lea r12, [r11 + rdi*2]
lea r12, [r12 + 1]
cmp r10, 0x41
jae 0x48781f
movzx r12d, byte [r12]
mov byte [rsp + rdx + 0x2e], r12b
nop
cmp rdi, 0xa
jb 0x4877f4
mov r10, rdi
shl rdi, 1
cmp rdi, 0xc8
jae 0x487812
lea r12, [rdx - 2]
lea r10, [r11 + r10*2]
nop dword [rax]
cmp r12, 0x41
jae 0x487805
movzx r11d, byte [r10]
mov byte [rsp + rdx + 0x2d], r11b
test r8b, r8b
jmp 0x4877fa
test r8b, r8b
mov r12, r10
mov r10, r12
nop dword [rax]
jmp 0x4874f2
mov rax, r12
mov ecx, 0x41
call fcn.004601e0
mov rax, rdi
mov ecx, 0xc8
call fcn.00460200
mov rax, r10
mov ecx, 0x41
call fcn.004601e0
mov rax, r10
mov ecx, 0xc8
call fcn.00460200
mov ecx, 0x41
nop
call fcn.004601e0
mov ecx, 0xc8
call fcn.00460200
mov ecx, 0x41
call fcn.004601e0
mov ecx, 0xc8
nop
call fcn.00460200
lea rax, [0x0066d140]
lea rbx, [0x00740520]
call fcn.004337c0
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.0045df00
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.004873e0