Function at 0x275a09d0
Capabilities:
Generate random numbers via winapi

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
xor eax, eax
cmp dword [ebp + 8], eax
push ebx
mov ebx, dword [ebp + 0x10]
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 8], eax
mov dword [ebp - 4], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x24], 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
je 0x275a0cea
cmp dword [ebp + 0xc], eax
je 0x275a0cea
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x14]
push ecx
mov ecx, edi
call fcn.275a06c0
mov esi, eax
test esi, esi
jl 0x275a0afb
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp + 0xc]
lea eax, [ebp + 0x10]
push eax
xor esi, esi
push esi
push esi
push ecx
mov dword [ebp - 8], edx
mov dword [ebp + 0x10], esi
call dword [sym.imp.ADVAPI32.dll_CryptDuplicateKey]
test eax, eax
jne 0x275a0a4e
mov dword [ebp + 0x10], esi
jmp 0x275a0a53
cmp dword [ebp + 0x10], esi
jne 0x275a0a85
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
test eax, eax
jg 0x275a0a65
call esi
mov esi, eax
jmp 0x275a0a75
call esi
mov esi, eax
and esi, 0xffff
or esi, 0x80070000
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x275a0af7
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
jmp 0x275a0af7
push 0x275bb904
push esi
lea edx, [ebp - 8]
push edx
push esi
push 1
lea ecx, [ebp + 0x10]
call fcn.275a04b0
cmp eax, esi
je 0x275a0aa5
cmp eax, 0x800700ea
jne 0x275a0ac2
mov eax, dword [ebp - 8]
push eax
lea ecx, [ebp - 0x18]
call fcn.2754ea60
test al, al
je 0x275a0cd8
cmp dword [ebp - 0x18], esi
je 0x275a0cd8
lea ecx, [ebp + 0x10]
call fcn.27538c40
mov eax, dword [ebp - 0x14]
push esi
lea ecx, [ebp - 0x24]
push ecx
lea edx, [ebp - 4]
push edx
push 8
push eax
call dword [sym.imp.ADVAPI32.dll_CryptGetKeyParam]
test eax, eax
jne 0x275a0b73
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
test eax, eax
jg 0x275a0b61
call esi
mov esi, eax
test esi, esi
jge 0x275a0b15
mov ecx, dword [ebx]
push ecx
call fcn.2757eea0
mov edx, dword [ebp + 0x14]
mov dword [ebx], 0
add esp, 4
mov dword [edx], 0
mov eax, dword [ebp - 0x18]
push eax
call fcn.2757eea0
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.2757eea0
mov edx, dword [ebp - 0x20]
push edx
call fcn.2757eea0
mov eax, dword [ebp - 0x10]
add esp, 0xc
test eax, eax
je 0x275a0b48
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x275a0b56
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
call esi
mov esi, eax
and esi, 0xffff
or esi, 0x80070000
jmp 0x275a0af7
mov eax, dword [ebp - 4]
shr eax, 3
push eax
lea ecx, [ebp - 0x20]
mov dword [ebp - 4], eax
call fcn.2754ea60
test al, al
je 0x275a0cce
mov esi, dword [ebp - 0x20]
test esi, esi
je 0x275a0cce
mov ecx, dword [ebp - 4]
mov eax, dword [edi + 4]
push esi
push ecx
push eax
call dword [sym.imp.ADVAPI32.dll_CryptGenRandom]
test eax, eax
je 0x275a0ae7
push esi
lea ecx, [ebp - 0x14]
call fcn.275a0570
mov esi, eax
test esi, esi
jl 0x275a0afb
mov ecx, dword [ebp - 0x18]
lea edx, [ebp - 0x10]
push edx
mov edx, dword [ebp + 0xc]
lea eax, [ebp - 8]
push eax
mov eax, dword [ebp + 8]
push ecx
push edx
push eax
lea ecx, [ebp - 0x14]
call fcn.275a04f0
mov esi, eax
test esi, esi
jl 0x275a0afb
mov eax, dword [ebp - 0x10]
push 0
lea ecx, [ebp + 0xc]
push ecx
lea edx, [ebp - 0xc]
push edx
push 4
push eax
mov dword [ebp + 0xc], 4
call dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
je 0x275a0ae7
mov ecx, dword [ebp - 0xc]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.2754ea60
test al, al
je 0x275a0cce
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x275a0cce
lea edx, [ebp - 0xc]
push edx
push eax
lea ecx, [ebp - 0x10]
call fcn.2754ed20
mov esi, eax
test esi, esi
jl 0x275a0afb
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
add ecx, eax
lea eax, [ecx + edx + 0x1c]
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
push eax
mov ecx, ebx
call fcn.2754ea60
test al, al
je 0x275a0cce
mov ecx, dword [ebx]
test ecx, ecx
je 0x275a0cce
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
push edx
mov edx, dword [ebp - 4]
push eax
mov eax, dword [edi + 0x14]
push edx
mov edx, dword [edi + 0x10]
push eax
push edx
call fcn.275a0470
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebx]
push eax
push ecx
add edx, 0x1c
push edx
call fcn.2757fff0
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebx]
push eax
mov eax, dword [ebp - 4]
push ecx
lea ecx, [edx + eax + 0x1c]
push ecx
call fcn.2757fff0
mov edx, dword [ebp - 8]
mov ecx, dword [ebx]
mov eax, dword [ebp - 0x18]
add ecx, dword [ebp - 0xc]
push edx
mov edx, dword [ebp - 4]
push eax
lea eax, [ecx + edx + 0x1c]
push eax
call fcn.2757fff0
add esp, 0x24
jmp 0x275a0af7
mov esi, 0x8007000e
jmp 0x275a0afb
lea ecx, [ebp + 0x10]
mov esi, 0x8007000e
call fcn.27538c40
jmp 0x275a0afb
mov esi, 0x80070057
jmp 0x275a0afb