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

Disassembly:
lea r12, [rsp - 0xa8]
cmp r12, qword [r14 + 0x10]
jbe 0x477086
push rbp
mov rbp, rsp
sub rsp, 0x120
mov qword [rsp + 0x130], rax
cmp r8, 0x20
jne 0x476a40
cvtsd2ss xmm0, xmm0
movd edx, xmm0
lea r9, [0x0088d530]
jmp 0x476a57
cmp r8, 0x40
jne 0x47706e
nop
movq rdx, xmm0
lea r9, [0x0088d550]
mov qword [rsp + 0x80], rdx
mov qword [rsp + 0x138], rbx
mov r12, qword [r9 + 8]
mov r13, qword [r9]
lea r15, [r12 + r13]
mov r10, rcx
mov rcx, r15
mov r11, rdx
shr rdx, cl
mov qword [rsp + 0xa0], rdx
mov rcx, r13
shr r11, cl
mov rcx, r12
mov edx, 1
shl rdx, cl
mov qword [rsp + 0x98], rdx
mov rcx, r13
mov edx, 1
shl rdx, cl
cmp r15, 0x40
sbb r15, r15
mov qword [rsp + 0x90], r15
cmp r12, 0x40
sbb r12, r12
mov r15, qword [rsp + 0x98]
and r12, r15
dec r12
cmp rcx, 0x40
sbb r13, r13
and r11, r13
and r11, r12
and rdx, r13
lea r13, [rdx - 1]
mov r15, qword [rsp + 0x80]
and r13, r15
mov r15, qword [rsp + 0xa0]
mov rcx, rdx
mov rdx, qword [rsp + 0x90]
test rdx, r15
cmp r11, r12
jne 0x476bcd
test r13, r13
je 0x476b20
mov ecx, 3
lea rdx, [0x006b0693]
jmp 0x476b3f
test rdx, r15
je 0x476b33
mov ecx, 4
lea rdx, [0x006b0884]
jmp 0x476b3f
mov ecx, 4
lea rdx, [0x006b0888]
lea r8, [rbx + rcx]
cmp r10, r8
jae 0x476b85
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0xe0], rdx
mov rbx, r8
mov rdi, rcx
lea rsi, [0x0065bae0]
mov rcx, r10
call fcn.0044b880
mov rdx, qword [rsp + 0xe0]
mov r10, rcx
mov r8, rbx
mov rcx, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x138]
mov qword [rsp + 0x98], r10
mov qword [rsp + 0x88], r8
mov qword [rsp + 0xf0], rax
lea rsi, [rax + rbx]
mov rbx, rdx
mov rax, rsi
call fcn.00467360
mov rax, qword [rsp + 0xf0]
mov rbx, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x98]
add rsp, 0x120
pop rbp
ret
test r11, r11
jne 0x476bdd
test rdx, r15
mov r11d, 1
jmp 0x476be3
or r13, rcx
test rdx, r15
setne dl
add r11, qword [r9 + 0x10]
cmp dil, 0x62
je 0x477053
cmp dil, 0x78
je 0x476c06
nop word [rax + rax]
cmp dil, 0x58
jne 0x476c2e
mov rcx, r10
mov r8d, edx
mov r10, r11
mov r11, r9
mov r9, r13
mov edx, edi
mov rdi, rsi
mov esi, edx
nop dword [rax]
call fcn.004784e0
add rsp, 0x120
pop rbp
ret
cmp byte [0x0088c3e0], 0
je 0x47702f
mov qword [rsp + 0x130], rax
mov byte [rsp + 0x5f], dl
mov qword [rsp + 0x98], r10
mov qword [rsp + 0x158], rsi
mov byte [rsp + 0x150], dil
movups xmmword [rsp + 0xf8], xmm15
movups xmmword [rsp + 0x100], xmm15
movups xmmword [rsp + 0x110], xmm15
nop word [rax + rax]
test rsi, rsi
jl 0x476eae
cmp dil, 0x66
je 0x476e6f
cmp dil, 0x47
ja 0x476cb1
cmp dil, 0x45
je 0x476cb7
nop
cmp dil, 0x47
jne 0x476cab
test rsi, rsi
jmp 0x476ccd
cmp r8, 0x20
jmp 0x476cea
cmp dil, 0x65
jne 0x476cc4
lea r12, [rsi + 1]
cmp r8, 0x20
mov rcx, rsi
jmp 0x476cf3
cmp dil, 0x67
jne 0x476ce6
test rsi, rsi
mov r15d, 1
mov r12, rsi
cmove r12, r15
cmp r8, 0x20
mov rcx, rsi
mov rsi, r12
jmp 0x476cf3
cmp r8, 0x20
mov rcx, rsi
mov r12d, 1
mov qword [rsp + 0xe8], r9
mov qword [rsp + 0x70], r11
mov qword [rsp + 0x68], r13
mov qword [rsp + 0x88], rsi
movups xmmword [rsp + 0xa8], xmm15
movups xmmword [rsp + 0xb0], xmm15
nop
jne 0x476dc6
cmp r12, 9
jg 0x476dc6
lea rdx, [rsp + 0xa8]
mov qword [rsp + 0xf8], rdx
mov qword [rsp + 0x100], 0x18
mov qword [rsp + 0x108], 0x18
mov rdx, qword [r9]
mov rcx, r11
sub rcx, rdx
lea rax, [rsp + 0xf8]
mov rbx, r13
mov rdi, r12
call fcn.00478ba0
mov rax, qword [rsp + 0x130]
mov rcx, qword [rsp + 0x158]
movzx edx, byte [rsp + 0x5f]
mov rbx, qword [rsp + 0x138]
mov rsi, qword [rsp + 0x88]
movzx edi, byte [rsp + 0x150]
mov r9, qword [rsp + 0xe8]
mov r10, qword [rsp + 0x98]
mov r11, qword [rsp + 0x70]
mov r13, qword [rsp + 0x68]
mov r12d, 1
jmp 0x476e75
cmp r12, 0x12
jg 0x476e69
mov qword [rsp + 0x78], r12
lea rdx, [rsp + 0xa8]
mov qword [rsp + 0xf8], rdx
mov qword [rsp + 0x100], 0x18
mov qword [rsp + 0x108], 0x18
mov rdx, qword [r9]
mov rcx, r11
sub rcx, rdx
lea rax, [rsp + 0xf8]
mov rbx, r13
mov rdi, r12
call fcn.00478e40
mov rdx, qword [rsp + 0x78]
cmp rdx, 0x12
mov rax, qword [rsp + 0x130]
mov rcx, qword [rsp + 0x158]
movzx edx, byte [rsp + 0x5f]
mov rbx, qword [rsp + 0x138]
mov rsi, qword [rsp + 0x88]
movzx edi, byte [rsp + 0x150]
mov r9, qword [rsp + 0xe8]
mov r10, qword [rsp + 0x98]
mov r11, qword [rsp + 0x70]
mov r13, qword [rsp + 0x68]
setle r12b
jmp 0x476e75
mov rcx, rsi
xor r12d, r12d
test r12b, r12b
je 0x476e85
test rcx, rcx
nop dword [rax]
jmp 0x476fe9
mov rcx, r10
mov r8d, edx
mov r10, r11
mov r11, r9
mov r9, r13
mov edx, edi
mov rdi, rsi
mov esi, edx
nop dword [rax + rax]
call fcn.004770e0
add rsp, 0x120
pop rbp
ret
movups xmmword [rsp + 0xc0], xmm15
movups xmmword [rsp + 0xd0], xmm15
lea rdx, [rsp + 0xc0]
mov qword [rsp + 0xf8], rdx
mov qword [rsp + 0x100], 0x20
mov qword [rsp + 0x108], 0x20
mov rdx, qword [r9]
sub r11, rdx
lea rax, [rsp + 0xf8]
mov rbx, r13
mov rcx, r11
mov rdi, r9
nop
call fcn.004793a0
movzx r9d, byte [rsp + 0x150]
cmp r9b, 0x47
ja 0x476f45
cmp r9b, 0x45
je 0x476f4b
nop word [rax + rax]
cmp r9b, 0x47
jne 0x476f33
mov rdx, qword [rsp + 0x158]
test rdx, rdx
jmp 0x476fb1
mov rdx, qword [rsp + 0x158]
test rdx, rdx
nop
jmp 0x476fc6
cmp r9b, 0x65
jne 0x476f6f
mov rdx, qword [rsp + 0x110]
dec rdx
test rdx, rdx
mov esi, 0
cmovg rsi, rdx
mov rdx, qword [rsp + 0x158]
test rdx, rdx
jmp 0x476fc9
cmp r9b, 0x66
jne 0x476fa0
mov rdx, qword [rsp + 0x110]
sub rdx, qword [rsp + 0x118]
test rdx, rdx
mov esi, 0
cmovg rsi, rdx
mov rdx, qword [rsp + 0x158]
test rdx, rdx
jmp 0x476fc9
cmp r9b, 0x67
jne 0x476fbb
mov rdx, qword [rsp + 0x158]
test rdx, rdx
mov rsi, qword [rsp + 0x110]
jmp 0x476fc9
mov rdx, qword [rsp + 0x158]
test rdx, rdx
mov rsi, rdx
mov rax, qword [rsp + 0x130]
movzx edx, byte [rsp + 0x5f]
mov rbx, qword [rsp + 0x138]
mov edi, r9d
mov r10, qword [rsp + 0x98]
setl r11b
mov r12, qword [rsp + 0xf8]
mov qword [rsp], r12
movups xmm0, xmmword [rsp + 0x100]
movups xmmword [rsp + 8], xmm0
movups xmm0, xmmword [rsp + 0x110]
movups xmmword [rsp + 0x18], xmm0
mov rcx, r10
mov r8, rsi
mov r9d, edi
mov edi, r11d
mov esi, edx
call fcn.00477500
add rsp, 0x120
pop rbp
ret
mov rcx, r10
mov r8d, edx
mov r10, r11
mov r11, r9
mov r9, r13
mov edx, edi
mov rdi, rsi
mov esi, edx
call fcn.004770e0
add rsp, 0x120
pop rbp
ret
mov rcx, r10
mov edi, edx
mov rsi, r13
mov r8, r11
nop
call fcn.00478380
add rsp, 0x120
pop rbp
ret
lea rax, [0x0065b7a0]
lea rbx, [0x007275c0]
nop dword [rax]
call fcn.00436ac0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
movsd qword [rsp + 0x20], xmm0
mov byte [rsp + 0x28], dil
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], r8
call fcn.004646a0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
movsd xmm0, qword [rsp + 0x20]
movzx edi, byte [rsp + 0x28]
mov rsi, qword [rsp + 0x30]
mov r8, qword [rsp + 0x38]
jmp fcn.00476a00