Function at 0x1042616
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, 0x64
mov eax, dword [0x10b5894]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x10]
push ebx
xor ebx, ebx
cmp dword [ebp + 8], 0x10
push esi
mov esi, dword [ebp + 0x14]
push edi
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x48], ebx
je 0x1042670
cmp dword [ebp + 8], 0x20
je 0x1042670
cmp dword [ebp + 8], 0x40
je 0x1042670
mov edi, 0x8000ffff
push edi
push 0xe2013e
jmp 0x1042a49
cmp eax, ebx
je 0x1042a3e
cmp esi, ebx
je 0x1042a3e
push 0xffffffffffffffff
push eax
lea eax, [ebp - 0x4c]
push eax
call fcn.010a50e9
test eax, eax
jne 0x10426a2
mov eax, 0x8007000e
push eax
mov edi, eax
push 0xec013e
jmp 0x1042a49
push 0xffffffffffffffff
push esi
lea eax, [ebp - 0x50]
push eax
call fcn.010a50e9
test eax, eax
jne 0x10426c4
mov eax, 0x8007000e
push eax
mov edi, eax
push 0xf1013e
jmp 0x1042a49
mov eax, dword [ebp - 0x4c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x10426ca
sub eax, edx
mov esi, eax
mov eax, dword [ebp - 0x50]
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x10426db
sub eax, edi
lea esi, [eax + esi + 1]
push esi
push ebx
mov dword [ebp - 0x60], esi
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov edi, eax
cmp edi, ebx
mov dword [ebp - 0x58], edi
jne 0x104270e
mov eax, 0x8007000e
push eax
mov edi, eax
push 0xfa013e
jmp 0x1042a49
push dword [ebp - 0x4c]
push esi
push edi
call fcn.01037ba5
push dword [ebp - 0x50]
push esi
push edi
call fcn.010425d3
lea eax, [ebp - 0x54]
push eax
xor eax, eax
cmp dword [ebp + 8], 0x10
push ebx
setne al
push ebx
add eax, 0x8003
push eax
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x1042756
call fcn.010a4804
mov edi, eax
push edi
push 0x107013e
jmp 0x1042a49
push ebx
dec esi
push esi
push edi
push dword [ebp - 0x54]
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
jne 0x1042779
call fcn.010a4804
mov edi, eax
push edi
push 0x10f013e
jmp 0x1042a49
push ebx
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x18]
push eax
push 2
push dword [ebp - 0x54]
mov dword [ebp - 0x48], 0x14
call dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
jne 0x10427aa
call fcn.010a4804
mov edi, eax
push edi
push 0x118013e
jmp 0x1042a49
push dword [ebp + 0x18]
lea eax, [ebp - 0x18]
push dword [ebp - 0x48]
push eax
push 0x64
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0103f8a9
mov edi, eax
cmp edi, ebx
je 0x10427d2
push edi
push 0x123013e
jmp 0x1042a49
mov eax, dword [ebp + 8]
cmp eax, 0x20
mov esi, dword [ebp - 0x5c]
mov dword [esi], eax
jne 0x1042891
mov eax, dword [ebp - 8]
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
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]
mov esi, dword [ebp - 0x5c]
add esi, 4
push esi
push ebx
push ebx
mov dword [ebp - 0x20], eax
push 0x1c
lea eax, [ebp - 0x3c]
push eax
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_CryptImportKey]
test eax, eax
jne 0x104283b
call fcn.010a4804
mov edi, eax
push edi
push 0x14a013e
jmp 0x1042a49
mov edi, dword [sym.imp.ADVAPI32.dll_CryptSetKeyParam]
push ebx
lea eax, [ebp - 0x5c]
push eax
push 0x13
push dword [esi]
mov dword [ebp - 0x5c], 0x80
call edi
test eax, eax
jne 0x1042869
call fcn.010a4804
mov edi, eax
push edi
push 0x156013e
jmp 0x1042a49
push ebx
lea eax, [ebp - 0x64]
push eax
push 4
push dword [esi]
mov dword [ebp - 0x64], 1
call edi
test eax, eax
jne 0x10428f2
call fcn.010a4804
mov edi, eax
push edi
push 0x15f013e
jmp 0x1042a49
cmp dword [0x10b759c], ebx
je 0x10428ce
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 0x100a6a0
call fcn.0108880b
add esp, 0x24
push 0x40
lea eax, [ebp - 0x18]
push eax
add esi, 8
push esi
call fcn.010a3ab0
mov edi, eax
cmp edi, ebx
je 0x10429e5
push edi
push 0x175013e
jmp 0x1042a49
lea eax, [ebp - 0x44]
push eax
push ebx
push ebx
push 0x8004
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x104291c
call fcn.010a4804
mov edi, eax
push edi
push 0x185013e
jmp 0x1042a49
mov eax, dword [ebp - 0x60]
mov edi, dword [sym.imp.ADVAPI32.dll_CryptHashData]
push ebx
dec eax
push eax
push dword [ebp - 0x58]
push dword [ebp - 0x44]
call edi
test eax, eax
jne 0x1042946
call fcn.010a4804
mov edi, eax
push edi
push 0x18c013e
jmp 0x1042a49
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 0x104296c
call fcn.010a4804
mov edi, eax
push edi
push 0x196013e
jmp 0x1042a49
push ebx
lea eax, [ebp - 0x48]
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 0x1042996
call fcn.010a4804
mov edi, eax
push edi
push 0x19c013e
jmp 0x1042a49
push dword [ebp + 0x18]
lea eax, [ebp - 0x18]
push dword [ebp - 0x48]
push eax
push 0x64
push dword [ebp + 0xc]
push 0x20
call fcn.0103f8a9
mov edi, eax
cmp edi, ebx
je 0x10429bd
push edi
push 0x1a0013e
jmp 0x1042a49
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 0x1042a3a
call fcn.010a4804
mov edi, eax
push edi
push 0x1a9013e
jmp 0x1042a49
cmp dword [0x10b759c], ebx
je 0x1042a22
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 0x100a620
call fcn.0108880b
add esp, 0x24
lea eax, [ebp - 0x10]
push eax
push esi
call fcn.010a23e0
mov edi, eax
cmp edi, ebx
je 0x1042a3a
push edi
push 0x1c1013e
jmp 0x1042a49
xor edi, edi
jmp 0x1042a4e
mov edi, 0x80004003
push edi
push 0xe7013e
call fcn.0107ae44
mov ecx, dword [ebp - 0x48]
cmp ecx, ebx
lea eax, [ebp - 0x18]
je 0x1042a5e
mov byte [eax], bl
inc eax
dec ecx
jne 0x1042a58
push 0x1c
pop ecx
lea eax, [ebp - 0x3c]
mov byte [eax], bl
inc eax
dec ecx
jne 0x1042a64
cmp dword [ebp - 0x4c], ebx
mov esi, dword [sym.imp.KERNEL32.dll_LocalFree]
je 0x1042a82
push dword [ebp - 0x4c]
call fcn.0107ef13
push dword [ebp - 0x4c]
call esi
cmp dword [ebp - 0x50], ebx
je 0x1042a8c
push dword [ebp - 0x50]
call esi
mov eax, dword [ebp - 0x58]
cmp eax, ebx
je 0x1042aa5
mov ecx, dword [ebp - 0x60]
cmp ecx, ebx
je 0x1042aa0
mov byte [eax], bl
inc eax
dec ecx
jne 0x1042a9a
push dword [ebp - 0x58]
call esi
cmp dword [ebp - 0x54], ebx
mov esi, dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
je 0x1042ab5
push dword [ebp - 0x54]
call esi
cmp dword [ebp - 0x44], ebx
je 0x1042abf
push dword [ebp - 0x44]
call esi
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.01068363
leave
ret 0x18