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

Disassembly:
xchg rbx, r10
mov qword [rsp + 0x20], r10
xchg r10, rbx
mov qword [rsp + 8], rcx
nop
mov qword [rsp - 8], rbp
sub rsp, 8
push rsi
nop
mov qword [rsp - 8], rdi
sub rsp, 8
nop
mov qword [rsp - 8], r12
sub rsp, 8
push r13
push r14
push r15
lea rbp, [rsp - 0x1450]
mov eax, 0x64cd9e11
sub eax, 0x64cd88c1
call fcn.140110640
sub rsp, rax
mov rdi, r8
xchg rbx, r11
mov r11, rdx
xchg r11, rbx
test r8, r8
je 0x1400c672c
mov dword [rbp + 0x1498], 0x23a47da6
xor dword [rbp + 0x1498], 0x23a48223
mov dword [rbp + 0x14a0], 0x1a17f1b1
sub dword [rbp + 0x14a0], 0x1a16f22b
mov dword [rbp + 0x9c], 0x2001f440
xor dword [rbp + 0x9c], 0x20010bc7
mov dword [rbp - 0x20], 0x4f9a8ea6
sub dword [rbp - 0x20], 0x4f998f1e
mov dword [rbp - 0x1c], 0x7e50a7e3
sub dword [rbp - 0x1c], 0x7e4fa85a
mov dword [rbp - 0x18], 0x4b6f7be0
sub dword [rbp - 0x18], 0x4b6e7c56
mov dword [rbp - 0x14], 0x73328e26
sub dword [rbp - 0x14], 0x73318e9b
mov dword [rbp - 0x10], 0x14f7c67d
xor dword [rbp - 0x10], 0x14f739f1
mov dword [rbp - 0xc], 0x59edb7a4
sub dword [rbp - 0xc], 0x59ecb817
mov dword [rbp - 8], 0x60a29310
xor dword [rbp - 8], 0x60a26c9e
mov dword [rbp - 4], 0x49f851be
sub dword [rbp - 4], 0x49f7522f
mov dword [rbp], 0x21861761
sub dword [rbp], 0x218517d1
mov dword [rbp + 4], 0x5c7bbe19
xor dword [rbp + 4], 0x5c7b4188
mov dword [rbp + 8], 0x29754347
sub dword [rbp + 8], 0x297443b5
mov dword [rbp + 0xc], 0x6f0cad94
sub dword [rbp + 0xc], 0x6f0bae01
mov dword [rbp + 0x10], 0x70a6dfbf
sub dword [rbp + 0x10], 0x70a5e02b
mov dword [rbp + 0x14], 0xe8c85c4
sub dword [rbp + 0x14], 0xe8b862f
mov dword [rbp + 0x18], 0x3ad3a266
xor dword [rbp + 0x18], 0x3ad35df0
mov dword [rbp + 0x1c], 0x4ece330
sub dword [rbp + 0x1c], 0x4ebe399
mov dword [rbp + 0x20], 0x4c426b7b
sub dword [rbp + 0x20], 0x4c416be3
mov dword [rbp + 0x24], 0xadb2286
xor dword [rbp + 0x24], 0xadbdd1f
mov dword [rbp + 0x28], 0x4cb5e273
sub dword [rbp + 0x28], 0x4cb4e2d9
mov dword [rbp + 0x2c], 0x2bf2f0c9
sub dword [rbp + 0x2c], 0x2bf1f12e
mov dword [rbp + 0x30], 0x2c1272fe
sub dword [rbp + 0x30], 0x2c117362
mov dword [rbp + 0x34], 0x4f85bfa2
sub dword [rbp + 0x34], 0x4f84bfff
mov dword [rbp + 0x38], 0x29fad43a
sub dword [rbp + 0x38], 0x29f9d496
mov dword [rbp + 0x3c], 0x954cde9
sub dword [rbp + 0x3c], 0x953ce44
mov dword [rbp + 0x40], 0x7bfe1a9d
sub dword [rbp + 0x40], 0x7bfd1af7
mov dword [rbp + 0x44], 0xc2bb675
sub dword [rbp + 0x44], 0xc2ab6ce
mov dword [rbp + 0x48], 0x165ea0fc
sub dword [rbp + 0x48], 0x165da154
mov dword [rbp + 0x4c], 0x74c40895
sub dword [rbp + 0x4c], 0x74c308ec
mov dword [rbp + 0x50], 0x1063e842
sub dword [rbp + 0x50], 0x1062e898
mov dword [rbp + 0x54], 0x21025d81
sub dword [rbp + 0x54], 0x21015dd6
mov dword [rbp + 0x58], 0x3ac81da
sub dword [rbp + 0x58], 0x3ab822e
mov dword [rbp + 0x5c], 0x2d2acfe2
sub dword [rbp + 0x5c], 0x2d29d035
mov dword [rbp + 0x60], 0x20a2146d
sub dword [rbp + 0x60], 0x20a114bf
mov dword [rbp + 0x64], 0xbe2f37b
xor dword [rbp + 0x64], 0xbe20cd4
mov dword [rbp + 0x68], 0x483a18b
sub dword [rbp + 0x68], 0x482a1db
mov dword [rbp + 0x6c], 0x29026699
xor dword [rbp + 0x6c], 0x29029928
mov dword [rbp + 0x70], 0x63a461cb
sub dword [rbp + 0x70], 0x63a36219
mov dword [rbp + 0x74], 0x5924bca9
sub dword [rbp + 0x74], 0x5923bcf6
mov dword [rbp + 0x78], 0xe9622f2
xor dword [rbp + 0x78], 0xe96dd46
mov dword [rbp + 0x7c], 0x2a9eaec7
sub dword [rbp + 0x7c], 0x2a9daf12
mov dword [rbp + 0x80], 0x4419961a
sub dword [rbp + 0x80], 0x44189664
mov dword [rbp + 0x84], 0x32f48433
xor dword [rbp + 0x84], 0x32f47b84
mov dword [rbp + 0x88], 0x2b393ae6
sub dword [rbp + 0x88], 0x2b383b2e
mov dword [rbp + 0x8c], 0x40f1356d
xor dword [rbp + 0x8c], 0x40f1cad4
mov dword [rbp + 0x90], 0x2b100295
sub dword [rbp + 0x90], 0x2b0f02db
mov dword [rbp + 0x94], 0x7c5c6910
xor dword [rbp + 0x94], 0x7c5c96ab
mov dword [rbp + 0x98], 0x5d7916bc
xor dword [rbp + 0x98], 0x5d79e900
nop word [rax + rax]
mov dword [rsp + 0x20], 0x64b16ef8
add dword [rsp + 0x20], 0x5a0d4fc6
mov dword [rsp + 0x60], 0x23010902
xor dword [rsp + 0x60], 0xdc72f670
mov dword [rsp + 0x64], 0x4f67938a
add dword [rsp + 0x64], 0xb00e6bea
mov dword [rsp + 0x24], 0x99f031b
add dword [rsp + 0x24], 0xb51fbba3
mov dword [rsp + 0x68], 0x51b557d5
add dword [rsp + 0x68], 0xadc2a7a1
mov dword [rsp + 0x6c], 0x40f424b9
add dword [rsp + 0x6c], 0xbe85dabf
mov dword [rsp + 0x28], 0x2ae0b2f
xor dword [rsp + 0x28], 0xbc10b591
mov dword [rsp + 0x70], 0x42f2db12
xor dword [rsp + 0x70], 0xbd892468
mov dword [rsp + 0x74], 0x2cf0dec9
xor dword [rsp + 0x74], 0xd374214a
mov dword [rsp + 0x2c], 0x53361395
add dword [rsp + 0x2c], 0x6b88ab29
mov eax, dword [rbp + 0x1498]
mov word [rsp + 0x78], ax
mov eax, dword [rbp + 0x14a0]
mov word [rsp + 0x7a], ax
mov eax, dword [rbp + 0x9c]
mov word [rsp + 0x7c], ax
mov eax, dword [rbp - 0x20]
mov word [rsp + 0x7e], ax
mov dword [rsp + 0x30], 0xbeb12c7
add dword [rsp + 0x30], 0xb2d3abf7
mov eax, dword [rbp - 0x1c]
mov word [rbp - 0x80], ax
mov eax, dword [rbp - 0x18]
mov word [rbp - 0x7e], ax
mov eax, dword [rbp - 0x14]
mov word [rbp - 0x7c], ax
mov eax, dword [rbp - 0x10]
mov word [rbp - 0x7a], ax
mov dword [rsp + 0x34], 0x64bb4f25
add dword [rsp + 0x34], 0x5a036f99
mov eax, dword [rbp - 0xc]
mov word [rbp - 0x78], ax
mov eax, dword [rbp - 8]
mov word [rbp - 0x76], ax
mov eax, dword [rbp - 4]
mov word [rbp - 0x74], ax
mov eax, dword [rbp]
mov word [rbp - 0x72], ax
mov dword [rsp + 0x38], 0x6c38e0ba
add dword [rsp + 0x38], 0x5285de04
mov eax, dword [rbp + 4]
mov word [rbp - 0x70], ax
mov eax, dword [rbp + 8]
mov word [rbp - 0x6e], ax
mov eax, dword [rbp + 0xc]
mov word [rbp - 0x6c], ax
mov eax, dword [rbp + 0x10]
mov word [rbp - 0x6a], ax
mov dword [rsp + 0x3c], 0x363427c6
xor dword [rsp + 0x3c], 0x888a9978
mov eax, dword [rbp + 0x14]
mov word [rbp - 0x68], ax
mov eax, dword [rbp + 0x18]
mov word [rbp - 0x66], ax
mov eax, dword [rbp + 0x1c]
mov word [rbp - 0x64], ax
mov eax, dword [rbp + 0x20]
mov word [rbp - 0x62], ax
mov dword [rsp + 0x40], 0x98211fd
add dword [rsp + 0x40], 0xb53cacc1
mov eax, dword [rbp + 0x24]
mov word [rbp - 0x60], ax
mov eax, dword [rbp + 0x28]
mov word [rbp - 0x5e], ax
mov eax, dword [rbp + 0x2c]
mov word [rbp - 0x5c], ax
mov eax, dword [rbp + 0x30]
mov word [rbp - 0x5a], ax
mov dword [rsp + 0x44], 0x694eb0c0
add dword [rsp + 0x44], 0x55700dfe
mov eax, dword [rbp + 0x34]
mov word [rbp - 0x58], ax
mov eax, dword [rbp + 0x38]
mov word [rbp - 0x56], ax
mov eax, dword [rbp + 0x3c]
mov word [rbp - 0x54], ax
mov eax, dword [rbp + 0x40]
mov word [rbp - 0x52], ax
mov dword [rsp + 0x48], 0x305d6faf
xor dword [rsp + 0x48], 0x8ee3d111
mov eax, dword [rbp + 0x44]
mov word [rbp - 0x50], ax
mov eax, dword [rbp + 0x48]
mov word [rbp - 0x4e], ax
mov eax, dword [rbp + 0x4c]
mov word [rbp - 0x4c], ax
mov eax, dword [rbp + 0x50]
mov word [rbp - 0x4a], ax
mov dword [rsp + 0x4c], 0x4a750058
add dword [rsp + 0x4c], 0x7449be66
mov eax, dword [rbp + 0x54]
mov word [rbp - 0x48], ax
mov eax, dword [rbp + 0x58]
mov word [rbp - 0x46], ax
mov eax, dword [rbp + 0x5c]
mov word [rbp - 0x44], ax
mov eax, dword [rbp + 0x60]
mov word [rbp - 0x42], ax
mov dword [rsp + 0x50], 0x10791ee8
add dword [rsp + 0x50], 0xae459fd6
mov eax, dword [rbp + 0x64]
mov word [rbp - 0x40], ax
mov eax, dword [rbp + 0x68]
mov word [rbp - 0x3e], ax
mov eax, dword [rbp + 0x6c]
mov word [rbp - 0x3c], ax
mov eax, dword [rbp + 0x70]
mov word [rbp - 0x3a], ax
mov dword [rsp + 0x54], 0x253a8408
xor dword [rsp + 0x54], 0x9b843ab6
mov eax, dword [rbp + 0x74]
mov word [rbp - 0x38], ax
mov eax, dword [rbp + 0x78]
mov word [rbp - 0x36], ax
mov eax, dword [rbp + 0x7c]
mov word [rbp - 0x34], ax
mov eax, dword [rbp + 0x80]
mov word [rbp - 0x32], ax
mov dword [rsp + 0x58], 0x20f28e18
xor dword [rsp + 0x58], 0x9e4c30a6
mov eax, dword [rbp + 0x84]
mov word [rbp - 0x30], ax
mov eax, dword [rbp + 0x88]
mov word [rbp - 0x2e], ax
mov eax, dword [rbp + 0x8c]
mov word [rbp - 0x2c], ax
mov eax, dword [rbp + 0x90]
mov word [rbp - 0x2a], ax
mov word [rsp + 0x5c], 0x4227
add word [rsp + 0x5c], 0x7c97
mov eax, dword [rbp + 0x94]
mov word [rbp - 0x28], ax
mov eax, dword [rbp + 0x98]
mov word [rbp - 0x26], ax
xor eax, eax
mov word [rbp - 0x24], ax
xor edx, edx
nop word [rax + rax]
movzx ecx, word [rsp + rdx*2 + 0x60]
movzx eax, byte [rsp + rdx + 0x20]
add ax, cx
mov word [rsp + rdx*2 + 0x60], ax
mov byte [rsp + rdx + 0x20], 0x5e
xor byte [rsp + rdx + 0x20], 0x5e
inc rdx
cmp rdx, 0x3e
jb 0x1400c65f6
call sub.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_
mov dword [rbp + 0x1444], 0x6c7aaa88
add dword [rbp + 0x1444], 0x93855577
mov dword [rbp + 0xc4], eax
mov ecx, 0x34f60112
xor ecx, 0x34f60113
nop word [rax + rax]
mov edx, eax
shr edx, 0x1e
xor edx, eax
imul eax, edx, 0x6c078965
add eax, ecx
mov dword [rbp + rcx*4 + 0xc4], eax
inc rcx
cmp rcx, 0x270
jb 0x1400c664f
mov dword [rbp + 0xc0], 0xd9356cb
sub dword [rbp + 0xc0], 0xd93545b
lea rax, [rbp + 0xc0]
mov qword [rbp + 0xa0], rax
mov qword [rbp + 0xa8], 0x5426146c
sub qword [rbp + 0xa8], 0x5426144c
mov dword [rbp + 0xb0], 0x5b79a5f1
add dword [rbp + 0xb0], 0xa4865a0e
mov edx, 0x567e5c47
sub edx, 0x567e5c08
lea rcx, [rbp + 0xa0]
call fcn.1400c67b0
movsxd rcx, eax
add rcx, rcx
movzx edx, word [rsp + rcx + 0x60]
xor eax, eax
nop dword [rax]
mov byte [rsp + rax + 0x60], 0x79
sub byte [rsp + rax + 0x60], 0x79
inc rax
cmp rax, 0x7c
jb 0x1400c66e8
mov word [rbx], dx
neg rbx
add rbx, 0xfffffffffffffffe
neg rbx
sub rdi, 1
jne 0x1400c6307
mov rsi, qword [rbp + 0x1490]
mov qword [rsi], rbx
xchg r11, rax
mov r11, rsi
xchg r11, rax
jmp 0x1400c6736
mov qword [rcx], rdx
xchg rdx, rax
mov rdx, rcx
xchg rdx, rax
mov rbx, qword [rsp + 0x15a8]
add rsp, 0x1550
nop
add rsp, 8
xchg qword [rsp - 8], r15
nop
xchg qword [rsp], r14
add rsp, 8
nop
mov r13, qword [rsp]
add rsp, 8
nop
mov r12, qword [rsp]
add rsp, 8
nop
xchg qword [rsp], rdi
add rsp, 8
nop
add rsp, 8
mov rsi, qword [rsp - 8]
nop
add rsp, 8
xchg qword [rsp - 8], rbp
nop
add rsp, 8
jmp qword [rsp - 8]