Function at 0x140004f60
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.140074680
sub rsp, rax
mov rax, qword [0x14008a028]
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 0x140004fb0
cmp dword [rbx + 0x20], 0
mov dword [rsp + 0x50], 0x270
jne 0x1400058ff
mov qword [rsp + 0x14c8], rsi
mov qword [rsp + 0x14d0], rdi
mov qword [rsp + 0x14d8], r12
mov qword [rsp + 0x14a0], r13
xor r13d, r13d
mov qword [rsp + 0x1498], r14
mov qword [rsp + 0x1490], r15
movaps xmmword [rsp + 0x1480], xmm6
movss xmm6, dword [0x14007f75c]
movaps xmmword [rsp + 0x1470], xmm7
xorps xmm7, xmm7
movaps xmmword [rsp + 0x1460], xmm8
movsd xmm8, qword [0x14007f678]
movaps xmmword [rsp + 0x1450], xmm9
movss xmm9, dword [0x14007f548]
movaps xmmword [rsp + 0x1440], xmm10
movsd xmm10, qword [0x14007f780]
movaps xmmword [rsp + 0x1430], xmm11
movsd xmm11, qword [0x14007f608]
movaps xmmword [rsp + 0x1420], xmm12
movss xmm12, dword [0x14007f5e0]
movaps xmmword [rsp + 0x1410], xmm13
movss xmm13, dword [0x14007f750]
movaps xmmword [rsp + 0x1400], xmm14
xorps xmm14, xmm14
movaps xmmword [rsp + 0x13f0], xmm15
movsd xmm15, qword [0x14007f600]
nop word [rax + rax]
cmp byte [rbx + 0xd], 0
je 0x140005877
mov ecx, dword [rbx + 0x28]
test ecx, ecx
je 0x140005774
sub ecx, 1
je 0x1400056b1
sub ecx, 1
je 0x1400055ee
sub ecx, 1
je 0x1400053e6
cmp ecx, 1
jne 0x14000585a
mov ecx, 4
call fcn.140073600
mov ecx, 4
mov qword [rsp + 0x38], rax
mov r14, rax
call fcn.140073600
mov ecx, 4
mov qword [rsp + 0x40], rax
mov r15, rax
call fcn.140073600
mov ecx, 4
mov r13, rax
call fcn.140073600
mov ecx, 4
mov r12, rax
call fcn.140073600
mov ecx, 4
mov qword [rsp + 0x30], rax
mov rsi, rax
call fcn.140073600
mov ecx, dword [rbx + 0x5c]
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 + 0x64]
mov dword [rax], ecx
cmp dword [rbx + 0x28], 4
mov qword [rsp + 0x20], rax
jne 0x140005390
movss xmm10, dword [0x14007f64c]
cmp dword [rbx + 0x20], 0
jne 0x140005382
cmp byte [rbx + 0xd], 0
je 0x140005382
mov ecx, dword [rbx + 0x6c]
cmp ecx, dword [rbx + 0x70]
jne 0x1400051cd
mov dword [rbx + 0x68], ecx
lea rcx, [rsp + 0x28]
mov qword [rsp + 0x28], 1
call fcn.140007940
jmp 0x140005378
movss xmm3, dword [r13]
movss xmm0, dword [r12]
subss xmm0, xmm3
comiss xmm9, xmm0
movss dword [rsi], xmm0
jb 0x140005240
comiss xmm0, xmm6
jb 0x140005240
movaps xmm1, xmm7
movaps xmm2, xmm11
mov edi, 2
nop dword [rax + rax]
lea rcx, [rsp + 0x50]
call fcn.1400081f0
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm7
mulsd xmm0, xmm2
mulsd xmm2, xmm8
addsd xmm1, xmm0
sub rdi, 1
jne 0x140005200
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, xmm10
addss xmm2, xmm3
movss dword [r13], xmm2
movss xmm1, dword [rbx + 0x54]
subss xmm1, dword [rbx + 0x58]
mulss xmm1, xmm2
addss xmm1, dword [rbx + 0x58]
comiss xmm1, xmm12
divss xmm0, xmm1
movss dword [r14], xmm1
cvttss2si r15d, xmm0
jb 0x140005358
mov r14d, dword [rbx + 0x70]
movaps xmm1, xmm7
mov esi, dword [rbx + 0x6c]
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 0x1400052f0
nop dword [rax]
lea rcx, [rsp + 0x50]
call fcn.1400081f0
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm7
mulsd xmm0, xmm2
mulsd xmm2, xmm8
addsd xmm1, xmm0
sub rdi, 1
jne 0x1400052b0
mov eax, r15d
sub eax, r14d
movd xmm0, eax
jmp 0x140005322
lea rcx, [rsp + 0x50]
call fcn.1400081f0
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm7
mulsd xmm0, xmm2
mulsd xmm2, xmm8
addsd xmm1, xmm0
sub rdi, 1
jne 0x1400052f0
sub esi, r15d
movd xmm0, esi
mov rsi, qword [rsp + 0x30]
mov r14, qword [rsp + 0x38]
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 0x14000535d
mov eax, 0xf4240
mov dword [rbx + 0x68], eax
lea rcx, [rsp + 0x28]
mov qword [rsp + 0x28], 1
call fcn.140007940
mov r15, qword [rsp + 0x40]
cmp dword [rbx + 0x28], 4
je 0x140005196
movsd xmm10, qword [0x14007f780]
mov rdi, qword [rsp + 0x20]
mov edx, 4
mov rcx, r14
call fcn.14007363c
mov edx, 4
mov rcx, r15
call fcn.14007363c
mov edx, 4
mov rcx, r13
call fcn.14007363c
mov edx, 4
mov rcx, r12
call fcn.14007363c
mov edx, 4
mov rcx, rsi
call fcn.14007363c
mov edx, 4
mov rcx, rdi
call fcn.14007363c
xor r13d, r13d
jmp 0x14000585a
mov ecx, 4
call fcn.140073600
mov ecx, 4
mov r14, rax
call fcn.140073600
mov ecx, 4
mov r15, rax
call fcn.140073600
mov ecx, 4
mov r12, rax
call fcn.140073600
mov dword [r15], 0x41700000
mov rsi, rax
mov dword [r12], 0x42700000
mov ecx, dword [rbx + 0x5c]
mov dword [r14], ecx
mov dword [rax], 0x3f000000
cmp dword [rbx + 0x28], 3
jne 0x1400055c2
movss xmm15, dword [0x14007f8a0]
nop dword [rax + rax]
cmp dword [rbx + 0x20], 0
jne 0x14000559f
cmp byte [rbx + 0xd], 0
je 0x14000559f
mov ecx, dword [rbx + 0x6c]
cmp ecx, dword [rbx + 0x70]
jne 0x140005474
mov dword [rbx + 0x68], ecx
jmp 0x140005582
movss xmm9, dword [rsi]
movaps xmm6, xmm12
divss xmm6, dword [r15]
movaps xmm0, xmm9
movaps xmm1, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
xorps xmm0, xmm15
xorps xmm10, xmm10
cvtss2sd xmm10, xmm0
movaps xmm0, xmm12
movaps xmm1, xmm6
subss xmm0, xmm9
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
nop
lea rcx, [rsp + 0x50]
call fcn.1400081f0
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm7
mulsd xmm0, xmm1
mulsd xmm1, xmm8
addsd xmm2, xmm0
sub rdi, 1
jne 0x1400054c0
divsd xmm2, xmm1
xorps xmm1, xmm1
subsd xmm3, xmm10
mulsd xmm2, xmm3
addsd xmm2, xmm10
cvtsd2ss xmm1, xmm2
divss xmm1, dword [r12]
addss xmm1, xmm9
movss dword [rsi], xmm1
movss xmm2, dword [rbx + 0x54]
subss xmm2, dword [rbx + 0x58]
mulss xmm2, xmm1
addss xmm2, dword [rbx + 0x58]
movss dword [r14], xmm2
movss xmm0, dword [rbx + 0x58]
subss xmm0, xmm2
comiss xmm0, xmm14
jbe 0x140005547
mov dword [rsi], r13d
movss xmm2, dword [rbx + 0x58]
movss dword [r14], xmm2
movss xmm0, dword [rbx + 0x54]
subss xmm0, xmm2
comiss xmm14, xmm0
jbe 0x140005566
mov dword [rsi], 0x3f800000
movss xmm2, dword [rbx + 0x54]
movss dword [r14], xmm2
comiss xmm2, xmm12
jb 0x14000557a
movaps xmm0, xmm13
divss xmm0, xmm2
cvttss2si eax, xmm0
jmp 0x14000557f
mov eax, 0xf4240
mov dword [rbx + 0x68], eax
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x20], 1
call fcn.140007940
cmp dword [rbx + 0x28], 3
je 0x140005450
movsd xmm15, qword [0x14007f600]
movss xmm6, dword [0x14007f75c]
movss xmm9, dword [0x14007f548]
movsd xmm10, qword [0x14007f780]
mov edx, 4
mov rcx, r14
call fcn.14007363c
mov edx, 4
mov rcx, r15
call fcn.14007363c
mov edx, 4
mov rcx, r12
call fcn.14007363c
jmp 0x14000584d
mov ecx, 4
call fcn.140073600
cmp dword [rbx + 0x28], 2
mov r14, rax
jne 0x1400056a9
cmp dword [rbx + 0x20], 0
jne 0x1400056a9
cmp byte [rbx + 0xd], 0
je 0x1400056a9
mov ecx, dword [rbx + 0x6c]
mov esi, dword [rbx + 0x70]
cmp ecx, esi
je 0x140005689
movaps xmm1, xmm7
movaps xmm2, xmm11
mov edi, 2
nop
lea rcx, [rsp + 0x50]
call fcn.1400081f0
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm7
mulsd xmm0, xmm2
mulsd xmm2, xmm8
addsd xmm1, xmm0
sub rdi, 1
jne 0x140005630
mov ecx, dword [rbx + 0x64]
mov eax, ecx
divsd xmm1, xmm2
sub eax, esi
movd xmm0, eax
addsd xmm1, xmm7
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm15
mulsd xmm0, xmm10
mulsd xmm1, xmm0
cvttsd2si eax, xmm1
sub ecx, eax
mov dword [r14], ecx
mov dword [rbx + 0x68], ecx
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x20], 1
call fcn.140007940
cmp dword [rbx + 0x28], 2
je 0x140005605
mov rcx, r14
jmp 0x140005850
mov ecx, 4
call fcn.140073600
cmp dword [rbx + 0x28], 1
mov r15, rax
jne 0x14000576c
nop dword [rax + rax]
cmp dword [rbx + 0x20], 0
jne 0x14000576c
cmp byte [rbx + 0xd], 0
je 0x14000576c
mov eax, dword [rbx + 0x6c]
mov esi, eax
mov r14d, dword [rbx + 0x70]
sub esi, r14d
jne 0x1400056f7
mov dword [rbx + 0x68], eax
jmp 0x14000574f
movaps xmm1, xmm7
movaps xmm2, xmm11
mov edi, 2
lea rcx, [rsp + 0x50]
call fcn.1400081f0
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm7
mulsd xmm0, xmm2
mulsd xmm2, xmm8
addsd xmm1, xmm0
sub rdi, 1
jne 0x140005703
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 + 0x68], ecx
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x20], 1
call fcn.140007940
cmp dword [rbx + 0x28], 1
je 0x1400056d0
mov rcx, r15
jmp 0x140005850
mov ecx, 4
call fcn.140073600
cmp dword [rbx + 0x28], 0
mov rsi, rax
jne 0x14000584d
nop dword [rax + rax]
cmp dword [rbx + 0x20], 0
jne 0x14000584d
cmp byte [rbx + 0xd], 0
je 0x14000584d
movss xmm4, dword [rbx + 0x58]
movss xmm3, dword [rbx + 0x54]
subss xmm3, xmm4
ucomiss xmm3, xmm14
jp 0x1400057d3
jne 0x1400057d3
lea rcx, [rsp + 0x20]
movss dword [rsi], xmm4
mov qword [rsp + 0x20], 1
call fcn.140007940
jmp 0x140005843
movaps xmm1, xmm7
movaps xmm2, xmm11
mov edi, 2
nop
lea rcx, [rsp + 0x50]
call fcn.1400081f0
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm7
mulsd xmm0, xmm2
mulsd xmm2, xmm8
addsd xmm1, xmm0
sub rdi, 1
jne 0x1400057e0
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 0x14000583d
movaps xmm0, xmm13
divss xmm0, xmm2
cvttss2si eax, xmm0
mov dword [rbx + 0x68], eax
jmp 0x140005843
mov dword [rsi], 0x3f800000
cmp dword [rbx + 0x28], 0
je 0x140005790
mov rcx, rsi
mov edx, 4
call fcn.14007363c
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x20], 0x64
call fcn.140007940
cmp dword [rbx + 0x20], 0
je 0x1400050c0
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.1400735e0
add rsp, 0x14a8
pop rbx
pop rbp
ret