Function at 0x180001dc0
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Print debug messages

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], r9
mov qword [rax + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x4f]
sub rsp, 0xd0
and dword [rsp + 0x30], 0
mov r14, r9
and dword [rbp + 0x57], 0
mov rsi, r8
mov rdi, rcx
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov r13, rax
lea r12, [0x18000ee80]
mov rax, qword [0x180014958]
test rax, rax
je 0x180001e37
mov r8, qword [rbp + 0x7f]
lea rdx, str.Hook_Inline__llx___llx___s__n
mov qword [rsp + 0x20], r8
mov r9, r14
mov r8, rsi
mov rcx, r12
call rax
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
cmp rdi, r13
jne 0x180001e41
mov r15, rsi
jmp 0x180001e70
lea rax, [rbp - 0x79]
mov r9d, 0x25
lea rdx, [rsi - 5]
mov qword [rsp + 0x20], rax
lea r8, [rbp - 0x69]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test eax, eax
jne 0x180001e6c
xor eax, eax
jmp 0x18000225d
lea r15, [rbp - 0x64]
cmp qword [rbp + 0x77], 4
jne 0x180001f74
mov eax, 0xff8b
cmp word [r15], ax
jne 0x180001f74
lea rbx, [rsi - 5]
mov r8d, 5
mov rdx, rbx
mov rcx, rdi
call fcn.180001d08
test eax, eax
je 0x180001f74
mov r9d, 0x40
lea rax, [rbp + 0x57]
mov rdx, rbx
mov qword [rsp + 0x20], rax
mov rcx, rdi
lea r8d, [r9 - 0x39]
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
test eax, eax
je 0x180001f74
mov eax, r14d
mov byte [r15 - 5], 0xe9
sub eax, esi
mov dword [r15 - 4], eax
mov eax, 0xf9eb
mov word [r15], ax
cmp rdi, r13
je 0x180001f0e
lea rax, [rbp - 0x79]
mov r9d, 7
lea r8, [rbp - 0x69]
mov qword [rsp + 0x20], rax
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov r14d, eax
jmp 0x180001f14
mov r14d, 1
mov r9d, dword [rbp + 0x57]
lea rax, [rbp + 0x57]
mov r8d, 7
mov qword [rsp + 0x20], rax
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FlushInstructionCache]
test r14d, r14d
je 0x180001f74
mov rax, qword [0x180014958]
test rax, rax
je 0x180001f6b
lea r8, [r15 + 2]
mov rcx, r12
lea rdx, str.Hook_Inline_did_hotpatch____context_llx_n
call rax
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea rax, [rsi + 2]
jmp 0x18000225d
mov rbx, r15
xor r12d, r12d
mov edx, 0x40
mov rcx, rbx
call fcn.180007000
add rbx, rax
add r12, rax
cmp r12, 6
jbe 0x180001f7a
mov rax, qword [0x180014958]
test rax, rax
je 0x180001fbf
mov r8d, r12d
lea rdx, str.dwOrigSize_detected:__d_n
lea rcx, [0x18000ee80]
call rax
lea rcx, [0x18000ee80]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov rbx, qword [rbp + 0x77]
mov r14, rsi
add ebx, 5
mov rcx, rdi
add ebx, r12d
mov eax, ebx
mov r8d, ebx
sub r14, rax
mov qword [rsp + 0x38], rax
mov rdx, r14
call fcn.180001d08
test eax, eax
je 0x180002089
lea rax, [rbp + 0x57]
mov r8d, ebx
mov r9d, 0x40
mov qword [rsp + 0x20], rax
mov rdx, r14
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
test eax, eax
je 0x180002089
mov rax, qword [0x180014958]
test rax, rax
je 0x180002037
lea rdx, str.Hook:_Enough_space_before_function_n
lea rcx, [0x18000ee80]
call rax
lea rcx, [0x18000ee80]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
cmp rdi, r13
mov r8d, r12d
lea rax, [rbp - 0x69]
mov ebx, r12d
cmove rax, r14
mov rdx, r15
mov rcx, rax
mov qword [rbp - 0x71], rax
call qword [sym.imp.KERNEL32.dll_RtlMoveMemory]
mov r8, qword [rbp - 0x71]
mov eax, esi
mov r15, qword [rbp + 0x77]
sub eax, r14d
sub eax, 5
lea rcx, [rbx + r8]
mov byte [rcx], 0xe9
mov dword [rcx + 1], eax
mov rax, qword [rbp + 0x6f]
cmp r15, 8
jne 0x180002116
mov qword [rcx + 5], rax
jmp 0x180002119
cmp rdi, r13
jne 0x1800020ca
mov rcx, qword [rbp + 0x5f]
mov r8d, ebx
mov rdx, rsi
call fcn.180001bc8
mov r14, rax
test rax, rax
je 0x1800020ca
mov r8, qword [rsp + 0x38]
lea rax, [rbp + 0x57]
mov r9d, 0x40
mov qword [rsp + 0x20], rax
mov rdx, r14
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
jmp 0x180002037
mov r8d, ebx
mov rdx, rsi
mov rcx, rdi
call fcn.180001a24
mov r14, rax
test rax, rax
jne 0x180002037
mov rax, qword [0x180014958]
test rax, rax
je 0x180001e65
lea rdx, str.Hook_FindAddr_failed._n
lea rcx, [0x18000ee80]
call rax
lea rcx, [0x18000ee80]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x180001e65
mov dword [rcx + 5], eax
mov rbx, qword [rsp + 0x38]
cmp rdi, r13
je 0x180002143
lea rax, [rbp - 0x79]
mov r9, rbx
mov rdx, r14
mov qword [rsp + 0x20], rax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x180001e65
mov r9d, dword [rbp + 0x57]
test r9d, r9d
je 0x180002164
lea rax, [rbp + 0x57]
mov r8, rbx
mov rdx, r14
mov qword [rsp + 0x20], rax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
mov ebx, 6
lea rax, [rsp + 0x30]
mov r8d, ebx
mov qword [rsp + 0x20], rax
mov rdx, rsi
mov rcx, rdi
lea r9d, [rbx + 0x3a]
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
test eax, eax
jne 0x1800021ba
cmp qword [0x180014958], 0
je 0x180001e65
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, eax
lea rdx, str.Hook_Inline_failed:_VirtualProtect_err_08X_n
lea rcx, [0x18000ee80]
call qword [0x180014958]
jmp 0x180002104
cmp rdi, r13
lea rcx, [rbp - 0x69]
cmove rcx, rsi
mov word [rcx], 0x25ff
cmp r15, 8
jne 0x1800021dc
mov eax, r14d
sub eax, esi
dec eax
add eax, r12d
jmp 0x1800021e4
lea eax, [r12 + 5]
add eax, r14d
mov dword [rcx + 2], eax
cmp rdi, r13
je 0x180002210
lea rax, [rbp - 0x79]
mov r9, rbx
lea r8, [rbp - 0x69]
mov qword [rsp + 0x20], rax
mov rdx, rsi
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x180001e65
mov r9d, dword [rsp + 0x30]
lea rax, [rsp + 0x30]
mov r8, rbx
mov qword [rsp + 0x20], rax
mov rdx, rsi
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
mov rax, qword [0x180014958]
test rax, rax
je 0x18000225a
mov r8, r14
lea rdx, str.Hook_Inline_context_llx_n
lea rcx, [0x18000ee80]
call rax
lea rcx, [0x18000ee80]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov rax, r14
mov rbx, qword [rsp + 0x120]
add rsp, 0xd0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret