Function at 0x102ecf0
Capabilities:
Hash data using sha1
Hash data using sha1 via wincrypt
Hash data via wincrypt
Hash data with md5
Initialize hashing via wincrypt

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x60
mov eax, dword [0x1079e94]
mov ecx, dword [ebp + 0x28]
push ebx
xor ebx, ebx
cmp dword [ebp + 8], 0x10
push esi
mov esi, dword [ebp + 0x18]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x14]
push edi
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x50], ebx
je 0x102ed42
cmp dword [ebp + 8], 0x20
je 0x102ed42
cmp dword [ebp + 8], 0x40
je 0x102ed42
mov edi, 0x8000ffff
push edi
push 0xe3013e
jmp 0x102f13d
cmp eax, ebx
je 0x102f132
cmp esi, ebx
je 0x102f132
push 0xffffffffffffffff
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.0106dfe1
test eax, eax
jne 0x102ed74
mov eax, 0x8007000e
push eax
mov edi, eax
push 0xed013e
jmp 0x102f13d
push 0xffffffffffffffff
push esi
lea eax, [ebp - 0x54]
push eax
call fcn.0106dfe1
test eax, eax
jne 0x102ed96
mov eax, 0x8007000e
push eax
mov edi, eax
push 0xf2013e
jmp 0x102f13d
mov eax, dword [ebp - 0x48]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x102ed9c
sub eax, edx
mov esi, eax
mov eax, dword [ebp - 0x54]
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x102edad
sub eax, edi
lea eax, [eax + esi + 1]
push eax
push ebx
mov dword [ebp - 0x60], eax
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov edi, eax
cmp edi, ebx
mov dword [ebp - 0x50], edi
jne 0x102ede0
mov eax, 0x8007000e
push eax
mov edi, eax
push 0xfb013e
jmp 0x102f13d
mov ecx, dword [ebp - 0x48]
mov edx, edi
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
cmp al, bl
jne 0x102ede5
mov eax, dword [ebp - 0x54]
mov esi, eax
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x102edf4
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
cmp cl, bl
jne 0x102edfe
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
lea eax, [ebp - 0x5c]
push eax
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp + 8]
xor eax, eax
cmp esi, 0x10
setne al
push ebx
push ebx
add eax, 0x8003
push eax
push dword [ebp + 0x10]
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x102ee4a
call fcn.0106d6ff
mov edi, eax
push edi
push 0x108013e
jmp 0x102f13d
mov eax, dword [ebp - 0x60]
push ebx
dec eax
push eax
push dword [ebp - 0x50]
push dword [ebp - 0x5c]
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
jne 0x102ee72
call fcn.0106d6ff
mov edi, eax
push edi
push 0x110013e
jmp 0x102f13d
push ebx
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x18]
push eax
push 2
push dword [ebp - 0x5c]
mov dword [ebp - 0x58], 0x14
call dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
jne 0x102eea3
call fcn.0106d6ff
mov edi, eax
push edi
push 0x119013e
jmp 0x102f13d
push dword [ebp + 0x24]
lea eax, [ebp - 0x18]
push dword [ebp - 0x58]
push eax
push 0x64
push dword [ebp + 0x10]
push esi
call fcn.0102ae7a
mov edi, eax
cmp edi, ebx
je 0x102eec9
push edi
push 0x124013e
jmp 0x102f13d
cmp esi, 0x20
mov eax, dword [ebp - 0x4c]
mov dword [eax], esi
jne 0x102ef82
mov byte [ebp - 0x3c], 8
mov byte [ebp - 0x3b], 2
mov word [ebp - 0x3a], bx
mov dword [ebp - 0x38], 0x6602
mov dword [ebp - 0x34], 0x10
mov ecx, dword [ebp - 8]
lea esi, [ebp - 0x18]
lea edi, [ebp - 0x30]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [eax + 4]
push esi
push ebx
push ebx
push 0x1c
lea eax, [ebp - 0x3c]
push eax
push dword [ebp + 0x10]
mov dword [ebp - 0x20], ecx
call dword [sym.imp.ADVAPI32.dll_CryptImportKey]
test eax, eax
jne 0x102ef2c
call fcn.0106d6ff
mov edi, eax
push edi
push 0x14b013e
jmp 0x102f13d
mov edi, dword [sym.imp.ADVAPI32.dll_CryptSetKeyParam]
push ebx
lea eax, [ebp - 0x4c]
push eax
push 0x13
push dword [esi]
mov dword [ebp - 0x4c], 0x80
call edi
test eax, eax
jne 0x102ef5a
call fcn.0106d6ff
mov edi, eax
push edi
push 0x157013e
jmp 0x102f13d
push ebx
lea eax, [ebp - 0x4c]
push eax
push 4
push dword [esi]
mov dword [ebp - 0x4c], 1
call edi
test eax, eax
jne 0x102efe6
call fcn.0106d6ff
mov edi, eax
push edi
push 0x160013e
jmp 0x102f13d
cmp dword [0x107b258], ebx
je 0x102efc2
movzx eax, byte [ebp - 0x11]
push eax
movzx eax, byte [ebp - 0x12]
push eax
movzx eax, byte [ebp - 0x13]
push eax
movzx eax, byte [ebp - 0x14]
push eax
movzx eax, byte [ebp - 0x15]
push eax
movzx eax, byte [ebp - 0x16]
push eax
movzx eax, byte [ebp - 0x17]
push eax
movzx eax, byte [ebp - 0x18]
push eax
push 0x10082c8
call fcn.0105b329
mov eax, dword [ebp - 0x4c]
add esp, 0x24
lea esi, [eax + 8]
push 0x40
lea eax, [ebp - 0x18]
push eax
push esi
call fcn.010704d0
mov edi, eax
cmp edi, ebx
je 0x102f0d9
push edi
push 0x176013e
jmp 0x102f13d
lea eax, [ebp - 0x44]
push eax
push ebx
push ebx
push 0x8004
push dword [ebp + 0x10]
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x102f010
call fcn.0106d6ff
mov edi, eax
push edi
push 0x186013e
jmp 0x102f13d
mov eax, dword [ebp - 0x60]
mov edi, dword [sym.imp.ADVAPI32.dll_CryptHashData]
push ebx
dec eax
push eax
push dword [ebp - 0x50]
push dword [ebp - 0x44]
call edi
test eax, eax
jne 0x102f03a
call fcn.0106d6ff
mov edi, eax
push edi
push 0x18d013e
jmp 0x102f13d
push ebx
push 1
lea eax, [ebp - 0x3d]
push eax
push dword [ebp - 0x44]
mov byte [ebp - 0x3d], 1
call edi
test eax, eax
jne 0x102f060
call fcn.0106d6ff
mov edi, eax
push edi
push 0x197013e
jmp 0x102f13d
push ebx
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x18]
push eax
push 2
push dword [ebp - 0x44]
call dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
jne 0x102f08a
call fcn.0106d6ff
mov edi, eax
push edi
push 0x19d013e
jmp 0x102f13d
push dword [ebp + 0x24]
lea eax, [ebp - 0x18]
push dword [ebp - 0x58]
push eax
push 0x64
push dword [ebp + 0x10]
push 0x20
call fcn.0102ae7a
mov edi, eax
cmp edi, ebx
je 0x102f0b1
push edi
push 0x1a1013e
jmp 0x102f13d
mov eax, dword [ebp - 0x18]
push ebx
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x20]
push eax
push 1
push dword [esi]
call dword [sym.imp.ADVAPI32.dll_CryptSetKeyParam]
test eax, eax
jne 0x102f12e
call fcn.0106d6ff
mov edi, eax
push edi
push 0x1aa013e
jmp 0x102f13d
cmp dword [0x107b258], ebx
je 0x102f116
movzx eax, byte [ebp - 9]
push eax
movzx eax, byte [ebp - 0xa]
push eax
movzx eax, byte [ebp - 0xb]
push eax
movzx eax, byte [ebp - 0xc]
push eax
movzx eax, byte [ebp - 0xd]
push eax
movzx eax, byte [ebp - 0xe]
push eax
movzx eax, byte [ebp - 0xf]
push eax
movzx eax, byte [ebp - 0x10]
push eax
push 0x1008248
call fcn.0105b329
add esp, 0x24
lea eax, [ebp - 0x10]
push eax
push esi
call fcn.0106e860
mov edi, eax
cmp edi, ebx
je 0x102f12e
push edi
push 0x1c2013e
jmp 0x102f13d
xor edi, edi
jmp 0x102f142
mov edi, 0x80004003
push edi
push 0xe8013e
call fcn.01053610
mov ecx, dword [ebp - 0x58]
cmp ecx, ebx
lea eax, [ebp - 0x18]
je 0x102f152
mov byte [eax], bl
inc eax
dec ecx
jne 0x102f14c
push 0x1c
lea eax, [ebp - 0x3c]
pop ecx
mov byte [eax], bl
inc eax
dec ecx
jne 0x102f158
cmp dword [ebp - 0x48], ebx
mov esi, dword [sym.imp.KERNEL32.dll_LocalFree]
je 0x102f176
push dword [ebp - 0x48]
call fcn.010536d7
push dword [ebp - 0x48]
call esi
cmp dword [ebp - 0x54], ebx
je 0x102f180
push dword [ebp - 0x54]
call esi
cmp dword [ebp - 0x50], ebx
je 0x102f19a
mov ecx, dword [ebp - 0x60]
cmp ecx, ebx
mov eax, dword [ebp - 0x50]
je 0x102f195
mov byte [eax], bl
inc eax
dec ecx
jne 0x102f18f
push dword [ebp - 0x50]
call esi
cmp dword [ebp - 0x5c], ebx
mov esi, dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
je 0x102f1aa
push dword [ebp - 0x5c]
call esi
cmp dword [ebp - 0x44], ebx
je 0x102f1b4
push dword [ebp - 0x44]
call esi
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
pop ebx
call fcn.0104b509
leave
ret 0x24