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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
cmp rsp, qword [rcx + 0x10]
jbe 0x40e9d9
sub rsp, 0x80
mov qword [rsp + 0x78], rbp
lea rbp, [rsp + 0x78]
mov rax, qword [rsp + 0x88]
test byte [rax], al
mov rcx, qword [rax + 0x1320]
mov rdx, qword [rax + 0x1318]
mov rbx, rcx
sub rcx, rdx
mov rdx, qword [rsp + 0x90]
cmp rdx, rcx
jbe 0x40e9cf
lea rcx, [rdx + 0x10001fff]
and rcx, 0xfffffffff0000000
mov qword [rsp + 0x50], rcx
lea rsi, [rbx + rcx]
mov qword [rsp + 0x60], rsi
cmp rbx, rsi
ja 0x40e9c5
mov rbx, qword [rax + 0x1310]
sub rsi, rbx
lea rbx, [rsi - 1]
mov esi, 0xffffffff
cmp rbx, rsi
jbe 0x40e872
mov rcx, qword [rax + 0x1320]
mov rbx, qword [rax + 0x1318]
mov qword [rsp + 0x70], rbx
mov rdi, rcx
sub rcx, rbx
cmp rdx, rcx
jbe 0x40e7b3
mov rcx, qword [rax + 0x1310]
sub rdi, rcx
cmp rdi, rsi
ja 0x40e79a
lea rcx, [rdx + 0x1fff]
and rcx, 0xffffffffffffe000
mov qword [rsp + 0x28], rcx
lea rbx, [rcx + 0x2000]
mov qword [rsp + 0x48], rbx
mov qword [rsp], rbx
lea rdi, [0x008b5ef8]
mov qword [rsp + 8], rdi
call fcn.00413cb0
mov rax, qword [rsp + 0x10]
mov qword [rsp + 0x58], rax
test rax, rax
je 0x40e781
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rcx + 0x1310]
mov qword [rsp + 0x70], rdx
cmp rax, rdx
jae 0x40e697
lea rcx, [rdx + 1]
neg rcx
dec rcx
mov ebx, 0xffffffff
cmp rcx, rbx
jbe 0x40e68b
lea rcx, [rbx + rdx + 1]
mov qword [rsp + 0x38], rcx
call fcn.0042b850
lea rax, [0x006d92ca]
mov qword [rsp], rax
mov qword [rsp + 8], 0x21
call fcn.0042c220
mov rax, qword [rsp + 0x58]
mov qword [rsp], rax
call fcn.0042c0a0
lea rax, [0x006d529a]
mov qword [rsp], rax
mov qword [rsp + 8], 0x17
call fcn.0042c220
mov rax, qword [rsp + 0x70]
mov qword [rsp], rax
call fcn.0042c0a0
lea rax, [0x006cf299]
mov qword [rsp], rax
mov qword [rsp + 8], 1
call fcn.0042c220
mov rax, qword [rsp + 0x38]
mov qword [rsp], rax
call fcn.0042c0a0
lea rax, [0x006cf2d7]
mov qword [rsp], rax
mov qword [rsp + 8], 2
call fcn.0042c220
call fcn.0042b8f0
mov rax, qword [rsp + 0x58]
mov qword [rsp], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 8], rax
lea rax, [0x008b5ef8]
mov qword [rsp + 0x10], rax
call fcn.00414100
mov qword [rsp + 0x98], 0
mov rbp, qword [rsp + 0x78]
add rsp, 0x80
ret
mov rcx, 0xffffffffffffffff
jmp 0x40e5b1
mov rbx, qword [rsp + 0x28]
lea rbx, [rbx + rax + 0x2000]
mov qword [rsp + 0x68], rbx
sub rbx, rdx
mov edi, 0xffffffff
cmp rbx, rdi
ja 0x40e594
mov rdx, rax
neg rax
and rax, 0x1fff
add rax, rdx
mov qword [rsp + 0x58], rax
mov rdx, qword [rsp + 0x90]
add rdx, rax
mov qword [rsp + 0x70], rdx
mov rbx, qword [rcx + 0x1318]
cmp rdx, rbx
ja 0x40e722
test rax, 0x1fff
jne 0x40e707
mov qword [rsp + 0x98], rax
mov rbp, qword [rsp + 0x78]
add rsp, 0x80
ret
lea rax, [0x006da9c1]
mov qword [rsp], rax
mov qword [rsp + 8], 0x27
call fcn.0042aea0
ud2
mov qword [rsp], rcx
mov qword [rsp + 8], rdx
call fcn.00410a90
mov rax, qword [rsp + 0x88]
mov qword [rsp], rax
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 8], rcx
call fcn.004205c0
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x88]
mov qword [rcx + 0x1318], rax
mov rax, qword [rcx + 0x1320]
mov rdx, qword [rsp + 0x68]
cmp rdx, rax
jbe 0x40e777
mov qword [rcx + 0x1320], rdx
mov rax, qword [rsp + 0x58]
jmp 0x40e6ea
mov qword [rsp + 0x98], 0
mov rbp, qword [rsp + 0x78]
add rsp, 0x80
ret
mov qword [rsp + 0x98], 0
mov rbp, qword [rsp + 0x78]
add rsp, 0x80
ret
movzx ecx, byte [rax + 0x1328]
mov byte [rsp + 0x10], cl
mov rcx, rbx
mov qword [rsp], rcx
mov qword [rsp + 8], rdx
lea rcx, [0x008b5ef8]
mov qword [rsp + 0x18], rcx
call fcn.00414330
mov rax, qword [rsp + 0x88]
mov qword [rsp], rax
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x90]
add rdx, rcx
mov qword [rsp + 0x68], rdx
mov qword [rsp + 8], rdx
call fcn.00410a90
mov rax, qword [rsp + 0x88]
mov qword [rsp], rax
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 8], rcx
call fcn.004205c0
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x88]
mov qword [rcx + 0x1318], rax
mov rax, qword [rsp + 0x70]
test rax, 0x1fff
jne 0x40e857
mov qword [rsp + 0x98], rax
mov rbp, qword [rsp + 0x78]
add rsp, 0x80
ret
lea rax, [0x006da9c1]
mov qword [rsp], rax
mov qword [rsp + 8], 0x27
call fcn.0042aea0
ud2
mov byte [rsp + 0x27], 0
mov rbx, qword [rax + 0x1320]
mov qword [rsp], rbx
mov qword [rsp + 8], rcx
lea rbx, [rsp + 0x27]
mov qword [rsp + 0x10], rbx
call fcn.00414250
mov rax, qword [rsp + 0x18]
test rax, rax
je 0x40e9ac
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rcx + 0x1320]
cmp rax, rdx
jne 0x40e8e4
mov rax, qword [rsp + 0x60]
mov qword [rcx + 0x1320], rax
movzx eax, byte [rsp + 0x27]
mov byte [rcx + 0x1328], al
mov rax, rcx
mov rdx, qword [rsp + 0x90]
mov esi, 0xffffffff
jmp 0x40e4fb
mov rdx, qword [rcx + 0x1310]
cmp rdx, rax
ja 0x40e99d
mov rbx, qword [rsp + 0x50]
lea rsi, [rbx + rax]
mov rdi, rsi
sub rsi, rdx
lea rdx, [rsi - 1]
mov esi, 0xffffffff
cmp rdx, rsi
jbe 0x40e938
mov qword [rsp + 0x40], rbx
mov qword [rsp], rax
mov qword [rsp + 8], rbx
lea rax, [rsp + 0x40]
mov qword [rsp + 0x10], rax
call fcn.00414100
mov rcx, qword [rsp + 0x88]
jmp 0x40e8cf
mov qword [rcx + 0x1320], rdi
mov qword [rsp], rcx
mov rdx, rax
neg rax
and rax, 0x1fff
add rax, rdx
mov qword [rsp + 0x30], rax
mov qword [rsp + 8], rax
call fcn.00410a90
mov rax, qword [rsp + 0x88]
mov qword [rsp], rax
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 8], rcx
call fcn.004205c0
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x88]
mov qword [rcx + 0x1318], rax
movzx eax, byte [rsp + 0x27]
mov byte [rcx + 0x1328], al
jmp 0x40e92e
mov rbx, qword [rsp + 0x50]
mov esi, 0xffffffff
jmp 0x40e911
mov qword [rsp + 0x98], 0
mov rbp, qword [rsp + 0x78]
add rsp, 0x80
ret
mov esi, 0xffffffff
jmp 0x40e4fb
mov esi, 0xffffffff
jmp 0x40e4fb
call fcn.00452210
jmp fcn.0040e460