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

Disassembly:
lea r12, [rsp - 0x48]
cmp r12, qword [r14 + 0x10]
jbe 0x527112
sub rsp, 0xc8
mov qword [rsp + 0xc0], rbp
lea rbp, [rsp + 0xc0]
mov qword [rsp + 0xd0], rax
cmp rdi, rbx
jge 0x526eb0
jae 0x527106
movzx edx, byte [rdi + rax]
test dl, 0x20
setne r10b
mov byte [rsp + 0x27], r10b
inc rdi
mov r11d, edx
shr dl, 6
movzx edx, dl
mov qword [rsp + 0x48], rdx
and r11d, 0x1f
cmp r11, 0x1f
je 0x526cce
xor ecx, ecx
xor esi, esi
jmp 0x526d1c
mov qword [rsp + 0xd8], rbx
mov qword [rsp + 0xd0], rax
nop
call fcn.005263a0
test rcx, rcx
jne 0x526e88
cmp rax, 0x1f
jl 0x526e21
mov rdx, qword [rsp + 0x48]
movzx r10d, byte [rsp + 0x27]
mov r11, rax
mov rsi, rdi
mov rax, qword [rsp + 0xd0]
mov rdi, rbx
mov rbx, qword [rsp + 0xd8]
mov qword [rsp + 0x40], r11
cmp rbx, rdi
jle 0x526dbe
jbe 0x5270fb
movzx r12d, byte [rax + rdi]
lea r13, [rdi + 1]
test r12b, 0x80
je 0x526db5
and r12d, 0x7f
test r12, r12
je 0x526d52
xor edi, edi
xor r8d, r8d
jmp 0x526f2b
mov qword [rsp + 0x38], r13
lea rcx, [0x006af701]
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x98], 0x21
mov rax, qword [rsp + 0x90]
mov ebx, 0x21
nop
call fcn.0040afc0
mov rbx, qword [rsp + 0x40]
xor ecx, ecx
movzx edi, byte [rsp + 0x27]
mov rsi, qword [rsp + 0x38]
lea r8, [0x00719960]
mov r9, rax
mov rax, qword [rsp + 0x48]
mov rbp, qword [rsp + 0xc0]
add rsp, 0xc8
ret
and r12d, 0x7f
jmp 0x526f03
mov qword [rsp + 0x38], rdi
lea rcx, [0x006ab2cc]
mov qword [rsp + 0xa0], rcx
mov qword [rsp + 0xa8], 0x17
mov rax, qword [rsp + 0xa0]
mov ebx, 0x17
call fcn.0040afc0
mov rbx, qword [rsp + 0x40]
xor ecx, ecx
movzx edi, byte [rsp + 0x27]
mov rsi, qword [rsp + 0x38]
lea r8, [0x00719960]
mov r9, rax
mov rax, qword [rsp + 0x48]
mov rbp, qword [rsp + 0xc0]
add rsp, 0xc8
nop
ret
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rbx
lea rcx, [0x006a7791]
mov qword [rsp + 0xb0], rcx
mov qword [rsp + 0xb8], 0xf
mov rax, qword [rsp + 0xb0]
mov ebx, 0xf
call fcn.0040afc0
mov rbx, qword [rsp + 0x40]
xor ecx, ecx
movzx edi, byte [rsp + 0x27]
mov rsi, qword [rsp + 0x38]
lea r8, [0x00719960]
mov r9, rax
mov rax, qword [rsp + 0x48]
mov rbp, qword [rsp + 0xc0]
add rsp, 0xc8
ret
mov rsi, rbx
mov r8, rcx
mov r9, rdi
mov rbx, rax
xor ecx, ecx
movzx edi, byte [rsp + 0x27]
mov rax, qword [rsp + 0x48]
mov rbp, qword [rsp + 0xc0]
add rsp, 0xc8
ret
mov qword [rsp + 0xe8], rdi
nop
lea rax, [0x0066df60]
call fcn.0040d960
mov qword [rax + 8], 0x29
lea rcx, [0x006b27fd]
mov qword [rax], rcx
xor ebx, ebx
mov rcx, rbx
xor edi, edi
mov rsi, qword [rsp + 0xe8]
lea r8, [0x007191c0]
mov r9, rax
mov rax, rcx
mov rbp, qword [rsp + 0xc0]
add rsp, 0xc8
ret
mov rax, rdx
mov rbx, r11
mov edi, r10d
mov r8, rcx
mov r9, rsi
mov rcx, r12
mov rsi, r13
mov rbp, qword [rsp + 0xc0]
add rsp, 0xc8
ret
inc rdi
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x30], r13
cmp rdi, r12
jge 0x527088
nop
cmp rbx, r13
jle 0x527028
jbe 0x5270f0
movzx r15d, byte [rax + r13]
inc r13
mov qword [rsp + 0x30], r13
nop dword [rax]
cmp r8, 0x800000
jge 0x526fd1
shl r8, 8
or r8, r15
test r8, r8
jne 0x526f28
mov qword [rsp + 0x28], r8
lea rcx, [0x006b07b5]
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x68], 0x23
mov rax, qword [rsp + 0x60]
mov ebx, 0x23
call fcn.0040afc0
mov rbx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x28]
movzx edi, byte [rsp + 0x27]
mov rsi, qword [rsp + 0x30]
lea r8, [0x00719940]
mov r9, rax
mov rax, qword [rsp + 0x48]
mov rbp, qword [rsp + 0xc0]
add rsp, 0xc8
ret
lea rcx, [0x006a7dac]
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x78], 0x10
mov rax, qword [rsp + 0x70]
mov ebx, 0x10
call fcn.0040afc0
mov rbx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
movzx edi, byte [rsp + 0x27]
mov rsi, qword [rsp + 0x30]
lea r8, [0x00719940]
mov r9, rax
mov rax, qword [rsp + 0x48]
mov rbp, qword [rsp + 0xc0]
add rsp, 0xc8
ret
lea rcx, [0x006ab2cc]
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0x88], 0x17
mov rax, qword [rsp + 0x80]
mov ebx, 0x17
call fcn.0040afc0
mov rbx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
movzx edi, byte [rsp + 0x27]
mov rsi, qword [rsp + 0x30]
lea r8, [0x00719960]
mov r9, rax
mov rax, qword [rsp + 0x48]
mov rbp, qword [rsp + 0xc0]
add rsp, 0xc8
ret
cmp r8, 0x80
jl 0x527099
mov r12, r8
jmp 0x526f03
lea rcx, [0x006a897e]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x58], 0x12
mov rax, qword [rsp + 0x50]
mov ebx, 0x12
call fcn.0040afc0
mov rbx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
movzx edi, byte [rsp + 0x27]
mov rsi, qword [rsp + 0x30]
lea r8, [0x00719940]
mov r9, rax
mov rax, qword [rsp + 0x48]
mov rbp, qword [rsp + 0xc0]
add rsp, 0xc8
ret
mov rax, r13
mov rcx, rbx
call fcn.00465940
mov rax, rdi
mov rcx, rbx
call fcn.00465940
mov rax, rdi
mov rcx, rbx
call fcn.00465940
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
call fcn.004632e0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
nop
jmp fcn.00526c60