Function at 0x140178c80
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push rbp
push rsi
sub rsp, 0x58
mov eax, 0x5a4d
mov rbp, rcx
cmp word [rcx], ax
je 0x140178ca3
mov eax, 0xc000012f
lfence
add rsp, 0x58
pop rsi
pop rbp
ret
mov ecx, dword [rcx + 0x3c]
lea eax, [rcx - 1]
cmp eax, 0x7ffffffd
ja 0x140178f49
cmp dword ds:[rcx + rbp], 0x4550
lea rsi, [rcx + rbp]
jne 0x140178f49
mov eax, dword [rsi + 0xb0]
test eax, eax
je 0x140178f3a
cmp dword ds:[rsi + 0xb4], 0
je 0x140178f3a
mov qword [rsp + 0x50], rdi
lea rdi, [rax + rbp]
mov qword [rsp + 0x48], r12
xor r12d, r12d
test byte [rsi + 0x16], 1
mov qword [rsp + 0x38], r14
mov r14d, r12d
je 0x140178d0c
xor eax, eax
jmp 0x140178e07
mov qword [rsp + 0x88], rbx
mov ebx, r12d
cmp r12w, word [rsi + 6]
jae 0x140178d89
nop
movzx ecx, word [rsi + 0x14]
lea r8, [rsp + 0x78]
add rcx, rsi
mov dword [rsp + 0x70], r12d
mov eax, ebx
mov r9d, 4
lea rdx, [rax + rax*4]
mov eax, dword [rcx + rdx*8 + 0x24]
add rax, rbp
mov qword [rsp + 0x80], rax
mov eax, dword [rcx + rdx*8 + 0x28]
lea rdx, [rsp + 0x80]
mov qword [rsp + 0x78], rax
mov rcx, 0xffffffffffffffff
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
call qword [sym.imp.ntdll.dll_NtProtectVirtualMemory]
mov r14d, eax
test eax, eax
js 0x140178dfc
movzx eax, word [rsi + 6]
inc ebx
cmp ebx, eax
jb 0x140178d20
mov qword [rsp + 0x30], r15
lfence
mov r15d, dword [rsi + 0xb4]
mov r11, rbp
sub r11, qword [rsi + 0x30]
add r15, rdi
cmp rdi, r15
jae 0x140178e4d
nop dword [rax + rax]
mov eax, dword [rdi + 4]
lea r10, [rdi + 8]
mov r9d, dword [rdi]
sub rax, 8
shr rax, 1
add r9, rbp
test eax, eax
je 0x140178e3e
mov ebx, eax
nop word [rax + rax]
movzx r8d, word ds:[r10]
mov eax, r8d
movzx edx, r8w
shr eax, 0xc
sub eax, 2
je 0x140178e29
sub eax, 1
je 0x140178e1d
cmp eax, 7
jne 0x140178e34
and r8d, 0xfff
add qword [r8 + r9], r11
jmp 0x140178e34
lfence
mov rbx, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x50]
mov r12, qword [rsp + 0x48]
mov r14, qword [rsp + 0x38]
add rsp, 0x58
pop rsi
pop rbp
ret
and edx, 0xfff
add dword [rdx + r9], r11d
jmp 0x140178e34
and edx, 0xfff
add word [rdx + r9], r11w
add r10, 2
sub rbx, 1
jne 0x140178dd0
mov eax, dword [rdi + 4]
add rdi, rax
cmp rdi, r15
jb 0x140178db0
mov ebx, r12d
cmp r12w, word [rsi + 6]
jae 0x140178f2d
mov edi, 8
mov qword [rsp + 0x40], r13
lea r15d, [rdi + 8]
lea r13d, [rdi + 0x18]
lea r10d, [rdi + 0x38]
movzx ecx, word ds:[rsi + 0x14]
add rcx, rsi
mov dword [rsp + 0x70], r12d
mov eax, ebx
lea rdx, [rax + rax*4]
mov eax, dword [rcx + rdx*8 + 0x24]
add rax, rbp
mov qword [rsp + 0x80], rax
mov eax, dword [rcx + rdx*8 + 0x28]
mov qword [rsp + 0x78], rax
mov r8d, dword [rcx + rdx*8 + 0x3c]
mov eax, r8d
mov r9d, r8d
lea rdx, [rsp + 0x80]
shr r9d, 0x1d
mov rcx, 0xffffffffffffffff
and r9d, 2
test r8d, r8d
cmovs r9d, edi
bt r8d, 0x1d
cmovb r9d, r15d
and eax, 0x60000000
cmp eax, 0x60000000
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
cmove r9d, r13d
and r8d, 0xa0000000
cmp r8d, 0xa0000000
lea r8, [rsp + 0x78]
cmove r9d, r10d
call qword [sym.imp.ntdll.dll_NtProtectVirtualMemory]
mov r14d, eax
test eax, eax
js 0x140178f28
movzx eax, word ds:[rsi + 6]
inc ebx
mov r10d, 0x40
cmp ebx, eax
jb 0x140178e71
mov r13, qword [rsp + 0x40]
mov r15, qword [rsp + 0x30]
mov eax, r14d
jmp 0x140178dff
lfence
mov eax, 0xc0000020
add rsp, 0x58
pop rsi
pop rbp
ret
mov eax, 0xc000007b
lfence
add rsp, 0x58
pop rsi
pop rbp
ret