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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
cmp rsp, qword [rcx + 0x10]
jbe 0x4c41d2
sub rsp, 0x70
mov qword [rsp + 0x68], rbp
lea rbp, [rsp + 0x68]
mov rdx, qword [rsp + 0xb0]
test rdx, rdx
je 0x4c41b5
mov rbx, qword [rsp + 0x80]
lea rsi, [rbx - 1]
nop
test rsi, rsi
jge 0x4c419b
mov rdi, rsi
neg rsi
lea r8, [rsi - 1]
movabs rax, 0xaaaaaaaaaaaaaaab
mov rcx, rdx
imul r8
sub rdx, rdi
dec rdx
sar rdx, 3
sar r8, 0x3f
sub rdx, r8
mov rdi, qword [rsp + 0x78]
sub rdi, rdx
dec rdi
lea rdx, [rdx + rdx*2]
lea rsi, [rbx + rdx*4]
lea rsi, [rsi + 0xb]
cmp rsi, 0xc
jl 0x4c3c99
movabs rax, 0xaaaaaaaaaaaaaaab
imul rsi
add rdx, rsi
sar rdx, 3
add rdi, rdx
lea rdx, [rdx + rdx*2]
shl rdx, 2
sub rsi, rdx
mov rdx, qword [rsp + 0xa8]
test rdx, rdx
jge 0x4c418e
mov rbx, rdx
neg rdx
dec rdx
movabs rax, 0x44b82fa09b5a52cc
mov r8, rdx
imul rdx
sar rdx, 0x1c
sar r8, 0x3f
sub rdx, r8
mov r8, qword [rsp + 0xa0]
sub r8, rdx
dec r8
imul rdx, rdx, 0x3b9aca00
lea rdx, [rbx + rdx]
lea rdx, [rdx + 0x3b9aca00]
cmp rdx, 0x3b9aca00
jl 0x4c4186
movabs rax, 0x44b82fa09b5a52cc
mov rbx, rdx
imul rdx
sar rdx, 0x1c
add r8, rdx
imul r9, rdx, 0x3b9aca00
sub rbx, r9
nop dword [rax]
test r8, r8
jge 0x4c4179
mov rdx, r8
neg r8
lea r9, [r8 - 1]
movabs rax, 0x8888888888888889
mov r8, rdx
imul r9
sub rdx, r8
dec rdx
sar rdx, 5
sar r9, 0x3f
sub rdx, r9
mov r9, qword [rsp + 0x98]
sub r9, rdx
dec r9
imul rdx, rdx, 0x3c
lea r8, [r8 + rdx]
lea r8, [r8 + 0x3c]
cmp r8, 0x3c
jl 0x4c3d92
movabs rax, 0x8888888888888889
imul r8
add rdx, r8
sar rdx, 5
add r9, rdx
imul rdx, rdx, 0x3c
sub r8, rdx
test r9, r9
jge 0x4c416c
mov rdx, r9
neg r9
lea r10, [r9 - 1]
movabs rax, 0x8888888888888889
mov r9, rdx
imul r10
sub rdx, r9
dec rdx
sar rdx, 5
sar r10, 0x3f
sub rdx, r10
mov r10, qword [rsp + 0x90]
sub r10, rdx
dec r10
imul rdx, rdx, 0x3c
lea r9, [r9 + rdx]
lea r9, [r9 + 0x3c]
cmp r9, 0x3c
jl 0x4c3e04
movabs rax, 0x8888888888888889
imul r9
add rdx, r9
sar rdx, 5
add r10, rdx
imul rdx, rdx, 0x3c
sub r9, rdx
nop
test r10, r10
jge 0x4c415f
mov rdx, r10
neg r10
lea r11, [r10 - 1]
movabs rax, 0xaaaaaaaaaaaaaaab
mov r10, rdx
imul r11
sub rdx, r10
dec rdx
sar rdx, 4
sar r11, 0x3f
sub rdx, r11
mov r11, qword [rsp + 0x88]
sub r11, rdx
dec r11
lea rdx, [rdx + rdx*2]
lea r10, [r10 + rdx*8]
lea r10, [r10 + 0x18]
cmp r10, 0x18
jl 0x4c3e7b
movabs rax, 0xaaaaaaaaaaaaaaab
imul r10
add rdx, r10
sar rdx, 4
add r11, rdx
lea rdx, [rdx + rdx*2]
shl rdx, 3
sub r10, rdx
nop
movabs rdx, 0x440d116ebf
lea r12, [rdx + rdi]
shr r12, 1
movabs rax, 0xa3d70a3d70a3d70b
mul r12
shr rdx, 7
imul r12, rdx, 0x190
mov r13, rdi
sub rdi, r12
movabs r12, 0x440d116ebf
lea r14, [r12 + rdi]
imul rdx, rdx, 0x23ab1
shr r14, 1
movabs rax, 0xa3d70a3d70a3d70b
mov r15, rdx
mul r14
shr rdx, 5
imul r14, rdx, 0x64
sub rdi, r14
lea r14, [rdi + r12]
imul rdx, rdx, 0x8eac
add rdx, r15
shr r14, 2
mov r15, r14
shl r14, 2
sub rdi, r14
add rdi, r12
imul r12, r15, 0x5b5
add rdx, r12
imul rdi, rdi, 0x16d
add rdx, rdi
cmp rsi, 0xd
jae 0x4c41a8
mov qword [rsp + 0x40], rbx
lea rdi, [0x007a54a0]
lea rdi, [rdi + rsi*4]
movsxd rdi, dword [rdi]
lea r12, [rdi + rdx]
test r13, 3
jne 0x4c3f7c
movabs rax, 0xa3d70a3d70a3d70b
mov r14, rdx
imul r13
add rdx, r13
sar rdx, 6
mov r15, r13
sar r13, 0x3f
sub rdx, r13
imul rdx, rdx, 0x64
cmp r15, rdx
je 0x4c4128
lea rax, [rsi + 1]
cmp rax, 3
jl 0x4c3f7c
lea r12, [r14 + rdi]
lea r12, [r12 + 1]
mov qword [rsp], rcx
lea rax, [r12 + r11]
lea rax, [rax - 1]
imul rax, rax, 0x15180
imul rdx, r10, 0xe10
imul rbx, r9, 0x3c
add rdx, rbx
add rdx, r8
add rax, rdx
mov qword [rsp + 0x48], rax
movabs rdx, 0x80000001e5263700
lea rbx, [rdx + rax]
mov qword [rsp + 0x38], rbx
mov qword [rsp + 8], rbx
call fcn.004c42e0
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
test rax, rax
je 0x4c411e
mov rbx, qword [rsp + 0x48]
mov rsi, rbx
sub rbx, rax
movabs rdi, 0x80000001e5263700
add rbx, rdi
cmp rcx, rbx
jg 0x4c40e7
nop
cmp rdx, rbx
jle 0x4c40b8
sub rsi, rax
lea rbx, [rsi + rdi]
mov rax, qword [0x007c3710]
mov rcx, qword [rsp + 0x40]
movsxd rcx, ecx
mov qword [rsp + 0x50], rcx
movabs rdx, 0xe7791f700
add rdx, rbx
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0xb0]
lea rdx, [0x007c85c0]
cmp rax, rdx
mov edx, 0
cmove rax, rdx
nop
nop
bt rcx, 0x3f
jae 0x4c4087
mov rdx, rcx
shl rcx, 1
shr rcx, 0x1f
movabs rbx, 0xdd7b17f80
add rcx, rbx
mov qword [rsp + 0x58], rcx
and rdx, 0x3fffffff
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x60], rax
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x58]
mov qword [rsp + 0xb8], rcx
mov qword [rsp + 0xc0], rdx
mov qword [rsp + 0xc8], rax
mov rbp, qword [rsp + 0x68]
add rsp, 0x70
ret
mov rax, qword [rsp + 0xb0]
mov qword [rsp], rax
mov qword [rsp + 8], rdx
call fcn.004c42e0
mov rax, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x48]
movabs rdi, 0x80000001e5263700
jmp 0x4c4009
mov rax, qword [rsp + 0xb0]
mov qword [rsp], rax
dec rcx
mov qword [rsp + 8], rcx
nop dword [rax + rax]
call fcn.004c42e0
mov rax, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x48]
movabs rdi, 0x80000001e5263700
jmp 0x4c4009
mov rbx, qword [rsp + 0x38]
jmp 0x4c4010
movabs rax, 0x8f5c28f5c28f5c29
imul rax, r15
movabs rdx, 0x51eb851eb851eb0
add rax, rdx
rol rax, 0x3c
movabs rdx, 0xa3d70a3d70a3d6
cmp rdx, rax
jae 0x4c3f69
jmp 0x4c3f7c
mov r11, qword [rsp + 0x88]
jmp 0x4c3e53
mov r10, qword [rsp + 0x90]
jmp 0x4c3de0
mov r9, qword [rsp + 0x98]
jmp 0x4c3d6e
mov rbx, rdx
jmp 0x4c3d1c
mov r8, qword [rsp + 0xa0]
jmp 0x4c3cee
mov rcx, rdx
mov rdi, qword [rsp + 0x78]
jmp 0x4c3c71
mov rax, rsi
mov ecx, 0xd
call fcn.0046cdc0
lea rax, [0x00613e40]
mov qword [rsp], rax
lea rax, [0x006a1a80]
mov qword [rsp + 8], rax
call fcn.00438920
nop
call fcn.0046abe0
jmp fcn.004c3be0