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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1420]
mov eax, 0x1520
call fcn.14000f980
sub rsp, rax
mov rax, qword [0x14004b080]
xor rax, rsp
mov qword [rbp + 0x1410], rax
movsxd rdi, ecx
mov edx, dword [0x14076bef0]
add edx, dword [0x14076bf14]
je 0x140004f0f
call fcn.14000c5a4
mov dword [rbp + 0x1404], 0xffffffff
mov dword [rbp + 0x84], eax
mov edx, 1
nop dword [rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rbp + rdx*4 + 0x84], eax
inc rdx
cmp rdx, 0x270
jb 0x140004960
mov dword [rbp + 0x80], 0x270
call fcn.14000c9bc
mov rbx, rax
call fcn.14000c9a0
mov rcx, rax
movabs rsi, 0xb2f4fc0794908cf3
cmp rbx, 0x989680
jne 0x1400049b5
imul rbx, rcx, 0x64
jmp 0x140004a25
cmp rbx, 0x16e3600
jne 0x140004a09
mov rax, rsi
imul rcx
add rdx, rcx
sar rdx, 0x18
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul r8, rdx, 0x3b9aca00
imul rax, rdx, 0x16e3600
sub rcx, rax
imul rcx, rcx, 0x3b9aca00
mov rax, rsi
imul rcx
add rdx, rcx
sar rdx, 0x18
mov rbx, rdx
shr rbx, 0x3f
add rbx, rdx
add rbx, r8
jmp 0x140004a25
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
lea rbx, [rax + rcx]
mov r15, rdi
mov qword [rsp + 0x38], rdi
movabs r12, 0x431bde82d7b634db
movabs r13, 0x4e94914f0000
call fcn.14000c9bc
mov rdi, rax
call fcn.14000c9a0
mov rcx, rax
cmp rdi, 0x989680
jne 0x140004a60
imul rcx, rcx, 0x64
jmp 0x140004acf
cmp rdi, 0x16e3600
jne 0x140004ab4
mov rax, rsi
imul rcx
add rdx, rcx
sar rdx, 0x18
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul r8, rdx, 0x3b9aca00
imul rax, rdx, 0x16e3600
sub rcx, rax
imul rcx, rcx, 0x3b9aca00
mov rax, rsi
imul rcx
add rdx, rcx
sar rdx, 0x18
mov rcx, rdx
shr rcx, 0x3f
add rcx, rdx
add rcx, r8
jmp 0x140004acf
cqo
idiv rdi
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rdi
add rcx, rax
sub rcx, rbx
mov rax, r12
imul rcx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, r15
jge 0x140004f0f
lea rcx, [rbp + 0x80]
call fcn.1400021b0
mov ecx, eax
imul rax, rcx, 0x3e8
cmp eax, 0x127
ja 0x140004b2c
nop dword [rax + rax]
lea rcx, [rbp + 0x80]
call fcn.1400021b0
mov ecx, eax
imul rax, rcx, 0x3e8
cmp eax, 0x128
jb 0x140004b10
shr rax, 0x20
lea r14d, [rax - 0x7fffffff]
mov edi, 0x80000000
xor r14d, edi
lea rcx, [rbp + 0x80]
call fcn.1400021b0
mov ecx, eax
imul rax, rcx, 0x3e8
cmp eax, 0x127
ja 0x140004b7c
nop dword [rax + rax]
lea rcx, [rbp + 0x80]
call fcn.1400021b0
mov ecx, eax
imul rax, rcx, 0x3e8
cmp eax, 0x128
jb 0x140004b60
shr rax, 0x20
lea esi, [rax - 0x7fffffff]
xor esi, edi
lea rcx, [rbp + 0x80]
call fcn.1400021b0
mov ecx, eax
imul rax, rcx, 0x3e8
cmp eax, 0x127
ja 0x140004bc0
lea rcx, [rbp + 0x80]
call fcn.1400021b0
mov ecx, eax
imul rax, rcx, 0x3e8
cmp eax, 0x128
jb 0x140004ba4
shr rax, 0x20
lea edi, [rax - 0x7fffffff]
xor edi, 0x80000000
add edi, esi
add edi, r14d
xor edx, edx
mov r8d, pe_nt_image_headers64
lea rcx, [rsp + 0x70]
call fcn.140034750
lea rcx, [rsp + 0x70]
call fcn.1400070a0
nop
lea rcx, [rsp + 0x78]
call fcn.140008a90
test rax, rax
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
je 0x140004c33
mov eax, 4
cmp qword [rbp + rcx - 0x48], 0
mov edx, 0
cmovne eax, edx
mov dword [rbp + rcx - 0x80], eax
test dword [rbp + rcx - 0x7c], eax
jne 0x140004f92
mov r14d, 2
jmp 0x140004c5d
mov eax, 6
cmp qword [rbp + rcx - 0x48], 0
mov r14d, 2
cmovne eax, r14d
or eax, dword [rbp + rcx - 0x80]
and eax, 0x17
mov dword [rbp + rcx - 0x80], eax
and eax, dword [rbp + rcx - 0x7c]
jne 0x140004f3f
lea rcx, [rsp + 0x70]
call fcn.1400099e0
mov rcx, rax
mov edx, edi
call fcn.140007260
mov rdi, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
mov rcx, qword [rcx + rax + 0x40]
mov rcx, qword [rcx + 8]
mov qword [rsp + 0x28], rcx
mov rdx, qword [rcx]
call qword [rdx + 8]
nop
lea rcx, [rsp + 0x20]
call fcn.1400098a0
mov r8, qword [rax]
mov dl, 0xa
mov rcx, rax
call qword [r8 + 0x40]
movzx esi, al
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x140004ccc
mov rdx, qword [rcx]
call qword [rdx + 0x10]
test rax, rax
je 0x140004ccc
mov r8, qword [rax]
mov edx, 1
mov rcx, rax
call qword [r8]
movzx edx, sil
mov rcx, rdi
call fcn.14000b680
mov rcx, rdi
call fcn.1400095b0
lea rcx, [rsp + 0x78]
call fcn.140008990
test rax, rax
jne 0x140004d1c
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
mov eax, 6
cmp qword [rbp + rcx - 0x48], 0
cmovne eax, r14d
or eax, dword [rbp + rcx - 0x80]
and eax, 0x17
mov dword [rbp + rcx - 0x80], eax
and eax, dword [rbp + rcx - 0x7c]
jne 0x140004fc7
lea rcx, [rbp + 0x80]
call fcn.1400021b0
mov ecx, eax
imul rdi, rcx, 0x191
cmp edi, 0xfe
ja 0x140004d5d
nop dword [rax]
lea rcx, [rbp + 0x80]
call fcn.1400021b0
mov ecx, eax
imul rdi, rcx, 0x191
cmp edi, 0xff
jb 0x140004d40
shr rdi, 0x20
mov eax, 0x80000096
add rdi, rax
mov eax, 0x80000000
xor rdi, rax
lea rcx, [rsp + 0x30]
call fcn.140004810
mov rsi, qword [rsp + 0x30]
test rdi, rdi
je 0x140004da9
imul rcx, rdi, 0xf4240
movabs r14, 0x7fffffffffffffff
mov rax, r14
sub rax, rcx
cmp rsi, rax
jge 0x140004da6
add rsi, rcx
jmp 0x140004da9
mov rsi, r14
movabs r15, 0xb2f4fc0794908cf3
call fcn.14000c9bc
mov rdi, rax
call fcn.14000c9a0
mov rcx, rax
cmp rdi, 0x989680
jne 0x140004dd2
imul rax, rcx, 0x64
jmp 0x140004e41
cmp rdi, 0x16e3600
jne 0x140004e26
mov rax, r15
imul rcx
add rdx, rcx
sar rdx, 0x18
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul r8, rdx, 0x3b9aca00
imul rax, rdx, 0x16e3600
sub rcx, rax
imul rcx, rcx, 0x3b9aca00
mov rax, r15
imul rcx
add rdx, rcx
sar rdx, 0x18
mov rax, rdx
shr rax, 0x3f
add rax, rdx
add rax, r8
jmp 0x140004e41
cqo
idiv rdi
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rdi
add rax, rcx
cmp rax, rsi
jge 0x140004e8f
mov rcx, rsi
sub rcx, rax
cmp rcx, r13
jl 0x140004e60
mov ecx, 0x5265c00
call sub.KERNEL32.dll_Sleep
jmp 0x140004db3
mov rax, r12
imul rcx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rax, rdx, 0xf4240
cmp rax, rcx
jge 0x140004e83
inc rdx
mov ecx, edx
call sub.KERNEL32.dll_Sleep
jmp 0x140004db3
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x70], rax
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rsp + rcx + 0x6c], edx
lea rcx, [rsp + 0x78]
call fcn.140006dd0
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x70], rax
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x10]
mov dword [rsp + rcx + 0x6c], edx
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0x18], rax
lea rcx, [rbp + 0x18]
call fcn.14000e680
nop
mov r15, qword [rsp + 0x38]
movabs rsi, 0xb2f4fc0794908cf3
jmp 0x140004a41
mov rcx, qword [rbp + 0x1410]
xor rcx, rsp
call fcn.14000f4d0
lea r11, [rsp + 0x1520]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
test al, 4
je 0x140004f4c
lea rbx, str.ios_base::badbit_set
jmp 0x140004f61
test r14b, al
lea rbx, str.ios_base::failbit_set
lea rax, str.ios_base::eofbit_set
cmove rbx, rax
mov edx, 1
lea rcx, [rsp + 0x20]
call fcn.140003630
mov r8, rax
mov rdx, rbx
lea rcx, [rsp + 0x40]
call fcn.140004640
lea rdx, [0x140049698]
lea rcx, [rsp + 0x40]
call fcn.1400111f0
int3
mov edx, 1
lea rcx, [rsp + 0x20]
call fcn.140003630
mov r8, rax
lea rdx, str.ios_base::badbit_set
lea rcx, [rsp + 0x40]
call fcn.140004640
lea rdx, [0x140049698]
lea rcx, [rsp + 0x40]
call fcn.1400111f0
int3
test al, 4
je 0x140004fd4
lea rbx, str.ios_base::badbit_set
jmp 0x140004fe8
test al, 2
lea rbx, str.ios_base::failbit_set
lea rax, str.ios_base::eofbit_set
cmove rbx, rax
mov edx, 1
lea rcx, [rsp + 0x20]
call fcn.140003630
mov r8, rax
mov rdx, rbx
lea rcx, [rsp + 0x40]
call fcn.140004640
lea rdx, [0x140049698]
lea rcx, [rsp + 0x40]
call fcn.1400111f0
int3