Function at 0x14009c100
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister
Hash data using fnv

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x14f0]
mov eax, 0x15f0
call fcn.14018c250
sub rsp, rax
mov rax, qword [0x140248318]
xor rax, rsp
mov qword [rbp + 0x14e0], rax
mov qword [rbp - 0x68], r9
mov r15, r8
mov qword [rbp - 0x60], rdx
mov rsi, rcx
mov qword [rbp - 0x50], rdx
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x38], xmm0
mov ecx, 0x88
call fcn.14018bbb8
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rsp + 0x38], rax
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x68], xmm0
xor ebx, ebx
mov qword [rsp + 0x78], rbx
movdqu xmmword [rbp - 0x48], xmm0
mov r12d, ebx
mov qword [rbp - 0x58], rbx
mov qword [rbp - 0x38], rbx
mov rcx, qword [rsi + 0x438]
mov rax, qword [rcx]
mov r8d, 0x101
lea rdx, [rsp + 0x68]
call qword [rax + 0x28]
xor edx, edx
mov r8d, 0xa0
lea rcx, [rbp + 0xb0]
call sub.VCRUNTIME140.dll_memset
mov r14, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x68]
mov rbx, qword [rbp - 0x40]
cmp rdi, r14
je 0x14009c286
nop word [rax + rax]
mov byte [rsp + 0x30], 0
mov rcx, qword [rsi + 0x120]
mov rax, qword [rcx]
call qword [rax + 0x38]
mov dword [rsp + 0x20], eax
lea r9, [rsp + 0x30]
mov r8, r15
mov rdx, qword [rdi + 8]
mov rcx, qword [rsi + 0x118]
call fcn.140160390
test al, al
je 0x14009c275
cmp rbx, r12
je 0x14009c251
movups xmm0, xmmword [rdi]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [rdi + 0x10]
movups xmmword [rbx + 0x10], xmm1
movups xmm0, xmmword [rdi + 0x20]
movups xmmword [rbx + 0x20], xmm0
movups xmm1, xmmword [rdi + 0x30]
movups xmmword [rbx + 0x30], xmm1
movups xmm0, xmmword [rdi + 0x40]
movups xmmword [rbx + 0x40], xmm0
movups xmm1, xmmword [rdi + 0x50]
movups xmmword [rbx + 0x50], xmm1
movups xmm0, xmmword [rdi + 0x60]
movups xmmword [rbx + 0x60], xmm0
movsd xmm1, qword [rdi + 0x70]
movsd qword [rbx + 0x70], xmm1
add rbx, 0x78
mov qword [rbp - 0x40], rbx
jmp 0x14009c268
mov r8, rdi
mov rdx, rbx
lea rcx, [rbp - 0x48]
call fcn.140092c90
mov r12, qword [rbp - 0x38]
mov rbx, qword [rbp - 0x40]
movzx eax, byte [rsp + 0x30]
inc qword [rbp + rax*8 + 0xb0]
add rdi, 0x78
cmp rdi, r14
jne 0x14009c1d0
mov qword [rbp - 0x58], r12
mov ecx, socket
call fcn.14018bbb8
mov rsi, rax
mov qword [rbp + 0x78], rax
lea r13, [rax + 0x14]
mov qword [rbp + 0x88], r13
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsi], xmm0
mov dword [rsi + 0x10], eax
mov qword [rbp + 0x80], r13
xor r15d, r15d
mov ecx, r15d
mov rax, rsi
cmp rsi, r13
je 0x14009c2ce
mov byte [rax], cl
inc ecx
inc rax
cmp rax, r13
jne 0x14009c2c2
lea rcx, [0x140256ea0]
call sub.MSVCP140.dll__Mtx_lock
test eax, eax
jne 0x14009cf18
lea rdx, [rsp + 0x60]
lea ecx, [rax + 4]
call fcn.14016ec30
mov r14d, dword [rsp + 0x60]
lea rcx, [0x140256ea0]
call sub.MSVCP140.dll__Mtx_unlock
mov edx, 0xffffffff
mov dword [rbp + 0x14d4], edx
mov dword [rbp + 0x154], r14d
mov edi, 1
mov ecx, edi
nop dword [rax]
mov eax, r14d
shr eax, 0x1e
xor eax, r14d
imul r14d, eax, 0x6c078965
add r14d, ecx
mov dword [rbp + rcx*4 + 0x154], r14d
inc rcx
cmp rcx, 0x270
jb 0x14009c320
mov dword [rbp + 0x150], 0x270
lea rax, [rbp + 0x150]
mov qword [rbp + 0x60], rax
mov ecx, 0x40
mov rax, 0xffffffffffffffff
nop dword [rax + rax]
dec rcx
shr rax, 1
cmp rax, rdx
ja 0x14009c370
mov qword [rbp + 0x70], rax
mov qword [rbp + 0x68], rcx
cmp rsi, r13
je 0x14009c3ce
lea r14, [rsi + 1]
cmp r14, r13
je 0x14009c3ce
mov r15, rdi
nop dword [rax]
nop dword [rax + rax]
lea rdx, [r15 + 1]
lea rcx, [rbp + 0x60]
call fcn.140096b80
mov rdx, rax
cmp rax, r15
je 0x14009c3c3
movzx ecx, byte [r14]
movzx eax, byte [rax + rsi]
mov byte [r14], al
mov byte [rdx + rsi], cl
inc r14
inc r15
cmp r14, r13
jne 0x14009c3a0
xor r14d, r14d
mov ecx, r14d
mov rdx, qword [rbp - 0x68]
nop dword [rax + rax]
movzx eax, byte [rsi + rcx]
cmp qword [rbp + rax*8 + 0xb0], rdx
jae 0x14009c55a
inc rcx
cmp rcx, 0x14
jb 0x14009c3e0
jne 0x14009c55a
mov rdi, qword [rbp - 0x60]
mov qword [rdi], r14
mov qword [rdi + 8], r14
mov ecx, 0x88
call fcn.14018bbb8
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rdi], rax
test rsi, rsi
je 0x14009c459
sub r13, rsi
cmp r13, 0x1000
jb 0x14009c44d
add r13, 0x27
mov rcx, qword [rsi - 8]
sub rsi, rcx
lea rax, [rsi - 8]
cmp rax, 0x1f
ja 0x14009ce05
mov rsi, rcx
mov rdx, r13
mov rcx, rsi
call fcn.14018bbf4
nop
movabs r15, 0x8888888888888889
mov rcx, qword [rbp - 0x48]
test rcx, rcx
je 0x14009c4b5
sub r12, rcx
mov rax, r15
imul r12
add rdx, r12
sar rdx, 6
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rdx, rdx, 0x78
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009c4af
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009cdfe
call fcn.14018bbf4
nop
mov r8, qword [rsp + 0x68]
test r8, r8
je 0x14009c51d
mov rcx, qword [rsp + 0x78]
sub rcx, r8
mov rax, r15
imul rcx
add rdx, rcx
sar rdx, 6
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rdx, rdx, 0x78
mov rax, r8
cmp rdx, 0x1000
jb 0x14009c507
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009ce63
mov rcx, r8
call fcn.14018bbf4
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x68], xmm0
mov qword [rsp + 0x78], r14
mov rcx, qword [rsp + 0x38]
mov rax, qword [rcx + 8]
mov qword [rax], r14
mov rcx, qword [rcx]
test rcx, rcx
je 0x14009ceb5
nop word [rax + rax]
mov rbx, qword [rcx]
mov edx, 0x88
call fcn.14018bbf4
mov rcx, rbx
test rbx, rbx
jne 0x14009c540
jmp 0x14009ceb5
movzx edx, byte [rsi + rcx]
test rdx, rdx
je 0x14009c57d
mov eax, edx
nop word [rax + rax]
lea rdi, [rdi + rdi*4]
add rdi, rdi
sub rax, 1
jne 0x14009c570
cmp rdx, 0x13
jne 0x14009c589
lea r12, [rdx - 0x14]
jmp 0x14009c590
lea r12, [rdi + rdi*4]
add r12, r12
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x58], r14
mov rdx, qword [rbp + rdx*8 + 0xb0]
movabs rax, 0x222222222222222
test rdx, rdx
je 0x14009c5c8
cmp rdx, rax
ja 0x14009cf20
lea rcx, [rsp + 0x48]
call fcn.1400972f0
mov rcx, qword [rbp - 0x48]
sub rbx, rcx
movabs rax, 0x8888888888888889
imul rbx
lea r15, [rbx + rdx]
sar r15, 6
mov rax, r15
shr rax, 0x3f
add r15, rax
mov r10, qword [rsp + 0x50]
je 0x14009c692
mov rbx, rcx
nop dword [rax]
mov rax, qword [rbx + 8]
cmp rax, rdi
jb 0x14009c682
cmp rax, r12
jae 0x14009c682
cmp r10, qword [rsp + 0x58]
je 0x14009c66d
movups xmm0, xmmword [rbx]
movups xmmword [r10], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [r10 + 0x10], xmm1
movups xmm0, xmmword [rbx + 0x20]
movups xmmword [r10 + 0x20], xmm0
movups xmm1, xmmword [rbx + 0x30]
movups xmmword [r10 + 0x30], xmm1
movups xmm0, xmmword [rbx + 0x40]
movups xmmword [r10 + 0x40], xmm0
movups xmm1, xmmword [rbx + 0x50]
movups xmmword [r10 + 0x50], xmm1
movups xmm0, xmmword [rbx + 0x60]
movups xmmword [r10 + 0x60], xmm0
movsd xmm1, qword [rbx + 0x70]
movsd qword [r10 + 0x70], xmm1
mov r10, qword [rsp + 0x50]
add r10, 0x78
mov qword [rsp + 0x50], r10
jmp 0x14009c682
mov r8, rbx
mov rdx, r10
lea rcx, [rsp + 0x48]
call fcn.140092c90
mov r10, qword [rsp + 0x50]
inc r14
add rbx, 0x78
cmp r14, r15
jb 0x14009c600
mov rcx, r10
mov r11, qword [rsp + 0x48]
sub rcx, r11
movabs r14, 0x8888888888888889
mov rax, r14
imul rcx
lea rbx, [rcx + rdx]
sar rbx, 6
mov rax, rbx
shr rax, 0x3f
add rbx, rax
mov rdi, qword [rbp + 0x1550]
cmp rbx, rdi
ja 0x14009c8da
movzx r9d, byte [rsp + 0x30]
mov r8, rbx
mov rdx, r10
mov rcx, r11
call fcn.140094ca0
mov rdi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x48]
cmp rbx, rdi
je 0x14009c708
mov rdx, rbx
lea rcx, [rsp + 0x38]
call fcn.14009b930
add rbx, 0x78
cmp rbx, rdi
jne 0x14009c6f2
mov rdi, qword [rbp - 0x60]
xor r15d, r15d
mov qword [rdi], r15
mov qword [rdi + 8], r15
mov ecx, 0x88
call fcn.14018bbb8
mov qword [rax], rax
mov qword [rax + 8], rax
mov rcx, qword [rsp + 0x38]
mov qword [rdi], rcx
mov qword [rsp + 0x38], rax
mov rcx, qword [rdi + 8]
mov rax, qword [rsp + 0x40]
mov qword [rdi + 8], rax
mov qword [rsp + 0x40], rcx
mov r8, qword [rsp + 0x48]
test r8, r8
je 0x14009c7ae
mov rcx, qword [rsp + 0x58]
sub rcx, r8
mov rax, r14
imul rcx
add rdx, rcx
sar rdx, 6
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rdx, rdx, 0x78
mov rax, r8
cmp rdx, 0x1000
jb 0x14009c798
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009cd60
mov rcx, r8
call fcn.14018bbf4
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x58], r15
test rsi, rsi
je 0x14009c7e7
sub r13, rsi
cmp r13, 0x1000
jb 0x14009c7db
add r13, 0x27
mov rcx, qword [rsi - 8]
sub rsi, rcx
lea rax, [rsi - 8]
cmp rax, 0x1f
ja 0x14009ce05
mov rsi, rcx
mov rdx, r13
mov rcx, rsi
call fcn.14018bbf4
nop
mov r8, qword [rbp - 0x48]
test r8, r8
je 0x14009c840
mov rcx, qword [rbp - 0x58]
sub rcx, r8
mov rax, r14
imul rcx
add rdx, rcx
sar rdx, 6
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rdx, rdx, 0x78
mov rax, r8
cmp rdx, 0x1000
jb 0x14009c837
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009cdfe
mov rcx, r8
call fcn.14018bbf4
nop
mov r8, qword [rsp + 0x68]
test r8, r8
je 0x14009c8a8
mov rcx, qword [rsp + 0x78]
sub rcx, r8
mov rax, r14
imul rcx
add rdx, rcx
sar rdx, 6
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rdx, rdx, 0x78
mov rax, r8
cmp rdx, 0x1000
jb 0x14009c892
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009ce63
mov rcx, r8
call fcn.14018bbf4
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x68], xmm0
mov qword [rsp + 0x78], r15
mov rcx, qword [rsp + 0x38]
mov rax, qword [rcx + 8]
mov qword [rax], r15
mov rcx, qword [rcx]
test rcx, rcx
je 0x14009ceb5
mov rbx, qword [rcx]
mov edx, 0x88
call fcn.14018bbf4
mov rcx, rbx
test rbx, rbx
jne 0x14009c8c0
jmp 0x14009ceb5
lea rax, [rbp - 0x30]
mov qword [rbp - 0x50], rax
xorps xmm0, xmm0
movss dword [rbp - 0x30], xmm0
xor r15d, r15d
mov qword [rbp - 0x28], r15
mov qword [rbp - 0x20], r15
lea ecx, [r15 + 0x20]
call fcn.14018bbb8
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x18], r15
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x10], xmm0
mov qword [rbp], 7
mov qword [rbp + 8], 8
movss xmm0, dword [0x1401bb114]
movss dword [rbp - 0x30], xmm0
mov r8, rax
lea edx, [r15 + 0x10]
lea rcx, [rbp - 0x18]
call fcn.14007ba50
nop
mov qword [rbp + 0x10], rbx
mov qword [rbp + 0x18], rbx
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x80], xmm0
mov qword [rbp - 0x70], r15
test rdi, rdi
je 0x14009cc10
movabs rax, 0x222222222222222
cmp rdi, rax
ja 0x14009cf26
mov rdx, rdi
lea rcx, [rbp - 0x80]
call fcn.1400972f0
mov qword [rbp - 0x68], r15
mov rdi, qword [rbp + 0x10]
test rdi, rdi
je 0x14009cef1
dec rdi
mov qword [rbp + 0x10], rdi
cmp rdi, 0xffffffffffffffff
jne 0x14009c9dc
mov rdi, r15
lea rcx, [0x140256ea0]
call sub.MSVCP140.dll__Mtx_lock
test eax, eax
jne 0x14009cf2c
lea rdx, [rbp + 0x30]
lea ecx, [rax + 8]
call fcn.14016ec30
mov rbx, qword [rbp + 0x30]
lea rcx, [0x140256ea0]
call sub.MSVCP140.dll__Mtx_unlock
add rdi, 0x40
cmp rdi, 0x40
jb 0x14009c9a0
jmp 0x14009ca4a
lea r14, [rdi + 1]
mov rbx, r15
mov rax, r15
test rdi, rdi
je 0x14009ca22
lea rcx, [0x140256ea0]
call sub.MSVCP140.dll__Mtx_lock
test eax, eax
jne 0x14009cf34
lea rdx, [rbp + 0x38]
lea ecx, [rax + 8]
call fcn.14016ec30
mov rbx, qword [rbp + 0x38]
lea rcx, [0x140256ea0]
call sub.MSVCP140.dll__Mtx_unlock
mov rax, 0xffffffffffffffff
xor edx, edx
div r14
mov r8, rdx
mov rcx, rax
xor edx, edx
mov rax, rbx
div r14
cmp rax, rcx
jb 0x14009ca3f
cmp r8, rdi
jne 0x14009c9e0
xor edx, edx
mov rax, rbx
div r14
mov rbx, rdx
mov qword [rsp + 0x60], rbx
mov r14, rbx
shr r14, 0x38
mov r15, rbx
shr r15, 0x30
mov r12, rbx
shr r12, 0x28
mov rax, rbx
shr rax, 0x20
mov qword [rbp - 0x50], rax
mov rax, rbx
shr rax, 0x18
mov qword [rbp + 0x58], rax
mov rax, rbx
shr rax, 0x10
mov qword [rbp + 0x50], rax
mov rax, rbx
shr rax, 8
mov qword [rbp + 0x48], rax
lea r8, [rbp + 0x10]
lea rdx, [rbp + 0x40]
lea rcx, [rbp - 0x30]
call fcn.1400955d0
mov rax, qword [rbp + 0x40]
mov rdx, qword [rbp - 0x28]
cmp rax, rdx
je 0x14009cab4
mov rdi, qword [rax + 0x18]
jmp 0x14009cab8
mov rdi, qword [rbp + 0x10]
movzx ecx, bl
movabs rax, 0xcbf29ce484222325
xor rcx, rax
movabs r8, 0x100000001b3
imul rcx, r8
movzx eax, byte [rbp + 0x48]
xor rcx, rax
imul rcx, r8
movzx eax, byte [rbp + 0x50]
xor rcx, rax
imul rcx, r8
movzx eax, byte [rbp + 0x58]
xor rcx, rax
imul rcx, r8
movzx eax, byte [rbp - 0x50]
xor rcx, rax
imul rcx, r8
movzx eax, r12b
xor rcx, rax
imul rcx, r8
movzx eax, r15b
xor rcx, rax
imul rcx, r8
xor rcx, r14
imul rcx, r8
mov rax, qword [rbp]
and rax, rcx
add rax, rax
mov r8, qword [rbp - 0x18]
mov rcx, qword [r8 + rax*8 + 8]
cmp rcx, rdx
je 0x14009cb65
mov rax, qword [r8 + rax*8]
cmp rbx, qword [rcx + 0x10]
je 0x14009cb50
cmp rcx, rax
je 0x14009cb65
mov rcx, qword [rcx + 8]
cmp rbx, qword [rcx + 0x10]
jne 0x14009cb41
test rcx, rcx
je 0x14009cb65
cmp rcx, rdx
je 0x14009cb65
mov rax, qword [rcx + 0x18]
mov qword [rsp + 0x60], rax
jmp 0x14009cb7a
lea r8, [rsp + 0x60]
lea rdx, [rbp + 0x60]
lea rcx, [rbp - 0x30]
call fcn.1400952d0
mov rcx, qword [rax]
mov qword [rcx + 0x18], rdi
imul r8, qword [rsp + 0x60], 0x78
add r8, qword [rsp + 0x48]
mov rdx, qword [rbp - 0x78]
cmp rdx, qword [rbp - 0x70]
je 0x14009cbe2
movups xmm0, xmmword [r8]
movups xmmword [rdx], xmm0
movups xmm1, xmmword [r8 + 0x10]
movups xmmword [rdx + 0x10], xmm1
movups xmm0, xmmword [r8 + 0x20]
movups xmmword [rdx + 0x20], xmm0
movups xmm1, xmmword [r8 + 0x30]
movups xmmword [rdx + 0x30], xmm1
movups xmm0, xmmword [r8 + 0x40]
movups xmmword [rdx + 0x40], xmm0
movups xmm1, xmmword [r8 + 0x50]
movups xmmword [rdx + 0x50], xmm1
movups xmm0, xmmword [r8 + 0x60]
movups xmmword [rdx + 0x60], xmm0
movsd xmm1, qword [r8 + 0x70]
movsd qword [rdx + 0x70], xmm1
add qword [rbp - 0x78], 0x78
jmp 0x14009cbeb
lea rcx, [rbp - 0x80]
call fcn.140092c90
mov rax, qword [rbp - 0x68]
inc rax
mov qword [rbp - 0x68], rax
xor r15d, r15d
cmp rax, qword [rbp + 0x1550]
jb 0x14009c983
movabs r14, 0x8888888888888889
mov r9, qword [rbp - 0x78]
mov rcx, qword [rbp - 0x80]
sub r9, rcx
mov rax, r14
imul r9
add rdx, r9
sar rdx, 6
mov r8, rdx
shr r8, 0x3f
add r8, rdx
movzx r9d, byte [rsp + 0x30]
mov rdx, qword [rbp - 0x78]
call fcn.140094ca0
mov rdi, qword [rbp - 0x78]
mov rbx, qword [rbp - 0x80]
cmp rbx, rdi
je 0x14009cc66
nop
mov rdx, rbx
lea rcx, [rsp + 0x38]
call fcn.14009b930
add rbx, 0x78
cmp rbx, rdi
jne 0x14009cc50
mov rdi, qword [rbp - 0x60]
mov qword [rdi], r15
mov qword [rdi + 8], r15
mov ecx, 0x88
call fcn.14018bbb8
mov qword [rax], rax
mov qword [rax + 8], rax
mov rcx, qword [rsp + 0x38]
mov qword [rdi], rcx
mov qword [rsp + 0x38], rax
mov rcx, qword [rdi + 8]
mov rax, qword [rsp + 0x40]
mov qword [rdi + 8], rax
mov qword [rsp + 0x40], rcx
mov r8, qword [rbp - 0x80]
test r8, r8
je 0x14009cd08
mov rcx, qword [rbp - 0x70]
sub rcx, r8
mov rax, r14
imul rcx
add rdx, rcx
sar rdx, 6
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rdx, rdx, 0x78
mov rax, r8
cmp rdx, 0x1000
jb 0x14009ccf4
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14009ccf4
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r8
call fcn.14018bbf4
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x80], xmm0
mov qword [rbp - 0x70], r15
lea rcx, [rbp - 0x30]
call fcn.140096100
nop
mov r8, qword [rsp + 0x48]
test r8, r8
je 0x14009cd7d
mov rcx, qword [rsp + 0x58]
sub rcx, r8
mov rax, r14
imul rcx
add rdx, rcx
sar rdx, 6
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rdx, rdx, 0x78
mov rax, r8
cmp rdx, 0x1000
jb 0x14009cd67
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14009cd67
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r8
call fcn.14018bbf4
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x58], r15
test rsi, rsi
je 0x14009cdb2
sub r13, rsi
cmp r13, 0x1000
jb 0x14009cda6
add r13, 0x27
mov rcx, qword [rsi - 8]
sub rsi, rcx
lea rax, [rsi - 8]
cmp rax, 0x1f
ja 0x14009ce05
mov rsi, rcx
mov rdx, r13
mov rcx, rsi
call fcn.14018bbf4
nop
mov r8, qword [rbp - 0x48]
test r8, r8
je 0x14009ce15
mov rcx, qword [rbp - 0x58]
sub rcx, r8
mov rax, r14
imul rcx
add rdx, rcx
sar rdx, 6
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rdx, rdx, 0x78
mov rax, r8
cmp rdx, 0x1000
jb 0x14009ce0c
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14009ce0c
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
mov rcx, r8
call fcn.14018bbf4
nop
mov r8, qword [rsp + 0x68]
test r8, r8
je 0x14009ce80
mov rcx, qword [rsp + 0x78]
sub rcx, r8
mov rax, r14
imul rcx
add rdx, rcx
sar rdx, 6
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rdx, rdx, 0x78
mov rax, r8
cmp rdx, 0x1000
jb 0x14009ce6a
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14009ce6a
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r8
call fcn.14018bbf4
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x68], xmm0
mov qword [rsp + 0x78], r15
mov rcx, qword [rsp + 0x38]
mov rax, qword [rcx + 8]
mov qword [rax], r15
mov rcx, qword [rcx]
test rcx, rcx
je 0x14009ceb5
nop dword [rax]
nop dword [rax + rax]
mov rbx, qword [rcx]
mov edx, 0x88
call fcn.14018bbf4
mov rcx, rbx
test rbx, rbx
jne 0x14009cea0
mov edx, 0x88
mov rcx, qword [rsp + 0x38]
call fcn.14018bbf4
mov rax, rdi
mov rcx, qword [rbp + 0x14e0]
xor rcx, rsp
call fcn.14018bc90
mov rbx, qword [rsp + 0x1648]
add rsp, 0x15f0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea rdx, str.shuffle_sequence_ended
lea rcx, [rbp + 0x90]
call fcn.140019e20
lea rdx, [0x14023dac0]
lea rcx, [rbp + 0x90]
call sub.VCRUNTIME140.dll__CxxThrowException
nop
mov ecx, eax
call sub.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_
nop
call fcn.140021de0
nop
call fcn.140021de0
int3
mov ecx, eax
call sub.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_
int3
mov ecx, eax
call sub.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_
int3