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

Disassembly:
lea r12, [rsp - 0x68]
cmp r12, qword [r14 + 0x10]
jbe 0x59610b
push rbp
mov rbp, rsp
sub rsp, 0xe0
mov qword [rsp + 0xf0], rax
mov qword [rsp + 0x100], rcx
test rdi, rdi
jne 0x595997
mov rdi, rbx
mov rcx, rax
jmp 0x595a11
cmp byte [rcx], 0x2f
je 0x595a11
mov qword [rsp + 0xf8], rbx
mov qword [rsp + 0xf0], rax
mov qword [rsp + 0x108], rdi
mov qword [rsp + 0x100], rcx
lea rcx, [0x006c49dc]
mov edi, 1
call fcn.00474bc0
lea rcx, [rax + 1]
mov rdx, qword [rsp + 0xf8]
nop dword [rax]
cmp rdx, rcx
jb 0x596105
lea rax, [rsp + 0x48]
mov rbx, qword [rsp + 0xf0]
mov rdi, qword [rsp + 0x100]
mov rsi, qword [rsp + 0x108]
call fcn.0044abe0
mov rdi, rbx
mov rcx, rax
test rdi, rdi
je 0x595ab8
movups xmmword [rsp + 0xa8], xmm15
movups xmmword [rsp + 0xb8], xmm15
nop
lea rdx, [rsp + 0xa8]
mov qword [rsp + 0xa8], rdx
mov rdx, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0xb8]
inc rbx
mov rax, qword [rsp + 0xb0]
cmp rdx, rbx
jae 0x595a9b
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0xa0], rcx
mov rcx, rdx
mov edi, 1
lea rsi, [0x0066d1c0]
call fcn.00447aa0
mov qword [rsp + 0xc0], rcx
mov qword [rsp + 0xb0], rax
mov rcx, qword [rsp + 0xa0]
mov rdi, qword [rsp + 0x78]
mov qword [rsp + 0xb8], rbx
mov byte [rbx + rax - 1], 0x2f
mov eax, 1
mov edx, 1
xor ebx, ebx
xor esi, esi
jmp 0x595acd
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 0x595d52
mov byte [rsp + 0x46], dl
mov rax, rcx
mov rbx, rdi
lea rcx, [0x006c49dc]
mov edi, 1
call fcn.00477840
cmp rbx, 1
jne 0x595aff
cmp byte [rax], 0x2e
jne 0x595aff
xor edx, edx
jmp 0x595ac5
mov byte [rsp + 0x47], sil
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0xc8], rax
cmp rbx, 2
jne 0x595b76
cmp word [rax], 0x2e2e
jne 0x595b76
mov r8, qword [rsp + 0xb0]
mov r9, r8
neg r8
mov rdx, qword [rsp + 0xb8]
cmp rdx, r8
ja 0x5960f1
cmp rdx, 1
jb 0x5960e5
lea r8, [rdx - 1]
mov r10, r8
neg r8
sar r8, 0x3f
and r8d, 1
add r8, r9
nop
lea r9, [rdx - 2]
jmp 0x595e8e
movzx edx, byte [rsp + 0x46]
nop dword [rax + rax]
test dl, dl
jne 0x595c3a
mov rdx, qword [rsp + 0xa8]
nop
nop
test rdx, rdx
je 0x595baa
lea r8, [rsp + 0xa8]
nop
cmp rdx, r8
je 0x595bba
jmp 0x595e78
lea rdx, [rsp + 0xa8]
mov qword [rsp + 0xa8], rdx
mov rdx, qword [rsp + 0xc0]
mov r8, qword [rsp + 0xb8]
inc r8
mov r9, qword [rsp + 0xb0]
cmp rdx, r8
jae 0x595c2c
mov rax, r9
mov rbx, r8
mov rcx, rdx
mov edi, 1
lea rsi, [0x0066d1c0]
call fcn.00447aa0
mov qword [rsp + 0xc0], rcx
mov qword [rsp + 0xb0], rax
mov rcx, qword [rsp + 0x98]
movzx esi, byte [rsp + 0x47]
mov rdi, qword [rsp + 0x70]
mov r8, rbx
mov r9, rax
mov rax, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0x80]
mov qword [rsp + 0xb8], r8
mov byte [r8 + r9 - 1], 0x2f
mov rdx, qword [rsp + 0xa8]
nop
nop
test rdx, rdx
je 0x595c5b
lea r8, [rsp + 0xa8]
cmp rdx, r8
je 0x595c6b
jmp 0x595e65
lea rdx, [rsp + 0xa8]
mov qword [rsp + 0xa8], rdx
mov rdx, qword [rsp + 0xc0]
mov r8, qword [rsp + 0xb8]
lea r9, [r8 + rbx]
mov r10, qword [rsp + 0xb0]
cmp rdx, r9
jae 0x595ccd
mov qword [rsp + 0x90], r8
mov rax, r10
mov rcx, rdx
mov rdi, rbx
lea rsi, [0x0066d1c0]
mov rbx, r9
call fcn.00447aa0
mov r8, qword [rsp + 0x90]
mov r10, rax
mov r9, rbx
mov rdx, rcx
mov rax, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0x80]
mov qword [rsp + 0xd8], r10
mov qword [rsp + 0x90], r9
mov qword [rsp + 0x88], rdx
lea rsi, [r10 + r8]
mov rcx, rbx
mov rbx, rax
mov rax, rsi
call fcn.00460ba0
mov rdx, qword [rsp + 0x90]
mov qword [rsp + 0xb8], rdx
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0xc0], rdx
mov rdx, qword [rsp + 0xd8]
mov qword [rsp + 0xb0], rdx
xor eax, eax
mov rcx, qword [rsp + 0x98]
mov rbx, qword [rsp + 0x80]
movzx esi, byte [rsp + 0x47]
mov rdi, qword [rsp + 0x70]
mov edx, eax
mov rax, qword [rsp + 0xc8]
jmp 0x595ac5
cmp rbx, 1
jne 0x595d60
cmp byte [rsi], 0x2e
je 0x595d75
nop dword [rax]
cmp rbx, 2
jne 0x595df5
cmp word [rsi], 0x2e2e
jne 0x595df5
mov rdx, qword [rsp + 0xa8]
nop
nop
nop
test rdx, rdx
je 0x595d97
lea r8, [rsp + 0xa8]
cmp rdx, r8
je 0x595da7
jmp 0x595e4f
lea rdx, [rsp + 0xa8]
mov qword [rsp + 0xa8], rdx
mov rcx, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0xb8]
inc rbx
mov rax, qword [rsp + 0xb0]
cmp rcx, rbx
jae 0x595de8
mov edi, 1
lea rsi, [0x0066d1c0]
call fcn.00447aa0
mov qword [rsp + 0xc0], rcx
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], rbx
mov byte [rbx + rax - 1], 0x2f
mov rcx, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xb0]
mov rsi, rdx
neg rdx
nop
cmp rcx, rdx
ja 0x595e40
cmp rcx, 1
jle 0x595e2b
cmp byte [rsi + 1], 0x2f
jne 0x595e26
lea rdx, [rsi + 1]
dec rcx
jmp 0x595e2e
mov rdx, rsi
jmp 0x595e2e
mov rdx, rsi
mov rax, rdx
mov rbx, rcx
add rsp, 0xe0
pop rbp
ret
test rsi, rsi
je 0x595e4a
call fcn.00456d40
call fcn.00456d80
lea rax, [0x0066d140]
lea rbx, [0x007401e0]
nop dword [rax]
call fcn.004337c0
lea rax, [0x0066d140]
lea rbx, [0x007401e0]
call fcn.004337c0
lea rax, [0x0066d140]
lea rbx, [0x007401e0]
call fcn.004337c0
dec r9
test r9, r9
jl 0x595ea2
movzx r11d, byte [r8 + r9]
cmp r11b, 0x2f
jne 0x595e8b
nop
jmp 0x595ea9
mov r9, 0xffffffffffffffff
mov qword [rsp + 0xd0], r8
mov qword [rsp + 0x68], r9
nop
mov qword [rsp + 0xa8], 0
movups xmmword [rsp + 0xb8], xmm15
mov qword [rsp + 0xb0], 0
nop
nop
lea r11, [rsp + 0xa8]
mov qword [rsp + 0xa8], r11
mov r11, qword [rsp + 0xc0]
mov r12, qword [rsp + 0xb8]
inc r12
mov r13, qword [rsp + 0xb0]
cmp r11, r12
jae 0x595f79
mov qword [rsp + 0x90], r10
mov rax, r13
mov rbx, r12
mov rcx, r11
mov edi, 1
lea rsi, [0x0066d1c0]
call fcn.00447aa0
mov qword [rsp + 0xc0], rcx
mov qword [rsp + 0xb0], rax
mov rcx, qword [rsp + 0x98]
movzx esi, byte [rsp + 0x47]
mov rdi, qword [rsp + 0x70]
mov r8, qword [rsp + 0xd0]
mov r9, qword [rsp + 0x68]
mov r10, qword [rsp + 0x90]
mov r12, rbx
mov r13, rax
mov rax, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0x80]
mov qword [rsp + 0xb8], r12
mov byte [r12 + r13 - 1], 0x2f
cmp r9, 0xffffffffffffffff
jne 0x595fa0
mov edx, 1
jmp 0x5960bc
cmp r9, r10
ja 0x5960d8
mov rdx, qword [rsp + 0xa8]
nop
test rdx, rdx
je 0x595fca
lea r10, [rsp + 0xa8]
nop
cmp rdx, r10
je 0x595fda
jmp 0x5960c5
lea rdx, [rsp + 0xa8]
mov qword [rsp + 0xa8], rdx
mov rdx, qword [rsp + 0xc0]
mov r10, qword [rsp + 0xb8]
lea r11, [r9 + r10]
mov r12, qword [rsp + 0xb0]
cmp rdx, r11
jae 0x596039
mov qword [rsp + 0x90], r10
mov rax, r12
mov rbx, r11
mov rcx, rdx
mov rdi, r9
lea rsi, [0x0066d1c0]
call fcn.00447aa0
mov r8, qword [rsp + 0xd0]
mov r9, qword [rsp + 0x68]
mov r10, qword [rsp + 0x90]
mov r12, rax
mov r11, rbx
mov rdx, rcx
mov qword [rsp + 0x90], r11
mov qword [rsp + 0xd8], r12
mov qword [rsp + 0x88], rdx
lea rax, [r12 + r10]
mov rbx, r8
mov rcx, r9
nop dword [rax + rax]
call fcn.00460ba0
mov rdx, qword [rsp + 0x90]
mov qword [rsp + 0xb8], rdx
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0xc0], rdx
mov rdx, qword [rsp + 0xd8]
mov qword [rsp + 0xb0], rdx
mov rax, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0x98]
mov rbx, qword [rsp + 0x80]
movzx esi, byte [rsp + 0x47]
mov rdi, qword [rsp + 0x70]
movzx edx, byte [rsp + 0x46]
mov eax, edx
nop
jmp 0x595d29
lea rax, [0x0066d140]
lea rbx, [0x007401e0]
call fcn.004337c0
mov rcx, r9
mov rdx, r10
nop
call fcn.00460220
mov eax, 1
xor ecx, ecx
call fcn.004602a0
test r9, r9
je 0x596100
call fcn.00456d40
nop dword [rax + rax]
call fcn.00456d80
call fcn.00460220
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
nop
call fcn.0045df00
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
jmp fcn.00595960