Function at 0x140029600
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Parse pe header

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
sub rsp, 0x50
lea rax, [0x140264380]
mov qword [rsp + 0x30], 0x14
lea rdx, [rsp + 0x30]
mov qword [rsp + 0x38], rax
call fcn.1401776c0
xor ebp, ebp
mov rdi, rax
mov esi, 0x5a4d
test rax, rax
je 0x1400296f1
nop
cmp word [rax], si
jne 0x14002968a
mov ecx, dword [rax + 0x3c]
lea eax, [rcx - 1]
cmp eax, 0x7ffffffd
ja 0x14002968a
cmp dword [rcx + rdi], 0x4550
jne 0x14002968a
lea rdx, [rdi + 0x88]
add rdx, rcx
mov eax, dword [rdx]
test eax, eax
je 0x14002968a
cmp dword [rdx + 4], ebp
je 0x14002968a
lea r8, [rdi + rax]
mov word [rsp + 0x20], bp
lea r9, [0x140264398]
mov rcx, rdi
call fcn.140177a80
jmp 0x14002968d
mov rax, rbp
mov qword [0x1402c5338], rax
cmp word [rdi], si
jne 0x1400296e7
mov ecx, dword ds:[rdi + 0x3c]
lea eax, [rcx - 1]
cmp eax, 0x7ffffffd
ja 0x1400296e7
cmp dword [rcx + rdi], 0x4550
jne 0x1400296e7
lea rdx, ds:[rdi + 0x88]
add rdx, rcx
mov eax, dword [rdx]
test eax, eax
je 0x1400296e7
cmp dword [rdx + 4], ebp
je 0x1400296e7
lea r8, ds:[rdi + rax]
mov word [rsp + 0x20], bp
lea r9, [0x1402643a8]
mov rcx, rdi
call fcn.140177a80
jmp 0x1400296ea
mov rax, rbp
mov qword [0x1402c5320], rax
lea rax, str.uxtheme.dll
mov qword [rsp + 0x40], 0x16
lea rdx, [rsp + 0x40]
mov qword [rsp + 0x48], rax
call fcn.1401776c0
test rax, rax
je 0x140029771
cmp word [rax], si
jne 0x140029767
mov edx, dword [rax + 0x3c]
lea ecx, [rdx - 1]
cmp ecx, 0x7ffffffd
ja 0x140029767
cmp dword [rdx + rax], 0x4550
jne 0x140029767
add rdx, 0x88
add rdx, rax
mov ecx, dword [rdx]
test ecx, ecx
je 0x140029767
cmp dword [rdx + 4], ebp
je 0x140029767
lea r8, ds:[rax + rcx]
mov word [rsp + 0x20], bp
mov rcx, rax
lea r9, str.DrawThemeBackground
call fcn.140177a80
jmp 0x14002976a
mov rax, rbp
mov qword [0x1402c5310], rax
cmp dword [0x1402c82dc], ebp
mov rsi, 0xffffffffffffffff
je 0x140029796
mov ebx, 0xc0000476
lfence
mov ecx, ebx
call sym.SystemInformer.exe_QiGetNtMessage
jmp 0x140029912
mov rax, qword gs:[0x30]
mov ecx, dword [rax + 0x48]
xor eax, eax
lock cmpxchg dword [0x1402c82dc], ecx
je 0x1400297c5
mov ebx, 0xc0000476
lfence
mov ecx, ebx
call sym.SystemInformer.exe_QiGetNtMessage
nop dword [rax]
jmp 0x140029912
mov rdi, qword [0x1402c9048]
mov qword [0x1402c9058], rbp
mov qword [0x1402c9050], rbp
mov qword [0x1402c9040], rbp
test rdi, rdi
je 0x14002983e
nop word [rax + rax]
lea rax, [rsp + 0x70]
mov dword [rsp + 0x70], ebp
mov r9d, 0x40
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x78]
mov qword [rsp + 0x80], rdi
lea rdx, [rsp + 0x80]
mov qword [rsp + 0x78], 0x10000
mov rcx, rsi
call qword [sym.imp.ntdll.dll_NtProtectVirtualMemory]
mov ebx, eax
test eax, eax
js 0x1400298dc
mov rdi, qword [rdi + 8]
test rdi, rdi
jne 0x1400297f0
cmp byte [0x1402c3fc6], bpl
mov dword [0x1402c82d8], ebp
jne 0x140029856
cmp byte [0x1402c3fc7], bpl
je 0x14002988b
lea rdx, [0x140029380]
lea rcx, [0x1402c5310]
call fcn.140189f80
mov ebx, eax
test eax, eax
js 0x1400298b3
lea rdx, [0x140029580]
lea rcx, [0x1402c5320]
nop dword [rax]
call fcn.140189f80
mov ebx, eax
test eax, eax
js 0x1400298b3
lea rdx, [0x140029480]
lea rcx, [0x1402c5338]
call fcn.140189f80
mov ebx, eax
test eax, eax
js 0x1400298b3
call fcn.140189b60
mov ebx, eax
test eax, eax
jns 0x14002997b
cmp ebx, 0xc0000022
je 0x1400298ed
nop dword [rax + rax]
cmp ebx, 0xc0000005
je 0x1400298ed
mov eax, ebx
shr eax, 0x10
and eax, 0xfff
cmp eax, 7
jne 0x1400298e4
movzx eax, bx
jmp 0x1400298f8
mov dword [0x1402c82d8], eax
jmp 0x1400298b3
cmp eax, 0xb
jne 0x1400298fc
mov eax, ebx
jmp 0x1400298f8
lfence
mov ecx, ebx
call qword [sym.imp.ntdll.dll_RtlNtStatusToDosErrorNoTeb]
test eax, eax
jne 0x140029908
lfence
mov ecx, ebx
call sym.SystemInformer.exe_QiGetNtMessage
jmp 0x140029912
lfence
mov ecx, eax
call sym.SystemInformer.exe_QiGetWin32Message
xor ecx, ecx
lea r8, [0x140236d98]
lea r9, str.Unable_to_commit_detours_transaction.
mov rbx, rax
test rax, rax
je 0x140029971
lfence
lfence
mov rax, qword [rax + 8]
lea edx, [rcx + 0x20]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r8
mov r8d, 0xfffe
call sym.SystemInformer.exe_QiShowMessage2
lea rcx, [rbx - 0x10]
lock xadd dword [rcx + 8], esi
cmp esi, 1
jne 0x14002997b
lfence
mov rbx, qword [rsp + 0x88]
add rsp, 0x50
pop rdi
pop rsi
pop rbp
jmp fcn.14013fb00
mov edx, 0x10
call sym.SystemInformer.exe_QiShowMessage
mov rbx, qword [rsp + 0x88]
add rsp, 0x50
pop rdi
pop rsi
pop rbp
ret