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

Disassembly:
lea r12, [rsp - 0x20]
cmp r12, qword [r14 + 0x10]
jbe 0x4fc997
push rbp
mov rbp, rsp
sub rsp, 0x98
mov qword [rsp + 0xb0], rbx
movzx r9d, byte [rax + 0xff]
cmp r9b, 0xfe
ja 0x4fc4d3
test r9b, r9b
je 0x4fc4b0
lea r10d, [r9 - 1]
movzx r10d, r10b
movzx r10d, byte [r10 + rax]
cmp r10b, 0x2e
jne 0x4fc4b0
cmp byte [rax], 0x2e
jne 0x4fc469
cmp r9b, 1
jne 0x4fc469
lea rdx, [rcx + 1]
cmp rdi, rdx
jae 0x4fc44e
mov rax, rbx
mov rbx, rdx
mov rcx, rdi
mov edi, 1
lea rsi, [0x0066d1c0]
nop dword [rax]
call fcn.00447aa0
mov rdx, rbx
mov rbx, rax
mov rdi, rcx
mov byte [rdx + rbx - 1], 0
mov rax, rbx
mov rbx, rdx
mov rcx, rdi
xor edi, edi
xor esi, esi
add rsp, 0x98
pop rbp
ret
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0xc8], rsi
mov qword [rsp + 0xd0], r8
mov qword [rsp + 0xc0], rdi
mov qword [rsp + 0xb8], rcx
mov qword [rsp + 0xb0], rbx
mov rdx, rdi
mov r9, rbx
mov r10, rcx
xor r11d, r11d
xor r12d, r12d
xor r13d, r13d
xor r15d, r15d
jmp 0x4fc4fc
mov rdx, qword [0x0089a890]
mov rsi, qword [0x0089a898]
mov rax, rbx
mov rbx, rcx
mov rcx, rdi
mov rdi, rdx
add rsp, 0x98
pop rbp
ret
mov rdi, qword [0x0089a820]
mov rsi, qword [0x0089a828]
xor eax, eax
xor ebx, ebx
mov rcx, rbx
add rsp, 0x98
pop rbp
ret
inc r11
mov r8, qword [rsp + 0xd0]
movzx r8d, byte [rax + 0xff]
cmp r11, r8
jge 0x4fc85c
cmp r11, 0xff
jae 0x4fc989
mov qword [rsp + 0x80], r8
mov qword [rsp + 0x50], r11
mov qword [rsp + 0x88], r15
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x68], r13
movzx r8d, byte [r11 + rax]
nop
cmp r8b, 0x2e
jne 0x4fc5ed
mov r8, r11
sub r11, r12
cmp r11, 0x40
jge 0x4fc7d6
nop word [rax + rax]
cmp r12, r8
je 0x4fc7b6
inc rcx
cmp rdi, rcx
jae 0x4fc5e3
mov qword [rsp + 0x80], r11
mov rax, rbx
mov rbx, rcx
mov rcx, rdi
mov edi, 1
lea rsi, [0x0066d1c0]
call fcn.00447aa0
mov rdx, qword [rsp + 0xc0]
mov rsi, qword [rsp + 0xc8]
mov r8, qword [rsp + 0x50]
mov r9, qword [rsp + 0xb0]
mov r10, qword [rsp + 0xb8]
mov r11, qword [rsp + 0x80]
mov r12, qword [rsp + 0x60]
mov r13, qword [rsp + 0x68]
mov r15, qword [rsp + 0x88]
mov rdi, rcx
mov rcx, rbx
mov rbx, rax
mov rax, qword [rsp + 0xa8]
mov byte [rcx + rbx - 1], r11b
jmp 0x4fc8d0
test r11, r11
je 0x4fc60a
movzx r8d, byte [r11 + rax - 1]
nop dword [rax + rax]
cmp r8b, 0x2e
jne 0x4fc4f1
test rsi, rsi
je 0x4fc4f1
mov r8, qword [rsp + 0x80]
nop dword [rax + rax]
cmp r8, 0xff
ja 0x4fc8b8
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x90], rbx
sub r8, r11
lea rdx, [r11 - 0xff]
sar rdx, 0x3f
and rdx, r11
lea rcx, [rax + rdx]
mov rbx, rsi
mov rdi, r8
lea rax, [0x0067da20]
call fcn.00412560
test bl, bl
jne 0x4fc7f6
mov r8, qword [rsp + 0x70]
mov r9, qword [rsp + 0xd0]
mov r10, r8
sub r8, r9
cmp r8, 0x3fff
jle 0x4fc69c
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x88]
jmp 0x4fc767
mov qword [rsp + 0x58], r8
mov rsi, qword [rsp + 0x68]
test rsi, rsi
jne 0x4fc6eb
mov rbx, qword [rsp + 0xa8]
movzx ecx, byte [rbx + 0xff]
nop word [rax + rax]
cmp rcx, 0xff
ja 0x4fc8ae
xor eax, eax
call fcn.0044af60
mov r8, qword [rsp + 0x58]
mov r9, qword [rsp + 0xd0]
mov r10, qword [rsp + 0x70]
mov rsi, rbx
jmp 0x4fc6f3
mov rax, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x50]
nop dword [rax + rax]
cmp rsi, rdx
jb 0x4fc8a3
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x88], rax
mov rdi, rsi
sub rdi, rdx
mov r8, rdi
neg r8
sar r8, 0x3f
and r8, rdx
lea rcx, [rax + r8]
mov rbx, qword [rsp + 0xc8]
lea rax, [0x0067da20]
nop dword [rax]
call fcn.00412940
mov rdx, qword [rsp + 0x58]
mov word [rax], dx
mov r9, qword [rsp + 0xd0]
mov r10, qword [rsp + 0x70]
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0x90]
mov rsi, qword [rsp + 0xc8]
mov rdi, qword [rsp + 0x78]
mov r9, qword [rsp + 0xb0]
mov r10, qword [rsp + 0xb8]
mov r11, qword [rsp + 0x50]
mov r12, qword [rsp + 0x60]
mov r13, rax
mov r15, rcx
mov rax, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0x70]
jmp 0x4fc4f1
mov rdi, qword [0x0089a830]
mov rsi, qword [0x0089a838]
mov rax, r9
mov rbx, r10
mov rcx, rdx
add rsp, 0x98
pop rbp
ret
mov rdi, qword [0x0089a810]
mov rsi, qword [0x0089a818]
mov rax, r9
mov rbx, r10
mov rcx, rdx
add rsp, 0x98
pop rbp
ret
mov rbx, qword [rsp + 0x70]
add rbx, 2
movzx edx, word [rax]
mov rcx, qword [rsp + 0x78]
cmp rcx, rbx
jb 0x4fc816
mov rax, qword [rsp + 0x90]
jmp 0x4fc839
mov word [rsp + 0x46], dx
mov rax, qword [rsp + 0x90]
mov edi, 2
lea rsi, [0x0066d1c0]
call fcn.00447aa0
movzx edx, word [rsp + 0x46]
mov r8d, edx
shr dx, 8
or edx, 0xc0
mov byte [rbx + rax - 2], dl
mov byte [rbx + rax - 1], r8b
xor edi, edi
xor esi, esi
add rsp, 0x98
pop rbp
ret
lea rdx, [rcx + 1]
cmp rdi, rdx
jae 0x4fc888
mov rax, rbx
mov rbx, rdx
mov rcx, rdi
mov edi, 1
lea rsi, [0x0066d1c0]
call fcn.00447aa0
mov rdx, rbx
mov rbx, rax
mov rdi, rcx
mov byte [rdx + rbx - 1], 0
mov rax, rbx
mov rbx, rdx
mov rcx, rdi
xor edi, edi
xor esi, esi
add rsp, 0x98
pop rbp
ret
mov rax, rdx
mov rcx, rsi
call fcn.004602a0
mov edx, 0xff
call fcn.00460220
mov rcx, r8
mov edx, 0xff
call fcn.00460220
mov byte [r11 + rbx - 1], cl
inc r12
mov rcx, r11
cmp r12, r8
jge 0x4fc970
nop dword [rax]
cmp r12, 0xff
jae 0x4fc97c
lea r11, [rcx + 1]
movzx ecx, byte [r12 + rax]
cmp rdi, r11
jae 0x4fc8c5
mov qword [rsp + 0x48], r12
mov byte [rsp + 0x45], cl
mov rax, rbx
mov rbx, r11
mov rcx, rdi
mov edi, 1
lea rsi, [0x0066d1c0]
call fcn.00447aa0
mov rdx, qword [rsp + 0xc0]
mov rsi, qword [rsp + 0xc8]
mov r8, qword [rsp + 0x50]
mov r9, qword [rsp + 0xb0]
mov r10, qword [rsp + 0xb8]
mov r12, qword [rsp + 0x48]
mov r13, qword [rsp + 0x68]
mov r15, qword [rsp + 0x88]
mov r11, rbx
mov rbx, rax
mov rdi, rcx
mov rax, qword [rsp + 0xa8]
movzx ecx, byte [rsp + 0x45]
jmp 0x4fc8c5
lea r12, [r8 + 1]
mov r11, r8
jmp 0x4fc4f1
mov rax, r12
mov ecx, 0xff
call fcn.004601e0
mov rax, r11
mov ecx, 0xff
call fcn.004601e0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x30], r8
call fcn.0045df00
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
mov r8, qword [rsp + 0x30]
jmp fcn.004fc3c0