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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x276c
call fcn.1000b200
mov eax, dword [0x1001d160]
xor eax, esp
mov dword [esp + 0x2768], eax
mov eax, dword [ebp + 0xc]
mov dword [0x10024074], eax
mov eax, dword [ebp + 0x14]
push ebx
mov dword [0x10024078], eax
mov eax, dword [ebp + 0x10]
push esi
push edi
mov dword [0x10024070], eax
call fcn.1000cc10
mov dword [esp + 0x3c], eax
call fcn.10001dff
mov esi, eax
mov dword [esp + 0x14], 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 [esp + edx*4 + 0x13ec], edi
inc edx
cmp edx, 0x270
jl 0x1000d5c4
mov dword [esp + 0x276c], 0xffffffff
mov dword [esp + 0x13ec], esi
mov ecx, 1
lea ebx, [ebx]
mov eax, esi
shr eax, 0x1e
xor esi, eax
imul esi, esi, 0x6c078965
add esi, ecx
mov dword [esp + ecx*4 + 0x13ec], esi
inc ecx
cmp ecx, 0x270
jl 0x1000d600
lea eax, [esp + 0x13e8]
push eax
lea ecx, [esp + 0x64]
mov dword [esp + 0x13ec], 0x270
mov dword [esp + 0x5c], 1
mov dword [esp + 0x60], 0xffff
call fcn.10001be0
lea eax, [esp + 0x60]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0x20
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], 0x20
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0x20
mov dword [esp + 0x20], 0xffffffff
mov edi, 0x5daf65
mov eax, dword [esp + 0x58]
lea ecx, [esp + 0x30]
lea esi, [eax - 0x80000000]
mov eax, dword [esp + 0x5c]
add eax, 0x80000000
sub eax, esi
cmp eax, 0xffffffff
jne 0x1000d6b5
call fcn.10001a50
jmp 0x1000d6bc
inc eax
push eax
call fcn.10001930
mov eax, dword [esp + 0x58]
lea ecx, [esp + 0x24]
lea esi, [eax - 0x80000000]
mov eax, dword [esp + 0x5c]
add eax, 0x80000000
sub eax, esi
cmp eax, 0xffffffff
jne 0x1000d6e1
call fcn.10001a50
jmp 0x1000d6e8
inc eax
push eax
call fcn.10001930
mov eax, dword [esp + 0x58]
lea ecx, [esp + 0x18]
lea esi, [eax - 0x80000000]
mov eax, dword [esp + 0x5c]
add eax, 0x80000000
sub eax, esi
cmp eax, 0xffffffff
jne 0x1000d70d
call fcn.10001a50
jmp 0x1000d714
inc eax
push eax
call fcn.10001930
dec edi
jne 0x1000d690
lea eax, [esp + 0x60]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0x20
mov dword [esp + 0x20], 0xffffffff
mov ebx, 0x5d7f26
jmp 0x1000d740
mov eax, dword [esp + 0x58]
lea ecx, [esp + 0x18]
lea esi, [eax - 0x80000000]
mov eax, dword [esp + 0x5c]
add eax, 0x80000000
sub eax, esi
cmp eax, 0xffffffff
jne 0x1000d765
call fcn.10001a50
jmp 0x1000d76c
inc eax
push eax
call fcn.10001930
add eax, esi
xorps xmm1, xmm1
lea esi, [eax - 0x80000000]
movd xmm0, esi
cvtdq2ps xmm0, xmm0
ucomiss xmm0, xmm1
movss dword [0x10024058], xmm0
lahf
test ah, 0x44
lea eax, [esp + 0x60]
jnp 0x1000d7ee
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x28], 0x20
lea edi, [eax - 0x80000000]
mov eax, dword [esp + 0x5c]
add eax, 0x80000000
sub eax, edi
mov dword [esp + 0x2c], 0xffffffff
lea ecx, [esp + 0x24]
cmp eax, 0xffffffff
jne 0x1000d7cc
call fcn.10001a50
jmp 0x1000d7d3
inc eax
push eax
call fcn.10001930
add eax, edi
add eax, 0x80000000
movd xmm0, eax
movd xmm1, esi
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
divss xmm0, xmm1
jmp 0x1000d83c
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x34], 0x20
lea edi, [eax - 0x80000000]
mov eax, dword [esp + 0x5c]
add eax, 0x80000000
sub eax, edi
mov dword [esp + 0x38], 0xffffffff
lea ecx, [esp + 0x30]
cmp eax, 0xffffffff
jne 0x1000d827
call fcn.10001a50
jmp 0x1000d82e
inc eax
push eax
call fcn.10001930
add eax, edi
add eax, 0x80000000
movd xmm0, eax
cvtdq2ps xmm0, xmm0
xorps xmm1, xmm1
ucomiss xmm0, xmm1
movss dword [0x10024054], xmm0
lahf
test ah, 0x44
movss dword [esp + 0x10], xmm0
lea eax, [esp + 0x60]
jnp 0x1000d8b4
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x44], 0x20
lea edi, [eax - 0x80000000]
mov eax, dword [esp + 0x5c]
add eax, 0x80000000
sub eax, edi
mov dword [esp + 0x48], 0xffffffff
lea ecx, [esp + 0x40]
cmp eax, 0xffffffff
jne 0x1000d893
call fcn.10001a50
jmp 0x1000d89a
inc eax
push eax
call fcn.10001930
movss xmm1, dword [esp + 0x10]
add eax, edi
add eax, 0x80000000
movd xmm2, eax
cvtdq2ps xmm2, xmm2
divss xmm2, xmm1
jmp 0x1000d908
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x50], 0x20
lea edi, [eax - 0x80000000]
mov eax, dword [esp + 0x5c]
add eax, 0x80000000
sub eax, edi
mov dword [esp + 0x54], 0xffffffff
lea ecx, [esp + 0x4c]
cmp eax, 0xffffffff
jne 0x1000d8ed
call fcn.10001a50
jmp 0x1000d8f4
inc eax
push eax
call fcn.10001930
movss xmm1, dword [esp + 0x10]
add eax, edi
add eax, 0x80000000
movd xmm2, eax
cvtdq2ps xmm2, xmm2
movd xmm3, esi
cvtdq2ps xmm3, xmm3
movaps xmm0, xmm1
mulss xmm0, xmm3
mulss xmm0, xmm2
mulss xmm0, xmm3
mulss xmm0, xmm2
subss xmm0, xmm1
movss dword [0x10024050], xmm0
dec ebx
jne 0x1000d740
call fcn.1000cc10
movss xmm0, dword [0x10024050]
addss xmm0, dword [0x1001b34c]
mov ecx, dword [esp + 0x3c]
movss dword [0x10024050], xmm0
cmp eax, ecx
jbe 0x1000d956
mov ecx, dword [esp + 0x2774]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10001e2b
mov esp, ebp
pop ebp
ret