Function at 0x10018e60
Capabilities:
Generate random numbers via winapi

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x98
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 8], eax
test byte [0x10059abb], 0x80
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, ecx
mov byte [ebp - 0x8e], dl
je 0x10018eb7
push str.Applying_new_settings
push 0xffffffffffffffff
lea eax, [ebp - 0x8c]
push 0x80
push eax
call fcn.100015f0
lea eax, [ebp - 0x8c]
mov edx, 0x1004ccf8
push eax
push esi
call fcn.10001280
add esp, 0x18
mov al, byte [esi + 0xc0]
lea ebx, [esi + 0x30]
mov dl, byte [ebp - 0x8e]
mov ecx, ebx
shr al, 2
not al
mov dword [ebp - 0x94], ebx
and al, 1
movzx eax, al
push edi
push eax
call fcn.1001b060
add esp, 8
test al, al
je 0x1001910a
test byte [esi + 0xc0], 4
jne 0x10019047
imul eax, dword [esi + 0x84], 0x3e8
mov dword [esi + 0x170], eax
shr eax, 1
mov dword [esi + 0x17c], eax
mov ax, word [esi + 0xa4]
mov word [esi + 0x110], ax
test byte [esi + 0xaf], 0x30
jbe 0x10018f7b
cmp dword [esi + 0xb18], 0
jne 0x10018f7b
call fcn.10001630
lea ecx, [eax + 0x20]
call fcn.100046c0
mov dword [esi + 0xb18], eax
test eax, eax
jne 0x10018f64
test byte [0x10059ab8], 2
je 0x10018f7b
push eax
push 0xf8
push str.handshake_TP
call fcn.10001500
add esp, 0xc
jmp 0x10018f7b
push 0xf8
push 0
push eax
call fcn.10049330
add esp, 0xc
or byte [esi + 0xc3], 0x10
mov eax, dword [esi + 0x70]
lea ecx, [esi + 0x688]
mov edx, ebx
mov dword [esi + 0xa90], eax
mov dword [esi + 0xa94], 0
call fcn.10038b90
cmp dword [esi], 3
jne 0x10018fec
mov eax, dword [ebx]
and eax, 0x8000000
or eax, 0
je 0x10018fec
mov eax, dword [esi + 0x38]
mov eax, dword [eax + 8]
mov eax, dword [eax]
mov dword [esi + 0xb2c], eax
test byte [0x10059ab9], 0x40
je 0x10018fd2
push eax
push esi
mov edx, 0x1004cf38
call fcn.10004850
add esp, 8
or byte [esi + 0xc1], 8
lea ecx, [esi + 0x878]
call fcn.10027df0
test eax, eax
js 0x1001910a
cmp dword [esi], 4
jne 0x10019037
cmp byte [esi + 0xaf], 0
jge 0x10019037
test dword [esi + 0x490], 0x400000
jbe 0x10019037
push 2
push 1
lea eax, [ebp - 0x8d]
push eax
push 0
call dword [sym.imp.bcrypt.dll_BCryptGenRandom]
mov al, byte [ebp - 0x8d]
shl al, 2
xor al, byte [esi + 0xc4]
and al, 4
xor byte [esi + 0xc4], al
or dword [esi + 0xb28], 0x10
test byte [esi + 0xb0], 1
je 0x10019047
and byte [esi + 0x102], 0xe7
cmp dword [esi], 4
lea ecx, [esi + 0x618]
mov eax, dword [edi]
setne bl
and eax, 0x10000
or eax, 0
je 0x10019077
movzx eax, word [esi + 0x9c]
mov dl, bl
push eax
call fcn.1002b6f0
add esp, 4
lea ecx, [esi + 0x618]
mov eax, dword [edi]
and eax, 0x20000
or eax, 0
je 0x10019098
movzx eax, word [esi + 0x9e]
or bl, 2
push eax
mov dl, bl
call fcn.1002b6f0
add esp, 4
mov eax, dword [edi]
and eax, 0x8000
or eax, 0
je 0x100190c9
test byte [esi + 0xc0], 4
je 0x100190c9
cmp dword [esi + 0x90], 0
mov ecx, esi
je 0x100190bf
call fcn.10017870
jmp 0x100190c9
mov edx, 3
call fcn.10010100
cmp byte [ebp - 0x8e], 0
je 0x100190ec
mov ecx, edi
call fcn.1001d5c0
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100483f7
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x94]
call fcn.1001c9d0
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100483f7
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 8]
xor al, al
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100483f7
mov esp, ebp
pop ebp
ret