Function at 0x77cfdf32
Capabilities:
Hash data via bcrypt
Read file via mapping

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x12c
mov eax, dword [0x77d260c4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x1c]
push ebx
xor ebx, ebx
cmp eax, ebx
push esi
mov esi, dword [ebp + 0x20]
push edi
mov dword [ebp - 0x124], eax
mov dword [ebp - 0x12c], ecx
mov dword [ebp - 0x128], edx
mov dword [ebp - 0x120], esi
mov dword [ebp - 0x114], ebx
mov dword [ebp - 0x118], ebx
mov dword [ebp - 0x108], ebx
jne 0x77cfdf8e
cmp ecx, ebx
je 0x77cfe23b
mov eax, dword [ebp + 0x10]
or eax, dword [ebp + 0x14]
je 0x77cfe23b
cmp edx, ebx
je 0x77cfe23b
cmp esi, ebx
je 0x77cfe23b
cmp dword [ebp + 0x18], 0x8003
jne 0x77cfdfc0
mov edi, 0x77d260cc
mov dword [ebp - 0x11c], edi
jmp 0x77cfdfdd
cmp dword [ebp + 0x18], 0x800c
jne 0x77cfe23b
mov dword [ebp - 0x11c], 0x77d26144
mov edi, dword [ebp - 0x11c]
cmp dword [edi], ebx
jne 0x77cfdff7
push edi
call fcn.77cff76c
mov esi, eax
cmp esi, ebx
jl 0x77cfe1f3
mov esi, dword [ebp - 0x120]
mov eax, dword [esi]
cmp eax, dword [edi + 8]
jae 0x77cfe008
mov esi, 0xc0000023
jmp 0x77cfe1f3
mov eax, dword [edi + 4]
mov esi, 0x100
cmp eax, esi
jbe 0x77cfe037
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
cmp eax, ebx
mov dword [ebp - 0x118], eax
jne 0x77cfe043
mov esi, 0xc0000017
jmp 0x77cfe1f3
lea eax, [ebp - 0x104]
mov dword [ebp - 0x118], eax
push ebx
push ebx
push ebx
push esi
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0x114]
push eax
push dword [edi]
call sub.bcrypt.dll_BCryptCreateHash
mov esi, eax
cmp esi, ebx
jl 0x77cfe1f3
mov eax, dword [ebp - 0x124]
cmp eax, ebx
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x110], ebx
mov dword [ebp - 0x10c], ebx
je 0x77cfe10a
mov dword [ebp - 0x108], eax
mov eax, dword [ebp + 0x14]
cmp eax, ebx
jl 0x77cfe1b7
jg 0x77cfe09e
cmp ecx, ebx
jbe 0x77cfe1b7
cmp eax, ebx
jl 0x77cfe0b3
jg 0x77cfe0ac
cmp ecx, 0x4000000
jbe 0x77cfe0b3
mov edi, 0x4000000
jmp 0x77cfe0b5
mov edi, ecx
push ebx
push edi
push dword [ebp - 0x108]
push dword [ebp - 0x114]
call sub.bcrypt.dll_BCryptHashData
mov esi, eax
cmp esi, ebx
jl 0x77cfe1df
add dword [ebp - 0x108], edi
add dword [ebp - 0x110], edi
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
adc dword [ebp - 0x10c], ebx
sub ecx, dword [ebp - 0x110]
sbb eax, dword [ebp - 0x10c]
cmp eax, ebx
jg 0x77cfe0ac
jl 0x77cfe1b1
cmp ecx, ebx
jbe 0x77cfe1b1
jmp 0x77cfe09e
mov eax, dword [ebp + 0x14]
cmp eax, ebx
jl 0x77cfe1b7
jg 0x77cfe11f
cmp ecx, ebx
jbe 0x77cfe1b7
cmp eax, ebx
jl 0x77cfe134
jg 0x77cfe12d
cmp ecx, 0x4000000
jbe 0x77cfe134
mov edi, 0x4000000
jmp 0x77cfe136
mov edi, ecx
push edi
push dword [ebp - 0x110]
push dword [ebp - 0x10c]
push 4
push dword [ebp - 0x12c]
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
cmp eax, ebx
mov dword [ebp - 0x108], eax
je 0x77cfe234
push ebx
push edi
push eax
push dword [ebp - 0x114]
call sub.bcrypt.dll_BCryptHashData
mov esi, eax
cmp esi, ebx
jl 0x77cfe1df
push dword [ebp - 0x108]
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
add dword [ebp - 0x110], edi
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
adc dword [ebp - 0x10c], ebx
sub ecx, dword [ebp - 0x110]
mov dword [ebp - 0x108], ebx
sbb eax, dword [ebp - 0x10c]
cmp eax, ebx
jg 0x77cfe12d
jl 0x77cfe1b1
cmp ecx, ebx
ja 0x77cfe11f
mov edi, dword [ebp - 0x11c]
push ebx
push dword [edi + 8]
push dword [ebp - 0x128]
push dword [ebp - 0x114]
call sub.bcrypt.dll_BCryptFinishHash
mov esi, eax
cmp esi, ebx
jl 0x77cfe1df
mov eax, dword [edi + 8]
mov ecx, dword [ebp - 0x120]
mov dword [ecx], eax
xor esi, esi
cmp dword [ebp - 0x108], ebx
je 0x77cfe1f3
push dword [ebp - 0x108]
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
cmp dword [ebp - 0x114], ebx
je 0x77cfe206
push dword [ebp - 0x114]
call sub.bcrypt.dll_BCryptDestroyHash
cmp dword [ebp - 0x118], ebx
je 0x77cfe230
lea eax, [ebp - 0x104]
cmp dword [ebp - 0x118], eax
je 0x77cfe230
push dword [ebp - 0x118]
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, esi
jmp 0x77cfe240
mov esi, 0xc0000022
jmp 0x77cfe1df
mov eax, 0xc000000d
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.77cd6011
leave
ret 0x1c