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

Disassembly:
lea r12, [rsp - 8]
cmp r12, qword [r14 + 0x10]
jbe 0x401619
sub rsp, 0x88
mov qword [rsp + 0x80], rbp
lea rbp, [rsp + 0x80]
mov qword [rsp + 0x90], rax
jmp 0x401116
mov rax, rsi
mov rbx, r8
test rbx, rbx
je 0x40134d
xor ecx, ecx
jmp 0x401420
mov rcx, 0xffffffffffffffff
test rcx, rcx
jge 0x401140
xor r8d, r8d
xor esi, esi
mov rcx, rbx
jmp 0x40116d
cmp rcx, rbx
ja 0x401610
lea rsi, [rcx + 1]
cmp rbx, rsi
jb 0x401605
sub rbx, rcx
lea rdi, [rbx - 1]
mov r8, rdi
neg rdi
sar rdi, 0x3f
and rsi, rdi
add rsi, rax
cmp rcx, 4
jl 0x401110
cmp dword [rax], 0x2e757063
jne 0x401110
xor edx, edx
nop dword [rax]
jmp 0x401440
mov rdx, 0xffffffffffffffff
mov qword [rsp + 0x50], r8
mov qword [rsp + 0x78], rsi
test rdx, rdx
jl 0x4012f9
nop
cmp rdx, rcx
ja 0x4015f2
cmp rdx, 4
jb 0x4015e5
lea rdi, [rdx - 4]
mov r9, rdi
neg rdi
sar rdi, 0x3f
and edi, 4
lea rbx, [rax + rdi]
lea r10, [rdx + 1]
cmp rcx, r10
jb 0x4015dc
mov qword [rsp + 0x48], r9
mov qword [rsp + 0x60], rbx
sub rcx, rdx
lea r11, [rcx - 1]
mov qword [rsp + 0x20], r11
mov r12, r11
neg r11
sar r11, 0x3f
and r10, r11
lea r11, [rax + r10]
mov qword [rsp + 0x58], r11
cmp rcx, 3
jne 0x401220
movzx r10d, word [rax + r10]
cmp r10w, 0x6e6f
jne 0x40128c
cmp rcx, 3
jmp 0x401243
cmp rcx, 4
jne 0x40128c
movzx r13d, word [rax + r10]
cmp r13w, 0x666f
jne 0x40128c
movzx r10d, byte [rax + r10 + 2]
cmp r10b, 0x66
jne 0x40128c
cmp rcx, 3
sete r10b
cmp rdx, 7
jne 0x401274
movzx r11d, word [rax + rdi]
cmp r11w, 0x6c61
jne 0x401274
movzx edi, byte [rax + rdi + 2]
nop
cmp dil, 0x6c
jne 0x401274
mov rdi, qword [0x008be048]
xor eax, eax
jmp 0x401593
mov byte [rsp + 0x1f], r10b
mov rdx, qword [0x008be048]
mov qword [rsp + 0x40], rdx
xor eax, eax
jmp 0x401460
call fcn.004394c0
lea rax, [0x006b800f]
mov ebx, 0x10
nop dword [rax]
call fcn.00439dc0
mov rax, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x20]
call fcn.00439dc0
lea rax, [0x006c0a6d]
mov ebx, 0x20
call fcn.00439dc0
mov rax, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x48]
call fcn.00439dc0
lea rax, [0x006b45a7]
mov ebx, 2
call fcn.00439dc0
call fcn.00439540
mov rsi, qword [rsp + 0x78]
mov r8, qword [rsp + 0x50]
jmp 0x401110
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x68], rax
call fcn.004394c0
lea rax, [0x006c12d3]
mov ebx, 0x21
call fcn.00439dc0
mov rax, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x28]
call fcn.00439dc0
lea rax, [0x006b45a7]
mov ebx, 2
call fcn.00439dc0
call fcn.00439540
mov rsi, qword [rsp + 0x78]
mov r8, qword [rsp + 0x50]
jmp 0x401110
mov rax, qword [0x008be048]
mov rcx, qword [0x008be040]
nop dword [rax + rax]
test rax, rax
je 0x40136e
mov qword [rsp + 0x50], rax
xor edx, edx
jmp 0x401382
mov rbp, qword [rsp + 0x80]
add rsp, 0x88
ret
add rcx, 0x20
movzx ebx, byte [rcx + 0x19]
mov rsi, qword [rcx + 0x10]
mov rdi, qword [rcx]
mov r8, qword [rcx + 8]
cmp byte [rcx + 0x18], 0
je 0x401404
test bl, bl
je 0x401402
cmp byte [rsi], 0
nop
jne 0x401402
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x70], rcx
call fcn.004394c0
lea rax, [0x006bc8f7]
mov ebx, 0x19
call fcn.00439dc0
mov rax, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x48]
call fcn.00439dc0
lea rax, [0x006bb7dc]
mov ebx, 0x17
call fcn.00439dc0
call fcn.00439540
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x40]
jmp 0x401404
mov byte [rsi], bl
inc rdx
cmp rax, rdx
jg 0x40137e
jmp 0x40136e
inc rcx
nop dword [rax + rax]
cmp rcx, rbx
jge 0x401126
movzx esi, byte [rax + rcx]
cmp sil, 0x2c
jne 0x401415
jmp 0x40112d
inc rdx
nop dword [rax + rax]
cmp rdx, rcx
jge 0x401185
movzx edi, byte [rax + rdx]
cmp dil, 0x3d
jne 0x401438
jmp 0x40118c
lea rax, [r11 + 1]
nop dword [rax]
cmp rax, rdx
jge 0x401530
mov rdi, qword [0x008be040]
mov rcx, qword [0x008be048]
nop word [rax + rax]
cmp rax, rcx
jae 0x401585
mov r11, rax
shl rax, 5
mov rcx, qword [rdi + rax + 8]
mov rdi, qword [rdi + rax]
cmp rcx, r9
jne 0x401458
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r11
mov rax, rdi
call fcn.00402da0
test al, al
jne 0x4014dd
mov rdx, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x78]
mov r8, qword [rsp + 0x50]
mov r9, qword [rsp + 0x48]
movzx r10d, byte [rsp + 0x1f]
mov r11, qword [rsp + 0x30]
jmp 0x401458
mov rcx, qword [0x008be048]
mov rsi, qword [0x008be040]
mov rax, qword [rsp + 0x30]
cmp rax, rcx
jae 0x401580
mov rdi, qword [rsp + 0x38]
mov byte [rsi + rdi + 0x18], 1
mov rcx, qword [0x008be048]
mov rsi, qword [0x008be040]
cmp rax, rcx
jae 0x40157a
movzx r9d, byte [rsp + 0x1f]
mov byte [rsi + rdi + 0x19], r9b
mov rsi, qword [rsp + 0x78]
mov r8, qword [rsp + 0x50]
jmp 0x401110
call fcn.004394c0
lea rax, [0x006bf878]
mov ebx, 0x1e
call fcn.00439dc0
mov rax, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x48]
call fcn.00439dc0
lea rax, [0x006b45a7]
mov ebx, 2
call fcn.00439dc0
call fcn.00439540
mov rsi, qword [rsp + 0x78]
mov r8, qword [rsp + 0x50]
jmp 0x401110
call fcn.00465080
nop
call fcn.00465080
call fcn.00465080
mov byte [r9 + rax + 0x19], r10b
lea rax, [r11 + 1]
cmp rax, rdi
jge 0x401110
mov rcx, qword [0x008be048]
mov r9, qword [0x008be040]
cmp rax, rcx
jae 0x4015d7
mov r11, rax
shl rax, 5
mov byte [r9 + rax + 0x18], 1
mov rcx, qword [0x008be048]
mov r9, qword [0x008be040]
cmp r11, rcx
jb 0x40158a
mov rax, r11
call fcn.00465080
call fcn.00465080
mov rax, r10
nop
call fcn.00465140
mov eax, 4
mov rcx, rdx
call fcn.00465140
mov rax, rcx
mov rcx, rdx
mov rdx, rax
nop dword [rax + rax]
call fcn.004650c0
mov rax, rsi
mov rcx, rbx
call fcn.00465140
mov rdx, rbx
call fcn.004650c0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.004629a0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp fcn.004010e0