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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42c1ba
mov eax, dword fs:[0]
push eax
mov eax, 0x1450
call fcn.0040f070
mov eax, dword [0x43d04c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x13a0], ebx
mov dword [ebp - 0x145c], ebx
mov dword [ebp - 0x139c], 0
call fcn.0040d8e8
mov edx, eax
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x1394], edx
mov eax, 1
mov ecx, edx
shr ecx, 0x1e
xor ecx, edx
imul edx, ecx, 0x6c078965
add edx, eax
mov dword [ebp + eax*4 - 0x1394], edx
inc eax
cmp eax, 0x270
jb 0x4042d3
lea eax, [ebp - 0x1398]
mov dword [ebp - 0x1398], 0x270
push eax
lea ecx, [ebp - 0x13a4]
mov dword [ebp - 0x13a4], 0x2710
mov dword [ebp - 0x13a0], 0x1869f
call fcn.0040a9b0
mov edi, eax
mov dword [ebp - 0x1458], 0x4395a4
mov dword [ebp - 0x1448], 0x439594
mov dword [ebp - 0x13e8], 0
mov dword [ebp - 0x13c8], 0
mov dword [ebp - 0x13c4], 0
mov dword [ebp - 0x13c0], 0
mov dword [ebp - 4], 0
lea eax, [ebp - 0x1440]
push 0
xorps xmm0, xmm0
mov dword [ebp - 0x139c], 2
push eax
lea ecx, [ebp - 0x13f0]
mov dword [ebp - method.std::basic_istream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov dword [ebp - 0x13f4], 0x50
movlpd qword [ebp - 0x1450], xmm0
call fcn.00409c90
mov eax, dword [ebp - 0x1448]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ostream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x1448]
mov ecx, dword [eax + 4]
lea eax, [ecx - 8]
mov dword [ebp + ecx - 0x144c], eax
mov eax, dword [ebp - 0x1458]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_iostream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_iostream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x1458]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x20]
mov dword [ebp + ecx - 0x145c], eax
mov dword [ebp - 4], 5
mov eax, dword [ebp - 0x1458]
push 8
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov eax, dword [ebp - 0x1458]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0x145c], eax
mov dword [ebp - method.std::basic_streambuf_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_streambuf_char__struct_std::char_traits_char__.0
call fcn.0040e223
mov esi, eax
push 1
mov byte [ebp - 4], 6
call fcn.0040d44c
mov dword [esi + 4], eax
add esp, 8
lea eax, [ebp - 0x143c]
mov dword [ebp - 0x140c], esi
mov dword [ebp - 0x1434], eax
lea eax, [ebp - 0x1438]
mov dword [ebp - 0x1430], eax
lea eax, [ebp - 0x142c]
mov dword [ebp - 0x1424], eax
lea eax, [ebp - 0x1428]
mov dword [ebp - 0x1420], eax
lea eax, [ebp - 0x141c]
mov dword [ebp - 0x1414], eax
lea eax, [ebp - 0x1418]
mov dword [ebp - 0x1410], eax
mov dword [ebp - 0x1438], 0
mov dword [ebp - 0x1428], 0
mov dword [ebp - 0x1418], 0
mov dword [ebp - 0x143c], 0
mov dword [ebp - 0x142c], 0
mov dword [ebp - 0x141c], 0
mov dword [ebp - method.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov dword [ebp - 0x1408], 0
mov dword [ebp - 0x1404], 0
push edi
lea ecx, [ebp - 0x1448]
mov dword [ebp - 4], 7
call fcn.00407090
mov byte [ebp - 4], 8
xorps xmm0, xmm0
mov eax, dword [ebp - 0x1404]
and al, 0x22
mov dword [ebx], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0xf
mov byte [ebx], 0
mov dword [ebp - 0x139c], 0x42
movq qword [ebp - 0x13a8], xmm0
mov dword [ebp - 0x13a0], 0
cmp al, 2
je 0x404569
mov eax, dword [ebp - 0x1420]
mov ecx, dword [eax]
test ecx, ecx
je 0x404569
mov eax, dword [ebp - 0x1430]
cmp ecx, dword [ebp - 0x1408]
cmovb ecx, dword [ebp - 0x1408]
mov edx, dword [eax]
sub ecx, edx
jmp 0x4045a0
test byte [ebp - 0x1404], 4
jne 0x404594
mov eax, dword [ebp - 0x1424]
mov esi, dword [eax]
test esi, esi
je 0x404594
mov eax, dword [ebp - 0x1434]
mov edx, dword [eax]
mov eax, dword [ebp - 0x1414]
mov ecx, dword [eax]
sub ecx, edx
add ecx, esi
jmp 0x4045a0
mov ecx, dword [ebp - 0x13a4]
mov edx, dword [ebp - 0x13a8]
test edx, edx
je 0x4045ad
push ecx
push edx
mov ecx, ebx
call fcn.00408cb0
lea ecx, [ebp - 0x1458]
call fcn.004045e0
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0040e210
mov esp, ebp
pop ebp
ret