Function at 0x10022a66
Capabilities:
Generate random numbers via winapi
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xe0
mov esi, ecx
mov eax, dword [0x100c51b8]
xor eax, ebp
mov dword [esp + 0xd8], eax
lea eax, [esp + 0x24]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x18]
lea ecx, [esi + 0x48]
mov dword [eax], ecx
call fcn.1000a8e0
add esi, 0x78
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x20], eax
mov eax, 0xaf8eb12f
xor esi, esi
lea edi, [esp + 0x70]
cmp eax, 0xae788abc
je 0x10022ae5
cmp eax, 0x33523aed
je 0x10022e7c
cmp eax, 0xaf8eb12f
jne 0x10022ab8
cmp dword [esp + 0x20], 0
mov eax, 0x33523aed
mov ecx, 0xae788abc
cmove eax, ecx
jmp 0x10022ab8
mov dword [esp + 0x58], esi
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], 0xf
mov byte [esp + 0x58], 0
mov eax, 0xadb9bde4
cmp eax, 0xf74f3161
jle 0x10022bc0
cmp eax, 0x2f5d3780
jle 0x10022be2
cmp eax, 0x2f5d3781
je 0x10022c61
cmp eax, 0x75d0ed0d
jne 0x10022ced
mov ebx, dword [esp + 0x14]
shl ebx, 5
add ebx, dword [esp + 0xc]
lea ecx, [esp + 0x28]
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x40]
sub esp, 0x14
movaps xmm0, xmmword [0x100b52f0]
movups xmmword [esp + 4], xmm0
mov dword [esp], ecx
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
mov dword [esp + 0x70], eax
mov eax, 0x4eac97d9
cmp eax, 0x2c3b0f55
jg 0x10022b7e
cmp eax, 0xc675dff0
je 0x10022c74
cmp eax, 0x25990eb1
jne 0x10022b63
jmp 0x10022bb9
cmp eax, 0x2c3b0f56
je 0x10022ba0
cmp eax, 0x4eac97d9
jne 0x10022b63
cmp dword [esp + 0x70], 0
mov eax, 0x2c3b0f56
mov ecx, 0x25990eb1
cmove eax, ecx
jmp 0x10022b63
push ebx
push 0x20
push dword [esp + 0x30]
call dword [sym.imp.ADVAPI32.dll_CryptGenRandom]
push 0
push dword [esp + 0x2c]
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov eax, 0xc675dff0
jmp 0x10022b63
cmp eax, 0xedb1adcb
jg 0x10022c18
cmp eax, 0xadb9bde4
je 0x10022c87
cmp eax, 0xbede6b15
je 0x10022c6a
jmp 0x10022aff
cmp eax, 0xf74f3162
je 0x10022c91
cmp eax, 0x156799fd
jne 0x10022aff
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
mov eax, 0xf74f3162
mov ecx, 0x75d0ed0d
cmovl eax, ecx
jmp 0x10022aff
cmp eax, 0xedb1adcc
je 0x10022ce1
cmp eax, 0xf72a0ac3
jne 0x10022aff
xor ecx, ecx
inc ecx
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x1c]
shl eax, 5
push eax
push ecx
call fcn.1009dde9
add esp, 8
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], 0
mov eax, 0xedb1adcc
mov ecx, 0xbede6b15
cmove eax, ecx
jmp 0x10022aff
lea ecx, [esp + 0x58]
call fcn.100087f0
mov eax, 0x7b214254
jmp 0x10022aff
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x14]
inc ebx
mov eax, 0x156799fd
jmp 0x10022aff
mov eax, 0xf72a0ac3
jmp 0x10022aff
mov eax, dword [esp + 0xc]
mov dword [esp + 0x70], esi
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], 0xf
mov byte [esp + 0x70], 0
mov ecx, edi
push 8
push eax
call fcn.10007b00
lea ecx, [esp + 0x58]
push edi
call fcn.1000105c
mov ecx, edi
call fcn.100087f0
push dword [esp + 0xc]
call fcn.1009e2e3
add esp, 4
mov eax, 0xbede6b15
jmp 0x10022aff
mov eax, 0x156799fd
xor ebx, ebx
jmp 0x10022aff
cmp eax, 0x7b214254
jne 0x10022aff
xor ebx, ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], 0xf
mov byte [esp + 0x40], 0
lea ecx, [esp + 0x58]
call fcn.10007bca
mov dword [esp + 0x28], eax
mov ecx, 0xa4a6f4fd
mov eax, dword [esp + 0x68]
cmp ecx, 0x29f98a09
jg 0x10022d3f
cmp ecx, 0xa4a6f4fd
je 0x10022d56
cmp ecx, 0x1b14faf9
jne 0x10022d25
jmp 0x10022d6f
cmp ecx, 0x29f98a0a
je 0x10022db3
cmp ecx, 0x3542541c
jne 0x10022d25
mov ecx, 0x29f98a0a
jmp 0x10022d25
mov dword [esp + 0x70], ebx
mov ecx, dword [esp + 0x70]
cmp ecx, eax
mov ecx, 0x3542541c
mov edx, 0x1b14faf9
cmovb ecx, edx
jmp 0x10022d25
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x70]
movzx eax, byte [ebx + esi]
shr eax, 4
movsx eax, byte [eax + 0x100b5296]
lea ecx, [esp + 0x40]
push eax
call fcn.100091f2
movzx eax, byte [ebx + esi]
xor esi, esi
and eax, 0xf
movsx eax, byte [eax + 0x100b5296]
lea ecx, [esp + 0x40]
push eax
call fcn.100091f2
mov ebx, dword [esp + 0x70]
inc ebx
jmp 0x10022d1c
call fcn.10088f1d
push esi
push 0x2710
push edx
push eax
call fcn.100879c0
mov dword [esp + 0xd0], esi
xorps xmm0, xmm0
movaps xmmword [esp + 0xc0], xmm0
movaps xmmword [esp + 0xb0], xmm0
movaps xmmword [esp + 0xa0], xmm0
movaps xmmword [esp + 0x90], xmm0
movaps xmmword [esp + 0x80], xmm0
movaps xmmword [esp + 0x70], xmm0
push edx
push eax
push str._lld
push 0x64
push edi
call fcn.10009906
add esp, 0x14
mov dword [esp + 0x28], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], 0xf
mov byte [esp + 0x28], 0
push edi
call fcn.1009ee80
add esp, 4
lea ebx, [esp + 0x28]
mov ecx, ebx
push eax
push edi
call fcn.10007b00
lea eax, [esp + 0x40]
push eax
push ebx
push edi
call fcn.10042750
add esp, 0xc
mov ecx, dword [esp + 0x10]
push edi
call fcn.1000105c
mov ecx, edi
call fcn.100087f0
mov ecx, ebx
call fcn.100087f0
lea ecx, [esp + 0x40]
call fcn.100087f0
lea ecx, [esp + 0x58]
call fcn.100087f0
mov eax, 0x33523aed
jmp 0x10022ab8
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov esi, dword [ebp + 8]
mov dword [esi], ecx
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], ecx
mov ecx, esi
push eax
call fcn.10007eb6
push dword [esp + 0x24]
call fcn.10088ae0
add esp, 4
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xd8]
xor ecx, ebp
call fcn.100879aa
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4