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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
cmp rsp, qword [rcx + 0x10]
jbe 0x40e540
add rsp, 0xffffffffffffff80
mov qword [rsp + 0x78], rbp
lea rbp, [rsp + 0x78]
cmp dword [0x00811120], 2
je 0x40e526
mov rdx, qword [rsp + 0x88]
nop dword [rax]
test rdx, rdx
je 0x40e497
cmp byte [0x00811720], 0
je 0x40dbb0
cmp dword [0x0081172c], 0
je 0x40db79
mov rax, qword [rsp + 0x90]
test rax, rax
je 0x40db72
test rdx, 7
jne 0x40db4b
mov eax, 8
mov qword [rsp], rdx
mov qword [rsp + 8], rax
lea rax, [0x00813860]
mov qword [rsp + 0x10], rax
call fcn.0040e900
mov rax, qword [rsp + 0x18]
mov qword [rsp + 0xa0], rax
mov rbp, qword [rsp + 0x78]
sub rsp, 0xffffffffffffff80
ret
test rdx, 3
jne 0x40db5b
mov eax, 4
jmp 0x40db1a
test rdx, 1
mov eax, 1
mov ecx, 2
cmove rax, rcx
jmp 0x40db1a
mov eax, 0x10
jmp 0x40db1a
cmp byte [0x00811520], 0
je 0x40dbb0
mov rbx, qword gs:[0x28]
mov rbx, qword [rbx]
mov rbx, qword [rbx + 0x98]
nop dword [rax]
cmp qword [0x00811528], rbx
jne 0x40dbb0
inc qword [0x00811530]
cmp dword [0x00811114], 0
je 0x40e490
mov rbx, qword gs:[0x28]
mov rbx, qword [rbx]
mov rsi, qword [rbx + 0x30]
mov rsi, qword [rsi + 0x90]
nop dword [rax + rax]
test rsi, rsi
je 0x40e488
mov rbx, qword [rsi + 0x170]
sub rbx, rdx
mov qword [rsi + 0x170], rbx
nop word [rax + rax]
test rbx, rbx
jl 0x40e468
mov rbx, qword gs:[0x28]
mov rbx, qword [rbx]
mov rdi, qword [rbx + 0x30]
nop
inc dword [rdi + 0xd8]
mov rdi, qword [rbx + 0x30]
test byte [rbx], al
cmp dword [rdi + 0xc0], 0
jne 0x40e50d
mov rbx, qword gs:[0x28]
mov rbx, qword [rbx]
cmp qword [rdi + 0x50], rbx
je 0x40e4f4
mov dword [rdi + 0xc0], 1
mov rbx, qword gs:[0x28]
mov rbx, qword [rbx]
mov rbx, qword [rbx + 0x30]
mov rbx, qword [rbx + 0xa0]
test rbx, rbx
je 0x40e45c
mov rbx, qword [rbx + 0x40]
test rbx, rbx
je 0x40e4db
mov r8, qword [rsp + 0x90]
test r8, r8
je 0x40e451
cmp qword [r8 + 8], 0
sete r9b
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x48], rbx
mov byte [rsp + 0x2f], r9b
mov qword [rsp + 0x70], rsi
nop word [rax + rax]
cmp rdx, 0x8000
ja 0x40e3e5
test r9b, r9b
je 0x40e1d2
nop word [rax + rax]
nop
cmp rdx, 0x10
jae 0x40e1d2
mov rax, qword [rbx + 0x18]
test rdx, 7
jne 0x40e1a5
nop
add rax, 7
and rax, 0xfffffffffffffff8
lea r10, [rax + rdx]
cmp r10, 0x10
ja 0x40dd74
mov r11, qword [rbx + 0x10]
test r11, r11
je 0x40dd74
add rax, r11
mov qword [rbx + 0x18], r10
inc qword [rbx + 0x20]
mov dword [rdi + 0xc0], 0
nop
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
mov edx, dword [rdi + 0xd8]
lea ebx, [rdx - 1]
mov dword [rdi + 0xd8], ebx
cmp edx, 1
jne 0x40dd62
cmp byte [rcx + 0xb1], 0
je 0x40dd62
mov qword [rcx + 0x10], 0xfffffffffffffade
mov qword [rsp + 0xa0], rax
mov rbp, qword [rsp + 0x78]
sub rsp, 0xffffffffffffff80
ret
mov rax, qword [rbx + 0x50]
mov r10, qword [rax + 0x40]
bsf r11, r10
mov r12d, 0x40
cmove r11, r12
cmp r11, 0x40
jge 0x40e19c
mov r12, qword [rax + 0x30]
lea r13, [r12 + r11]
mov r14, qword [rax + 0x38]
cmp r13, r14
jae 0x40e19c
lea r12, [r12 + r11]
lea r12, [r12 + 1]
test r12, 0x3f
jne 0x40e165
nop
cmp r14, r12
je 0x40e165
xor ecx, ecx
test rcx, rcx
je 0x40e119
xor r10d, r10d
xorps xmm0, xmm0
movups xmmword [rcx], xmm0
nop dword [rax]
cmp qword [rbx + 0x18], rdx
jbe 0x40e106
mov r11, rcx
mov qword [rbx + 0x10], rcx
mov qword [rbx + 0x18], rdx
mov ecx, 0x10
mov qword [rsp + 0x58], r11
mov qword [rsp + 0x50], rcx
mov byte [rsp + 0x2e], r10b
mov qword [rsp + 0x30], rax
test r9b, r9b
je 0x40e08a
xor r9d, r9d
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x38], r9
call fcn.0046c460
cmp dword [0x00811120], 0
jne 0x40e059
mov rax, qword [rsp + 0x68]
mov dword [rax + 0xc0], 0
nop
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
mov edx, dword [rax + 0xd8]
lea ebx, [rdx - 1]
mov dword [rax + 0xd8], ebx
cmp edx, 1
jne 0x40de7b
cmp byte [rcx + 0xb1], 0
je 0x40de7b
mov qword [rcx + 0x10], 0xfffffffffffffade
cmp byte [0x00811720], 0
je 0x40e04f
cmp dword [0x00811724], 0
jne 0x40e025
cmp byte [0x00811520], 0
nop dword [rax]
je 0x40e016
mov rax, qword gs:[0x28]
mov rax, qword [rax]
mov rax, qword [rax + 0x98]
nop dword [rax]
cmp qword [0x00811528], rax
jne 0x40e016
mov rax, qword [rsp + 0x50]
add qword [0x00811538], rax
mov rcx, qword [0x007a3298]
test rcx, rcx
jle 0x40df0f
cmp rcx, 1
je 0x40df95
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rcx]
nop word [rax + rax]
cmp rdx, rax
jbe 0x40df95
sub rdx, rax
mov qword [rcx], rdx
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x40df28
mov rdx, qword [rsp + 0x40]
sub rax, rdx
sub qword [rcx + 0x170], rax
movzx eax, byte [rsp + 0x2e]
test al, al
je 0x40df49
cmp byte [0x00814890], 0
je 0x40df43
cmp dword [0x0081113c], 0
je 0x40df77
xor eax, eax
test al, al
jne 0x40df61
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0xa0], rax
mov rbp, qword [rsp + 0x78]
sub rsp, 0xffffffffffffff80
nop
ret
xorps xmm0, xmm0
movups xmmword [rsp], xmm0
mov dword [rsp + 0x10], 0
call fcn.0041ca20
jmp 0x40df49
cmp dword [0x00811120], 0
nop
jne 0x40df43
mov rcx, qword [0x00814f28]
cmp qword [0x00814f30], rcx
setae al
jmp 0x40df45
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
mov rdx, qword [rcx + 0x30]
nop
inc dword [rdx + 0xd8]
mov rcx, qword [rcx + 0x30]
mov qword [rsp + 0x60], rcx
mov qword [rsp], rcx
mov rdx, qword [rsp + 0x58]
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rax
call fcn.0040e6a0
nop
mov rax, qword gs:[0x28]
mov rax, qword [rax]
mov rcx, qword [rsp + 0x60]
mov edx, dword [rcx + 0xd8]
lea ebx, [rdx - 1]
mov dword [rcx + 0xd8], ebx
cmp edx, 1
jne 0x40e00c
cmp byte [rax + 0xb1], 0
je 0x40e00c
mov qword [rax + 0x10], 0xfffffffffffffade
mov rax, qword [rsp + 0x50]
jmp 0x40df0f
mov rax, qword [rsp + 0x50]
nop dword [rax + rax]
jmp 0x40ded9
mov rax, qword [rsp + 0x58]
mov qword [rsp], rax
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 8], rcx
mov rdx, qword [rsp + 0x90]
mov qword [rsp + 0x10], rdx
call fcn.0042fcc0
jmp 0x40de95
mov rax, qword [rsp + 0x50]
jmp 0x40ded9
mov rax, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x30]
mov qword [rsp], rdx
mov qword [rsp + 8], rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x10], rax
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0x18], rdx
call fcn.00422f80
jmp 0x40de36
cmp qword [0x007cc478], r8
mov qword [rsp], r11
mov qword [rsp + 8], rcx
mov ebx, 0x48
cmove rdx, rbx
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 0x18], r8
call fcn.00416ca0
mov rax, qword [rsp + 0x90]
mov rcx, qword [rax]
mov rdx, qword [rsp + 0x40]
cmp rdx, rcx
jbe 0x40e0fa
mov rbx, qword [rax + 8]
mov rsi, rdx
sub rdx, rcx
lea rcx, [rdx + rbx]
test rbx, rbx
mov edx, 0
cmovne rdx, rcx
mov rcx, qword [rsp + 0x48]
add qword [rcx + 8], rdx
mov r9, rdx
mov rdx, rsi
jmp 0x40de1a
mov rcx, qword [rax + 8]
mov rsi, rdx
mov rdx, rcx
jmp 0x40e0e6
cmp qword [rbx + 0x10], 0
je 0x40ddea
mov r11, rcx
jmp 0x40ddf5
mov qword [rsp], rbx
mov byte [rsp + 8], 5
call fcn.0040d840
mov rcx, qword [rsp + 0x10]
mov rax, qword [rsp + 0x18]
movzx r10d, byte [rsp + 0x20]
mov rdx, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x68]
mov r8, qword [rsp + 0x90]
movzx r9d, byte [rsp + 0x2f]
nop dword [rax]
jmp 0x40ddd7
lea rcx, [r11 + 1]
cmp rcx, 0x40
sbb r11, r11
shr r10, cl
and r10, r11
mov qword [rax + 0x40], r10
mov qword [rax + 0x30], r12
movzx r10d, word [rax + 0x60]
inc r10d
mov word [rax + 0x60], r10w
mov rcx, qword [rax + 0x68]
imul rcx, r13
add rcx, qword [rax + 0x18]
jmp 0x40ddcb
xor ecx, ecx
nop
jmp 0x40ddcb
test rdx, 3
jne 0x40e1bb
add rax, 3
and rax, 0xfffffffffffffffc
jmp 0x40dd04
bt edx, 0
nop
jb 0x40dd04
inc rax
and rax, 0xfffffffffffffffe
jmp 0x40dd04
cmp rdx, 0x3f8
ja 0x40e3bc
lea rax, [rdx + 7]
shr rax, 3
cmp rax, 0x81
jae 0x40e4d1
lea r10, [0x007a7e60]
movzx r10d, byte [rax + r10]
nop
cmp r10, 0x44
jae 0x40e4ba
lea r11, [0x007a7fa0]
movzx r11d, word [r11 + r10*2]
nop
shl r10d, 1
movzx r12d, r9b
or r10d, r12d
movzx eax, r10b
cmp rax, 0x88
jae 0x40e4b0
mov rax, qword [rbx + rax*8 + 0x28]
mov r12, qword [rax + 0x40]
bsf r13, r12
mov r14d, 0x40
cmove r13, r14
cmp r13, 0x40
jge 0x40e3b7
mov r14, qword [rax + 0x30]
lea r15, [r14 + r13]
mov rcx, rsi
mov rsi, qword [rax + 0x38]
cmp r15, rsi
jae 0x40e3b0
lea r14, [r14 + r13]
lea r14, [r14 + 1]
test r14, 0x3f
jne 0x40e36f
nop
cmp rsi, r14
je 0x40e36f
xor esi, esi
mov qword [rsp + 0x50], r11
test rsi, rsi
je 0x40e322
xor r10d, r10d
movzx r12d, byte [rsp + 0x98]
test r12b, r12b
je 0x40e2b0
cmp byte [rax + 0x64], 0
jne 0x40e2c5
mov rcx, r11
mov r11, rsi
mov rsi, qword [rsp + 0x70]
nop dword [rax + rax]
jmp 0x40ddfa
mov qword [rsp + 0x58], rsi
mov byte [rsp + 0x2e], r10b
mov qword [rsp + 0x30], rax
mov qword [rsp], rsi
mov qword [rsp + 8], r11
nop dword [rax]
call fcn.0046d420
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x68]
mov r8, qword [rsp + 0x90]
movzx r9d, byte [rsp + 0x2f]
movzx r10d, byte [rsp + 0x2e]
mov r11, qword [rsp + 0x50]
nop
jmp 0x40e2b0
mov qword [rsp], rbx
mov byte [rsp + 8], r10b
call fcn.0040d840
mov rsi, qword [rsp + 0x10]
mov rax, qword [rsp + 0x18]
movzx r10d, byte [rsp + 0x20]
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x68]
mov r8, qword [rsp + 0x90]
movzx r9d, byte [rsp + 0x2f]
mov r11, qword [rsp + 0x50]
jmp 0x40e29c
inc r13
cmp r13, 0x40
mov rsi, r15
sbb r15, r15
mov rcx, r13
shr r12, cl
and r12, r15
mov qword [rax + 0x40], r12
mov qword [rax + 0x30], r14
movzx r12d, word [rax + 0x60]
inc r12d
mov word [rax + 0x60], r12w
mov r12, qword [rax + 0x68]
imul rsi, r12
add rsi, qword [rax + 0x18]
mov rcx, qword [rsp + 0x70]
jmp 0x40e28b
xor esi, esi
jmp 0x40e28b
mov rcx, rsi
jmp 0x40e3b0
lea rax, [rdx - 0x381]
shr rax, 7
cmp rax, 0xf9
jae 0x40e4c7
lea r11, str._______________________....______0001123333333333444444444455666677777888888888889999999999::::::___________________________________________________________________________AAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
movzx r10d, byte [rax + r11]
nop
jmp 0x40e200
mov qword [rsp], rbx
mov qword [rsp + 8], rdx
movzx eax, byte [rsp + 0x98]
mov byte [rsp + 0x10], al
mov byte [rsp + 0x11], r9b
nop
call fcn.00418960
mov rax, qword [rsp + 0x18]
mov qword [rax + 0x30], 1
mov word [rax + 0x60], 1
mov r11, qword [rax + 0x18]
nop
mov rcx, qword [rax + 0x68]
mov rdx, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x68]
mov r8, qword [rsp + 0x90]
movzx r9d, byte [rsp + 0x2f]
mov r10d, 1
jmp 0x40ddfa
mov r9d, 1
jmp 0x40dca6
mov rbx, qword [0x00811238]
jmp 0x40dc83
mov qword [rsp + 0x70], rsi
mov qword [rsp], rsi
call fcn.00420220
mov rdx, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x70]
jmp 0x40dc09
mov rsi, rbx
jmp 0x40dbe9
xor esi, esi
jmp 0x40dc09
lea rax, [0x008112f0]
mov qword [rsp + 0xa0], rax
mov rbp, qword [rsp + 0x78]
sub rsp, 0xffffffffffffff80
ret
mov ecx, 0x88
call fcn.0046cdc0
mov eax, r10d
mov ecx, 0x44
call fcn.0046cdc0
mov ecx, 0xf9
call fcn.0046cde0
mov ecx, 0x81
call fcn.0046cde0
lea rax, [0x00668008]
mov qword [rsp], rax
mov qword [rsp + 8], 0x34
call fcn.00439220
lea rax, [0x0065ebe4]
mov qword [rsp], rax
mov qword [rsp + 8], 0x14
call fcn.00439220
lea rax, [0x0065cec1]
mov qword [rsp], rax
mov qword [rsp + 8], 0xf
call fcn.00439220
lea rax, [0x00667d3d]
mov qword [rsp], rax
mov qword [rsp + 8], 0x32
call fcn.00439220
nop
call fcn.0046abe0
jmp fcn.0040daa0