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

Disassembly:
lea r12, [rsp - 0xa8]
cmp r12, qword [r14 + 0x10]
jbe 0x409bcb
sub rsp, 0x128
mov qword [rsp + 0x120], rbp
lea rbp, [rsp + 0x120]
mov rax, qword [rsp + 0x128]
call fcn.004513c0
call fcn.00451b60
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.00403280
xorps xmm15, xmm15
mov r14, qword [0x00a04c40]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rcx, qword [rsp + 0x18]
test rcx, rcx
jl 0x409b9d
lea rax, [rcx - 1]
mov rdx, qword [rsp + 0x30]
cmp rdx, rax
jb 0x409b95
lea r8, [rcx + 2]
cmp rdx, r8
jg 0x409919
xor eax, eax
lea rbx, [0x0072df0f]
mov ecx, 0x31
mov rdi, qword [rsp + 0x80]
mov rsi, rdx
call fcn.0044e860
call fcn.00436d20
jb 0x409b8d
nop
cmp r8, rax
jb 0x409b85
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 0x4098f6
movzx r9d, byte [rcx + rdi + 1]
cmp r9b, 0x2a
jne 0x4098f6
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.00403280
xorps xmm15, xmm15
mov r14, qword [0x00a04c40]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rcx, qword [rsp + 0x18]
test rcx, rcx
jl 0x409b5a
lea r8, [rcx + 2]
mov rdx, qword [rsp + 0x30]
cmp r8, rdx
jl 0x4099ea
xor eax, eax
lea rbx, [0x0072ce05]
mov ecx, 0x2e
mov rdi, qword [rsp + 0x88]
mov rsi, rdx
nop
call fcn.0044e860
call fcn.00436d20
ja 0x409b52
cmp rcx, r8
ja 0x409b47
mov rdi, qword [rsp + 0x88]
movzx r9d, word [rdi + rcx]
cmp r9w, 0x2e29
jne 0x4099c6
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.00466179
mov rbp, qword [rbp]
lea rdx, [0x0071cde2]
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, [0x007eeb40]
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, [0x0071f316]
mov qword [rsp + 0xf0], rdx
mov qword [rsp + 0xf8], 0x13
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x108], rcx
lea rdx, [0x0071a6d7]
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.0044e620
call fcn.0040b100
mov rbx, rax
lea rax, [0x006ce620]
call fcn.00436580
mov rax, rcx
mov rcx, r8
call fcn.00465f80
mov rcx, r8
call fcn.00465f00
lea rax, [rsp + 0x40]
lea rbx, [0x0071fc70]
mov ecx, 0x13
mov rdi, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x30]
call fcn.0044e860
nop dword [rax]
call fcn.00436d20
mov rcx, r8
call fcn.00465f80
mov rcx, r8
call fcn.00465f00
mov rcx, rax
call fcn.00465f00
lea rax, [rsp + 0x60]
lea rbx, [0x0071fc5d]
mov ecx, 0x13
mov rdi, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x30]
nop dword [rax + rax]
call fcn.0044e860
call fcn.00436d20
nop
call fcn.00463860
jmp fcn.00409860