Function at 0x14003d670
Capabilities:
Hash data using sha512

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1d8
mov qword [rsp + 0x58], r9
mov qword [rsp + 0x50], r8
mov r12, rdx
mov qword [rsp + 0x48], rcx
mov rax, qword [rsp + 0x248]
mov rcx, qword [0x1404a7eb8]
xor rcx, rsp
mov qword [rsp + 0x1d0], rcx
mov rcx, qword [rax + 0x28]
test rcx, rcx
je 0x14003d6e2
cmp qword [rcx + 0x28], 0
je 0x14003d6e2
mov dword [rsp + 0x20], 0x100
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmoduleecdsa_ecdsa.c.inc
xor edi, edi
mov ecx, 0x1a
xor edx, edx
mov r8d, 0x67
jmp 0x14003d859
mov r15, qword [rax]
test r15, r15
je 0x14003d83b
mov rsi, qword [rax + 0x10]
test rsi, rsi
je 0x14003d83b
add rsi, 0x18
movabs rax, 0x6a09e667f3bcc908
mov qword [rsp + 0xf8], rax
movabs rax, 0xbb67ae8584caa73b
mov qword [rsp + 0x100], rax
movabs rax, 0x3c6ef372fe94f82b
mov qword [rsp + 0x108], rax
movabs rax, 0xa54ff53a5f1d36f1
mov qword [rsp + 0x110], rax
movabs rax, 0x510e527fade682d1
mov qword [rsp + 0x118], rax
movabs rax, 0x9b05688c2b3e6c1f
mov qword [rsp + 0x120], rax
movabs rax, 0x1f83d9abfb41bd6b
mov qword [rsp + 0x128], rax
movabs rax, 0x5be0cd19137e2179
mov qword [rsp + 0x130], rax
movabs rax, 0x4000000000
mov qword [rsp + 0x1c8], rax
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x138], xmm0
movsxd r13, dword [r15 + 0x108]
lea rbx, [rsp + 0x148]
test r13, r13
je 0x14003d87c
lea rbp, [r13*8]
mov rax, r13
shl rax, 6
mov rcx, rbp
shr rcx, 0x3d
mov qword [rsp + 0x140], rcx
mov qword [rsp + 0x138], rax
cmp rbp, 0x80
jb 0x14003d888
mov r8, rbp
shr r8, 7
lea rcx, [rsp + 0xf8]
mov rdx, rsi
call fcn.140054a20
lea rdx, [rsi + rbp]
and ebp, 0x78
sub rdx, rbp
test rbp, rbp
je 0x14003d890
mov rcx, rbx
mov r8, rbp
call fcn.1402a44e0
mov dword [rsp + 0x1c8], ebp
test r12, r12
jne 0x14003d8a0
jmp 0x14003d992
mov dword [rsp + 0x20], 0x106
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmoduleecdsa_ecdsa.c.inc
xor edi, edi
mov ecx, 0x1a
xor edx, edx
mov r8d, 0x43
call fcn.1400885a0
mov rcx, qword [rsp + 0x1d0]
xor rcx, rsp
cmp rcx, qword [0x1404a7eb8]
je 0x14003dc2d
call fcn.14029fd30
int3
xor ebp, ebp
test r12, r12
jne 0x14003d8a0
jmp 0x14003d992
mov rdx, rsi
test rbp, rbp
jne 0x14003d81f
mov ebp, dword [rsp + 0x1c8]
test r12, r12
je 0x14003d992
mov rdi, rbx
lea rax, [r12*8]
mov rcx, r12
shr rcx, 0x3d
add qword [rsp + 0x138], rax
adc qword [rsp + 0x140], rcx
mov rbx, r12
mov r14, qword [rsp + 0x48]
test ebp, ebp
je 0x14003d93e
mov ecx, ebp
mov r14d, 0x80
sub r14, rcx
mov rbx, r12
sub rbx, r14
jae 0x14003d900
mov rbx, rdi
add rcx, rdi
mov rdx, qword [rsp + 0x48]
mov r8, r12
call fcn.1402a44e0
mov ebp, dword [rsp + 0x1c8]
add ebp, r12d
jmp 0x14003d97f
cmp ebp, 0x80
je 0x14003d918
add rcx, rdi
mov rdx, qword [rsp + 0x48]
mov r8, r14
call fcn.1402a44e0
mov dword [rsp + 0x1c8], 0
add r14, qword [rsp + 0x48]
lea rcx, [rsp + 0xf8]
mov r8d, 1
mov rdx, rdi
call fcn.140054a20
cmp rbx, 0x80
jb 0x14003d967
mov r8, rbx
shr r8, 7
lea rcx, [rsp + 0xf8]
mov rdx, r14
call fcn.140054a20
add r14, rbx
and ebx, 0x7f
sub r14, rbx
test rbx, rbx
je 0x14003d988
mov rcx, rdi
mov rdx, r14
mov r8, rbx
call fcn.1402a44e0
mov ebp, ebx
mov rbx, rdi
mov dword [rsp + 0x1c8], ebp
jmp 0x14003d992
mov ebp, dword [rsp + 0x1c8]
mov rbx, rdi
mov edi, dword [rsp + 0x1cc]
mov eax, ebp
mov byte [rsp + rax + 0x148], 0x80
lea rcx, [rax + 1]
cmp ebp, 0x70
jb 0x14003d9de
cmp eax, 0x7f
je 0x14003d9c4
mov r8d, 0x7f
sub r8, rax
add rcx, rbx
xor edx, edx
call fcn.1402a4b90
lea rcx, [rsp + 0xf8]
mov r8d, 1
mov rdx, rbx
call fcn.140054a20
xor ecx, ecx
jmp 0x14003d9e4
cmp rcx, 0x70
je 0x14003d9f7
mov r8d, reloc.WS2_32.dll_WSASetLastError
sub r8, rcx
add rcx, rbx
xor edx, edx
call fcn.1402a4b90
mov rax, qword [rsp + 0x138]
mov rcx, qword [rsp + 0x140]
bswap rcx
mov qword [rsp + 0x1b8], rcx
bswap rax
mov qword [rsp + 0x1c0], rax
lea rcx, [rsp + 0xf8]
mov r8d, 1
mov rdx, rbx
call fcn.140054a20
cmp edi, 8
jb 0x14003db43
mov eax, edi
shr eax, 3
cmp edi, 0x20
jae 0x14003da55
lea rcx, [rsp + 0xb0]
xor edx, edx
jmp 0x14003db15
mov edx, eax
and edx, 0xfffffffc
lea r8d, [rdx*8]
lea rcx, [rsp + r8]
add rcx, 0xb0
xor r9d, r9d
pxor xmm0, xmm0
nop word cs:[rax + rax]
movdqu xmm1, xmmword [rsp + r9 + 0xf8]
movdqu xmm2, xmmword [rsp + r9 + 0x108]
movdqa xmm3, xmm1
punpckhbw xmm3, xmm0
pshufd xmm3, xmm3, 0x4e
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpcklbw xmm1, xmm0
pshufd xmm1, xmm1, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm1, xmm3
movdqa xmm3, xmm2
punpckhbw xmm3, xmm0
pshufd xmm3, xmm3, 0x4e
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpcklbw xmm2, xmm0
pshufd xmm2, xmm2, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
packuswb xmm2, xmm3
movdqa xmmword [rsp + r9 + 0xb0], xmm1
movdqa xmmword [rsp + r9 + 0xc0], xmm2
add r9, 0x20
cmp r8, r9
jne 0x14003da80
cmp edx, eax
je 0x14003db43
sub rax, rdx
lea rdx, [rsp + rdx*8]
add rdx, 0xf8
xor r8d, r8d
nop word cs:[rax + rax]
mov r9, qword [rdx + r8*8]
bswap r9
mov qword [rcx + r8*8], r9
inc r8
cmp rax, r8
jne 0x14003db30
mov r8, qword [r15 + 0x100]
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x20], rax
lea rbx, [rsp + 0x68]
mov edx, 1
mov rcx, rbx
mov r9, r13
call fcn.140037a60
xor edi, edi
test eax, eax
je 0x14003dc15
mov r13d, 0x21
lea r14, [rsp + 0x64]
nop word cs:[rax + rax]
mov qword [rsp + 0x40], r12
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rsi
mov rax, qword [rsp + 0x240]
mov qword [rsp + 0x20], rax
mov rcx, r15
mov rdx, r14
mov r8, qword [rsp + 0x50]
mov r9, qword [rsp + 0x58]
call fcn.14003cfd0
mov ebp, eax
test eax, eax
jne 0x14003dc64
cmp dword [rsp + 0x64], 0
je 0x14003dc64
dec r13d
je 0x14003dc43
movsxd r9, dword [r15 + 0x108]
mov r8, qword [r15 + 0x100]
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x20], rax
mov edx, 1
mov rcx, rbx
call fcn.140037a60
test eax, eax
jne 0x14003db90
mov rcx, qword [rsp + 0x1d0]
xor rcx, rsp
cmp rcx, qword [0x1404a7eb8]
jne 0x14003d876
mov eax, edi
add rsp, 0x1d8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov dword [rsp + 0x20], 0x134
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmoduleecdsa_ecdsa.c.inc
mov ecx, 0x1a
xor edx, edx
mov r8d, WSAGetLastError
call fcn.1400885a0
mov edi, ebp
mov rcx, qword [rsp + 0x1d0]
xor rcx, rsp
cmp rcx, qword [0x1404a7eb8]
je 0x14003dc2d
jmp 0x14003d876