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

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 - 0x1540]
mov eax, 0x1640
call fcn.140015750
sub rsp, rax
movaps xmmword [rsp + 0x1630], xmm6
mov rax, qword [0x14038a340]
xor rax, rsp
mov qword [rbp + 0x1520], rax
xor r12d, r12d
lea rcx, [rbp + 0xa0]
call fcn.140007eb0
mov rbx, rax
xorps xmm0, xmm0
movups xmmword [rbp + 0x40], xmm0
mov qword [rbp + 0x50], r12
mov qword [rbp + 0x58], r12
mov rdi, qword [rax + 0x10]
cmp qword [rax + 0x18], 7
jbe 0x140002015
mov rbx, qword [rax]
movabs rax, 0x7ffffffffffffffe
cmp rdi, rax
ja 0x140002b67
cmp rdi, 7
ja 0x140002043
mov qword [rbp + 0x50], rdi
mov qword [rbp + 0x58], 7
movups xmm0, xmmword [rbx]
movups xmmword [rbp + 0x40], xmm0
jmp 0x140002096
mov rcx, rdi
or rcx, 7
cmp rcx, rax
ja 0x14000205e
mov rax, rcx
mov edx, 0xa
cmp rcx, rdx
cmovb rax, rdx
mov qword [rsp + 0x28], rax
lea rdx, [rsp + 0x28]
lea rcx, [rbp + 0x40]
call fcn.140005530
mov qword [rbp + 0x40], rax
mov qword [rbp + 0x50], rdi
mov rcx, qword [rsp + 0x28]
mov qword [rbp + 0x58], rcx
lea r8, [rdi*2 + 2]
mov rdx, rbx
mov rcx, rax
call fcn.14002be40
nop
lea rcx, [rbp + 0xa0]
call fcn.140001e10
xorps xmm0, xmm0
movups xmmword [rbp + 0x20], xmm0
mov qword [rbp + 0x30], r12
mov qword [rbp + 0x38], 7
mov word [rbp + 0x20], r12w
movups xmmword [rbp + 0xc0], xmm0
movdqa xmm1, xmmword [0x140384070]
movdqu xmmword [rbp + 0xd0], xmm1
mov word [rbp + 0xc0], r12w
movups xmmword [rbp + 0x150], xmm0
movdqa xmm6, xmm1
movdqu xmmword [rbp + 0x160], xmm1
mov word [rbp + 0x150], r12w
mov edi, r12d
mov dword [rsp + 0x24], r12d
xor eax, eax
movups xmmword [rbp + 0x170], xmm0
mov qword [rbp + 0x180], rax
lea rcx, [rbp + 0x170]
call fcn.140001ce0
nop
mov rsi, qword [rbp + 0x170]
mov rbx, qword [rbp + 0x178]
mov qword [rsp + 0x30], rbx
cmp rsi, rbx
mov qword [rsp + 0x28], rsi
je 0x140002667
lea r10, [0x140383e80]
test edi, edi
jne 0x1400021eb
mov rdx, rsi
cmp qword [rsi + 0x18], 7
jbe 0x140002156
mov rdx, qword [rsi]
xorps xmm0, xmm0
movups xmmword [rbp + 0x90], xmm0
mov r8, r12
mov r9d, 8
nop dword [rax]
mov rax, r8
and eax, 3
lea rcx, [r10 + rax*2]
movzx eax, word [r10 + r8*2 + 8]
xor ax, word [rcx]
mov word [rbp + r8*2 + 0x90], ax
inc r8
sub r9, 1
jne 0x140002170
movaps xmm0, xmmword [rbp + 0x90]
movdqa xmmword [rsp + 0x60], xmm0
psrldq xmm0, 8
movq rax, xmm0
shr rax, 0x30
mov rcx, r12
test eax, eax
setne cl
add rcx, 7
cmp rcx, qword [rsi + 0x10]
jne 0x1400021eb
lea r8, [rsp + 0x60]
sub r8, rdx
nop word [rax + rax]
movzx eax, word [rdx + r8]
cmp ax, word [rdx]
jne 0x1400021eb
add rdx, 2
sub rcx, 1
jne 0x1400021d0
mov eax, dword [rsi + 0x54]
mov dword [rsp + 0x24], eax
xorps xmm0, xmm0
movups xmmword [rbp + 0x60], xmm0
movups xmmword [rbp + 0x70], xmm0
mov qword [rbp + 0x60], r12
movups xmmword [rbp + 0x68], xmm0
mov qword [rbp + 0x78], r12
mov qword [rbp + 0x80], 7
mov word [rbp + 0x68], r12w
mov rcx, qword [rsi + 0x10]
test rcx, rcx
je 0x14000222a
mov rax, rsi
cmp qword [rsi + 0x18], 7
jbe 0x14000222d
mov rax, qword [rsi]
jmp 0x14000222d
mov rax, r12
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rcx
movaps xmm0, xmmword [rsp + 0x40]
movdqa xmmword [rbp + 0x90], xmm0
mov r8d, 0x80000000
lea rdx, [rbp + 0x90]
lea rcx, [rbp + 0x60]
call fcn.140007c40
nop
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0x60]
call fcn.140007170
nop
lea rcx, [rbp + 0x40]
cmp qword [rbp + 0x58], 7
cmova rcx, qword [rbp + 0x40]
mov qword [rbp + 0x90], rcx
mov r15, qword [rbp + 0x50]
lea r14, [rbp + 0xa0]
cmp qword [rbp + 0xb8], 7
cmova r14, qword [rbp + 0xa0]
mov r13, 0xffffffffffffffff
cmp qword [rbp + 0xb0], r13
cmovb r13, qword [rbp + 0xb0]
cmp r15, r13
ja 0x14000236f
jne 0x14000230a
mov rdi, r12
test r13, r13
je 0x14000235d
sub rcx, r14
mov qword [rbp + 0x90], rcx
movzx ecx, word [rcx + r14]
call fcn.14001bb08
mov ebx, eax
movzx ecx, word [r14]
call fcn.14001bb08
cmp eax, ebx
jne 0x140002301
inc rdi
add r14, 2
cmp rdi, r13
mov rcx, qword [rbp + 0x90]
jb 0x1400022d3
jmp 0x14000235d
mov r12, 0xffffffffffffffff
jmp 0x14000235d
test r13, r13
je 0x14000236c
sub r14, rcx
mov rax, r13
sub rax, r12
cmp rax, r15
jb 0x140002367
xor esi, esi
test r15, r15
je 0x140002358
mov rbx, rcx
nop word [rax + rax]
movzx ecx, word [r14 + rbx]
call fcn.14001bb08
mov edi, eax
movzx ecx, word [rbx]
call fcn.14001bb08
cmp edi, eax
jne 0x140002446
inc rsi
add rbx, 2
cmp rsi, r15
jb 0x140002330
mov rsi, qword [rsp + 0x28]
cmp r12, 0xffffffffffffffff
jne 0x140002462
mov rbx, qword [rsp + 0x30]
xor r12d, r12d
mov rdx, qword [rbp + 0xb8]
cmp rdx, 7
jbe 0x1400023b5
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0xa0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400023b0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002b9a
call fcn.140015390
mov qword [rbp + 0xb0], r12
mov qword [rbp + 0xb8], 7
mov word [rbp + 0xa0], r12w
mov rdx, qword [rbp + 0x80]
cmp rdx, 7
jbe 0x140002412
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000240d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002ba0
call fcn.140015390
mov qword [rbp + 0x78], r12
mov qword [rbp + 0x80], 7
mov word [rbp + 0x68], r12w
mov rcx, qword [rbp + 0x60]
test rcx, rcx
je 0x140002434
call sub.ADVAPI32.dll_CloseServiceHandle
mov rsi, qword [rsp + 0x28]
add rsi, 0x60
mov edi, dword [rsp + 0x24]
jmp 0x14000212c
inc r12
add r14, 2
cmp r12, r13
jae 0x140002367
mov rcx, qword [rbp + 0x90]
jmp 0x140002312
lea rax, [rbp + 0x20]
cmp rax, rsi
je 0x1400024c1
mov rdx, qword [rsi + 0x10]
mov r9, rsi
cmp qword [rsi + 0x18], 7
jbe 0x14000247c
mov r9, qword [rsi]
mov rax, qword [rbp + 0x38]
cmp rdx, rax
ja 0x1400024b2
lea rdi, [rbp + 0x20]
cmp rax, 7
cmova rdi, qword [rbp + 0x20]
mov qword [rbp + 0x30], rdx
lea rbx, [rdx + rdx]
mov r8, rbx
mov rdx, r9
mov rcx, rdi
call fcn.14002be40
xor r12d, r12d
mov word [rbx + rdi], r12w
jmp 0x1400024c4
movzx r8d, byte [rsp + 0x20]
lea rcx, [rbp + 0x20]
call fcn.140004a90
xor r12d, r12d
lea r9, [rsi + 0x20]
lea rax, [rbp + 0xc0]
cmp rax, r9
je 0x14000251b
mov rdx, qword [r9 + 0x10]
cmp qword [r9 + 0x18], 7
jbe 0x1400024e2
mov r9, qword [r9]
lea rcx, [rbp + 0xc0]
cmp rdx, 7
ja 0x140002510
mov qword [rbp + 0xd0], rdx
lea rbx, [rdx + rdx]
mov r8, rbx
mov rdx, r9
call fcn.14002be40
mov word [rbp + rbx + 0xc0], r12w
jmp 0x14000251b
movzx r8d, byte [rsp + 0x20]
call fcn.140004a90
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0x60]
call fcn.140007500
lea rcx, [rbp + 0x150]
cmp rcx, rax
je 0x14000255b
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x150], xmm0
movups xmm6, xmmword [rax + 0x10]
movdqu xmmword [rbp + 0x160], xmm6
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], 7
mov word [rax], r12w
mov rdx, qword [rsp + 0x58]
cmp rdx, 7
jbe 0x14000259e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002598
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002b6d
call fcn.140015390
nop
mov rdx, qword [rbp + 0xb8]
cmp rdx, 7
jbe 0x1400025e4
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0xa0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400025df
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002b9a
call fcn.140015390
mov qword [rbp + 0xb0], r12
mov qword [rbp + 0xb8], 7
mov word [rbp + 0xa0], r12w
mov rdx, qword [rbp + 0x80]
cmp rdx, 7
jbe 0x140002641
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000263c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002ba0
call fcn.140015390
mov qword [rbp + 0x78], r12
mov qword [rbp + 0x80], 7
mov word [rbp + 0x68], r12w
mov rcx, qword [rbp + 0x60]
test rcx, rcx
je 0x140002663
call sub.ADVAPI32.dll_CloseServiceHandle
mov edi, dword [rsp + 0x24]
cmp qword [rbp + 0x30], 0
je 0x140002b73
xor edx, edx
mov r8d, 0xb0
lea rcx, [rsp + 0x70]
call fcn.14002c4e0
lea rax, [0x140383e28]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], r12
xorps xmm0, xmm0
movups xmmword [rbp - 0x80], xmm0
movdqa xmm1, xmmword [0x140384070]
movdqa xmmword [rbp - 0x70], xmm1
mov word [rbp - 0x80], r12w
movups xmmword [rbp - 0x60], xmm0
movdqa xmmword [rbp - 0x50], xmm1
mov word [rbp - 0x60], r12w
movups xmmword [rbp - 0x40], xmm0
movdqa xmmword [rbp - 0x30], xmm1
mov word [rbp - 0x40], r12w
movups xmmword [rbp - 0x20], xmm0
movdqa xmmword [rbp - 0x10], xmm1
mov word [rbp - 0x20], r12w
mov dword [rbp], r12d
lea rcx, [rbp + 8]
call fcn.1400081b0
call fcn.140013af0
mov qword [rbp + 0x10], rax
call fcn.140013d60
mov dword [rbp + 0x1514], 0xffffffff
mov dword [rbp + 0x194], eax
mov edx, 1
nop dword [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rbp + rdx*4 + 0x194], eax
inc rdx
cmp rdx, 0x270
jb 0x140002710
mov dword [rbp + 0x190], 0x270
lea rax, [rbp + 0x190]
mov qword [rsp + 0x28], rax
mov edx, 0x79
lea rcx, [rsp + 0x28]
call fcn.140005a10
movabs rdx, 0x8000000000000168
add rdx, rax
movabs r8, 0x8000000000000000
lea rcx, [rdx + r8]
lea rax, [rdx + r8]
cmp rdx, r8
cmovae rax, rcx
mov qword [rbp + 0x18], rax
xorps xmm0, xmm0
movups xmmword [rbp + 0xe0], xmm0
movups xmmword [rbp + 0xf0], xmm0
movups xmmword [rbp + 0x130], xmm0
movups xmmword [rbp + 0x140], xmm0
mov dword [rbp + 0xe0], 0x10
mov qword [rbp + 0xe4], 1
mov qword [rbp + 0xec], 0
mov qword [rbp + 0xf4], 0
movdqa xmmword [rbp + 0x100], xmm0
xorps xmm1, xmm1
movups xmmword [rbp + 0x110], xmm1
movdqa xmm0, xmmword [0x140384070]
movdqa xmmword [rbp + 0x120], xmm0
mov word [rbp + 0x110], r12w
mov dword [rbp + 0x130], r12d
mov byte [rbp + 0x134], 0
mov byte [rbp + 0x148], 0
lea r9, [rbp + 0x20]
cmp qword [rbp + 0x38], 7
cmova r9, qword [rbp + 0x20]
mov rdx, qword [rbp + 0x30]
lea rcx, [rbp + 0x110]
cmp rdx, 7
ja 0x14000284a
mov qword [rbp + 0x120], rdx
lea rbx, [rdx + rdx]
mov r8, rbx
mov rdx, r9
call fcn.14002be40
mov word [rbp + rbx + 0x110], r12w
jmp 0x140002855
movzx r8d, byte [rsp + 0x20]
call fcn.140004a90
mov dword [rbp], edi
lea rax, [rbp + 0xe0]
mov qword [rsp + 0x78], rax
mov rdx, qword [rbp - 0x68]
cmp rdx, 7
jbe 0x1400028a4
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000289f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002ba6
call fcn.140015390
movups xmm0, xmmword [rbp + 0x20]
movaps xmmword [rbp - 0x80], xmm0
movups xmm1, xmmword [rbp + 0x30]
movaps xmmword [rbp - 0x70], xmm1
mov qword [rbp + 0x30], r12
mov qword [rbp + 0x38], 7
mov word [rbp + 0x20], r12w
mov rdx, qword [rbp - 0x48]
cmp rdx, 7
jbe 0x140002905
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002900
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002ba6
call fcn.140015390
movups xmm0, xmmword [rbp + 0x40]
movaps xmmword [rbp - 0x60], xmm0
movups xmm1, xmmword [rbp + 0x50]
movaps xmmword [rbp - 0x50], xmm1
mov qword [rbp + 0x50], r12
mov qword [rbp + 0x58], 7
mov word [rbp + 0x40], r12w
mov rdx, qword [rbp - 0x28]
cmp rdx, 7
jbe 0x140002966
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002961
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002ba6
call fcn.140015390
movups xmm0, xmmword [rbp + 0xc0]
movaps xmmword [rbp - 0x40], xmm0
movups xmm1, xmmword [rbp + 0xd0]
movaps xmmword [rbp - 0x30], xmm1
movdqa xmm0, xmmword [0x140384070]
movdqu xmmword [rbp + 0xd0], xmm0
mov word [rbp + 0xc0], r12w
mov rdx, qword [rbp - 8]
cmp rdx, 7
jbe 0x1400029d4
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400029cf
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002ba6
call fcn.140015390
movups xmm0, xmmword [rbp + 0x150]
movaps xmmword [rbp - 0x20], xmm0
movaps xmmword [rbp - 0x10], xmm6
movdqa xmm0, xmmword [0x140384070]
movdqu xmmword [rbp + 0x160], xmm0
mov word [rbp + 0x150], r12w
lea rax, [rsp + 0x70]
mov qword [rbp + 0x108], rax
lea rcx, [rbp + 0xe0]
call fcn.140007d70
nop
cmp byte [rbp + 0x148], 0
je 0x140002a29
lea rcx, [rbp + 0x138]
call fcn.1400147b8
mov rdx, qword [rbp + 0x128]
cmp rdx, 7
jbe 0x140002a6f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x110]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002a6a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002bac
call fcn.140015390
movdqa xmm0, xmmword [0x140384070]
movdqa xmmword [rbp + 0x120], xmm0
mov word [rbp + 0x110], r12w
lea rcx, [rsp + 0x70]
call fcn.140002c80
nop
lea rcx, [rbp + 0x170]
call fcn.140004610
nop
mov rdx, qword [rbp + 0x38]
cmp rdx, 7
jbe 0x140002adf
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002ada
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002bb2
call fcn.140015390
mov qword [rbp + 0x30], r12
mov qword [rbp + 0x38], 7
mov word [rbp + 0x20], r12w
mov rdx, qword [rbp + 0x58]
cmp rdx, 7
jbe 0x140002b2c
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002b27
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002b61
call fcn.140015390
mov rcx, qword [rbp + 0x1520]
xor rcx, rsp
call fcn.140014f40
lea r11, [rsp + 0x1640]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.14001dfa8
nop
call fcn.1400013a0
nop
call fcn.14001dfa8
nop
call fcn.140001870
mov r8, rax
mov edx, 3
lea rcx, [rbp + 0x60]
call fcn.140001600
lea rdx, [0x140388ce8]
lea rcx, [rbp + 0x60]
call fcn.140016d20
nop
call fcn.14001dfa8
nop
call fcn.14001dfa8
nop
call fcn.14001dfa8
nop
call fcn.14001dfa8
nop
call fcn.14001dfa8
int3