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

Disassembly:
lea r12, [rsp - 0x190]
cmp r12, qword [r14 + 0x10]
jbe 0x5288c6
push rbp
mov rbp, rsp
sub rsp, 0x208
mov qword [rsp + 0x220], rbx
cmp rcx, 1
jne 0x5284e4
cmp byte [rbx], 0
jne 0x5284e4
movups xmmword [rsp + 0x1a0], xmm15
movups xmmword [rsp + 0x1b0], xmm15
movups xmmword [rsp + 0x1c0], xmm15
movups xmmword [rsp + 0x170], xmm15
movups xmmword [rsp + 0x180], xmm15
movups xmmword [rsp + 0x190], xmm15
nop
movabs rdx, 0xffffffff00000001
mov qword [rsp + 0x170], rdx
mov edx, 0xffffffff
mov qword [rsp + 0x178], rdx
mov qword [rsp + 0x180], 1
movups xmmword [rsp + 0x140], xmm15
movups xmmword [rsp + 0x150], xmm15
movups xmmword [rsp + 0x160], xmm15
movups xmmword [rsp + 0x1f0], xmm15
mov qword [rsp + 0x200], 0
lea rdx, [rsp + 0x1a0]
mov qword [rsp + 0x1f0], rdx
lea rsi, [rsp + 0x170]
mov qword [rsp + 0x1f8], rsi
lea rsi, [rsp + 0x140]
mov qword [rsp + 0x200], rsi
mov rsi, qword [rax]
movups xmm0, xmmword [rdx]
movups xmmword [rsi], xmm0
movups xmm0, xmmword [rdx + 0x10]
movups xmmword [rsi + 0x10], xmm0
movups xmm0, xmmword [rdx + 0x20]
movups xmmword [rsi + 0x20], xmm0
mov rdx, qword [rax + 8]
mov rsi, qword [rsp + 0x1f8]
movups xmm0, xmmword [rsi]
movups xmmword [rdx], xmm0
movups xmm0, xmmword [rsi + 0x10]
movups xmmword [rdx + 0x10], xmm0
movups xmm0, xmmword [rsi + 0x20]
movups xmmword [rdx + 0x20], xmm0
mov rdx, qword [rax + 0x10]
mov rsi, qword [rsp + 0x200]
movups xmm0, xmmword [rsi]
movups xmmword [rdx], xmm0
movups xmm0, xmmword [rsi + 0x10]
movups xmmword [rdx + 0x10], xmm0
movups xmm0, xmmword [rsi + 0x20]
movups xmmword [rdx + 0x20], xmm0
xor ebx, ebx
xor ecx, ecx
add rsp, 0x208
pop rbp
ret
mov qword [rsp + 0x218], rax
mov qword [rsp + 0x220], rbx
cmp rcx, 0x61
jne 0x528679
cmp byte [rbx], 4
jne 0x528679
mov qword [rsp + 0x230], rdi
movups xmmword [rsp + 0x110], xmm15
movups xmmword [rsp + 0x120], xmm15
movups xmmword [rsp + 0x130], xmm15
lea rdx, [rdi - 1]
lea rsi, [rbx + 1]
lea rax, [rsp + 0x110]
mov ecx, 0x30
mov rbx, rsi
mov rdi, rdx
call sym.crypto_internal_nistec_fiat._P384Element_.SetBytes
test rbx, rbx
jne 0x52866e
mov qword [rsp + 0x1e0], rax
movups xmmword [rsp + 0xe0], xmm15
movups xmmword [rsp + 0xf0], xmm15
movups xmmword [rsp + 0x100], xmm15
mov rdi, qword [rsp + 0x230]
add rdi, 0xffffffffffffffcf
mov rbx, qword [rsp + 0x220]
add rbx, 0x31
lea rax, [rsp + 0xe0]
mov ecx, 0x30
nop dword [rax + rax]
call sym.crypto_internal_nistec_fiat._P384Element_.SetBytes
test rbx, rbx
jne 0x528663
mov qword [rsp + 0x1d0], rax
mov rbx, rax
mov rax, qword [rsp + 0x1e0]
call sym.crypto_internal_nistec.p384CheckOnCurve
test rax, rax
je 0x5285dc
mov rcx, rbx
mov rbx, rax
xor eax, eax
add rsp, 0x208
pop rbp
ret
mov rax, qword [rsp + 0x218]
mov rdx, qword [rax]
mov rsi, qword [rsp + 0x1e0]
movups xmm0, xmmword [rsi]
movups xmmword [rdx], xmm0
movups xmm0, xmmword [rsi + 0x10]
movups xmmword [rdx + 0x10], xmm0
movups xmm0, xmmword [rsi + 0x20]
movups xmmword [rdx + 0x20], xmm0
mov rdx, qword [rax + 8]
mov rsi, qword [rsp + 0x1d0]
movups xmm0, xmmword [rsi]
movups xmmword [rdx], xmm0
movups xmm0, xmmword [rsi + 0x10]
movups xmmword [rdx + 0x10], xmm0
movups xmm0, xmmword [rsi + 0x20]
movups xmmword [rdx + 0x20], xmm0
mov rdx, qword [rax + 0x10]
movabs rsi, 0xffffffff00000001
mov qword [rdx], rsi
mov esi, 0xffffffff
mov qword [rdx + 8], rsi
mov qword [rdx + 0x10], 1
movups xmmword [rdx + 0x18], xmm15
mov qword [rdx + 0x28], 0
xor ebx, ebx
xor ecx, ecx
add rsp, 0x208
pop rbp
ret
xor eax, eax
add rsp, 0x208
pop rbp
ret
xor eax, eax
add rsp, 0x208
pop rbp
ret
nop dword [rax]
cmp rcx, 0x31
jne 0x528883
movzx edx, byte [rbx]
cmp dl, 2
je 0x52869b
cmp dl, 3
jne 0x528883
movups xmmword [rsp + 0xb0], xmm15
movups xmmword [rsp + 0xc0], xmm15
movups xmmword [rsp + 0xd0], xmm15
dec rdi
mov rdx, rdi
neg rdx
sar rdx, 0x3f
and edx, 1
add rdx, rbx
lea rax, [rsp + 0xb0]
mov ecx, 0x30
mov rbx, rdx
call sym.crypto_internal_nistec_fiat._P384Element_.SetBytes
nop
test rbx, rbx
jne 0x528878
mov qword [rsp + 0x1d8], rax
movups xmmword [rsp + 0x80], xmm15
movups xmmword [rsp + 0x90], xmm15
movups xmmword [rsp + 0xa0], xmm15
mov rbx, rax
lea rax, [rsp + 0x80]
call sym.crypto_internal_nistec.p384Polynomial
mov qword [rsp + 0x1e8], rax
mov rbx, rax
call sym.crypto_internal_nistec.p384Sqrt
test al, al
je 0x528845
movups xmmword [rsp + 0x50], xmm15
movups xmmword [rsp + 0x60], xmm15
movups xmmword [rsp + 0x70], xmm15
mov rcx, qword [rsp + 0x1e8]
test byte [rcx], al
nop
lea rax, [rsp + 0x50]
mov rbx, rax
call sym.crypto_internal_nistec_fiat.p384Sub
movups xmmword [rsp + 0x20], xmm15
movups xmmword [rsp + 0x30], xmm15
movups xmmword [rsp + 0x40], xmm15
mov rax, qword [rsp + 0x1e8]
lea rbx, [rsp + 0x20]
nop dword [rax]
call sym.crypto_internal_nistec_fiat._P384Element_.bytes
cmp rbx, 0x2f
jbe 0x5288b6
movzx edx, byte [rax + 0x2f]
and edx, 1
mov rsi, qword [rsp + 0x220]
movzx esi, byte [rsi]
and esi, 1
xor edx, esi
movzx ebx, dl
mov rax, qword [rsp + 0x1e8]
mov rcx, rax
lea rdi, [rsp + 0x50]
call sym.crypto_internal_nistec_fiat.p384Selectznz
mov rax, qword [rsp + 0x218]
mov rdx, qword [rax]
mov rsi, qword [rsp + 0x1d8]
movups xmm0, xmmword [rsi]
movups xmmword [rdx], xmm0
movups xmm0, xmmword [rsi + 0x10]
movups xmmword [rdx + 0x10], xmm0
movups xmm0, xmmword [rsi + 0x20]
movups xmmword [rdx + 0x20], xmm0
mov rdx, qword [rax + 8]
mov rsi, qword [rsp + 0x1e8]
movups xmm0, xmmword [rsi]
movups xmmword [rdx], xmm0
movups xmm0, xmmword [rsi + 0x10]
movups xmmword [rdx + 0x10], xmm0
movups xmm0, xmmword [rsi + 0x20]
movups xmmword [rdx + 0x20], xmm0
mov rdx, qword [rax + 0x10]
movabs rsi, 0xffffffff00000001
mov qword [rdx], rsi
mov esi, 0xffffffff
mov qword [rdx + 8], rsi
mov qword [rdx + 0x10], 1
movups xmmword [rdx + 0x18], xmm15
mov qword [rdx + 0x28], 0
xor ebx, ebx
xor ecx, ecx
add rsp, 0x208
pop rbp
ret
lea rax, [0x006951a0]
call sym.runtime.newobject
mov qword [rax + 8], 0x26
lea rcx, [0x006e1139]
mov qword [rax], rcx
lea rbx, [0x00758260]
mov rcx, rax
xor eax, eax
add rsp, 0x208
pop rbp
ret
xor eax, eax
add rsp, 0x208
pop rbp
ret
lea rax, [0x006951a0]
call sym.runtime.newobject
mov qword [rax + 8], 0x1b
lea rcx, [0x006dac5c]
mov qword [rax], rcx
lea rbx, [0x00758260]
mov rcx, rax
xor eax, eax
add rsp, 0x208
pop rbp
ret
mov eax, 0x2f
mov rcx, rbx
nop
call sym.runtime.panicIndex
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
call sym.runtime.morestack_noctxt.abi0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
jmp sym.crypto_internal_nistec._P384Point_.SetBytes