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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
cmp rsp, qword [rcx + 0x18]
jbe 0x40ed00
sub rsp, 0x48
mov qword [rsp + 0x40], rbp
lea rbp, [rsp + 0x40]
mov rax, qword [rsp + 0x50]
test rax, rax
je 0x40ece5
mov rcx, qword [rsp + 0x58]
nop dword [rax + rax]
test rcx, rcx
je 0x40ec6c
lea rdx, [rcx - 1]
test rcx, rdx
jne 0x40ecc9
nop word [rax + rax]
nop
cmp rcx, 0x2000
ja 0x40ecb0
cmp rax, 0x10000
jae 0x40ec45
mov qword [rsp + 0x18], rcx
mov rdx, qword gs:[0x28]
mov rdx, qword [rdx]
mov rbx, qword [rdx + 0x30]
nop
inc dword [rbx + 0xd8]
mov rdx, qword [rdx + 0x30]
mov qword [rsp + 0x30], rdx
test rdx, rdx
je 0x40ec0e
mov rbx, qword [rdx + 0xa0]
test rbx, rbx
je 0x40ec0e
test byte [rbx], al
add rbx, 0x1650
mov qword [rsp + 0x28], rbx
mov rsi, qword [rbx + 8]
lea rsi, [rcx + rsi]
lea rsi, [rsi - 1]
neg rcx
mov qword [rsp + 0x20], rcx
and rsi, rcx
mov qword [rbx + 8], rsi
add rsi, rax
cmp rsi, 0x40000
jbe 0x40ebf7
mov qword [rsp], 0x40000
lea rax, [0x00813860]
mov qword [rsp + 8], rax
call fcn.00419a20
mov rax, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x28]
mov qword [rcx], rax
cmp qword [rcx], 0
nop
je 0x40ec76
mov rdx, qword [rcx]
mov rax, qword [0x00811258]
mov qword [rdx], rax
mov rdx, qword [rcx]
lea rbx, [0x00811258]
lock cmpxchg qword [rbx], rdx
sete dl
test dl, dl
je 0x40eae6
mov rax, qword [rsp + 0x18]
add rax, 7
mov rdx, qword [rsp + 0x20]
and rax, rdx
mov qword [rcx + 8], rax
mov rax, qword [rcx]
mov rdx, qword [rcx + 8]
mov rbx, qword [rsp + 0x50]
lea rsi, [rbx + rdx]
mov qword [rcx + 8], rsi
nop
mov rsi, qword gs:[0x28]
mov rsi, qword [rsi]
mov rdi, qword [rsp + 0x30]
mov r8d, dword [rdi + 0xd8]
lea r9d, [r8 - 1]
mov dword [rdi + 0xd8], r9d
add rax, rdx
nop dword [rax]
cmp r8d, 1
jne 0x40eb77
cmp byte [rsi + 0xb1], 0
je 0x40eb77
mov qword [rsi + 0x10], 0xfffffffffffffade
mov qword [rsp + 0x38], rax
lea rdx, [0x00811498]
cmp rcx, rdx
je 0x40ebda
mov rcx, qword [rsp + 0x60]
lea rdx, [0x00813860]
cmp rcx, rdx
jne 0x40eba8
mov qword [rsp + 0x68], rax
mov rbp, qword [rsp + 0x40]
add rsp, 0x48
ret
mov qword [rsp], rcx
mov qword [rsp + 8], rbx
call fcn.00431860
lea rax, [0x00813860]
mov qword [rsp], rax
mov rax, qword [rsp + 0x50]
neg rax
mov qword [rsp + 8], rax
call fcn.00431860
mov rax, qword [rsp + 0x38]
jmp 0x40eb99
nop
lea rax, [0x00811490]
mov qword [rsp], rax
call fcn.0040c240
mov rax, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x50]
jmp 0x40eb88
cmp qword [rbx], 0
nop dword [rax + rax]
je 0x40eab4
mov rcx, rbx
jmp 0x40eb1e
nop
nop
lea rax, [0x00811490]
mov qword [rsp], rax
nop dword [rax + rax]
call fcn.0040bfe0
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x18]
mov rdx, qword [rsp + 0x30]
lea rbx, [0x00811498]
nop dword [rax + rax]
jmp 0x40ea84
mov qword [rsp], rax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 8], rax
call fcn.00419a20
mov rax, qword [rsp + 0x10]
mov qword [rsp + 0x68], rax
mov rbp, qword [rsp + 0x40]
add rsp, 0x48
ret
mov ecx, 8
jmp 0x40ea2d
lea rax, [0x00811498]
nop dword [rax]
cmp rcx, rax
jne 0x40ec97
nop
nop
lea rax, [0x00811490]
mov qword [rsp], rax
call fcn.0040c240
lea rax, [0x006631db]
mov qword [rsp], rax
mov qword [rsp + 8], 0x1f
call fcn.00439220
lea rax, [0x00664742]
mov qword [rsp], rax
mov qword [rsp + 8], 0x23
call fcn.00439220
lea rax, [0x00666636]
mov qword [rsp], rax
mov qword [rsp + 8], 0x2a
nop dword [rax]
call fcn.00439220
lea rax, [0x006614e8]
mov qword [rsp], rax
mov qword [rsp + 8], 0x1a
call fcn.00439220
nop
nop
call fcn.004686e0
jmp fcn.0040e9c0