Function at 0x1002d758
Capabilities:
Generate random numbers using a mersenne twister
Get system information on windows

Disassembly:
mov eax, 0x10066435
call fcn.10064c08
sub esp, 0x74
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 0x38], ecx
push edi
mov dword [ebp - 0x10], esp
cmp byte [ebp + 8], bl
je 0x1002d78d
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], bl
je 0x1002dbc4
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
jmp 0x1002dbc4
mov dword [ebp - 0x24], ebx
lea ecx, [ebp - 0x44]
mov eax, 0xa8b060d2
mov dword [ebp - 0x20], 0xa147b80b
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x18], 0xffff
push 1
call fcn.100014bd
mov dword [ebp - 4], ebx
mov dword [ebp - 0x18], ebx
jmp 0x1002d7d1
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x44]
mov dword [eax + ecx*4], 0x88b92280
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 1
jl 0x1002d7c1
cmp dword [ebp - 0x20], ebx
jne 0x1002d7ea
mov eax, dword [ebp - 0x24]
add eax, eax
mov dword [ebp - 0x54], eax
jne 0x1002d7ea
mov edx, ebx
jmp 0x1002d7ed
xor edx, edx
inc edx
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp eax, edx
setl cl
xor eax, eax
cmp ecx, 0x7c6f
setge al
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
sub eax, 7
neg eax
sbb eax, eax
xor edx, edx
inc eax
cmp eax, 0xffffffff
mov eax, dword [ebp - 0x44]
setg dl
xor ecx, ecx
mov dword [eax], edx
mov eax, dword [ebp - 0x24]
cmp eax, edx
setge cl
cmp ecx, 0x39b642c
jl 0x1002d867
push 0x1f50
push 0x6c7e
push 0x2476
lea eax, [ebp - 0x44]
xor cl, cl
push eax
push 0x78e9
push 1
push 0x2010
push 0x16c3
push 1
lea edx, [ebp - 0x24]
call fcn.1002e792
add esp, 0x24
jmp 0x1002d939
mov dword [ebp - 0x2c], 0x7b50
cmp dword [ebp - 0x2c], 0x7c16
jle 0x1002d8d4
mov esi, ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x18], 0x6fec
mov edi, ebx
lea eax, [esi + edi]
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x34], eax
mov esi, eax
mov eax, esi
mov ecx, 0x10081dd8
and eax, ebx
cdq
push edx
push eax
call fcn.1000c947
inc ebx
cmp ebx, 0x1ff6
jl 0x1002d893
mov esi, dword [ebp - 0x20]
inc edi
push 0
pop ebx
cmp edi, 0x9d7
jl 0x1002d888
dec esi
dec dword [ebp - 0x18]
mov dword [ebp - 0x20], esi
jne 0x1002d886
mov esi, dword [ebp - 0x28]
inc esi
mov dword [ebp - 0x28], esi
cmp esi, 0x6cc6
jl 0x1002d87c
mov dword [ebp - 0x18], 0xffffffff
jmp 0x1002d8f9
sub esp, 0xc
call fcn.1002dd3f
add esp, 8
mov byte [ebp - 0x12], bl
xor dl, dl
lea ecx, [ebp - 0x12]
call fcn.1002d37a
inc dword [ebp - 0x18]
pop ecx
cmp dword [ebp - 0x18], 5
jne 0x1002d8dd
mov byte [ebp - 4], 1
cmp dword [ebp - 0x2c], 0x7acc
jge 0x1002d939
mov edx, str.vpllfyg_vcgt_qfconmmet_liwnyz_zgw_ovzihywx_nxpyhxv_ijcvctqbm
mov ecx, 0x10081dd8
call fcn.1000fdbf
jmp 0x1002d939
mov ecx, dword [ebp - 0x18]
sub ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x44]
neg ecx
sbb ecx, ecx
or dword [ebp - 4], 0xffffffff
inc ecx
mov dword [eax], ecx
lea ecx, [ebp - 0x44]
call fcn.10001540
mov eax, dword [0x100833d4]
test al, 1
jne 0x1002d9a4
or dword [0x10084764], 0xffffffff
or eax, 1
mov ecx, 0x1571
mov dword [0x100833d4], eax
xor edx, edx
mov dword [0x100833e4], ecx
inc edx
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [edx*4 + 0x100833e4], ecx
inc edx
cmp edx, 0x270
jl 0x1002d97b
mov dword [0x100833e0], 0x270
mov dword [ebp - 0x2c], 0x78e4
cmp dword [ebp - 0x2c], 0x7c55
jle 0x1002d9db
mov esi, ebx
mov edi, ebx
mov eax, edi
mov ecx, 0x10081dd8
xor eax, esi
cdq
push edx
push eax
call fcn.1000c947
inc edi
cmp edi, 0x5f0d
jl 0x1002d9b8
inc esi
cmp esi, 0x6c7
jl 0x1002d9b6
mov dword [ebp - 4], 3
cmp dword [ebp - 0x2c], 0x7630
jge 0x1002d9fa
mov edx, str.xfpvwdehu_ksdhyyhd_rijwj_yzjkwqtjp_psoabobmg_hgkfzwdw_vlrrm_ijdw_ahbyecbl_vmdio_oxfpmkhyv_chbeseo
mov ecx, 0x10081dd8
call fcn.1000fdbf
or dword [ebp - 4], 0xffffffff
push 4
mov dword [ebp - 0x18], 0xc93b4e1a
mov dword [ebp - 0x18], ebx
pop esi
jmp 0x1002daee
push dword [ebp - 0x34]
movdqa xmm0, xmmword [0x10074300]
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x70]
mov dword [ebp - 0x50], ebx
push eax
push ebx
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x4c], ebx
movdqu xmmword [ebp - 0x70], xmm0
mov dword [ebp - 0x48], ebx
call fcn.10001981
mov dword [ebp - 4], 5
mov dword [ebp - 0x20], ebx
jmp 0x1002da72
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x80], ebx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x1002da68
push ecx
push ecx
push 0x5e9f
sub esp, 0x10
xor dl, dl
call fcn.1002d667
mov eax, dword [ebp - 0x18]
add esp, 0x1c
inc eax
je 0x1002dadc
mov dword [ebp - 0x20], ebx
jmp 0x1002daa4
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x1c], 0xffffffff
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 1
jl 0x1002da96
mov dword [ebp - 0x1c], ebx
jmp 0x1002dabf
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x50]
mov dword [eax + ecx*4], 0x3e31551d
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x1002daaf
push ecx
push 0x1f2a
push ecx
mov edx, 0xc85
mov cl, 1
call fcn.1002e4c0
add esp, 0xc
jmp 0x1002dadf
mov dword [ebp - 0x74], esi
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x50]
call fcn.10001540
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
je 0x1002da32
sub esp, 0xc
push ebx
push ecx
push ecx
push 0x565
mov ecx, 0x2ea3
call fcn.1002d066
add esp, 0x1c
xor dl, dl
push 0x100832d1
push ecx
push ecx
push 0x5b54
push 0x100833e0
call fcn.1002d037
mov eax, dword [0x100833e0]
add esp, 0x14
cmp eax, 0x270
jne 0x1002db75
mov edx, 0x100833e8
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, esi
cmp edx, 0x10083da8
jl 0x1002db3b
jmp 0x1002db81
cmp eax, 0x4e0
jb 0x1002db86
call fcn.1002fdf1
mov eax, dword [0x100833e0]
mov edx, dword [eax*4 + 0x100833e4]
inc eax
mov dword [0x100833e0], eax
mov eax, edx
shr eax, 0xb
and eax, dword [0x10084764]
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov eax, dword [ebp - 0x38]
mov ecx, edx
shr ecx, 0x12
xor ecx, edx
mov dword [eax], ecx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret