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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
lea rax, [rsp - 0x128]
cmp rax, qword [rcx + 0x10]
jbe 0x4912e1
sub rsp, 0x1a8
mov qword [rsp + 0x1a0], rbp
lea rbp, [rsp + 0x1a0]
mov rax, qword [rsp + 0x1e0]
cmp rax, 0x20
jne 0x491263
movsd xmm1, qword [rsp + 0x1c8]
cvtsd2ss xmm1, xmm1
movss dword [rsp + 0x7c], xmm1
mov eax, dword [rsp + 0x7c]
lea rcx, [0x007e3a00]
mov qword [rsp + 0x150], rcx
mov rdx, qword [rcx]
mov rbx, qword [rcx + 8]
lea r8, [rdx + rbx]
mov rsi, rcx
mov rcx, r8
mov r9, rax
shr rax, cl
cmp rcx, 0x40
sbb r8, r8
test r8, rax
setne r10b
mov byte [rsp + 0x7b], r10b
mov rcx, rdx
mov r11, r9
shr r9, cl
cmp rcx, 0x40
sbb r12, r12
and r9, r12
mov rcx, rbx
mov r13, 1
shl r13, cl
cmp rcx, 0x40
sbb rbx, rbx
and rbx, r13
dec rbx
mov r13, r9
and r9, rbx
mov rcx, rdx
mov r14, 1
shl r14, cl
and r12, r14
lea rdx, [r12 - 1]
mov r14, r11
and r11, rdx
cmp r9, rbx
jne 0x490bfa
test rdx, r14
je 0x490bcf
lea rax, [0x006cf4e8]
mov rcx, 3
mov qword [rsp + 0x148], rax
mov qword [rsp + 0x80], rcx
mov rdx, qword [rsp + 0x1b8]
lea rbx, [rcx + rdx]
mov qword [rsp + 0xa8], rbx
mov rsi, qword [rsp + 0x1c0]
cmp rbx, rsi
ja 0x490b74
mov rdi, qword [rsp + 0x1b0]
mov qword [rsp + 0x158], rdi
mov qword [rsp + 0xa0], rsi
cmp rbx, rsi
ja 0x490b6d
add rdx, rdi
mov qword [rsp], rdx
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rcx
call fcn.00455480
mov rax, qword [rsp + 0x158]
mov qword [rsp + 0x1e8], rax
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x1f0], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x1f8], rax
mov rbp, qword [rsp + 0x1a0]
add rsp, 0x1a8
ret
call fcn.00429450
ud2
lea rdi, [0x0066fcc0]
mov qword [rsp], rdi
mov rdi, qword [rsp + 0x1b0]
mov qword [rsp + 8], rdi
mov qword [rsp + 0x10], rdx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rbx
call fcn.0043e790
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x28]
mov rax, qword [rsp + 0x148]
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x1b8]
mov rbx, qword [rsp + 0xa8]
jmp 0x490b02
test r8, rax
je 0x490be7
lea rax, [0x006cf61d]
mov rcx, 4
jmp 0x490ac9
lea rax, [0x006cf615]
mov rcx, 4
jmp 0x490ac9
test rbx, r13
jne 0x491258
lea rax, [r9 + 1]
mov qword [rsp + 0x88], r11
mov rcx, qword [rsi + 0x10]
add rax, rcx
mov qword [rsp + 0x98], rax
movzx ecx, byte [rsp + 0x1d0]
cmp cl, 0x62
je 0x4911e2
movzx edx, byte [0x007e3147]
test dl, dl
je 0x49115b
lea rdi, [rsp + 0x170]
xorps xmm0, xmm0
add rdi, 0xfffffffffffffff0
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.00454e40
mov rbp, qword [rbp]
mov rdx, qword [rsp + 0x1d8]
test rdx, rdx
setl bl
mov byte [rsp + 0x7a], bl
jl 0x490eec
cmp cl, 0x66
je 0x490ee5
cmp cl, 0x47
ja 0x490ed2
cmp cl, 0x45
jne 0x490eb1
lea r8, [rdx + 1]
mov qword [rsp + 0x1d8], rdx
cmp r8, 0xf
jle 0x490dc7
xor edi, edi
test dil, dil
je 0x490d48
mov rax, qword [rsp + 0x1b0]
mov qword [rsp], rax
mov rax, qword [rsp + 0x1b8]
mov qword [rsp + 8], rax
mov rax, qword [rsp + 0x1c0]
mov qword [rsp + 0x10], rax
mov byte [rsp + 0x18], bl
mov byte [rsp + 0x19], r10b
lea rdi, [rsp + 0x20]
lea rsi, [rsp + 0x170]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.004551b6
mov rbp, qword [rbp]
mov qword [rsp + 0x50], rdx
mov byte [rsp + 0x58], cl
call fcn.004916e0
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x70]
mov qword [rsp + 0x1e8], rcx
mov qword [rsp + 0x1f0], rax
mov qword [rsp + 0x1f8], rdx
mov rbp, qword [rsp + 0x1a0]
add rsp, 0x1a8
ret
mov rbx, qword [rsp + 0x1b0]
mov qword [rsp], rbx
mov rbx, qword [rsp + 0x1b8]
mov qword [rsp + 8], rbx
mov rbx, qword [rsp + 0x1c0]
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rdx
mov byte [rsp + 0x20], cl
mov byte [rsp + 0x21], r10b
mov qword [rsp + 0x28], r11
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rsi
call fcn.004912f0
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x40]
mov qword [rsp + 0x1e8], rdx
mov qword [rsp + 0x1f0], rcx
mov qword [rsp + 0x1f8], rax
mov rbp, qword [rsp + 0x1a0]
add rsp, 0x1a8
ret
mov qword [rsp + 0xf8], 0
mov qword [rsp + 0x100], 0
mov qword [rsp + 0x108], 0
lea rdi, [rsp + 0xf8]
mov qword [rsp + 0x170], rdi
mov qword [rsp + 0x178], 0x18
mov qword [rsp + 0x180], 0x18
mov qword [rsp + 0xe0], 0
mov qword [rsp + 0xe8], 0
mov byte [rsp + 0xf0], 0
mov qword [rsp + 0xe0], r11
mov rdi, qword [rsi]
sub rax, rdi
mov qword [rsp + 0xe8], rax
mov byte [rsp + 0xf0], r10b
lea rax, [rsp + 0xe0]
mov qword [rsp], rax
lea rax, [rsp + 0x170]
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], r8
call fcn.0048fc70
movzx edi, byte [rsp + 0x18]
mov rax, qword [rsp + 0x98]
movzx ecx, byte [rsp + 0x1d0]
mov rdx, qword [rsp + 0x1d8]
movzx ebx, byte [rsp + 0x7a]
mov rsi, qword [rsp + 0x150]
movzx r10d, byte [rsp + 0x7b]
mov r11, qword [rsp + 0x88]
jmp 0x490cab
cmp cl, 0x47
jne 0x490eca
test rdx, rdx
jne 0x490ec2
mov rdx, 1
mov r8, rdx
jmp 0x490c97
mov r8, rdx
jmp 0x490c97
cmp cl, 0x65
je 0x490c93
cmp cl, 0x67
jne 0x490eca
test rdx, rdx
jmp 0x490eb9
xor edi, edi
jmp 0x490cab
mov qword [rsp + 0x110], 0
mov qword [rsp + 0x118], 0
mov byte [rsp + 0x120], 0
lea rdi, [rsp + 0x110]
mov qword [rsp], rdi
mov qword [rsp + 8], r11
mov qword [rsp + 0x10], rax
mov byte [rsp + 0x18], r10b
mov qword [rsp + 0x20], rsi
call fcn.0048f7f0
movzx eax, byte [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x28]
mov qword [rsp + 0xc8], rdx
mov qword [rsp + 0xd0], rcx
mov byte [rsp + 0xd8], al
movzx eax, byte [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x40]
mov qword [rsp + 0xb0], rdx
mov qword [rsp + 0xb8], rcx
mov byte [rsp + 0xc0], al
mov qword [rsp + 0x128], 0
mov qword [rsp + 0x130], 0
mov qword [rsp + 0x138], 0
mov qword [rsp + 0x140], 0
lea rax, [rsp + 0x128]
mov qword [rsp + 0x170], rax
mov qword [rsp + 0x178], 0x20
mov qword [rsp + 0x180], 0x20
lea rax, [rsp + 0x110]
mov qword [rsp], rax
lea rax, [rsp + 0x170]
mov qword [rsp + 8], rax
lea rcx, [rsp + 0xc8]
mov qword [rsp + 0x10], rcx
lea rcx, [rsp + 0xb0]
mov qword [rsp + 0x18], rcx
call fcn.004902c0
movzx eax, byte [rsp + 0x20]
test al, al
je 0x4910b0
movzx ecx, byte [rsp + 0x1d0]
cmp cl, 0x47
ja 0x491083
cmp cl, 0x45
jne 0x49106a
mov rdx, qword [rsp + 0x188]
dec rdx
test rdx, rdx
jle 0x491066
movzx ebx, byte [rsp + 0x7a]
mov rsi, qword [rsp + 0x150]
movzx r10d, byte [rsp + 0x7b]
mov r11, qword [rsp + 0x88]
mov edi, eax
mov rax, qword [rsp + 0x98]
jmp 0x490cab
xor edx, edx
jmp 0x49103c
cmp cl, 0x47
jne 0x491079
mov rdx, qword [rsp + 0x188]
jmp 0x49103c
mov rdx, qword [rsp + 0x1d8]
jmp 0x49103c
cmp cl, 0x65
je 0x49102c
cmp cl, 0x66
jne 0x4910a9
mov rdx, qword [rsp + 0x188]
mov rbx, qword [rsp + 0x190]
sub rdx, rbx
test rdx, rdx
jg 0x49103c
xor edx, edx
jmp 0x49103c
cmp cl, 0x67
jne 0x491079
jmp 0x49106f
mov rax, qword [rsp + 0x1b0]
mov qword [rsp], rax
mov rax, qword [rsp + 0x1b8]
mov qword [rsp + 8], rax
mov rax, qword [rsp + 0x1c0]
mov qword [rsp + 0x10], rax
mov rax, qword [rsp + 0x1d8]
mov qword [rsp + 0x18], rax
movzx eax, byte [rsp + 0x1d0]
mov byte [rsp + 0x20], al
movzx eax, byte [rsp + 0x7b]
mov byte [rsp + 0x21], al
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x150]
mov qword [rsp + 0x38], rax
call fcn.004912f0
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x40]
mov qword [rsp + 0x1e8], rdx
mov qword [rsp + 0x1f0], rcx
mov qword [rsp + 0x1f8], rax
mov rbp, qword [rsp + 0x1a0]
add rsp, 0x1a8
ret
mov rdx, qword [rsp + 0x1b0]
mov qword [rsp], rdx
mov rdx, qword [rsp + 0x1b8]
mov qword [rsp + 8], rdx
mov rdx, qword [rsp + 0x1c0]
mov qword [rsp + 0x10], rdx
mov rdx, qword [rsp + 0x1d8]
mov qword [rsp + 0x18], rdx
mov byte [rsp + 0x20], cl
mov byte [rsp + 0x21], r10b
mov qword [rsp + 0x28], r11
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rsi
call fcn.004912f0
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x50]
mov qword [rsp + 0x1e8], rcx
mov qword [rsp + 0x1f0], rax
mov qword [rsp + 0x1f8], rdx
mov rbp, qword [rsp + 0x1a0]
add rsp, 0x1a8
ret
mov rcx, qword [rsp + 0x1b0]
mov qword [rsp], rcx
mov rcx, qword [rsp + 0x1b8]
mov qword [rsp + 8], rcx
mov rcx, qword [rsp + 0x1c0]
mov qword [rsp + 0x10], rcx
mov byte [rsp + 0x18], r10b
mov qword [rsp + 0x20], r11
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], rsi
call fcn.00492a20
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0x1e8], rdx
mov qword [rsp + 0x1f0], rcx
mov qword [rsp + 0x1f8], rax
mov rbp, qword [rsp + 0x1a0]
add rsp, 0x1a8
ret
or r11, r12
mov rax, r9
jmp 0x490c07
cmp rax, 0x40
jne 0x49128f
movsd xmm1, qword [rsp + 0x1c8]
movsd qword [rsp + 0x90], xmm1
mov rax, qword [rsp + 0x90]
lea rcx, [0x007e3a20]
jmp 0x490a29
lea rax, [0x006dc9d9]
mov qword [rsp + 0x160], rax
mov qword [rsp + 0x168], 0x30
lea rax, [0x0066fb00]
mov qword [rsp], rax
lea rax, [rsp + 0x160]
mov qword [rsp + 8], rax
call fcn.0040ccd0
mov rax, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov qword [rsp], rax
mov qword [rsp + 8], rcx
call fcn.0042a540
ud2
call fcn.00452210
jmp fcn.004909c0