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

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1348]
mov eax, 0x1448
call fcn.18005af40
sub rsp, rax
xor r8d, r8d
lea rdx, [0x1800796e0]
lea rcx, [0x18008b058]
call fcn.180003930
mov rbx, qword [0x18008e5c8]
mov qword [rbp + 0x1398], rbx
mov rdi, qword [0x18008e7d8]
mov qword [rbp + 0x13a0], rdi
mov eax, dword [0x18008ebb8]
xor r14d, r14d
test al, 1
jne 0x180001991
or eax, 1
mov dword [0x18008ebb8], eax
mov qword [0x18008eba0], r14
mov qword [0x18008eba8], r14
mov byte [0x18008eaa0], r14b
mov dword [0x18008ebb0], r14d
mov r8d, 0xff
lea rdx, [0x1800796e0]
lea rcx, [0x18008eaa0]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
mov byte [0x18008eb9f], r14b
lea rcx, [0x18008eaa0]
call fcn.180006230
nop
lea rcx, [0x18005c920]
call fcn.18005a2a0
nop
movabs rax, 0x6067477e515bb6d6
mov qword [rbp + 0x13a8], rax
mov rax, qword [rbp + 0x13a8]
mov qword [rsp + 0x60], rax
movabs rax, 0xfa1a1209e7976e6d
mov qword [rbp + 0x13a8], rax
mov rax, qword [rbp + 0x13a8]
mov qword [rsp + 0x68], rax
movabs rax, 0xb29bfb530c5dae25
mov qword [rbp + 0x13a8], rax
mov rax, qword [rbp + 0x13a8]
mov qword [rsp + 0x70], rax
movabs rcx, 0x4e398696e8b649d0
mov qword [rbp + 0x13a8], rcx
mov rax, qword [rbp + 0x13a8]
mov qword [rsp + 0x78], rax
movabs rax, 0x1212280d342995f5
mov qword [rbp + 0x13a8], rax
mov rax, qword [rbp + 0x13a8]
mov qword [rbp - 0x70], rax
movabs rax, 0x9f6e7e6081c80b0e
mov qword [rbp + 0x13a8], rax
mov rax, qword [rbp + 0x13a8]
mov qword [rbp - 0x68], rax
movabs rax, 0xb29bfb530c5dae57
mov qword [rbp + 0x13a8], rax
mov rax, qword [rbp + 0x13a8]
mov qword [rbp - 0x60], rax
mov qword [rbp + 0x13a8], rcx
mov rax, qword [rbp + 0x13a8]
mov qword [rbp - 0x58], rax
movdqa xmm0, xmmword [rsp + 0x60]
pxor xmm0, xmmword [rbp - 0x70]
movdqa xmmword [rsp + 0x60], xmm0
movdqa xmm1, xmmword [rsp + 0x70]
pxor xmm1, xmmword [rbp - 0x60]
movdqa xmmword [rsp + 0x70], xmm1
mov rax, qword [0x18008e5f8]
or dword [rax + 0x3f5c], 1
mov dword [rax + 0x3f60], 0xbf800000
mov qword [rbp + 0x1390], 0
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], r14d
lea rax, [rbp + 0x1390]
mov qword [rsp + 0x20], rax
mov r9d, pe_nt_image_headers64
lea r8, [0x18008eaa0]
xor edx, edx
lea rcx, [rsp + 0x60]
call fcn.180031e00
test al, al
je 0x180001af4
lea rcx, [0x18008eaa0]
call fcn.180006230
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x40], xmm0
mov qword [rbp + 0x13a8], r14
mov qword [rsp + 0x50], r14
mov r9d, r14d
mov dword [rbp + 0x1390], r14d
mov rdx, qword [rdi + rbx + 8]
mov r8, qword [rdi + rbx]
mov rax, rdx
sub rax, r8
sar rax, 3
mov r12, qword [rsp + 0x48]
test rax, rax
je 0x180001c08
mov r13, r14
nop word [rax + rax]
sub rdx, r8
sar rdx, 3
cmp rdx, r13
jbe 0x180001e44
mov rsi, qword [r8 + r13*8]
add rsi, 0xd0
cmp qword [rsi + 0x18], 0x10
jb 0x180001b65
mov rsi, qword [rsi]
mov qword [rbp - 0x80], rsi
cmp dword [0x18008eba0], 0
je 0x180001cff
lea r15, [0x1800796e0]
test rsi, rsi
cmovne r15, rsi
mov edi, r14d
mov rbx, r14
nop word [rax + rax]
mov rax, qword [0x18008eba8]
mov r8, qword [rbx + rax]
mov r9, qword [rbx + rax + 8]
cmp r8, r9
je 0x180001ccb
mov rcx, r15
cmp byte [r8], 0x2d
jne 0x180001cc1
inc r8
call fcn.180005980
test rax, rax
je 0x180001ccb
mov rdi, qword [rbp + 0x13a0]
mov rbx, qword [rbp + 0x1398]
mov r9d, dword [rbp + 0x1390]
inc r9d
mov dword [rbp + 0x1390], r9d
inc r13
mov rdx, qword [rdi + rbx + 8]
mov r8, qword [rdi + rbx]
mov rcx, rdx
sub rcx, r8
sar rcx, 3
movsxd rax, r9d
cmp rax, rcx
jb 0x180001b40
call qword [sym.imp.MSVCP140.dll__Xtime_get_ticks]
mov r8d, 0xffffffff
mov dword [rbp + 0x1334], r8d
mov dword [rbp - 0x4c], eax
mov edx, 1
nop dword [rax]
nop word [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul ecx, ecx, 0x6c078965
add ecx, edx
mov dword [rbp + rdx*4 - 0x4c], ecx
mov eax, ecx
inc rdx
cmp rdx, 0x270
jb 0x180001c30
mov dword [rbp - 0x50], 0x270
sub r12, qword [rsp + 0x40]
sar r12, 3
dec r12
mov r13d, 0x40
mov r15, 0xffffffffffffffff
mov rsi, r15
dec r13
shr rsi, 1
cmp rsi, r8
ja 0x180001c74
cmp r12, r15
jne 0x180001d41
mov rbx, r14
nop dword [rax + rax]
lea rcx, [r13 - 1]
shl r14, cl
add r14, r14
nop word [rax + rax]
lea rcx, [rbp - 0x50]
call fcn.180004170
mov eax, eax
cmp rax, rsi
ja 0x180001ca0
or r14, rax
add rbx, r13
cmp rbx, 0x40
jb 0x180001c90
jmp 0x180001dc5
call fcn.180005980
test rax, rax
jne 0x180001cea
inc edi
add rbx, 0x10
cmp edi, dword [0x18008eba0]
jne 0x180001b90
cmp dword [0x18008ebb0], 0
jne 0x180001bc7
mov rdi, qword [rbp + 0x13a0]
mov rbx, qword [rbp + 0x1398]
mov r9d, dword [rbp + 0x1390]
cmp r12, qword [rbp + 0x13a8]
je 0x180001d1a
mov qword [r12], rsi
add r12, 8
mov qword [rsp + 0x48], r12
jmp 0x180001bdc
lea r8, [rbp - 0x80]
mov rdx, r12
lea rcx, [rsp + 0x40]
call fcn.180003b10
mov rax, qword [rsp + 0x50]
mov qword [rbp + 0x13a8], rax
mov r12, qword [rsp + 0x48]
jmp 0x180001bd5
lea r9, [r12 + 1]
nop word [rax + rax]
mov rdi, r14
mov rbx, r14
test r12, r12
je 0x180001d9a
nop dword [rax + rax]
lea rcx, [r13 - 1]
shl rdi, cl
add rdi, rdi
nop word [rax + rax]
lea rcx, [rbp - 0x50]
call fcn.180004170
mov eax, eax
cmp rax, rsi
ja 0x180001d70
or rdi, rax
lea rcx, [r13 - 1]
shl rbx, cl
add rbx, rbx
or rbx, rsi
cmp rbx, r12
jb 0x180001d60
lea r9, [r12 + 1]
xor edx, edx
mov rax, rbx
div r9
mov r8, rdx
mov rcx, rax
xor edx, edx
mov rax, rdi
div r9
cmp rax, rcx
jb 0x180001dba
cmp r8, r12
jne 0x180001d50
xor edx, edx
mov rax, rdi
div r9
mov r14, rdx
mov rbx, qword [rsp + 0x40]
mov rdx, qword [rbx + r14*8]
nop
inc r15
cmp byte [rdx + r15], 0
jne 0x180001dd0
mov r8, r15
lea rcx, [0x18008b058]
call fcn.180003930
nop
test rbx, rbx
je 0x180001e30
mov rcx, qword [rbp + 0x13a8]
sub rcx, rbx
and rcx, 0xfffffffffffffff8
mov rax, rbx
cmp rcx, 0x1000
jb 0x180001e25
add rcx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180001e25
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rdx, rcx
mov rcx, rbx
call fcn.18005a2b8
add rsp, 0x1448
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.180003910
nop
int3