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

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
mov eax, 0x90a8
call fcn.140038c40
sub rsp, rax
lea rbp, [rsp + 0x80]
vmovapd xmmword [rbp + 0x9010], xmm8
vmovdqa xmmword [rbp + 0x9000], xmm7
vmovdqa xmmword [rbp + 0x8ff0], xmm6
mov qword [rbp + 0x8fe8], 0xfffffffffffffffe
vmovaps ymm0, ymmword [0x14003a600]
vmovaps ymmword [0x140049040], ymm0
vmovaps ymm0, ymmword [0x14003a620]
vmovaps ymmword [0x140049060], ymm0
vmovaps ymm0, ymmword [0x14003a640]
vmovaps ymmword [0x140049080], ymm0
vmovaps ymm0, ymmword [0x14003a660]
vmovaps ymmword [0x1400490a0], ymm0
vmovaps ymm0, ymmword [0x14003a680]
vmovaps ymmword [0x1400490c0], ymm0
vmovaps ymm0, ymmword [0x14003a6a0]
vmovaps ymmword [0x1400490e0], ymm0
vmovaps ymm0, ymmword [0x14003a6c0]
vmovaps ymmword [0x140049100], ymm0
vmovaps ymm0, ymmword [0x14003a6e0]
vmovaps ymmword [0x140049120], ymm0
vmovaps ymm0, ymmword [0x14003a700]
vmovaps ymmword [0x140049140], ymm0
vmovaps ymm0, ymmword [0x14003a720]
vmovaps ymmword [0x140049160], ymm0
vmovaps ymm0, ymmword [0x14003a740]
vmovaps ymmword [0x140049180], ymm0
vmovaps ymm0, ymmword [0x14003a760]
vmovaps ymmword [0x1400491a0], ymm0
vmovaps ymm0, ymmword [0x14003a780]
vmovaps ymmword [0x1400491c0], ymm0
vmovaps ymm0, ymmword [0x14003a7a0]
vmovaps ymmword [0x1400491e0], ymm0
vmovaps ymm0, ymmword [0x14003a7c0]
vmovaps ymmword [0x140049200], ymm0
vmovaps ymm0, ymmword [0x14003a7e0]
vmovaps ymmword [0x140049220], ymm0
mov qword [rbp + 0x8fa8], rdx
mov dword [rbp + 0x8fdc], ecx
xor eax, eax
lea r10, [0x14003b5d0]
jmp 0x140037244
mov rax, qword [rbp + 0x8fe0]
inc rax
cmp rax, 0x40
je 0x1400375f1
mov qword [rbp + 0x8fe0], rax
lea rcx, [0x14003cb30]
mov rbx, qword [rcx + rax*8]
xor r9d, r9d
popcnt r9, rbx
cmp r9, 0x1f
je 0x14003742b
mov eax, 1
shlx r14d, eax, r9d
cmp r14d, 2
cmovl r14d, eax
cmp r14d, 8
jae 0x140037290
xor r15d, r15d
jmp 0x140037331
mov r9d, r14d
and r9d, 0x7ffffff8
xor r15d, r15d
nop dword [rax]
pdep r11, r15, rbx
mov qword [rbp + r15*8 + 0xfa0], r11
lea r11, [r15 + 1]
pdep r11, r11, rbx
mov qword [rbp + r15*8 + 0xfa8], r11
lea r11, [r15 + 2]
pdep r11, r11, rbx
mov qword [rbp + r15*8 + 0xfb0], r11
lea r11, [r15 + 3]
pdep r11, r11, rbx
mov qword [rbp + r15*8 + 0xfb8], r11
lea r11, [r15 + 4]
pdep r11, r11, rbx
mov qword [rbp + r15*8 + 0xfc0], r11
lea r11, [r15 + 5]
pdep r11, r11, rbx
mov qword [rbp + r15*8 + 0xfc8], r11
lea r11, [r15 + 6]
pdep r11, r11, rbx
mov qword [rbp + r15*8 + 0xfd0], r11
lea r11, [r15 + 7]
pdep r11, r11, rbx
mov qword [rbp + r15*8 + 0xfd8], r11
add r15, 8
cmp r15, r9
jne 0x1400372a0
mov rax, qword [rbp + 0x8fe0]
mov r9d, r14d
and r9d, 7
je 0x140037365
nop word cs:[rax + rax]
pdep r11, r15, rbx
mov qword [rbp + r15*8 + 0xfa0], r11
inc r15
dec r9
jne 0x140037350
mov r15, rax
shl r15, 0xf
lea rcx, [0x140093bc8]
add r15, rcx
movsxd r9, eax
mov rcx, qword [r10 + r9*8]
mov rdx, qword [r10 + r9*8 + 0x200]
mov rsi, qword [r10 + r9*8 + 0x400]
mov rdi, qword [r10 + r9*8 + 0x600]
xor r9d, r9d
nop dword [rax + rax]
mov r11, qword [rbp + r9*8 + 0xfa0]
mov r12, rcx
and r12, r11
tzcnt r12, r12
mov r13, rdx
and r13, r11
lzcnt r13, r13
mov r8d, 0x3f
sub r8, r13
mov r13, rdi
and r13, r11
lzcnt r13, r13
mov eax, 0x3f
sub rax, r13
mov r13, rsi
and r13, r11
tzcnt r13, r13
mov r13, qword [r10 + r13*8 + 0x400]
xor r13, rsi
mov r12, qword [r10 + r12*8]
xor r12, rcx
or r12, r13
mov r8, qword [r10 + r8*8 + 0x200]
xor r8, rdx
or r12, r8
mov rax, qword [r10 + rax*8 + 0x600]
xor rax, rdi
or rax, r12
pext r8, r11, rbx
mov qword [r15 + r8*8], rax
inc r9
cmp r14, r9
jne 0x1400373a0
mov rax, qword [rbp + 0x8fe0]
lea rcx, [0x14003cd30]
mov rbx, qword [rcx + rax*8]
xor r9d, r9d
popcnt r9, rbx
cmp r9, 0x1f
je 0x140037230
mov eax, 1
shlx r14d, eax, r9d
cmp r14d, 2
cmovl r14d, eax
cmp r14d, 8
jae 0x140037470
xor r15d, r15d
jmp 0x1400374f5
mov r9d, r14d
and r9d, 0x7ffffff8
xor r15d, r15d
nop dword [rax]
pdep r11, r15, rbx
mov qword [rbp + r15*8 - 0x60], r11
lea r11, [r15 + 1]
pdep r11, r11, rbx
mov qword [rbp + r15*8 - 0x58], r11
lea r11, [r15 + 2]
pdep r11, r11, rbx
mov qword [rbp + r15*8 - 0x50], r11
lea r11, [r15 + 3]
pdep r11, r11, rbx
mov qword [rbp + r15*8 - 0x48], r11
lea r11, [r15 + 4]
pdep r11, r11, rbx
mov qword [rbp + r15*8 - 0x40], r11
lea r11, [r15 + 5]
pdep r11, r11, rbx
mov qword [rbp + r15*8 - 0x38], r11
lea r11, [r15 + 6]
pdep r11, r11, rbx
mov qword [rbp + r15*8 - 0x30], r11
lea r11, [r15 + 7]
pdep r11, r11, rbx
mov qword [rbp + r15*8 - 0x28], r11
add r15, 8
cmp r15, r9
jne 0x140037480
mov rax, qword [rbp + 0x8fe0]
mov r9d, r14d
and r9d, 7
je 0x140037522
nop word cs:[rax + rax]
pdep r11, r15, rbx
mov qword [rbp + r15*8 - 0x60], r11
inc r15
dec r9
jne 0x140037510
mov r15, rax
shl r15, 0xc
lea rcx, [0x140053bc8]
add r15, rcx
movsxd r9, eax
mov r12, qword [r10 + r9*8 + 0x800]
mov r13, qword [r10 + r9*8 + 0xa00]
mov rsi, qword [r10 + r9*8 + 0xc00]
mov rdi, qword [r10 + r9*8 + 0xe00]
xor r9d, r9d
nop dword [rax]
mov r11, qword [rbp + r9*8 - 0x60]
mov rax, r12
and rax, r11
tzcnt rax, rax
mov rcx, r13
and rcx, r11
lzcnt rcx, rcx
mov edx, 0x3f
sub rdx, rcx
mov rcx, rdi
and rcx, r11
lzcnt rcx, rcx
mov r8d, 0x3f
sub r8, rcx
mov rcx, rsi
and rcx, r11
tzcnt rcx, rcx
mov rcx, qword [r10 + rcx*8 + 0xc00]
xor rcx, rsi
mov rax, qword [r10 + rax*8 + 0x800]
xor rax, r12
or rax, rcx
mov rcx, qword [r10 + rdx*8 + 0xa00]
xor rcx, r13
or rax, rcx
mov rcx, qword [r10 + r8*8 + 0xe00]
xor rcx, rdi
or rcx, rax
pext rax, r11, rbx
mov qword [r15 + rax*8], rcx
inc r9
cmp r14, r9
jne 0x140037560
jmp 0x140037230
movabs rax, 0x5555555555555555
mov qword [rbp + 0x2328], rax
movabs rdx, 0xabbaba5ed
mov qword [rbp + 0xfa8], rdx
mov eax, 5
movabs rcx, 0x5851f42d4c957f2d
nop word cs:[rax + rax]
mov r8, rdx
shr r8, 0x3e
xor r8, rdx
imul r8, rcx
lea rdx, [rax + r8]
add rdx, 0xfffffffffffffffc
mov qword [rbp + rax*8 + 0xf88], rdx
mov r8, rdx
shr r8, 0x3e
xor r8, rdx
imul r8, rcx
lea rdx, [rax + r8]
add rdx, 0xfffffffffffffffd
mov qword [rbp + rax*8 + 0xf90], rdx
mov r8, rdx
shr r8, 0x3e
xor r8, rdx
imul r8, rcx
lea rdx, [rax + r8]
add rdx, 0xfffffffffffffffe
mov qword [rbp + rax*8 + 0xf98], rdx
cmp rax, 0x139
je 0x1400376b8
mov r8, rdx
shr r8, 0x3e
xor r8, rdx
imul r8, rcx
lea rdx, [rax + r8]
dec rdx
mov qword [rbp + rax*8 + 0xfa0], rdx
add rax, 4
jmp 0x140037630
mov eax, 2
vpbroadcastq ymm4, qword [rbp + 0xfa8]
vpbroadcastq ymm0, qword [0x14003a800]
vpbroadcastq ymm1, qword [0x14003a808]
vpxor xmm3, xmm3, xmm3
vpbroadcastq ymm2, qword [0x14003a810]
nop word cs:[rax + rax]
vmovdqu ymm5, ymmword [rbp + rax*8 + 0xfa0]
vpblendd ymm4, ymm5, ymm4, 0xc0
vmovdqu ymm6, ymmword [rbp + rax*8 + 0xfc0]
vpermq ymm4, ymm4, 0x93
vpand ymm4, ymm4, ymm0
vpand ymm7, ymm5, ymm1
vpor ymm4, ymm7, ymm4
vpsllq ymm7, ymm5, 0x3f
vpcmpgtq ymm7, ymm3, ymm7
vpand ymm7, ymm7, ymm2
vpxor ymm7, ymm7, ymmword [rbp + rax*8 + 0x1478]
vpsrlq ymm4, ymm4, 1
vpxor ymm4, ymm7, ymm4
vmovdqu ymmword [rbp + rax*8 + 0x1958], ymm4
vpblendd ymm4, ymm6, ymm5, 0xc0
vpermq ymm4, ymm4, 0x93
vpand ymm4, ymm4, ymm0
vpand ymm5, ymm6, ymm1
vpor ymm4, ymm5, ymm4
vpsrlq ymm4, ymm4, 1
vpsllq ymm5, ymm6, 0x3f
vpcmpgtq ymm5, ymm3, ymm5
vpand ymm5, ymm5, ymm2
vpxor ymm5, ymm5, ymmword [rbp + rax*8 + 0x1498]
vpxor ymm4, ymm5, ymm4
vmovdqu ymmword [rbp + rax*8 + 0x1978], ymm4
add rax, 8
vmovdqa ymm4, ymm6
cmp rax, 0x13a
jne 0x1400376f0
mov dword [rbp + 0xfa0], 0x139
mov rax, qword [rbp + 0x1968]
mov rcx, rax
shr rcx, 0x1d
and rcx, qword [rbp + 0x2328]
xor rcx, rax
mov rdx, rcx
shl rdx, 0x11
movabs rax, 0x71d67fffeda60000
and rdx, rax
xor rdx, rcx
mov ecx, edx
and ecx, 0x7ffbf77
shl rcx, 0x25
xor rcx, rdx
mov rdx, rcx
shr rdx, 0x2b
xor rdx, rcx
mov qword [0x140049020], rdx
mov r11d, 0x139
xor ecx, ecx
lea rdx, [0x140047420]
vpxor xmm3, xmm3, xmm3
movabs r8, 0xb5026f5aa96619e9
jmp 0x14003781d
inc rcx
cmp rcx, 0x40
je 0x140037be3
imul r9, rcx, 0x70
add r9, rdx
xor r10d, r10d
jmp 0x140037888
mov r11d, 0x138
mov esi, r11d
inc r11d
mov rsi, qword [rbp + rsi*8 + 0xfa8]
mov rdi, rsi
shr rdi, 0x1d
and rdi, qword [rbp + 0x2328]
xor rdi, rsi
mov rsi, rdi
shl rsi, 0x11
and rsi, rax
xor rsi, rdi
mov edi, esi
and edi, 0x7ffbf77
shl rdi, 0x25
xor rdi, rsi
mov rsi, rdi
shr rsi, 0x2b
xor rsi, rdi
mov qword [r9 + r10*8], rsi
inc r10
cmp r10, 0xe
je 0x140037810
cmp r11d, 0x138
jne 0x140037960
mov r11, 0xfffffffffffff640
vpbroadcastq ymm4, qword [rbp + 0xfa8]
nop word cs:[rax + rax]
vmovdqu ymm5, ymmword [rbp + r11 + 0x1970]
vpblendd ymm4, ymm5, ymm4, 0xc0
vmovdqu ymm6, ymmword [rbp + r11 + 0x1990]
vpermq ymm4, ymm4, 0x93
vpand ymm4, ymm4, ymm0
vpand ymm7, ymm5, ymm1
vpor ymm4, ymm7, ymm4
vpsllq ymm7, ymm5, 0x3f
vpcmpgtq ymm7, ymm3, ymm7
vpand ymm7, ymm7, ymm2
vpxor ymm7, ymm7, ymmword [rbp + r11 + 0x1e48]
vpsrlq ymm4, ymm4, 1
vpxor ymm4, ymm7, ymm4
vmovdqu ymmword [rbp + r11 + 0x2328], ymm4
vpblendd ymm4, ymm6, ymm5, 0xc0
vpermq ymm4, ymm4, 0x93
vpand ymm4, ymm4, ymm0
vpand ymm5, ymm6, ymm1
vpor ymm4, ymm5, ymm4
vpsrlq ymm4, ymm4, 1
vpsllq ymm5, ymm6, 0x3f
vpcmpgtq ymm5, ymm3, ymm5
vpand ymm5, ymm5, ymm2
vpxor ymm5, ymm5, ymmword [rbp + r11 + 0x1e68]
vpxor ymm4, ymm5, ymm4
vmovdqu ymmword [rbp + r11 + 0x2348], ymm4
vmovdqa ymm4, ymm6
add r11, 0x40
jne 0x1400378b0
jmp 0x140037830
cmp r11d, 0x270
jb 0x140037836
mov r11, 0xffffffffffffff68
vpbroadcastq ymm4, qword [rbp + 0x1968]
nop dword [rax]
vmovdqu ymm5, ymmword [rbp + r11*8 + 0x1e30]
vpblendd ymm4, ymm5, ymm4, 0xc0
vpermq ymm4, ymm4, 0x93
vpand ymm4, ymm4, ymm0
vpand ymm6, ymm5, ymm1
vpor ymm4, ymm6, ymm4
vpsrlq ymm4, ymm4, 1
vpsllq ymm6, ymm5, 0x3f
vpcmpgtq ymm6, ymm3, ymm6
vpand ymm6, ymm6, ymm2
vpxor ymm6, ymm6, ymmword [rbp + r11*8 + 0x2308]
vpxor ymm4, ymm6, ymm4
vmovdqu ymmword [rbp + r11*8 + 0x1468], ymm4
test r11, r11
je 0x140037a30
vmovdqu ymm4, ymmword [rbp + r11*8 + 0x1e50]
vpblendd ymm5, ymm4, ymm5, 0xc0
vpermq ymm5, ymm5, 0x93
vpand ymm5, ymm5, ymm0
vpand ymm6, ymm4, ymm1
vpor ymm5, ymm6, ymm5
vpsrlq ymm5, ymm5, 1
vpsllq ymm6, ymm4, 0x3f
vpcmpgtq ymm6, ymm3, ymm6
vpand ymm6, ymm6, ymm2
vpxor ymm6, ymm6, ymmword [rbp + r11*8 + 0x2328]
vpxor ymm5, ymm6, ymm5
vmovdqu ymmword [rbp + r11*8 + 0x1488], ymm5
add r11, 8
jmp 0x140037980
vpbroadcastq ymm4, qword [rbp + 0x1e48]
xor r11d, r11d
nop dword [rax]
vmovdqu ymm5, ymmword [rbp + r11*8 + 0x1e50]
vpblendd ymm6, ymm5, ymm4, 0xc0
vmovdqu ymm4, ymmword [rbp + r11*8 + 0x1e70]
vpermq ymm6, ymm6, 0x93
vpand ymm6, ymm6, ymm0
vpand ymm7, ymm5, ymm1
vpor ymm6, ymm7, ymm6
vpsllq ymm7, ymm5, 0x3f
vpcmpgtq ymm7, ymm3, ymm7
vpand ymm7, ymm7, ymm2
vpxor ymm7, ymm7, ymmword [rbp + r11*8 + 0xfa8]
vpsrlq ymm6, ymm6, 1
vpxor ymm6, ymm7, ymm6
vmovdqu ymmword [rbp + r11*8 + 0x1488], ymm6
vpblendd ymm5, ymm4, ymm5, 0xc0
vpermq ymm5, ymm5, 0x93
vpand ymm5, ymm5, ymm0
vpand ymm6, ymm4, ymm1
vpor ymm5, ymm6, ymm5
vpsrlq ymm5, ymm5, 1
vpsllq ymm6, ymm4, 0x3f
vpcmpgtq ymm6, ymm3, ymm6
vpand ymm6, ymm6, ymm2
vpxor ymm6, ymm6, ymmword [rbp + r11*8 + 0xfc8]
vpxor ymm5, ymm6, ymm5
vmovdqu ymmword [rbp + r11*8 + 0x14a8], ymm5
add r11, 8
cmp r11, 0x98
jne 0x140037a40
vextracti128 xmm4, ymm4, 1
vpextrq rsi, xmm4, 1
and rsi, 0xffffffff80000000
mov r11, qword [rbp + 0x2310]
mov edi, r11d
and edi, 0x7ffffffe
or rdi, rsi
mov esi, r11d
and esi, 1
neg rsi
and rsi, r8
xor rsi, qword [rbp + 0x1468]
shr rdi, 1
xor rsi, rdi
mov qword [rbp + 0x1948], rsi
and r11, 0xffffffff80000000
mov rsi, qword [rbp + 0x2318]
mov edi, esi
and edi, 0x7ffffffe
or rdi, r11
mov r11d, esi
and r11d, 1
neg r11
and r11, r8
xor r11, qword [rbp + 0x1470]
shr rdi, 1
xor r11, rdi
mov qword [rbp + 0x1950], r11
and rsi, 0xffffffff80000000
mov r11, qword [rbp + 0x2320]
mov edi, r11d
and edi, 0x7ffffffe
or rdi, rsi
mov esi, r11d
and esi, 1
neg rsi
and rsi, r8
xor rsi, qword [rbp + 0x1478]
shr rdi, 1
xor rsi, rdi
mov qword [rbp + 0x1958], rsi
and r11, 0xffffffff80000000
mov rsi, qword [rbp + 0xfa8]
mov edi, esi
and edi, 0x7ffffffe
or rdi, r11
and esi, 1
neg rsi
and rsi, r8
xor rsi, qword [rbp + 0x1480]
shr rdi, 1
xor rsi, rdi
mov qword [rbp + 0x1960], rsi
xor r11d, r11d
jmp 0x140037836
lea rsi, [0x140049244]
xor edi, edi
nop dword [rax]
vcvtsi2sd xmm6, xmm9, edi
xor ebx, ebx
nop word cs:[rax + rax]
vmovsd xmm8, qword [0x140053700]
vmovapd xmm0, xmm6
vzeroupper
call sub.api_ms_win_crt_math_l1_1_0.dll_log
vmovapd xmm7, xmm0
vcvtsi2sd xmm0, xmm9, ebx
call sub.api_ms_win_crt_math_l1_1_0.dll_log
vmulsd xmm0, xmm7, xmm0
vfmadd132sd xmm0, xmm8, qword [0x140053738]
vcvttsd2si eax, xmm0
mov byte [rsi + rbx], al
inc rbx
cmp rbx, 0xda
jne 0x140037c00
inc rdi
add rsi, 0xda
cmp rdi, 0x32
jne 0x140037bf0
call fcn.14002f830
mov rax, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
or dword [rax + rcx + 0x18], 0x4000
cmp dword [rbp + 0x8fdc], 2
jl 0x140037de1
mov rax, qword [rbp + 0x8fa8]
mov rdi, qword [rax + 8]
vxorpd xmm0, xmm0, xmm0
vmovupd ymmword [rbp + 0xfa0], ymm0
mov rcx, rdi
vzeroupper
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
test rax, rax
js 0x140037f93
mov rsi, rax
cmp rax, 0xf
ja 0x140037cdd
mov qword [rbp + 0xfb0], rsi
mov qword [rbp + 0xfb8], 0xf
lea rcx, [rbp + 0xfa0]
mov rdx, rdi
mov r8, rsi
call sub.VCRUNTIME140.dll_memcpy
add rsi, rbp
add rsi, 0xfa0
jmp 0x140037d44
mov rax, rsi
or rax, 0xf
cmp rax, 0x17
mov r14d, 0x16
cmovae r14, rax
cmp r14, 0xfff
jb 0x140037d12
lea rcx, [r14 + 0x28]
call fcn.140038090
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x140037d1e
lea rcx, [r14 + 1]
call fcn.140038090
mov rbx, rax
mov qword [rbp + 0xfa0], rbx
mov qword [rbp + 0xfb0], rsi
mov qword [rbp + 0xfb8], r14
mov rcx, rbx
mov rdx, rdi
mov r8, rsi
call sub.VCRUNTIME140.dll_memcpy
add rsi, rbx
mov byte [rsi], 0
mov rax, qword [rbp + 0xfb8]
cmp qword [rbp + 0xfb0], 5
jne 0x140037d67
cmp rax, 0x10
jb 0x140037d83
mov rcx, qword [rbp + 0xfa0]
jmp 0x140037d8a
xor esi, esi
cmp rax, 0x10
jae 0x140037da4
test sil, sil
je 0x140037de1
mov ecx, 0xe
call fcn.14002ffe0
jmp 0x140037f5d
lea rcx, [rbp + 0xfa0]
mov edx, 0x636e6562
xor edx, dword [rcx]
movzx ecx, byte [rcx + 4]
xor ecx, 0x68
or ecx, edx
sete sil
cmp rax, 0x10
jb 0x140037d6f
mov rcx, qword [rbp + 0xfa0]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140037dd7
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140037f9e
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.140038120
test sil, sil
jne 0x140037d74
vxorpd xmm0, xmm0, xmm0
vmovapd xmmword [rbp + 0xfa0], xmm0
mov qword [rbp + 0xfb0], 0
mov qword [rbp + 0xfb8], 0xf
mov rsi, qword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
lea rdi, [rbp + 0xfa0]
lea rbx, [rbp + 0x8fb0]
mov r12d, 0x16
jmp 0x140037e5f
cmp rax, 0x10
cmovb r14, rdi
cmp dword [r14], 0x74697571
je 0x140037f17
mov qword [rbp + 0x8fc0], r15
mov qword [rbp + 0x8fc8], 0xf
vmovupd xmm0, xmmword [r14]
vmovapd xmmword [rbp + 0x8fb0], xmm0
mov rcx, rbx
vzeroupper
call fcn.140031b10
mov rcx, rsi
mov rdx, rdi
mov r8b, 0xa
call fcn.140006f00
mov r14, qword [rbp + 0xfa0]
mov r15, qword [rbp + 0xfb0]
mov rax, qword [rbp + 0xfb8]
cmp r15, 4
je 0x140037e20
vxorpd xmm0, xmm0, xmm0
vmovupd ymmword [rbp + 0x8fb0], ymm0
cmp rax, 0x10
cmovb r14, rdi
test r15, r15
js 0x140037f8b
cmp r15, 0xf
jbe 0x140037e35
mov r13, r15
or r13, 0xf
cmp r13, 0x17
cmovb r13, r12
cmp r13, 0xfff
jb 0x140037ee0
lea rcx, [r13 + 0x28]
vzeroupper
call fcn.140038090
mov rcx, rax
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x140037eec
lea rcx, [r13 + 1]
vzeroupper
call fcn.140038090
mov qword [rbp + 0x8fb0], rax
mov qword [rbp + 0x8fc0], r15
mov qword [rbp + 0x8fc8], r13
inc r15
mov rcx, rax
mov rdx, r14
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
jmp 0x140037e54
call fcn.140031a10
mov rax, qword [rbp + 0xfb8]
cmp rax, 0x10
jb 0x140037f5d
mov rcx, qword [rbp + 0xfa0]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140037f58
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140037f98
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.140038120
xor eax, eax
vmovaps xmm6, xmmword [rbp + 0x8ff0]
vmovaps xmm7, xmmword [rbp + 0x9000]
vmovaps xmm8, xmmword [rbp + 0x9010]
add rsp, 0x90a8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
vzeroupper
call fcn.140001a70
call fcn.140001a70
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3