Function at 0x10002a20
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2754
call fcn.1000a900
mov eax, dword [ebp + 0x14]
mov dword [0x1003a3ec], eax
mov eax, dword [ebp + 0x10]
push ebx
mov dword [0x1003a3f0], eax
mov eax, dword [ebp + 0xc]
push esi
push edi
mov dword [0x1003a3f4], eax
call fcn.10006200
mov ebx, eax
call fcn.1000938f
mov esi, eax
mov dword [ebp - 4], edx
mov edi, esi
mov edx, 1
mov ecx, edi
shr ecx, 0x1e
xor edi, ecx
imul edi, edi, 0x6c078965
add edi, edx
mov dword [ebp + edx*4 - 0x2750], edi
inc edx
cmp edx, 0x270
jl 0x10002a60
mov dword [ebp - 0x13d0], 0xffffffff
mov dword [ebp - 0x2750], esi
mov ecx, 1
mov eax, esi
shr eax, 0x1e
xor esi, eax
imul esi, esi, 0x6c078965
add esi, ecx
mov dword [ebp + ecx*4 - 0x2750], esi
inc ecx
cmp ecx, 0x270
jl 0x10002a94
lea eax, [ebp - 0x2754]
push eax
lea ecx, [ebp - 0x13c4]
mov dword [ebp - 0x2754], 0x270
mov dword [ebp - 0x13cc], 1
mov dword [ebp - 0x13c8], 0xffff
call fcn.10003400
lea eax, [ebp - 0x13c4]
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], 0x20
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0x20
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], 0x20
mov dword [ebp - 0x1c], 0xffffffff
mov edi, 0x5e81ae
mov eax, dword [ebp - 0x13cc]
lea ecx, [ebp - 0xc]
lea esi, [eax - 0x80000000]
mov eax, dword [ebp - 0x13c8]
add eax, 0x80000000
sub eax, esi
cmp eax, 0xffffffff
jne 0x10002b49
call fcn.10003d00
jmp 0x10002b50
inc eax
push eax
call fcn.10003710
add eax, esi
add eax, 0x80000000
movd xmm0, eax
mov eax, dword [ebp - 0x13cc]
cvtdq2ps xmm0, xmm0
lea esi, [eax - 0x80000000]
mov eax, dword [ebp - 0x13c8]
add eax, 0x80000000
sub eax, esi
movss dword [0x1003a3e0], xmm0
lea ecx, [ebp - 0x18]
cmp eax, 0xffffffff
jne 0x10002b8e
call fcn.10003d00
jmp 0x10002b95
inc eax
push eax
call fcn.10003710
add eax, esi
add eax, 0x80000000
movd xmm0, eax
mov eax, dword [ebp - 0x13cc]
cvtdq2ps xmm0, xmm0
lea esi, [eax - 0x80000000]
mov eax, dword [ebp - 0x13c8]
add eax, 0x80000000
sub eax, esi
movss dword [0x1003a3e4], xmm0
lea ecx, [ebp - 0x24]
cmp eax, 0xffffffff
jne 0x10002bd3
call fcn.10003d00
jmp 0x10002bda
inc eax
push eax
call fcn.10003710
movss xmm2, dword [0x1003a3e4]
mulss xmm2, dword [0x1003a3e0]
add eax, esi
add eax, 0x80000000
movd xmm3, eax
cvtdq2ps xmm3, xmm3
mulss xmm2, xmm3
mulss xmm2, dword [0x1003a3e0]
mulss xmm2, xmm3
subss xmm2, dword [0x1003a3e4]
movss dword [0x1003a3e8], xmm2
dec edi
jne 0x10002b21
lea eax, [ebp - 0x13c4]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], 0x20
mov dword [ebp - 0x1c], 0xffffffff
mov edi, 0x5ee132
jmp 0x10002c40
mov eax, dword [ebp - 0x13cc]
lea ecx, [ebp - 0x24]
lea esi, [eax - 0x80000000]
mov eax, dword [ebp - 0x13c8]
add eax, 0x80000000
sub eax, esi
cmp eax, 0xffffffff
jne 0x10002c68
call fcn.10003d00
jmp 0x10002c6f
inc eax
push eax
call fcn.10003710
add eax, esi
add eax, 0x80000000
movd xmm0, eax
cvtdq2ps xmm0, xmm0
xorps xmm1, xmm1
ucomiss xmm0, xmm1
movss dword [0x1003a3e0], xmm0
lahf
test ah, 0x44
lea eax, [ebp - 0x13c4]
jnp 0x10002cef
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x13cc]
mov dword [ebp - 0x14], 0x20
lea esi, [eax - 0x80000000]
mov eax, dword [ebp - 0x13c8]
add eax, 0x80000000
sub eax, esi
mov dword [ebp - 0x10], 0xffffffff
lea ecx, [ebp - 0x18]
cmp eax, 0xffffffff
jne 0x10002cd0
call fcn.10003d00
jmp 0x10002cd7
inc eax
push eax
call fcn.10003710
add eax, esi
add eax, 0x80000000
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, dword [0x1003a3e0]
jmp 0x10002d3d
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x13cc]
mov dword [ebp - 8], 0x20
lea esi, [eax - 0x80000000]
mov eax, dword [ebp - 0x13c8]
add eax, 0x80000000
sub eax, esi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xc]
cmp eax, 0xffffffff
jne 0x10002d28
call fcn.10003d00
jmp 0x10002d2f
inc eax
push eax
call fcn.10003710
add eax, esi
add eax, 0x80000000
movd xmm0, eax
cvtdq2ps xmm0, xmm0
xorps xmm1, xmm1
ucomiss xmm0, xmm1
movss dword [0x1003a3e4], xmm0
lahf
test ah, 0x44
lea eax, [ebp - 0x13c4]
jnp 0x10002db3
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x13cc]
mov dword [ebp - 0x2c], 0x20
lea esi, [eax - 0x80000000]
mov eax, dword [ebp - 0x13c8]
add eax, 0x80000000
sub eax, esi
mov dword [ebp - 0x28], 0xffffffff
lea ecx, [ebp - 0x30]
cmp eax, 0xffffffff
jne 0x10002d90
call fcn.10003d00
jmp 0x10002d97
inc eax
push eax
call fcn.10003710
movss xmm3, dword [0x1003a3e4]
add eax, esi
add eax, 0x80000000
movd xmm2, eax
cvtdq2ps xmm2, xmm2
divss xmm2, xmm3
jmp 0x10002e09
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x13cc]
mov dword [ebp - 0x38], 0x20
lea esi, [eax - 0x80000000]
mov eax, dword [ebp - 0x13c8]
add eax, 0x80000000
sub eax, esi
mov dword [ebp - 0x34], 0xffffffff
lea ecx, [ebp - 0x3c]
cmp eax, 0xffffffff
jne 0x10002dec
call fcn.10003d00
jmp 0x10002df3
inc eax
push eax
call fcn.10003710
movss xmm3, dword [0x1003a3e4]
add eax, esi
add eax, 0x80000000
movd xmm2, eax
cvtdq2ps xmm2, xmm2
movaps xmm1, xmm3
mulss xmm1, dword [0x1003a3e0]
mulss xmm1, xmm2
mulss xmm1, dword [0x1003a3e0]
mulss xmm1, xmm2
subss xmm1, xmm3
movss dword [0x1003a3e8], xmm1
dec edi
jne 0x10002c40
call fcn.10006200
movss xmm0, dword [0x1003a3e8]
addss xmm0, dword [0x1002fa64]
movss dword [0x1003a3e8], xmm0
cmp eax, ebx
jbe 0x10002e54
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret