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

Disassembly:
push rbp
push rbx
lea rbp, [rsp - 0x13a8]
mov eax, 0x14a8
call fcn.14007f210
sub rsp, rax
mov rax, qword [0x140098028]
xor rax, rsp
mov qword [rbp + 0x12e0], rax
mov rbx, rcx
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [rbp + 0x12d4], 0xffffffff
mov edx, 1
mov dword [rsp + 0x54], eax
nop word [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rsp + rdx*4 + 0x54], eax
inc rdx
cmp rdx, 0x270
jb 0x140006640
cmp dword [rbx + 0x28], 0
mov dword [rsp + 0x50], 0x270
jne 0x14000722f
mov qword [rsp + 0x14c8], rsi
mov qword [rsp + 0x14d0], rdi
mov qword [rsp + 0x14d8], r12
movabs r12, 0x7ffffffffff0bdbf
mov qword [rsp + 0x14a0], r13
movabs r13, 0x7fffffffffffffff
mov qword [rsp + 0x1498], r14
mov qword [rsp + 0x1490], r15
movabs r15, 0x7ffffffffa0a1eff
movaps xmmword [rsp + 0x1480], xmm6
movss xmm6, dword [0x14008d134]
movaps xmmword [rsp + 0x1470], xmm7
xorps xmm7, xmm7
movaps xmmword [rsp + 0x1460], xmm8
movss xmm8, dword [0x14008ce78]
movaps xmmword [rsp + 0x1450], xmm9
movss xmm9, dword [0x14008cfc8]
movaps xmmword [rsp + 0x1440], xmm10
movsd xmm10, qword [0x14008cff0]
movaps xmmword [rsp + 0x1430], xmm11
movsd xmm11, qword [0x14008cf80]
movaps xmmword [rsp + 0x1420], xmm12
movss xmm12, dword [0x14008cf40]
movaps xmmword [rsp + 0x1410], xmm13
movss xmm13, dword [0x14008d128]
movaps xmmword [rsp + 0x1400], xmm14
xorps xmm14, xmm14
movaps xmmword [rsp + 0x13f0], xmm15
movsd xmm15, qword [0x14008cf78]
cmp byte [rbx + 0x15], 0
je 0x1400071a7
mov ecx, dword [rbx + 0x30]
test ecx, ecx
je 0x140007002
sub ecx, 1
je 0x140006ee4
sub ecx, 1
je 0x140006dc4
sub ecx, 1
je 0x140006b51
cmp ecx, 1
jne 0x140007140
mov ecx, 4
call fcn.14007e160
mov ecx, 4
mov qword [rsp + 0x30], rax
mov r14, rax
call fcn.14007e160
mov ecx, 4
mov qword [rsp + 0x38], rax
mov r15, rax
call fcn.14007e160
mov ecx, 4
mov r13, rax
call fcn.14007e160
mov ecx, 4
mov r12, rax
call fcn.14007e160
mov ecx, 4
mov qword [rsp + 0x28], rax
mov rsi, rax
call fcn.14007e160
mov ecx, dword [rbx + 0x64]
mov rdi, rax
mov dword [r14], ecx
mov dword [r15], 0x3a83126f
mov dword [r13], 0x3f000000
mov dword [r12], 0x3f000000
mov dword [rsi], 0
mov ecx, dword [rbx + 0x6c]
mov dword [rax], ecx
cmp dword [rbx + 0x30], 4
mov qword [rsp + 0x40], rax
jne 0x140006ae0
cmp dword [rbx + 0x28], 0
jne 0x140006adb
cmp byte [rbx + 0x15], 0
je 0x140006adb
mov ecx, dword [rbx + 0x74]
cmp ecx, dword [rbx + 0x78]
jne 0x1400068d8
mov dword [rbx + 0x70], ecx
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rdi, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rdi, 0x989680
jne 0x140006873
imul rax, rax, 0x64
jmp 0x140006891
cqo
idiv rdi
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rdi
add rax, rcx
movabs rcx, 0x7ffffffffff0bdbf
cmp rax, rcx
jge 0x1400068ba
add rax, 0xf4240
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x20], rax
call fcn.140009a00
jmp 0x140006ad1
movabs rax, 0x7fffffffffffffff
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x20], rax
call fcn.140009a00
jmp 0x140006ad1
movss xmm3, dword [r13]
movss xmm0, dword [r12]
subss xmm0, xmm3
comiss xmm8, xmm0
movss dword [rsi], xmm0
jb 0x140006943
comiss xmm0, xmm6
jb 0x140006943
movaps xmm1, xmm7
movaps xmm2, xmm11
mov edi, 2
lea rcx, [rsp + 0x50]
call fcn.140009d70
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm7
mulsd xmm0, xmm2
mulsd xmm2, xmm10
addsd xmm1, xmm0
sub rdi, 1
jne 0x140006903
divsd xmm1, xmm2
xorps xmm0, xmm0
addsd xmm1, xmm7
cvtsd2ss xmm0, xmm1
movss dword [r12], xmm0
movss xmm2, dword [r15]
movaps xmm0, xmm13
mulss xmm2, dword [rsi]
mulss xmm2, xmm9
addss xmm2, xmm3
movss dword [r13], xmm2
movss xmm1, dword [rbx + 0x5c]
subss xmm1, dword [rbx + 0x60]
mulss xmm1, xmm2
addss xmm1, dword [rbx + 0x60]
comiss xmm1, xmm12
divss xmm0, xmm1
movss dword [r14], xmm1
cvttss2si r15d, xmm0
jb 0x140006a58
mov r14d, dword [rbx + 0x78]
movaps xmm1, xmm7
mov esi, dword [rbx + 0x74]
movaps xmm2, xmm11
mov eax, esi
mov edi, 2
sub eax, r14d
cdq
sub eax, edx
sar eax, 1
add eax, r14d
cmp r15d, eax
jg 0x1400069f0
nop
lea rcx, [rsp + 0x50]
call fcn.140009d70
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm7
mulsd xmm0, xmm2
mulsd xmm2, xmm10
addsd xmm1, xmm0
sub rdi, 1
jne 0x1400069b0
mov eax, r15d
sub eax, r14d
movd xmm0, eax
jmp 0x140006a22
lea rcx, [rsp + 0x50]
call fcn.140009d70
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm7
mulsd xmm0, xmm2
mulsd xmm2, xmm10
addsd xmm1, xmm0
sub rdi, 1
jne 0x1400069f0
sub esi, r15d
movd xmm0, esi
mov rsi, qword [rsp + 0x28]
mov r14, qword [rsp + 0x30]
divsd xmm1, xmm2
cvtdq2pd xmm0, xmm0
addsd xmm1, xmm7
addsd xmm0, xmm0
subsd xmm1, xmm15
mulsd xmm1, xmm0
movd xmm0, r15d
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm1
cvttsd2si eax, xmm0
jmp 0x140006a5d
mov eax, 0xf4240
mov dword [rbx + 0x70], eax
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rdi, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rdi, 0x989680
jne 0x140006a7e
imul rax, rax, 0x64
jmp 0x140006a9c
cqo
idiv rdi
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rdi
add rax, rcx
movabs rcx, 0x7ffffffffff0bdbf
cmp rax, rcx
jge 0x140006ab3
add rax, 0xf4240
jmp 0x140006abd
movabs rax, 0x7fffffffffffffff
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x20], rax
call fcn.140009a00
mov r15, qword [rsp + 0x38]
cmp dword [rbx + 0x30], 4
je 0x140006832
mov rdi, qword [rsp + 0x40]
mov edx, 4
mov rcx, r14
call fcn.14007e19c
mov edx, 4
mov rcx, r15
call fcn.14007e19c
mov edx, 4
mov rcx, r13
call fcn.14007e19c
mov edx, 4
mov rcx, r12
call fcn.14007e19c
mov edx, 4
mov rcx, rsi
call fcn.14007e19c
mov edx, 4
mov rcx, rdi
call fcn.14007e19c
movabs r13, 0x7fffffffffffffff
movabs r12, 0x7ffffffffff0bdbf
movabs r15, 0x7ffffffffa0a1eff
jmp 0x140007140
mov ecx, 4
call fcn.14007e160
mov ecx, 4
mov r14, rax
call fcn.14007e160
mov ecx, 4
mov r15, rax
call fcn.14007e160
mov ecx, 4
mov r12, rax
call fcn.14007e160
mov dword [r15], 0x41700000
mov rsi, rax
mov dword [r12], 0x42700000
mov ecx, dword [rbx + 0x64]
mov dword [r14], ecx
mov dword [rax], 0x3f000000
cmp dword [rbx + 0x30], 3
jne 0x140006d77
movss xmm15, dword [0x14008d260]
cmp dword [rbx + 0x28], 0
jne 0x140006d54
cmp byte [rbx + 0x15], 0
je 0x140006d54
mov ecx, dword [rbx + 0x74]
cmp ecx, dword [rbx + 0x78]
jne 0x140006bd7
mov dword [rbx + 0x70], ecx
jmp 0x140006ce3
movss xmm8, dword [rsi]
movaps xmm6, xmm12
divss xmm6, dword [r15]
movaps xmm0, xmm8
movaps xmm1, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
xorps xmm0, xmm15
xorps xmm9, xmm9
cvtss2sd xmm9, xmm0
movaps xmm0, xmm12
movaps xmm1, xmm6
subss xmm0, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
xorps xmm3, xmm3
movaps xmm2, xmm7
cvtss2sd xmm3, xmm0
mov edi, 2
movaps xmm1, xmm11
lea rcx, [rsp + 0x50]
call fcn.140009d70
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm7
mulsd xmm0, xmm1
mulsd xmm1, xmm10
addsd xmm2, xmm0
sub rdi, 1
jne 0x140006c22
divsd xmm2, xmm1
xorps xmm1, xmm1
subsd xmm3, xmm9
mulsd xmm3, xmm2
addsd xmm3, xmm9
cvtsd2ss xmm1, xmm3
divss xmm1, dword [r12]
addss xmm1, xmm8
movss dword [rsi], xmm1
movss xmm2, dword [rbx + 0x5c]
subss xmm2, dword [rbx + 0x60]
mulss xmm2, xmm1
addss xmm2, dword [rbx + 0x60]
movss dword [r14], xmm2
movss xmm0, dword [rbx + 0x60]
subss xmm0, xmm2
comiss xmm0, xmm14
jbe 0x140006ca8
mov dword [rsi], edi
movss xmm2, dword [rbx + 0x60]
movss dword [r14], xmm2
movss xmm0, dword [rbx + 0x5c]
subss xmm0, xmm2
comiss xmm14, xmm0
jbe 0x140006cc7
mov dword [rsi], 0x3f800000
movss xmm2, dword [rbx + 0x5c]
movss dword [r14], xmm2
comiss xmm2, xmm12
jb 0x140006cdb
movaps xmm0, xmm13
divss xmm0, xmm2
cvttss2si eax, xmm0
jmp 0x140006ce0
mov eax, 0xf4240
mov dword [rbx + 0x70], eax
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rdi, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rdi, 0x989680
jne 0x140006d01
imul rax, rax, 0x64
jmp 0x140006d1f
cqo
idiv rdi
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rdi
add rax, rcx
movabs rcx, 0x7ffffffffff0bdbf
cmp rax, rcx
jge 0x140006d3b
add rax, 0xf4240
mov qword [rsp + 0x20], rax
jmp 0x140006d40
mov qword [rsp + 0x20], r13
lea rcx, [rsp + 0x20]
call fcn.140009a00
cmp dword [rbx + 0x30], 3
je 0x140006bb3
movsd xmm15, qword [0x14008cf78]
movss xmm6, dword [0x14008d134]
movss xmm8, dword [0x14008ce78]
movss xmm9, dword [0x14008cfc8]
mov edx, 4
mov rcx, r14
call fcn.14007e19c
mov edx, 4
mov rcx, r15
call fcn.14007e19c
mov edx, 4
mov rcx, r12
call fcn.14007e19c
mov edx, 4
mov rcx, rsi
call fcn.14007e19c
movabs r12, 0x7ffffffffff0bdbf
movabs r15, 0x7ffffffffa0a1eff
jmp 0x140007140
mov ecx, 4
call fcn.14007e160
cmp dword [rbx + 0x30], 2
mov r14, rax
jne 0x140006edc
movsd xmm8, qword [0x14008d158]
cmp dword [rbx + 0x28], 0
jne 0x140006ed3
cmp byte [rbx + 0x15], 0
je 0x140006ed3
mov ecx, dword [rbx + 0x74]
mov esi, dword [rbx + 0x78]
cmp ecx, esi
je 0x140006e69
movaps xmm2, xmm7
movaps xmm1, xmm11
mov edi, 2
nop
lea rcx, [rsp + 0x50]
call fcn.140009d70
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm7
mulsd xmm0, xmm1
mulsd xmm1, xmm10
addsd xmm2, xmm0
sub rdi, 1
jne 0x140006e10
mov ecx, dword [rbx + 0x6c]
mov eax, ecx
divsd xmm2, xmm1
sub eax, esi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm2, xmm7
mulsd xmm0, xmm8
subsd xmm2, xmm15
mulsd xmm0, xmm2
cvttsd2si eax, xmm0
sub ecx, eax
mov dword [r14], ecx
mov dword [rbx + 0x70], ecx
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rdi, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rdi, 0x989680
jne 0x140006e8a
imul rax, rax, 0x64
jmp 0x140006ea8
cqo
idiv rdi
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rdi
add rax, rcx
cmp rax, r12
jge 0x140006eba
add rax, 0xf4240
mov qword [rsp + 0x20], rax
jmp 0x140006ebf
mov qword [rsp + 0x20], r13
lea rcx, [rsp + 0x20]
call fcn.140009a00
cmp dword [rbx + 0x30], 2
je 0x140006de4
movss xmm8, dword [0x14008ce78]
mov rcx, r14
jmp 0x140007136
mov ecx, 4
call fcn.14007e160
cmp dword [rbx + 0x30], 1
mov r15, rax
jne 0x140006fe6
nop dword [rax + rax]
cmp dword [rbx + 0x28], 0
jne 0x140006fe6
cmp byte [rbx + 0x15], 0
je 0x140006fe6
mov eax, dword [rbx + 0x74]
mov esi, eax
mov r14d, dword [rbx + 0x78]
sub esi, r14d
jne 0x140006f27
mov dword [rbx + 0x70], eax
jmp 0x140006f7f
movaps xmm1, xmm7
movaps xmm2, xmm11
mov edi, 2
lea rcx, [rsp + 0x50]
call fcn.140009d70
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm7
mulsd xmm0, xmm2
mulsd xmm2, xmm10
addsd xmm1, xmm0
sub rdi, 1
jne 0x140006f33
divsd xmm1, xmm2
movd xmm0, esi
cvtdq2pd xmm0, xmm0
addsd xmm1, xmm7
mulsd xmm1, xmm0
cvttsd2si ecx, xmm1
add ecx, r14d
mov dword [r15], ecx
mov dword [rbx + 0x70], ecx
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rdi, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rdi, 0x989680
jne 0x140006f9d
imul rax, rax, 0x64
jmp 0x140006fbb
cqo
idiv rdi
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rdi
add rax, rcx
cmp rax, r12
jge 0x140006fcd
add rax, 0xf4240
mov qword [rsp + 0x20], rax
jmp 0x140006fd2
mov qword [rsp + 0x20], r13
lea rcx, [rsp + 0x20]
call fcn.140009a00
cmp dword [rbx + 0x30], 1
je 0x140006f00
mov edx, 4
mov rcx, r15
call fcn.14007e19c
movabs r15, 0x7ffffffffa0a1eff
jmp 0x140007140
mov ecx, 4
call fcn.14007e160
cmp dword [rbx + 0x30], 0
mov rsi, rax
jne 0x140007133
nop dword [rax]
cmp dword [rbx + 0x28], 0
jne 0x140007133
cmp byte [rbx + 0x15], 0
je 0x140007133
movss xmm4, dword [rbx + 0x60]
movss xmm3, dword [rbx + 0x5c]
subss xmm3, xmm4
ucomiss xmm3, xmm14
jp 0x1400070ba
jne 0x1400070ba
movss dword [rsi], xmm4
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rdi, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rdi, 0x989680
jne 0x14000706c
imul rax, rax, 0x64
jmp 0x14000708a
cqo
idiv rdi
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rdi
add rax, rcx
cmp rax, r12
jge 0x1400070a9
add rax, 0xf4240
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x20], rax
call fcn.140009a00
jmp 0x140007129
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x20], r13
call fcn.140009a00
jmp 0x140007129
movaps xmm1, xmm7
movaps xmm2, xmm11
mov edi, 2
lea rcx, [rsp + 0x50]
call fcn.140009d70
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm7
mulsd xmm0, xmm2
mulsd xmm2, xmm10
addsd xmm1, xmm0
sub rdi, 1
jne 0x1400070c6
divsd xmm1, xmm2
xorps xmm2, xmm2
addsd xmm1, xmm7
cvtsd2ss xmm2, xmm1
mulss xmm2, xmm3
addss xmm2, xmm4
comiss xmm2, xmm12
movss dword [rsi], xmm2
jb 0x140007123
movaps xmm0, xmm13
divss xmm0, xmm2
cvttss2si eax, xmm0
mov dword [rbx + 0x70], eax
jmp 0x140007129
mov dword [rsi], 0x3f800000
cmp dword [rbx + 0x30], 0
je 0x140007020
mov rcx, rsi
mov edx, 4
call fcn.14007e19c
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rdi, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rdi, 0x989680
jne 0x14000715e
imul rax, rax, 0x64
jmp 0x14000717c
cqo
idiv rdi
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rdi
add rax, rcx
cmp rax, r15
jge 0x14000718e
add rax, 0x5f5e100
mov qword [rsp + 0x20], rax
jmp 0x140007193
mov qword [rsp + 0x20], r13
lea rcx, [rsp + 0x20]
call fcn.140009a00
cmp dword [rbx + 0x28], 0
je 0x140006765
movaps xmm14, xmmword [rsp + 0x1400]
movaps xmm13, xmmword [rsp + 0x1410]
movaps xmm12, xmmword [rsp + 0x1420]
movaps xmm11, xmmword [rsp + 0x1430]
movaps xmm10, xmmword [rsp + 0x1440]
movaps xmm9, xmmword [rsp + 0x1450]
movaps xmm8, xmmword [rsp + 0x1460]
movaps xmm7, xmmword [rsp + 0x1470]
movaps xmm6, xmmword [rsp + 0x1480]
mov r15, qword [rsp + 0x1490]
mov r14, qword [rsp + 0x1498]
mov r13, qword [rsp + 0x14a0]
mov r12, qword [rsp + 0x14d8]
mov rdi, qword [rsp + 0x14d0]
mov rsi, qword [rsp + 0x14c8]
movaps xmm15, xmmword [rsp + 0x13f0]
mov rcx, qword [rbp + 0x12e0]
xor rcx, rsp
call fcn.14007e140
add rsp, 0x14a8
pop rbx
pop rbp
ret