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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
lea rax, [rsp - 0x48]
cmp rax, qword [rcx + 0x10]
jbe 0x52ae46
sub rsp, 0xc8
mov qword [rsp + 0xc0], rbp
lea rbp, [rsp + 0xc0]
mov rax, qword [rsp + 0xf0]
lea rcx, [rax - 2]
cmp rcx, 0x3c
ja 0x52ae25
mov rcx, qword [rsp + 0xd8]
test rcx, rcx
je 0x52ad6d
mov rdx, qword [rsp + 0xd0]
mov rbx, qword [rdx + rcx*8 - 8]
mov qword [rsp + 0xa0], rbx
bsr rsi, rbx
mov qword [rsp + 0x98], rsi
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
movsd qword [rsp], xmm0
call fcn.00476780
movsd xmm0, qword [rsp + 8]
lea rax, [0x00614000]
mov qword [rsp], rax
mov rax, qword [rsp + 0xa0]
bsr rax, rax
mov rax, qword [rsp + 0x98]
mov rcx, 0xffffffffffffffff
cmove rax, rcx
mov rcx, qword [rsp + 0xd8]
lea rdx, [rcx - 1]
shl rdx, 6
lea rax, [rax + rdx]
lea rax, [rax + 1]
xorps xmm1, xmm1
cvtsi2sd xmm1, rax
divsd xmm1, xmm0
cvttsd2si rax, xmm1
lea rdx, [rax + 1]
add rax, 2
movzx ebx, byte [rsp + 0xe8]
test rbx, rbx
cmovne rdx, rax
mov qword [rsp + 0x78], rdx
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rdx
call fcn.0044dcc0
mov rax, qword [rsp + 0x18]
mov rcx, qword [rsp + 0xf0]
mov rdx, rcx
neg rcx
and rcx, rdx
cmp rdx, rcx
jne 0x52ab57
bsf rbx, rdx
cmp rbx, 0x40
sbb rsi, rsi
nop
mov rcx, rbx
mov edi, 1
shl rdi, cl
and rdi, rsi
dec rdi
mov r8, qword [rsp + 0xd0]
mov r9, qword [r8]
mov rdx, qword [rsp + 0x78]
mov r10, qword [rsp + 0xd8]
mov r11, rdx
mov r12d, 1
mov r13d, 0x40
jmp 0x52aa17
mov byte [rdx + rax - 1], r9b
shr r14, cl
and r14, rsi
sub r13, rcx
mov r10, qword [rsp + 0xd8]
mov r9, r14
mov rdx, r15
cmp rcx, r13
ja 0x52aa05
mov r14, r9
and r9, rdi
cmp r9, 0x3e
jae 0x52ae16
lea r15, [rdx - 1]
lea r10, [0x00668cf2]
movzx r9d, byte [r9 + r10]
cmp r11, r15
ja 0x52a9b9
nop
jmp 0x52ae0b
test r13, r13
jne 0x52aa25
mov r9, qword [r8 + r12*8]
mov r13d, 0x40
inc r12
cmp r10, r12
jg 0x52a9d5
nop dword [rax]
jmp 0x52aab6
cmp r13, 0x40
sbb r14, r14
mov r15, qword [r8 + r12*8]
mov rcx, r13
shl r15, cl
and r14, r15
or r9, r14
and r9, rdi
nop
cmp r9, 0x3e
jae 0x52adfe
lea r14, [rdx - 1]
lea r15, [0x00668cf2]
movzx r9d, byte [r9 + r15]
nop word [rax + rax]
cmp r11, r14
jbe 0x52adf3
mov byte [rdx + rax - 1], r9b
mov r15, rbx
sub rbx, rcx
cmp rbx, 0x40
sbb r9, r9
mov rcx, r15
mov r15, qword [r8 + r12*8]
mov rdx, rcx
mov rcx, rbx
shr r15, cl
and r9, r15
lea r13, [rcx - 0x40]
neg r13
mov rcx, rdx
mov rbx, rcx
mov rdx, r14
nop
jmp 0x52aa14
mov byte [rdx + rax - 1], r9b
shr r8, cl
and r8, rsi
mov r9, r8
mov rdx, r10
test r9, r9
je 0x52aaea
mov r8, r9
and r9, rdi
cmp r9, 0x3e
jae 0x52ade6
lea r10, [rdx - 1]
lea r12, [0x00668cf2]
movzx r9d, byte [r9 + r12]
nop dword [rax + rax]
cmp r11, r10
ja 0x52aaa5
jmp 0x52addb
movzx ebx, byte [rsp + 0xe8]
test bl, bl
je 0x52ab52
lea rbx, [rdx - 1]
nop word [rax + rax]
cmp r11, rbx
jbe 0x52adc5
mov byte [rdx + rax - 1], 0x2d
cmp r11, rbx
jb 0x52adb5
sub r11, rbx
mov rcx, r11
neg r11
sar r11, 0x3f
and rbx, r11
add rax, rbx
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0x100], rcx
mov qword [rsp + 0x108], rcx
mov rbp, qword [rsp + 0xc0]
add rsp, 0xc8
ret
mov rbx, rdx
jmp 0x52ab0e
mov rcx, rax
mov rax, 0xffffffffffffffff
mov rbx, rdx
xor edx, edx
div rbx
mov rdx, rbx
mov esi, 1
jmp 0x52ab7a
imul rbx, rdx
inc rsi
cmp rax, rbx
jae 0x52ab73
mov qword [rsp + 0xb8], rcx
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x88], rsi
mov rax, qword [rsp + 0xd8]
mov qword [rsp], rax
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rbx
call fcn.0052b6e0
nop
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0xa8], rax
mov rcx, qword [rsp + 0x28]
mov qword [rsp + 0x68], rcx
mov rdx, qword [rsp + 0x30]
mov qword [rsp + 0x70], rdx
mov rbx, qword [rsp + 0xd8]
cmp rbx, 1
jne 0x52ad33
lea rax, [0x00613940]
mov qword [rsp], rax
mov qword [rsp + 8], 1
mov qword [rsp + 0x10], 1
call fcn.0044dcc0
mov rax, qword [rsp + 0x18]
mov ecx, 1
mov edx, 1
mov rbx, qword [rsp + 0xd8]
cmp rbx, rcx
mov rsi, rcx
cmovl rcx, rbx
mov rbx, qword [rsp + 0xd0]
cmp rax, rbx
jne 0x52ace7
mov qword [rsp], rax
mov qword [rsp + 8], rsi
mov qword [rsp + 0x10], rdx
mov rax, qword [rsp + 0xb8]
mov qword [rsp + 0x18], rax
mov rcx, qword [rsp + 0x78]
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x28], rcx
mov rdx, qword [rsp + 0xf0]
mov qword [rsp + 0x30], rdx
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x38], rdx
mov rdx, qword [rsp + 0x90]
mov qword [rsp + 0x40], rdx
mov rdx, qword [rsp + 0xa8]
mov qword [rsp + 0x48], rdx
mov rdx, qword [rsp + 0x68]
mov qword [rsp + 0x50], rdx
mov rdx, qword [rsp + 0x70]
mov qword [rsp + 0x58], rdx
call fcn.0052ae60
mov rax, qword [rsp + 0x78]
mov rcx, qword [rsp + 0xb8]
xor edx, edx
jmp 0x52acca
inc rdx
cmp rax, rdx
jbe 0x52add0
movzx ebx, byte [rdx + rcx]
cmp bl, 0x30
je 0x52acc7
mov r11, rax
mov rax, rcx
jmp 0x52aaea
mov qword [rsp + 0x80], rdx
mov qword [rsp + 0x98], rsi
mov qword [rsp + 0xb0], rax
mov qword [rsp], rax
mov qword [rsp + 8], rbx
shl rcx, 3
mov qword [rsp + 0x10], rcx
call fcn.0046d6c0
mov rax, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x98]
jmp 0x52ac3f
lea rax, [0x00613940]
mov qword [rsp], rax
mov qword [rsp + 8], rbx
lea rax, [rbx + 4]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x10], rax
call fcn.0044dcc0
mov rax, qword [rsp + 0x18]
mov rcx, qword [rsp + 0xd8]
mov rdx, qword [rsp + 0x60]
jmp 0x52ac1c
lea rax, [0x00615240]
mov qword [rsp], rax
call fcn.0040e560
mov rax, qword [rsp + 8]
mov byte [rax], 0x30
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0x100], 1
mov qword [rsp + 0x108], 1
mov rbp, qword [rsp + 0xc0]
add rsp, 0xc8
ret
mov rax, rbx
mov rcx, r11
nop dword [rax + rax]
call fcn.0046ce80
mov rax, rbx
mov rcx, r11
call fcn.0046cdc0
mov rcx, rax
mov rax, rdx
call fcn.0046cdc0
mov rax, r10
mov rcx, r11
call fcn.0046cdc0
mov rax, r9
mov ecx, 0x3e
call fcn.0046cde0
mov rax, r14
mov rcx, r11
call fcn.0046cdc0
mov rax, r9
mov ecx, 0x3e
call fcn.0046cde0
mov rax, r15
mov rcx, r11
call fcn.0046cdc0
mov rax, r9
mov ecx, 0x3e
nop
call fcn.0046cde0
lea rax, [0x00613e40]
mov qword [rsp], rax
lea rax, [0x006a1530]
mov qword [rsp + 8], rax
nop dword [rax]
call fcn.00438920
nop
call fcn.0046abe0
jmp fcn.0052a840