Function at 0x4250aa
Capabilities:
Hash data via bcrypt
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x44
mov eax, dword [0x475280]
xor eax, esp
mov dword [esp + 0x40], eax
and dword [esp], 0
xor eax, eax
push ebx
push esi
mov esi, dword [ebp + 8]
mov ebx, edx
push edi
mov dword [esp + 0x14], ecx
lea edi, [esp + 0x2c]
push 8
pop ecx
rep stosd dword es:[edi], eax
push 0xa00000
mov dword [esp + 0x24], esi
call fcn.00415500
mov dword [esp + 0x28], eax
pop ecx
test eax, eax
jne 0x4250fc
mov esi, 0x8007000e
jmp 0x4252d9
mov edi, dword [esp + 0x14]
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x425114
mov ecx, 0x40239c
mov dword [esp + 0x1c], ecx
test ebx, ebx
je 0x425139
mov eax, dword [edi + 0x10]
push esi
push dword [eax + 0x14]
push dword [eax + 0x10]
push ecx
push 3
mov ecx, ebx
call dword [0x47744c]
call ebx
mov esi, eax
test esi, esi
jne 0x4252d9
lea ecx, [esp + 0xc]
call fcn.00424d41
mov eax, dword [edi + 0x10]
push ecx
mov ecx, dword [edi]
push dword [eax + 0xc]
push dword [eax + 8]
call fcn.00424b17
mov esi, eax
test esi, esi
js 0x4252d9
test ebx, ebx
je 0x425183
push dword [esp + 0x20]
mov ecx, ebx
push 0
push 0
push dword [esp + 0x28]
push 4
call dword [0x47744c]
call ebx
mov esi, eax
test esi, esi
jne 0x4252d9
mov ecx, dword [edi + 0x10]
xor edx, edx
and dword [esp + 0x10], edx
mov dword [esp + 0x18], edx
mov eax, dword [ecx + 0x10]
sub eax, edx
mov dword [esp + 0x28], eax
mov eax, dword [ecx + 0x14]
sbb eax, dword [esp + 0x10]
test eax, eax
jb 0x4251b7
ja 0x4251b0
cmp dword [esp + 0x28], 0xa00000
jbe 0x4251b7
mov eax, 0xa00000
jmp 0x4251bc
mov eax, dword [ecx + 0x10]
sub eax, edx
and dword [esp + 0x14], 0
lea ecx, [esp + 0x14]
push 0
push ecx
push eax
push dword [esp + 0x30]
push dword [edi]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4252c2
push 0
push dword [esp + 0x18]
push dword [esp + 0x2c]
push dword [esp + 0x18]
call dword [sym.imp.bcrypt.dll_BCryptHashData]
test eax, eax
jns 0x4251fa
push 7
pop ecx
int 0x29
mov edx, dword [esp + 0x18]
add edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
adc eax, 0
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], eax
test ebx, ebx
je 0x42523d
push dword [esp + 0x20]
mov ecx, ebx
push eax
push edx
push dword [esp + 0x28]
push 4
call dword [0x47744c]
call ebx
mov esi, eax
test esi, esi
jne 0x4252d9
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov ecx, dword [edi + 0x10]
cmp eax, dword [ecx + 0x14]
ja 0x425254
jb 0x425190
cmp edx, dword [ecx + 0x10]
jb 0x425190
push 0
push 0x20
lea eax, [esp + 0x34]
push eax
push dword [esp + 0x18]
call dword [sym.imp.bcrypt.dll_BCryptFinishHash]
test eax, eax
jns 0x425270
push 7
pop ecx
int 0x29
push dword [esp + 0xc]
call dword [sym.imp.bcrypt.dll_BCryptDestroyHash]
and dword [esp + 0xc], 0
xor ecx, ecx
mov edx, dword [edi + 0x10]
lea edi, [esp + 0x2c]
mov eax, dword [edx + ecx*4 + 0x18]
cmp eax, dword [edi + ecx*4]
jne 0x4252bb
inc ecx
cmp ecx, 8
jne 0x425288
test ebx, ebx
je 0x4252ef
push dword [esp + 0x20]
mov ecx, ebx
push dword [esp + 0x14]
push dword [esp + 0x20]
push dword [esp + 0x28]
push 5
call dword [0x47744c]
call ebx
mov esi, eax
jmp 0x4252d9
mov esi, 0x80004005
jmp 0x4252ef
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00411710
mov esi, eax
test esi, esi
js 0x4252d9
mov esi, 0x80004005
cmp dword [esp + 0xc], 0
je 0x4252ef
push dword [esp + 0xc]
call dword [sym.imp.bcrypt.dll_BCryptDestroyHash]
and dword [esp + 0xc], 0
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4252fe
push eax
call fcn.00415510
pop ecx
mov ecx, dword [esp + 0x4c]
mov eax, esi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00471d10
mov esp, ebp
pop ebp
ret 4