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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45b7e7
mov eax, dword fs:[0]
push eax
mov eax, 0x13b0
call fcn.004593b0
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 0x4149e3
cmp dword [ebp + 0xc], 0
mov dword [ebp - 0x1398], 0x270
jle 0x414bc3
lea eax, [ebp - 0x1398]
mov dword [ebp - 0x13b0], 0
mov dword [ebp - 0x13a4], eax
lea ecx, [ebp - 0x13a4]
mov edi, 0x3e
call fcn.004147d0
mul edi
mov ecx, eax
mov eax, edx
cmp ecx, edi
jae 0x414a64
cmp ecx, 4
jae 0x414a64
nop dword [eax + eax]
lea ecx, [ebp - 0x13a4]
call fcn.004147d0
mul edi
cmp eax, 4
mov eax, edx
jb 0x414a50
cmp eax, 0xa
jge 0x414a6d
add al, 0x30
jmp 0x414a78
cmp eax, 0x24
jge 0x414a76
add al, 0x37
jmp 0x414a78
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 0x414aaa
lea ecx, [edi + 1]
mov dword [esi + 0x10], ecx
mov ecx, esi
cmp edx, 0xf
jbe 0x414a9d
mov ecx, dword [esi]
mov byte [ecx + edi], al
mov byte [ecx + edi + 1], 0
jmp 0x414bad
mov eax, 0x7fffffff
sub eax, edi
cmp eax, 1
jb 0x414be6
lea ecx, [edi + 1]
or ecx, 0xf
cmp ecx, 0x7fffffff
jbe 0x414acf
mov ecx, 0x7fffffff
jmp 0x414afc
mov eax, edx
shr eax, 1
mov dword [ebp - 0x139c], eax
mov eax, 0x7fffffff
sub eax, dword [ebp - 0x139c]
cmp edx, eax
jbe 0x414aef
mov ecx, 0x7fffffff
jmp 0x414afc
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 0x414b89
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 0x414b7d
mov edx, dword [edi - 4]
add ecx, 0x23
sub edi, edx
lea eax, [edi - 4]
cmp eax, 0x1f
ja 0x414be0
mov edi, edx
push ecx
push edi
call fcn.00458e51
add esp, 8
jmp 0x414ba5
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 0x414a2c
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.004590b0
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.0040ca80
int3