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

Disassembly:
lea r12, [rsp - 0x100]
cmp r12, qword [r14 + 0x10]
jbe 0x52186a
push rbp
mov rbp, rsp
sub rsp, 0x178
mov qword [rsp + 0x190], rbx
cmp rcx, 1
jne 0x521504
cmp byte [rbx], 0
jne 0x521504
movups xmmword [rsp + 0x120], xmm15
movups xmmword [rsp + 0x130], xmm15
movups xmmword [rsp + 0x100], xmm15
movups xmmword [rsp + 0x110], xmm15
nop
movabs rdx, 0xffffffff00000000
mov qword [rsp + 0x100], rdx
mov qword [rsp + 0x108], 0xffffffffffffffff
movups xmmword [rsp + 0xe0], xmm15
movups xmmword [rsp + 0xf0], xmm15
movups xmmword [rsp + 0x160], xmm15
mov qword [rsp + 0x170], 0
lea rdx, [rsp + 0x120]
mov qword [rsp + 0x160], rdx
lea rsi, [rsp + 0x100]
mov qword [rsp + 0x168], rsi
lea rsi, [rsp + 0xe0]
mov qword [rsp + 0x170], rsi
mov rsi, qword [rax]
movups xmm0, xmmword [rdx]
movups xmmword [rsi], xmm0
movups xmm0, xmmword [rdx + 0x10]
movups xmmword [rsi + 0x10], xmm0
mov rdx, qword [rax + 8]
mov rsi, qword [rsp + 0x168]
movups xmm0, xmmword [rsi]
movups xmmword [rdx], xmm0
movups xmm0, xmmword [rsi + 0x10]
movups xmmword [rdx + 0x10], xmm0
mov rdx, qword [rax + 0x10]
mov rsi, qword [rsp + 0x170]
movups xmm0, xmmword [rsi]
movups xmmword [rdx], xmm0
movups xmm0, xmmword [rsi + 0x10]
movups xmmword [rdx + 0x10], xmm0
xor ebx, ebx
xor ecx, ecx
add rsp, 0x178
pop rbp
ret
mov qword [rsp + 0x188], rax
mov qword [rsp + 0x190], rbx
cmp rcx, 0x39
jne 0x521665
cmp byte [rbx], 4
jne 0x521665
mov qword [rsp + 0x1a0], rdi
movups xmmword [rsp + 0xc0], xmm15
movups xmmword [rsp + 0xd0], xmm15
lea rdx, [rdi - 1]
lea rsi, [rbx + 1]
lea rax, [rsp + 0xc0]
mov ecx, 0x1c
mov rbx, rsi
mov rdi, rdx
nop dword [rax]
call sym.crypto_internal_nistec_fiat._P224Element_.SetBytes
test rbx, rbx
jne 0x52165a
mov qword [rsp + 0x150], rax
movups xmmword [rsp + 0xa0], xmm15
movups xmmword [rsp + 0xb0], xmm15
mov rdi, qword [rsp + 0x1a0]
add rdi, 0xffffffffffffffe3
mov rbx, qword [rsp + 0x190]
add rbx, 0x1d
lea rax, [rsp + 0xa0]
mov ecx, 0x1c
call sym.crypto_internal_nistec_fiat._P224Element_.SetBytes
test rbx, rbx
jne 0x52164f
mov qword [rsp + 0x140], rax
mov rbx, rax
mov rax, qword [rsp + 0x150]
call sym.crypto_internal_nistec.p224CheckOnCurve
test rax, rax
je 0x5215e9
mov rcx, rbx
mov rbx, rax
xor eax, eax
add rsp, 0x178
pop rbp
ret
mov rax, qword [rsp + 0x188]
mov rdx, qword [rax]
mov rsi, qword [rsp + 0x150]
movups xmm0, xmmword [rsi]
movups xmmword [rdx], xmm0
movups xmm0, xmmword [rsi + 0x10]
movups xmmword [rdx + 0x10], xmm0
mov rdx, qword [rax + 8]
mov rsi, qword [rsp + 0x140]
movups xmm0, xmmword [rsi]
movups xmmword [rdx], xmm0
movups xmm0, xmmword [rsi + 0x10]
movups xmmword [rdx + 0x10], xmm0
mov rdx, qword [rax + 0x10]
movabs rsi, 0xffffffff00000000
mov qword [rdx], rsi
mov qword [rdx + 8], 0xffffffffffffffff
movups xmmword [rdx + 0x10], xmm15
xor ebx, ebx
xor ecx, ecx
add rsp, 0x178
pop rbp
ret
xor eax, eax
add rsp, 0x178
pop rbp
ret
xor eax, eax
add rsp, 0x178
pop rbp
ret
cmp rcx, 0x1d
jne 0x521829
movzx edx, byte [rbx]
cmp dl, 2
je 0x521689
nop word [rax + rax]
cmp dl, 3
jne 0x521829
movups xmmword [rsp + 0x80], xmm15
movups xmmword [rsp + 0x90], xmm15
dec rdi
mov rdx, rdi
neg rdx
sar rdx, 0x3f
and edx, 1
add rdx, rbx
lea rax, [rsp + 0x80]
mov ecx, 0x1c
mov rbx, rdx
nop
call sym.crypto_internal_nistec_fiat._P224Element_.SetBytes
test rbx, rbx
jne 0x52181e
mov qword [rsp + 0x148], rax
movups xmmword [rsp + 0x60], xmm15
movups xmmword [rsp + 0x70], xmm15
mov rbx, rax
lea rax, [rsp + 0x60]
call sym.crypto_internal_nistec.p224Polynomial
mov qword [rsp + 0x158], rax
mov rbx, rax
call sym.crypto_internal_nistec.p224Sqrt
nop
test al, al
je 0x5217eb
movups xmmword [rsp + 0x40], xmm15
movups xmmword [rsp + 0x50], xmm15
mov rcx, qword [rsp + 0x158]
test byte [rcx], al
nop
lea rax, [rsp + 0x40]
mov rbx, rax
call sym.crypto_internal_nistec_fiat.p224Sub
movups xmmword [rsp + 0x24], xmm15
movups xmmword [rsp + 0x30], xmm15
mov rax, qword [rsp + 0x158]
lea rbx, [rsp + 0x24]
call sym.crypto_internal_nistec_fiat._P224Element_.bytes
cmp rbx, 0x1b
jbe 0x52185c
movzx edx, byte [rax + 0x1b]
and edx, 1
mov rsi, qword [rsp + 0x190]
movzx esi, byte [rsi]
and esi, 1
xor edx, esi
movzx ebx, dl
mov rax, qword [rsp + 0x158]
mov rcx, rax
lea rdi, [rsp + 0x40]
nop
call sym.crypto_internal_nistec_fiat.p224Selectznz
mov rax, qword [rsp + 0x188]
mov rdx, qword [rax]
mov rsi, qword [rsp + 0x148]
movups xmm0, xmmword [rsi]
movups xmmword [rdx], xmm0
movups xmm0, xmmword [rsi + 0x10]
movups xmmword [rdx + 0x10], xmm0
mov rdx, qword [rax + 8]
mov rsi, qword [rsp + 0x158]
movups xmm0, xmmword [rsi]
movups xmmword [rdx], xmm0
movups xmm0, xmmword [rsi + 0x10]
movups xmmword [rdx + 0x10], xmm0
mov rdx, qword [rax + 0x10]
movabs rsi, 0xffffffff00000000
mov qword [rdx], rsi
mov qword [rdx + 8], 0xffffffffffffffff
movups xmmword [rdx + 0x10], xmm15
xor ebx, ebx
xor ecx, ecx
add rsp, 0x178
pop rbp
ret
lea rax, [0x006951a0]
call sym.runtime.newobject
mov qword [rax + 8], 0x26
lea rcx, [0x006e10ed]
mov qword [rax], rcx
lea rbx, [0x00758260]
mov rcx, rax
xor eax, eax
add rsp, 0x178
pop rbp
ret
xor eax, eax
add rsp, 0x178
pop rbp
ret
lea rax, [0x006951a0]
call sym.runtime.newobject
mov qword [rax + 8], 0x1b
lea rcx, [0x006dac26]
mov qword [rax], rcx
lea rbx, [0x00758260]
mov rcx, rax
xor eax, eax
add rsp, 0x178
pop rbp
ret
mov eax, 0x1b
mov rcx, rbx
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
nop
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._P224Point_.SetBytes