Function at 0x140010b10
Capabilities:
Hash data using sha256
Hash data using sha384

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rdi
sub rsp, 0x40
mov rdi, rcx
mov rcx, qword [rcx + 0x90]
test rcx, rcx
je 0x140010b30
call fcn.14001de70
mov rbx, qword [rdi + 0x68]
xor ebp, ebp
test rbx, rbx
je 0x140010b76
mov rcx, qword [rbx + 0x70]
test rcx, rcx
je 0x140010b56
call fcn.1400107f0
mov rcx, qword [rbx + 0x70]
call fcn.14006dc24
mov qword [rbx + 0x70], rbp
mov rcx, qword [rbx + 0x80]
call fcn.14006dc24
mov rax, qword [fcn.14006c5b0]
xor edx, edx
mov r8d, 0x98
mov rcx, rbx
call rax
cmp qword [rdi + 0x70], rbp
je 0x140010b84
mov rcx, rdi
call fcn.140012170
cmp qword [rdi + 0x90], rbp
jne 0x140010ba3
mov edx, 0x180
mov ecx, 1
call fcn.1400727c8
mov qword [rdi + 0x90], rax
cmp qword [rdi + 0x68], rbp
jne 0x140010bbc
mov edx, 0x98
mov ecx, 1
call fcn.1400727c8
mov qword [rdi + 0x68], rax
mov rax, qword [rdi + 0x70]
test rax, rax
jne 0x140010bdf
mov edx, 0xa58
lea ecx, [rax + 1]
call fcn.1400727c8
mov qword [rdi + 0x70], rax
test rax, rax
je 0x14001114c
cmp qword [rdi + 0x90], rbp
je 0x14001114c
mov rax, qword [rdi + 0x68]
test rax, rax
je 0x14001114c
xorps xmm0, xmm0
mov qword [rsp + 0x68], rsi
movups xmmword [rax], xmm0
xor ecx, ecx
xor edx, edx
movups xmmword [rax + 0x10], xmm0
mov r8d, 0x10c
movups xmmword [rax + 0x20], xmm0
movups xmmword [rax + 0x30], xmm0
movups xmmword [rax + 0x40], xmm0
movups xmmword [rax + 0x50], xmm0
movups xmmword [rax + 0x60], xmm0
movups xmmword [rax + 0x70], xmm0
movups xmmword [rax + 0x80], xmm0
mov qword [rax + 0x90], rcx
mov rax, qword [rdi + 0x90]
xorps xmm1, xmm1
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm0
movups xmmword [rax + 0x30], xmm0
mov qword [rax + 0x40], rcx
mov qword [rax + 0x78], rcx
movups xmmword [rax + 0x140], xmm0
movups xmmword [rax + 0x150], xmm0
movups xmmword [rax + 0x160], xmm0
movups xmmword [rax + 0x170], xmm0
movups xmmword [rax + 0x80], xmm1
movups xmmword [rax + 0x90], xmm1
movups xmmword [rax + 0xa0], xmm1
movups xmmword [rax + 0xb0], xmm1
movups xmmword [rax + 0xc0], xmm1
movups xmmword [rax + 0xd0], xmm1
movups xmmword [rax + 0xe0], xmm0
movups xmmword [rax + 0xf0], xmm0
movups xmmword [rax + 0x100], xmm0
movups xmmword [rax + 0x110], xmm0
movups xmmword [rax + 0x120], xmm0
movups xmmword [rax + 0x130], xmm0
movups xmmword [rax + 0x48], xmm0
mov qword [rax + 0x58], rcx
movups xmmword [rax + 0x60], xmm0
mov qword [rax + 0x70], rcx
xor eax, eax
mov rbx, qword [rdi + 0x70]
mov word [rbx], ax
lea rcx, [rbx + 0x330]
movups xmmword [rbx + 3], xmm0
mov qword [rbx + 0x13], rax
mov dword [rbx + 0x1b], eax
mov byte [rbx + 0x1f], al
movups xmmword [rbx + 0x28], xmm0
movups xmmword [rbx + 0x38], xmm0
movups xmmword [rbx + 0x48], xmm0
movups xmmword [rbx + 0x58], xmm0
movups xmmword [rbx + 0x68], xmm0
call fcn.14006c5b0
lea rcx, [rbx + 0x580]
xor edx, edx
mov r8d, 0x4d8
call fcn.14006c5b0
xorps xmm0, xmm0
lea rcx, [rbx + 0x4b0]
movups xmmword [rbx + 0x440], xmm0
xor eax, eax
movups xmmword [rbx + 0x450], xmm0
movups xmmword [rbx + 0x460], xmm0
movups xmmword [rbx + 0x470], xmm0
movups xmmword [rbx + 0x480], xmm0
movups xmmword [rbx + 0x490], xmm0
mov qword [rbx + 0x4a0], rax
mov qword [rbx + 0x43c], rbp
mov dword [rbx + 0x444], 0x6a09e667
mov dword [rbx + 0x448], 0xbb67ae85
mov dword [rbx + 0x44c], 0x3c6ef372
mov dword [rbx + 0x450], 0xa54ff53a
mov dword [rbx + 0x454], 0x510e527f
mov dword [rbx + 0x458], 0x9b05688c
mov dword [rbx + 0x45c], 0x1f83d9ab
mov dword [rbx + 0x460], 0x5be0cd19
mov dword [rbx + 0x4a4], ebp
xor edx, edx
mov r8d, 0xd0
call fcn.14006c5b0
mov qword [rbx + 0x4a8], rbp
lea rcx, [rbx + 0x78]
mov qword [rbx + 0x4b0], rbp
movabs rax, 0xcbbb9d5dc1059ed8
mov qword [rbx + 0x4b8], rax
xor edx, edx
movabs rax, 0x629a292a367cd507
mov dword [rbx + 0x578], 1
mov qword [rbx + 0x4c0], rax
mov r8d, 0xf0
movabs rax, 0x9159015a3070dd17
mov qword [rbx + 0x4c8], rax
movabs rax, 0x152fecd8f70e5939
mov qword [rbx + 0x4d0], rax
movabs rax, 0x67332667ffc00b31
mov qword [rbx + 0x4d8], rax
movabs rax, 0x8eb44a8768581511
mov qword [rbx + 0x4e0], rax
movabs rax, 0xdb0c2e0d64f98fa7
mov qword [rbx + 0x4e8], rax
movabs rax, 0x47b5481dbefa4fa4
mov qword [rbx + 0x4f0], rax
lea rax, [0x140010aa0]
mov qword [rbx + 0x20], rax
call fcn.14006c5b0
lea rcx, [rbx + 0x169]
xor edx, edx
mov r8d, 0x1c7
call fcn.14006c5b0
mov dword [rbx + 0x170], ebp
mov byte [rbx + 0x168], bpl
mov byte [rbx + 2], 3
mov rax, qword [rdi]
cmp byte [rax + 9], 1
jne 0x140010ee7
mov rcx, qword [rdi + 0x70]
mov rax, qword [rdi + 0x80]
mov qword [rcx + 0x428], rax
mov rax, qword [rdi]
mov rcx, qword [rdi + 0x70]
cmp byte [rax + 8], bpl
jne 0x140010ed8
xor al, al
jmp 0x140010eda
mov al, 2
mov byte [rcx + 0xd], al
xor edx, edx
mov rcx, rdi
call fcn.140016e30
mov rax, qword [rdi]
mov qword [rsp + 0x38], r14
mov rsi, qword [rax + 0xe8]
test rsi, rsi
je 0x140010fac
mov rbx, rbp
cmp dword [rsi], ebp
je 0x140010f14
cmp rbx, 0xe
jae 0x140010f14
inc rbx
cmp dword [rsi + rbx*4], ebp
jne 0x140010f06
lea rcx, [rbx + 1]
mov edx, 2
call fcn.1400727c8
mov r9, rax
test rax, rax
je 0x140011062
mov rdx, rbp
test rbx, rbx
je 0x140010f95
lea r10, [0x140091d20]
nop dword [rax]
mov r8d, dword [rsi + rdx*4]
mov rcx, r10
mov eax, 5
nop dword [rax]
cmp eax, r8d
je 0x140010f7f
mov eax, dword [rcx + 0x10]
add rcx, 0x10
test eax, eax
jne 0x140010f50
mov rcx, r9
call fcn.14006dc24
mov eax, 0xffffa180
mov r14, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x68]
add rsp, 0x40
pop rdi
pop rbp
pop rbx
ret
test rcx, rcx
je 0x140010f60
movzx eax, word [rcx + 4]
mov word [r9 + rdx*2], ax
inc rdx
cmp rdx, rbx
jb 0x140010f40
mov word [r9 + rbx*2], bp
mov rax, qword [rdi + 0x70]
mov qword [rax + 0x68], r9
mov rax, qword [rdi + 0x70]
mov byte [rax + 0xe], 1
jmp 0x140010fc3
mov rax, qword [rax + 0xf0]
mov rcx, qword [rdi + 0x70]
mov qword [rcx + 0x68], rax
mov rax, qword [rdi + 0x70]
mov byte [rax + 0xe], bpl
mov rbx, qword [rdi]
mov r14d, 0x303
cmp dword [rbx + 4], r14d
jne 0x14001113d
cmp dword [rbx], r14d
jne 0x14001113d
mov rbx, qword [rbx + 0xd8]
test rbx, rbx
je 0x14001113d
mov eax, dword [rbx]
mov r8, rbp
mov rdx, rbx
test eax, eax
je 0x140010f68
lea rsi, [0x140000000]
dec eax
cmp eax, 5
ja case.default.0x140011019
cdqe
mov ecx, dword [rsi + rax*4 + 0x111ac]
add rcx, rsi
jmp rcx
add r8, 4
cmp r8, 0xfffe
ja 0x140010f68
mov eax, dword [rdx + 4]
add rdx, 4
test eax, eax
jne 0x140011006
cmp r8, 2
jb 0x140010f68
lea rdx, [r8 + 2]
lea ecx, [rax + 1]
call fcn.1400727c8
mov rcx, qword [rdi + 0x70]
mov qword [rcx + 0x70], rax
mov rax, qword [rdi + 0x70]
mov rdx, qword [rax + 0x70]
test rdx, rdx
jne 0x14001106c
mov eax, 0xffff8100
jmp 0x140010f6d
mov eax, dword [rbx]
test eax, eax
je 0x14001112b
mov qword [rsp + 0x70], r12
mov ebp, 0x603
mov qword [rsp + 0x78], r13
mov r12d, 0x503
mov r8d, 0x103
mov qword [rsp + 0x30], r15
mov r11d, 0x403
mov r10d, 0x301
lea edi, [rbp - 2]
lea r13d, [r12 - 2]
lea r9d, [r8 - 2]
lea r15d, [r11 - 2]
dec eax
cmp eax, 5
ja case.default.0x1400110c5
cdqe
mov ecx, dword [rsi + rax*4 + 0x111c4]
add rcx, rsi
jmp rcx
movzx eax, r8w
movzx ecx, r9w
jmp 0x1400110ff
mov eax, 0x203
lea ecx, [rax - 2]
jmp 0x1400110ff
movzx eax, r14w
movzx ecx, r10w
jmp 0x1400110ff
movzx eax, r11w
movzx ecx, r15w
jmp 0x1400110ff
movzx eax, r12w
movzx ecx, r13w
jmp 0x1400110ff
movzx eax, bp
movzx ecx, di
mov word [rdx], ax
mov word [rdx + 2], cx
add rdx, 4
mov eax, dword [rbx + 4]
add rbx, 4
test eax, eax
jne 0x1400110b2
mov r15, qword [rsp + 0x30]
xor ebp, ebp
mov r13, qword [rsp + 0x78]
mov r12, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x60]
mov word [rdx], bp
mov rax, qword [rdi + 0x70]
mov byte [rax + 0xf], 1
xor eax, eax
jmp 0x140010f6d
mov rax, qword [rdi + 0x70]
mov byte [rax + 0xf], bpl
xor eax, eax
jmp 0x140010f6d
lea rax, str.alloc___of_ssl_sub_contexts_failed
mov r9d, 0x2e9
lea r8, str.E:mbedtls_3.2.1mbedtls_3.2.1library_ssl_tls.c
mov qword [rsp + 0x20], rax
mov edx, 1
mov rcx, rdi
call fcn.140024d00
mov rcx, qword [rdi + 0x70]
call fcn.14006dc24
mov rcx, qword [rdi + 0x90]
call fcn.14006dc24
mov rcx, qword [rdi + 0x68]
call fcn.14006dc24
mov eax, 0xffff8100
mov qword [rdi + 0x70], rbp
mov qword [rdi + 0x90], rbp
mov qword [rdi + 0x68], rbp
add rsp, 0x40
pop rdi
pop rbp
pop rbx
ret