Function at 0x1097ba1
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 [0x10d0640]
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 0x1097c04
cmp ebx, 1
je 0x1097c04
lea eax, [ebp - 0x4c]
push eax
push ebx
push dword [ebp + 8]
call fcn.01097a65
mov esi, eax
cmp esi, edi
je 0x1097bfb
push esi
push 0x77901a4
jmp 0x1097d00
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 0x1097c2c
call fcn.01091f1e
mov esi, eax
push esi
push 0x78401a4
jmp 0x1097d00
lea eax, [ebp - 0x44]
push eax
push 0x40
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_CryptGenRandom]
test eax, eax
jne 0x1097c51
call fcn.01091f1e
mov esi, eax
push esi
push 0x78a01a4
jmp 0x1097d00
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 0x1097c77
call fcn.01091f1e
mov esi, eax
push esi
push 0x78f01a4
jmp 0x1097d00
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 0x1097c9d
call fcn.01091f1e
mov esi, eax
push esi
push 0x79501a4
jmp 0x1097d00
push dword [ebp - 0x58]
push edi
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [ebp - 0x54], eax
cmp eax, edi
jne 0x1097cbd
mov eax, 0x8007000e
push eax
mov esi, eax
push 0x79b01a4
jmp 0x1097d00
lea ecx, [ebp - 0x58]
push ecx
push eax
push edi
push edi
push ebx
push dword [ebp - 0x48]
call esi
test eax, eax
jne 0x1097cdd
call fcn.01091f1e
mov esi, eax
push esi
push 0x7a001a4
jmp 0x1097d00
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 0x1097d07
call fcn.01091f1e
mov esi, eax
push esi
push 0x7ab01a4
call fcn.0108c503
jmp 0x1097d38
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 0x1097d36
call fcn.01091f1e
push eax
push 0x7b201a4
mov dword [esi], eax
call fcn.0108c503
xor esi, esi
cmp dword [ebp - 0x48], edi
je 0x1097d46
push dword [ebp - 0x48]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
cmp dword [ebp - 0x50], edi
je 0x1097d54
push dword [ebp - 0x50]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
cmp dword [ebp - 0x54], edi
je 0x1097d62
push dword [ebp - 0x54]
call dword [sym.imp.KERNEL32.dll_LocalFree]
cmp dword [ebp - 0x4c], edi
je 0x1097d71
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.01077d0b
leave
ret 0x14