Function at 0x10099850
Capabilities:
Hash data using sha256

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 0x100998be
push sym.python310.dll_PyModule_Type
push eax
call sym.python310.dll_PyType_IsSubtype
add esp, 8
test eax, eax
jne 0x100998be
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 0x100998ba
add dword [ecx], 0xffffffff
jne 0x100998ba
mov eax, dword [ecx + 4]
push ecx
mov eax, dword [eax + 0x18]
call eax
add esp, 4
xor edi, edi
jmp 0x100998c1
mov edi, dword [esi + 0x10]
test ebx, ebx
je 0x10099a27
mov esi, dword [ebx + 4]
test dword [esi + 0x54], 0x10000000
je 0x10099929
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 0x10099af7
add dword [ebx], 0xffffffff
jne 0x10099af7
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 0x10099985
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 0x10099af7
add dword [ebx], 0xffffffff
jne 0x10099af7
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 0x10099a08
mov eax, dword [eax]
test eax, eax
je 0x10099a08
push 0
lea ecx, [esp + 0x18]
push ecx
push ebx
call eax
add esp, 0xc
cmp eax, 0xffffffff
je 0x10099af7
cmp dword [esp + 0x28], 1
jle 0x10099a27
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 0x100999f2
add dword [ebx], 0xffffffff
jne 0x100999f2
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.10099500
mov esi, eax
test esi, esi
je 0x10099ae6
mov dword [esi + 8], 0xf3bcc908
mov dword [esi + 0xc], 0x6a09e667
mov dword [esi + 0x10], 0x84caa73b
mov dword [esi + 0x14], 0xbb67ae85
mov dword [esi + 0x18], 0xfe94f82b
mov dword [esi + 0x1c], 0x3c6ef372
mov dword [esi + 0x20], 0x5f1d36f1
mov dword [esi + 0x24], 0xa54ff53a
mov dword [esi + 0x28], 0xade682d1
mov dword [esi + 0x2c], 0x510e527f
mov dword [esi + 0x30], 0x2b3e6c1f
mov dword [esi + 0x34], 0x9b05688c
mov dword [esi + 0x38], 0xfb41bd6b
mov dword [esi + 0x3c], 0x1f83d9ab
mov dword [esi + 0x40], 0x137e2179
mov dword [esi + 0x44], 0x5be0cd19
mov dword [esi + 0x48], 0
mov dword [esi + 0x4c], 0
mov dword [esi + 0xd0], 0
mov dword [esi + 0xd4], 0x40
mov eax, dword [0x103fb118]
cmp dword [eax + 0x34], 0
je 0x10099b00
add dword [esi], 0xffffffff
jne 0x10099ae6
mov eax, dword [esi + 4]
push esi
mov eax, dword [eax + 0x18]
call eax
add esp, 4
test ebx, ebx
je 0x10099af7
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 0x10099b20
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