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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
lea rax, [rsp - 0x20]
cmp rax, qword [rcx + 0x10]
jbe 0x40d68f
sub rsp, 0xa0
mov qword [rsp + 0x98], rbp
lea rbp, [rsp + 0x98]
mov rax, qword [rsp + 0xa8]
test byte [rax], al
nop
lea rcx, [rax + 0x103b8]
mov qword [rsp], rcx
mov rcx, qword [rsp + 0xb0]
add rcx, 0x3fffff
and rcx, 0xffffffffffc00000
mov qword [rsp + 0x28], rcx
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], 0x400000
lea rdx, [0x008137f0]
mov qword [rsp + 0x18], rdx
call fcn.0040ed20
mov rax, qword [rsp + 0x20]
test rax, rax
jne 0x40d52f
mov rcx, qword [rsp + 0xa8]
mov rdx, qword [rsp + 0x28]
jmp 0x40cf58
mov rsi, qword [rbx + 0x10]
mov qword [rcx + 0x103b0], rsi
nop
mov rsi, qword [rcx + 0x16b88]
sub rsi, qword [rcx + 0x16b58]
mov qword [rcx + 0x16b88], rsi
mov rsi, qword [rcx + 0x16b70]
mov qword [rbx], rsi
mov qword [rcx + 0x16b70], rbx
mov rax, r8
mov rbx, qword [rcx + 0x103b0]
nop
test rbx, rbx
je 0x40d522
mov qword [rsp + 0x68], rbx
mov rax, qword [rbx]
movzx esi, byte [rbx + 8]
mov rdi, rax
sub rax, rdx
test rsi, rsi
cmovne rdi, rax
lea rax, [rdx + rdi]
cmp rdi, rax
jbe 0x40d4b6
xor esi, esi
mov r8, rsi
cmp rdi, rsi
je 0x40cfdc
test r8, r8
je 0x40cf23
mov qword [rsp + 0x90], r8
mov qword [rsp], r8
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], 0
call fcn.00419e80
mov rcx, qword [rsp + 0xa8]
mov rdx, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x68]
mov r8, qword [rsp + 0x90]
jmp 0x40cf23
movzx esi, byte [rbx + 8]
test rsi, rsi
cmovne rax, rdi
mov qword [rbx], rax
mov rax, rdx
test rdx, rdx
je 0x40d3c2
mov rax, r8
lea rbx, [rdx + r8]
nop dword [rax]
cmp r8, rbx
jbe 0x40d34a
mov esi, 0x1c
lea rdi, [0x00662066]
test rsi, rsi
jne 0x40d5d3
nop
test r8, 0x3fffff
jne 0x40d5ba
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x60], rdx
mov qword [rsp], rax
mov qword [rsp + 8], rdx
lea rcx, [0x008137f0]
mov qword [rsp + 0x10], rcx
call fcn.0041a0c0
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x60], rcx
mov rdx, rax
movabs rbx, 0x800000000000
add rbx, rax
shr rbx, 0x16
mov rsi, qword [rsp + 0xa8]
jmp 0x40d0b6
mov rdi, qword [rsp + 0x50]
mov qword [rdx + rsi*8], rdi
mov r8, qword [rsp + 0x88]
xchg qword [r8], rax
inc rdi
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x90]
mov rsi, rbx
mov rbx, rdi
mov rdi, rdx
add rdx, rcx
movabs r8, 0x7fffffffffff
add rdx, r8
shr rdx, 0x16
cmp rdx, rbx
jb 0x40d32a
mov rax, rbx
shr rax, 0x14
nop dword [rax]
cmp rax, 0x40
jae 0x40d5b0
mov qword [rsp + 0x50], rbx
mov rdx, qword [rsi + rax*8 + 0x10198]
lea rax, [rsi + rax*8]
lea rax, [rax + 0x10198]
test rdx, rdx
je 0x40d2bb
test byte [rdx], al
and rbx, 0xfffff
mov r9, qword [rdx + rbx*8]
lea rdx, [rdx + rbx*8]
nop dword [rax]
test r9, r9
jne 0x40d57e
mov qword [rsp + 0x88], rdx
lea rax, [rsi + 0x10398]
mov qword [rsp], rax
mov qword [rsp + 8], 0x210d0
mov qword [rsp + 0x10], 8
lea rax, [0x00813858]
mov qword [rsp + 0x18], rax
call fcn.0040ed20
mov rax, qword [rsp + 0x20]
test rax, rax
je 0x40d286
mov rbx, qword [rsp + 0xa8]
mov rsi, qword [rbx + 0x103e0]
nop dword [rax]
cmp qword [rbx + 0x103d8], rsi
je 0x40d1ce
mov rsi, qword [rbx + 0x103d8]
mov rdx, qword [rbx + 0x103e0]
lea rcx, [rsi + 1]
nop dword [rax + rax]
cmp rdx, rcx
jb 0x40d545
mov qword [rbx + 0x103d8], rcx
mov rdx, qword [rbx + 0x103d0]
nop word [rax + rax]
cmp rsi, rcx
jb 0x40d08c
jmp 0x40d539
mov qword [rsp + 0x38], rax
shl rsi, 4
test rsi, rsi
jne 0x40d1e3
mov rsi, qword [0x00811270]
mov qword [rsp + 0x30], rsi
mov qword [rsp], rsi
mov qword [rsp + 8], 8
lea rax, [0x00813858]
mov qword [rsp + 0x10], rax
call fcn.0040e900
mov rax, qword [rsp + 0x18]
test rax, rax
je 0x40d54a
mov rbx, qword [rsp + 0xa8]
mov rsi, qword [rbx + 0x103d0]
mov rdi, qword [rbx + 0x103d8]
mov qword [rbx + 0x103d0], rax
mov r8, qword [rsp + 0x30]
shr r8, 3
mov qword [rbx + 0x103e0], r8
mov r8, qword [rbx + 0x103d8]
cmp rdi, r8
cmovl r8, rdi
mov rdi, qword [rbx + 0x103d0]
cmp rsi, rdi
jne 0x40d265
mov rax, qword [rsp + 0x38]
jmp 0x40d189
mov qword [rsp], rdi
mov qword [rsp + 8], rsi
shl r8, 3
mov qword [rsp + 0x10], r8
call fcn.0046d6c0
mov rbx, qword [rsp + 0xa8]
jmp 0x40d25b
mov qword [rsp], 0x210d0
mov qword [rsp + 8], 8
lea rax, [0x00813858]
mov qword [rsp + 0x10], rax
call fcn.0040e900
mov rax, qword [rsp + 0x18]
test rax, rax
jne 0x40d16d
jmp 0x40d565
mov qword [rsp + 0x80], rax
mov qword [rsp], 0x800000
mov qword [rsp + 8], 8
mov qword [rsp + 0x10], 0
nop dword [rax]
call fcn.0040e900
mov rax, qword [rsp + 0x18]
test rax, rax
je 0x40d597
mov r9, qword [rsp + 0x80]
mov rdx, rax
xchg qword [r9], rax
mov rcx, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0xa8]
mov rdi, qword [rsp + 0x90]
movabs r8, 0x7fffffffffff
jmp 0x40d10b
mov qword [rsp + 0xb8], rdi
mov qword [rsp + 0xc0], rcx
mov rbp, qword [rsp + 0x98]
add rsp, 0xa0
ret
movabs rsi, 0x800000000000
lea rdi, [rsi + r8]
shr rdi, 0x16
nop dword [rax]
cmp rdi, 0x4000000
jb 0x40d385
mov edi, 0x21
lea r9, [0x00663a94]
mov rsi, rdi
mov rdi, r9
nop dword [rax + rax]
jmp 0x40d015
movabs r10, 0x7fffffffffff
lea r11, [r10 + rbx]
shr r11, 0x16
cmp r11, 0x4000000
mov edi, 0
mov r11d, 0x20
cmovae rdi, r11
mov r9d, 0
lea r11, [0x006635ae]
cmovae r9, r11
nop
jmp 0x40d375
mov qword [rsp], 0
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], 0x400000
call fcn.0040d6a0
mov rax, qword [rsp + 0x18]
mov rcx, qword [rsp + 0x20]
test rax, rax
je 0x40d48e
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x60], rcx
mov rax, qword [rsp + 0xa8]
lea rcx, [rax + 0x16b58]
mov qword [rsp + 0x78], rcx
mov qword [rsp], rcx
call fcn.0041b120
mov rax, qword [rsp + 8]
mov rcx, qword [rsp + 0x90]
mov qword [rax], rcx
mov byte [rax + 8], 1
mov rcx, qword [0x007f3190]
mov qword [rax + 0x10], rcx
mov qword [0x007f3190], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp], rax
call fcn.0041b120
mov rax, qword [rsp + 8]
mov r8, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x60]
lea rbx, [rdx + r8]
mov qword [rax], rbx
mov rbx, qword [0x007f3190]
mov qword [rax + 0x10], rbx
mov qword [0x007f3190], rax
mov rcx, qword [rsp + 0xa8]
mov r8, qword [rsp + 0x90]
jmp 0x40cff6
mov qword [rsp + 0xb8], 0
mov qword [rsp + 0xc0], 0
mov rbp, qword [rsp + 0x98]
add rsp, 0xa0
ret
movabs rsi, 0x7fffffffffff
lea r8, [rsi + rax]
shr r8, 0x16
cmp r8, 0x4000000
jb 0x40d4dc
xor r8d, r8d
mov rsi, r8
jmp 0x40cf91
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x60], rax
mov qword [rsp], rdi
mov qword [rsp + 8], rdx
call fcn.00419fe0
mov r8, qword [rsp + 0x10]
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0xa8]
mov rdx, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x68]
movabs rsi, 0x7fffffffffff
mov rdi, qword [rsp + 0x40]
nop
jmp 0x40d4d4
mov r8, rax
mov rax, rdx
xor edx, edx
jmp 0x40cfed
mov rcx, qword [rsp + 0x28]
jmp 0x40d061
mov rax, rsi
nop dword [rax]
call fcn.0046cdc0
call fcn.0046ce40
lea rax, [0x00664222]
mov qword [rsp], rax
mov qword [rsp + 8], 0x22
nop
call fcn.00439220
lea rax, [0x00666c18]
mov qword [rsp], rax
mov qword [rsp + 8], 0x2c
call fcn.00439220
lea rax, [0x00660b9f]
mov qword [rsp], rax
mov qword [rsp + 8], 0x19
call fcn.00439220
lea rax, [0x00665a35]
mov qword [rsp], rax
mov qword [rsp + 8], 0x27
call fcn.00439220
mov ecx, 0x40
call fcn.0046cde0
lea rax, [0x00663c41]
mov qword [rsp], rax
mov qword [rsp + 8], 0x21
call fcn.00439220
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x58], rsi
call fcn.0043aa00
lea rax, [0x00663dac]
mov qword [rsp], rax
mov qword [rsp + 8], 0x21
call fcn.0043b480
mov rax, qword [rsp + 0x48]
mov qword [rsp], rax
call fcn.0043b2a0
lea rax, [0x0065a2d2]
mov qword [rsp], rax
mov qword [rsp + 8], 2
call fcn.0043b480
mov rax, qword [rsp + 0x60]
mov qword [rsp], rax
call fcn.0043b2a0
lea rax, [0x00662e58]
mov qword [rsp], rax
mov qword [rsp + 8], 0x1f
call fcn.0043b480
mov rax, qword [rsp + 0x70]
mov qword [rsp], rax
mov rax, qword [rsp + 0x58]
mov qword [rsp + 8], rax
call fcn.0043b480
call fcn.0043ace0
call fcn.0043aaa0
lea rax, [0x0066720c]
mov qword [rsp], rax
mov qword [rsp + 8], 0x2e
call fcn.00439220
nop
call fcn.0046abe0
jmp fcn.0040ce80