Function at 0x1049d42
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 [0x10d0620]
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 0x1049d9c
cmp dword [ebp + 8], 0x20
je 0x1049d9c
cmp dword [ebp + 8], 0x40
je 0x1049d9c
mov edi, 0x8000ffff
push edi
push 0xe2013e
jmp 0x104a18f
cmp eax, ebx
je 0x104a184
cmp esi, ebx
je 0x104a184
push 0xffffffffffffffff
push eax
lea eax, [ebp - 0x4c]
push eax
call fcn.01092a50
test eax, eax
jne 0x1049dce
mov eax, 0x8007000e
push eax
mov edi, eax
push 0xec013e
jmp 0x104a18f
push 0xffffffffffffffff
push esi
lea eax, [ebp - 0x50]
push eax
call fcn.01092a50
test eax, eax
jne 0x1049df0
mov eax, 0x8007000e
push eax
mov edi, eax
push 0xf1013e
jmp 0x104a18f
mov eax, dword [ebp - 0x4c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x1049df6
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 0x1049e07
sub eax, edi
lea esi, [eax + esi + 1]
mov dword [ebp - 0x60], esi
cmp esi, 0x10000
jb 0x1049e2f
mov edi, 0x80070216
push edi
push 0xf9013e
jmp 0x104a18f
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov edi, eax
mov dword [ebp - 0x58], edi
cmp edi, ebx
jne 0x1049e52
mov eax, 0x8007000e
push eax
mov edi, eax
push 0xff013e
jmp 0x104a18f
push dword [ebp - 0x4c]
push esi
push edi
call fcn.0103e832
push dword [ebp - 0x50]
push esi
push edi
call fcn.01049472
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 0x1049e9a
call fcn.01091f43
mov edi, eax
push edi
push 0x10c013e
jmp 0x104a18f
push ebx
dec esi
push esi
push edi
push dword [ebp - 0x54]
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
jne 0x1049ebd
call fcn.01091f43
mov edi, eax
push edi
push 0x114013e
jmp 0x104a18f
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 0x1049eee
call fcn.01091f43
mov edi, eax
push edi
push 0x11d013e
jmp 0x104a18f
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.01046881
mov edi, eax
cmp edi, ebx
je 0x1049f16
push edi
push 0x128013e
jmp 0x104a18f
mov eax, dword [ebp + 8]
mov esi, dword [ebp - 0x5c]
mov dword [esi], eax
cmp eax, 0x20
jne 0x1049fd7
xor eax, eax
mov word [ebp - 0x3a], ax
mov eax, dword [ebp - 8]
mov byte [ebp - 0x3c], 8
mov byte [ebp - 0x3b], 2
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 0x1049f81
call fcn.01091f43
mov edi, eax
push edi
push 0x14f013e
jmp 0x104a18f
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 0x1049faf
call fcn.01091f43
mov edi, eax
push edi
push 0x15b013e
jmp 0x104a18f
push ebx
lea eax, [ebp - 0x64]
push eax
push 4
push dword [esi]
mov dword [ebp - 0x64], 1
call edi
test eax, eax
jne 0x104a038
call fcn.01091f43
mov edi, eax
push edi
push 0x164013e
jmp 0x104a18f
cmp dword [0x10d2284], ebx
je 0x104a014
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 0x100b1e0
call fcn.0109c1a8
add esp, 0x24
push 0x40
lea eax, [ebp - 0x18]
push eax
add esi, 8
push esi
call fcn.010bde00
mov edi, eax
cmp edi, ebx
je 0x104a12b
push edi
push 0x17a013e
jmp 0x104a18f
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 0x104a062
call fcn.01091f43
mov edi, eax
push edi
push 0x18a013e
jmp 0x104a18f
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 0x104a08c
call fcn.01091f43
mov edi, eax
push edi
push 0x191013e
jmp 0x104a18f
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 0x104a0b2
call fcn.01091f43
mov edi, eax
push edi
push 0x19b013e
jmp 0x104a18f
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 0x104a0dc
call fcn.01091f43
mov edi, eax
push edi
push 0x1a1013e
jmp 0x104a18f
push dword [ebp + 0x18]
lea eax, [ebp - 0x18]
push dword [ebp - 0x48]
push eax
push 0x64
push dword [ebp + 0xc]
push 0x20
call fcn.01046881
mov edi, eax
cmp edi, ebx
je 0x104a103
push edi
push 0x1a5013e
jmp 0x104a18f
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 0x104a180
call fcn.01091f43
mov edi, eax
push edi
push 0x1ae013e
jmp 0x104a18f
cmp dword [0x10d2284], ebx
je 0x104a168
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 0x100b160
call fcn.0109c1a8
add esp, 0x24
lea eax, [ebp - 0x10]
push eax
push esi
call fcn.010bc750
mov edi, eax
cmp edi, ebx
je 0x104a180
push edi
push 0x1c6013e
jmp 0x104a18f
xor edi, edi
jmp 0x104a194
mov edi, 0x80004003
push edi
push 0xe7013e
call fcn.0108c55a
mov ecx, dword [ebp - 0x48]
lea eax, [ebp - 0x18]
cmp ecx, ebx
je 0x104a1a4
mov byte [eax], bl
inc eax
dec ecx
jne 0x104a19e
push 0x1c
pop ecx
lea eax, [ebp - 0x3c]
mov byte [eax], bl
inc eax
dec ecx
jne 0x104a1aa
mov esi, dword [sym.imp.KERNEL32.dll_LocalFree]
cmp dword [ebp - 0x4c], ebx
je 0x104a1c8
push dword [ebp - 0x4c]
call fcn.010912d2
push dword [ebp - 0x4c]
call esi
cmp dword [ebp - 0x50], ebx
je 0x104a1d2
push dword [ebp - 0x50]
call esi
mov eax, dword [ebp - 0x58]
cmp eax, ebx
je 0x104a1eb
mov ecx, dword [ebp - 0x60]
cmp ecx, ebx
je 0x104a1e6
mov byte [eax], bl
inc eax
dec ecx
jne 0x104a1e0
push dword [ebp - 0x58]
call esi
mov esi, dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
cmp dword [ebp - 0x54], ebx
je 0x104a1fb
push dword [ebp - 0x54]
call esi
cmp dword [ebp - 0x44], ebx
je 0x104a205
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.01077dc7
leave
ret 0x18