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

Disassembly:
lea r12, [rsp - 0x148]
cmp r12, qword [r14 + 0x10]
jbe 0x551aa6
sub rsp, 0x1c8
mov qword [rsp + 0x1c0], rbp
lea rbp, [rsp + 0x1c0]
mov qword [rsp + 0x200], rax
mov qword [rsp + 0x208], rbx
nop dword [rax]
test rcx, rcx
je 0x5515ac
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0xd8], rbx
mov qword [rsp + 0xd0], rax
nop
mov rdx, rcx
and ecx, 0x1f
mov qword [rsp + 0x78], rcx
cmp rcx, 0x14
jne 0x550d66
bt edx, 9
jb 0x550d22
lea rsi, [0x00694e80]
jmp 0x550d30
mov rcx, rdx
call fcn.004e1660
mov rsi, rax
mov rax, rbx
mov rcx, qword [rsi + 0xd0]
call rcx
nop dword [rax]
test rax, rax
je 0x551554
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x80]
mov rbx, qword [rsp + 0xd8]
cmp rcx, 0x17
jne 0x550d77
cmp qword [rbx + 8], 0
sete sil
jmp 0x550d79
xor esi, esi
test sil, sil
je 0x550db2
cmp byte [rsp + 0x1f9], 0
je 0x550db2
xor eax, eax
xor ebx, ebx
mov rcx, rbx
call fcn.0040ac80
mov rbx, rax
xor ecx, ecx
xor edi, edi
lea rax, [0x00692460]
mov rbp, qword [rsp + 0x1c0]
add rsp, 0x1c8
ret
cmp byte [rsp + 0x1d0], 0
nop word [rax + rax]
je 0x550f03
cmp qword [rsp + 0x1d8], 0
je 0x550f03
lea rsi, [rcx - 2]
nop dword [rax]
cmp rsi, 4
ja 0x550f03
bt edx, 9
jb 0x550df9
lea rsi, [0x00694e80]
jmp 0x550e0b
mov rcx, rdx
nop dword [rax]
call fcn.004e1660
mov rsi, rax
mov rax, rbx
mov rbx, rax
mov rax, rsi
call fcn.004e21e0
call fcn.004df6e0
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0xc0], rbx
mov qword [rsp + 0x70], rcx
mov rdx, qword [rsp + 0x1d8]
mov rdi, qword [rdx]
nop dword [rax + rax]
call fcn.004e0ec0
mov rax, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x80]
mov edi, 1
call fcn.004dfba0
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xb0], rbx
mov rcx, qword [rsp + 0x70]
mov edi, 1
mov rax, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0xc0]
call fcn.004dfba0
mov rcx, rax
mov rdi, rbx
mov rax, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0xb0]
call fcn.004d96e0
test al, al
jne 0x550ed4
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x80]
mov rbx, qword [rsp + 0xd8]
jmp 0x550f03
xor eax, eax
xor ebx, ebx
mov rcx, rbx
nop dword [rax + rax]
call fcn.0040ac80
mov rbx, rax
xor ecx, ecx
xor edi, edi
lea rax, [0x00692460]
mov rbp, qword [rsp + 0x1c0]
add rsp, 0x1c8
ret
cmp byte [rsp + 0x1d0], 0
je 0x550ffa
cmp qword [rsp + 0x1d8], 0
nop word [rax + rax]
jne 0x550ffa
mov rcx, rdx
mov edi, 1
call fcn.004dfba0
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xa8], rbx
mov rcx, qword [rsp + 0x80]
bt ecx, 9
jb 0x550f62
lea rdx, [0x00694e80]
mov rsi, qword [rsp + 0xd0]
jmp 0x550f7d
mov rax, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xd8]
call fcn.004e1660
mov rdx, rax
mov rsi, rbx
mov rax, rdx
mov rbx, rsi
call fcn.004e20e0
mov edi, 1
call fcn.004dfba0
mov rcx, rax
mov rdi, rbx
mov rax, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0xa8]
call fcn.004d96e0
test al, al
jne 0x550fd0
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x80]
mov rbx, qword [rsp + 0xd8]
jmp 0x550ffa
xor eax, eax
xor ebx, ebx
mov rcx, rbx
call fcn.0040ac80
mov rbx, rax
xor ecx, ecx
xor edi, edi
lea rax, [0x00692460]
mov rbp, qword [rsp + 0x1c0]
add rsp, 0x1c8
ret
bt edx, 9
nop
jb 0x55100e
mov rsi, rax
lea rdi, [0x00694e80]
jmp 0x551039
mov rcx, rdx
call fcn.004e1660
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x80]
mov rsi, qword [rsp + 0xd0]
mov rdi, rax
mov rax, rbx
mov rbx, qword [rsp + 0xd8]
mov r8, qword [0x007b78d8]
cmp qword [0x007b78d0], rdi
je 0x55104f
bt edx, 9
jmp 0x551091
mov rbx, rax
mov rcx, r8
mov rax, rdi
call fcn.00403f40
nop dword [rax]
test al, al
jne 0x55134d
mov rcx, qword [rsp + 0x80]
bt ecx, 9
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x80]
mov rbx, qword [rsp + 0xd8]
mov rsi, qword [rsp + 0xd0]
jb 0x55109c
lea rax, [0x00694e80]
jmp 0x5510aa
mov rax, rsi
mov rcx, rdx
call fcn.004e1660
mov rsi, rbx
mov rbx, rsi
call fcn.0054cfc0
test dil, dil
je 0x55129b
nop dword [rax + rax]
test al, al
jne 0x55128d
mov rdx, qword [rsp + 0x1f0]
test rdx, rdx
je 0x551126
cmp rbx, 0x17
je 0x551126
lea rcx, [0x006310df]
mov qword [rsp + 0x110], rcx
mov qword [rsp + 0x118], 0x2b
mov rax, qword [rsp + 0x110]
mov ebx, 0x2b
call fcn.0040abe0
xor ebx, ebx
lea rcx, [0x00691b40]
mov rdi, rax
xor eax, eax
mov rbp, qword [rsp + 0x1c0]
add rsp, 0x1c8
ret
mov byte [rsp + 0x4f], cl
mov rsi, qword [rsp + 0x1e8]
test rsi, rsi
je 0x55118d
cmp rbx, 0x13
jne 0x551142
test rsi, rsi
jmp 0x551196
lea rcx, [0x00632aa4]
mov qword [rsp + 0x100], rcx
mov qword [rsp + 0x108], 0x2f
mov rax, qword [rsp + 0x100]
mov ebx, 0x2f
call fcn.0040abe0
xor ebx, ebx
lea rcx, [0x00691b40]
mov rdi, rax
xor eax, eax
mov rbp, qword [rsp + 0x1c0]
add rsp, 0x1c8
ret
cmp rbx, 0x13
jne 0x551205
test rsi, rsi
jne 0x551930
mov rdx, qword [rsp + 0x78]
cmp rdx, 0x18
jne 0x5511b8
mov rbx, qword [rsp + 0xd8]
mov rsi, qword [rbx]
mov rdi, qword [rbx + 8]
jmp 0x5511ed
mov rax, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x80]
call fcn.004e1580
movzx ecx, byte [rsp + 0x4f]
mov rdx, qword [rsp + 0x78]
mov rdi, rbx
mov rsi, rax
mov rbx, qword [rsp + 0xd8]
mov qword [rsp + 0x88], rsi
mov qword [rsp + 0x50], rdi
xor eax, eax
nop dword [rax]
jmp 0x551940
cmp rbx, 0x17
jne 0x551285
cmp rdx, 0x18
je 0x551269
mov rax, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x80]
mov edi, 1
call fcn.004dfba0
lea rdx, [0x0061e1c0]
nop word [rax + rax]
cmp rax, rdx
jne 0x551921
mov rax, qword [rbx]
mov rdx, qword [rbx + 8]
mov rcx, qword [rbx + 0x10]
mov rbx, rdx
call fcn.0054ebc0
nop dword [rax]
test al, al
je 0x551273
movzx ecx, byte [rsp + 0x4f]
mov eax, 0x18
jmp 0x5515ee
movzx ecx, byte [rsp + 0x4f]
mov eax, 0x17
nop dword [rax]
jmp 0x5515ee
mov rax, rbx
jmp 0x5515ee
mov rcx, qword [rsp + 0x80]
bt ecx, 9
jmp 0x5512a7
mov rcx, qword [rsp + 0x80]
bt ecx, 9
jb 0x5512ba
lea rax, [0x00694e80]
mov rbx, qword [rsp + 0xd0]
jmp 0x5512cf
mov rax, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xd8]
call fcn.004e1660
movups xmmword [rsp + 0xe0], xmm15
test rax, rax
je 0x5512e1
mov rax, qword [rax + 8]
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xe8], rbx
lea rax, [0x006262aa]
mov ebx, 0x13
lea rcx, [rsp + 0xe0]
mov edi, 1
mov rsi, rdi
call fcn.004e7c40
mov qword [rsp + 0x120], rax
mov qword [rsp + 0x128], rbx
mov rax, qword [rsp + 0x120]
call fcn.0040abe0
xor ebx, ebx
lea rcx, [0x00691b40]
mov rdi, rax
xor eax, eax
mov rbp, qword [rsp + 0x1c0]
add rsp, 0x1c8
ret
mov rax, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x80]
mov edi, 1
call fcn.004dfba0
movups xmmword [rsp + 0x178], xmm15
movups xmmword [rsp + 0x180], xmm15
movups xmmword [rsp + 0x190], xmm15
movups xmmword [rsp + 0x1a0], xmm15
movups xmmword [rsp + 0x1b0], xmm15
lea rdx, [0x0060e580]
cmp rax, rdx
jne 0x5515df
mov rdx, qword [rbx]
mov qword [rsp + 0x178], rdx
movups xmm0, xmmword [rbx + 8]
movups xmmword [rsp + 0x180], xmm0
movups xmm0, xmmword [rbx + 0x18]
movups xmmword [rsp + 0x190], xmm0
movups xmm0, xmmword [rbx + 0x28]
movups xmmword [rsp + 0x1a0], xmm0
movups xmm0, xmmword [rbx + 0x38]
movups xmmword [rsp + 0x1b0], xmm0
mov rdx, qword [rsp + 0x178]
mov qword [rsp + 0x130], rdx
movups xmm0, xmmword [rsp + 0x180]
movups xmmword [rsp + 0x138], xmm0
movups xmm0, xmmword [rsp + 0x190]
movups xmmword [rsp + 0x148], xmm0
movups xmm0, xmmword [rsp + 0x1a0]
movups xmmword [rsp + 0x158], xmm0
movups xmm0, xmmword [rsp + 0x1b0]
movups xmmword [rsp + 0x168], xmm0
mov rbx, qword [rsp + 0x168]
mov rax, qword [rsp + 0x160]
mov rcx, qword [rsp + 0x170]
test rbx, rbx
jne 0x551531
lea rax, [0x00604a20]
nop
call fcn.0040d4a0
mov qword [rsp + 0xa0], rax
mov rdi, qword [rsp + 0x130]
mov rsi, qword [rsp + 0x138]
mov r8, qword [rsp + 0x150]
movzx r9d, byte [rsp + 0x140]
xor ebx, ebx
mov ecx, 8
call fcn.0054e280
call fcn.0040ac80
lea rcx, [0x00692460]
mov rdi, qword [rsp + 0xa0]
mov qword [rdi + 8], rcx
cmp dword [0x0080d340], 0
jne 0x5514c2
mov qword [rdi + 0x10], rax
nop
jmp 0x5514ce
lea rdx, [rdi + 0x10]
mov rdi, rdx
call fcn.00463cc0
mov rax, qword [rsp + 0x148]
mov rbx, qword [rsp + 0x150]
mov rcx, qword [rsp + 0x158]
call fcn.0040ac80
lea rdx, [0x00692460]
mov rbx, qword [rsp + 0xa0]
mov qword [rbx + 0x18], rdx
cmp dword [0x0080d340], 0
jne 0x55150d
mov qword [rbx + 0x20], rax
jmp 0x551516
lea rdi, [rbx + 0x20]
call fcn.00463cc0
lea rax, [0x006922f8]
xor ecx, ecx
xor edi, edi
mov rbp, qword [rsp + 0x1c0]
add rsp, 0x1c8
ret
call fcn.0040ac80
mov rbx, rax
xor ecx, ecx
xor edi, edi
lea rax, [0x00692460]
mov rbp, qword [rsp + 0x1c0]
add rsp, 0x1c8
ret
mov rax, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x80]
call fcn.004df6e0
movups xmm0, xmmword [rsp + 0x1d0]
movups xmmword [rsp], xmm0
movups xmm0, xmmword [rsp + 0x1e0]
movups xmmword [rsp + 0x10], xmm0
movups xmm0, xmmword [rsp + 0x1f0]
movups xmmword [rsp + 0x20], xmm0
call fcn.00550ca0
mov rbp, qword [rsp + 0x1c0]
add rsp, 0x1c8
ret
lea rax, [0x0062b3ee]
mov ebx, 0x1e
xor ecx, ecx
xor edi, edi
mov rsi, rdi
nop
call fcn.004e4dc0
mov rcx, rax
mov rdi, rbx
xor eax, eax
xor ebx, ebx
mov rbp, qword [rsp + 0x1c0]
add rsp, 0x1c8
ret
mov rbx, rdx
lea rcx, [0x005ef880]
call fcn.0040a7a0
movzx edx, byte [rsp + 0x1f8]
test dl, dl
je 0x551658
nop word [rax + rax]
cmp rax, 0x10
jne 0x55160d
mov eax, 0x11
jmp 0x551658
lea rcx, [0x00629949]
mov qword [rsp + 0xf0], rcx
mov qword [rsp + 0xf8], 0x1a
mov rax, qword [rsp + 0xf0]
mov ebx, 0x1a
call fcn.0040abe0
xor ebx, ebx
lea rcx, [0x00691b40]
mov rdi, rax
xor eax, eax
mov rbp, qword [rsp + 0x1c0]
add rsp, 0x1c8
ret
mov qword [rsp + 0x58], rax
nop dword [rax]
cmp rax, 0x11
jne 0x551672
test dl, dl
jne 0x551672
mov byte [rsp + 0x1f8], 1
lea rax, [0x00604a20]
call fcn.0040d4a0
mov qword [rsp + 0x98], rax
movups xmm0, xmmword [rsp + 0x1d0]
movups xmmword [rsp], xmm0
movups xmm0, xmmword [rsp + 0x1e0]
movups xmmword [rsp + 0x10], xmm0
movups xmm0, xmmword [rsp + 0x1f0]
movups xmmword [rsp + 0x20], xmm0
mov rbx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x80]
mov rax, qword [rsp + 0xd0]
call fcn.0054fb20
mov rdx, qword [rsp + 0x98]
mov qword [rdx + 0x18], rax
cmp dword [0x0080d340], 0
jne 0x5516e4
mov qword [rdx + 0x20], rbx
jmp 0x5516f6
lea rsi, [rdx + 0x20]
mov rax, rdi
mov rdi, rsi
call fcn.00463e00
mov rdi, rax
test rcx, rcx
jne 0x55190c
mov rcx, qword [rdx + 0x18]
mov rcx, qword [rcx + 0x20]
mov rax, rbx
call rcx
mov rcx, qword [rsp + 0x1e0]
test rcx, rcx
je 0x551891
cmp byte [rsp + 0x1d2], 0
je 0x55172e
mov edx, 1
jmp 0x551748
movzx edx, byte [rsp + 0x1d3]
test rdx, rdx
mov edx, 2
mov r10d, 3
cmovne rdx, r10
cmp byte [rsp + 0x1d1], 0
jne 0x55175a
mov r10, qword [rcx]
jmp 0x551898
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x60], rdx
xor ebx, ebx
mov ecx, 8
mov rdi, rbx
mov rsi, qword [rsp + 0x58]
mov r8, rax
movzx r9d, byte [rsp + 0x4f]
mov rax, qword [rsp + 0x98]
call fcn.0054e280
call fcn.0040ac80
lea rdx, [0x00692460]
mov rdi, qword [rsp + 0x98]
mov qword [rdi + 8], rdx
cmp dword [0x0080d340], 0
jne 0x5517b0
mov qword [rdi + 0x10], rax
jmp 0x5517bc
lea rcx, [rdi + 0x10]
mov rdi, rcx
call fcn.00463cc0
lea rax, [0x00604a20]
call fcn.0040d4a0
mov qword [rsp + 0x90], rax
lea rcx, [0x006922f8]
mov qword [rax + 0x18], rcx
cmp dword [0x0080d340], 0
jne 0x5517f2
mov rdx, qword [rsp + 0x98]
mov qword [rax + 0x20], rdx
jmp 0x551805
lea rdi, [rax + 0x20]
mov rdx, qword [rsp + 0x98]
nop
call fcn.00463de0
mov rcx, qword [rdx + 8]
mov rax, qword [rdx + 0x10]
mov rcx, qword [rcx + 0x20]
call rcx
mov rcx, qword [rsp + 0x1e0]
mov rsi, qword [rcx]
mov rcx, qword [rsp + 0x68]
lea r8, [rcx + rax]
mov rax, qword [rsp + 0x90]
xor ebx, ebx
mov ecx, 8
mov rdi, qword [rsp + 0x60]
mov r9d, 1
call fcn.0054e280
call fcn.0040ac80
lea rcx, [0x00692460]
mov rbx, qword [rsp + 0x90]
mov qword [rbx + 8], rcx
cmp dword [0x0080d340], 0
jne 0x55186d
mov qword [rbx + 0x10], rax
jmp 0x551876
lea rdi, [rbx + 0x10]
call fcn.00463cc0
lea rax, [0x006922f8]
xor ecx, ecx
xor edi, edi
mov rbp, qword [rsp + 0x1c0]
add rsp, 0x1c8
ret
xor edx, edx
mov r10, qword [rsp + 0x58]
xor ebx, ebx
mov ecx, 8
mov rdi, rdx
mov rsi, r10
mov r8, rax
movzx r9d, byte [rsp + 0x4f]
mov rax, qword [rsp + 0x98]
call fcn.0054e280
nop dword [rax + rax]
call fcn.0040ac80
lea rdx, [0x00692460]
mov rbx, qword [rsp + 0x98]
mov qword [rbx + 8], rdx
cmp dword [0x0080d340], 0
nop
jne 0x5518e8
mov qword [rbx + 0x10], rax
jmp 0x5518f1
lea rdi, [rbx + 0x10]
call fcn.00463cc0
lea rax, [0x006922f8]
xor ecx, ecx
xor edi, edi
mov rbp, qword [rsp + 0x1c0]
add rsp, 0x1c8
ret
xor eax, eax
xor ebx, ebx
mov rbp, qword [rsp + 0x1c0]
add rsp, 0x1c8
nop
ret
mov rbx, rdx
lea rcx, [0x005ef880]
call fcn.0040a7a0
mov rax, rsi
jmp 0x5515ee
mov rax, r9
nop dword [rax + rax]
cmp rax, rdi
jge 0x551a99
movzx r8d, byte [rsi + rax]
cmp r8d, 0x80
jge 0x55195d
lea r9, [rax + 1]
jmp 0x551990
mov rbx, rdi
mov rcx, rax
mov rax, rsi
call fcn.0045d160
movzx ecx, byte [rsp + 0x4f]
mov rdx, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x50]
mov r8d, eax
mov r9, rbx
mov rbx, qword [rsp + 0xd8]
cmp r8d, 0x80
jge 0x551a10
lea r10d, [r8 - 0x61]
nop dword [rax]
cmp r10b, 0x19
jbe 0x551938
lea r10d, [r8 - 0x41]
cmp r10b, 0x19
jbe 0x551938
lea r10d, [r8 - 0x30]
cmp r10b, 9
jbe 0x551938
lea r10d, [r8 - 0x27]
cmp r10b, 2
jbe 0x551938
lea r10d, [r8 - 0x2b]
cmp r10b, 4
jbe 0x551938
nop word [rax + rax]
cmp r8b, 0x20
je 0x551938
cmp r8b, 0x3a
je 0x551938
cmp r8b, 0x3d
je 0x551938
nop
cmp r8b, 0x3f
je 0x551938
cmp rdx, 0x18
jmp 0x551a14
cmp rdx, 0x18
jne 0x551a1f
mov rdx, qword [rbx]
mov rsi, qword [rbx + 8]
jmp 0x551a3a
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0x80]
call fcn.004e1580
mov rsi, rbx
mov rdx, rax
mov rax, rdx
mov rbx, rsi
call fcn.004903c0
test al, al
je 0x551a5d
movzx ecx, byte [rsp + 0x4f]
mov rbx, qword [rsp + 0xd8]
mov eax, 0xc
jmp 0x551a9e
lea rax, [0x005fa4a0]
call fcn.0040d4a0
mov qword [rax + 8], 0x1c
lea rcx, [0x0062a4a8]
mov qword [rax], rcx
xor ebx, ebx
lea rcx, [0x00691620]
mov rdi, rax
xor eax, eax
mov rbp, qword [rsp + 0x1c0]
add rsp, 0x1c8
ret
mov eax, 0x13
mov rsi, rax
jmp 0x551930
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], rcx
call fcn.00461a80
mov rax, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
jmp fcn.00550ca0