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

Disassembly:
lea r12, [rsp - 0xa8]
cmp r12, qword [r14 + 0x10]
jbe 0x409a8b
sub rsp, 0x128
mov qword [rsp + 0x120], rbp
lea rbp, [rsp + 0x120]
mov rax, qword [rsp + 0x128]
call fcn.004512c0
call fcn.00451a60
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 [0x0092ae40]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rcx, qword [rsp + 0x18]
test rcx, rcx
jl 0x409a5d
lea rax, [rcx - 1]
mov rdx, qword [rsp + 0x30]
cmp rdx, rax
jb 0x409a55
lea r8, [rcx + 2]
cmp rdx, r8
jg 0x4097d9
xor eax, eax
lea rbx, [0x006dad37]
mov ecx, 0x31
mov rdi, qword [rsp + 0x80]
mov rsi, rdx
call fcn.0044e760
call fcn.00436bc0
jb 0x409a4d
nop
cmp r8, rax
jb 0x409a45
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 0x4097b6
movzx r9d, byte [rcx + rdi + 1]
cmp r9b, 0x2a
jne 0x4097b6
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 [0x0092ae40]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rcx, qword [rsp + 0x18]
test rcx, rcx
jl 0x409a1a
lea r8, [rcx + 2]
mov rdx, qword [rsp + 0x30]
cmp r8, rdx
jl 0x4098aa
xor eax, eax
lea rbx, [0x006d9ddd]
mov ecx, 0x2e
mov rdi, qword [rsp + 0x88]
mov rsi, rdx
nop
call fcn.0044e760
call fcn.00436bc0
ja 0x409a12
cmp rcx, r8
ja 0x409a07
mov rdi, qword [rsp + 0x88]
movzx r9d, word [rdi + rcx]
cmp r9w, 0x2e29
jne 0x409886
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.00466059
mov rbp, qword [rbp]
lea rdx, [0x006cbfa7]
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, [0x00740110]
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, [0x006cdd6a]
mov qword [rsp + 0xf0], rdx
mov qword [rsp + 0xf8], 0x13
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x108], rcx
lea rdx, [0x006ca1ce]
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.0044e520
call fcn.0040afc0
mov rbx, rax
lea rax, [0x00688020]
call fcn.00436420
mov rax, rcx
mov rcx, r8
call fcn.00465e60
mov rcx, r8
call fcn.00465de0
lea rax, [rsp + 0x40]
lea rbx, [0x006ce48a]
mov ecx, 0x13
mov rdi, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x30]
call fcn.0044e760
nop dword [rax]
call fcn.00436bc0
mov rcx, r8
call fcn.00465e60
mov rcx, r8
call fcn.00465de0
mov rcx, rax
call fcn.00465de0
lea rax, [rsp + 0x60]
lea rbx, [0x006ce477]
mov ecx, 0x13
mov rdi, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x30]
nop dword [rax + rax]
call fcn.0044e760
call fcn.00436bc0
nop
call fcn.00463740
jmp fcn.00409720