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

Disassembly:
lea r12, [rsp - 0x68]
cmp r12, qword [r14 + 0x10]
jbe 0x58124b
sub rsp, 0xe8
mov qword [rsp + 0xe0], rbp
lea rbp, [rsp + 0xe0]
mov qword [rsp + 0xf0], rax
mov qword [rsp + 0x100], rcx
test rdi, rdi
jne 0x580b23
mov rdi, rbx
mov rcx, rax
jmp 0x580b96
cmp byte [rcx], 0x2f
je 0x580b96
mov qword [rsp + 0x108], rdi
mov qword [rsp + 0xf0], rax
mov qword [rsp + 0xf8], rbx
mov qword [rsp + 0x100], rcx
lea rcx, [0x007197db]
mov edi, 1
call fcn.0050c920
lea rcx, [rax + 1]
mov rdx, qword [rsp + 0xf8]
cmp rdx, rcx
jb 0x581245
lea rax, [rsp + 0x78]
mov rbx, qword [rsp + 0xf0]
mov rdi, qword [rsp + 0x100]
mov rsi, qword [rsp + 0x108]
call fcn.0044e860
mov rdi, rbx
mov rcx, rax
test rdi, rdi
je 0x580c49
movups xmmword [rsp + 0xc0], xmm15
movups xmmword [rsp + 0xd0], xmm15
nop
lea rdx, [rsp + 0xc0]
mov qword [rsp + 0xc0], rdx
mov rbx, qword [rsp + 0xd0]
inc rbx
mov rax, qword [rsp + 0xc8]
mov r8, qword [rsp + 0xd8]
nop dword [rax]
cmp r8, rbx
jae 0x580c2b
mov qword [rsp + 0xa8], rcx
mov qword [rsp + 0x58], rdi
mov rcx, r8
mov edi, 1
lea rsi, [0x006bb680]
call fcn.0044aa20
mov qword [rsp + 0xd8], rcx
mov qword [rsp + 0xc8], rax
mov rcx, qword [rsp + 0xa8]
lea rdx, [rsp + 0xc0]
mov rdi, qword [rsp + 0x58]
mov qword [rsp + 0xd0], rbx
mov byte [rbx + rax - 1], 0x2f
mov eax, 1
mov ebx, 1
xor esi, esi
xor r8d, r8d
jmp 0x580c6f
xor eax, eax
xor ebx, ebx
mov rbp, qword [rsp + 0xe0]
add rsp, 0xe8
ret
mov r8, rax
mov eax, esi
mov rsi, rbx
mov ebx, edx
lea rdx, [rsp + 0xc0]
test al, al
je 0x580ee0
mov byte [rsp + 0x47], bl
mov rax, rcx
mov rbx, rdi
lea rcx, [0x007197db]
mov edi, 1
call fcn.0050fbc0
cmp rbx, 1
jne 0x580ca2
cmp byte [rax], 0x2e
jne 0x580ca2
xor edx, edx
nop
jmp 0x580c5d
mov byte [rsp + 0x46], sil
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xa0], rcx
mov qword [rsp + 0x50], rdi
cmp rbx, 2
jne 0x580d15
cmp word [rax], 0x2e2e
jne 0x580d15
mov r8, qword [rsp + 0xc8]
mov r9, r8
neg r8
mov rdx, qword [rsp + 0xd0]
cmp rdx, r8
ja 0x581231
cmp rdx, 1
jb 0x581225
lea r8, [rdx - 1]
mov r10, r8
neg r8
sar r8, 0x3f
and r8d, 1
add r8, r9
lea r9, [rdx - 2]
jmp 0x581008
movzx edx, byte [rsp + 0x47]
test dl, dl
je 0x580d2b
lea r8, [rsp + 0xc0]
jmp 0x580dea
nop
nop
mov rdx, qword [rsp + 0xc0]
test rdx, rdx
je 0x580d4c
lea r8, [rsp + 0xc0]
cmp rdx, r8
je 0x580d64
jmp 0x580ff0
lea rdx, [rsp + 0xc0]
mov qword [rsp + 0xc0], rdx
lea r8, [rsp + 0xc0]
mov rdx, qword [rsp + 0xd0]
inc rdx
mov r9, qword [rsp + 0xc8]
mov r10, qword [rsp + 0xd8]
nop
cmp r10, rdx
jae 0x580ddc
mov rax, r9
mov rbx, rdx
mov rcx, r10
mov edi, 1
lea rsi, [0x006bb680]
call fcn.0044aa20
mov qword [rsp + 0xd8], rcx
mov qword [rsp + 0xc8], rax
mov rcx, qword [rsp + 0xa0]
movzx esi, byte [rsp + 0x46]
mov rdi, qword [rsp + 0x50]
lea r8, [rsp + 0xc0]
mov rdx, rbx
mov r9, rax
mov rax, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0x60]
mov qword [rsp + 0xd0], rdx
mov byte [rdx + r9 - 1], 0x2f
nop
nop
mov rdx, qword [rsp + 0xc0]
test rdx, rdx
je 0x580e05
cmp rdx, r8
je 0x580e0d
nop
jmp 0x580fdd
mov qword [rsp + 0xc0], r8
mov rdx, qword [rsp + 0xd0]
lea r9, [rdx + rbx]
mov r10, qword [rsp + 0xd8]
mov r11, qword [rsp + 0xc8]
cmp r10, r9
jae 0x580e66
mov qword [rsp + 0x70], rdx
mov rax, r11
mov rcx, r10
mov rdi, rbx
lea rsi, [0x006bb680]
mov rbx, r9
call fcn.0044aa20
mov rdx, qword [rsp + 0x70]
mov r11, rax
mov r9, rbx
mov r10, rcx
mov rax, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0x60]
mov qword [rsp + 0x70], r9
mov qword [rsp + 0xb8], r11
mov qword [rsp + 0x68], r10
add rdx, r11
mov rcx, rbx
mov rbx, rax
mov rax, rdx
call fcn.00466860
mov rdx, qword [rsp + 0x70]
mov qword [rsp + 0xd0], rdx
mov rdx, qword [rsp + 0x68]
mov qword [rsp + 0xd8], rdx
mov rdx, qword [rsp + 0xb8]
mov qword [rsp + 0xc8], rdx
xor eax, eax
mov rcx, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0x60]
movzx esi, byte [rsp + 0x46]
mov rdi, qword [rsp + 0x50]
mov edx, eax
mov rax, qword [rsp + 0xb0]
jmp 0x580c5d
cmp rsi, 1
jne 0x580eec
cmp byte [r8], 0x2e
je 0x580efa
cmp rsi, 2
jne 0x580f69
cmp word [r8], 0x2e2e
jne 0x580f69
nop
nop
mov r8, qword [rsp + 0xc0]
test r8, r8
je 0x580f13
cmp r8, rdx
je 0x580f1b
jmp 0x580fca
mov qword [rsp + 0xc0], rdx
mov rbx, qword [rsp + 0xd0]
inc rbx
mov rax, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0xd8]
cmp rcx, rbx
jae 0x580f5c
mov edi, 1
lea rsi, [0x006bb680]
call fcn.0044aa20
mov qword [rsp + 0xd8], rcx
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0xd0], rbx
mov byte [rbx + rax - 1], 0x2f
nop
mov rcx, qword [rsp + 0xc8]
mov rdx, rcx
neg rcx
mov rsi, qword [rsp + 0xd0]
cmp rsi, rcx
ja 0x580fb8
cmp rsi, 1
jle 0x580f9f
cmp byte [rdx + 1], 0x2f
jne 0x580f9a
lea rcx, [rdx + 1]
dec rsi
jmp 0x580fa2
mov rcx, rdx
jmp 0x580fa2
mov rcx, rdx
mov rax, rcx
mov rbx, rsi
mov rbp, qword [rsp + 0xe0]
add rsp, 0xe8
ret
test rdx, rdx
je 0x580fc5
nop dword [rax]
call fcn.0045cf80
call fcn.0045cfc0
lea rax, [0x006bb4c0]
lea rbx, [0x007f0e90]
call fcn.00436580
lea rax, [0x006bb4c0]
lea rbx, [0x007f0e90]
call fcn.00436580
lea rax, [0x006bb4c0]
lea rbx, [0x007f0e90]
nop
call fcn.00436580
dec r9
test r9, r9
jl 0x58101a
movzx r11d, byte [r8 + r9]
cmp r11b, 0x2f
jne 0x581005
jmp 0x581021
mov r9, 0xffffffffffffffff
mov qword [rsp + 0x98], r8
mov qword [rsp + 0x48], r9
nop
movups xmmword [rsp + 0xc0], xmm15
movups xmmword [rsp + 0xd0], xmm15
nop
nop
lea r11, [rsp + 0xc0]
mov qword [rsp + 0xc0], r11
mov r12, qword [rsp + 0xd0]
inc r12
mov r13, qword [rsp + 0xc8]
mov r15, qword [rsp + 0xd8]
cmp r15, r12
jae 0x5810e1
mov qword [rsp + 0x70], r10
mov rax, r13
mov rbx, r12
mov rcx, r15
mov edi, 1
lea rsi, [0x006bb680]
call fcn.0044aa20
mov qword [rsp + 0xd8], rcx
mov qword [rsp + 0xc8], rax
mov rcx, qword [rsp + 0xa0]
movzx esi, byte [rsp + 0x46]
mov rdi, qword [rsp + 0x50]
mov r8, qword [rsp + 0x98]
mov r9, qword [rsp + 0x48]
mov r10, qword [rsp + 0x70]
lea r11, [rsp + 0xc0]
mov r12, rbx
mov r13, rax
mov rax, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0x60]
mov qword [rsp + 0xd0], r12
mov byte [r12 + r13 - 1], 0x2f
cmp r9, 0xffffffffffffffff
jne 0x581100
mov edx, 1
jmp 0x5811fe
cmp r9, r10
ja 0x581218
nop
mov rdx, qword [rsp + 0xc0]
test rdx, rdx
je 0x581125
cmp rdx, r11
je 0x58112d
nop dword [rax]
jmp 0x581205
mov qword [rsp + 0xc0], r11
mov rdx, qword [rsp + 0xd0]
lea r10, [r9 + rdx]
mov r12, qword [rsp + 0xd8]
mov r13, qword [rsp + 0xc8]
cmp r12, r10
jae 0x581186
mov qword [rsp + 0x70], rdx
mov rax, r13
mov rbx, r10
mov rcx, r12
mov rdi, r9
lea rsi, [0x006bb680]
call fcn.0044aa20
mov rdx, qword [rsp + 0x70]
mov r8, qword [rsp + 0x98]
mov r9, qword [rsp + 0x48]
mov r13, rax
mov r12, rcx
mov r10, rbx
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x68], r10
mov qword [rsp + 0xb8], r13
lea rax, [r13 + rdx]
mov rbx, r8
mov rcx, r9
call fcn.00466860
mov rdx, qword [rsp + 0x68]
mov qword [rsp + 0xd0], rdx
mov rdx, qword [rsp + 0x70]
mov qword [rsp + 0xd8], rdx
mov rdx, qword [rsp + 0xb8]
mov qword [rsp + 0xc8], rdx
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0x60]
movzx esi, byte [rsp + 0x46]
mov rdi, qword [rsp + 0x50]
lea r11, [rsp + 0xc0]
movzx edx, byte [rsp + 0x47]
mov eax, edx
jmp 0x580eb5
lea rax, [0x006bb4c0]
lea rbx, [0x007f0e90]
call fcn.00436580
mov rcx, r9
mov rdx, r10
nop
call fcn.00465f00
mov eax, 1
xor ecx, ecx
call fcn.00465f80
test r9, r9
je 0x581240
call fcn.0045cf80
nop dword [rax + rax]
call fcn.0045cfc0
call fcn.00465f00
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
nop
call fcn.00463860
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
jmp fcn.00580ae0