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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x12c
mov eax, dword [0x77d1a0c4]
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 0x77cf10f6
cmp ecx, ebx
je 0x77cf13a3
mov eax, dword [ebp + 0x10]
or eax, dword [ebp + 0x14]
je 0x77cf13a3
cmp edx, ebx
je 0x77cf13a3
cmp esi, ebx
je 0x77cf13a3
cmp dword [ebp + 0x18], 0x8003
jne 0x77cf1128
mov edi, 0x77d1a0cc
mov dword [ebp - 0x11c], edi
jmp 0x77cf1145
cmp dword [ebp + 0x18], 0x800c
jne 0x77cf13a3
mov dword [ebp - 0x11c], 0x77d1a144
mov edi, dword [ebp - 0x11c]
cmp dword [edi], ebx
jne 0x77cf115f
push edi
call fcn.77cf28d4
mov esi, eax
cmp esi, ebx
jl 0x77cf135b
mov esi, dword [ebp - 0x120]
mov eax, dword [esi]
cmp eax, dword [edi + 8]
jae 0x77cf1170
mov esi, 0xc0000023
jmp 0x77cf135b
mov eax, dword [edi + 4]
mov esi, 0x100
cmp eax, esi
jbe 0x77cf119f
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 0x77cf11ab
mov esi, 0xc0000017
jmp 0x77cf135b
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 0x77cf135b
mov eax, dword [ebp - 0x124]
cmp eax, ebx
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x110], ebx
mov dword [ebp - 0x10c], ebx
je 0x77cf1272
mov dword [ebp - 0x108], eax
mov eax, dword [ebp + 0x14]
cmp eax, ebx
jl 0x77cf131f
jg 0x77cf1206
cmp ecx, ebx
jbe 0x77cf131f
cmp eax, ebx
jl 0x77cf121b
jg 0x77cf1214
cmp ecx, 0x4000000
jbe 0x77cf121b
mov edi, 0x4000000
jmp 0x77cf121d
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 0x77cf1347
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 0x77cf1214
jl 0x77cf1319
cmp ecx, ebx
jbe 0x77cf1319
jmp 0x77cf1206
mov eax, dword [ebp + 0x14]
cmp eax, ebx
jl 0x77cf131f
jg 0x77cf1287
cmp ecx, ebx
jbe 0x77cf131f
cmp eax, ebx
jl 0x77cf129c
jg 0x77cf1295
cmp ecx, 0x4000000
jbe 0x77cf129c
mov edi, 0x4000000
jmp 0x77cf129e
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 0x77cf139c
push ebx
push edi
push eax
push dword [ebp - 0x114]
call sub.bcrypt.dll_BCryptHashData
mov esi, eax
cmp esi, ebx
jl 0x77cf1347
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 0x77cf1295
jl 0x77cf1319
cmp ecx, ebx
ja 0x77cf1287
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 0x77cf1347
mov eax, dword [edi + 8]
mov ecx, dword [ebp - 0x120]
mov dword [ecx], eax
xor esi, esi
cmp dword [ebp - 0x108], ebx
je 0x77cf135b
push dword [ebp - 0x108]
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
cmp dword [ebp - 0x114], ebx
je 0x77cf136e
push dword [ebp - 0x114]
call sub.bcrypt.dll_BCryptDestroyHash
cmp dword [ebp - 0x118], ebx
je 0x77cf1398
lea eax, [ebp - 0x104]
cmp dword [ebp - 0x118], eax
je 0x77cf1398
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 0x77cf13a8
mov esi, 0xc0000022
jmp 0x77cf1347
mov eax, 0xc000000d
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.77cc744e
leave
ret 0x1c