Function at 0x10090350
Capabilities:
Hash data using sha224

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 0x100904c6
mov esi, dword [ebx + 4]
test dword [esi + 0x54], 0x10000000
je 0x100903c8
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 0x100905b9
add dword [ebx], 0xffffffff
jne 0x100905b9
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 0x10090424
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 0x100905b9
add dword [ebx], 0xffffffff
jne 0x100905b9
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 0x100904a7
mov eax, dword [eax]
test eax, eax
je 0x100904a7
push 0
lea ecx, [esp + 0x18]
push ecx
push ebx
call eax
add esp, 0xc
cmp eax, 0xffffffff
je 0x100905b9
cmp dword [esp + 0x28], 1
jle 0x100904c6
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 0x10090491
add dword [ebx], 0xffffffff
jne 0x10090491
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 0x1009052a
push sym.python310.dll_PyModule_Type
push eax
call sym.python310.dll_PyType_IsSubtype
add esp, 8
test eax, eax
jne 0x1009052a
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 0x10090526
add dword [ecx], 0xffffffff
jne 0x10090526
mov eax, dword [ecx + 4]
push ecx
mov eax, dword [eax + 0x18]
call eax
add esp, 4
xor ecx, ecx
jmp 0x1009052d
mov ecx, dword [edi + 0x10]
call fcn.1008fcd0
mov esi, eax
test esi, esi
je 0x100905a8
mov dword [esi + 8], 0xc1059ed8
mov dword [esi + 0xc], 0x367cd507
mov dword [esi + 0x10], 0x3070dd17
mov dword [esi + 0x14], 0xf70e5939
mov dword [esi + 0x18], 0xffc00b31
mov dword [esi + 0x1c], 0x68581511
mov dword [esi + 0x20], 0x64f98fa7
mov dword [esi + 0x24], 0xbefa4fa4
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x70], 0
mov dword [esi + 0x74], 0x1c
mov eax, dword [0x103fb118]
cmp dword [eax + 0x34], 0
je 0x100905c2
add dword [esi], 0xffffffff
jne 0x100905a8
mov eax, dword [esi + 4]
push esi
mov eax, dword [eax + 0x18]
call eax
add esp, 4
test ebx, ebx
je 0x100905b9
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 0x100905e2
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