Function at 0x1400bf180
Capabilities:
Hash data using sha256
Hash data using sha384
Hash data using sha512

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
vmovaps xmmword [rsp + 0xa0], xmm6
mov edi, r8d
mov rbx, rdx
mov rsi, rcx
mov ebp, dword [rcx + 0xe968]
cmp ebp, 0xfffffebc
jle 0x1400bf1d4
cmp ebp, 2
je 0x1400bf1c8
test ebp, ebp
je 0x1400bf1e8
cmp ebp, 0xfffffebd
jne 0x1400bf84e
mov dword [rsi + 0xe968], 0
jmp 0x1400bf1e8
cmp ebp, 0xfffffe47
je 0x1400bf1e8
cmp ebp, 0xfffffeb9
jne 0x1400bf84e
mov rax, qword [rsi + 0x14798]
test rax, rax
je 0x1400bf20d
cmp byte [rax], 0
je 0x1400bf20d
cmp byte [rsi + 0xeb19], 0x10
je 0x1400bf230
cmp dword [rsi + 0xe688], 0
jne 0x1400bf230
jmp 0x1400bf216
cmp byte [rsi + 0xeb19], 0x10
je 0x1400bf230
mov rcx, rsi
call fcn.14004ee50
mov ebp, eax
cmp eax, 1
jne 0x1400bf84e
mov rax, qword [rsi + 0x14798]
lea r14, [rsi + 0x5b30]
lea r13, [rsi + 0x5e28]
lea r12, [rsi + 0x5f08]
vxorps xmm6, xmm6, xmm6
test rax, rax
je 0x1400bf630
cmp byte [rax + 2], 0
je 0x1400bf630
movzx eax, word [rsi + 0xeb08]
test al, 0x60
je 0x1400bf291
and eax, 0xefff
mov word [rsi + 0xeb08], ax
cmp qword [0x143e27938], 0
je 0x1400bf29f
mov ecx, 0x20
call fcn.14000f5d0
test rax, rax
jne 0x1400bf2b2
jmp 0x1400bf871
and eax, 0xfff9
mov word [rsi + 0xeb08], ax
jmp 0x1400bf309
mov ecx, 0x20
call fcn.14015a50c
test rax, rax
je 0x1400bf871
mov dword [rax], 0x23
mov qword [rax + 8], 0
mov byte [rax + 0x14], 0
mov qword [rax + 0x18], 0
mov rcx, qword [rsi + 0x14788]
mov qword [rax + 0x18], rcx
mov qword [rsi + 0x14788], rax
nop
mov rcx, rax
mov rax, qword [rax + 0x18]
test rax, rax
je 0x1400bf309
cmp dword [rax], 0x23
jne 0x1400bf2e0
mov rdx, qword [rax + 0x18]
mov qword [rcx + 0x18], rdx
mov qword [rax + 0x18], 0
mov rcx, rax
call fcn.140057520
and byte [rsi + 0xeb0f], 0xfb
movzx eax, word [rsi + 0xe990]
mov ebp, 0xfffffe7c
cmp eax, 0x400
jb 0x1400bf330
movzx eax, al
cmp ax, 3
je 0x1400bf88c
mov rax, qword [rsi + 0x14798]
test rax, rax
je 0x1400bf88c
cmp byte [rax], 0
je 0x1400bf88c
movzx ecx, word [rsi + 0xeb08]
test cl, 0x60
jne 0x1400bf362
cmp byte [rsi + 0xeb1d], 4
je 0x1400bf5fe
cmp byte [rsi + 0xeb19], 0x10
jne 0x1400bf4b0
and ecx, 0xfff9
mov word [rsi + 0xeb08], cx
mov word [rsi + 0xeb17], 0
mov word [rsi + 0xeb1c], 0x100
mov byte [rsi + 0xeb19], 0
mov byte [rsi + 0xeb12], 0
mov dword [rsi + 0xe98c], 0
mov dword [rax + 4], 1
test byte [rsi + 0xeb08], 0x60
jne 0x1400bf565
cmp byte [rsi + 0xeabc], 0
je 0x1400bf3d1
mov eax, reloc.WS2_32.dll_WSAGetLastError
cmp byte [rsi + 0x6341], 0
jne 0x1400bf3d6
mov eax, 9
movzx ebp, word [rsi + 0xeb0a]
shl ebp, 2
and ebp, 0x10
or ebp, eax
or byte [rsi + 0xeb10], 8
mov rcx, rsi
mov edx, ebp
call fcn.1400ac820
test eax, eax
jne 0x1400bf87f
mov rax, qword [rsi + 0xe650]
mov ecx, dword [rsi + 0xe65c]
add rcx, rax
mov r15d, dword [rsi + 0xe658]
add r15, rcx
test rax, rax
je 0x1400bf45e
mov byte [r15], reloc.WS2_32.dll_shutdown
movzx eax, byte [rsi + 0xe990]
mov byte [r15 + 1], al
movzx eax, word [rsi + 0xe990]
mov ecx, eax
shr ecx, 8
cmp al, 3
mov edx, 3
cmovne edx, ecx
cmp eax, 0x400
cmovb edx, ecx
mov byte [r15 + 2], dl
test byte [rsi + 0xeb0a], 4
jne 0x1400bf45e
mov word [r15 + 3], 0x400
mov dword [r15 + 5], 0
cmp byte [rsi + 0xeabc], 0
je 0x1400bf548
cmp byte [rsi + 0x6341], 0
je 0x1400bf548
mov qword [rsp + 0x40], r13
movzx r13d, word [rsi + 0xeb0a]
mov eax, r13d
and eax, 4
lea ecx, [rax*2 + 4]
cmp qword [0x143e27938], 0
mov qword [rsp + 0x48], rcx
je 0x1400bf4c2
call fcn.14000f5d0
jmp 0x1400bf4c7
cmp byte [rsi + 0xeb1a], 0
jne 0x1400bf5fe
jmp 0x1400bf88c
call fcn.14015a50c
test rax, rax
je 0x1400bf899
and r13d, 4
shr r13d, 2
lea rdx, [r15 + r13*8]
add rdx, 5
mov r13, rax
mov rcx, rax
mov r8, qword [rsp + 0x48]
call fcn.14016e4a0
mov rax, qword [rsp + 0x48]
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x28], reloc.WS2_32.dll_shutdown
mov rcx, rsi
mov rdx, r15
mov r8d, ebp
mov r15, r13
mov r9, r13
call fcn.1400a6d10
mov ebp, eax
cmp qword [0x143e27940], 0
je 0x1400bf533
mov rcx, r15
call fcn.14000f5f0
jmp 0x1400bf53b
mov rcx, r15
call fcn.140159e80
mov r13, qword [rsp + 0x40]
test ebp, ebp
js 0x1400bf881
add dword [rsi + 0xe658], ebp
and byte [rsi + 0xeb10], 0xf7
mov rcx, rsi
call fcn.1400a73d0
test eax, eax
jne 0x1400bf87f
mov qword [rsi + 0x5b20], r14
mov r8d, 0x3e0
mov rcx, r14
xor edx, edx
call fcn.14016e0e0
mov rax, qword [rsi + 0x5fe0]
vmovaps ymm0, ymmword [0x140176340]
vmovups ymmword [rsi + 0x5ce0], ymm0
mov dword [rsi + 0x5d44], 0
mov qword [rsi + 0x5d50], rax
mov qword [rsi + 0x5e38], rax
vmovaps ymm0, ymmword [0x1401764a0]
vmovups ymmword [rsi + 0x5d60], ymm0
vmovaps ymm0, ymmword [0x1401764c0]
vmovups ymmword [rsi + 0x5d80], ymm0
vmovups xmmword [r13], xmm6
mov qword [rsi + 0x5f18], rax
vmovaps ymm0, ymmword [0x140176460]
vmovups ymmword [rsi + 0x5e40], ymm0
vmovaps ymm0, ymmword [0x140176480]
vmovups ymmword [rsi + 0x5e60], ymm0
vmovups xmmword [r12], xmm6
mov rcx, rsi
vzeroupper
call fcn.14004ee50
cmp eax, 1
jne 0x1400bf86d
inc dword [rsi + 0x14790]
mov rax, qword [rsi + 0x14798]
mov byte [rax + 2], 0
nop word cs:[rax + rax]
mov eax, dword [rsi + 0xe688]
test eax, eax
jne 0x1400bf692
mov rcx, rsi
call fcn.1400b2990
mov dword [rsi + 0xe968], eax
test eax, eax
js 0x1400bf7ba
mov rax, qword [rsi + 0x14798]
test rax, rax
je 0x1400bf630
cmp byte [rax + 2], 0
jne 0x1400bf249
cmp byte [rax], 0
je 0x1400bf630
cmp byte [rsi + 0xeb19], 0x10
je 0x1400bf630
mov eax, dword [rsi + 0xe688]
test eax, eax
jne 0x1400bf692
mov rcx, rsi
call fcn.14004ee50
cmp eax, 1
je 0x1400bf630
mov ebp, eax
jmp 0x1400bf84e
cmp eax, edi
cmovl edi, eax
mov rdx, qword [rsi + 0xe680]
movsxd r14, edi
mov rcx, rbx
mov r8, r14
call fcn.14016e4a0
mov ecx, dword [rsi + 0xe688]
mov eax, ecx
sub eax, r14d
mov dword [rsi + 0xe688], eax
add qword [rsi + 0xe680], r14
cmp byte [rsi + 0xa5d4], 0
je 0x1400bf84c
mov eax, dword [rsi + 0xa5c8]
mov edx, dword [rsi + 0xa5cc]
mov ebp, eax
sub ebp, edx
cmp ebp, 0x406b
jg 0x1400bf84c
cmp ecx, edi
jne 0x1400bf84c
lea rbx, [rsi + 0x6550]
test ebp, ebp
jle 0x1400bf718
add rdx, qword [rsi + 0xa5c0]
mov r8d, ebp
mov rcx, rbx
call fcn.14016e4a0
mov eax, dword [rsi + 0xa5c8]
mov rcx, qword [rsi + 0xa5c0]
test eax, eax
je 0x1400bf796
mov r8d, eax
mov edx, eax
and r8d, 7
je 0x1400bf74b
and edx, 0xfffffff8
nop word cs:[rax + rax]
mov byte [rcx], 0
inc rcx
dec r8d
jne 0x1400bf740
cmp eax, 8
jb 0x1400bf78f
mov eax, edx
xor edx, edx
nop word cs:[rax + rax]
mov byte [rcx + rdx], 0
mov byte [rcx + rdx + 1], 0
mov byte [rcx + rdx + 2], 0
mov byte [rcx + rdx + 3], 0
mov byte [rcx + rdx + 4], 0
mov byte [rcx + rdx + 5], 0
mov byte [rcx + rdx + 6], 0
mov byte [rcx + rdx + 7], 0
add rdx, 8
cmp eax, edx
jne 0x1400bf760
mov rcx, qword [rsi + 0xa5c0]
test rcx, rcx
je 0x1400bf825
movzx eax, byte [rsi + 0xa5d5]
sub rcx, rax
cmp qword [0x143e27940], 0
je 0x1400bf820
call fcn.14000f5f0
jmp 0x1400bf825
xor ebp, ebp
cmp eax, 0xfffffea9
je 0x1400bf84e
cmp eax, 0xfffffecc
jne 0x1400bf7ff
test byte [rsi + 0xeb0a], 0x30
je 0x1400bf7ff
mov dword [rsi + 0xe968], 0xfffffe73
lea r8, str.wolfSSL_error_occurred__error___d
lea rcx, [rsp + 0x50]
mov edx, 0x50
mov r9d, 0xfffffe73
call fcn.14004e2d0
jmp 0x1400bf84e
lea r8, str.wolfSSL_error_occurred__error___d
lea rcx, [rsp + 0x50]
mov edx, 0x50
mov r9d, eax
call fcn.14004e2d0
mov ebp, dword [rsi + 0xe968]
jmp 0x1400bf84e
call fcn.140159e80
mov qword [rsi + 0xa5c0], rbx
mov word [rsi + 0xa5d4], 0
movabs rax, 0x406b00000000
mov qword [rsi + 0xa5cc], rax
mov dword [rsi + 0xa5c8], ebp
mov ebp, edi
mov eax, ebp
vmovaps xmm6, xmmword [rsp + 0xa0]
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ebp, eax
jmp 0x1400bf88c
and byte [rsi + 0xeb0f], 0xfb
mov ebp, 0xffffff83
jmp 0x1400bf88c
mov ebp, eax
mov dword [rsi + 0xe968], ebp
mov ebp, 0xffffffff
mov rax, qword [rsi + 0x14798]
mov byte [rax + 2], 0
jmp 0x1400bf84e
mov ebp, 0xffffff83
jmp 0x1400bf881