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

Disassembly:
lea r12, [rsp - 8]
cmp r12, qword [r14 + 0x10]
jbe 0x40510e
push rbp
mov rbp, rsp
add rsp, 0xffffffffffffff80
mov qword [rsp + 0x90], rax
nop
jmp 0x404c28
mov rbx, r8
mov rax, rsi
test rbx, rbx
je 0x404e6a
xor ecx, ecx
jmp 0x404f20
mov rcx, 0xffffffffffffffff
nop
test rcx, rcx
jge 0x404c4f
mov rcx, rbx
xor r8d, r8d
xor esi, esi
jmp 0x404c80
cmp rcx, rbx
ja 0x405105
lea rsi, [rcx + 1]
nop dword [rax]
cmp rbx, rsi
jb 0x4050f6
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 0x404c22
cmp dword [rax], 0x2e757063
jne 0x404c22
xor edx, edx
jmp 0x404f40
mov rdx, 0xffffffffffffffff
mov qword [rsp + 0x50], r8
mov qword [rsp + 0x70], rsi
test rdx, rdx
jl 0x404e14
cmp rdx, rcx
ja 0x4050e8
nop dword [rax + rax]
cmp rdx, 4
jb 0x4050db
lea rdi, [rdx - 4]
mov r9, rdi
neg rdi
sar rdi, 0x3f
and edi, 4
lea r10, [rdx + 1]
lea rbx, [rdi + rax]
cmp rcx, r10
jb 0x4050d3
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, [r10 + rax]
mov qword [rsp + 0x58], r11
cmp rcx, 3
jne 0x404d31
movzx r10d, word [r10 + rax]
cmp r10w, 0x6e6f
jne 0x404da5
cmp rcx, 3
jmp 0x404d58
cmp rcx, 4
jne 0x404da5
movzx r13d, word [r10 + rax]
nop dword [rax]
cmp r13w, 0x666f
jne 0x404da5
movzx r10d, byte [rax + r10 + 2]
cmp r10b, 0x66
jne 0x404da5
cmp rcx, 3
sete r10b
nop dword [rax]
cmp rdx, 7
jne 0x404d8c
movzx r11d, word [rdi + rax]
cmp r11w, 0x6c61
jne 0x404d8c
movzx edi, byte [rdi + rax + 2]
cmp dil, 0x6c
jne 0x404d8c
mov rdi, qword [0x01fb1c58]
xor eax, eax
jmp 0x405094
mov byte [rsp + 0x1f], r10b
mov rdx, qword [0x01fb1c58]
mov qword [rsp + 0x40], rdx
xor eax, eax
nop
jmp 0x404f60
call fcn.00441a60
lea rax, [0x01098538]
mov ebx, 0x10
call fcn.004422e0
mov rax, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x20]
call fcn.004422e0
lea rax, [0x010b6826]
mov ebx, 0x20
call fcn.004422e0
mov rax, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x48]
call fcn.004422e0
lea rax, [0x0108795c]
mov ebx, 2
call fcn.004422e0
nop dword [rax + rax]
call fcn.00441ac0
mov rsi, qword [rsp + 0x70]
mov r8, qword [rsp + 0x50]
jmp 0x404c22
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x28], rcx
nop
call fcn.00441a60
lea rax, [0x010b9ae8]
mov ebx, 0x21
call fcn.004422e0
mov rax, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x28]
call fcn.004422e0
lea rax, [0x0108795c]
mov ebx, 2
call fcn.004422e0
call fcn.00441ac0
mov rsi, qword [rsp + 0x70]
mov r8, qword [rsp + 0x50]
jmp 0x404c22
mov rax, qword [0x01fb1c50]
mov rcx, qword [0x01fb1c58]
jmp 0x404e81
add rax, 0x20
dec rcx
test rcx, rcx
jle 0x404f11
cmp byte [rax + 0x18], 0
je 0x404e7a
movzx edx, byte [rax + 0x19]
mov rbx, qword [rax + 0x10]
test dl, dl
je 0x404f0a
cmp byte [rbx], 0
nop
jne 0x404f0a
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x78], rax
mov rcx, qword [rax]
mov qword [rsp + 0x70], rcx
mov rdx, qword [rax + 8]
mov qword [rsp + 0x48], rdx
nop dword [rax]
call fcn.00441a60
lea rax, [0x010a6c0b]
mov ebx, 0x19
call fcn.004422e0
mov rax, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x48]
call fcn.004422e0
lea rax, [0x010a33d3]
mov ebx, 0x17
call fcn.004422e0
call fcn.00441ac0
mov rax, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x50]
jmp 0x404e7a
mov byte [rbx], dl
jmp 0x404e7a
sub rsp, 0xffffffffffffff80
pop rbp
ret
inc rcx
nop word [rax + rax]
cmp rcx, rbx
jge 0x404c38
movzx esi, byte [rax + rcx]
cmp sil, 0x2c
jne 0x404f17
jmp 0x404c40
inc rdx
nop dword [rax + rax]
cmp rdx, rcx
jge 0x404c95
movzx edi, byte [rdx + rax]
cmp dil, 0x3d
jne 0x404f38
jmp 0x404c9c
lea rax, [rdi + 1]
nop dword [rax]
cmp rax, rdx
jge 0x405027
mov rcx, qword [0x01fb1c58]
cmp rax, rcx
jae 0x405080
mov rdi, rax
shl rax, 5
mov r11, qword [0x01fb1c50]
mov rcx, qword [r11 + rax + 8]
mov r11, qword [r11 + rax]
cmp rcx, r9
jne 0x404f58
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rdi
mov rax, r11
call fcn.00406a80
test al, al
jne 0x404fd1
mov rdx, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x30]
mov r8, qword [rsp + 0x50]
mov r9, qword [rsp + 0x48]
movzx r10d, byte [rsp + 0x1f]
jmp 0x404f58
mov rcx, qword [0x01fb1c58]
mov rax, qword [rsp + 0x30]
nop dword [rax]
cmp rax, rcx
jae 0x405079
mov rsi, qword [0x01fb1c50]
mov rdi, qword [rsp + 0x38]
mov byte [rsi + rdi + 0x18], 1
mov rcx, qword [0x01fb1c58]
cmp rax, rcx
jae 0x405074
mov r9, qword [0x01fb1c50]
movzx r10d, byte [rsp + 0x1f]
mov byte [r9 + rdi + 0x19], r10b
mov rsi, qword [rsp + 0x70]
mov r8, qword [rsp + 0x50]
jmp 0x404c22
call fcn.00441a60
lea rax, [0x010b19fb]
mov ebx, 0x1e
call fcn.004422e0
mov rax, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x48]
call fcn.004422e0
lea rax, [0x0108795c]
mov ebx, 2
call fcn.004422e0
nop dword [rax]
call fcn.00441ac0
mov rsi, qword [rsp + 0x70]
mov r8, qword [rsp + 0x50]
jmp 0x404c22
call fcn.00479ec0
call fcn.00479ec0
nop
call fcn.00479ec0
mov r11, qword [0x01fb1c50]
mov byte [r11 + r9 + 0x19], r10b
inc rax
cmp rax, rdi
jge 0x404c22
mov rcx, qword [0x01fb1c58]
cmp rax, rcx
jae 0x4050ce
mov r9, rax
shl r9, 5
mov r11, qword [0x01fb1c50]
mov byte [r11 + r9 + 0x18], 1
mov rcx, qword [0x01fb1c58]
cmp rax, rcx
jb 0x405085
call fcn.00479ec0
call fcn.00479ec0
mov rax, r10
call fcn.00479f80
mov eax, 4
mov rcx, rdx
call fcn.00479f80
mov rax, rcx
mov rcx, rdx
mov rdx, rax
call fcn.00479f00
mov rax, rsi
mov rcx, rbx
nop dword [rax]
call fcn.00479f80
mov rdx, rbx
call fcn.00479f00
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.00477be0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp fcn.00404c00