Function at 0x1000b2d8
Capabilities:
Generate random numbers using a mersenne twister

Disassembly:
mov eax, 0x1005e7f6
call fcn.1005dcd4
sub esp, 0x70
cmp byte [ebp + 0x14], 0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov byte [ebp - 0x14], dl
mov byte [ebp - 0x18], cl
je 0x1000b7eb
test cl, cl
je 0x1000b334
mov esi, dword [ebp + 0xc]
xor ebx, ebx
cmp dword [esi], ebx
jbe 0x1000b83d
mov edi, dword [ebp + 0x18]
call fcn.1000a71e
push 0xa
pop ecx
xor edx, edx
div ecx
mov ecx, dword [ebp + 8]
add dx, word [edi]
movzx eax, dx
push eax
call fcn.1000c9dd
inc ebx
cmp ebx, dword [esi]
jb 0x1000b30f
jmp 0x1000b83d
mov eax, dword [0x100a8968]
xor edi, edi
mov esi, dword [ebp + 0x20]
inc edi
mov dword [ebp - 0x38], esi
test al, 1
jne 0x1000b35f
or dword [0x100a9d04], 0xffffffff
or eax, edi
push ecx
push 0x1571
mov dword [0x100a8968], eax
call fcn.1000cc4d
cmp byte [0x1007ac7c], 0
jne 0x1000b751
mov dword [ebp - 0x20], 6
xor ebx, ebx
mov dword [ebp - 0x24], 0x6a9ef72d
mov dword [ebp - 0x40], 0x9f3c5a4a
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], 0xfffffff5
jl 0x1000b5cd
mov dword [ebp - 0x1c], 0x8b10
mov dword [ebp - 0x2c], 0x1d59
cmp dword [ebp - 0x2c], 0x1d92
jle 0x1000b3d1
mov esi, ebx
mov edi, ebx
mov eax, edi
mov ecx, 0x10079b38
and eax, esi
cdq
push edx
push eax
call fcn.10006e46
inc edi
cmp edi, 0x45f5
jl 0x1000b3ab
inc esi
cmp esi, 0x300b
jl 0x1000b3a9
xor edi, edi
inc edi
push ecx
lea eax, [ebp - 0x1c]
xor dl, dl
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.1000a75c
add esp, 0xc
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x2c], 0x1a7f
jge 0x1000b3ff
mov edx, str.sux_kcn_yfsdb_qglg_rortyljju_uptn_kxwzar_givsdnz_lvp_sjwanidm_qprssgx
mov ecx, 0x10079b38
call fcn.10009b61
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x20], ebx
je 0x1000b445
mov dword [ebp - 0x2c], 0xd65121ac
inc dword [ebp - 0x2c]
jmp 0x1000b5c5
mov dword [ebp - 0x34], 7
mov dword [ebp - 0x28], ebx
jmp 0x1000b45f
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0x48], 0x13281d21
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 2
jl 0x1000b451
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], edi
jg 0x1000b5c2
push 0xaf7
push 0x3bf3
push ecx
push 0x5dec
push 0x1fb3
mov byte [ebp + 0x17], bl
lea edx, [ebp + 0x17]
push ebx
mov ecx, 0x4031
call fcn.1000a811
mov dword [ebp - 0x30], 0xede
add esp, 0x18
cmp dword [ebp - 0x30], 0x1025
jle 0x1000b507
mov esi, ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x2c], 0x7d7f
mov eax, esi
lea ecx, [ebp - 0x7c]
cdq
push edx
push eax
call fcn.1000288f
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1000b4d0
mov eax, dword [eax]
push eax
call fcn.1004603d
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x7c]
call fcn.100078fb
dec esi
dec dword [ebp - 0x2c]
jne 0x1000b4b9
mov esi, dword [ebp - 0x28]
inc esi
mov dword [ebp - 0x28], esi
cmp esi, 0x3213
jl 0x1000b4af
push 0xe9f
push 0x439
push ebx
call dword [sym.imp.USER32.dll_InflateRect]
mov dword [ebp - 0x24], ebx
jmp 0x1000b599
mov dword [ebp - 0x28], 0x858f9c25
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], edi
cmp dword [ebp - 0x28], ebx
jl 0x1000b596
mov dword [ebp - 0x3c], 0xfffffffa
xor edx, edx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + eax*4 - 0x48]
mov eax, dword [ebp - 0x1c]
add ecx, 0x1c2b8ad2
mov eax, dword [ebp + eax*4 - 0x48]
add eax, ecx
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
setle dl
cmp edx, dword [ebp - 0x34]
jg 0x1000b572
mov eax, dword [ebp - 0x1c]
cmp dword [ebp + eax*4 - 0x48], ebx
jne 0x1000b572
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x48]
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov eax, dword [ebp + eax*4 - 0x48]
test eax, eax
mov eax, dword [ebp - 0x3c]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x28]
setle cl
mov dword [ebp + eax*4 - 0x48], ecx
dec dword [ebp - 0x28]
jns 0x1000b521
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jle 0x1000b50f
cmp dword [ebp - 0x30], 0xc50
jge 0x1000b5b6
push str.lgwchh_rcxejyt_tuu_bpjtp_fkdldgmpe
call fcn.1004603d
pop ecx
or dword [ebp - 4], 0xffffffff
inc dword [ebp - 0x1c]
jmp 0x1000b468
mov eax, dword [ebp - 0x34]
dec dword [ebp - 0x20]
jmp 0x1000b386
push 0xcef
push ebx
mov edx, 0x32fc
lea ecx, [ebp - 0x40]
call fcn.1000bef1
call fcn.1000a74c
pop ecx
pop ecx
mov dword [ebp - 0x20], 0x4bc662a2
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x2c], 0x6371
mov dword [ebp - 0x28], 0x270e7ad5
push 4
call fcn.10001cd0
mov dword [ebp - 0x34], edi
mov eax, 0x657a
mov dword [ebp - 0x30], 0x85d0
mov dword [ebp - 0x3c], 0xfffffffe
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x28], ebx
jmp 0x1000b63d
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x54]
mov dword [eax + ecx*4], 0x223dec99
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 4
jl 0x1000b62d
cmp dword [ebp - 0x20], ebx
jne 0x1000b67d
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x20]
jne 0x1000b65a
mov ecx, edi
cmp dword [ebp - 0x20], ebx
jne 0x1000b65c
mov ecx, ebx
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x20]
imul eax, ecx
xor ecx, ecx
sub edx, eax
mov eax, dword [ebp - 0x20]
cmp edx, eax
setne cl
cmp ecx, dword [ebp - 0x2c]
jle 0x1000b67d
mov edx, ebx
cmp dword [ebp - 0x2c], ebx
je 0x1000b67f
mov edx, edi
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
setge cl
xor edx, edx
add ecx, 0xbfc3
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
cmp eax, ecx
mov eax, dword [ebp - 0x2c]
setne dl
xor ecx, ecx
cmp edx, eax
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x38], edx
setg cl
xor eax, eax
test ecx, ecx
mov dword [edx + 8], ecx
sete al
cmp eax, dword [ebp - 0x2c]
jg 0x1000b6c5
mov eax, ebx
cmp dword [edx + 8], ebx
jne 0x1000b6c7
mov eax, edi
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x28], ebx
jne 0x1000b726
mov eax, dword [ebp - 0x54]
xor edx, edx
mov ecx, dword [ebp - 0x3c]
mov esi, dword [eax + 0xc]
mov eax, dword [ebp - 0x28]
cmp eax, ecx
setle dl
xor eax, eax
imul edx, dword [ebp - 0x60]
cmp edx, esi
setg al
cmp eax, esi
jne 0x1000b6f6
cmp dword [ebp - 0x64], ebx
je 0x1000b6f8
mov ebx, edi
mov esi, dword [ebp - 0x38]
xor edx, edx
imul eax, ebx, 0x1153
sub eax, 0x1153
cmp eax, dword [esi + 8]
mov eax, dword [ebp - 0x30]
setl dl
xor ecx, ecx
cmp eax, edx
setne cl
imul eax, ecx, 0x5412
cmp edi, eax
sbb eax, eax
inc eax
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x60]
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x34], 0xbc6c2db6
call fcn.10001d53
push 0x1f74
push ecx
push ecx
xor dl, dl
mov ecx, 0x1007ac7c
call fcn.1000aa68
mov esi, dword [ebp + 0x20]
add esp, 0xc
mov eax, dword [0x100a8980]
cmp eax, 0x270
jne 0x1000b79d
mov edx, 0x100a8988
mov ecx, dword [edx - 4]
xor ecx, dword [edx]
and ecx, 0x7fffffff
xor ecx, dword [edx - 4]
mov eax, ecx
and al, 1
movzx eax, al
neg eax
sbb eax, eax
shr ecx, 1
and eax, 0x9908b0df
xor eax, ecx
xor eax, dword [edx + 0x630]
mov dword [edx + 0x9bc], eax
add edx, 4
cmp edx, 0x100a9348
jl 0x1000b762
jmp 0x1000b7a9
cmp eax, 0x4e0
jb 0x1000b7ae
call fcn.1000cc88
mov eax, dword [0x100a8980]
mov ecx, dword [eax*4 + 0x100a8984]
inc eax
mov dword [0x100a8980], eax
mov eax, ecx
shr eax, 0xb
and eax, dword [0x100a9d04]
xor ecx, eax
mov eax, ecx
and eax, 0xff3a58ad
shl eax, 7
xor ecx, eax
mov eax, ecx
and eax, 0xffffdf8c
shl eax, 0xf
xor ecx, eax
mov eax, ecx
shr eax, 0x12
xor eax, ecx
mov dword [esi], eax
jmp 0x1000b83d
test dl, dl
je 0x1000b830
mov edx, dword [ebp + 0x2c]
mov eax, dword [edx]
imul eax, dword [edx]
test eax, eax
jne 0x1000b807
xor ebx, ebx
cmp dword [edx], ebx
jne 0x1000b807
mov eax, dword [edx]
cmp dword [edx], ebx
je 0x1000b80a
xor ebx, ebx
inc ebx
mov eax, dword [edx]
xor ecx, ecx
test ebx, ebx
sete cl
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp + 0x1c]
setle dl
sub edx, 2
neg edx
sbb edx, edx
inc edx
mov dword [eax], edx
mov ecx, dword [eax]
mov eax, dword [ebp + 0x10]
mov dword [eax], ecx
jmp 0x1000b83d
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x28]
push dword [eax]
call fcn.1000a4b1
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret