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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x44bf24
mov eax, dword fs:[0]
push eax
push ebx
mov eax, 0x13a8
call fcn.0042c6c0
mov eax, dword [0x461020]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x13b8], edx
mov dword [ebp - 0x13b0], ecx
mov eax, dword [ebx + 8]
mov dword [ebp - 0x13b4], eax
mov dword [ebp - 0x13ac], 0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x20]
xorps xmm0, xmm0
mov dword [ebp - 0x18], 0
movq qword [ebp - 0x20], xmm0
push 0x10
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
call fcn.00419170
mov edi, dword [ebp - 0x20]
xorps xmm0, xmm0
mov dword [ebp - 0x13ac], 1
lea eax, [edi + 0x10]
movups xmmword [edi], xmm0
mov dword [ebp - 0x1c], eax
call fcn.0042af92
mov dword [ebp - 0x24], 0xffffffff
mov edx, 1
mov dword [ebp - 0x13a4], eax
nop dword [eax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [ebp + edx*4 - 0x13a4], eax
inc edx
cmp edx, 0x270
jb 0x415b10
mov dword [ebp - 0x13a8], 0x270
xor esi, esi
nop dword [eax + eax]
lea ecx, [ebp - 0x13a8]
call fcn.004191f0
mov ecx, eax
and eax, 0xffffff00
movzx eax, cl
mov byte [esi + edi], al
inc esi
cmp esi, 0x10
jl 0x415b40
mov eax, dword [ebp - 0x13b0]
mov edx, dword [ebp - 0x13b4]
mov eax, dword [eax]
mov dword [ebp - 0x13b0], eax
mov eax, dword [edx]
test eax, eax
je 0x415c9c
mov ecx, dword [ebp - 0x13b8]
mov esi, dword [ecx + 0x10]
mov dword [ebp - 0x13ac], esi
test edi, edi
je 0x415b97
movups xmm0, xmmword [edi]
movups xmmword [eax], xmm0
jmp 0x415bb9
xorps xmm0, xmm0
movups xmmword [eax], xmm0
call fcn.004343a8
mov dword [eax], 0x16
call fcn.0043041f
mov ecx, dword [ebp - 0x13b8]
mov edx, dword [ebp - 0x13b4]
cmp dword [ecx + 0x14], 0x10
jb 0x415bc1
mov ecx, dword [ecx]
mov eax, dword [edx]
add eax, 0x10
test esi, esi
je 0x415bfa
test eax, eax
je 0x415bea
push esi
test ecx, ecx
je 0x415bdf
push ecx
push eax
call fcn.0042cd70
add esp, 0xc
jmp 0x415bfa
push 0
push eax
call fcn.0042d2f0
add esp, 0xc
call fcn.004343a8
mov dword [eax], 0x16
call fcn.0043041f
mov ecx, dword [ebp - 0x13ac]
mov eax, esi
and eax, 0xf
mov esi, 0x10
sub esi, eax
add ecx, 0x10
mov eax, dword [ebp - 0x13b4]
push esi
push esi
mov eax, dword [eax]
add eax, ecx
push eax
call fcn.0042d2f0
mov edx, dword [ebp - 0x13b0]
lea ecx, [ebp - 0x120]
add esp, 0xc
call fcn.00402620
mov eax, dword [ebp - 0x13b4]
movups xmm0, xmmword [edi]
mov ecx, dword [ebp - 0x13ac]
lea edi, [ebp - 0x30]
mov eax, dword [eax]
add eax, 0x10
movups xmmword [ebp - 0x30], xmm0
add ecx, esi
je 0x415c99
dec ecx
mov esi, eax
shr ecx, 4
inc ecx
mov dword [ebp - 0x13ac], ecx
mov eax, esi
sub edi, esi
mov edx, 0x10
nop word [eax + eax]
mov cl, byte [edi + eax]
lea eax, [eax + 1]
xor byte [eax - 1], cl
sub edx, 1
jne 0x415c70
lea edx, [ebp - 0x120]
mov ecx, esi
call fcn.004029d0
mov edi, esi
add esi, 0x10
sub dword [ebp - 0x13ac], 1
jne 0x415c61
mov edi, dword [ebp - 0x20]
test edi, edi
je 0x415cc9
mov ecx, dword [ebp - 0x18]
mov eax, edi
sub ecx, edi
cmp ecx, 0x1000
jb 0x415cbf
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415ce7
push ecx
push edi
call fcn.0042b48a
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0042b459
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.0043042f
int3