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

Disassembly:
lea r12, [rsp - 0x70]
cmp r12, qword [r14 + 0x10]
jbe 0x520c3f
sub rsp, 0xf0
mov qword [rsp + 0xe8], rbp
lea rbp, [rsp + 0xe8]
mov qword [rsp + 0x100], rbx
mov qword [rsp + 0x108], rcx
mov qword [rsp + 0xf8], rax
nop
call fcn.00520d80
test rax, rax
jg 0x520590
xor ecx, ecx
xor edx, edx
jmp 0x5205c1
cmp rax, 0x3e8
mov edx, 0x3e8
cmovg rax, rdx
mov qword [rsp + 0x78], rax
mov rbx, rax
mov rcx, rbx
lea rax, [0x00679500]
call fcn.0044a840
mov rcx, qword [rsp + 0x78]
mov rdx, rax
mov rax, rcx
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0xb0], rdx
mov rbx, rax
lea rax, [0x006a9320]
xor ecx, ecx
call fcn.0040e520
mov qword [rsp + 0xd0], rax
mov rdx, qword [rsp + 0xf8]
mov rsi, qword [rdx]
mov ebx, 1
mov rax, rsi
call fcn.004ee0e0
nop
test rdi, rdi
jne 0x52068f
test rbx, rbx
jbe 0x520c34
movzx ecx, byte [rax]
cmp cl, 0x20
je 0x52061f
cmp cl, 9
jne 0x52068f
mov rax, qword [rsp + 0xf8]
call fcn.0051f7a0
test rdi, rdi
je 0x52064f
mov rax, qword [rsp + 0xd0]
mov rbx, rdi
mov rcx, rsi
mov rbp, qword [rsp + 0xe8]
add rsp, 0xf0
ret
mov ecx, 0x24
mov rdi, rax
mov rsi, rbx
xor eax, eax
lea rbx, [0x006d66d5]
call fcn.0044e760
call fcn.0040afc0
lea rbx, [0x007437a0]
mov rcx, rax
mov rax, qword [rsp + 0xd0]
mov rbp, qword [rsp + 0xe8]
add rsp, 0xf0
ret
mov rsi, qword [rsp + 0x100]
add rsi, 0xfffffffffffffe70
mov rax, qword [rsp + 0x108]
mov rcx, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0x60]
jmp 0x5206c1
mov rsi, rbx
mov rdi, rax
mov rax, rdx
mov rdx, rdi
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0xb0], rcx
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x98], rax
lea rbx, [0x006fa9e0]
mov rax, qword [rsp + 0xf8]
call fcn.0051f980
test rbx, rbx
je 0x520ad8
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0xc8], rsi
mov qword [rsp + 0xe0], rdi
mov rdi, qword [0x008cb920]
mov rsi, qword [0x008cb928]
mov r8, qword [0x008cb930]
call fcn.00478a40
test r9b, r9b
je 0x520a91
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x50], r8
mov qword [rsp + 0xa8], rdi
call fcn.00520fa0
test cl, cl
je 0x520a4a
mov rdx, qword [rsp + 0xa8]
mov r8, qword [rsp + 0x48]
xor ecx, ecx
jmp 0x520b00
test rbx, rbx
jne 0x520795
mov rdx, qword [rsp + 0x98]
mov rbx, qword [rsp + 0x80]
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0xb0]
jmp 0x5206b5
mov r9, qword [rsp + 0x98]
dec r9
test r9, r9
jl 0x520bfa
mov qword [rsp + 0x98], r9
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0xc0], rax
mov rax, rdx
mov rbx, r8
mov rcx, qword [rsp + 0x50]
lea rdi, [0x006c9370]
mov esi, 2
call fcn.00477c00
mov rcx, rbx
mov rbx, rax
xor eax, eax
call fcn.0044eb00
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0x40], rbx
mov rcx, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0x70]
lea rax, [0x006a9320]
mov rbx, qword [rsp + 0xd0]
call fcn.004129c0
mov rdx, qword [rax]
mov r8, qword [rsp + 0x80]
mov rdi, qword [rsp + 0x70]
mov r9, r8
sub r8, rdi
add r8, 0xffffffffffffff38
test rdx, rdx
cmovne r8, r9
mov rcx, qword [rax + 0x10]
mov rbx, qword [rax + 8]
mov r9, qword [rsp + 0x40]
sub r8, r9
test r8, r8
jl 0x520bba
mov qword [rsp + 0x80], r8
test rdx, rdx
je 0x520869
mov r10, qword [rsp + 0x60]
jmp 0x520931
mov r10, qword [rsp + 0x60]
test r10, r10
je 0x520931
mov rdx, qword [rsp + 0xb0]
mov qword [rdx + 8], r9
lea rsi, [r10 - 1]
mov qword [rsp + 0x58], rsi
neg rsi
sar rsi, 0x3f
and esi, 0x10
add rsi, rdx
mov qword [rsp + 0xd8], rsi
cmp dword [0x0092b0b0], 0
jne 0x5208b7
mov r10, qword [rsp + 0xa0]
mov qword [rdx], r10
jmp 0x5208cd
mov rax, rdi
mov rdi, rdx
mov r8, qword [rsp + 0xa0]
call fcn.00465a80
mov rdi, rax
lea rax, [0x006a9320]
mov rbx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xc0]
call fcn.004131e0
mov qword [rax + 8], 1
mov qword [rax + 0x10], 1
cmp dword [0x0092b0b0], 0
jne 0x52090f
mov rdx, qword [rsp + 0xb0]
mov qword [rax], rdx
jmp 0x52091f
mov rdi, rax
mov rdx, qword [rsp + 0xb0]
call fcn.00465a20
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0xd8]
jmp 0x520a24
inc rbx
cmp rcx, rbx
jae 0x520967
mov rax, rdx
mov edi, 1
lea rsi, [0x00679500]
call fcn.0044a920
mov rdi, qword [rsp + 0x70]
mov r8, qword [rsp + 0x80]
mov r9, qword [rsp + 0x40]
mov r10, qword [rsp + 0x60]
mov rdx, rax
mov qword [rsp + 0xd8], rdx
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x88], rcx
lea rsi, [rbx - 1]
shl rsi, 4
mov qword [rdx + rsi + 8], r9
lea r9, [rdx + rsi]
cmp dword [0x0092b0b0], 0
jne 0x5209a7
mov r9, qword [rsp + 0xa0]
mov qword [rdx + rsi], r9
jmp 0x5209bd
mov rax, rdi
mov rdi, r9
mov rsi, qword [rsp + 0xa0]
call fcn.00465a60
mov rdi, rax
lea rax, [0x006a9320]
mov rbx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xc0]
call fcn.004131e0
mov rdx, qword [rsp + 0x90]
mov qword [rax + 8], rdx
mov rdx, qword [rsp + 0x88]
mov qword [rax + 0x10], rdx
cmp dword [0x0092b0b0], 0
jne 0x520a07
mov rdx, qword [rsp + 0xd8]
mov qword [rax], rdx
jmp 0x520a17
mov rdi, rax
mov rdx, qword [rsp + 0xd8]
call fcn.00465a20
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0xe0]
test rbx, rbx
jne 0x520b9a
mov rdx, qword [rsp + 0x98]
mov rbx, qword [rsp + 0x80]
jmp 0x5206b5
xor eax, eax
lea rbx, [0x006d2b15]
mov ecx, 0x1c
mov rdi, qword [rsp + 0xb8]
mov rsi, qword [rsp + 0x68]
call fcn.0044e760
call fcn.0040afc0
lea rbx, [0x007437a0]
mov rcx, rax
mov rax, qword [rsp + 0xd0]
mov rbp, qword [rsp + 0xe8]
add rsp, 0xf0
ret
xor eax, eax
lea rbx, [0x006d2b15]
mov ecx, 0x1c
mov rdi, qword [rsp + 0xb8]
mov rsi, qword [rsp + 0x68]
call fcn.0044e760
call fcn.0040afc0
lea rbx, [0x007437a0]
mov rcx, rax
mov rax, qword [rsp + 0xd0]
mov rbp, qword [rsp + 0xe8]
add rsp, 0xf0
ret
mov rax, qword [rsp + 0xd0]
mov rbx, rdi
mov rcx, rsi
mov rbp, qword [rsp + 0xe8]
add rsp, 0xf0
ret
lea rcx, [rsi + 1]
nop word [rax + rax]
cmp r8, rcx
jle 0x52076e
movzx r9d, byte [rdx + rcx]
cmp r9b, 0x40
sbb r10, r10
lea r11d, [r9 - 0x40]
cmp r11b, 0x40
sbb r11, r11
mov rsi, rcx
mov ecx, r9d
mov r12d, 1
shl r12, cl
and r10, r12
mov r9d, 0xfffffdff
and r10, r9
and r11, r12
movabs r12, 0x8000000000000000
and r11, r12
or r10, r11
test r10, r10
je 0x520af6
xor eax, eax
lea rbx, [0x006d2b15]
mov ecx, 0x1c
mov rdi, qword [rsp + 0xb8]
mov rsi, qword [rsp + 0x68]
call fcn.0044e760
call fcn.0040afc0
lea rbx, [0x007437a0]
mov rcx, rax
mov rax, qword [rsp + 0xd0]
mov rbp, qword [rsp + 0xe8]
add rsp, 0xf0
ret
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xc8]
mov rbp, qword [rsp + 0xe8]
add rsp, 0xf0
ret
lea rax, [0x00690f40]
call fcn.0040d960
mov qword [rax + 8], 0x11
lea rcx, [0x006cd441]
mov qword [rax], rcx
lea rbx, [0x00742c00]
mov rcx, rax
mov rax, qword [rsp + 0xd0]
mov rbp, qword [rsp + 0xe8]
add rsp, 0xf0
ret
lea rax, [0x00690f40]
call fcn.0040d960
mov qword [rax + 8], 0x11
lea rcx, [0x006cd441]
mov qword [rax], rcx
lea rbx, [0x00742c00]
mov rcx, rax
xor eax, eax
mov rbp, qword [rsp + 0xe8]
add rsp, 0xf0
ret
xor eax, eax
mov rcx, rax
call fcn.00465da0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
call fcn.00463740
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
jmp fcn.00520540