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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45b3c7
mov eax, dword fs:[0]
push eax
mov eax, 0x13b0
call fcn.00459200
mov eax, dword [0x48e080]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
xorps xmm0, xmm0
mov dword [ebp - 0x13bc], esi
mov dword [ebp - 0x13b4], 0
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x13b4], 1
call sub.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_
mov edx, eax
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x1394], edx
mov ecx, 1
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [ebp + ecx*4 - 0x1394], edx
inc ecx
cmp ecx, 0x270
jb 0x414833
cmp dword [ebp + 0xc], 0
mov dword [ebp - 0x1398], 0x270
jle 0x414a13
lea eax, [ebp - 0x1398]
mov dword [ebp - 0x13b0], 0
mov dword [ebp - 0x13a4], eax
lea ecx, [ebp - 0x13a4]
mov edi, 0x3e
call fcn.00414620
mul edi
mov ecx, eax
mov eax, edx
cmp ecx, edi
jae 0x4148b4
cmp ecx, 4
jae 0x4148b4
nop dword [eax + eax]
lea ecx, [ebp - 0x13a4]
call fcn.00414620
mul edi
cmp eax, 4
mov eax, edx
jb 0x4148a0
cmp eax, 0xa
jge 0x4148bd
add al, 0x30
jmp 0x4148c8
cmp eax, 0x24
jge 0x4148c6
add al, 0x37
jmp 0x4148c8
add al, 0x3d
mov edx, dword [esi + 0x14]
mov edi, dword [esi + 0x10]
mov dword [ebp - 0x13a0], eax
mov dword [ebp - 0x13a8], edx
cmp edi, edx
jae 0x4148fa
lea ecx, [edi + 1]
mov dword [esi + 0x10], ecx
mov ecx, esi
cmp edx, 0xf
jbe 0x4148ed
mov ecx, dword [esi]
mov byte [ecx + edi], al
mov byte [ecx + edi + 1], 0
jmp 0x4149fd
mov eax, 0x7fffffff
sub eax, edi
cmp eax, 1
jb 0x414a36
lea ecx, [edi + 1]
or ecx, 0xf
cmp ecx, 0x7fffffff
jbe 0x41491f
mov ecx, 0x7fffffff
jmp 0x41494c
mov eax, edx
shr eax, 1
mov dword [ebp - 0x139c], eax
mov eax, 0x7fffffff
sub eax, dword [ebp - 0x139c]
cmp edx, eax
jbe 0x41493f
mov ecx, 0x7fffffff
jmp 0x41494c
mov eax, dword [ebp - 0x139c]
add eax, edx
cmp ecx, eax
cmovb ecx, eax
lea eax, [ebp - 0x139c]
mov dword [ebp - 0x139c], ecx
push eax
push esi
call fcn.004022d0
mov ecx, eax
add esp, 8
cmp dword [ebp - 0x13a8], 0xf
lea eax, [edi + 1]
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0x139c]
mov dword [esi + 0x14], eax
lea eax, [edi + ecx]
mov dword [ebp - 0x13ac], ecx
mov dword [ebp - 0x139c], eax
push edi
jbe 0x4149d9
mov eax, dword [esi]
mov edi, eax
push edi
push ecx
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [ebp - 0x139c]
add esp, 0xc
mov eax, dword [ebp - 0x13a0]
mov byte [ecx], al
mov byte [ecx + 1], 0
mov ecx, dword [ebp - 0x13a8]
inc ecx
cmp ecx, 0x1000
jb 0x4149cd
mov edx, dword [edi - 4]
add ecx, 0x23
sub edi, edx
lea eax, [edi - 4]
cmp eax, 0x1f
ja 0x414a30
mov edi, edx
push ecx
push edi
call fcn.00458ca2
add esp, 8
jmp 0x4149f5
push esi
push ecx
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [ebp - 0x139c]
add esp, 0xc
mov eax, dword [ebp - 0x13a0]
mov byte [ecx], al
mov byte [ecx + 1], 0
mov eax, dword [ebp - 0x13ac]
mov dword [esi], eax
mov edi, dword [ebp - 0x13b0]
inc edi
mov dword [ebp - 0x13b0], edi
cmp edi, dword [ebp + 0xc]
jl 0x41487c
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00458f01
mov esp, ebp
pop ebp
ret
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
call fcn.0040c9e0
int3