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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
lea rax, [rsp - 0x88]
nop dword [rax + rax]
cmp rax, qword [rcx + 0x10]
jbe 0x52b566
sub rsp, 0x108
mov qword [rsp + 0x100], rbp
lea rbp, [rsp + 0x100]
mov rdx, qword [rsp + 0x158]
test rdx, rdx
je 0x52b4ca
mov rcx, qword [rsp + 0x160]
lea rdx, [rcx - 1]
mov rbx, qword [rsp + 0x158]
mov rsi, qword [rsp + 0x130]
mov rdi, qword [rsp + 0x120]
mov r8, qword [rsp + 0x110]
mov r9, qword [rsp + 0x118]
xor eax, eax
xor r10d, r10d
xor r11d, r11d
jmp 0x52b171
mov rdx, r14
test rdx, rdx
jle 0x52af20
lea r14, [rdx - 1]
nop
cmp r14, rcx
jae 0x52b55c
lea r15, [rdx + rdx*4]
mov r15, qword [rbx + r15*8 - 0x10]
cmp r15, r12
jg 0x52aef3
nop word [rax + rax]
cmp rdx, rcx
jae 0x52b554
mov qword [rsp + 0xe0], rsi
lea r12, [rdx + rdx*4]
mov r14, qword [rbx + r12*8 + 0x18]
nop word [rax + rax]
cmp r14, r13
jge 0x52b1b8
xor r12d, r12d
test r12b, r12b
je 0x52af60
dec rdx
test rdx, rdx
jl 0x52b538
nop dword [rax]
cmp rdx, rcx
jae 0x52b530
mov qword [rsp + 0xb0], rdx
lea rcx, [rdx + rdx*4]
mov qword [rsp + 0xd8], rcx
mov rsi, qword [rbx + rcx*8]
mov r12, qword [rbx + rcx*8 + 8]
mov r13, qword [rbx + rcx*8 + 0x10]
mov qword [rsp], r8
mov qword [rsp + 8], r9
mov qword [rsp + 0x10], rdi
mov qword [rsp + 0x18], r11
mov qword [rsp + 0x20], r10
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x58], r13
call fcn.00523c60
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x88]
mov rdi, qword [rsp + 0xd8]
mov r8, qword [rsp + 0x158]
mov rdi, qword [r8 + rdi*8 + 0x20]
mov r9, qword [rsp + 0xe0]
mov r10, r9
sub r9, rdi
mov rdi, qword [rsp + 0x78]
cmp r9, r10
ja 0x52b525
mov qword [rsp + 0x130], r9
mov qword [rsp + 0x98], rbx
mov qword [rsp + 0x110], rax
mov qword [rsp + 0xa8], rsi
mov qword [rsp + 0x120], rdx
mov qword [rsp + 0x118], rcx
mov qword [rsp + 0xe8], rdi
mov qword [rsp], rdi
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov rax, qword [rsp + 0x138]
sub rax, r9
mov rdx, rax
neg rax
sar rax, 0x3f
and rax, r9
mov r11, qword [rsp + 0x128]
add rax, r11
mov qword [rsp + 0x18], rax
sub r10, r9
mov qword [rsp + 0x20], r10
mov qword [rsp + 0x28], rdx
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0x30], rax
mov rdx, qword [rsp + 0x148]
mov qword [rsp + 0x38], rdx
mov r10, qword [rsp + 0x150]
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x48], r8
mov r12, qword [rsp + 0xb0]
mov qword [rsp + 0x50], r12
mov r13, qword [rsp + 0x168]
mov qword [rsp + 0x58], r13
nop dword [rax]
call fcn.0052ae60
mov rax, qword [rsp + 0x160]
mov rcx, qword [rsp + 0x158]
mov rdx, qword [rsp + 0x130]
mov rbx, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0x98]
mov rdi, qword [rsp + 0xa8]
mov r8, qword [rsp + 0xb0]
mov r9, qword [rsp + 0x120]
mov r10, qword [rsp + 0x110]
mov r11, qword [rsp + 0x118]
mov rcx, rax
mov rbx, qword [rsp + 0x158]
mov r9, r11
mov r8, r10
mov rdi, qword [rsp + 0x120]
mov rdx, qword [rsp + 0xb0]
mov rax, qword [rsp + 0xa8]
mov r10, rsi
mov r11, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0x130]
cmp qword [0x007a3288], r9
jge 0x52b28d
lea r12, [r9 - 1]
test r12, r12
jl 0x52b285
mov r13, qword [r8 + r9*8 - 8]
bsr r13, r13
mov r14, 0xffffffffffffffff
cmove r13, r14
shl r12, 6
lea r12, [r13 + r12]
lea r12, [r12 + 1]
mov r13, r12
sar r12, 1
jmp 0x52aef6
mov qword [rsp + 0xd0], rdx
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0x90], r10
mov qword [rsp + 0xf0], r11
mov qword [rsp + 0xf8], r8
mov qword [rsp + 0xc8], r9
mov qword [rsp + 0xc0], rdi
mov rax, qword [rbx + r12*8]
mov rcx, qword [rbx + r12*8 + 8]
mov rdx, qword [rbx + r12*8 + 0x10]
mov qword [rsp], rax
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x28], rdi
nop dword [rax + rax]
call fcn.00520220
cmp qword [rsp + 0x30], 0
setge r12b
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x160]
mov rdx, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0x158]
mov rsi, qword [rsp + 0xe0]
mov rdi, qword [rsp + 0xc0]
mov r8, qword [rsp + 0xf8]
mov r9, qword [rsp + 0xc8]
mov r10, qword [rsp + 0x90]
mov r11, qword [rsp + 0xf0]
nop
jmp 0x52af4c
xor r12d, r12d
jmp 0x52b1ad
mov qword [rsp + 0x130], rsi
mov rdx, qword [rsp + 0x140]
nop dword [rax]
cmp rdx, 0xa
jne 0x52b3c6
mov rax, rsi
jmp 0x52b319
lea r14d, [rbx + 0x30]
mov byte [r9 + rdi - 1], r14b
inc r10
mov rax, r12
mov rbx, rdx
mov r9, r11
mov rdx, r13
cmp rsi, r10
jle 0x52b305
test r9, r9
jle 0x52b305
lea r11, [r9 - 1]
mov r12, rax
movabs rax, 0xcccccccccccccccd
mov r13, rdx
mul rbx
shr rdx, 3
lea r14, [rdx + rdx*4]
shl r14, 1
sub rbx, r14
cmp r8, r11
ja 0x52b2af
nop dword [rax + rax]
jmp 0x52b517
mov rdi, rdx
mov r8, rax
mov rsi, r9
mov rax, qword [rsp + 0x130]
mov r9, rcx
test r9, r9
jle 0x52b391
mov qword [rsp + 0xb8], rsi
mov qword [rsp], r8
mov qword [rsp + 8], r9
mov qword [rsp + 0x10], rdi
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x28], rdi
mov rax, qword [rsp + 0x150]
mov qword [rsp + 0x30], rax
call fcn.005238e0
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x148]
mov rdi, qword [rsp + 0x128]
mov r8, qword [rsp + 0x130]
mov r9, qword [rsp + 0xb8]
xor r10d, r10d
jmp 0x52b2c7
mov rdx, qword [rsp + 0x128]
jmp 0x52b3a3
mov byte [rsi + rdx - 1], 0x30
mov rsi, rbx
test rsi, rsi
jle 0x52b3b6
lea rbx, [rsi - 1]
cmp rax, rbx
ja 0x52b39b
jmp 0x52b4ef
mov rbp, qword [rsp + 0x100]
add rsp, 0x108
ret
mov rax, rsi
jmp 0x52b446
mov byte [r10 + r8 - 1], dl
inc r11
mov rdx, rbx
mov rbx, rax
mov r10, r13
mov rax, r12
nop
cmp rdi, r11
jle 0x52b42a
test r10, r10
jle 0x52b42a
test rsi, rsi
je 0x52b512
mov r12, rax
mov rax, rbx
mov rbx, rdx
xor edx, edx
div rsi
cmp rdx, 0x3e
jae 0x52b505
lea r13, [r10 - 1]
lea r14, [0x00668cf2]
movzx edx, byte [r14 + rdx]
nop dword [rax + rax]
cmp r9, r13
ja 0x52b3cb
jmp 0x52b4fa
mov r9, rcx
mov rdi, rdx
mov r8, rax
mov rsi, r10
mov rax, qword [rsp + 0x130]
mov rdx, qword [rsp + 0x140]
test r9, r9
jle 0x52b391
mov qword [rsp + 0xb8], rsi
mov qword [rsp], r8
mov qword [rsp + 8], r9
mov qword [rsp + 0x10], rdi
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x28], rdi
mov rax, qword [rsp + 0x150]
mov qword [rsp + 0x30], rax
call fcn.005238e0
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x140]
mov rdi, qword [rsp + 0x148]
mov r8, qword [rsp + 0x128]
mov r9, qword [rsp + 0x130]
mov r10, qword [rsp + 0xb8]
xor r11d, r11d
jmp 0x52b3e0
mov rsi, qword [rsp + 0x130]
mov r9, qword [rsp + 0x118]
mov rdi, qword [rsp + 0x120]
mov r8, qword [rsp + 0x110]
jmp 0x52b28d
mov rcx, rax
mov rax, rbx
call fcn.0046cdc0
mov rax, r13
mov rcx, r9
call fcn.0046cdc0
mov rax, rdx
mov ecx, 0x3e
call fcn.0046cde0
call fcn.00436e20
mov rax, r11
mov rcx, r8
nop dword [rax]
call fcn.0046cdc0
mov rax, r9
mov rcx, r10
call fcn.0046ce80
mov rax, rdx
call fcn.0046cdc0
lea rax, [0x00613e40]
mov qword [rsp], rax
lea rax, [0x006a1540]
mov qword [rsp + 8], rax
call fcn.00438920
mov rax, rdx
call fcn.0046cdc0
mov rax, r14
nop
call fcn.0046cdc0
nop
call fcn.0046abe0
jmp fcn.0052ae60