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

Disassembly:
lea r12, [rsp - 0x18]
cmp r12, qword [r14 + 0x10]
jbe 0x587d13
push rbp
mov rbp, rsp
sub rsp, 0x90
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xb0], rcx
xor edx, edx
xor esi, esi
xor edi, edi
jmp 0x5874a0
mov rdx, r8
nop dword [rax]
cmp rbx, rdx
jle 0x58784f
jbe 0x587d07
mov qword [rsp + 0x58], rdx
mov byte [rsp + 0x45], dil
mov qword [rsp + 0x48], rsi
movzx r8d, byte [rax + rdx]
lea r9, [rax + rdx]
mov qword [rsp + 0x68], r9
cmp r8b, 0x25
jne 0x587715
lea r8, [rdx + 2]
nop word [rax + rax]
cmp rbx, r8
jle 0x5877e1
lea r10, [rdx + 1]
cmp rbx, r10
jbe 0x587cfc
movzx r10d, byte [rax + rdx + 1]
lea r11d, [r10 - 0x30]
cmp r11b, 9
ja 0x58750b
cmp rbx, r8
jmp 0x58752d
lea r12d, [r10 - 0x61]
cmp r12b, 5
ja 0x58751a
cmp rbx, r8
jmp 0x58752d
lea r12d, [r10 - 0x41]
nop
cmp r12b, 5
ja 0x5877e1
cmp rbx, r8
jbe 0x587cf1
movzx r8d, byte [rax + rdx + 2]
lea r12d, [r8 - 0x30]
nop dword [rax]
cmp r12b, 9
jbe 0x587560
lea r13d, [r8 - 0x61]
cmp r13b, 5
jbe 0x587560
lea r13d, [r8 - 0x41]
cmp r13b, 5
ja 0x5877e1
nop
cmp rcx, 3
jne 0x5875f7
cmp r11b, 9
ja 0x587575
mov r13d, r11d
jmp 0x5875ad
lea r13d, [r10 - 0x61]
cmp r13b, 5
ja 0x58758e
lea r13d, [r10 - 0x57]
mov r15d, r13d
mov r13d, r11d
mov r11d, r15d
jmp 0x5875ad
lea r13d, [r10 - 0x41]
cmp r13b, 5
ja 0x5875a7
lea r13d, [r10 - 0x37]
mov r15d, r13d
mov r13d, r11d
mov r11d, r15d
jmp 0x5875ad
mov r13d, r11d
xor r11d, r11d
cmp r11b, 8
jae 0x587600
lea r11, [rdx + 3]
nop word [rax + rax]
cmp rbx, r11
jb 0x587ce6
cmp rdx, r11
ja 0x587cdb
movzx r11d, word [rax + rdx]
nop word [rax + rax]
cmp r11w, 0x3225
jne 0x587794
cmp r8b, 0x35
je 0x587600
jmp 0x587794
mov r13d, r11d
nop word [rax + rax]
cmp rcx, 4
jne 0x587709
cmp r13b, 9
ja 0x587616
cmp r12b, 9
jmp 0x587654
lea r11d, [r10 - 0x61]
nop word [rax + rax]
cmp r11b, 5
ja 0x587633
lea r11d, [r10 - 0x57]
cmp r12b, 9
mov r13d, r11d
jmp 0x587654
lea r11d, [r10 - 0x41]
cmp r11b, 5
ja 0x58764a
lea r11d, [r10 - 0x37]
cmp r12b, 9
mov r13d, r11d
jmp 0x587654
cmp r12b, 9
mov r13d, 0
jbe 0x58767f
lea r10d, [r8 - 0x61]
nop word [rax + rax]
cmp r10b, 5
ja 0x58766c
lea r12d, [r8 - 0x57]
jmp 0x58767f
lea r10d, [r8 - 0x41]
cmp r10b, 5
ja 0x58767c
lea r12d, [r8 - 0x37]
jmp 0x58767f
xor r12d, r12d
shl r13d, 4
lea r10, [rdx + 3]
or r12d, r13d
cmp rbx, r10
jb 0x587cd0
cmp rdx, r10
ja 0x587cc5
movzx r10d, word [rax + rdx]
cmp r10w, 0x3225
jne 0x5876af
cmp r8b, 0x35
je 0x5876f8
cmp r12b, 0x20
jne 0x5876ba
xor r8d, r8d
jmp 0x587700
mov eax, r12d
mov ebx, 3
call fcn.00587300
mov rcx, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0x58]
mov rbx, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0x48]
movzx edi, byte [rsp + 0x45]
mov r9, qword [rsp + 0x68]
mov r8d, eax
mov rax, qword [rsp + 0xa0]
jmp 0x587700
xor r8d, r8d
nop dword [rax + rax]
test r8b, r8b
jne 0x5877bc
inc rsi
lea r8, [rdx + 3]
jmp 0x58749a
cmp r8b, 0x2b
jne 0x58772c
lea r8, [rdx + 1]
cmp rcx, 6
sete dil
jmp 0x58749a
cmp rcx, 3
je 0x587738
cmp rcx, 4
jne 0x58777f
cmp r8b, 0x80
jb 0x587743
xor r8d, r8d
jmp 0x587782
mov eax, r8d
mov rbx, rcx
call fcn.00587300
mov rcx, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0x58]
mov rbx, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0x48]
movzx edi, byte [rsp + 0x45]
mov r9, qword [rsp + 0x68]
mov r8d, eax
mov rax, qword [rsp + 0xa0]
jmp 0x587782
xor r8d, r8d
test r8b, r8b
jne 0x58781e
lea r8, [rdx + 1]
jmp 0x58749a
mov rax, r9
mov ebx, 3
nop dword [rax]
call fcn.0040ae40
xor ebx, ebx
lea rcx, [0x00729040]
mov rdi, rax
xor eax, eax
add rsp, 0x90
pop rbp
ret
mov rax, r9
mov ebx, 3
call fcn.0040ae40
xor ebx, ebx
lea rcx, [0x00729040]
mov rdi, rax
xor eax, eax
add rsp, 0x90
pop rbp
nop
ret
sub rbx, rdx
mov rcx, rbx
neg rbx
sar rbx, 0x3f
and rdx, rbx
add rax, rdx
cmp rcx, 3
jle 0x5877ff
mov ecx, 3
mov rbx, rcx
call fcn.0040ae40
xor ebx, ebx
lea rcx, [0x00729040]
mov rdi, rax
xor eax, eax
add rsp, 0x90
pop rbp
ret
lea rcx, [rdx + 1]
cmp rdx, rcx
ja 0x587cbc
mov rax, r9
mov ebx, 1
call fcn.0040ae40
xor ebx, ebx
lea rcx, [0x00729060]
mov rdi, rax
xor eax, eax
add rsp, 0x90
pop rbp
ret
test rsi, rsi
jne 0x587866
test dil, dil
jne 0x587866
xor ecx, ecx
xor edi, edi
add rsp, 0x90
pop rbp
ret
movups xmmword [rsp + 0x70], xmm15
movups xmmword [rsp + 0x80], xmm15
shl rsi, 1
mov rcx, rbx
sub rcx, rsi
lea rax, [rsp + 0x70]
mov rbx, rcx
call fcn.004840a0
mov rbx, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0xb0]
xor eax, eax
jmp 0x5878ab
lea rax, [r8 + 1]
cmp rbx, rax
jle 0x587c1b
jbe 0x587cb4
movzx r8d, byte [rcx + rax]
nop
cmp r8b, 0x25
jne 0x587a05
lea r8, [rax + 1]
cmp rbx, r8
jbe 0x587ca9
movzx r8d, byte [rcx + rax + 1]
lea r9d, [r8 - 0x30]
cmp r9b, 9
jbe 0x58790f
lea r9d, [r8 - 0x61]
cmp r9b, 5
ja 0x5878f7
lea r9d, [r8 - 0x57]
jmp 0x58790f
lea r9d, [r8 - 0x41]
nop dword [rax + rax]
cmp r9b, 5
ja 0x58790c
lea r9d, [r8 - 0x37]
jmp 0x58790f
xor r9d, r9d
lea r8, [rax + 2]
cmp rbx, r8
jbe 0x587c9e
movzx r10d, byte [rcx + rax + 2]
lea r11d, [r10 - 0x30]
cmp r11b, 9
jbe 0x58794f
lea r11d, [r10 - 0x61]
cmp r11b, 5
ja 0x58793c
lea r11d, [r10 - 0x57]
jmp 0x58794f
lea r11d, [r10 - 0x41]
cmp r11b, 5
ja 0x58794c
lea r11d, [r10 - 0x37]
jmp 0x58794f
xor r11d, r11d
shl r9d, 4
mov r10, qword [rsp + 0x70]
or r11d, r9d
nop
nop dword [rax]
test r10, r10
je 0x587974
lea r9, [rsp + 0x70]
cmp r10, r9
je 0x58797e
jmp 0x587c8b
lea r9, [rsp + 0x70]
mov qword [rsp + 0x70], r9
mov r9, qword [rsp + 0x88]
mov r10, qword [rsp + 0x80]
inc r10
mov rax, qword [rsp + 0x78]
cmp r9, r10
jae 0x5879ef
mov qword [rsp + 0x60], r8
mov byte [rsp + 0x46], r11b
mov rbx, r10
mov rcx, r9
mov edi, 1
lea rsi, [0x0065bae0]
call fcn.0044b880
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x78], rax
mov rcx, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0xb0]
mov r8, qword [rsp + 0x60]
movzx r11d, byte [rsp + 0x46]
mov r10, rbx
mov rbx, qword [rsp + 0xa8]
mov qword [rsp + 0x80], r10
mov byte [r10 + rax - 1], r11b
nop dword [rax]
jmp 0x5878a7
mov qword [rsp + 0x50], rax
cmp r8b, 0x2b
jne 0x587b6c
cmp rdx, 6
jne 0x587ac5
mov r8, qword [rsp + 0x70]
nop
nop
test r8, r8
je 0x587a39
lea r9, [rsp + 0x70]
cmp r8, r9
je 0x587a43
jmp 0x587c78
lea r8, [rsp + 0x70]
mov qword [rsp + 0x70], r8
mov r8, qword [rsp + 0x88]
mov r9, qword [rsp + 0x80]
inc r9
mov r10, qword [rsp + 0x78]
nop dword [rax + rax]
cmp r8, r9
jae 0x587aaf
mov rax, r10
mov rbx, r9
mov rcx, r8
mov edi, 1
lea rsi, [0x0065bae0]
call fcn.0044b880
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x78], rax
mov rcx, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0xb0]
mov r9, rbx
mov r10, rax
mov rax, qword [rsp + 0x50]
mov rbx, qword [rsp + 0xa8]
mov qword [rsp + 0x80], r9
mov byte [r9 + r10 - 1], 0x20
nop dword [rax]
jmp 0x587b64
mov r8, qword [rsp + 0x70]
nop
nop
test r8, r8
je 0x587ae5
lea r9, [rsp + 0x70]
cmp r8, r9
je 0x587aef
nop dword [rax + rax]
jmp 0x587c65
lea r8, [rsp + 0x70]
mov qword [rsp + 0x70], r8
mov r8, qword [rsp + 0x88]
mov r9, qword [rsp + 0x80]
inc r9
mov r10, qword [rsp + 0x78]
cmp r8, r9
jae 0x587b56
mov rax, r10
mov rbx, r9
mov rcx, r8
mov edi, 1
lea rsi, [0x0065bae0]
call fcn.0044b880
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x78], rax
mov rcx, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0xb0]
mov r9, rbx
mov r10, rax
mov rax, qword [rsp + 0x50]
mov rbx, qword [rsp + 0xa8]
mov qword [rsp + 0x80], r9
mov byte [r9 + r10 - 1], 0x2b
mov r8, rax
jmp 0x5878a7
mov r9, qword [rsp + 0x70]
nop
test r9, r9
je 0x587b8a
lea r10, [rsp + 0x70]
nop dword [rax]
cmp r9, r10
je 0x587b94
jmp 0x587c50
lea r9, [rsp + 0x70]
mov qword [rsp + 0x70], r9
mov r9, qword [rsp + 0x88]
mov r10, qword [rsp + 0x80]
inc r10
mov r11, qword [rsp + 0x78]
cmp r9, r10
jae 0x587c06
mov byte [rsp + 0x47], r8b
mov rax, r11
mov rbx, r10
mov rcx, r9
mov edi, 1
lea rsi, [0x0065bae0]
call fcn.0044b880
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x78], rax
mov rcx, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0xb0]
movzx r8d, byte [rsp + 0x47]
mov r10, rbx
mov r11, rax
mov rax, qword [rsp + 0x50]
mov rbx, qword [rsp + 0xa8]
mov qword [rsp + 0x80], r10
mov byte [r10 + r11 - 1], r8b
mov r8, rax
jmp 0x5878a7
mov rax, qword [rsp + 0x78]
mov rdx, rax
neg rdx
mov rbx, qword [rsp + 0x80]
cmp rbx, rdx
ja 0x587c41
xor ecx, ecx
xor edi, edi
add rsp, 0x90
pop rbp
nop
ret
test rax, rax
je 0x587c4b
call fcn.0045d440
call fcn.0045d480
lea rax, [0x0065b7a0]
lea rbx, [0x007274e0]
nop
call fcn.00436ac0
lea rax, [0x0065b7a0]
lea rbx, [0x007274e0]
call fcn.00436ac0
lea rax, [0x0065b7a0]
lea rbx, [0x007274e0]
call fcn.00436ac0
lea rax, [0x0065b7a0]
lea rbx, [0x007274e0]
call fcn.00436ac0
mov rax, r8
mov rcx, rbx
call fcn.00466960
mov rax, r8
mov rcx, rbx
call fcn.00466960
mov rcx, rbx
call fcn.00466960
mov rax, rdx
nop
call fcn.00466a20
mov rax, rdx
mov rcx, r10
call fcn.00466a20
mov rcx, r10
mov rdx, rbx
call fcn.004669a0
mov rax, rdx
mov rcx, r11
call fcn.00466a20
mov rcx, r11
mov rdx, rbx
call fcn.004669a0
mov rax, r8
mov rcx, rbx
call fcn.00466960
mov rax, r10
mov rcx, rbx
call fcn.00466960
mov rax, rdx
mov rcx, rbx
call fcn.00466960
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
call fcn.004646a0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
jmp fcn.00587460