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

Disassembly:
push edi
lea edi, [esp + 8]
and esp, 0xfffffff0
push dword [edi - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push eax
mov eax, 0x1428
call fcn.0040eec0
mov ecx, 0x3839
sub esp, eax
lea edx, [ebp - 0x13d4]
mov eax, dword [esp + eax]
mov word [ebp - 0x1406], cx
mov ecx, 0x1a
mov dword [ebp - 0x1424], eax
lea eax, [ebp - 0x13fc]
movdqu xmm0, xmmword [0x4bf240]
mov dword [ebp - 0x1404], eax
lea eax, [ebp - 0x1404]
movdqu xmm1, xmmword [0x4bf250]
mov dword [ebp - 0x1428], eax
lea eax, [ebp - 0x9dc]
movdqu xmm2, xmmword [0x4bf260]
movdqu xmm3, xmmword [0x4bf270]
movups xmmword [ebp - 0x13d4], xmm0
mov dword [ebp - 0x1400], 0
movups xmmword [ebp - 0x13ba], xmm2
mov byte [ebp - 0x13fc], 0
mov dword [ebp - 0x140e], 0x32333031
mov dword [ebp - 0x140a], 0x36373435
movups xmmword [ebp - 0x13ca], xmm1
movups xmmword [ebp - 0x13b0], xmm3
call fcn.004019a0
mov eax, dword [ebp - 0x9d8]
lea edi, [ebp - 0x1404]
mov dword [ebp - 0x1428], edi
mov ecx, edi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x9dc]
mov dword [esp], eax
call fcn.0049f290
lea ecx, [ebp - 0x9dc]
sub esp, 8
call fcn.0049dd80
mov ecx, 0x1a
lea edx, [ebp - 0x13ba]
lea eax, [ebp - 0x9dc]
call fcn.004019a0
mov eax, dword [ebp - 0x9d8]
mov ecx, edi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x9dc]
mov dword [esp], eax
call fcn.0049f290
lea ecx, [ebp - 0x9dc]
sub esp, 8
call fcn.0049dd80
mov ecx, 0xa
lea edx, [ebp - 0x140e]
lea eax, [ebp - 0x9dc]
call fcn.004019a0
mov eax, dword [ebp - 0x9d8]
mov ecx, edi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x9dc]
mov dword [esp], eax
call fcn.0049f290
sub esp, 8
lea ecx, [ebp - 0x9dc]
call fcn.0049dd80
mov edx, dword [ebp - 0x1400]
test edx, edx
je 0x40244a
lea eax, [ebp - 0x13e4]
lea edi, [ebp - 0x9d4]
mov dword [ebp - 0x13e8], 0
mov dword [ebp - 0x13ec], eax
mov byte [ebp - 0x13e4], 0
mov dword [ebp - 0x1420], 0xa
lea esi, [esi]
lea eax, [ebp - 0x9dc]
mov dword [ebp - 0x9dc], edi
lea ecx, [ebp - 0x13a0]
mov dword [edi], 0x61666564
mov dword [edi + 3], 0x746c7561
mov dword [ebp - 0x9d8], 7
mov byte [ebp - 0x9cd], 0
mov dword [esp], eax
call fcn.0048e3b0
mov edx, dword [ebp - 0x9dc]
sub esp, 4
cmp edx, edi
je 0x4022ba
mov eax, dword [ebp - 0x9d4]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.004b2cf0
lea ecx, [ebp - 0x13a0]
call fcn.0048e640
mov dword [ebp - 0x9dc], eax
mov edx, eax
mov ecx, 1
lea esi, [esi]
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul eax, eax, 0x6c078965
lea edx, [eax + ecx]
mov dword [ebp + ecx*4 - 0x9dc], edx
add ecx, 1
cmp ecx, 0x270
jne 0x4022d8
mov esi, dword [ebp - 0x1400]
mov dword [ebp - 0x1c], 0x270
lea ecx, [ebp - 0x9dc]
test esi, esi
je 0x402402
call fcn.004014f0
mul esi
mov dword [ebp - 0x141c], eax
mov ecx, eax
mov ebx, edx
cmp eax, esi
jae 0x402357
mov edx, esi
neg edx
mov eax, edx
xor edx, edx
div esi
cmp ecx, edx
jae 0x402357
mov dword [ebp - 0x141c], esi
mov esi, edx
lea ecx, [ebp - 0x9dc]
call fcn.004014f0
mul dword [ebp - 0x141c]
mov ebx, edx
cmp eax, esi
jb 0x402340
mov eax, ebx
mov edx, dword [ebp - 0x1404]
mov ebx, dword [ebp - 0x13e8]
movzx eax, byte [edx + eax]
lea edx, [ebp - 0x13e4]
lea esi, [ebx + 1]
mov byte [ebp - 0x141c], al
mov eax, dword [ebp - 0x13ec]
cmp eax, edx
je 0x402440
mov edx, dword [ebp - 0x13e4]
cmp edx, esi
jb 0x40240c
movzx ecx, byte [ebp - 0x141c]
mov byte [eax + ebx], cl
mov eax, dword [ebp - 0x13ec]
lea ecx, [ebp - 0x13a0]
mov dword [ebp - 0x13e8], esi
mov byte [eax + ebx + 1], 0
call fcn.0048e330
sub dword [ebp - 0x1420], 1
jne 0x402260
lea eax, [ebp - 0x13ec]
mov dword [esp], eax
mov ecx, dword [ebp - 0x1424]
call fcn.004a0d60
lea ecx, [ebp - 0x13ec]
sub esp, 4
call fcn.0049dd80
mov ecx, dword [ebp - 0x1428]
call fcn.0049dd80
mov eax, dword [ebp - 0x1424]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret
call fcn.004014f0
jmp 0x402359
mov dword [esp + 0xc], 1
lea ecx, [ebp - 0x13ec]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.004a0b50
mov eax, dword [ebp - 0x13ec]
sub esp, 0x10
jmp 0x402390
mov edx, 0xf
jmp 0x40238c
mov dword [esp], 0x4bf09a
mov ecx, dword [ebp - 0x1424]
call fcn.00401e70
push eax
jmp 0x4023e5