Function at 0x1097bc0
Capabilities:
Generate random numbers via winapi
Hash data via wincrypt
Initialize hashing via wincrypt

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x60
mov eax, dword [0x10d0620]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
xor edi, edi
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x54], edi
cmp ebx, 2
je 0x1097c23
cmp ebx, 1
je 0x1097c23
lea eax, [ebp - 0x4c]
push eax
push ebx
push dword [ebp + 8]
call fcn.01097a84
mov esi, eax
cmp esi, edi
je 0x1097c1a
push esi
push 0x77901a4
jmp 0x1097d1f
mov eax, dword [ebp - 0x4c]
push 2
mov dword [ebp + 8], eax
pop ebx
lea eax, [ebp - 0x48]
push eax
push edi
push edi
push dword [ebp + 0x14]
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x1097c4b
call fcn.01091f43
mov esi, eax
push esi
push 0x78401a4
jmp 0x1097d1f
lea eax, [ebp - 0x44]
push eax
push 0x40
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_CryptGenRandom]
test eax, eax
jne 0x1097c70
call fcn.01091f43
mov esi, eax
push esi
push 0x78a01a4
jmp 0x1097d1f
push edi
push 0x40
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0x48]
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
jne 0x1097c96
call fcn.01091f43
mov esi, eax
push esi
push 0x78f01a4
jmp 0x1097d1f
mov esi, dword [sym.imp.ADVAPI32.dll_CryptSignHashW]
lea eax, [ebp - 0x58]
push eax
push edi
push edi
push edi
push ebx
push dword [ebp - 0x48]
call esi
test eax, eax
jne 0x1097cbc
call fcn.01091f43
mov esi, eax
push esi
push 0x79501a4
jmp 0x1097d1f
push dword [ebp - 0x58]
push edi
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [ebp - 0x54], eax
cmp eax, edi
jne 0x1097cdc
mov eax, 0x8007000e
push eax
mov esi, eax
push 0x79b01a4
jmp 0x1097d1f
lea ecx, [ebp - 0x58]
push ecx
push eax
push edi
push edi
push ebx
push dword [ebp - 0x48]
call esi
test eax, eax
jne 0x1097cfc
call fcn.01091f43
mov esi, eax
push esi
push 0x7a001a4
jmp 0x1097d1f
lea eax, [ebp - 0x50]
push eax
push dword [ebp - 0x5c]
push 1
push dword [ebp + 8]
call dword [sym.imp.CRYPT32.dll_CryptImportPublicKeyInfo]
test eax, eax
jne 0x1097d26
call fcn.01091f43
mov esi, eax
push esi
push 0x7ab01a4
call fcn.0108c55a
jmp 0x1097d57
mov esi, dword [ebp - 0x60]
push edi
push edi
push dword [ebp - 0x50]
mov dword [esi], edi
push dword [ebp - 0x58]
push dword [ebp - 0x54]
push dword [ebp - 0x48]
call dword [sym.imp.ADVAPI32.dll_CryptVerifySignatureW]
test eax, eax
jne 0x1097d55
call fcn.01091f43
push eax
push 0x7b201a4
mov dword [esi], eax
call fcn.0108c55a
xor esi, esi
cmp dword [ebp - 0x48], edi
je 0x1097d65
push dword [ebp - 0x48]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
cmp dword [ebp - 0x50], edi
je 0x1097d73
push dword [ebp - 0x50]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
cmp dword [ebp - 0x54], edi
je 0x1097d81
push dword [ebp - 0x54]
call dword [sym.imp.KERNEL32.dll_LocalFree]
cmp dword [ebp - 0x4c], edi
je 0x1097d90
push edi
push dword [ebp - 0x4c]
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.01077dc7
leave
ret 0x14