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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40441d
mov eax, dword fs:[0]
push eax
mov eax, 0x13a0
call fcn.004043d0
mov eax, dword [section..data]
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
xorps xmm0, xmm0
mov dword [ebp - 0x14], 0
push 0x190
movq qword [ebp - 0x1c], xmm0
call fcn.0040357f
mov esi, eax
push 0x190
push 0
push esi
lea ebx, [esi + 0x190]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x14], ebx
call sub.VCRUNTIME140.dll_memset
add esp, 0x10
mov dword [ebp - 0x18], ebx
mov dword [ebp - 4], 0
mov ecx, 1
cmp esi, ebx
je 0x40134a
mov eax, esi
nop
mov dword [eax], ecx
add eax, 4
inc ecx
cmp eax, ebx
jne 0x401340
call dword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [ebp - 0x28], 0xffffffff
mov edx, 1
mov dword [ebp - 0x13a8], eax
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [ebp + edx*4 - 0x13a8], eax
inc edx
cmp edx, 0x270
jb 0x401362
mov dword [ebp - 0x13ac], 0x270
cmp esi, ebx
je 0x40140a
lea ecx, [esi + 4]
mov eax, 1
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], ecx
cmp ecx, ebx
je 0x40140a
lea ebx, [eax + 1]
xor edi, edi
xor ecx, ecx
test eax, eax
je 0x4013bc
lea ecx, [ebp - 0x13ac]
call fcn.004029a0
mov edi, eax
or ecx, 0xffffffff
xor edx, edx
mov eax, ecx
div ebx
xor edx, edx
mov esi, eax
mov eax, edi
div ebx
cmp eax, esi
jb 0x4013db
xor edx, edx
mov eax, ecx
div ebx
mov eax, dword [ebp - 0x20]
cmp edx, eax
jne 0x4013a4
xor edx, edx
mov esi, dword [ebp - 0x1c]
mov eax, edi
div ebx
mov edi, edx
mov edx, dword [ebp - 0x24]
cmp edi, dword [ebp - 0x20]
je 0x4013f8
mov ecx, dword [edx]
mov eax, dword [esi + edi*4]
mov dword [edx], eax
mov dword [esi + edi*4], ecx
mov eax, ebx
add edx, 4
mov ebx, dword [ebp - 0x14]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], edx
cmp edx, ebx
jne 0x4013a1
xor edx, edx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x24], edx
mov eax, esi
cmp esi, ebx
je 0x40145a
nop dword [eax + eax]
mov edi, dword [eax]
mov eax, 0x55555556
imul edi
lea ecx, [edi + edi]
mov eax, edx
shr eax, 0x1f
add eax, edx
lea esi, [eax + eax*2]
mov eax, edi
cdq
sub eax, edx
mov edx, dword [ebp - 0x24]
sar eax, 1
cmp edi, esi
cmovne ecx, eax
mov eax, dword [ebp - 0x20]
add eax, 4
add edx, ecx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], eax
cmp eax, ebx
jne 0x401420
mov esi, dword [ebp - 0x1c]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
push 0x4021a0
push edx
mov edx, str.Sum:
call fcn.00401f80
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
test esi, esi
je 0x4014ad
sub ebx, esi
and ebx, 0xfffffffc
cmp ebx, 0x1000
jb 0x4014a3
mov ecx, dword [esi - 4]
add ebx, 0x23
sub esi, ecx
lea eax, [esi - 4]
cmp eax, 0x1f
ja 0x4014c9
mov esi, ecx
push ebx
push esi
call fcn.004035af
add esp, 8
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.00403571
mov esp, ebp
pop ebp
ret
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3