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

Disassembly:
lea r12, [rsp - 0x28]
cmp r12, qword [r14 + 0x10]
jbe 0x4018c6
push rbp
mov rbp, rsp
sub rsp, 0xa0
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xc0], rcx
cmp rbx, 0x20000000
jge 0x401888
nop word [rax + rax]
cmp rdi, 0x20000000
jge 0x40184c
mov qword [rsp + 0x45], 0
mov word [rsp + 0x4d], 0
mov qword [rsp + 0x3b], 0
mov word [rsp + 0x43], 0
nop
mov rdx, rbx
xor r9d, r9d
jmp 0x401522
or r10d, 0xffffff80
mov byte [rsp + r9 + 0x45], r10b
inc r9
mov r10, rbx
sar rbx, 7
and r10d, 0x7f
test rbx, rbx
je 0x401540
cmp r9, 0xa
jb 0x401516
jmp 0x40183f
cmp r9, 0xa
jae 0x401832
mov byte [rsp + r9 + 0x45], r10b
nop
mov rbx, rdi
xor r10d, r10d
jmp 0x401564
or r11d, 0xffffff80
mov byte [rsp + r10 + 0x3b], r11b
inc r10
mov r11, rdi
sar rdi, 7
and r11d, 0x7f
test rdi, rdi
je 0x401580
cmp r10, 0xa
jb 0x401558
jmp 0x401825
cmp r10, 0xa
jae 0x401817
mov byte [rsp + r10 + 0x3b], r11b
lea rdi, [r9 + rdx]
lea rdi, [rdi + 2]
lea r11, [rdx + r9]
nop dword [rax + rax]
test rbx, rbx
je 0x4015b7
lea r12, [rbx + r10]
lea r12, [r12 + r11]
lea r12, [r12 + 3]
or esi, 2
jmp 0x4015ba
mov r12, rdi
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0xc0], rcx
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x78], r11
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0x60], r10
mov qword [rsp + 0x68], r9
test r8b, r8b
je 0x4015f6
or esi, 8
mov byte [rsp + 0x4f], sil
mov qword [rsp + 0x70], r12
lea rax, [0x0067b400]
mov rbx, r12
mov rcx, rbx
call fcn.0044f680
mov rcx, qword [rsp + 0x70]
nop word [rax + rax]
test rcx, rcx
jbe 0x40180d
mov qword [rsp + 0x98], rax
movzx edx, byte [rsp + 0x4f]
mov byte [rax], dl
lea rdx, [rcx - 1]
mov rsi, rdx
neg rdx
sar rdx, 0x3f
and edx, 1
add rdx, rax
mov rdi, qword [rsp + 0x68]
lea r8, [rdi + 1]
cmp r8, rsi
cmovl rsi, r8
lea rbx, [rsp + 0x45]
cmp rbx, rdx
je 0x401683
mov rax, rdx
mov rcx, rsi
call fcn.0046cf00
mov rax, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x68]
lea rdx, [rdi + 2]
cmp rcx, rdx
jb 0x401805
mov rsi, rcx
sub rsi, rdi
add rsi, 0xfffffffffffffffe
mov rdi, rsi
neg rsi
sar rsi, 0x3f
and rdx, rsi
add rdx, rax
mov rsi, qword [rsp + 0x88]
cmp rsi, rdi
cmovl rdi, rsi
mov rbx, qword [rsp + 0xb0]
cmp rbx, rdx
jne 0x4016d3
mov rdx, qword [rsp + 0x80]
test rdx, rdx
jmp 0x4016f6
mov rax, rdx
mov rcx, rdi
call fcn.0046cf00
mov rdx, qword [rsp + 0x80]
test rdx, rdx
mov rax, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x70]
je 0x4017e4
mov rsi, qword [rsp + 0x58]
cmp rcx, rsi
jb 0x4017f8
mov rdi, qword [rsp + 0x78]
sub rcx, rdi
lea rdi, [rcx - 2]
mov r8, rdi
neg rdi
sar rdi, 0x3f
and rsi, rdi
add rsi, rax
mov rdi, qword [rsp + 0x60]
lea r9, [rdi + 1]
cmp r9, r8
mov r10, r8
cmovl r8, r9
lea rbx, [rsp + 0x3b]
nop
cmp rbx, rsi
jne 0x40174a
cmp r9, r10
jmp 0x4017a7
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x78], r10
mov qword [rsp + 0x90], rsi
mov rax, rsi
mov rcx, r8
call fcn.0046cf00
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x78]
cmp rax, rcx
mov rdx, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x90]
mov rdi, qword [rsp + 0x60]
mov r9, rax
mov r10, rcx
mov rax, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x88]
ja 0x4017ed
sub rcx, rdi
add rcx, 0xfffffffffffffffd
mov rdi, rcx
neg rdi
sar rdi, 0x3f
and rdi, r9
add rsi, rdi
cmp rdx, rcx
cmovl rcx, rdx
mov rbx, qword [rsp + 0xc0]
cmp rbx, rsi
je 0x4017e4
mov rax, rsi
call fcn.0046cf00
mov rax, qword [rsp + 0x98]
add rsp, 0xa0
pop rbp
ret
mov rax, r9
mov rcx, r10
call fcn.0046c600
mov rax, rsi
nop dword [rax + rax]
call fcn.0046c600
mov rax, rdx
call fcn.0046c600
xor eax, eax
mov rcx, rax
call fcn.0046c540
mov rax, r10
mov ecx, 0xa
nop
call fcn.0046c540
mov rax, r10
mov ecx, 0xa
call fcn.0046c540
mov rax, r9
mov ecx, 0xa
call fcn.0046c540
mov rax, r9
mov ecx, 0xa
call fcn.0046c540
xor eax, eax
lea rbx, [0x006daafd]
mov rdi, rcx
mov esi, 0x400
lea r8, [0x006d0c98]
mov r9d, 3
mov ecx, 0x1b
call fcn.00453580
call fcn.0040bb80
mov rbx, rax
lea rax, [0x0067b380]
call fcn.004389a0
lea rbx, [0x006db439]
mov ecx, 0x1c
mov rdi, rax
mov esi, 0x400
lea r8, [0x006d0c98]
mov r9d, 3
xor eax, eax
call fcn.00453580
call fcn.0040bb80
mov rbx, rax
lea rax, [0x0067b380]
nop
call fcn.004389a0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
mov byte [rsp + 0x28], sil
mov byte [rsp + 0x29], r8b
call fcn.0046a260
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
movzx esi, byte [rsp + 0x28]
movzx r8d, byte [rsp + 0x29]
jmp fcn.004014a0