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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
lea rax, [rsp - 0x140]
nop dword [rax + rax]
cmp rax, qword [rcx + 0x10]
jbe 0x496498
sub rsp, 0x1c0
mov qword [rsp + 0x1b8], rbp
lea rbp, [rsp + 0x1b8]
mov rax, qword [rsp + 0x1c8]
movzx ecx, byte [rax + 0x17]
and ecx, 0x1f
cmp rcx, 0x13
jne 0x496426
mov rcx, qword [rsp + 0x1d0]
test rcx, rcx
je 0x495938
movzx edx, byte [rcx + 0x17]
and edx, 0x1f
cmp rdx, 0x14
je 0x4963b5
mov qword [rsp + 0x130], rax
mov qword [rsp + 0x138], rcx
mov qword [rsp + 0x120], rax
mov qword [rsp + 0x128], rcx
lea rdx, [0x007cd7e0]
mov qword [rsp], rdx
lea rbx, [0x0062ece0]
mov qword [rsp + 8], rbx
lea rsi, [rsp + 0x120]
mov qword [rsp + 0x10], rsi
nop dword [rax]
call fcn.00482f20
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x18]
cmp byte [rsp + 0x28], 0
jne 0x496265
lea rax, [0x0062e7e0]
mov qword [rsp], rax
call fcn.0040e560
mov rax, qword [rsp + 8]
mov qword [rsp + 0xf8], rax
mov rcx, qword [rsp + 0x1d0]
nop
test rcx, rcx
je 0x49625d
movzx esi, byte [rcx + 0x17]
test sil, 0x20
jne 0x49619c
nop
mov esi, dword [rax]
nop word [rax + rax]
test esi, 7
jne 0x495a15
mov rsi, qword [rax + 0x10]
mov rdi, qword [rax + 8]
mov r8, qword [rax + 0x18]
lea r9, [rsi + 1]
nop dword [rax + rax]
cmp r8, r9
jb 0x49612f
lea r8, [rsi + 1]
mov qword [rax + 0x10], r8
mov byte [rdi + rsi], 0
mov rsi, qword [rax + 8]
mov rdi, qword [rax + 0x10]
mov r8d, dword [rax]
mov r9d, r8d
shr r8d, 3
cmp r8, rdi
jae 0x496390
movzx edi, byte [rsi + r8]
and r9d, 7
bts edi, r9d
mov byte [rsi + r8], dil
inc dword [rax]
mov edx, 8
mov rsi, qword [rsp + 0x1c8]
movzx edi, byte [rsi + 0x14]
test dil, 1
je 0x496125
mov ebx, 0x48
movzx edi, word [rsi + 0x30]
test di, di
jne 0x496107
xor ebx, ebx
xor edi, edi
mov qword [rsp + 0xd8], rdi
mov qword [rsp + 0x70], rbx
xor r8d, r8d
jmp 0x495b10
mov qword [rsp + 0x90], r8
mov rcx, qword [rdi + r8*8]
mov qword [rsp + 0x100], rcx
movzx ebx, byte [rcx + 0x15]
mov qword [rsp], rax
mov rsi, rdx
neg rdx
dec ebx
movzx ebx, bl
and rbx, rdx
lea rdx, [rsi + rbx]
mov qword [rsp + 0x78], rdx
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rcx
call fcn.004964c0
mov rax, qword [rsp + 0x90]
lea r8, [rax + 1]
mov rax, qword [rsp + 0x100]
mov rax, qword [rax]
mov rcx, qword [rsp + 0x78]
lea rdx, [rcx + rax]
mov rax, qword [rsp + 0xf8]
mov rcx, qword [rsp + 0x1d0]
mov rbx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x1c8]
mov rdi, qword [rsp + 0xd8]
cmp rbx, r8
jg 0x495a89
mov rbx, rdx
neg rdx
and rdx, 7
add rdx, rbx
movzx edi, byte [rsi + 0x14]
test dil, 1
je 0x4960fd
mov edi, 0x48
movzx r8d, word [rsi + 0x32]
and r8d, 0x7fff
test r8w, r8w
jne 0x4960c5
xor edi, edi
xor r8d, r8d
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0xe0], r8
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x88], rbx
mov r9, rdx
xor r10d, r10d
jmp 0x495c13
mov qword [rsp + 0x90], r10
mov rcx, qword [r8 + r10*8]
mov qword [rsp + 0xf0], rcx
movzx ebx, byte [rcx + 0x15]
mov qword [rsp], rax
mov rsi, rdx
neg rdx
dec ebx
movzx ebx, bl
and rbx, rdx
lea rdx, [rsi + rbx]
mov qword [rsp + 0x80], rdx
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rcx
call fcn.004964c0
mov rax, qword [rsp + 0x90]
lea r10, [rax + 1]
mov rax, qword [rsp + 0xf0]
mov rax, qword [rax]
mov rcx, qword [rsp + 0x80]
lea rdx, [rcx + rax]
mov rax, qword [rsp + 0xf8]
mov rcx, qword [rsp + 0x1d0]
mov rbx, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x1c8]
mov rdi, qword [rsp + 0x68]
mov r8, qword [rsp + 0xe0]
mov r9, qword [rsp + 0x78]
cmp rdi, r10
jg 0x495b79
mov qword [rsp + 0x80], rdx
lea rax, [0x0064e1e0]
mov qword [rsp], rax
call fcn.0040e560
mov rax, qword [rsp + 8]
mov byte [rax + 0x15], 8
mov rcx, qword [rsp + 0x80]
mov rdx, rcx
neg rcx
and rcx, 7
add rcx, rdx
mov qword [rax], rcx
mov rcx, qword [rsp + 0xf8]
mov edx, dword [rcx]
shl rdx, 3
mov qword [rax + 8], rdx
cmp dword [rcx], 0
jbe 0x4960b5
mov rdx, qword [rcx + 0x10]
mov rbx, qword [rcx + 8]
nop dword [rax + rax]
test rdx, rdx
jbe 0x496365
cmp dword [0x00811460], 0
jne 0x49609c
mov qword [rax + 0x20], rbx
mov rdx, qword [rsp + 0x1d0]
test rdx, rdx
mov qword [rsp + 0xe8], rax
je 0x49602d
mov qword [rsp], rdx
call fcn.0048e380
mov rax, qword [rsp + 8]
mov qword [rsp + 0x118], rax
mov rcx, qword [rsp + 0x10]
mov qword [rsp + 0x90], rcx
mov rdx, qword [rsp + 0x1c8]
mov qword [rsp], rdx
call fcn.0048e380
mov rax, qword [rsp + 8]
mov rcx, qword [rsp + 0x10]
lea rdx, [rsp + 0xb8]
mov qword [rsp], rdx
lea rdx, [0x0065bcfb]
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], 0xb
mov rdx, qword [rsp + 0x118]
mov qword [rsp + 0x18], rdx
mov rdx, qword [rsp + 0x90]
mov qword [rsp + 0x20], rdx
lea rdx, [0x0065a2ce]
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x30], 2
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rcx
lea rax, [0x0065a2a1]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], 1
call fcn.00451fe0
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x60]
mov qword [rsp], rax
mov qword [rsp + 8], rcx
xorps xmm0, xmm0
movups xmmword [rsp + 0x10], xmm0
mov byte [rsp + 0x20], 0
call fcn.0048dea0
mov rax, qword [rsp + 0x28]
mov qword [rsp], rax
call fcn.00467b80
mov eax, dword [rsp + 8]
mov rcx, qword [rsp + 0xe8]
mov dword [rcx + 0x28], eax
lea rax, [0x00645ce0]
mov qword [rsp], rax
call fcn.0040e560
mov rax, qword [rsp + 8]
mov qword [rsp + 0x110], rax
lea rcx, [0x006288a0]
mov qword [rsp], rcx
call fcn.0040e560
mov rax, qword [rsp + 8]
lea rcx, [0x0049dc00]
mov qword [rax], rcx
cmp dword [0x00811460], 0
jne 0x496006
mov rcx, qword [rsp + 0xe8]
mov qword [rax + 8], rcx
mov rdx, qword [rsp + 0x110]
mov qword [rdx + 0x20], rax
mov rax, qword [rsp + 0x1c8]
mov qword [rsp + 0x130], rax
mov rax, qword [rsp + 0x1d0]
mov qword [rsp + 0x138], rax
mov qword [rsp + 0x190], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x198], xmm0
movups xmmword [rsp + 0x1a8], xmm0
mov qword [rsp + 0x190], rcx
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x198], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x1a0], rax
mov rax, qword [rsp + 0xf8]
mov qword [rsp + 0x1a8], rax
mov qword [rsp + 0x1b0], rdx
lea rax, [0x0062ece0]
mov qword [rsp], rax
lea rax, [rsp + 0x130]
mov qword [rsp + 8], rax
nop dword [rax]
call fcn.0040b460
mov rax, qword [rsp + 0x10]
mov qword [rsp + 0x118], rax
mov rcx, qword [rsp + 0x18]
mov qword [rsp + 0x108], rcx
lea rdx, [0x00642560]
mov qword [rsp], rdx
lea rbx, [rsp + 0x190]
mov qword [rsp + 8], rbx
call fcn.0040b460
mov rax, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
lea rdx, [0x007cd7e0]
mov qword [rsp], rdx
mov rdx, qword [rsp + 0x118]
mov qword [rsp + 8], rdx
mov rdx, qword [rsp + 0x108]
mov qword [rsp + 0x10], rdx
mov qword [rsp + 0x18], rax
mov qword [rsp + 0x20], rcx
call fcn.00483880
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x28]
mov qword [rsp + 0x190], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x198], xmm0
movups xmmword [rsp + 0x1a8], xmm0
lea rdx, [0x00642560]
cmp rdx, rcx
jne 0x496347
mov rcx, qword [rax]
mov qword [rsp + 0x190], rcx
movups xmm0, xmmword [rax + 8]
movups xmmword [rsp + 0x198], xmm0
movups xmm0, xmmword [rax + 0x18]
movups xmmword [rsp + 0x1a8], xmm0
mov rax, qword [rsp + 0x190]
mov qword [rsp + 0x168], rax
movups xmm0, xmmword [rsp + 0x198]
movups xmmword [rsp + 0x170], xmm0
movups xmm0, xmmword [rsp + 0x1a8]
movups xmmword [rsp + 0x180], xmm0
mov rax, qword [rsp + 0x168]
mov rcx, qword [rsp + 0x170]
mov rdx, qword [rsp + 0x178]
mov rbx, qword [rsp + 0x180]
mov rsi, qword [rsp + 0x188]
mov qword [rsp + 0x1d8], rax
mov qword [rsp + 0x1e0], rcx
mov qword [rsp + 0x1e8], rdx
mov qword [rsp + 0x1f0], rbx
mov qword [rsp + 0x1f8], rsi
mov rbp, qword [rsp + 0x1b8]
add rsp, 0x1c0
ret
lea rdi, [rax + 8]
mov rcx, qword [rsp + 0xe8]
call fcn.0046ca20
mov rdx, qword [rsp + 0x110]
lea rdi, [rdx + 0x20]
call fcn.0046c920
jmp 0x495e08
mov rax, qword [rsp + 0x1c8]
mov qword [rsp], rax
call fcn.0048e380
mov rax, qword [rsp + 8]
mov rcx, qword [rsp + 0x10]
lea rdx, [rsp + 0x98]
mov qword [rsp], rdx
lea rdx, [0x0065b46d]
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], 9
mov qword [rsp + 0x18], rax
mov qword [rsp + 0x20], rcx
lea rax, [0x0065a2a1]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], 1
call fcn.00451ee0
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
jmp 0x495d6f
lea rdi, [rax + 0x20]
call fcn.0046ca60
mov rdx, qword [rsp + 0x1d0]
test rdx, rdx
jmp 0x495ca5
mov rdx, qword [rsp + 0x1d0]
test rdx, rdx
jmp 0x495ca5
movzx r9d, word [rsi + 0x30]
add r8d, r9d
add rdi, rsi
movzx r8d, r8w
cmp r9, r8
ja 0x49636f
sub r8, r9
mov r10, r8
neg r8
shl r9, 3
sar r8, 0x3f
and r9, r8
lea r8, [rdi + r9]
mov rdi, r10
jmp 0x495b54
mov edi, 0x38
jmp 0x495b39
lea r8, [rbx + rsi]
cmp rdi, 0x100000
ja 0x49637a
mov ebx, edi
mov rdi, r8
nop dword [rax]
jmp 0x495a74
mov ebx, 0x38
jmp 0x495a63
lea rax, [0x00614000]
mov qword [rsp], rax
mov qword [rsp + 8], rdi
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x20], r9
call fcn.0044ddc0
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0xf8]
mov qword [rbx + 0x18], rdx
cmp dword [0x00811460], 0
jne 0x496191
mov qword [rbx + 8], rax
mov rsi, rcx
mov rdi, rax
mov rax, rbx
mov rcx, qword [rsp + 0x1d0]
jmp 0x495a09
lea rdi, [rbx + 8]
call fcn.0046c920
jmp 0x49617b
cmp qword [rcx + 8], 0
jne 0x4959d7
mov esi, dword [rax]
test esi, 7
jne 0x4961d2
mov rsi, qword [rax + 0x10]
mov rdi, qword [rax + 8]
mov r8, qword [rax + 0x18]
lea r9, [rsi + 1]
cmp r9, r8
ja 0x4961f0
lea r8, [rsi + 1]
mov qword [rax + 0x10], r8
mov byte [rdi + rsi], 0
mov rsi, qword [rax + 0x10]
mov edi, dword [rax]
shr edi, 3
nop dword [rax + rax]
cmp rdi, rsi
jae 0x496386
inc dword [rax]
jmp 0x495a43
lea rax, [0x00614000]
mov qword [rsp], rax
mov qword [rsp + 8], rdi
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x20], r9
call fcn.0044ddc0
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0xf8]
mov qword [rbx + 0x18], rdx
cmp dword [0x00811460], 0
jne 0x496252
mov qword [rbx + 8], rax
mov rsi, rcx
mov rdi, rax
mov rax, rbx
mov rcx, qword [rsp + 0x1d0]
jmp 0x4961c6
lea rdi, [rbx + 8]
call fcn.0046c920
jmp 0x49623c
xor edx, edx
nop
jmp 0x495a48
mov qword [rsp + 0x190], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x198], xmm0
movups xmmword [rsp + 0x1a8], xmm0
lea rdx, [0x00642560]
cmp rdx, rcx
jne 0x49639b
mov rcx, qword [rax]
mov qword [rsp + 0x190], rcx
movups xmm0, xmmword [rax + 8]
movups xmmword [rsp + 0x198], xmm0
movups xmm0, xmmword [rax + 0x18]
movups xmmword [rsp + 0x1a8], xmm0
mov rax, qword [rsp + 0x190]
mov qword [rsp + 0x140], rax
movups xmm0, xmmword [rsp + 0x198]
movups xmmword [rsp + 0x148], xmm0
movups xmm0, xmmword [rsp + 0x1a8]
movups xmmword [rsp + 0x158], xmm0
mov rax, qword [rsp + 0x140]
mov rcx, qword [rsp + 0x148]
mov rdx, qword [rsp + 0x150]
mov rbx, qword [rsp + 0x158]
mov rsi, qword [rsp + 0x160]
mov qword [rsp + 0x1d8], rax
mov qword [rsp + 0x1e0], rcx
mov qword [rsp + 0x1e8], rdx
mov qword [rsp + 0x1f0], rbx
mov qword [rsp + 0x1f8], rsi
mov rbp, qword [rsp + 0x1b8]
add rsp, 0x1c0
ret
mov qword [rsp], rcx
mov qword [rsp + 8], rdx
lea rax, [0x0061a280]
mov qword [rsp + 0x10], rax
nop dword [rax]
call fcn.0040b2a0
xor eax, eax
mov rcx, rdx
call fcn.0046cdc0
mov eax, r9d
mov rcx, r8
call fcn.0046cf20
mov edx, edi
mov ebx, 0x100000
call fcn.0046cec0
mov eax, edi
mov rcx, rsi
call fcn.0046cdc0
mov eax, r8d
mov rcx, rdi
call fcn.0046cdc0
mov qword [rsp], rcx
mov qword [rsp + 8], rdx
lea rax, [0x0061a280]
mov qword [rsp + 0x10], rax
call fcn.0040b2a0
mov qword [rsp], rcx
call fcn.0048e380
mov rax, qword [rsp + 8]
mov rcx, qword [rsp + 0x10]
mov qword [rsp], 0
lea rdx, [0x00666c70]
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], 0x2c
mov qword [rsp + 0x18], rax
mov qword [rsp + 0x20], rcx
call fcn.00451e60
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
mov qword [rsp], rax
mov qword [rsp + 8], rcx
call fcn.0040b600
mov rax, qword [rsp + 0x10]
lea rcx, [0x00613e40]
mov qword [rsp], rcx
mov qword [rsp + 8], rax
call fcn.00438920
mov qword [rsp], rax
call fcn.0048e380
mov rax, qword [rsp + 8]
mov rcx, qword [rsp + 0x10]
mov qword [rsp], 0
lea rdx, [0x006652f3]
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], 0x25
mov qword [rsp + 0x18], rax
mov qword [rsp + 0x20], rcx
call fcn.00451e60
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
mov qword [rsp], rax
mov qword [rsp + 8], rcx
call fcn.0040b600
mov rax, qword [rsp + 0x10]
lea rcx, [0x00613e40]
mov qword [rsp], rcx
mov qword [rsp + 8], rax
call fcn.00438920
nop
call fcn.0046abe0
nop dword [rax]
jmp fcn.004958c0