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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1624
call fcn.0049cae0
mov eax, dword [0x4e84c4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
xorps xmm1, xmm1
mov edx, dword [ebp + 0xc]
push ebx
mov ebx, ecx
mov dword [ebp - 0x238], eax
push esi
push edi
mov dword [ebp - 0x20c], ebx
movsd xmm2, qword [ebx + 0x18]
comisd xmm1, xmm2
ja 0x442432
movsd xmm0, qword [0x4da738]
comisd xmm2, xmm0
ja 0x442432
movsd xmm3, qword [ebx + 0x10]
comisd xmm1, xmm3
jae 0x442432
comisd xmm3, xmm0
ja 0x442432
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x441f51
mov esi, dword [ebx]
add esi, ecx
mov dword [ebp - 0x210], esi
cmp esi, 0x64
jb 0x441f5c
mov esi, 0x64
mov dword [ebp - 0x210], esi
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x441f73
mov eax, dword [ebx + 4]
add eax, ecx
mov dword [ebp - 0x218], eax
cmp eax, 0x64
jb 0x441f7e
mov eax, 0x64
mov dword [ebp - 0x218], eax
shr eax, 1
subsd xmm0, xmm2
mov dword [ebp - 0x21c], eax
mov ecx, edx
mov eax, dword [ebx + 0x30]
sub eax, dword [ebx + 0x2c]
shr esi, 1
mov dword [ebp - 0x224], esi
movd xmm1, eax
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm1
mulsd xmm1, xmm2
cvttsd2si eax, xmm0
mov dword [ebp - 0x230], eax
cvttsd2si eax, xmm1
mov dword [ebp - 0x234], eax
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm0, xmm3
cvttsd2si eax, xmm0
mov dword [ebp - 0x22c], eax
call fcn.00442520
push 0x200
mov esi, eax
lea eax, [ebp - 0x208]
push 0
push eax
call fcn.0049f000
add esp, 0xc
xor ecx, ecx
nop dword [eax]
nop word [eax + eax]
mov byte [ebp + ecx - 0x208], cl
inc ecx
cmp ecx, 0x100
jb 0x442000
mov dword [ebp - 0x29c], 0xffffffff
mov ecx, 1
mov dword [ebp - 0x161c], esi
mov eax, esi
shr eax, 0x1e
xor eax, esi
imul esi, eax, 0x6c078965
add esi, ecx
mov dword [ebp + ecx*4 - 0x161c], esi
inc ecx
cmp ecx, 0x270
jb 0x442025
lea eax, [ebp - 0x1620]
mov dword [ebp - 0x1620], 0x270
mov dword [ebp - 0x248], eax
lea esi, [ebp - 0x207]
mov dword [ebp - 0x244], 0x20
mov edi, 1
mov dword [ebp - 0x240], 0xffffffff
nop dword [eax]
lea ebx, [edi + 1]
push ebx
lea ecx, [ebp - 0x248]
call fcn.00442910
cmp eax, edi
je 0x4420a5
mov cl, byte [ebp + eax - 0x208]
mov dl, byte [esi]
mov byte [esi], cl
mov byte [ebp + eax - 0x208], dl
inc esi
lea eax, [ebp - 0x108]
mov edi, ebx
cmp esi, eax
jne 0x442080
xor ecx, ecx
nop dword [eax]
nop dword [eax + eax]
mov al, byte [ebp + ecx - 0x208]
mov byte [ebp + ecx - 0x108], al
inc ecx
cmp ecx, 0x100
jb 0x4420c0
mov edi, dword [ebp - 0x20c]
mov ebx, dword [ebp - 0x210]
mov eax, ebx
mov ecx, dword [ebp - 0x218]
sub eax, dword [edi]
mov edx, dword [edi + 4]
mov dword [ebp - 0x228], edx
movd xmm5, eax
cvtdq2pd xmm5, xmm5
shr eax, 0x1f
addsd xmm5, qword [eax*8 + 0x4da930]
mov eax, ecx
sub eax, edx
divsd xmm5, qword [edi + 0x20]
movd xmm6, eax
cvtdq2pd xmm6, xmm6
shr eax, 0x1f
movsd qword [ebp - 0x270], xmm5
addsd xmm6, qword [eax*8 + 0x4da930]
divsd xmm6, qword [edi + 0x20]
movsd qword [ebp - 0x248], xmm6
cmp edx, ecx
jae 0x44241d
movsd xmm2, qword [0x4da730]
imul eax, edx, 0x64
mov dword [ebp - 0x214], eax
cmp edx, dword [ebp - 0x21c]
jbe 0x442162
sub ecx, edx
dec ecx
jmp 0x442164
mov ecx, edx
mov esi, dword [edi]
cmp esi, ebx
jae 0x4423ff
mov edi, dword [ebp - 0x224]
mov eax, edi
movd xmm7, dword [ebp - 0x22c]
shr eax, 0x1f
movd xmm1, ecx
movd xmm3, edi
cvtdq2pd xmm3, xmm3
shr ecx, 0x1f
cvtdq2pd xmm1, xmm1
addsd xmm3, qword [eax*8 + 0x4da930]
mov eax, dword [ebp - 0x21c]
addsd xmm1, qword [ecx*8 + 0x4da930]
movd xmm4, edx
cvtdq2pd xmm7, xmm7
mov ecx, dword [ebp - 0x214]
lea ecx, [ecx + esi]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
cvtdq2pd xmm4, xmm4
addsd xmm0, qword [eax*8 + 0x4da930]
mov eax, edx
mulsd xmm1, xmm7
shr eax, 0x1f
mov edx, dword [ebp - 0x20c]
shl ecx, 2
movsd qword [ebp - 0x280], xmm7
addsd xmm4, qword [eax*8 + 0x4da930]
divsd xmm1, xmm0
mov dword [ebp - 0x220], ecx
divsd xmm4, xmm6
movd xmm6, dword [ebp - 0x230]
cvtdq2pd xmm6, xmm6
movsd qword [ebp - 0x298], xmm3
movsd qword [ebp - 0x288], xmm1
movsd qword [ebp - 0x290], xmm4
movsd qword [ebp - 0x278], xmm6
cmp esi, edi
jbe 0x44223d
mov eax, ebx
sub eax, esi
dec eax
jmp 0x44223f
mov eax, esi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mov ebx, dword [edx + 0x28]
addsd xmm0, qword [eax*8 + 0x4da930]
mov eax, esi
shr eax, 0x1f
mulsd xmm0, xmm7
divsd xmm0, xmm3
movd xmm3, esi
minsd xmm0, xmm1
xorps xmm1, xmm1
movsd qword [ebp - 0x250], xmm1
cvtdq2pd xmm3, xmm3
cvttsd2si edi, xmm0
movaps xmm0, xmm4
movsd xmm4, qword [0x4da738]
movsd qword [ebp - 0x260], xmm0
movsd qword [ebp - 0x268], xmm4
addsd xmm3, qword [eax*8 + 0x4da930]
divsd xmm3, xmm5
movsd qword [ebp - 0x258], xmm3
test ebx, ebx
je 0x442354
nop word [eax + eax]
movaps xmm2, xmm0
lea ecx, [ebp - 0x208]
movaps xmm1, xmm3
call fcn.004426b0
movsd xmm2, qword [ebp - 0x268]
mulsd xmm0, xmm2
mulsd xmm2, qword [0x4da730]
addsd xmm0, qword [ebp - 0x250]
movsd qword [ebp - 0x268], xmm2
movsd qword [ebp - 0x250], xmm0
movaps xmm1, xmm0
movsd xmm0, qword [ebp - 0x258]
addsd xmm0, xmm0
movsd qword [ebp - 0x258], xmm0
movaps xmm3, xmm0
movsd xmm0, qword [ebp - 0x260]
addsd xmm0, xmm0
movsd qword [ebp - 0x260], xmm0
sub ebx, 1
jne 0x4422c0
movsd xmm2, qword [0x4da730]
movsd xmm6, qword [ebp - 0x278]
movsd xmm7, qword [ebp - 0x280]
mov ecx, dword [ebp - 0x220]
mov edx, dword [ebp - 0x20c]
movsd xmm0, qword [0x4da738]
mulsd xmm1, xmm2
addsd xmm1, xmm2
comisd xmm1, xmm0
jb 0x44236f
movaps xmm2, xmm0
jmp 0x442376
xorps xmm2, xmm2
maxsd xmm2, xmm1
cmp edi, dword [ebp - 0x234]
movaps xmm0, xmm6
mov ebx, dword [ebp - 0x210]
cmovg edi, dword [ebp - 0x234]
inc esi
movsd xmm1, qword [ebp - 0x288]
movsd xmm4, qword [ebp - 0x290]
movsd xmm3, qword [ebp - 0x298]
movsd xmm5, qword [ebp - 0x270]
mulsd xmm0, xmm2
movsd xmm2, qword [0x4da730]
cvttsd2si eax, xmm0
add edi, eax
mov eax, dword [ebp - 0x238]
add edi, dword [edx + 0x2c]
mov eax, dword [eax + 4]
mov dword [ecx + eax], edi
add ecx, 4
mov edi, dword [ebp - 0x224]
mov dword [ebp - 0x220], ecx
cmp esi, ebx
jb 0x442232
movsd xmm6, qword [ebp - 0x248]
mov edx, dword [ebp - 0x228]
mov edi, dword [ebp - 0x20c]
mov eax, dword [ebp - 0x214]
mov ecx, dword [ebp - 0x218]
inc edx
add eax, 0x64
mov dword [ebp - 0x228], edx
mov dword [ebp - 0x214], eax
cmp edx, ecx
jb 0x442155
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0049c0fc
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp - 4]
xor al, al
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0049c0fc
mov esp, ebp
pop ebp
ret 8