Function at 0x1400037c0
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister
Set console window title

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 - 0xb0]
sub rsp, 0x1b0
mov rax, qword [0x140015048]
xor rax, rsp
mov qword [rbp + 0xa0], rax
xor r14d, r14d
mov dword [rsp + 0x50], r14d
lea esi, [r14 + 0xf]
mov rax, qword gs:[0x58]
mov rbx, qword [rax]
mov eax, 0x10
lea rdi, [rsi - 0x10]
lea r13, [0x1401f48e0]
mov eax, dword [rax + rbx]
cmp dword [0x1401f4900], eax
jle 0x1400039d0
lea rcx, [0x1401f4900]
call fcn.14000b588
cmp dword [0x1401f4900], edi
jne 0x1400039d0
movabs rax, 0xbe79feaac165bb23
mov qword [rbp + 0x60], rax
movabs rax, 0x4f980db7a99d9334
mov qword [rbp + 0x68], rax
movabs rax, 0x1122cfe47a36453d
mov qword [rbp + 0x70], rax
movabs rax, 0xd8f988e9242a4e96
mov qword [rbp + 0x78], rax
movabs rax, 0x49fd57b60e679f87
mov qword [rbp + 0x80], rax
movabs rax, 0x2f4fb83f9890718
mov qword [rbp + 0x88], rax
movabs rax, 0xf658206088ccb221
mov qword [rbp + 0x90], rax
movabs rax, 0xc6747785722dafea
mov qword [rbp + 0x98], rax
movabs rax, 0x894fcb9ef2578a13
mov qword [rsp + 0x60], rax
movabs rax, 0x29fd69d4cbfcaa0c
mov qword [rsp + 0x68], rax
movabs rax, 0x7f4fa38f105f2d5a
mov qword [rsp + 0x70], rax
movabs rax, 0xae8cfc9a565b3ef9
mov qword [rsp + 0x78], rax
movabs rax, 0xdbe15f7741ee7f0
mov qword [rbp - 0x80], rax
movabs rax, 0x4ebfb1cab1ce415d
mov qword [rbp - 0x78], rax
movabs rax, 0xa20b7231d883fc6c
mov qword [rbp - 0x70], rax
movabs rax, 0xc6742ddc2a7af9bf
mov qword [rbp - 0x68], rax
movdqa xmm0, xmmword [rbp + 0x60]
pxor xmm0, xmmword [rsp + 0x60]
movdqa xmmword [rsp + 0x60], xmm0
movdqa xmm1, xmmword [rsp + 0x70]
pxor xmm1, xmmword [rbp + 0x70]
movdqa xmmword [rsp + 0x70], xmm1
movdqa xmm0, xmmword [rbp - 0x80]
pxor xmm0, xmmword [rbp + 0x80]
movdqa xmmword [rbp - 0x80], xmm0
movdqa xmm1, xmmword [rbp - 0x70]
pxor xmm1, xmmword [rbp + 0x90]
movdqa xmmword [rbp - 0x70], xmm1
xorps xmm0, xmm0
movups xmmword [0x1401f48e0], xmm0
mov qword [0x1401f48f0], r14
mov qword [0x1401f48f8], r14
lea rax, [rsp + 0x60]
mov r8, rdi
nop dword [rax]
inc r8
cmp byte [rax + r8], 0
jne 0x1400039a0
lea rdx, [rsp + 0x60]
mov rcx, r13
call fcn.140008dc0
lea rcx, [0x14000d0c0]
call fcn.14000b90c
nop
lea rcx, [0x1401f4900]
call fcn.14000b528
mov r15d, 0x14
mov eax, dword [r15 + rbx]
mov r14d, 0x30
test al, 1
jne 0x140003a3a
or eax, 1
mov dword [r15 + rbx], eax
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [r14 + rbx + 0x1384], 0xffffffff
mov dword [r14 + rbx + 4], eax
mov edx, 1
lea r8, [r14 + 8]
add r8, rbx
nop
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [r8], eax
inc rdx
lea r8, [r8 + 4]
cmp rdx, 0x270
jb 0x140003a10
mov dword [r14 + rbx], 0x270
mov eax, dword [r15 + rbx]
mov ecx, 0x18
lea r12, [rbx + rcx]
test al, 2
jne 0x140003a63
or eax, 2
mov dword [r15 + rbx], eax
mov qword [r12], 0
mov qword [r12 + 8], 0x1e
xorps xmm0, xmm0
movups xmmword [rbp + 0x40], xmm0
mov qword [rbp + 0x50], 0
mov qword [rbp + 0x58], 0xf
mov byte [rbp + 0x40], 0
mov dword [rsp + 0x50], 1
add r14, rbx
nop dword [rax]
dec rsi
mov rdx, qword [r12 + 8]
mov r15, qword [r12]
mov qword [rsp + 0x40], r14
sub rdx, r15
cmp rdx, 0xffffffffffffffff
jne 0x140003ac7
mov rcx, r14
call fcn.14000a570
mov ebx, eax
shl rbx, 0x20
mov rcx, r14
call fcn.14000a570
mov eax, eax
or rbx, rax
jmp 0x140003ad7
inc rdx
lea rcx, [rsp + 0x40]
call fcn.14000a3c0
mov rbx, rax
mov rax, r13
cmp qword [0x1401f48f8], 0x10
cmovae rax, qword [0x1401f48e0]
add rax, rbx
movzx r9d, byte [rax + r15]
mov rcx, qword [rbp + 0x50]
mov rdx, qword [rbp + 0x58]
cmp rcx, rdx
jae 0x140003b1f
lea rax, [rcx + 1]
mov qword [rbp + 0x50], rax
lea rax, [rbp + 0x40]
cmp rdx, 0x10
cmovae rax, qword [rbp + 0x40]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x140003b28
lea rcx, [rbp + 0x40]
call fcn.140009200
test rsi, rsi
jne 0x140003a90
lea rcx, [rbp + 0x40]
cmp qword [rbp + 0x58], 0x10
cmovae rcx, qword [rbp + 0x40]
call qword [sym.imp.KERNEL32.dll_SetConsoleTitleA]
nop
mov rdx, qword [rbp + 0x58]
cmp rdx, 0x10
jb 0x140003b84
inc rdx
mov rcx, qword [rbp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003b7f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140003b7f
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14000b92c
movabs r8, 0x8e92aa09d348f47d
mov qword [rbp + 0x40], r8
movabs r9, 0x1e737c300f4f2d76
mov qword [rbp + 0x48], r9
movabs rdx, 0x944ae32f9f1fa6d7
mov qword [rbp + 0x50], rdx
movabs rcx, 0x9d3e4fee714ff1d8
mov qword [rbp + 0x58], rcx
movabs rax, 0xf8cdc16ab620975b
mov qword [rbp - 0x40], rax
movabs rax, 0x2f4e125f663c5f13
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], rdx
mov qword [rbp - 0x28], rcx
movdqa xmm0, xmmword [rbp + 0x40]
pxor xmm0, xmmword [rbp - 0x40]
movdqa xmmword [rbp - 0x40], xmm0
movdqa xmm1, xmmword [rbp - 0x30]
pxor xmm1, xmmword [rbp + 0x50]
movdqa xmmword [rbp - 0x30], xmm1
mov qword [rbp + 0x40], r8
mov qword [rbp + 0x48], r9
mov qword [rbp + 0x50], rdx
mov qword [rbp + 0x58], rcx
movabs rax, 0xa1e1c77ca1279252
mov qword [rbp - 0x60], rax
movabs rax, 0x7d5c085e6a264115
mov qword [rbp - 0x58], rax
movabs rax, 0xfc3acd5bf17acfbb
mov qword [rbp - 0x50], rax
movabs rax, 0x9d3e72971424cea8
mov qword [rbp - 0x48], rax
movdqa xmm0, xmmword [rbp - 0x60]
pxor xmm0, xmmword [rbp + 0x40]
movdqa xmmword [rbp - 0x60], xmm0
movdqa xmm1, xmmword [rbp - 0x50]
pxor xmm1, xmmword [rbp + 0x50]
movdqa xmmword [rbp - 0x50], xmm1
mov qword [rbp + 0x40], r8
mov qword [rbp + 0x48], r9
movabs rax, 0x8ebd8533a33c8015
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], r9
movdqa xmm0, xmmword [rsp + 0x40]
pxor xmm0, xmmword [rbp + 0x40]
movdqa xmmword [rsp + 0x40], xmm0
lea rax, [rsp + 0x40]
inc rdi
cmp byte [rax + rdi], 0
jne 0x140003c96
movabs rax, 0x7fffffffffffffff
mov rcx, qword [0x1401f4870]
sub rax, rcx
cmp rax, rdi
jb 0x140003f46
lea rax, [0x1401f4860]
cmp qword [0x1401f4878], 0x10
cmovae rax, qword [0x1401f4860]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdi
lea r9, [rsp + 0x40]
lea rcx, [rsp + 0x60]
call fcn.140009940
nop
lea rdx, [rbp - 0x60]
lea rcx, [rsp + 0x60]
call fcn.140007950
xorps xmm0, xmm0
movups xmmword [rbp], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x10], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rbp], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x10], xmm1
xor ebx, ebx
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], bl
lea rdx, [0x1401f4820]
lea rcx, [rbp]
call fcn.1400079e0
xorps xmm0, xmm0
movups xmmword [rbp - 0x20], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x10], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x20], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x10], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], bl
lea rdx, [rbp - 0x40]
lea rcx, [rbp - 0x20]
call fcn.140007950
xorps xmm0, xmm0
movups xmmword [rbp + 0x60], xmm0
mov qword [rbp + 0x70], rbx
mov qword [rbp + 0x78], rbx
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x60], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x70], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], bl
lea rdx, [rbp + 0x60]
lea rcx, [rbp + 0x20]
call fcn.14000a700
nop
mov rdx, qword [rbp - 8]
cmp rdx, 0x10
jb 0x140003def
inc rdx
mov rcx, qword [rbp - 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003dea
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140003dea
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14000b92c
movdqa xmm0, xmmword [0x14000ece0]
movdqu xmmword [rbp - 0x10], xmm0
mov byte [rbp - 0x20], 0
mov rdx, qword [rbp + 0x18]
cmp rdx, 0x10
jb 0x140003e3e
inc rdx
mov rcx, qword [rbp]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003e39
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140003e39
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14000b92c
movdqa xmm0, xmmword [0x14000ece0]
movdqu xmmword [rbp + 0x10], xmm0
mov byte [rbp], 0
mov rdx, qword [rsp + 0x78]
cmp rdx, 0x10
jb 0x140003e8f
inc rdx
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003e8a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140003e8a
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14000b92c
lea rdx, [0x1401f4800]
cmp qword [0x1401f4818], 0x10
cmovae rdx, qword [0x1401f4800]
lea rcx, [rbp + 0x20]
mov rbx, qword [rbp + 0x20]
mov rdi, qword [rbp + 0x38]
cmp rdi, 0x10
cmovae rcx, rbx
mov r8, qword [rbp + 0x30]
cmp r8, qword [0x1401f4810]
jne 0x140003ed5
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x140003ed5
mov sil, 1
jmp 0x140003ed8
xor sil, sil
cmp rdi, 0x10
jb 0x140003f12
lea rdx, [rdi + 1]
mov rax, rbx
cmp rdx, 0x1000
jb 0x140003f0a
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140003f0a
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rbx
call fcn.14000b92c
movzx eax, sil
mov rcx, qword [rbp + 0xa0]
xor rcx, rsp
call fcn.14000b3e0
lea r11, [rsp + 0x1b0]
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
call fcn.140001560
int3