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

Disassembly:
lea r12, [rsp - 0x10]
cmp r12, qword [r14 + 0x10]
jbe 0x4774c0
push rbp
mov rbp, rsp
sub rsp, 0x88
nop word [rax + rax]
test rbx, rbx
je 0x477244
test rcx, rcx
jg 0x47704e
mov rdx, rcx
neg rdx
bsf r9, rbx
cmp r9, rdx
jl 0x47704e
mov rcx, rdx
shr rbx, cl
cmp rcx, 0x40
sbb rdi, rdi
and rdi, rbx
mov rbx, rdi
mov rcx, rbx
mov esi, 1
xor r8d, r8d
nop dword [rax + rax]
call fcn.00477500
add rsp, 0x88
pop rbp
ret
mov rdx, qword [rdi]
mov rsi, rcx
mov rcx, rdx
mov r9d, 1
shl r9, cl
cmp rcx, 0x40
sbb r10, r10
and r9, r10
cmp rbx, r9
jne 0x47707f
mov r9, qword [rdi + 0x10]
sub r9, rcx
lea rdx, [r9 + 1]
cmp rsi, rdx
jne 0x47709b
mov rdx, rbx
shl rbx, 1
lea r9, [rdx + rdx]
lea r9, [r9 - 1]
lea r10, [rdx + rdx]
lea r10, [r10 + 1]
lea r11, [rsi - 1]
jmp 0x4770c0
mov r9, rbx
shl r9, 2
lea rdx, [r9 - 1]
lea r10, [r9 + 2]
lea r11, [rsi - 2]
mov rcx, rdx
mov rdx, rbx
mov rbx, r9
mov r9, rcx
nop word [rax + rax]
test r11, r11
je 0x477225
mov qword [rsp + 0x98], rax
mov qword [rsp + 0x80], rdx
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x58], r11
imul rcx, r11, 0xfffffffffffecbbf
sar rcx, 0x12
mov qword [rsp + 0x38], rcx
lea rsi, [rcx + 1]
mov qword [rsp + 0x48], rsi
lea r8, [0x005fc600]
cmp rdi, r8
jne 0x477182
mov rax, r9
mov rbx, r11
mov rcx, rsi
nop dword [rax + rax]
call fcn.004779e0
mov dword [rsp + 0x30], eax
mov byte [rsp + 0x2e], cl
mov rbx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x48]
nop dword [rax]
call fcn.004779e0
mov dword [rsp + 0x34], eax
mov byte [rsp + 0x2f], cl
mov rbx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
nop dword [rax]
call fcn.004779e0
mov edx, dword [rsp + 0x30]
mov edx, edx
mov esi, dword [rsp + 0x34]
mov esi, esi
mov edi, eax
movzx eax, byte [rsp + 0x2f]
movzx r8d, byte [rsp + 0x2e]
nop
jmp 0x4771e2
mov rax, r9
mov rbx, r11
mov rcx, rsi
call fcn.00477ac0
mov qword [rsp + 0x68], rax
mov byte [rsp + 0x2e], cl
mov rbx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x48]
call fcn.00477ac0
mov qword [rsp + 0x70], rax
mov byte [rsp + 0x2f], cl
mov rbx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
call fcn.00477ac0
mov rdx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
mov rdi, rax
movzx eax, byte [rsp + 0x2f]
movzx r8d, byte [rsp + 0x2e]
test rbx, rbx
jge 0x4774ac
mov r9, qword [rsp + 0x48]
cmp r9, 0x37
jle 0x4771fd
xor ecx, ecx
xor eax, eax
xor r8d, r8d
mov r10, qword [rsp + 0x38]
lea r11, [r10 + 0x19]
cmp r11, 0x18
jae 0x477252
neg r9
mov r11, qword [rsp + 0x50]
test r11, r11
je 0x4773fe
mov r12, r9
jmp 0x4773cb
mov rcx, rbx
mov rdi, r10
mov esi, 1
xor r8d, r8d
mov rbx, r9
call fcn.00477500
add rsp, 0x88
pop rbp
ret
movups xmmword [rax + 0x18], xmm15
add rsp, 0x88
pop rbp
ret
mov qword [rsp + 0x60], rdi
mov r9, rbx
neg rbx
mov r11d, ecx
mov rcx, rbx
mov r12d, 1
shl r12, cl
mov r13, rdx
shr rdx, cl
mov r15, rsi
shr rsi, cl
shr rdi, cl
cmp rcx, 0x40
sbb rcx, rcx
and r12, rcx
dec r12
and rdx, rcx
and rsi, rcx
and r15, r12
and rdi, rcx
mov rcx, r10
mov r10, qword [rsp + 0x60]
and r10, r12
nop
test r11b, r11b
je 0x4772b0
test r10, r10
seta bl
test r11b, r11b
jmp 0x4772b5
mov ebx, 1
je 0x4772ce
test r10, r10
jne 0x4772ce
mov r10, qword [rsp + 0x80]
bt r10d, 0
setae bl
jmp 0x4772d6
mov r10, qword [rsp + 0x80]
lea r11, [rdi - 1]
movzx ebx, bl
test rbx, rbx
cmovne r11, rdi
test al, al
je 0x47732a
inc r9
neg r9
mov rbx, rcx
mov rcx, r9
mov rdi, r11
mov r11d, 1
shl r11, cl
cmp rcx, 0x40
sbb r9, r9
and r11, r9
cmp r11, r15
jae 0x477319
mov rcx, rsi
mov esi, 1
jmp 0x47735a
jne 0x477323
mov rcx, rsi
and esi, 1
jmp 0x47735a
mov rcx, rsi
xor esi, esi
jmp 0x47735a
inc r9
neg r9
mov rbx, rcx
mov rcx, r9
mov rdi, r15
shr r15, cl
cmp rcx, 0x40
sbb r9, r9
and r15, r9
cmp r15, 1
sete r9b
mov rcx, rsi
mov r15, rdi
mov esi, r9d
mov rdi, r11
test r8b, r8b
je 0x477370
nop
test r12, r13
jne 0x477370
bt r10d, 0
jb 0x477370
test al, al
jmp 0x477375
inc rdx
test al, al
je 0x477382
test r15, r15
sete r9b
nop
jmp 0x477385
xor r9d, r9d
mov rax, qword [rsp + 0x98]
mov rbx, rdx
mov r8d, esi
mov esi, r9d
call fcn.00477500
mov rdx, qword [rsp + 0x98]
mov r9, qword [rdx + 0x20]
mov r10, qword [rsp + 0x38]
sub r9, r10
dec r9
mov qword [rdx + 0x20], r9
add rsp, 0x88
pop rbp
ret
dec r9
mov eax, r13d
mov r11, rdx
mov rdx, r15
test r9, r9
jle 0x4773fb
mov r13d, eax
movabs rax, 0xcccccccccccccccd
mov r15, rdx
mul r11
shr rdx, 2
lea rax, [rdx + rdx*4]
cmp r11, rax
je 0x4773bf
mov eax, r13d
mov rdx, r15
mov r9, r12
jmp 0x477404
mov r9, r12
mov r8d, 1
mov r11, qword [rsp + 0x78]
test r11, r11
je 0x477450
mov r12, r9
jmp 0x477420
dec r9
mov eax, r13d
mov r11, rdx
mov rdx, r15
nop
test r9, r9
jle 0x47744d
mov r13d, eax
movabs rax, 0xcccccccccccccccd
mov r15, rdx
mul r11
shr rdx, 2
lea rax, [rdx + rdx*4]
cmp r11, rax
je 0x477413
mov rdx, r15
mov r9, r12
jmp 0x477456
mov r9, r12
mov r13d, 1
mov r11, qword [rsp + 0x40]
nop dword [rax + rax]
test r11, r11
jne 0x477480
mov eax, 1
mov ecx, eax
mov eax, r13d
jmp 0x477252
dec r9
mov r11, rdx
mov rdx, r12
nop dword [rax]
test r9, r9
jle 0x477465
movabs rax, 0xcccccccccccccccd
mov r12, rdx
mul r11
shr rdx, 2
lea r15, [rdx + rdx*4]
nop dword [rax]
cmp r11, r15
je 0x477474
mov rdx, r12
mov eax, ecx
jmp 0x47746a
lea rax, [0x004c3600]
lea rbx, [0x00509908]
call fcn.00436480
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
call fcn.00464520
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
jmp fcn.00476fe0