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

Disassembly:
lea r12, [rsp - 0x150]
cmp r12, qword [r14 + 0x10]
jbe 0x5536c6
sub rsp, 0x1d0
mov qword [rsp + 0x1c8], rbp
lea rbp, [rsp + 0x1c8]
mov rdx, qword [rax + 0x2f0]
mov r11, qword [rax + 0x2e8]
test rdx, rdx
je 0x5527ed
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x1d8], rax
xor ecx, ecx
jmp 0x552818
xor eax, eax
xor ebx, ebx
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
mov r12, qword [rsp + 0x80]
add r12, 0x38
mov r11, r12
mov rcx, rdx
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x80], r11
mov r12, qword [r11]
mov qword [rsp + 0x190], r12
movups xmm0, xmmword [r11 + 8]
movups xmmword [rsp + 0x198], xmm0
movups xmm0, xmmword [r11 + 0x18]
movups xmmword [rsp + 0x1a8], xmm0
movups xmm0, xmmword [r11 + 0x28]
movups xmmword [rsp + 0x1b8], xmm0
mov r12, qword [rsp + 0x190]
mov rbx, qword [rsp + 0x198]
mov rdi, qword [rsp + 0x1a0]
cmp rbx, 4
jne 0x552e3a
cmp qword [r12], 2
nop
jne 0x552e3a
cmp qword [r12 + 8], 5
jne 0x552e3a
cmp qword [r12 + 0x10], 0x1d
jne 0x552e3a
mov r12, qword [r12 + 0x18]
cmp r12, 0x13
jg 0x552b4e
cmp r12, 0xf
jg 0x5529d6
cmp r12, 0xe
je 0x55291b
nop dword [rax]
cmp r12, 0xf
jne 0x552c3a
mov rax, qword [rsp + 0x1b0]
mov rbx, qword [rsp + 0x1b8]
mov rcx, qword [rsp + 0x1c0]
call fcn.005503c0
mov rdx, qword [rsp + 0x1d8]
mov qword [rdx + 0x2e0], rax
test rbx, rbx
jne 0x552fae
mov rax, rdx
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
mov r11, qword [rsp + 0x80]
xor ebx, ebx
jmp 0x5533f7
mov rdx, qword [rsp + 0x1b0]
mov rsi, qword [rsp + 0x1b8]
mov rdi, qword [rsp + 0x1c0]
mov qword [rsp + 0xa0], rdx
mov qword [rsp + 0xa8], rsi
mov qword [rsp + 0xb0], rdi
mov qword [rsp + 0x100], 0
movups xmmword [rsp + 0x108], xmm15
lea rax, [rsp + 0xa0]
lea rbx, [rsp + 0x100]
mov ecx, 4
call fcn.00523fa0
nop word [rax + rax]
test al, al
je 0x552fc4
mov rdx, qword [rsp + 0x108]
mov r11, qword [rsp + 0x110]
mov r12, qword [rsp + 0x100]
mov rax, qword [rsp + 0x1d8]
mov qword [rax + 0x380], rdx
mov qword [rax + 0x388], r11
mov qword [rax + 0x378], r12
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
mov r11, qword [rsp + 0x80]
xor ebx, ebx
jmp 0x5533f7
cmp r12, 0x11
je 0x552a5b
nop dword [rax]
cmp r12, 0x13
jne 0x552c3a
mov rax, qword [rsp + 0x1b0]
mov rbx, qword [rsp + 0x1b8]
mov rcx, qword [rsp + 0x1c0]
call fcn.005504e0
mov rdx, qword [rsp + 0x1d8]
mov byte [rdx + 0x361], al
mov qword [rdx + 0x368], rbx
nop dword [rax]
test rcx, rcx
jne 0x552fe5
mov byte [rdx + 0x360], 1
cmp qword [rdx + 0x368], 0
sete byte [rdx + 0x370]
mov rax, rdx
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
mov r11, qword [rsp + 0x80]
xor ebx, ebx
jmp 0x5533f7
mov rax, qword [rsp + 0x1b0]
mov rbx, qword [rsp + 0x1b8]
mov rcx, qword [rsp + 0x1c0]
call fcn.005507e0
mov rdx, qword [rsp + 8]
mov r12, qword [rsp]
mov r13, qword [rsp + 0x10]
mov r15, qword [rsp + 0x18]
mov qword [rsp + 0x78], r15
mov r15, qword [rsp + 0x20]
mov qword [rsp + 0x68], r15
cmp qword [rsp + 0x18], 0
mov r15, qword [rsp + 0x1d8]
mov qword [r15 + 0x3e0], rbx
mov qword [r15 + 0x3e8], rcx
mov qword [r15 + 0x3d8], rax
mov qword [r15 + 0x3f8], rsi
mov qword [r15 + 0x400], r8
mov qword [r15 + 0x3f0], rdi
mov qword [r15 + 0x410], r10
mov qword [r15 + 0x418], r11
mov qword [r15 + 0x408], r9
mov qword [r15 + 0x428], rdx
mov qword [r15 + 0x430], r13
mov qword [r15 + 0x420], r12
nop dword [rax]
jne 0x552ffb
cmp qword [r15 + 0x3e0], 0
jne 0x552b30
cmp qword [r15 + 0x3f8], 0
jne 0x552b30
cmp qword [r15 + 0x410], 0
jne 0x552b30
test rdx, rdx
jne 0x552b30
mov eax, 1
jmp 0x552b32
xor eax, eax
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
mov r11, qword [rsp + 0x80]
mov ebx, eax
mov rax, r15
jmp 0x5533f7
cmp r12, 0x1f
jg 0x552c20
cmp r12, 0x1e
je 0x552bbc
nop
cmp r12, 0x1f
jne 0x552c3a
mov rdx, qword [rsp + 0x1b0]
mov rsi, qword [rsp + 0x1b8]
mov rdi, qword [rsp + 0x1c0]
mov qword [rsp + 0xd0], rdx
mov qword [rsp + 0xd8], rsi
mov qword [rsp + 0xe0], rdi
lea rax, [rsp + 0xd0]
mov rbx, rax
mov ecx, 0x30
call fcn.00523fa0
test al, al
jne 0x5533fe
jmp 0x553015
mov rdx, qword [rsp + 0x190]
movzx esi, byte [rsp + 0x1a8]
mov r8, qword [rsp + 0x1b0]
mov r9, qword [rsp + 0x1b8]
mov r10, qword [rsp + 0x1c0]
mov rcx, rbx
mov rbx, rdx
call fcn.005513e0
test rbx, rbx
jne 0x553036
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
mov r11, qword [rsp + 0x80]
mov ebx, eax
mov rax, qword [rsp + 0x1d8]
jmp 0x5533f7
cmp r12, 0x20
je 0x552ddb
cmp r12, 0x23
je 0x552cc5
cmp r12, 0x25
je 0x552c45
mov ebx, 1
nop
jmp 0x5533f7
mov rax, qword [rsp + 0x1b0]
mov rbx, qword [rsp + 0x1b8]
mov rcx, qword [rsp + 0x1c0]
nop dword [rax]
call fcn.00550e40
mov rdx, qword [rsp + 0x1d8]
mov qword [rdx + 0x338], rbx
mov qword [rdx + 0x340], rcx
mov qword [rdx + 0x330], rax
mov qword [rdx + 0x350], rsi
mov qword [rdx + 0x358], r8
mov qword [rdx + 0x348], rdi
nop word [rax + rax]
test r9, r9
jne 0x55304c
mov rax, rdx
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
mov r11, qword [rsp + 0x80]
xor ebx, ebx
jmp 0x5533f7
mov rdx, qword [rsp + 0x1b0]
mov rsi, qword [rsp + 0x1b8]
mov rdi, qword [rsp + 0x1c0]
mov qword [rsp + 0xb8], rdx
mov qword [rsp + 0xc0], rsi
mov qword [rsp + 0xc8], rdi
mov qword [rsp + 0x160], 0
movups xmmword [rsp + 0x168], xmm15
lea rax, [rsp + 0xb8]
lea rbx, [rsp + 0x160]
mov ecx, 0x30
nop
call fcn.00523fa0
test al, al
je 0x553083
xor eax, eax
call fcn.00523340
mov rcx, qword [rsp + 0x160]
mov rbx, qword [rsp + 0x168]
mov rdx, qword [rsp + 0x170]
mov edi, eax
mov rax, rcx
mov rcx, rdx
call fcn.00524160
test al, al
jne 0x552d67
mov rax, qword [rsp + 0x1d8]
jmp 0x552dc2
xor eax, eax
call fcn.00523340
lea rbx, [rsp + 0x160]
mov ecx, eax
mov rax, rbx
nop dword [rax + rax]
call fcn.00523fa0
test al, al
je 0x553062
mov rdx, qword [rsp + 0x168]
mov r11, qword [rsp + 0x170]
mov r12, qword [rsp + 0x160]
mov rax, qword [rsp + 0x1d8]
mov qword [rax + 0x398], rdx
mov qword [rax + 0x3a0], r11
mov qword [rax + 0x390], r12
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
mov r11, qword [rsp + 0x80]
xor ebx, ebx
jmp 0x5533f7
mov rax, qword [rsp + 0x1b0]
mov rbx, qword [rsp + 0x1b8]
mov rcx, qword [rsp + 0x1c0]
call fcn.00551100
mov rdx, qword [rsp + 0x1d8]
mov qword [rdx + 0x520], rbx
mov qword [rdx + 0x528], rcx
mov qword [rdx + 0x518], rax
test rdi, rdi
jne 0x5530a4
mov rax, rdx
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
mov r11, qword [rsp + 0x80]
xor ebx, ebx
jmp 0x5533f7
mov rdx, qword [0x007d4f10]
mov rsi, qword [0x007d4f18]
mov r8, qword [0x007d4f20]
mov rax, r12
mov rcx, rdi
mov rdi, rdx
call fcn.00519e80
nop dword [rax]
test al, al
je 0x552ebf
mov byte [rsp + 0x47], al
mov rdx, qword [rsp + 0x1b0]
mov rsi, qword [rsp + 0x1b8]
mov rdi, qword [rsp + 0x1c0]
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0x90], rsi
mov qword [rsp + 0x98], rdi
lea rax, [rsp + 0x88]
mov rbx, rax
mov ecx, 0x30
call fcn.00523fa0
test al, al
jne 0x5530db
jmp 0x5530ba
movzx eax, byte [rsp + 0x47]
xor eax, 1
cmp byte [rsp + 0x1a8], 0
je 0x552f83
test al, al
je 0x552f83
mov rax, qword [rsp + 0x1d8]
mov rcx, qword [rax + 0x320]
lea rsi, [rcx + 1]
mov rbx, qword [rax + 0x318]
mov rdi, qword [rax + 0x328]
mov rdx, qword [rsp + 0x190]
mov r11, qword [rsp + 0x198]
mov r12, qword [rsp + 0x1a0]
cmp rdi, rsi
jae 0x552f64
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x48], r11
mov qword [rsp + 0x70], rdx
lea rax, [0x0060ef80]
call fcn.00448f20
mov rdx, qword [rsp + 0x1d8]
mov qword [rdx + 0x328], rcx
mov qword [rdx + 0x318], rax
mov rdx, qword [rsp + 0x70]
mov r11, qword [rsp + 0x48]
mov r12, qword [rsp + 0x50]
mov rcx, rbx
mov rbx, rax
mov rax, qword [rsp + 0x1d8]
lea r13, [rcx + 1]
mov qword [rax + 0x320], r13
lea r13, [rcx + rcx*2]
mov qword [rbx + r13*8 + 8], r11
mov qword [rbx + r13*8 + 0x10], r12
mov qword [rbx + r13*8], rdx
jmp 0x552f8b
mov rax, qword [rsp + 0x1d8]
mov rdx, qword [rsp + 0x58]
inc rdx
mov r11, qword [rsp + 0x60]
nop dword [rax + rax]
cmp r11, rdx
jg 0x552801
jmp 0x5527ed
mov rax, rbx
mov rbx, rcx
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
lea rax, [0x0065224d]
mov ebx, 0x24
call fcn.00468600
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
mov rax, rcx
mov rbx, rdi
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
mov rax, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
lea rax, [0x00652812]
mov ebx, 0x25
call fcn.00468600
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
mov rax, rbx
mov rbx, rcx
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
mov rax, r9
mov rbx, r10
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
lea rax, [0x00652db4]
mov ebx, 0x26
call fcn.00468600
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
lea rax, [0x00652db4]
mov ebx, 0x26
call fcn.00468600
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
mov rax, rdi
mov rbx, rsi
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
lea rax, [0x00651c20]
mov ebx, 0x23
call fcn.00468600
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
mov rax, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x98]
call fcn.00525a00
nop dword [rax + rax]
test al, al
jne 0x552eba
mov qword [rsp + 0x178], 0
movups xmmword [rsp + 0x180], xmm15
lea rax, [rsp + 0x88]
lea rbx, [rsp + 0x178]
mov ecx, 0x30
call fcn.00523fa0
test al, al
je 0x5533d6
mov qword [rsp + 0x118], 0
movups xmmword [rsp + 0x120], xmm15
lea rax, [rsp + 0x178]
lea rbx, [rsp + 0x118]
call fcn.00523b40
test al, al
je 0x5533b5
mov eax, 6
call fcn.00523340
mov rcx, qword [rsp + 0x178]
mov rbx, qword [rsp + 0x180]
mov rdx, qword [rsp + 0x188]
mov edi, eax
mov rax, rcx
mov rcx, rdx
nop dword [rax + rax]
call fcn.00524160
test al, al
jne 0x5531b6
mov rdx, qword [rsp + 0x1d8]
jmp 0x5530db
mov eax, 6
nop dword [rax + rax]
call fcn.00523340
lea rbx, [rsp + 0x178]
mov ecx, eax
mov rax, rbx
call fcn.00523fa0
test al, al
je 0x55338f
mov rdi, qword [0x007d4ef0]
mov rax, qword [rsp + 0x118]
mov rsi, qword [0x007d4ef8]
mov rbx, qword [rsp + 0x120]
mov r8, qword [0x007d4f00]
mov rcx, qword [rsp + 0x128]
call fcn.00519e80
test al, al
je 0x5532b2
mov rbx, qword [rsp + 0x178]
mov rcx, qword [rsp + 0x180]
xor eax, eax
call fcn.0044cd60
mov rdx, qword [rsp + 0x1d8]
mov rcx, qword [rdx + 0x3b0]
mov rdi, qword [rdx + 0x3b8]
lea rsi, [rcx + 1]
mov r8, qword [rdx + 0x3a8]
cmp rdi, rsi
jae 0x553295
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x78], rax
lea rax, [0x005fe120]
mov rbx, r8
call fcn.00448f20
mov rdx, qword [rsp + 0x1d8]
mov qword [rdx + 0x3b8], rcx
mov qword [rdx + 0x3a8], rax
mov rcx, rbx
mov r8, rax
mov rax, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x50]
lea rsi, [rcx + 1]
mov qword [rdx + 0x3b0], rsi
shl rcx, 4
mov qword [r8 + rcx + 8], rbx
mov qword [r8 + rcx], rax
jmp 0x5530db
mov rdi, qword [0x007d4ed0]
mov rax, qword [rsp + 0x118]
mov rbx, qword [rsp + 0x120]
mov rsi, qword [0x007d4ed8]
mov rcx, qword [rsp + 0x128]
mov r8, qword [0x007d4ee0]
nop
call fcn.00519e80
test al, al
jne 0x5532f6
mov rdx, qword [rsp + 0x1d8]
jmp 0x5530db
mov rbx, qword [rsp + 0x178]
mov rcx, qword [rsp + 0x180]
xor eax, eax
call fcn.0044cd60
mov rdx, qword [rsp + 0x1d8]
mov rcx, qword [rdx + 0x3c8]
mov rdi, qword [rdx + 0x3d0]
lea rsi, [rcx + 1]
mov r8, qword [rdx + 0x3c0]
cmp rdi, rsi
jae 0x553372
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x78], rax
lea rax, [0x005fe120]
mov rbx, r8
call fcn.00448f20
mov rdx, qword [rsp + 0x1d8]
mov qword [rdx + 0x3d0], rcx
mov qword [rdx + 0x3c0], rax
mov rcx, rbx
mov r8, rax
mov rax, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x50]
lea rsi, [rcx + 1]
mov qword [rdx + 0x3c8], rsi
shl rcx, 4
mov qword [r8 + rcx + 8], rbx
mov qword [r8 + rcx], rax
jmp 0x5530db
lea rax, [0x00651c20]
mov ebx, 0x23
nop dword [rax + rax]
call fcn.00468600
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
lea rax, [0x00651c20]
mov ebx, 0x23
call fcn.00468600
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
lea rax, [0x00651c20]
mov ebx, 0x23
call fcn.00468600
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
mov eax, ebx
jmp 0x552ec2
mov rax, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0xe0]
call fcn.00525a00
nop dword [rax + rax]
test al, al
jne 0x553543
mov qword [rsp + 0x148], 0
movups xmmword [rsp + 0x150], xmm15
lea rax, [rsp + 0xd0]
lea rbx, [rsp + 0x148]
mov ecx, 0x30
call fcn.00523fa0
test al, al
je 0x553522
mov qword [rsp + 0x130], 0
movups xmmword [rsp + 0x138], xmm15
mov byte [rsp + 0x46], 0
xor eax, eax
nop dword [rax + rax]
call fcn.00523320
call fcn.00523340
lea rbx, [rsp + 0x130]
lea rcx, [rsp + 0x46]
mov edi, eax
lea rax, [rsp + 0x148]
call fcn.00524180
test al, al
je 0x553501
cmp byte [rsp + 0x46], 0
je 0x5533fe
xor eax, eax
call fcn.00523320
nop dword [rax]
call fcn.00523340
lea rbx, [rsp + 0x130]
mov ecx, eax
mov rax, rbx
call fcn.00523fa0
test al, al
jne 0x55357d
lea rax, [0x00652229]
mov ebx, 0x24
call fcn.00468600
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
nop
ret
lea rax, [0x00652229]
mov ebx, 0x24
call fcn.00468600
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
lea rax, [0x00652229]
mov ebx, 0x24
call fcn.00468600
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
mov rax, qword [rsp + 0x1d8]
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
mov r11, qword [rsp + 0x80]
xor ebx, ebx
nop
jmp 0x5533f7
lea rdi, [rcx + 1]
mov qword [rdx + 0x508], rdi
shl rcx, 4
mov qword [rsi + rcx + 8], rbx
mov qword [rsi + rcx], rax
mov rax, qword [rsp + 0x130]
mov rbx, qword [rsp + 0x138]
mov rcx, qword [rsp + 0x140]
call fcn.00525a00
nop word [rax + rax]
test al, al
jne 0x5533fe
mov eax, 6
call fcn.00523340
mov rcx, qword [rsp + 0x130]
mov rbx, qword [rsp + 0x138]
mov rdx, qword [rsp + 0x140]
mov edi, eax
mov rax, rcx
mov rcx, rdx
call fcn.00524160
test al, al
je 0x5533fe
mov qword [rsp + 0xe8], 0
movups xmmword [rsp + 0xf0], xmm15
mov eax, 6
call fcn.00523340
lea rbx, [rsp + 0xe8]
mov ecx, eax
lea rax, [rsp + 0x130]
call fcn.00523fa0
test al, al
je 0x5536a5
mov rbx, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0xf0]
xor eax, eax
call fcn.0044cd60
mov rdx, qword [rsp + 0x1d8]
mov rcx, qword [rdx + 0x508]
mov rsi, qword [rdx + 0x500]
mov rdi, qword [rdx + 0x510]
lea r8, [rcx + 1]
cmp rdi, r8
jae 0x553565
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x78], rax
lea rax, [0x005fe120]
mov rbx, rsi
mov rsi, r8
call fcn.00448f20
mov rdx, qword [rsp + 0x1d8]
mov qword [rdx + 0x510], rcx
mov qword [rdx + 0x500], rax
mov rcx, rbx
mov rsi, rax
mov rax, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x50]
jmp 0x553565
lea rax, [0x00652229]
mov ebx, 0x24
call fcn.00468600
mov rbp, qword [rsp + 0x1c8]
add rsp, 0x1d0
ret
mov qword [rsp + 8], rax
call fcn.0045f280
mov rax, qword [rsp + 8]
jmp fcn.005527a0