Function at 0x1805ea9e
Capabilities:
Generate random numbers via rtlgenrandom
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x44
push ebx
push esi
mov esi, ecx
push edi
xor edi, edi
mov dword [esp + 0x20], esi
mov ebx, edi
mov ecx, dword [esi + 0x50]
mov dword [esp + 0x10], ebx
test ecx, ecx
je 0x1805eac4
mov eax, dword [ecx]
mov dword [ecx + 4], eax
lea ecx, [esi + 0x4c]
call fcn.18006df7
or dword [esi + 0x6c], 0xffffffff
mov dword [esi + 0x48], edi
mov dword [esi + 0x5c], edi
mov dword [esi + 0x60], edi
mov dword [esi + 0x70], edi
mov dword [esi + 0x78], edi
mov dword [esi + 0x64], edi
mov dword [esi + 0x68], edi
mov eax, dword [esi + 0xe0]
mov edi, dword [esi + 0xdc]
cmp edi, eax
je 0x1805eb0f
mov ebx, eax
mov ecx, edi
call fcn.1803c371
add edi, 0x30
cmp edi, ebx
jne 0x1805eaf7
mov edi, dword [esi + 0xdc]
mov ebx, dword [esp + 0x10]
mov dword [esi + 0xe0], edi
lea ecx, [esp + 0x18]
xor edi, edi
mov dword [esp + 0x14], edi
call fcn.18009c8e
push dword [esi + 0x1c]
lea eax, [esi + 0xa0]
mov dword [esp + 0x38], edi
push str.Url_s_r_n
push eax
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
call fcn.18013d56
mov eax, dword [esi + 0x40]
add esp, 0xc
and dword [esi + 0x70], edi
and dword [esi + 0x78], edi
xor ecx, ecx
mov dword [esi + 0x74], eax
cmp ecx, dword [esi + 0x38]
jg 0x1805edca
cmp eax, 0x186a0
jg 0x1805edca
mov ecx, dword [esi + 0x80]
call fcn.18012fb3
test al, al
jne 0x1805edd0
cmp dword [esi + 0x70], 0
je 0x1805ec77
cmp dword [esi + 0x58], 0
je 0x1805ebc7
call fcn.1800fb26
mov ebx, eax
mov edi, edx
mov eax, dword [esi + 0x74]
mov esi, 0x2710
cdq
mov ecx, eax
mov eax, edx
mul esi
mov esi, eax
mov eax, ecx
mov ecx, 0x2710
mul ecx
add esi, edx
add ebx, eax
adc edi, esi
mov esi, dword [esp + 0x20]
push edi
push ebx
mov ecx, dword [esi + 0x58]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ebx, dword [esp + 0x10]
push dword [esi + 0x74]
push dword [esi + 0x80]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edi, eax
mov eax, dword [esi + 0x58]
mov dword [esp + 0x1c], eax
test eax, eax
je 0x1805ec4f
mov ecx, dword [eax]
mov eax, dword [ecx + 4]
mov ecx, dword [esi + 0x5c]
mov dword [esp + 0x24], eax
test ecx, ecx
je 0x1805ec06
mov eax, dword [ecx]
lea edx, [esp + 0x2c]
or ebx, 1
push edx
mov dword [esp + 0x14], ebx
call dword [eax + 0x28]
jmp 0x1805ec16
or ebx, 2
lea ecx, [esp + 0x28]
mov dword [esp + 0x10], ebx
call fcn.18009c8e
mov ecx, dword [esp + 0x1c]
push eax
call dword [esp + 0x28]
test bl, 2
je 0x1805ec37
mov ecx, dword [esp + 0x28]
and ebx, 0xfffffffd
mov dword [esp + 0x10], ebx
lea ecx, [ecx - 0x10]
call fcn.1800687d
test bl, 1
je 0x1805ec4f
mov ecx, dword [esp + 0x2c]
and ebx, 0xfffffffe
mov dword [esp + 0x10], ebx
lea ecx, [ecx - 0x10]
call fcn.1800687d
test edi, edi
je 0x1805edd0
cmp edi, 0x102
je 0x1805ec77
cmp edi, 0xffffffff
jne 0x1805edc3
call fcn.18017850
mov edi, eax
test edi, edi
js 0x1805ee0c
lea edi, [esi + 0xc]
mov ecx, esi
push edi
call fcn.1805f6fe
movzx ecx, byte [0x18217983]
neg ecx
sbb ecx, ecx
and ecx, 0x18217880
je 0x1805ecdd
push 7
pop edx
push 2
pop eax
push eax
push edx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], eax
call fcn.18008988
mov edx, edi
mov dword [esp + 0x4c], eax
lea ecx, [esp + 0x30]
call fcn.18054a71
push dword [eax]
lea eax, [esp + 0x44]
push str._detected_configurations___r_n_s_
push eax
call fcn.18006aa4
mov ecx, dword [esp + 0x3c]
add esp, 0xc
lea ecx, [ecx - 0x10]
call fcn.1800687d
lea eax, [esp + 0x34]
mov ecx, esi
push eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.1805ee60
mov edi, eax
mov eax, dword [esp + 0x14]
push 0x64
cdq
pop ecx
idiv ecx
imul eax, eax, 0x64
test edi, edi
jns 0x1805edca
cmp edi, 0x80040810
je 0x1805edca
cmp edi, 0x80040154
je 0x1805edca
cmp edi, 0x80d03002
je 0x1805edca
cmp edi, 0x80040894
je 0x1805edca
cmp eax, 0x190
je 0x1805edca
cmp dword [esi + 0x6c], 0
jg 0x1805edca
cmp eax, 0x1f4
jne 0x1805ed5f
mov eax, 0x4e20
cmp dword [esi + 0x74], eax
jge 0x1805ed5f
mov dword [esi + 0x74], eax
mov ecx, dword [esi + 0x74]
cmp ecx, 0x3fffffff
jle 0x1805ed78
mov dword [esi + 0x74], 0x186a0
mov eax, 0x186a0
jmp 0x1805edb8
add ecx, ecx
cmp dword [esi + 0x44], 0
mov dword [esi + 0x74], ecx
mov eax, ecx
jle 0x1805edb8
cmp ecx, dword [esi + 0x44]
jl 0x1805edb8
and dword [esp + 0x1c], 0
lea eax, [esp + 0x1c]
push 4
push eax
call dword [sym.imp.ADVAPI32.dll_SystemFunction036]
mov ecx, dword [esi + 0x44]
test al, al
mov eax, ecx
je 0x1805eda9
mov eax, dword [esp + 0x1c]
xor edx, edx
add ecx, ecx
div ecx
sub edx, dword [esi + 0x44]
add dword [esi + 0x74], edx
mov eax, dword [esi + 0x74]
inc dword [esi + 0x70]
mov ecx, dword [esi + 0x70]
jmp 0x1805eb55
mov edi, 0x8000ffff
jmp 0x1805ee0c
cmp dword [esi + 0x7c], 0
je 0x1805edd7
mov edi, 0x80040810
jmp 0x1805ee0c
cmp dword [esi + 0x74], 0x186a0
jle 0x1805ede7
mov edi, 0x80040892
jmp 0x1805ee0c
mov eax, dword [esp + 0x14]
lea ecx, [esi + 0x4c]
mov dword [esi + 0x48], eax
lea eax, [esp + 0x18]
push eax
call fcn.18009c40
mov ecx, dword [esi + 0x50]
test ecx, ecx
je 0x1805ee0c
lea eax, [esp + 0x34]
push eax
call fcn.18055947
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x1805ee4b
mov eax, dword [esp + 0x3c]
sub eax, ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], eax
cmp eax, 0x1000
jb 0x1805ee42
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x18]
push eax
call fcn.18007386
mov eax, dword [esp + 0x24]
pop ecx
pop ecx
mov ecx, dword [esp + 0x14]
push eax
push ecx
call fcn.1814d45b
pop ecx
pop ecx
mov ecx, dword [esp + 0x18]
add ecx, 0xfffffff0
call fcn.1800687d
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret