Function at 0x10025819
Capabilities:
Hash data via bcrypt

Disassembly:
push 0x16c
mov eax, 0x1023e339
call fcn.10236073
mov eax, dword [ebp + 0x10]
xor ebx, ebx
mov edi, dword [ebp + 8]
mov edx, dword [ebp + 0x1c]
mov dword [ebp - 0x178], edi
mov dword [ebp - 4], ebx
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x14c], edx
mov dword [ebp - 0x148], ebx
test eax, eax
je 0x10025ca3
test byte [ebp + 0x18], 8
je 0x100258e3
cmp dword [ebp + 0x20], ebx
je 0x100258b5
test edx, edx
jne 0x1002593a
push str.InternalError
lea ecx, [ebp - 0x40]
call fcn.100047be
push str.BCryptGenerateHash:_With_HMAC_flag:_null_secret_input
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 7
call fcn.100047be
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 8
push eax
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0xb8]
call fcn.1021b520
push 0x102e88c4
lea eax, [ebp - 0xb8]
jmp 0x10025cec
push str.InternalError
lea ecx, [ebp - 0x28]
call fcn.100047be
push str.BCryptGenerateHash:_With_HMAC_flag:_Invalid_secret_size
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 5
call fcn.100047be
mov byte [ebp - 4], 6
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x40]
jmp 0x10025899
cmp dword [ebp + 0x20], ebx
je 0x1002590f
push str.InternalError
lea ecx, [ebp - 0x28]
call fcn.100047be
push str.BCryptGenerateHash:_Without_HMAC_flag:_secret_size_must_be_zero
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 9
call fcn.100047be
mov byte [ebp - 4], 0xa
jmp 0x100258da
test edx, edx
je 0x1002593a
push str.InternalError
lea ecx, [ebp - 0x28]
call fcn.100047be
push str.BCryptGenerateHash:_Without_HMAC_flag:_secret_input_must_be_null
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0xb
call fcn.100047be
mov byte [ebp - 4], 0xc
jmp 0x100258da
mov eax, dword [ebp + 0xc]
sub eax, ebx
je 0x10025977
sub eax, 1
je 0x10025970
push str.InternalError
lea ecx, [ebp - 0x28]
call fcn.100047be
push str.BCryptGenerateHash:_Unsupported_hash_algorithm_
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0xd
call fcn.100047be
mov byte [ebp - 4], 0xe
jmp 0x100258da
mov eax, 0x102619f0
jmp 0x1002597c
mov eax, 0x102619e4
xorps xmm0, xmm0
mov dword [ebp - 0x154], ebx
movups xmmword [ebp - 0x174], xmm0
movups xmmword [ebp - 0x164], xmm0
push dword [ebp + 0x18]
mov dword [ebp - 4], 0xf
push ebx
push eax
lea eax, [ebp - 0x174]
push eax
call sub.bcrypt.dll_BCryptOpenAlgorithmProvider
mov esi, eax
test esi, esi
jns 0x100259e4
push str.InternalError
lea ecx, [ebp - 0x28]
lfence
call fcn.100047be
push esi
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x10
push str.BCrypt_Failed_to_open_algorithm_provider____08x
push eax
call fcn.1000d1e8
add esp, 0xc
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x28]
push ecx
jmp 0x10025899
push ebx
lea eax, [ebp - 0x140]
mov dword [ebp - 0x138], ebx
push eax
push 4
lea eax, [ebp - 0x138]
mov dword [ebp - 0x140], ebx
push eax
push str.ObjectLength
push dword [ebp - 0x174]
call sub.bcrypt.dll_BCryptGetProperty
mov esi, eax
test esi, esi
jns 0x10025a43
push str.InternalError
lea ecx, [ebp - 0x28]
lfence
call fcn.100047be
push esi
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x12
push str.BCrypt_Failed_to_get_hash_object_size____08x
push eax
call fcn.1000d1e8
add esp, 0xc
mov byte [ebp - 4], 0x13
jmp 0x100259db
mov ebx, dword [ebp - 0x138]
xor eax, eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
test ebx, ebx
je 0x10025a9b
cmp ebx, 0x7fffffff
ja 0x10025cf2
lfence
lfence
push ebx
cmp ebx, 0x1000
jb 0x10025a7a
call fcn.100038ad
jmp 0x10025a7f
call fcn.1021b520
pop ecx
lea esi, [eax + ebx]
mov dword [ebp - 0x4c], eax
push ebx
xor ebx, ebx
mov dword [ebp - 0x44], esi
push ebx
push eax
call fcn.10008a17
add esp, 0xc
mov dword [ebp - 0x48], esi
jmp 0x10025a9d
xor ebx, ebx
mov byte [ebp - 0x134], bl
lea eax, [ebp - 0x4c]
push dword [ebp - 0x134]
lea ecx, [ebp - 0x15c]
push eax
call fcn.10023707
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
je 0x10025b01
mov eax, dword [ebp - 0x44]
sub eax, ecx
mov dword [ebp - 0x134], ecx
mov dword [ebp - 0x13c], eax
cmp eax, 0x1000
jb 0x10025af8
lea eax, [ebp - 0x13c]
push eax
lea eax, [ebp - 0x134]
push eax
call fcn.10006a87
mov eax, dword [ebp - 0x13c]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x134]
push eax
push ecx
call fcn.1021b520
pop ecx
pop ecx
push ebx
lea eax, [ebp - 0x140]
mov dword [ebp - 0x144], ebx
push eax
push 4
lea eax, [ebp - 0x144]
push eax
push str.HashDigestLength
push dword [ebp - 0x174]
call sub.bcrypt.dll_BCryptGetProperty
mov esi, eax
test esi, esi
jns 0x10025b5d
push str.InternalError
lea ecx, [ebp - 0x28]
lfence
call fcn.100047be
push esi
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x14
push str.BCrypt_Failed_to_get_hash_output_size____08x
push eax
call fcn.1000d1e8
add esp, 0xc
mov byte [ebp - 4], 0x15
jmp 0x100259db
mov ebx, dword [ebp - 0x144]
xor eax, eax
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
test ebx, ebx
je 0x10025b8d
push ebx
mov ecx, edi
call fcn.100099d8
mov esi, dword [edi]
push ebx
push 0
push esi
call fcn.10008a17
lea eax, [esi + ebx]
add esp, 0xc
mov dword [edi + 4], eax
mov eax, dword [ebp - 0x158]
xor ebx, ebx
sub eax, dword [ebp - 0x15c]
push ebx
push dword [ebp + 0x20]
mov dword [ebp - 0x148], 1
push dword [ebp - 0x14c]
push eax
push dword [ebp - 0x15c]
lea eax, [ebp - 0x16c]
push eax
push dword [ebp - 0x174]
call sub.bcrypt.dll_BCryptCreateHash
mov esi, eax
lfence
test esi, esi
jns 0x10025bfd
push str.InternalError
lea ecx, [ebp - 0x28]
call fcn.100047be
push esi
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x16
push str.BCrypt_Failed_to_create_hash_handle____08x
push eax
call fcn.1000d1e8
add esp, 0xc
mov byte [ebp - 4], 0x17
jmp 0x100259db
push ebx
push dword [ebp + 0x14]
push dword [ebp - 0x150]
push dword [ebp - 0x16c]
call sub.bcrypt.dll_BCryptHashData
mov esi, eax
test esi, esi
jns 0x10025c47
push str.InternalError
lea ecx, [ebp - 0x28]
lfence
call fcn.100047be
push esi
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x18
push str.BCrypt_Failed_to_hash_data____08x
push eax
call fcn.1000d1e8
add esp, 0xc
mov byte [ebp - 4], 0x19
jmp 0x100259db
mov eax, dword [edi + 4]
sub eax, dword [edi]
push ebx
push eax
push dword [edi]
push dword [ebp - 0x16c]
call sub.bcrypt.dll_BCryptFinishHash
mov esi, eax
test esi, esi
jns 0x10025c90
push str.InternalError
lea ecx, [ebp - 0x28]
lfence
call fcn.100047be
push esi
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x1a
push str.BCrypt_Failed_to_finish_hashing_data____08x
push eax
call fcn.1000d1e8
add esp, 0xc
mov byte [ebp - 4], 0x1b
jmp 0x100259db
lea ecx, [ebp - 0x174]
call fcn.10024f53
mov eax, edi
call fcn.10236022
ret
push str.InternalError
lea ecx, [ebp - 0x58]
call fcn.100047be
push str.BCryptGenerateHash:_null_data_input
lea ecx, [ebp - 0xd0]
mov dword [ebp - 4], 1
call fcn.100047be
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0xd0]
push eax
lea ecx, [ebp - 0x130]
call fcn.1021b520
push 0x102e88c4
lea eax, [ebp - 0x130]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
call fcn.10009a88
int3