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

Disassembly:
lea r12, [rsp - 0x68]
cmp r12, qword [r14 + 0x10]
jbe 0x58b42b
push rbp
mov rbp, rsp
sub rsp, 0xe0
mov qword [rsp + 0xf0], rax
mov qword [rsp + 0x100], rcx
test rdi, rdi
jne 0x58ad17
mov rdi, rbx
mov rcx, rax
jmp 0x58ad91
cmp byte [rcx], 0x2f
je 0x58ad91
mov qword [rsp + 0x108], rdi
mov qword [rsp + 0xf0], rax
mov qword [rsp + 0xf8], rbx
mov qword [rsp + 0x100], rcx
lea rcx, [0x006b05a1]
mov edi, 1
call fcn.00486c60
lea rcx, [rax + 1]
mov rdx, qword [rsp + 0xf8]
nop dword [rax]
cmp rdx, rcx
jb 0x58b425
lea rax, [rsp + 0x78]
mov rbx, qword [rsp + 0xf0]
mov rdi, qword [rsp + 0x100]
mov rsi, qword [rsp + 0x108]
call fcn.0044f620
mov rdi, rbx
mov rcx, rax
test rdi, rdi
je 0x58ae38
movups xmmword [rsp + 0xc0], xmm15
movups xmmword [rsp + 0xd0], xmm15
nop
lea rdx, [rsp + 0xc0]
mov qword [rsp + 0xc0], rdx
mov rdx, qword [rsp + 0xd8]
mov rbx, qword [rsp + 0xd0]
inc rbx
mov rax, qword [rsp + 0xc8]
cmp rdx, rbx
jae 0x58ae1b
mov qword [rsp + 0xa8], rcx
mov qword [rsp + 0x58], rdi
mov rcx, rdx
mov edi, 1
lea rsi, [0x0065bae0]
call fcn.0044b880
mov qword [rsp + 0xd8], rcx
mov qword [rsp + 0xc8], rax
mov rcx, qword [rsp + 0xa8]
mov rdi, qword [rsp + 0x58]
mov qword [rsp + 0xd0], rbx
mov byte [rbx + rax - 1], 0x2f
mov eax, 1
mov edx, 1
xor ebx, ebx
xor esi, esi
jmp 0x58ae4d
xor eax, eax
xor ebx, ebx
add rsp, 0xe0
pop rbp
ret
mov r8, rax
mov eax, esi
mov rsi, r8
test al, al
je 0x58b0b7
mov byte [rsp + 0x47], dl
mov rax, rcx
mov rbx, rdi
lea rcx, [0x006b05a1]
mov edi, 1
call fcn.00489980
cmp rbx, 1
jne 0x58ae7f
cmp byte [rax], 0x2e
jne 0x58ae7f
xor edx, edx
jmp 0x58ae45
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
nop
cmp rbx, 2
jne 0x58aef4
cmp word [rax], 0x2e2e
jne 0x58aef4
mov r8, qword [rsp + 0xc8]
mov r9, r8
neg r8
mov rdx, qword [rsp + 0xd0]
cmp rdx, r8
ja 0x58b413
cmp rdx, 1
jb 0x58b407
lea r8, [rdx - 1]
mov r10, r8
neg r8
sar r8, 0x3f
and r8d, 1
add r8, r9
lea r9, [rdx - 2]
jmp 0x58b1ee
movzx edx, byte [rsp + 0x47]
nop dword [rax]
test dl, dl
jne 0x58afb7
mov rdx, qword [rsp + 0xc0]
nop
nop
test rdx, rdx
je 0x58af2a
lea r8, [rsp + 0xc0]
nop
cmp rdx, r8
je 0x58af3a
jmp 0x58b1d8
lea rdx, [rsp + 0xc0]
mov qword [rsp + 0xc0], rdx
mov rdx, qword [rsp + 0xd8]
mov r8, qword [rsp + 0xd0]
inc r8
mov r9, qword [rsp + 0xc8]
cmp rdx, r8
jae 0x58afa9
mov rax, r9
mov rbx, r8
mov rcx, rdx
mov edi, 1
lea rsi, [0x0065bae0]
call fcn.0044b880
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, rbx
mov r9, rax
mov rax, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0x60]
mov qword [rsp + 0xd0], r8
mov byte [r8 + r9 - 1], 0x2f
mov rdx, qword [rsp + 0xc0]
nop
nop
test rdx, rdx
je 0x58afd8
lea r8, [rsp + 0xc0]
cmp rdx, r8
je 0x58afe8
jmp 0x58b1c5
lea rdx, [rsp + 0xc0]
mov qword [rsp + 0xc0], rdx
mov rdx, qword [rsp + 0xd8]
mov r8, qword [rsp + 0xd0]
lea r9, [r8 + rbx]
mov r10, qword [rsp + 0xc8]
cmp rdx, r9
jae 0x58b041
mov qword [rsp + 0x70], r8
mov rax, r10
mov rcx, rdx
mov rdi, rbx
lea rsi, [0x0065bae0]
mov rbx, r9
call fcn.0044b880
mov r8, qword [rsp + 0x70]
mov r10, rax
mov r9, rbx
mov rdx, rcx
mov rax, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0x60]
mov qword [rsp + 0x70], r9
mov qword [rsp + 0xb8], r10
mov qword [rsp + 0x68], rdx
lea rsi, [r10 + r8]
mov rcx, rbx
mov rbx, rax
mov rax, rsi
call fcn.00467360
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 0x58ae45
cmp rbx, 1
jne 0x58b0c2
cmp byte [rsi], 0x2e
je 0x58b0d7
cmp rbx, 2
jne 0x58b156
cmp word [rsi], 0x2e2e
jne 0x58b156
mov rdx, qword [rsp + 0xc0]
nop
nop
test rdx, rdx
je 0x58b0f8
lea r8, [rsp + 0xc0]
cmp rdx, r8
je 0x58b108
jmp 0x58b1af
lea rdx, [rsp + 0xc0]
mov qword [rsp + 0xc0], rdx
mov rcx, qword [rsp + 0xd8]
mov rbx, qword [rsp + 0xd0]
inc rbx
mov rax, qword [rsp + 0xc8]
cmp rcx, rbx
jae 0x58b149
mov edi, 1
lea rsi, [0x0065bae0]
call fcn.0044b880
mov qword [rsp + 0xd8], rcx
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0xd0], rbx
mov byte [rbx + rax - 1], 0x2f
mov rcx, qword [rsp + 0xc8]
mov rdx, rcx
neg rcx
mov rsi, qword [rsp + 0xd0]
nop
cmp rsi, rcx
ja 0x58b1a0
cmp rsi, 1
jle 0x58b18c
cmp byte [rdx + 1], 0x2f
jne 0x58b187
lea rcx, [rdx + 1]
dec rsi
jmp 0x58b18f
mov rcx, rdx
jmp 0x58b18f
mov rcx, rdx
mov rax, rcx
mov rbx, rsi
add rsp, 0xe0
pop rbp
ret
test rdx, rdx
je 0x58b1aa
call fcn.0045d440
call fcn.0045d480
lea rax, [0x0065b7a0]
lea rbx, [0x007274e0]
nop dword [rax]
call fcn.00436ac0
lea rax, [0x0065b7a0]
lea rbx, [0x007274e0]
call fcn.00436ac0
lea rax, [0x0065b7a0]
lea rbx, [0x007274e0]
call fcn.00436ac0
dec r9
test r9, r9
jl 0x58b202
movzx r11d, byte [r8 + r9]
cmp r11b, 0x2f
jne 0x58b1eb
nop
jmp 0x58b209
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 r11, qword [rsp + 0xd8]
mov r12, qword [rsp + 0xd0]
inc r12
mov r13, qword [rsp + 0xc8]
cmp r11, r12
jae 0x58b2c1
mov qword [rsp + 0x70], r10
mov rax, r13
mov rbx, r12
mov rcx, r11
mov edi, 1
lea rsi, [0x0065bae0]
call fcn.0044b880
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]
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 0x58b2e0
mov edx, 1
jmp 0x58b3e2
cmp r9, r10
ja 0x58b3fc
mov rdx, qword [rsp + 0xc0]
nop
test rdx, rdx
je 0x58b30a
lea r10, [rsp + 0xc0]
nop
cmp rdx, r10
je 0x58b31a
jmp 0x58b3e9
lea rdx, [rsp + 0xc0]
mov qword [rsp + 0xc0], rdx
mov rdx, qword [rsp + 0xd8]
mov r10, qword [rsp + 0xd0]
lea r11, [r9 + r10]
mov r12, qword [rsp + 0xc8]
cmp rdx, r11
jae 0x58b373
mov qword [rsp + 0x70], r10
mov rax, r12
mov rbx, r11
mov rcx, rdx
mov rdi, r9
lea rsi, [0x0065bae0]
call fcn.0044b880
mov r8, qword [rsp + 0x98]
mov r9, qword [rsp + 0x48]
mov r10, qword [rsp + 0x70]
mov r12, rax
mov rdx, rcx
mov r11, rbx
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0x68], r11
mov qword [rsp + 0xb8], r12
lea rax, [r12 + r10]
mov rbx, r8
mov rcx, r9
call fcn.00467360
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]
movzx edx, byte [rsp + 0x47]
mov eax, edx
jmp 0x58b091
lea rax, [0x0065b7a0]
lea rbx, [0x007274e0]
call fcn.00436ac0
mov rcx, r9
mov rdx, r10
call fcn.004669a0
mov eax, 1
xor ecx, ecx
call fcn.00466a20
test r9, r9
je 0x58b420
call fcn.0045d440
nop dword [rax]
call fcn.0045d480
call fcn.004669a0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
nop
call fcn.004646a0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
jmp fcn.0058ace0