Function at 0x100900b0
Capabilities:
Hash data using sha256

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34
push ebx
push esi
mov ebx, edx
push edi
mov edi, ecx
test ebx, ebx
je 0x10090226
mov esi, dword [ebx + 4]
test dword [esi + 0x54], 0x10000000
je 0x10090128
mov esi, dword [sym.python310.dll_PyExc_TypeError]
mov edx, 0x26
mov edi, dword [0x103fb118]
mov ecx, str.Strings_must_be_encoded_before_hashing
push 0
push 0
push 0
call fcn.101599e0
mov ebx, eax
push ebx
push esi
push edi
call sym.python310.dll__PyErr_SetObject
add esp, 0x18
test ebx, ebx
je 0x10090319
add dword [ebx], 0xffffffff
jne 0x10090319
mov eax, dword [ebx + 4]
push ebx
mov eax, dword [eax + 0x18]
call eax
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push ebx
call sym.python310.dll_PyObject_CheckBuffer
add esp, 4
test eax, eax
jne 0x10090184
mov esi, dword [sym.python310.dll_PyExc_TypeError]
lea edx, [eax + 0x29]
mov edi, dword [0x103fb118]
mov ecx, str.object_supporting_the_buffer_API_required
push eax
push eax
push eax
call fcn.101599e0
mov ebx, eax
push ebx
push esi
push edi
call sym.python310.dll__PyErr_SetObject
add esp, 0x18
test ebx, ebx
je 0x10090319
add dword [ebx], 0xffffffff
jne 0x10090319
mov eax, dword [ebx + 4]
push ebx
mov eax, dword [eax + 0x18]
call eax
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x50]
test eax, eax
je 0x10090207
mov eax, dword [eax]
test eax, eax
je 0x10090207
push 0
lea ecx, [esp + 0x18]
push ecx
push ebx
call eax
add esp, 0xc
cmp eax, 0xffffffff
je 0x10090319
cmp dword [esp + 0x28], 1
jle 0x10090226
mov esi, dword [sym.python310.dll_PyExc_BufferError]
mov edx, 0x1f
mov edi, dword [0x103fb118]
mov ecx, str.Buffer_must_be_single_dimension
push 0
push 0
push 0
call fcn.101599e0
mov ebx, eax
push ebx
push esi
push edi
call sym.python310.dll__PyErr_SetObject
add esp, 0x18
test ebx, ebx
je 0x100901f1
add dword [ebx], 0xffffffff
jne 0x100901f1
mov eax, dword [ebx + 4]
push ebx
mov eax, dword [eax + 0x18]
call eax
add esp, 4
lea eax, [esp + 0x14]
push eax
call sym.python310.dll_PyBuffer_Release
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [esi + 0xc]
push str.a_bytes_like_object_is_required__not__.100s
push dword [sym.python310.dll_PyExc_TypeError]
call sym.python310.dll_PyErr_Format
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 4]
cmp eax, sym.python310.dll_PyModule_Type
je 0x1009028a
push sym.python310.dll_PyModule_Type
push eax
call sym.python310.dll_PyType_IsSubtype
add esp, 8
test eax, eax
jne 0x1009028a
mov edi, dword [0x103fb118]
lea edx, [eax + 0x28]
mov esi, dword [sym.python310.dll_PyExc_TypeError]
mov ecx, str.bad_argument_type_for_built_in_operation
push eax
push eax
push eax
call fcn.101599e0
push eax
push esi
push edi
mov dword [esp + 0x28], eax
call sym.python310.dll__PyErr_SetObject
mov ecx, dword [esp + 0x28]
add esp, 0x18
test ecx, ecx
je 0x10090286
add dword [ecx], 0xffffffff
jne 0x10090286
mov eax, dword [ecx + 4]
push ecx
mov eax, dword [eax + 0x18]
call eax
add esp, 4
xor ecx, ecx
jmp 0x1009028d
mov ecx, dword [edi + 0x10]
call fcn.1008fd70
mov esi, eax
test esi, esi
je 0x10090308
mov dword [esi + 8], 0x6a09e667
mov dword [esi + 0xc], 0xbb67ae85
mov dword [esi + 0x10], 0x3c6ef372
mov dword [esi + 0x14], 0xa54ff53a
mov dword [esi + 0x18], 0x510e527f
mov dword [esi + 0x1c], 0x9b05688c
mov dword [esi + 0x20], 0x1f83d9ab
mov dword [esi + 0x24], 0x5be0cd19
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x70], 0
mov dword [esi + 0x74], 0x20
mov eax, dword [0x103fb118]
cmp dword [eax + 0x34], 0
je 0x10090322
add dword [esi], 0xffffffff
jne 0x10090308
mov eax, dword [esi + 4]
push esi
mov eax, dword [eax + 0x18]
call eax
add esp, 4
test ebx, ebx
je 0x10090319
lea eax, [esp + 0x14]
push eax
call sym.python310.dll_PyBuffer_Release
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test ebx, ebx
je 0x10090342
push dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ecx, esi
call fcn.1008fa70
lea eax, [esp + 0x18]
push eax
call sym.python310.dll_PyBuffer_Release
add esp, 8
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret