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

Disassembly:
lea r12, [rsp - 8]
cmp r12, qword [r14 + 0x10]
jbe 0x4051ce
push rbp
mov rbp, rsp
add rsp, 0xffffffffffffff80
mov qword [rsp + 0x90], rax
nop
jmp 0x404ce8
mov rbx, r8
mov rax, rsi
test rbx, rbx
je 0x404f2a
xor ecx, ecx
jmp 0x404fe4
mov rcx, 0xffffffffffffffff
nop
test rcx, rcx
jge 0x404d0f
mov rcx, rbx
xor r8d, r8d
xor esi, esi
jmp 0x404d40
cmp rcx, rbx
ja 0x4051c5
lea rsi, [rcx + 1]
nop dword [rax]
cmp rbx, rsi
jb 0x4051b6
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 0x404ce2
cmp dword [rax], 0x2e757063
jne 0x404ce2
xor edx, edx
jmp 0x405000
mov rdx, 0xffffffffffffffff
mov qword [rsp + 0x50], r8
mov qword [rsp + 0x70], rsi
test rdx, rdx
jl 0x404ed4
cmp rdx, rcx
ja 0x4051a8
nop dword [rax + rax]
cmp rdx, 4
jb 0x40519b
lea rdi, [rdx - 4]
mov r9, rdi
neg rdi
sar rdi, 0x3f
and edi, 4
lea r10, [rdx + 1]
lea rbx, [rax + rdi]
cmp rcx, r10
jb 0x405193
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 0x404df1
movzx r10d, word [rax + r10]
cmp r10w, 0x6e6f
jne 0x404e65
cmp rcx, 3
jmp 0x404e18
cmp rcx, 4
jne 0x404e65
movzx r13d, word [rax + r10]
nop dword [rax]
cmp r13w, 0x666f
jne 0x404e65
movzx r10d, byte [rax + r10 + 2]
cmp r10b, 0x66
jne 0x404e65
cmp rcx, 3
sete r10b
nop dword [rax]
cmp rdx, 7
jne 0x404e4c
movzx r11d, word [rax + rdi]
cmp r11w, 0x6c61
jne 0x404e4c
movzx edi, byte [rax + rdi + 2]
cmp dil, 0x6c
jne 0x404e4c
mov rdi, qword [0x01baff08]
xor eax, eax
jmp 0x405154
mov byte [rsp + 0x1f], r10b
mov rdx, qword [0x01baff08]
mov qword [rsp + 0x40], rdx
xor eax, eax
nop
jmp 0x405020
call fcn.0043f620
lea rax, [0x0103c347]
mov ebx, 0x10
call fcn.0043fea0
mov rax, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x20]
call fcn.0043fea0
lea rax, [0x01057f60]
mov ebx, 0x20
call fcn.0043fea0
mov rax, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x48]
call fcn.0043fea0
lea rax, [0x0102bfe8]
mov ebx, 2
call fcn.0043fea0
nop dword [rax + rax]
call fcn.0043f680
mov rsi, qword [rsp + 0x70]
mov r8, qword [rsp + 0x50]
jmp 0x404ce2
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x68], rax
nop
call fcn.0043f620
lea rax, [0x0105ac7c]
mov ebx, 0x21
call fcn.0043fea0
mov rax, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x28]
call fcn.0043fea0
lea rax, [0x0102bfe8]
mov ebx, 2
call fcn.0043fea0
call fcn.0043f680
mov rsi, qword [rsp + 0x70]
mov r8, qword [rsp + 0x50]
jmp 0x404ce2
mov rax, qword [0x01baff00]
mov rcx, qword [0x01baff08]
mov qword [rsp + 0x50], rcx
xor edx, edx
nop
jmp 0x404f49
add rax, 0x20
inc rdx
cmp rdx, rcx
jge 0x404fda
cmp byte [rax + 0x18], 0
je 0x404f42
movzx ebx, byte [rax + 0x19]
mov rsi, qword [rax + 0x10]
test bl, bl
je 0x404fd3
cmp byte [rsi], 0
jne 0x404fd3
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x78], rax
mov rcx, qword [rax]
mov qword [rsp + 0x70], rcx
mov rdx, qword [rax + 8]
mov qword [rsp + 0x40], rdx
call fcn.0043f620
lea rax, [0x01049c26]
mov ebx, 0x19
call fcn.0043fea0
mov rax, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x40]
call fcn.0043fea0
lea rax, [0x01046770]
mov ebx, 0x17
call fcn.0043fea0
call fcn.0043f680
mov rax, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x48]
jmp 0x404f42
mov byte [rsi], bl
jmp 0x404f42
sub rsp, 0xffffffffffffff80
pop rbp
nop
ret
inc rcx
cmp rcx, rbx
jge 0x404cf8
movzx esi, byte [rax + rcx]
cmp sil, 0x2c
jne 0x404fe1
jmp 0x404d00
inc rdx
nop
cmp rdx, rcx
jge 0x404d55
movzx edi, byte [rax + rdx]
cmp dil, 0x3d
jne 0x404ffc
jmp 0x404d5c
lea rax, [rdi + 1]
nop dword [rax]
cmp rax, rdx
jge 0x4050e7
mov rcx, qword [0x01baff08]
cmp rax, rcx
jae 0x405140
mov rdi, rax
shl rax, 5
mov r11, qword [0x01baff00]
mov rcx, qword [r11 + rax + 8]
mov r11, qword [r11 + rax]
cmp rcx, r9
jne 0x405018
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rax
mov rax, r11
call fcn.00406c40
test al, al
jne 0x405091
mov rdx, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x38]
mov r8, qword [rsp + 0x50]
mov r9, qword [rsp + 0x48]
movzx r10d, byte [rsp + 0x1f]
jmp 0x405018
mov rcx, qword [0x01baff08]
mov rax, qword [rsp + 0x38]
nop dword [rax]
cmp rax, rcx
jae 0x405139
mov rsi, qword [0x01baff00]
mov rdi, qword [rsp + 0x30]
mov byte [rsi + rdi + 0x18], 1
mov rcx, qword [0x01baff08]
cmp rax, rcx
jae 0x405134
mov r9, qword [0x01baff00]
movzx r10d, byte [rsp + 0x1f]
mov byte [r9 + rdi + 0x19], r10b
mov rsi, qword [rsp + 0x70]
mov r8, qword [rsp + 0x50]
jmp 0x404ce2
call fcn.0043f620
lea rax, [0x010538dd]
mov ebx, 0x1e
call fcn.0043fea0
mov rax, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x48]
call fcn.0043fea0
lea rax, [0x0102bfe8]
mov ebx, 2
call fcn.0043fea0
nop dword [rax]
call fcn.0043f680
mov rsi, qword [rsp + 0x70]
mov r8, qword [rsp + 0x50]
jmp 0x404ce2
call fcn.004728a0
call fcn.004728a0
nop
call fcn.004728a0
mov r11, qword [0x01baff00]
mov byte [r11 + r9 + 0x19], r10b
inc rax
cmp rax, rdi
jge 0x404ce2
mov rcx, qword [0x01baff08]
cmp rax, rcx
jae 0x40518e
mov r9, rax
shl r9, 5
mov r11, qword [0x01baff00]
mov byte [r11 + r9 + 0x18], 1
mov rcx, qword [0x01baff08]
cmp rax, rcx
jb 0x405145
call fcn.004728a0
call fcn.004728a0
mov rax, r10
call fcn.00472960
mov eax, 4
mov rcx, rdx
call fcn.00472960
mov rax, rcx
mov rcx, rdx
mov rdx, rax
call fcn.004728e0
mov rax, rsi
mov rcx, rbx
nop dword [rax]
call fcn.00472960
mov rdx, rbx
call fcn.004728e0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.004705e0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp fcn.00404cc0