Function at 0x1084fbf
Capabilities:
Generate random numbers via winapi

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x6c
mov eax, dword [0x10b5894]
xor eax, ebp
mov dword [ebp - 4], eax
xor eax, eax
cmp dword [ebp + 0xc], 2
push ebx
mov ebx, dword [ebp + 0x10]
push esi
push edi
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x60], eax
je 0x1085026
cmp dword [ebp + 0xc], 1
je 0x1085026
lea eax, [ebp - 0x50]
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.01084caa
mov edi, eax
test edi, edi
je 0x108501a
push edi
push 0x5d101a4
jmp 0x1085186
mov esi, dword [ebp - 0x50]
mov dword [ebp + 0xc], 1
jmp 0x1085029
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x54]
push eax
push ebx
push 1
push esi
call dword [sym.imp.CRYPT32.dll_CryptImportPublicKeyInfo]
test eax, eax
jne 0x108504d
call fcn.010a4804
mov edi, eax
push edi
push 0x5e001a4
jmp 0x1085186
lea eax, [ebp - 0x48]
push eax
push 1
push dword [ebp + 0x14]
push esi
call dword [sym.imp.ADVAPI32.dll_CryptGenKey]
test eax, eax
jne 0x1085073
call fcn.010a4804
mov edi, eax
push edi
push 0x5e801a4
jmp 0x1085186
lea eax, [ebp - 0x44]
push eax
push 0x40
pop ebx
push ebx
push esi
call dword [sym.imp.ADVAPI32.dll_CryptGenRandom]
test eax, eax
jne 0x1085098
call fcn.010a4804
mov edi, eax
push edi
push 0x5f001a4
jmp 0x1085186
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x58]
push eax
push ebx
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0x48]
call fcn.01081c2f
mov edi, eax
test edi, edi
je 0x10850be
push edi
push 0x60001a4
jmp 0x1085186
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x4c]
push eax
push 1
push dword [ebp - 0x54]
push dword [ebp - 0x48]
call fcn.0107fe18
mov edi, eax
test edi, edi
je 0x10850e4
push edi
push 0x60c01a4
jmp 0x1085186
push dword [ebp - 0x48]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
and dword [ebp - 0x48], 0
lea eax, [ebp - 0x5c]
push eax
push dword [ebp + 0xc]
push esi
call dword [sym.imp.ADVAPI32.dll_CryptGetUserKey]
test eax, eax
jne 0x1085112
call fcn.010a4804
mov edi, eax
push edi
push 0x61f01a4
jmp 0x1085186
lea eax, [ebp - 0x48]
push eax
push 1
push dword [ebp - 0x5c]
push dword [ebp - 0x64]
push dword [ebp - 0x4c]
push esi
call dword [sym.imp.ADVAPI32.dll_CryptImportKey]
test eax, eax
jne 0x108513b
call fcn.010a4804
mov edi, eax
push edi
push 0x62a01a4
jmp 0x1085186
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x60]
push eax
push dword [ebp - 0x6c]
push dword [ebp - 0x58]
push dword [ebp - 0x48]
call fcn.0107feb0
mov edi, eax
test edi, edi
je 0x108515f
push edi
push 0x63201a4
jmp 0x1085186
cmp dword [ebp - 0x68], ebx
jne 0x108517b
mov edi, dword [ebp - 0x60]
mov ecx, ebx
lea esi, [ebp - 0x44]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x1085177
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x108518d
mov edi, 0x80090003
push edi
push 0x64101a4
call fcn.0107ae44
jmp 0x108518f
xor edi, edi
xor esi, esi
cmp dword [ebp - 0x54], esi
je 0x108519f
push dword [ebp - 0x54]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
cmp dword [ebp - 0x48], esi
je 0x10851ad
push dword [ebp - 0x48]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
cmp dword [ebp - 0x5c], esi
je 0x10851bb
push dword [ebp - 0x5c]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
cmp dword [ebp - 0x58], esi
mov esi, dword [sym.imp.KERNEL32.dll_LocalFree]
je 0x10851cb
push dword [ebp - 0x58]
call esi
xor ebx, ebx
cmp dword [ebp - 0x60], ebx
je 0x10851d7
push dword [ebp - 0x60]
call esi
cmp dword [ebp - 0x4c], ebx
je 0x10851e1
push dword [ebp - 0x4c]
call esi
cmp dword [ebp - 0x50], ebx
je 0x10851f0
push ebx
push dword [ebp - 0x50]
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.01068363
leave
ret 0x10