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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
lea rax, [rsp - 0x110]
cmp rax, qword [rcx + 0x10]
jbe 0x46f992
sub rsp, 0x190
mov qword [rsp + 0x188], rbp
lea rbp, [rsp + 0x188]
mov rax, qword [rsp + 0x1c8]
cmp rax, 0x20
jne 0x46f953
movsd xmm0, qword [rsp + 0x1b0]
cvtsd2ss xmm0, xmm0
movd eax, xmm0
lea rcx, [0x007f78a0]
mov rdx, qword [rcx]
mov rbx, qword [rcx + 8]
lea r8, [rbx + rdx]
mov rsi, rcx
mov rcx, r8
mov r9, rax
shr rax, cl
cmp rcx, 0x40
sbb r8, r8
test r8, rax
setne r10b
mov rcx, rdx
mov r11, r9
shr r9, cl
cmp rcx, 0x40
sbb r12, r12
and r9, r12
mov rcx, rbx
mov r13d, 1
shl r13, cl
cmp rcx, 0x40
sbb rbx, rbx
and r13, rbx
lea rbx, [r13 - 1]
mov r13, rbx
and rbx, r9
mov rcx, rdx
mov r14d, 1
shl r14, cl
and r14, r12
lea rdx, [r14 - 1]
mov r12, rdx
and rdx, r11
cmp rbx, r13
jne 0x46f32c
test r11, r12
je 0x46f305
mov eax, 3
lea rcx, [0x006ab1c6]
mov rdx, qword [rsp + 0x1a0]
lea rbx, [rdx + rax]
mov qword [rsp + 0xa0], rbx
mov rsi, qword [rsp + 0x1a8]
cmp rbx, rsi
ja 0x46f29a
mov rdi, qword [rsp + 0x198]
cmp rbx, rsi
ja 0x46f96d
mov qword [rsp + 0x98], rsi
mov qword [rsp + 0x150], rdi
add rdx, rdi
mov qword [rsp], rdx
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], rax
call fcn.00455c10
mov rax, qword [rsp + 0x150]
mov qword [rsp + 0x1d0], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x1d8], rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x1e0], rax
mov rbp, qword [rsp + 0x188]
add rsp, 0x190
ret
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x140], rcx
lea rax, [0x00649b20]
mov qword [rsp], rax
mov rax, qword [rsp + 0x198]
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rdx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rbx
call fcn.0043e400
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x28]
mov rax, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x140]
mov rdx, qword [rsp + 0x1a0]
mov rbx, qword [rsp + 0xa0]
jmp 0x46f22b
test r8, rax
je 0x46f31b
mov eax, 4
lea rcx, [0x006ab2cc]
jmp 0x46f202
mov eax, 4
lea rcx, [0x006ab2c0]
jmp 0x46f202
test r9, r13
jne 0x46f948
lea rax, [rbx + 1]
add rax, qword [rsi + 0x10]
movzx ecx, byte [rsp + 0x1b8]
cmp cl, 0x62
je 0x46f8d2
movzx ebx, byte [0x007f7122]
test bl, bl
je 0x46f84b
mov qword [rsp + 0x148], rsi
mov byte [rsp + 0x7f], r10b
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x88], rdx
xorps xmm0, xmm0
movups xmmword [rsp + 0x158], xmm0
movups xmmword [rsp + 0x168], xmm0
movups xmmword [rsp + 0x178], xmm0
mov rbx, qword [rsp + 0x1c0]
test rbx, rbx
setl r8b
mov byte [rsp + 0x7e], r8b
jl 0x46f607
cmp cl, 0x66
je 0x46f600
cmp cl, 0x47
ja 0x46f5ed
cmp cl, 0x45
jne 0x46f5ce
lea r9, [rbx + 1]
cmp r9, 0xf
jle 0x46f4f7
xor edi, edi
test dil, dil
je 0x46f478
mov rax, qword [rsp + 0x198]
mov qword [rsp], rax
mov rax, qword [rsp + 0x1a0]
mov qword [rsp + 8], rax
mov rax, qword [rsp + 0x1a8]
mov qword [rsp + 0x10], rax
mov byte [rsp + 0x18], r8b
mov byte [rsp + 0x19], r10b
lea rdi, [rsp + 0x20]
lea rsi, [rsp + 0x158]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.00455946
mov rbp, qword [rbp]
mov qword [rsp + 0x50], rbx
mov byte [rsp + 0x58], cl
call fcn.0046fd70
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0x1d0], rdx
mov qword [rsp + 0x1d8], rcx
mov qword [rsp + 0x1e0], rax
mov rbp, qword [rsp + 0x188]
add rsp, 0x190
ret
mov rdi, qword [rsp + 0x198]
mov qword [rsp], rdi
mov rdi, qword [rsp + 0x1a0]
mov qword [rsp + 8], rdi
mov rdi, qword [rsp + 0x1a8]
mov qword [rsp + 0x10], rdi
mov qword [rsp + 0x18], rbx
mov byte [rsp + 0x20], cl
mov byte [rsp + 0x21], r10b
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rsi
call fcn.0046f9a0
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x40]
mov qword [rsp + 0x1d0], rdx
mov qword [rsp + 0x1d8], rcx
mov qword [rsp + 0x1e0], rax
mov rbp, qword [rsp + 0x188]
add rsp, 0x190
ret
mov qword [rsp + 0xa0], rbx
mov qword [rsp + 0xf0], 0
movups xmmword [rsp + 0xf8], xmm0
lea rcx, [rsp + 0xf0]
mov qword [rsp + 0x158], rcx
mov qword [rsp + 0x160], 0x18
mov qword [rsp + 0x168], 0x18
mov qword [rsp + 0xe0], 0
mov byte [rsp + 0xe8], 0
mov qword [rsp + 0xd8], rdx
mov rcx, qword [rsi]
sub rax, rcx
mov qword [rsp + 0xe0], rax
mov byte [rsp + 0xe8], r10b
lea rax, [rsp + 0xd8]
mov qword [rsp], rax
lea rax, [rsp + 0x158]
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], r9
call fcn.0046e430
movzx edi, byte [rsp + 0x18]
mov rax, qword [rsp + 0x90]
movzx ecx, byte [rsp + 0x1b8]
mov rdx, qword [rsp + 0x88]
mov rbx, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0x148]
movzx r8d, byte [rsp + 0x7e]
movzx r10d, byte [rsp + 0x7f]
jmp 0x46f3da
cmp cl, 0x47
jne 0x46f5e5
test rbx, rbx
jne 0x46f5dd
mov ebx, 1
mov r9, rbx
jmp 0x46f3ce
mov r9, rbx
jmp 0x46f3ce
cmp cl, 0x65
je 0x46f3ca
cmp cl, 0x67
jne 0x46f5e5
test rbx, rbx
jmp 0x46f5d6
xor edi, edi
jmp 0x46f3da
movups xmmword [rsp + 0x108], xmm0
mov byte [rsp + 0x118], 0
lea rcx, [rsp + 0x108]
mov qword [rsp], rcx
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rax
mov byte [rsp + 0x18], r10b
mov qword [rsp + 0x20], rsi
call fcn.0046dce0
mov rax, qword [rsp + 0x40]
movzx ecx, byte [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x28]
movzx esi, byte [rsp + 0x50]
mov rdi, qword [rsp + 0x48]
mov qword [rsp + 0xc0], rbx
mov qword [rsp + 0xc8], rdx
mov byte [rsp + 0xd0], cl
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0xb0], rdi
mov byte [rsp + 0xb8], sil
xorps xmm0, xmm0
movups xmmword [rsp + 0x120], xmm0
movups xmmword [rsp + 0x130], xmm0
lea rax, [rsp + 0x120]
mov qword [rsp + 0x158], rax
mov qword [rsp + 0x160], 0x20
mov qword [rsp + 0x168], 0x20
lea rax, [rsp + 0x108]
mov qword [rsp], rax
lea rax, [rsp + 0x158]
mov qword [rsp + 8], rax
lea rcx, [rsp + 0xc0]
mov qword [rsp + 0x10], rcx
lea rcx, [rsp + 0xa8]
mov qword [rsp + 0x18], rcx
call fcn.0046e940
movzx eax, byte [rsp + 0x20]
test al, al
je 0x46f7a0
movzx ecx, byte [rsp + 0x1b8]
cmp cl, 0x47
ja 0x46f776
cmp cl, 0x45
jne 0x46f75d
mov rdx, qword [rsp + 0x170]
dec rdx
test rdx, rdx
jle 0x46f759
mov rsi, qword [rsp + 0x148]
movzx r8d, byte [rsp + 0x7e]
movzx r10d, byte [rsp + 0x7f]
mov edi, eax
mov rbx, rdx
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x88]
jmp 0x46f3da
xor edx, edx
jmp 0x46f72b
cmp cl, 0x47
jne 0x46f76c
mov rdx, qword [rsp + 0x170]
jmp 0x46f72b
mov rdx, qword [rsp + 0x1c0]
jmp 0x46f72b
cmp cl, 0x65
je 0x46f71b
cmp cl, 0x66
jne 0x46f799
mov rdx, qword [rsp + 0x170]
sub rdx, qword [rsp + 0x178]
test rdx, rdx
jg 0x46f72b
xor edx, edx
jmp 0x46f72b
cmp cl, 0x67
je 0x46f762
jmp 0x46f76c
mov rax, qword [rsp + 0x198]
mov qword [rsp], rax
mov rax, qword [rsp + 0x1a0]
mov qword [rsp + 8], rax
mov rax, qword [rsp + 0x1a8]
mov qword [rsp + 0x10], rax
mov rax, qword [rsp + 0x1c0]
mov qword [rsp + 0x18], rax
movzx eax, byte [rsp + 0x1b8]
mov byte [rsp + 0x20], al
movzx eax, byte [rsp + 0x7f]
mov byte [rsp + 0x21], al
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x148]
mov qword [rsp + 0x38], rax
call fcn.0046f9a0
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x40]
mov qword [rsp + 0x1d0], rdx
mov qword [rsp + 0x1d8], rcx
mov qword [rsp + 0x1e0], rax
mov rbp, qword [rsp + 0x188]
add rsp, 0x190
ret
mov rbx, qword [rsp + 0x198]
mov qword [rsp], rbx
mov rbx, qword [rsp + 0x1a0]
mov qword [rsp + 8], rbx
mov rbx, qword [rsp + 0x1a8]
mov qword [rsp + 0x10], rbx
mov rbx, qword [rsp + 0x1c0]
mov qword [rsp + 0x18], rbx
mov byte [rsp + 0x20], cl
mov byte [rsp + 0x21], r10b
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rsi
call fcn.0046f9a0
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x50]
mov qword [rsp + 0x1d0], rcx
mov qword [rsp + 0x1d8], rax
mov qword [rsp + 0x1e0], rdx
mov rbp, qword [rsp + 0x188]
add rsp, 0x190
ret
mov rcx, qword [rsp + 0x198]
mov qword [rsp], rcx
mov rcx, qword [rsp + 0x1a0]
mov qword [rsp + 8], rcx
mov rcx, qword [rsp + 0x1a8]
mov qword [rsp + 0x10], rcx
mov byte [rsp + 0x18], r10b
mov qword [rsp + 0x20], rdx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], rsi
call fcn.00471050
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0x1d0], rdx
mov qword [rsp + 0x1d8], rcx
mov qword [rsp + 0x1e0], rax
mov rbp, qword [rsp + 0x188]
add rsp, 0x190
ret
or rdx, r14
mov rax, rbx
jmp 0x46f339
cmp rax, 0x40
jne 0x46f974
mov rax, qword [rsp + 0x1b0]
lea rcx, [0x007f78c0]
jmp 0x46f173
call fcn.00429bc0
ud2
lea rax, [0x00649960]
mov qword [rsp], rax
lea rax, [0x006f6eb0]
mov qword [rsp + 8], rax
call fcn.0042aba0
ud2
call fcn.00452950
jmp fcn.0046f110