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

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x68]
sub rsp, 0x130
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0x98], xmm11
movaps xmmword [rax - 0xa8], xmm12
movaps xmmword [rax - 0xb8], xmm13
movaps xmmword [rax - 0xc8], xmm14
movaps xmmword [rax - 0xd8], xmm15
mov r12, rcx
mov edx, dword [0x14015d5e0]
mov rax, qword gs:[0x58]
mov esi, 0x38
mov rbx, qword [rax + rdx*8]
mov eax, dword [rbx + rsi]
cmp dword [0x14015bf20], eax
jg 0x14003f49c
lea rcx, [rbp + 0x78]
call fcn.140040c00
mov rax, qword [rbp + 0x78]
sub rax, qword [0x14015bf18]
xorps xmm11, xmm11
cvtsi2ss xmm11, rax
divss xmm11, dword [0x1400c8bf4]
call fcn.1400135d0
mov qword [rsp + 0x58], rax
lea rcx, [rbp + 0x88]
call fcn.140012c40
movss xmm15, dword [0x1400c3f40]
movss dword [rsp + 0x20], xmm15
xor r9d, r9d
xor r8d, r8d
mov rdx, r12
lea rcx, [rsp + 0x30]
call fcn.14000f880
lea rdi, [0x14015bf30]
mov ecx, dword [rbx + rsi]
cmp dword [0x14015d2b8], ecx
jg 0x14003f4d2
movaps xmm0, xmm11
movss xmm7, dword [0x1400c3ec0]
mulss xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
movaps xmm14, xmm0
mulss xmm14, xmm7
addss xmm14, xmm7
movaps xmm0, xmm11
mulss xmm0, dword [0x1400c3f00]
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
movaps xmm13, xmm0
mulss xmm13, dword [0x1400c3ea8]
movss xmm12, dword [0x1400c3eac]
addss xmm13, xmm12
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
xor r15d, r15d
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x50], r15
mov r14, 0xffffffffffffffff
nop word [rax + rax]
inc r14
cmp byte [r12 + r14], 0
jne 0x14003ec70
mov qword [rsp + 0x70], r14
mov rcx, rdi
call fcn.14003e6c0
xorps xmm9, xmm9
addss xmm0, xmm9
movss xmm6, dword [0x1400c8be4]
comiss xmm6, xmm0
jbe 0x14003ed05
mov rcx, rdi
call fcn.14003e6c0
addss xmm0, xmm9
movd xmm1, r14d
cvtdq2ps xmm1, xmm1
mulss xmm0, xmm1
cvttss2si ebx, xmm0
mov dword [rbp + 0x80], ebx
mov rcx, rdi
call fcn.14003e6c0
addss xmm0, xmm9
mov eax, r14d
sub eax, ebx
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm0, xmm1
cvttss2si eax, xmm0
mov dword [rbp + 0x78], eax
lea r9, [rbp + 0x78]
lea r8, [rbp + 0x80]
xor edx, edx
lea rcx, [rsp + 0x40]
call fcn.14003d900
mov r15, qword [rsp + 0x50]
mov qword [rsp + 0x38], r15
mov rcx, rdi
call fcn.14003e6c0
addss xmm0, xmm9
comiss xmm6, xmm0
jbe 0x14003ed9e
mov rcx, rdi
call fcn.14003e6c0
addss xmm0, xmm9
movd xmm1, r14d
cvtdq2ps xmm1, xmm1
mulss xmm0, xmm1
cvttss2si ebx, xmm0
mov dword [rbp + 0x80], ebx
mov rcx, rdi
call fcn.14003e6c0
addss xmm0, xmm9
mov eax, r14d
sub eax, ebx
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm0, xmm1
cvttss2si eax, xmm0
mov dword [rbp + 0x78], eax
mov rsi, qword [rsp + 0x48]
cmp rsi, r15
je 0x14003ed7c
mov dword [rsi], ebx
mov dword [rsi + 4], eax
add rsi, 8
mov qword [rsp + 0x48], rsi
jmp 0x14003eda3
lea r9, [rbp + 0x78]
lea r8, [rbp + 0x80]
mov rdx, rsi
lea rcx, [rsp + 0x40]
call fcn.14003d900
mov r15, qword [rsp + 0x50]
mov qword [rsp + 0x38], r15
mov rsi, qword [rsp + 0x48]
mov rcx, rdi
call fcn.14003e6c0
addss xmm0, xmm9
comiss xmm6, xmm0
jbe 0x14003ee3c
mov rcx, rdi
call fcn.14003e6c0
addss xmm0, xmm9
movd xmm1, r14d
cvtdq2ps xmm1, xmm1
mulss xmm0, xmm1
cvttss2si ebx, xmm0
mov dword [rbp + 0x80], ebx
mov rcx, rdi
call fcn.14003e6c0
addss xmm0, xmm9
mov eax, r14d
sub eax, ebx
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm0, xmm1
cvttss2si eax, xmm0
mov dword [rbp + 0x78], eax
cmp rsi, r15
je 0x14003ee15
mov dword [rsi], ebx
mov dword [rsi + 4], eax
add rsi, 8
mov qword [rsp + 0x48], rsi
jmp 0x14003ee3c
lea r9, [rbp + 0x78]
lea r8, [rbp + 0x80]
mov rdx, rsi
lea rcx, [rsp + 0x40]
call fcn.14003d900
mov r15, qword [rsp + 0x50]
mov qword [rsp + 0x38], r15
mov rsi, qword [rsp + 0x48]
mov rcx, rdi
call fcn.14003e6c0
addss xmm0, xmm9
comiss xmm6, xmm0
jbe 0x14003eed5
mov rcx, rdi
call fcn.14003e6c0
addss xmm0, xmm9
movd xmm1, r14d
cvtdq2ps xmm1, xmm1
mulss xmm0, xmm1
cvttss2si ebx, xmm0
mov dword [rbp + 0x80], ebx
mov rcx, rdi
call fcn.14003e6c0
addss xmm0, xmm9
mov eax, r14d
sub eax, ebx
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm0, xmm1
cvttss2si eax, xmm0
mov dword [rbp + 0x78], eax
cmp rsi, r15
je 0x14003eeae
mov dword [rsi], ebx
mov dword [rsi + 4], eax
add rsi, 8
mov qword [rsp + 0x48], rsi
jmp 0x14003eed5
lea r9, [rbp + 0x78]
lea r8, [rbp + 0x80]
mov rdx, rsi
lea rcx, [rsp + 0x40]
call fcn.14003d900
mov r15, qword [rsp + 0x50]
mov qword [rsp + 0x38], r15
mov rsi, qword [rsp + 0x48]
mov rcx, rdi
call fcn.14003e6c0
addss xmm0, xmm9
comiss xmm6, xmm0
jbe 0x14003ef6e
mov rcx, rdi
call fcn.14003e6c0
addss xmm0, xmm9
movd xmm1, r14d
cvtdq2ps xmm1, xmm1
mulss xmm0, xmm1
cvttss2si ebx, xmm0
mov dword [rbp + 0x80], ebx
mov rcx, rdi
call fcn.14003e6c0
addss xmm0, xmm9
mov eax, r14d
sub eax, ebx
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm0, xmm1
cvttss2si eax, xmm0
mov dword [rbp + 0x78], eax
cmp rsi, r15
je 0x14003ef47
mov dword [rsi], ebx
mov dword [rsi + 4], eax
add rsi, 8
mov qword [rsp + 0x48], rsi
jmp 0x14003ef6e
lea r9, [rbp + 0x78]
lea r8, [rbp + 0x80]
mov rdx, rsi
lea rcx, [rsp + 0x40]
call fcn.14003d900
mov r15, qword [rsp + 0x50]
mov qword [rsp + 0x38], r15
mov rsi, qword [rsp + 0x48]
mov r8, rsi
mov r13, qword [rsp + 0x40]
sub r8, r13
sar r8, 3
xor r9d, r9d
mov rdx, rsi
mov rcx, r13
call fcn.14003e550
xor edi, edi
mov dword [rbp + 0x78], edi
movss xmm10, dword [0x1400c3ee8]
cmp r13, rsi
je 0x14003f1a1
movss xmm6, dword [0x1400c3eb8]
movss xmm0, dword [rbp + 0x88]
mov r14, qword [rsp + 0x58]
lea r15, [0x14015bf30]
nop
movsxd rax, dword [r13]
cmp edi, eax
jge 0x14003f038
lea rbx, [r12 + rax]
movaps xmm0, xmmword [0x1400c3f80]
movups xmmword [rbp - 0x80], xmm0
movaps xmm1, xmm10
lea rcx, [rbp - 0x80]
call fcn.140012b70
movsxd rdi, edi
add rdi, r12
mov qword [rsp + 0x20], rbx
mov r9, rdi
mov r8d, eax
lea rdx, [rbp + 0x88]
mov rcx, r14
call fcn.140024f60
movsxd r8, dword [r13]
add r8, r12
movss dword [rsp + 0x20], xmm15
xor r9d, r9d
mov rdx, rdi
lea rcx, [rbp + 0x80]
call fcn.14000f880
movss xmm0, dword [rbp + 0x88]
addss xmm0, dword [rax]
movss dword [rbp + 0x88], xmm0
movss dword [rbp + 0x78], xmm0
mov rcx, r15
call fcn.14003e6c0
addss xmm0, xmm9
subss xmm0, xmm7
mulss xmm0, dword [rsp + 0x34]
mulss xmm0, xmm6
addss xmm0, dword [rbp + 0x8c]
movss dword [rbp + 0x7c], xmm0
mov rcx, r15
call fcn.14003e6c0
mov rcx, r15
call fcn.14003e6c0
movaps xmm8, xmm0
addss xmm8, xmm9
mulss xmm8, xmm6
addss xmm8, dword [0x1400c3ed0]
mov rcx, r15
call fcn.14003e6c0
movaps xmm7, xmm0
addss xmm7, xmm9
mulss xmm7, xmm6
addss xmm7, dword [0x1400c3ed0]
mov rcx, r15
call fcn.14003e6c0
movaps xmm6, xmm0
addss xmm6, xmm9
mulss xmm6, dword [0x1400c3eb8]
addss xmm6, dword [0x1400c3ed0]
mov rcx, r15
call fcn.14003e6c0
addss xmm0, xmm9
mulss xmm0, dword [0x1400c3ed0]
addss xmm0, dword [0x1400c3eb8]
movss dword [rsp + 0x60], xmm6
movss dword [rsp + 0x64], xmm7
movss dword [rsp + 0x68], xmm8
movss dword [rsp + 0x6c], xmm0
movsxd rax, dword [r13]
movsxd rdi, dword [r13 + 4]
add rdi, rax
add rdi, r12
lea rbx, [rax + r12]
movaps xmm1, xmm10
lea rcx, [rsp + 0x60]
call fcn.140012b70
mov qword [rsp + 0x20], rdi
mov r9, rbx
mov r8d, eax
lea rdx, [rbp + 0x78]
mov rcx, r14
call fcn.140024f60
movsxd rax, dword [r13]
movsxd r8, dword [r13 + 4]
add r8, rax
add r8, r12
lea rdx, [rax + r12]
movss dword [rsp + 0x20], xmm15
xor r9d, r9d
lea rcx, [rsp + 0x78]
call fcn.14000f880
movss xmm0, dword [rbp + 0x88]
addss xmm0, dword [rax]
movss dword [rbp + 0x88], xmm0
mov edi, dword [r13 + 4]
add edi, dword [r13]
add r13, 8
cmp r13, rsi
movss xmm7, dword [0x1400c3ec0]
movss xmm6, dword [0x1400c3eb8]
jne 0x14003efc0
mov dword [rbp + 0x78], edi
mov r14, qword [rsp + 0x70]
mov r15, qword [rsp + 0x38]
cmp edi, r14d
jge 0x14003f1ec
movaps xmm0, xmmword [0x1400c3f80]
movups xmmword [rbp - 0x80], xmm0
movsxd rdi, r14d
add rdi, r12
movsxd rbx, dword [rbp + 0x78]
add rbx, r12
movaps xmm1, xmm10
lea rcx, [rbp - 0x80]
call fcn.140012b70
mov r8d, eax
mov qword [rsp + 0x20], rdi
mov r9, rbx
lea rdx, [rbp + 0x88]
mov rdi, qword [rsp + 0x58]
mov rcx, rdi
call fcn.140024f60
jmp 0x14003f1f1
mov rdi, qword [rsp + 0x58]
xor r14d, r14d
mov esi, r14d
movss xmm0, dword [rsp + 0x34]
comiss xmm0, xmm9
jbe 0x14003f2f4
mulss xmm11, dword [0x1400c3f14]
movaps xmm7, xmm9
nop dword [rax]
nop dword [rax + rax]
movaps xmm0, xmm7
mulss xmm0, xmm12
addss xmm0, xmm11
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
mulss xmm0, xmm12
addss xmm0, xmm12
mov qword [rsp + 0x60], r14
mov dword [rsp + 0x68], r14d
mulss xmm0, xmm14
movss dword [rsp + 0x6c], xmm0
movaps xmm1, xmm10
lea rcx, [rsp + 0x60]
call fcn.140012b70
mov ebx, eax
lea rcx, [rsp + 0x78]
call fcn.140012c40
movaps xmm6, xmm7
addss xmm6, dword [rax + 4]
lea rcx, [rsp + 0x70]
call fcn.140012c40
movss xmm0, dword [rsp + 0x30]
addss xmm0, dword [rax]
movss dword [rbp + 0x78], xmm0
movss dword [rbp + 0x7c], xmm6
lea rcx, [rsp + 0x58]
call fcn.140012c40
addss xmm7, dword [rax + 4]
lea rcx, [rsp + 0x38]
call fcn.140012c40
movss xmm0, dword [rax]
movss dword [rbp + 0x80], xmm0
movss dword [rbp + 0x84], xmm7
movss dword [rsp + 0x20], xmm10
mov r9d, ebx
lea r8, [rbp + 0x78]
lea rdx, [rbp + 0x80]
mov rcx, rdi
call fcn.140023c40
add esi, 2
movd xmm7, esi
cvtdq2ps xmm7, xmm7
movss xmm0, dword [rsp + 0x34]
comiss xmm0, xmm7
ja 0x14003f220
mov ebx, 0x64
nop dword [rax]
lea rcx, [0x14015bf30]
call fcn.14003e6c0
addss xmm0, xmm9
comiss xmm13, xmm0
jbe 0x14003f3a8
lea rcx, [0x14015bf30]
call fcn.14003e6c0
movaps xmm7, xmm0
addss xmm7, xmm9
lea rcx, [rbp + 0x80]
call fcn.140012c40
mulss xmm7, dword [rsp + 0x34]
addss xmm7, dword [rax + 4]
lea rcx, [0x14015bf30]
call fcn.14003e6c0
movaps xmm6, xmm0
addss xmm6, xmm9
lea rcx, [rsp + 0x78]
call fcn.140012c40
mulss xmm6, dword [rsp + 0x30]
addss xmm6, dword [rax]
movss dword [rbp + 0x78], xmm6
movss dword [rbp + 0x7c], xmm7
movaps xmm0, xmmword [0x1400c3f70]
movups xmmword [rbp - 0x80], xmm0
movaps xmm1, xmm10
lea rcx, [rbp - 0x80]
call fcn.140012b70
mov r9d, eax
mov dword [rsp + 0x20], r14d
movaps xmm2, xmm10
lea rdx, [rbp + 0x78]
mov rcx, rdi
call fcn.140022610
sub rbx, 1
jne 0x14003f300
call fcn.140012c10
addss xmm0, dword [rsp + 0x34]
call fcn.14001e3b0
nop
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x14003f404
sub r15, rcx
and r15, 0xfffffffffffffff8
mov rax, rcx
cmp r15, 0x1000
jb 0x14003f3fc
add r15, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14003f3fc
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rdx, r15
call fcn.14007ef98
lea r11, [rsp + 0x130]
mov rbx, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov edx, eax
shr edx, 0x1e
xor edx, eax
imul eax, edx, 0x6c078965
add eax, r8d
mov dword [rdi + r8*4 + 4], eax
inc r8
cmp r8, 0x270
jb 0x14003f460
mov dword [0x14015bf30], 0x270
lea rcx, [0x14015d2b8]
call fcn.14007f21c
jmp 0x14003ebfe
lea rcx, [0x14015bf20]
call fcn.14007f288
cmp dword [0x14015bf20], 0xffffffff
jne 0x14003eb89
lea rcx, [0x14015bf18]
call fcn.140040c00
lea rcx, [0x14015bf20]
call fcn.14007f21c
jmp 0x14003eb89
lea rcx, [0x14015d2b8]
call fcn.14007f288
cmp dword [0x14015d2b8], 0xffffffff
jne 0x14003ebfe
call sub.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_
mov dword [0x14015d2b4], 0xffffffff
mov dword [0x14015bf34], eax
mov r8d, 1
jmp 0x14003f460