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

Disassembly:
push rsi
push rdi
mov eax, 0x1428
call fcn.140015880
sub rsp, rax
movdqa xmmword [rsp + 0x1410], xmm12
movaps xmmword [rsp + 0x1400], xmm11
movdqa xmmword [rsp + 0x13f0], xmm10
movdqa xmmword [rsp + 0x13e0], xmm9
movdqa xmmword [rsp + 0x13d0], xmm8
movaps xmmword [rsp + 0x13c0], xmm7
movaps xmmword [rsp + 0x13b0], xmm6
mov esi, ecx
xor ecx, ecx
call fcn.1400211f0
mov ecx, eax
call fcn.140022b90
mov edi, 0x1c
nop word cs:[rax + rax]
call fcn.140022ba8
cdqe
imul rcx, rax, 0x10624dd3
mov rdx, rcx
shr rdx, 0x3f
shr rcx, 0x20
sar ecx, 6
add ecx, edx
imul ecx, ecx, 0x3e8
sub eax, ecx
mov dword [rsp + rdi + 4], eax
call fcn.140022ba8
cdqe
imul rcx, rax, 0x10624dd3
mov rdx, rcx
shr rdx, 0x3f
shr rcx, 0x20
sar ecx, 6
add ecx, edx
imul ecx, ecx, 0x3e8
sub eax, ecx
mov dword [rsp + rdi + 8], eax
call fcn.140022ba8
cdqe
imul rcx, rax, 0x10624dd3
mov rdx, rcx
shr rdx, 0x3f
shr rcx, 0x20
sar ecx, 6
add ecx, edx
imul ecx, ecx, 0x3e8
sub eax, ecx
mov dword [rsp + rdi + 0xc], eax
call fcn.140022ba8
cdqe
imul rcx, rax, 0x10624dd3
mov rdx, rcx
shr rdx, 0x3f
shr rcx, 0x20
sar ecx, 6
add ecx, edx
imul ecx, ecx, 0x3e8
sub eax, ecx
mov dword [rsp + rdi + 0x10], eax
call fcn.140022ba8
cdqe
imul rcx, rax, 0x10624dd3
mov rdx, rcx
shr rdx, 0x3f
shr rcx, 0x20
sar ecx, 6
add ecx, edx
imul ecx, ecx, 0x3e8
sub eax, ecx
mov dword [rsp + rdi + 0x14], eax
call fcn.140022ba8
cdqe
imul rcx, rax, 0x10624dd3
mov rdx, rcx
shr rdx, 0x3f
shr rcx, 0x20
sar ecx, 6
add ecx, edx
imul ecx, ecx, 0x3e8
sub eax, ecx
mov dword [rsp + rdi + 0x18], eax
call fcn.140022ba8
cdqe
imul rcx, rax, 0x10624dd3
mov rdx, rcx
shr rdx, 0x3f
shr rcx, 0x20
sar ecx, 6
add ecx, edx
imul ecx, ecx, 0x3e8
sub eax, ecx
mov dword [rsp + rdi + 0x1c], eax
call fcn.140022ba8
cdqe
imul rcx, rax, 0x10624dd3
mov rdx, rcx
shr rdx, 0x3f
shr rcx, 0x20
sar ecx, 6
add ecx, edx
imul ecx, ecx, 0x3e8
sub eax, ecx
mov dword [rsp + rdi + 0x20], eax
add rdi, 0x20
cmp rdi, 0x19c
jne 0x140008b50
call fcn.140022ba8
cdqe
imul rcx, rax, 0x10624dd3
mov rdx, rcx
shr rdx, 0x3f
sar rcx, 0x26
add ecx, edx
imul ecx, ecx, 0x3e8
sub eax, ecx
mov dword [rsp + 0x1a0], eax
call fcn.140022ba8
cdqe
imul rcx, rax, 0x10624dd3
mov rdx, rcx
shr rdx, 0x3f
sar rcx, 0x26
add ecx, edx
imul ecx, ecx, 0x3e8
sub eax, ecx
mov dword [rsp + 0x1a4], eax
call fcn.140022ba8
cdqe
imul rcx, rax, 0x10624dd3
mov rdx, rcx
shr rdx, 0x3f
sar rcx, 0x26
add ecx, edx
imul ecx, ecx, 0x3e8
sub eax, ecx
mov dword [rsp + 0x1a8], eax
call fcn.140022ba8
cdqe
imul rcx, rax, 0x10624dd3
mov rdx, rcx
shr rdx, 0x3f
sar rcx, 0x26
add ecx, edx
imul ecx, ecx, 0x3e8
sub eax, ecx
mov dword [rsp + 0x1ac], eax
xor ecx, ecx
mov eax, 0x63
jmp 0x140008d81
lea edx, [rcx + 1]
dec rax
cmp ecx, 0x62
mov ecx, edx
je 0x140008e8c
mov r8d, ecx
mov edx, 0x63
sub rdx, r8
cmp rdx, 4
jae 0x140008de0
mov r8, rdx
and r8, 0xfffffffffffffffc
cmp r8, rdx
je 0x140008d70
mov edx, dword [rsp + r8*4 + 0x20]
jmp 0x140008dc2
mov dword [rsp + r8*4 + 0x20], r10d
mov dword [rsp + r9*4 + 0x20], edx
mov r8, r9
cmp rax, r9
je 0x140008d70
lea r9, [r8 + 1]
mov r10d, dword [rsp + r8*4 + 0x24]
cmp edx, r10d
jg 0x140008db0
mov edx, r10d
jmp 0x140008dba
lea r8, [rax*4]
and r8, 0xfffffffffffffff0
xor r9d, r9d
jmp 0x140008e09
add r9, 0x10
cmp r8, r9
je 0x140008d92
mov r10d, dword [rsp + r9 + 0x20]
mov r11d, dword [rsp + r9 + 0x24]
cmp r10d, r11d
jle 0x140008e30
mov dword [rsp + r9 + 0x20], r11d
mov dword [rsp + r9 + 0x24], r10d
jmp 0x140008e33
mov r10d, r11d
mov r11d, dword [rsp + r9 + 0x28]
cmp r10d, r11d
jle 0x140008e50
mov dword [rsp + r9 + 0x24], r11d
mov dword [rsp + r9 + 0x28], r10d
jmp 0x140008e53
mov r10d, r11d
mov r11d, dword [rsp + r9 + 0x2c]
cmp r10d, r11d
jle 0x140008e70
mov dword [rsp + r9 + 0x28], r11d
mov dword [rsp + r9 + 0x2c], r10d
jmp 0x140008e73
mov r10d, r11d
mov r11d, dword [rsp + r9 + 0x30]
cmp r10d, r11d
jle 0x140008e00
mov dword [rsp + r9 + 0x2c], r11d
mov dword [rsp + r9 + 0x30], r10d
jmp 0x140008e00
call fcn.1400137d8
mov dword [rsp + 0x24], eax
xor ecx, ecx
nop word [rax + rax]
mov edx, eax
shr edx, 0x1e
xor edx, eax
imul eax, edx, 0x6c078965
add eax, ecx
inc eax
mov dword [rsp + rcx*4 + 0x28], eax
mov edx, eax
shr edx, 0x1e
xor edx, eax
imul eax, edx, 0x6c078965
add eax, ecx
add eax, 2
mov dword [rsp + rcx*4 + 0x2c], eax
mov edx, eax
shr edx, 0x1e
xor edx, eax
imul eax, edx, 0x6c078965
add eax, ecx
add eax, 3
mov dword [rsp + rcx*4 + 0x30], eax
mov edx, eax
shr edx, 0x1e
xor edx, eax
imul eax, edx, 0x6c078965
add eax, ecx
add eax, 4
mov dword [rsp + rcx*4 + 0x34], eax
mov edx, eax
shr edx, 0x1e
xor edx, eax
imul eax, edx, 0x6c078965
add eax, ecx
add eax, 5
mov dword [rsp + rcx*4 + 0x38], eax
mov edx, eax
shr edx, 0x1e
xor edx, eax
imul eax, edx, 0x6c078965
add eax, ecx
add eax, 6
mov dword [rsp + rcx*4 + 0x3c], eax
mov edx, eax
shr edx, 0x1e
xor edx, eax
imul eax, edx, 0x6c078965
add eax, ecx
add eax, 7
mov dword [rsp + rcx*4 + 0x40], eax
mov edx, eax
shr edx, 0x1e
xor edx, eax
imul edx, edx, 0x6c078965
lea eax, [rcx + rdx]
add eax, 8
mov dword [rsp + rcx*4 + 0x44], eax
add rcx, 8
cmp rcx, 0x268
jne 0x140008ea0
add edx, ecx
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul eax, eax, 0x6c078965
add eax, 0x269
mov dword [rsp + 0x9c8], eax
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, 0x26a
mov dword [rsp + 0x9cc], eax
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, 0x26b
mov dword [rsp + 0x9d0], eax
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, 0x26c
mov dword [rsp + 0x9d4], eax
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, 0x26d
mov dword [rsp + 0x9d8], eax
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, 0x26e
mov dword [rsp + 0x9dc], eax
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, 0x26f
mov dword [rsp + 0x9e0], eax
mov ecx, 0x270
movdqa xmm0, xmmword [0x14004cd00]
movdqa xmm1, xmmword [0x14004cd10]
movdqa xmm2, xmmword [0x14004cd20]
movdqa xmm3, xmmword [0x14004cd30]
pxor xmm4, xmm4
movdqa xmm5, xmmword [0x14004cd40]
movdqa xmm6, xmmword [0x14004cd50]
movdqa xmm7, xmmword [0x14004cd60]
mov eax, 0x80000000
jmp 0x1400090df
mov ecx, dword [rsp + 0x13a0]
and ecx, eax
mov edx, dword [rsp + 0x24]
mov r8d, edx
and r8d, 0x7ffffffe
or r8d, ecx
and edx, 1
neg edx
and edx, 0x9908b0df
xor edx, dword [rsp + 0x654]
shr r8d, 1
xor edx, r8d
mov dword [rsp + 0x9e0], edx
xor ecx, ecx
mov edx, ecx
inc ecx
mov edx, dword [rsp + rdx*4 + 0x24]
mov r8d, edx
shr r8d, 0xb
xor r8d, edx
mov edx, r8d
shl edx, 7
and edx, 0x9d2c5680
xor edx, r8d
mov r8d, edx
shl r8d, 0xf
and r8d, 0xefc60000
xor r8d, edx
mov edx, r8d
shr edx, 0x12
xor edx, r8d
cmp edx, 0xfffffff8
jbe 0x14000936c
cmp ecx, 0x270
jne 0x1400091a0
mov rcx, 0xfffffffffffff640
mov edx, dword [rsp + 0x24]
nop word cs:[rax + rax]
movdqu xmm8, xmmword [rsp + rcx + 0x9e8]
movdqa xmm9, xmm8
pslld xmm9, 0x1f
psrad xmm9, 0x1f
pand xmm9, xmm0
movdqu xmm10, xmmword [rsp + rcx + 0x1018]
pxor xmm10, xmm9
movdqa xmm9, xmm8
psrld xmm9, 1
pand xmm9, xmm1
movd xmm11, edx
shufps xmm11, xmm8, 0xe4
pshufd xmm12, xmm8, 0xff
shufps xmm8, xmm11, 0x24
shufps xmm8, xmm8, 0x93
psrld xmm8, 1
pand xmm8, xmm2
por xmm8, xmm9
pxor xmm8, xmm10
movdqu xmmword [rsp + rcx + 0x13a4], xmm8
movd edx, xmm12
add rcx, 0x10
jne 0x140009100
mov ecx, 0x270
jmp 0x14000909b
cmp ecx, 0x4e0
jb 0x14000909b
mov rcx, 0xfffffffffffffffc
nop word cs:[rax + rax]
movdqu xmm8, xmmword [rsp + rcx*4 + 0x9f4]
movdqu xmm9, xmmword [rsp + rcx*4 + 0x9f8]
movdqa xmm10, xmm9
pslld xmm10, 0x1f
psrad xmm10, 0x1f
pand xmm10, xmm0
movdqu xmm11, xmmword [rsp + rcx*4 + 0x1028]
pxor xmm11, xmm10
psrld xmm9, 1
pand xmm9, xmm1
psrld xmm8, 1
pand xmm8, xmm2
por xmm8, xmm9
pxor xmm8, xmm11
movdqu xmmword [rsp + rcx*4 + 0x34], xmm8
add rcx, 4
cmp rcx, 0xdc
jb 0x1400091c0
movq xmm8, qword [rsp + 0xd64]
movq xmm9, qword [rsp + 0xd68]
movdqa xmm10, xmm9
pand xmm10, xmm3
pcmpeqd xmm10, xmm4
pandn xmm10, xmm5
movq xmm11, qword [rsp + 0x1398]
pxor xmm11, xmm10
psrld xmm9, 1
pand xmm9, xmm6
psrld xmm8, 1
pand xmm8, xmm7
por xmm8, xmm9
pxor xmm8, xmm11
movq qword [rsp + 0x3a4], xmm8
mov edx, dword [rsp + 0xd6c]
mov ecx, dword [rsp + 0xd70]
mov r8d, ecx
and r8d, 1
neg r8d
and r8d, 0x9908b0df
xor r8d, dword [rsp + 0x13a0]
mov r9d, ecx
shr r9d, 1
and r9d, 0x3fffffff
shr edx, 1
and edx, 0x40000000
or edx, r9d
xor edx, r8d
mov dword [rsp + 0x3ac], edx
mov rdx, 0xfffffffffffff9d0
nop
movdqu xmm8, xmmword [rsp + rdx + 0x13a4]
movdqa xmm9, xmm8
pslld xmm9, 0x1f
psrad xmm9, 0x1f
pand xmm9, xmm0
movdqu xmm10, xmmword [rsp + rdx + 0x654]
pxor xmm10, xmm9
movdqa xmm9, xmm8
psrld xmm9, 1
pand xmm9, xmm1
movd xmm11, ecx
shufps xmm11, xmm8, 0xe4
pshufd xmm12, xmm8, 0xff
shufps xmm8, xmm11, 0x24
shufps xmm8, xmm8, 0x93
psrld xmm8, 1
pand xmm8, xmm2
por xmm8, xmm9
pxor xmm8, xmm10
movdqu xmmword [rsp + rdx + 0x9e0], xmm8
movd ecx, xmm12
add rdx, 0x10
jne 0x1400092e0
jmp 0x140009060
mov eax, edx
imul rax, rax, 0x20b3dd41
shr rax, 0x26
imul eax, eax, 0x1f5
sub edx, eax
add edx, esi
cmp edx, 0x7ddc0
jne 0x1400093d2
movaps xmm6, xmmword [rsp + 0x13b0]
movaps xmm7, xmmword [rsp + 0x13c0]
movaps xmm8, xmmword [rsp + 0x13d0]
movaps xmm9, xmmword [rsp + 0x13e0]
movaps xmm10, xmmword [rsp + 0x13f0]
movaps xmm11, xmmword [rsp + 0x1400]
movaps xmm12, xmmword [rsp + 0x1410]
add rsp, 0x1428
pop rdi
pop rsi
ret
mov ecx, esi
movaps xmm6, xmmword [rsp + 0x13b0]
movaps xmm7, xmmword [rsp + 0x13c0]
movaps xmm8, xmmword [rsp + 0x13d0]
movaps xmm9, xmmword [rsp + 0x13e0]
movaps xmm10, xmmword [rsp + 0x13f0]
movaps xmm11, xmmword [rsp + 0x1400]
movaps xmm12, xmmword [rsp + 0x1410]
add rsp, 0x1428
pop rdi
pop rsi
jmp fcn.140008ae0