Function at 0x180001120
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push rbp
push r14
push r15
sub rsp, 0x3b0
mov rax, qword [0x180005010]
xor rax, rsp
mov qword [rsp + 0x390], rax
mov r15, r8
mov r14, rdx
mov ebp, ecx
test ecx, ecx
jne 0x1800015d2
cmp dword [0x1800056b0], ecx
jne 0x1800015d2
xor r9d, r9d
mov qword [rsp + 0x3e8], rbx
lea r8, str.Progman
mov dword [0x1800056b0], 1
xor edx, edx
xor ecx, ecx
call qword [sym.imp.USER32.dll_FindWindowExW]
mov rcx, rax
mov qword [0x1800056b8], rax
xor edx, edx
call qword [sym.imp.USER32.dll_GetWindowThreadProcessId]
xor r8d, r8d
lea rdx, [sym.HookWindowsKey.dll_HookProgManThread]
mov r9d, eax
lea ecx, [rbp + 3]
call qword [sym.imp.USER32.dll_SetWindowsHookExW]
mov rax, qword gs:[0x58]
mov ecx, dword [0x180005610]
mov edx, 4
mov rbx, qword [rax + rcx*8]
add rbx, rdx
mov eax, dword [rbx]
cmp dword [0x1800057f4], eax
jle 0x180001425
lea rcx, [0x1800057f4]
call fcn.180001acc
cmp dword [0x1800057f4], 0xffffffff
jne 0x180001425
mov eax, dword [rbx]
cmp dword [0x1800056dc], eax
jle 0x1800013eb
lea rcx, [0x1800056dc]
call fcn.180001acc
cmp dword [0x1800056dc], 0xffffffff
jne 0x1800013eb
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x1800012e5
lea rdx, str.RtlGetVersion
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
test rax, rax
je 0x1800012e5
xor edx, edx
lea rcx, [rsp + 0x274]
mov r8d, 0x110
call sub.VCRUNTIME140.dll_memset
lea rcx, [rsp + 0x270]
mov dword [rsp + 0x270], 0x114
call rbx
test eax, eax
jne 0x1800012e5
mov edx, 2
lea rcx, [rsp + 0x30]
mov r8d, edx
lea rax, [rsp + 0x270]
nop word [rax + rax]
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
lea rax, [rax + 0x80]
movups xmmword [rcx - 0x80], xmm0
movups xmm0, xmmword [rax - 0x60]
movups xmmword [rcx - 0x70], xmm1
movups xmm1, xmmword [rax - 0x50]
movups xmmword [rcx - 0x60], xmm0
movups xmm0, xmmword [rax - 0x40]
movups xmmword [rcx - 0x50], xmm1
movups xmm1, xmmword [rax - 0x30]
movups xmmword [rcx - 0x40], xmm0
movups xmm0, xmmword [rax - 0x20]
movups xmmword [rcx - 0x30], xmm1
movups xmm1, xmmword [rax - 0x10]
movups xmmword [rcx - 0x20], xmm0
movups xmmword [rcx - 0x10], xmm1
sub r8, 1
jne 0x180001290
jmp 0x180001363
xor edx, edx
lea rcx, [rsp + 0x150]
mov r8d, 0x114
call sub.VCRUNTIME140.dll_memset
mov edx, 2
lea rcx, [rsp + 0x30]
mov r8d, edx
lea rax, [rsp + 0x150]
nop
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
lea rax, [rax + 0x80]
movups xmmword [rcx - 0x80], xmm0
movups xmm0, xmmword [rax - 0x60]
movups xmmword [rcx - 0x70], xmm1
movups xmm1, xmmword [rax - 0x50]
movups xmmword [rcx - 0x60], xmm0
movups xmm0, xmmword [rax - 0x40]
movups xmmword [rcx - 0x50], xmm1
movups xmm1, xmmword [rax - 0x30]
movups xmmword [rcx - 0x40], xmm0
movups xmm0, xmmword [rax - 0x20]
movups xmmword [rcx - 0x30], xmm1
movups xmm1, xmmword [rax - 0x10]
movups xmmword [rcx - 0x20], xmm0
movups xmmword [rcx - 0x10], xmm1
sub r8, 1
jne 0x180001310
movups xmm0, xmmword [rax]
mov eax, dword [rax + 0x10]
movups xmmword [rcx], xmm0
mov dword [rcx + 0x10], eax
lea rcx, [0x1800056e0]
lea rax, [rsp + 0x30]
nop dword [rax + rax]
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
lea rax, [rax + 0x80]
movups xmmword [rcx - 0x80], xmm0
movups xmm0, xmmword [rax - 0x60]
movups xmmword [rcx - 0x70], xmm1
movups xmm1, xmmword [rax - 0x50]
movups xmmword [rcx - 0x60], xmm0
movups xmm0, xmmword [rax - 0x40]
movups xmmword [rcx - 0x50], xmm1
movups xmm1, xmmword [rax - 0x30]
movups xmmword [rcx - 0x40], xmm0
movups xmm0, xmmword [rax - 0x20]
movups xmmword [rcx - 0x30], xmm1
movups xmm1, xmmword [rax - 0x10]
movups xmmword [rcx - 0x20], xmm0
movups xmmword [rcx - 0x10], xmm1
sub rdx, 1
jne 0x180001380
movups xmm0, xmmword [rax]
mov eax, dword [rax + 0x10]
movups xmmword [rcx], xmm0
mov dword [rcx + 0x10], eax
lea rcx, [0x1800056dc]
call fcn.180001a60
mov rax, qword [0x1800056e0]
shr rax, 0x20
cmp eax, 0xa
jb 0x180001411
mov rax, qword [0x1800056e8]
shr rax, 0x20
cmp eax, 0x55f0
jb 0x180001411
mov al, 1
jmp 0x180001413
xor al, al
lea rcx, [0x1800057f4]
mov byte [0x1800057f8], al
call fcn.180001a60
cmp byte [0x1800057f8], 0
je 0x1800015bd
xor ecx, ecx
mov qword [rsp + 0x3a0], rdi
mov edx, 0x1000
mov r8d, edx
lea r9d, [rcx + 0x40]
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
lea rcx, [0x1800033d8]
mov dword [0x1800056d0], 0
mov qword [0x1800056c8], rax
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
mov edx, 0xa6f
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, str.twinui.dll
mov qword [0x1800056c0], rax
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
cmp qword [0x1800056c0], 0
mov rdi, rax
je 0x1800015b5
test rax, rax
je 0x1800015b5
cmp dword [0x1800056d0], 0x80
jge 0x180001564
mov qword [rsp + 0x3a8], rsi
movsxd rsi, dword [rax + 0x3c]
cmp dword [rsi + rax], 0x4550
jne 0x18000155c
mov ebx, dword [rsi + rax + 0x90]
add rbx, rax
cmp dword [rbx], 0
je 0x180001511
mov ecx, dword [rbx + 0xc]
lea rdx, str.user32.dll
add rcx, rdi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
test eax, eax
je 0x180001502
add rbx, 0x14
cmp dword [rbx], 0
jne 0x1800014e0
jmp 0x180001511
mov edx, dword [rbx + 0x10]
test edx, edx
je 0x180001511
mov r8d, dword [rbx]
test r8d, r8d
jne 0x180001554
mov ebx, dword [rsi + rdi + 0xf0]
add rbx, rdi
cmp dword [rbx + 4], 0
je 0x18000155c
mov ecx, dword [rbx + 4]
lea rdx, str.user32.dll
add rcx, rdi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
test eax, eax
je 0x180001544
add rbx, 0x20
cmp dword [rbx + 4], 0
jne 0x180001521
jmp 0x18000155c
mov edx, dword [rbx + 0xc]
test edx, edx
je 0x18000155c
mov r8d, dword [rbx + 0x10]
test r8d, r8d
je 0x18000155c
mov rcx, rdi
call fcn.180001930
mov rsi, qword [rsp + 0x3a8]
xor edx, edx
lea rcx, str.ApplicationManager_ImmersiveShellWindow
call qword [sym.imp.USER32.dll_FindWindowW]
test rax, rax
je 0x1800015b5
xor edx, edx
mov rcx, rax
call qword [sym.imp.USER32.dll_GetWindowThreadProcessId]
xor edx, edx
mov r8d, eax
lea ecx, [rdx + 0x10]
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov rbx, rax
test rax, rax
je 0x1800015b5
xor r8d, r8d
lea rcx, [0x1800010f0]
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_QueueUserAPC]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rdi, qword [rsp + 0x3a0]
lea rcx, [0x180003470]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rbx, qword [rsp + 0x3e8]
mov r9, r15
mov r8, r14
mov edx, ebp
xor ecx, ecx
call qword [sym.imp.USER32.dll_CallNextHookEx]
mov rcx, qword [rsp + 0x390]
xor rcx, rsp
call fcn.180001a40
add rsp, 0x3b0
pop r15
pop r14
pop rbp
ret