Function at 0x140005730
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 0x140005750
call fcn.140012a30
mov rbx, qword [rdi + 0x68]
xor ebp, ebp
test rbx, rbx
je 0x140005796
mov rcx, qword [rbx + 0x70]
test rcx, rcx
je 0x140005776
call fcn.140005410
mov rcx, qword [rbx + 0x70]
call fcn.140081438
mov qword [rbx + 0x70], rbp
mov rcx, qword [rbx + 0x80]
call fcn.140081438
mov rax, qword [fcn.140080540]
xor edx, edx
mov r8d, 0x98
mov rcx, rbx
call rax
cmp qword [rdi + 0x70], rbp
je 0x1400057a4
mov rcx, rdi
call fcn.140006bf0
cmp qword [rdi + 0x90], rbp
jne 0x1400057c3
mov edx, 0x180
mov ecx, 1
call fcn.140087e2c
mov qword [rdi + 0x90], rax
cmp qword [rdi + 0x68], rbp
jne 0x1400057dc
mov edx, 0x98
mov ecx, 1
call fcn.140087e2c
mov qword [rdi + 0x68], rax
mov rax, qword [rdi + 0x70]
test rax, rax
jne 0x1400057ff
mov edx, 0xa58
lea ecx, [rax + 1]
call fcn.140087e2c
mov qword [rdi + 0x70], rax
test rax, rax
je 0x140005d2c
cmp qword [rdi + 0x90], rbp
je 0x140005d2c
mov rax, qword [rdi + 0x68]
test rax, rax
je 0x140005d2c
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, 0xc0
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
xor eax, eax
mov rbx, qword [rdi + 0x90]
movups xmmword [rbx], xmm0
lea rcx, [rbx + 0x80]
movups xmmword [rbx + 0x10], xmm0
movups xmmword [rbx + 0x20], xmm0
movups xmmword [rbx + 0x30], xmm0
mov qword [rbx + 0x40], rax
mov qword [rbx + 0x78], rax
movups xmmword [rbx + 0x140], xmm0
movups xmmword [rbx + 0x150], xmm0
movups xmmword [rbx + 0x160], xmm0
movups xmmword [rbx + 0x170], xmm0
call fcn.140080540
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbx + 0x48], xmm0
mov qword [rbx + 0x58], rax
xor edx, edx
movups xmmword [rbx + 0x60], xmm0
mov qword [rbx + 0x70], rax
mov r8d, 0x10c
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.140080540
lea rcx, [rbx + 0x580]
xor edx, edx
mov r8d, 0x4d8
call fcn.140080540
xorps xmm0, xmm0
lea rcx, [rbx + 0x4b0]
movups xmmword [rbx + 0x440], xmm0
xor eax, eax
xor edx, edx
movups xmmword [rbx + 0x450], xmm0
mov r8d, 0xd0
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
call fcn.140080540
mov qword [rbx + 0x4a8], rbp
movabs rax, 0xcbbb9d5dc1059ed8
mov qword [rbx + 0x4b0], rbp
mov qword [rbx + 0x4b8], rax
movabs rax, 0x629a292a367cd507
mov dword [rbx + 0x578], 1
mov qword [rbx + 0x4c0], rax
lea rcx, [rbx + 0x78]
movabs rax, 0x9159015a3070dd17
xor edx, edx
mov qword [rbx + 0x4c8], rax
mov r8d, 0xf0
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, [0x1400056c0]
mov qword [rbx + 0x20], rax
call fcn.140080540
lea rcx, [rbx + 0x169]
xor edx, edx
mov r8d, 0x1c7
call fcn.140080540
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 0x140005aca
mov rcx, qword [rdi + 0x70]
mov rax, qword [rdi + 0x80]
mov qword [rcx + 0x428], rax
mov rax, qword [rdi]
mov rdx, qword [rdi + 0x70]
movzx ecx, byte [rax + 8]
neg cl
mov rcx, rdi
sbb al, al
and al, 2
mov byte [rdx + 0xd], al
xor edx, edx
call fcn.14000b9f0
mov rax, qword [rdi]
mov rsi, qword [rax + 0xe8]
mov qword [rsp + 0x38], r14
test rsi, rsi
je 0x140005b8c
mov rbx, rbp
cmp dword [rsi], ebp
je 0x140005af4
cmp rbx, 0xe
jae 0x140005af4
inc rbx
cmp dword [rsi + rbx*4], ebp
jne 0x140005ae6
lea rcx, [rbx + 1]
mov edx, 2
call fcn.140087e2c
mov r9, rax
test rax, rax
je 0x140005c42
mov rdx, rbp
test rbx, rbx
je 0x140005b75
lea r10, [0x1400a78c0]
nop dword [rax]
mov r8d, dword [rsi + rdx*4]
mov rcx, r10
mov eax, 5
nop dword [rax]
cmp eax, r8d
je 0x140005b5f
mov eax, dword [rcx + 0x10]
add rcx, 0x10
test eax, eax
jne 0x140005b30
mov rcx, r9
call fcn.140081438
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 0x140005b40
movzx eax, word [rcx + 4]
mov word [r9 + rdx*2], ax
inc rdx
cmp rdx, rbx
jb 0x140005b20
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 0x140005ba3
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 0x140005d1d
cmp dword [rbx], r14d
jne 0x140005d1d
mov rbx, qword [rbx + 0xd8]
test rbx, rbx
je 0x140005d1d
mov eax, dword [rbx]
mov r8, rbp
mov rdx, rbx
test eax, eax
je 0x140005b48
lea rsi, [0x140000000]
dec eax
cmp eax, 5
ja case.default.0x140005bf9
cdqe
mov ecx, dword [rsi + rax*4 + 0x5d8c]
add rcx, rsi
jmp rcx
add r8, 4
cmp r8, 0xfffe
ja 0x140005b48
mov eax, dword [rdx + 4]
add rdx, 4
test eax, eax
jne 0x140005be6
cmp r8, 2
jb 0x140005b48
lea rdx, [r8 + 2]
lea ecx, [rax + 1]
call fcn.140087e2c
mov rcx, qword [rdi + 0x70]
mov qword [rcx + 0x70], rax
mov rax, qword [rdi + 0x70]
mov rdx, qword [rax + 0x70]
test rdx, rdx
jne 0x140005c4c
mov eax, 0xffff8100
jmp 0x140005b4d
mov eax, dword [rbx]
test eax, eax
je 0x140005d0b
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.0x140005ca5
cdqe
mov ecx, dword [rsi + rax*4 + 0x5da4]
add rcx, rsi
jmp rcx
movzx eax, r8w
movzx ecx, r9w
jmp 0x140005cdf
mov eax, 0x203
lea ecx, [rax - 2]
jmp 0x140005cdf
movzx eax, r14w
movzx ecx, r10w
jmp 0x140005cdf
movzx eax, r11w
movzx ecx, r15w
jmp 0x140005cdf
movzx eax, r12w
movzx ecx, r13w
jmp 0x140005cdf
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 0x140005c92
mov rdi, qword [rsp + 0x60]
xor ebp, ebp
mov r15, qword [rsp + 0x30]
mov r13, qword [rsp + 0x78]
mov r12, qword [rsp + 0x70]
mov word [rdx], bp
mov rax, qword [rdi + 0x70]
mov byte [rax + 0xf], 1
xor eax, eax
jmp 0x140005b4d
mov rax, qword [rdi + 0x70]
mov byte [rax + 0xf], bpl
xor eax, eax
jmp 0x140005b4d
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.1400196f0
mov rcx, qword [rdi + 0x70]
call fcn.140081438
mov rcx, qword [rdi + 0x90]
call fcn.140081438
mov rcx, qword [rdi + 0x68]
call fcn.140081438
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