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

Disassembly:
lea r12, [rsp - 0x178]
cmp r12, qword [r14 + 0x10]
jbe 0x6496aa
sub rsp, 0x1f8
mov qword [rsp + 0x1f0], rbp
lea rbp, [rsp + 0x1f0]
mov byte [rsp + 0x219], sil
mov qword [rsp + 0x210], rcx
mov qword [rsp + 0x208], rbx
mov byte [rsp + 0x218], dil
mov qword [rsp + 0x220], r8
mov qword [rsp + 0x200], rax
mov qword [rsp + 0x228], r9
mov qword [rsp + 0x238], r11
mov qword [rsp + 0x230], r10
mov qword [rsp + 0x48], 0
movups xmmword [rsp + 0x128], xmm15
mov rdx, qword [rax + 0x108]
mov rax, rdx
call fcn.0063f800
mov qword [rsp + 0x128], rax
mov qword [rsp + 0x130], rbx
test rax, rax
jne 0x649674
xor eax, eax
mov rcx, qword [rsp + 0x200]
mov edx, 1
lock cmpxchg dword [rcx + 0x168], edx
sete dl
lea rax, [rcx + 0x168]
test dl, dl
jne 0x648ded
mov qword [rsp + 0x120], rax
call fcn.00470b60
mov rax, qword [rsp + 0x120]
mov rcx, qword [rsp + 0x200]
movzx edx, byte [rcx + 0x180]
test dl, dl
nop
mov ebx, 0xffffffff
lock xadd dword [rcx + 0x168], ebx
dec ebx
test ebx, ebx
jne 0x648e0e
test dl, dl
jmp 0x648e26
mov byte [rsp + 0x47], dl
call fcn.00470e60
movzx ecx, byte [rsp + 0x47]
test cl, cl
mov rcx, qword [rsp + 0x200]
je 0x648f6a
mov rdx, qword [rsp + 0x220]
cmp rdx, 8
je 0x648f6a
mov rdx, qword [rcx + 0x108]
mov rbx, qword [rdx + 8]
xor eax, eax
call fcn.00407060
mov rcx, qword [rsp + 0x208]
mov rdx, qword [rcx + 0x20]
mov rax, qword [rsp + 0x210]
call rdx
mov rcx, qword [rsp + 0x200]
mov rcx, qword [rcx + 0x160]
movups xmmword [rsp + 0x1a8], xmm15
movups xmmword [rsp + 0x1b8], xmm15
mov qword [rsp + 0x1b8], rax
mov qword [rsp + 0x1a8], rcx
lea rax, [rsp + 0x1a8]
lea rbx, [rsp + 0x68]
xor ecx, ecx
xor edi, edi
mov esi, 2
mov r8d, 1
call fcn.004473a0
test rax, rax
jne 0x648f0e
mov qword [rsp + 0x48], 0
mov rax, qword [0x008b6130]
mov rcx, qword [0x008b6138]
mov qword [rsp + 0x128], rax
mov qword [rsp + 0x130], rcx
call fcn.00435700
mov rax, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x130]
mov rbp, qword [rsp + 0x1f0]
add rsp, 0x1f8
ret
mov rcx, qword [rsp + 0x208]
mov rcx, qword [rcx + 0x28]
mov rax, qword [rsp + 0x210]
call rcx
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x128], rax
mov qword [rsp + 0x130], rbx
nop dword [rax]
call fcn.00435700
mov rax, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x130]
mov rbp, qword [rsp + 0x1f0]
add rsp, 0x1f8
ret
mov rdx, qword [rcx + 0x108]
movups xmmword [rsp + 0x138], xmm15
lea rbx, [0x006498e0]
mov qword [rsp + 0x138], rbx
mov qword [rsp + 0x140], rdx
lea rdx, [rsp + 0x138]
mov qword [rsp + 0xf0], rdx
lea rax, [rsp + 0xd8]
call fcn.004350e0
test eax, eax
jne 0x64964a
mov rdx, qword [rsp + 0x200]
mov r9, qword [rdx + 0x160]
mov r10, qword [rdx + 0x50]
mov r11, qword [rsp + 0x208]
mov qword [rsp + 0x158], r11
mov r12, qword [rsp + 0x210]
mov qword [rsp + 0x160], r12
movups xmmword [rsp + 0x188], xmm15
movups xmmword [rsp + 0x198], xmm15
mov qword [rsp + 0x198], r9
mov qword [rsp + 0x188], r10
lea r9, [rsp + 0x158]
mov qword [rsp + 0x190], r9
lea rax, [rsp + 0x188]
lea rbx, [rsp + 0x60]
xor ecx, ecx
mov edi, 1
mov rsi, rdi
mov r8d, 1
call fcn.004473a0
nop dword [rax]
test rax, rax
jne 0x6495f6
movups xmmword [rsp + 0x1c8], xmm15
movups xmmword [rsp + 0x1d0], xmm15
movups xmmword [rsp + 0x1e0], xmm15
lea rcx, [0x00649720]
mov qword [rsp + 0x1c8], rcx
lea rcx, [rsp + 0x128]
mov qword [rsp + 0x1d0], rcx
mov rcx, qword [rsp + 0x200]
mov qword [rsp + 0x1d8], rcx
mov rdx, qword [rsp + 0x208]
mov qword [rsp + 0x1e0], rdx
mov rdx, qword [rsp + 0x210]
mov qword [rsp + 0x1e8], rdx
lea rdx, [rsp + 0x1c8]
mov qword [rsp + 0xa8], rdx
lea rax, [rsp + 0x90]
call fcn.004350e0
test eax, eax
jne 0x6495cc
movzx edx, byte [rsp + 0x218]
mov rcx, qword [rsp + 0x200]
mov byte [rcx + 0x130], dl
mov rdx, qword [rsp + 0x220]
mov qword [rcx + 0x138], rdx
mov r12, qword [rsp + 0x230]
mov qword [rcx + 0x140], r12
cmp byte [rcx + 0x20], 0
je 0x649228
mov byte [rcx + 0x148], 1
mov rbx, qword [0x008c37c8]
mov rax, qword [0x008c37c0]
lea rdx, [rcx + 0x128]
mov edi, 4
mov esi, 8
mov r8, rdi
mov rcx, rdx
call fcn.00490340
mov qword [rsp + 0x128], rbx
mov qword [rsp + 0x130], rcx
nop word [rax + rax]
test rbx, rbx
je 0x6491ff
movups xmmword [rsp + 0x148], xmm15
mov rdx, qword [rsp + 0x128]
mov r8, qword [rsp + 0x130]
test rdx, rdx
je 0x64918b
mov rdx, qword [rdx + 8]
mov qword [rsp + 0x148], rdx
mov qword [rsp + 0x150], r8
lea rax, [0x006c4521]
mov ebx, 0x22
lea rcx, [rsp + 0x148]
mov edi, 1
mov rsi, rdi
call fcn.004f0a80
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x128], rax
mov qword [rsp + 0x130], rbx
call fcn.00435700
mov rax, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x130]
mov rbp, qword [rsp + 0x1f0]
add rsp, 0x1f8
ret
mov rdx, qword [rsp + 0x200]
mov r12d, dword [rdx + 0x128]
mov dword [rdx + 0x14c], r12d
mov rcx, rdx
mov rdx, qword [rsp + 0x220]
mov r12, qword [rsp + 0x230]
mov byte [rcx + 0x131], 0
movzx r13d, byte [rsp + 0x219]
test r13b, r13b
je 0x649253
nop dword [rax]
cmp rdx, 1
je 0x64924c
cmp rdx, 2
jne 0x649253
mov byte [rcx + 0x131], 1
movups xmm0, xmmword [rcx + 0x130]
movups xmmword [rsp + 0x70], xmm0
movups xmm0, xmmword [rcx + 0x140]
movups xmmword [rsp + 0x80], xmm0
movzx eax, byte [rsp + 0x70]
movzx ebx, byte [rsp + 0x71]
movzx edx, byte [rsp + 0x72]
movzx edi, byte [rsp + 0x73]
mov rsi, qword [rsp + 0x78]
mov r8, qword [rsp + 0x80]
movzx r9d, byte [rsp + 0x88]
mov r10d, dword [rsp + 0x8c]
mov r11, qword [rcx + 0x40]
lea r12, [rcx + 0x128]
mov qword [rsp], r12
mov qword [rsp + 8], 8
mov qword [rsp + 0x10], 8
mov ecx, edx
call fcn.00642ba0
mov qword [rsp + 0x128], rax
mov qword [rsp + 0x130], rbx
nop dword [rax + rax]
test rax, rax
jne 0x649599
mov rax, qword [rsp + 0x200]
mov rbx, qword [rsp + 0x228]
mov rcx, qword [rsp + 0x230]
mov rdi, qword [rsp + 0x238]
call fcn.00649940
mov qword [rsp + 0x128], rbx
mov qword [rsp + 0x130], rcx
nop
test rbx, rbx
jne 0x64956a
mov qword [rsp + 0x50], rax
mov rdx, qword [rsp + 0x200]
cmp byte [rdx + 0x130], 0
nop dword [rax]
je 0x649409
mov rax, qword [rdx + 0x40]
call fcn.005c97a0
mov qword [rsp + 0x128], rax
mov qword [rsp + 0x130], rbx
nop
test rax, rax
je 0x649401
movups xmmword [rsp + 0x148], xmm15
mov rdx, qword [rsp + 0x128]
mov r8, qword [rsp + 0x130]
test rdx, rdx
je 0x64938b
mov rdx, qword [rdx + 8]
mov qword [rsp + 0x148], rdx
mov qword [rsp + 0x150], r8
lea rax, [0x006bd310]
mov ebx, 0x13
lea rcx, [rsp + 0x148]
mov edi, 1
mov rsi, rdi
call fcn.004f0a80
mov rdx, qword [rsp + 0x50]
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x128], rax
mov qword [rsp + 0x130], rbx
call fcn.00435700
mov rax, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x130]
mov rbp, qword [rsp + 0x1f0]
add rsp, 0x1f8
nop
ret
mov rdx, qword [rsp + 0x200]
mov r9, qword [rdx + 0x160]
mov rdx, qword [rdx + 0x50]
mov r10, qword [0x008c3278]
lea r11, [0x007307e8]
mov qword [rsp + 0x158], r11
mov qword [rsp + 0x160], r10
movups xmmword [rsp + 0x168], xmm15
movups xmmword [rsp + 0x178], xmm15
mov qword [rsp + 0x178], r9
mov qword [rsp + 0x168], rdx
lea rdx, [rsp + 0x158]
mov qword [rsp + 0x170], rdx
lea rax, [rsp + 0x168]
lea rbx, [rsp + 0x58]
xor ecx, ecx
mov edi, 1
mov rsi, rdi
mov r8d, 1
call fcn.004473a0
test rax, rax
je 0x64952c
mov rax, qword [rsp + 0x220]
cmp rax, 8
jne 0x6494da
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x48], rax
movups xmmword [rsp + 0x128], xmm15
call fcn.00435700
mov rax, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x130]
mov rbp, qword [rsp + 0x1f0]
add rsp, 0x1f8
ret
mov rax, qword [0x008b6130]
mov rcx, qword [0x008b6138]
mov rdx, qword [rsp + 0x50]
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x128], rax
mov qword [rsp + 0x130], rcx
call fcn.00435700
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x130]
mov rbx, qword [rsp + 0x128]
mov rbp, qword [rsp + 0x1f0]
add rsp, 0x1f8
ret
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x48], rax
movups xmmword [rsp + 0x128], xmm15
nop
call fcn.00435700
mov rax, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x130]
mov rbp, qword [rsp + 0x1f0]
add rsp, 0x1f8
ret
mov qword [rsp + 0x48], rax
call fcn.00435700
mov rax, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x130]
mov rbp, qword [rsp + 0x1f0]
add rsp, 0x1f8
ret
mov qword [rsp + 0x48], 0
call fcn.00435700
mov rax, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x130]
mov rbp, qword [rsp + 0x1f0]
add rsp, 0x1f8
ret
call fcn.00435700
mov rax, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x130]
mov rbp, qword [rsp + 0x1f0]
add rsp, 0x1f8
ret
mov rax, qword [0x008b6130]
mov rcx, qword [0x008b6138]
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x128], rax
mov qword [rsp + 0x130], rcx
nop dword [rax]
call fcn.00435700
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x130]
mov rbx, qword [rsp + 0x128]
mov rbp, qword [rsp + 0x1f0]
add rsp, 0x1f8
ret
call fcn.00435700
mov rax, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x130]
mov rbp, qword [rsp + 0x1f0]
add rsp, 0x1f8
ret
mov qword [rsp + 0x48], 0
nop dword [rax]
call fcn.00435700
mov rax, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x130]
mov rbp, qword [rsp + 0x1f0]
add rsp, 0x1f8
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov byte [rsp + 0x20], dil
mov byte [rsp + 0x21], sil
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x40], r11
call fcn.00463440
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
movzx edi, byte [rsp + 0x20]
movzx esi, byte [rsp + 0x21]
mov r8, qword [rsp + 0x28]
mov r9, qword [rsp + 0x30]
mov r10, qword [rsp + 0x38]
mov r11, qword [rsp + 0x40]
jmp fcn.00648d00