Function at 0x10099b30
Capabilities:
Hash data using sha224

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34
push ebx
push esi
mov esi, ecx
mov ebx, edx
push edi
mov eax, dword [esi + 4]
cmp eax, sym.python310.dll_PyModule_Type
je 0x10099b9e
push sym.python310.dll_PyModule_Type
push eax
call sym.python310.dll_PyType_IsSubtype
add esp, 8
test eax, eax
jne 0x10099b9e
mov edi, dword [0x103fb118]
mov esi, dword [sym.python310.dll_PyExc_TypeError]
push str.bad_argument_type_for_built_in_operation
call sym.python310.dll_PyUnicode_FromString
push eax
push esi
push edi
mov dword [esp + 0x20], eax
call sym.python310.dll__PyErr_SetObject
mov ecx, dword [esp + 0x20]
add esp, 0x10
test ecx, ecx
je 0x10099b9a
add dword [ecx], 0xffffffff
jne 0x10099b9a
mov eax, dword [ecx + 4]
push ecx
mov eax, dword [eax + 0x18]
call eax
add esp, 4
xor edi, edi
jmp 0x10099ba1
mov edi, dword [esi + 0x10]
test ebx, ebx
je 0x10099d07
mov esi, dword [ebx + 4]
test dword [esi + 0x54], 0x10000000
je 0x10099c09
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 0x10099dd7
add dword [ebx], 0xffffffff
jne 0x10099dd7
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 0x10099c65
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 0x10099dd7
add dword [ebx], 0xffffffff
jne 0x10099dd7
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 0x10099ce8
mov eax, dword [eax]
test eax, eax
je 0x10099ce8
push 0
lea ecx, [esp + 0x18]
push ecx
push ebx
call eax
add esp, 0xc
cmp eax, 0xffffffff
je 0x10099dd7
cmp dword [esp + 0x28], 1
jle 0x10099d07
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 0x10099cd2
add dword [ebx], 0xffffffff
jne 0x10099cd2
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 ecx, edi
call fcn.10099460
mov esi, eax
test esi, esi
je 0x10099dc6
mov dword [esi + 8], 0xc1059ed8
mov dword [esi + 0xc], 0xcbbb9d5d
mov dword [esi + 0x10], 0x367cd507
mov dword [esi + 0x14], 0x629a292a
mov dword [esi + 0x18], 0x3070dd17
mov dword [esi + 0x1c], 0x9159015a
mov dword [esi + 0x20], 0xf70e5939
mov dword [esi + 0x24], 0x152fecd8
mov dword [esi + 0x28], 0xffc00b31
mov dword [esi + 0x2c], 0x67332667
mov dword [esi + 0x30], 0x68581511
mov dword [esi + 0x34], 0x8eb44a87
mov dword [esi + 0x38], 0x64f98fa7
mov dword [esi + 0x3c], 0xdb0c2e0d
mov dword [esi + 0x40], 0xbefa4fa4
mov dword [esi + 0x44], 0x47b5481d
mov dword [esi + 0x48], 0
mov dword [esi + 0x4c], 0
mov dword [esi + 0xd0], 0
mov dword [esi + 0xd4], 0x30
mov eax, dword [0x103fb118]
cmp dword [eax + 0x34], 0
je 0x10099de0
add dword [esi], 0xffffffff
jne 0x10099dc6
mov eax, dword [esi + 4]
push esi
mov eax, dword [eax + 0x18]
call eax
add esp, 4
test ebx, ebx
je 0x10099dd7
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 0x10099e00
push dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ecx, esi
call fcn.100990e0
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