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

Disassembly:
lea r12, [rsp - 0xa8]
cmp r12, qword [r14 + 0x10]
jbe 0x409b4b
sub rsp, 0x128
mov qword [rsp + 0x120], rbp
lea rbp, [rsp + 0x120]
mov rax, qword [rsp + 0x128]
call fcn.00451360
call fcn.00451b00
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x30], rbx
mov qword [rsp], rax
mov qword [rsp + 8], rbx
mov byte [rsp + 0x10], 0x28
call fcn.004032e0
xorps xmm15, xmm15
mov r14, qword [0x00918820]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rcx, qword [rsp + 0x18]
test rcx, rcx
jl 0x409b1d
lea rax, [rcx - 1]
mov rdx, qword [rsp + 0x30]
cmp rdx, rax
jb 0x409b15
lea r8, [rcx + 2]
cmp rdx, r8
jg 0x409899
xor eax, eax
lea rbx, [0x006c9a34]
mov ecx, 0x31
mov rdi, qword [rsp + 0x80]
mov rsi, rdx
call fcn.0044e540
call fcn.00436a00
jb 0x409b0d
nop
cmp r8, rax
jb 0x409b05
mov rdi, qword [rsp + 0x80]
movzx r9d, byte [rcx + rdi - 1]
movzx r10d, byte [rcx + rdi]
shl r10d, 8
or r9d, r10d
cmp r9w, 0x282e
jne 0x409876
movzx r9d, byte [rcx + rdi + 1]
cmp r9b, 0x2a
jne 0x409876
mov qword [rsp + 0x28], rax
sub rdx, rcx
mov qword [rsp + 0x38], rdx
lea rax, [rdx - 2]
mov qword [rsp + 0x30], rax
mov rcx, rax
neg rax
sar rax, 0x3f
and rax, r8
add rax, rdi
mov qword [rsp + 0x88], rax
mov qword [rsp], rax
mov qword [rsp + 8], rcx
mov byte [rsp + 0x10], 0x29
call fcn.004032e0
xorps xmm15, xmm15
mov r14, qword [0x00918820]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rcx, qword [rsp + 0x18]
test rcx, rcx
jl 0x409ada
lea r8, [rcx + 2]
mov rdx, qword [rsp + 0x30]
cmp r8, rdx
jl 0x40996a
xor eax, eax
lea rbx, [0x006c8a7e]
mov ecx, 0x2e
mov rdi, qword [rsp + 0x88]
mov rsi, rdx
nop
call fcn.0044e540
call fcn.00436a00
ja 0x409ad2
cmp rcx, r8
ja 0x409ac7
mov rdi, qword [rsp + 0x88]
movzx r9d, word [rdi + rcx]
cmp r9w, 0x2e29
jne 0x409946
mov rax, rdi
lea rdi, [rsp + 0x90]
lea rdi, [rdi - 0x30]
nop dword [rax]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.00465d79
mov rbp, qword [rbp]
lea rdx, [0x006bb14e]
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0x98], 0xd
mov rdx, qword [rsp + 0x80]
mov qword [rsp + 0xa0], rdx
mov rdx, qword [rsp + 0x28]
mov qword [rsp + 0xa8], rdx
lea rdx, [0x0072bd00]
mov qword [rsp + 0xb0], rdx
mov qword [rsp + 0xb8], 1
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0xd0], rdx
mov qword [rsp + 0xd8], 1
mov rdx, qword [rsp + 0x38]
sub rdx, rcx
add rdx, 0xfffffffffffffffc
mov rsi, rdx
neg rdx
sar rdx, 0x3f
and rdx, r8
add rdx, rax
mov qword [rsp + 0xe0], rdx
mov qword [rsp + 0xe8], rsi
lea rdx, [0x006bce63]
mov qword [rsp + 0xf0], rdx
mov qword [rsp + 0xf8], 0x13
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x108], rcx
lea rdx, [0x006b9419]
mov qword [rsp + 0x110], rdx
mov qword [rsp + 0x118], 8
xor eax, eax
lea rbx, [rsp + 0x90]
mov ecx, 9
mov rdi, rcx
call fcn.0044e300
call fcn.0040b080
mov rbx, rax
lea rax, [0x00676ba0]
call fcn.00436260
mov rax, rcx
mov rcx, r8
call fcn.00465b60
mov rcx, r8
call fcn.00465ae0
lea rax, [rsp + 0x40]
lea rbx, [0x006bd4fe]
mov ecx, 0x13
mov rdi, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x30]
call fcn.0044e540
nop dword [rax]
call fcn.00436a00
mov rcx, r8
call fcn.00465b60
mov rcx, r8
call fcn.00465ae0
mov rcx, rax
call fcn.00465ae0
lea rax, [rsp + 0x60]
lea rbx, [0x006bd4eb]
mov ecx, 0x13
mov rdi, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x30]
nop dword [rax + rax]
call fcn.0044e540
call fcn.00436a00
nop
call fcn.00463440
jmp fcn.004097e0