Function at 0x140123864
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x3b8
movaps xmmword [rsp + 0x3a0], xmm6
mov rax, qword [0x1401c1028]
xor rax, rsp
mov qword [rsp + 0x398], rax
cmp qword [rcx + 0x18], 0
je 0x140123a84
mov rdi, rcx
lea rax, [rsp + 0xf8]
xorps xmm6, xmm6
movups xmmword [rax], xmm6
mov qword [rax - 8], rax
lea r14, [rcx + 8]
mov r12, qword [rcx + 0x10]
cmp r12, r14
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x68], r14
je 0x140123a8b
xor ebp, ebp
lea rdi, [rsp + 0x248]
lea rcx, [r12 + 0x10]
call fcn.1401244ac
test al, al
je 0x140123a5c
lea rbx, [r12 + 0x18]
mov rsi, qword [rsp + 0xf8]
test rsi, rsi
je 0x14012393b
lea r14, [rsi + 0x20]
mov rcx, rdi
mov rdx, rbx
mov r8, r14
call fcn.140096740
cmp byte [rsp + 0x248], 0
js 0x140123936
mov rcx, rdi
mov rdx, r14
mov r8, rbx
call fcn.140096740
cmp byte [rsp + 0x248], 0
jns 0x140123a1f
add rsi, 8
mov rsi, qword [rsi]
jmp 0x1401238f5
movzx eax, byte [r12 + 0x2f]
test al, al
jns 0x14012394a
mov rax, qword [r12 + 0x20]
lea r13, [rax*2 + 0x23]
and r13, 0xfffffffffffffff8
add r13, rbp
mov rax, qword [rsp + 0xf8]
lea rbp, [rsp + 0xf8]
mov r15, rbp
test rax, rax
je 0x1401239c6
lea r15, [rsp + 0xf8]
mov rbp, rax
lea r14, [rax + 0x20]
mov rcx, rdi
mov rdx, rbx
mov r8, r14
call fcn.140096740
cmp byte [rsp + 0x248], 0
js 0x1401239ba
mov rcx, rdi
mov rdx, r14
mov r8, rbx
call fcn.140096740
cmp byte [rsp + 0x248], 0
jns 0x140123a24
lea r15, [rbp + 8]
mov rax, qword [rbp + 8]
jmp 0x1401239c1
mov rax, qword [rbp]
mov r15, rbp
test rax, rax
jne 0x140123979
mov ecx, 0x38
call fcn.14014b4a8
mov r14, rax
lea rcx, [rax + 0x20]
mov rdx, rbx
call fcn.140083d6e
movups xmmword [r14], xmm6
mov qword [r14 + 0x10], rbp
mov qword [r15], r14
mov rax, qword [rsp + 0xf0]
mov rax, qword [rax]
test rax, rax
je 0x140123a05
mov qword [rsp + 0xf0], rax
mov r14, qword [r15]
mov rcx, qword [rsp + 0xf8]
mov rdx, r14
call fcn.14002cc68
inc qword [rsp + 0x100]
jmp 0x140123a2a
mov r13, rbp
jmp 0x140123a2a
cmp qword [r15], 0
je 0x1401239c6
movzx eax, byte [r12 + 0x47]
test al, al
mov r14, qword [rsp + 0x68]
jns 0x140123a3e
mov rax, qword [r12 + 0x38]
movzx ecx, byte [r12 + 0x5f]
test cl, cl
jns 0x140123a4d
mov rcx, qword [r12 + 0x50]
lea rbp, [rax + rcx]
add rbp, 0x21
and rbp, 0xfffffffffffffff8
add rbp, r13
mov r12, qword [r12 + 8]
cmp r12, r14
jne 0x1401238d6
mov rcx, qword [rsp + 0xf8]
lea r15, [rbp + 0x10]
test rbp, rbp
cmove r15, rbp
mov rdi, qword [rsp + 0x60]
jmp 0x140123a90
xor ebp, ebp
jmp 0x140124444
xor ecx, ecx
xor r15d, r15d
call fcn.1400967f0
mov rcx, r15
call fcn.14014b51c
mov rsi, rax
movabs rbx, 0xaaaaaaaaaaaaaaaa
test r15, r15
je 0x140123e3f
cmp byte [rdi + 0x20], 0
je 0x140123acb
mov rax, qword [rdi]
test rax, rax
je 0x140124498
mov rax, qword [rax + 0x40]
jmp 0x140123acd
xor eax, eax
lea r12, [rsi + 0x10]
mov qword [rsp + 0x58], rsi
mov qword [rsi + 8], rax
mov qword [rsp + 0x80], r15
lea r13, [r15 - 0x10]
mov r15, qword [rdi + 0x10]
movaps xmm6, xmmword [0x1401940a0]
lea rbp, [rsp + 0xf0]
mov qword [rsp + 0x50], r12
xor eax, eax
mov qword [rsp + 0x70], rax
cmp r15, r14
je 0x140123e2a
lea rcx, [r15 + 0x10]
call fcn.1401244ac
test al, al
jne 0x140123b21
mov r15, qword [r15 + 8]
jmp 0x140123b05
lea rdi, [r15 + 0x18]
mov qword [rsp + 0x100], rbx
movaps xmmword [rsp + 0xf0], xmm6
mov al, byte [r15 + 0x2f]
test al, al
js 0x140123b56
mov rcx, qword [rdi + 0x10]
mov qword [rsp + 0x100], rcx
movups xmm0, xmmword [rdi]
movaps xmmword [rsp + 0xf0], xmm0
jmp 0x140123b6a
mov rdx, qword [r15 + 0x18]
mov r8, qword [r15 + 0x20]
mov rcx, rbp
call fcn.140050bae
mov al, byte [r15 + 0x2f]
test al, al
jns 0x140123b74
mov rax, qword [r15 + 0x20]
jmp 0x140123b77
movzx eax, al
lea rax, [rax*2 + 0x23]
and rax, 0xfffffffffffffff8
mov rbx, r13
sub rbx, rax
jae 0x140123b92
xor esi, esi
jmp 0x140123de2
cmp dword [r15 + 0x10], 3
sete byte [r12 + 0x18]
mov qword [r12], rax
mov qword [rsp + 0x48], rax
mov qword [r12 + 8], rax
mov qword [r12 + 0x10], 0
movzx r8d, byte [r15 + 0x2f]
test r8b, r8b
jns 0x140123bc2
mov r8, qword [r15 + 0x20]
lea rdx, [r12 + 0x1a]
mov rcx, rdi
xor r9d, r9d
call fcn.140050f2c
movzx eax, byte [r15 + 0x2f]
test al, al
jns 0x140123bdf
mov rax, qword [r15 + 0x20]
add qword [rsp + 0x48], r12
mov word [r12 + rax*2 + 0x1a], 0
cmp r15, r14
je 0x140123dc7
mov rdi, r15
lea rcx, [rdi + 0x18]
movzx eax, byte [rsp + 0x107]
test al, al
cmovs rax, qword [rsp + 0xf8]
mov rdx, qword [rsp + 0xf0]
cmovns rdx, rbp
test rax, rax
js 0x140124477
je 0x140123c2f
test rdx, rdx
je 0x14012447a
movzx r8d, byte [rdi + 0x2f]
test r8b, r8b
jns 0x140123c41
mov r8, qword [rdi + 0x20]
mov rcx, qword [rdi + 0x18]
test r8, r8
js 0x14012447d
je 0x140123c55
test rcx, rcx
je 0x140124480
cmp r8, rax
jne 0x140123c93
test r8, r8
je 0x140123c76
xor r8d, r8d
movzx r9d, word [rcx + r8*2]
cmp r9w, word [rdx + r8*2]
jne 0x140123c93
inc r8
cmp rax, r8
jne 0x140123c62
mov rax, qword [rsp + 0x50]
cmp byte [rax + 0x18], 0
je 0x140123cc4
movzx eax, byte [rdi + 0x47]
test al, al
jns 0x140123c9c
mov rax, qword [rdi + 0x38]
mov rcx, qword [rdi + 0x30]
jmp 0x140123ca0
mov rdi, qword [rdi + 8]
jmp 0x140123dbc
lea rcx, [rdi + 0x30]
test rax, rax
js 0x140124483
je 0x140123cb4
test rcx, rcx
je 0x140124486
cmp rax, 1
jne 0x140123cbf
cmp byte [rcx], 0x40
je 0x140123cc4
call fcn.1400814b0
movzx r12d, byte [rdi + 0x47]
test r12b, r12b
jns 0x140123cd2
mov r12, qword [rdi + 0x38]
movzx r13d, byte [rdi + 0x5f]
test r13b, r13b
jns 0x140123ce0
mov r13, qword [rdi + 0x50]
lea rsi, [r12 + r13]
add rsi, 0x21
and rsi, 0xfffffffffffffff8
mov rbp, rbx
sub rbp, rsi
jb 0x140123e16
lea rax, [rdi + 0x48]
mov qword [rsp + 0x78], rax
lea rcx, [rdi + 0x30]
mov rbx, qword [rsp + 0x48]
mov qword [rbx], rsi
mov eax, dword [rdi + 0x10]
mov dword [rbx + 8], eax
mov eax, dword [rdi + 0x14]
mov dword [rbx + 0xc], eax
mov rax, qword [rdi + 0x60]
mov qword [rbx + 0x10], rax
lea rdx, [rbx + 0x18]
mov r8, r12
xor r9d, r9d
call fcn.14005030a
lea r14, [rbx + r12]
add r14, 0x18
lea rdx, [rbx + r12]
add rdx, 0x19
xor r12d, r12d
mov byte [rdx - 1], r12b
mov rcx, qword [rsp + 0x78]
mov r8, r13
xor r9d, r9d
call fcn.14005030a
mov byte [r13 + r14 + 1], r12b
mov rax, qword [rsp + 0x50]
inc qword [rax + 0x10]
add qword [rax], rsi
cmp r15, rdi
jne 0x140123d71
mov r15, qword [r15 + 8]
mov r14, qword [rsp + 0x68]
cmp rdi, r14
mov rax, qword [rsp + 0x48]
je 0x140124489
add rax, rsi
mov qword [rsp + 0x48], rax
mov rax, qword [rdi]
mov rsi, qword [rdi + 8]
mov qword [rax + 8], rsi
mov rax, qword [rdi]
mov qword [rsi], rax
mov rax, qword [rsp + 0x60]
dec qword [rax + 0x18]
mov rcx, rdi
call fcn.1401245f8
mov rbx, rbp
mov rdi, rsi
lea rbp, [rsp + 0xf0]
cmp rdi, r14
jne 0x140123bf8
jmp 0x140123dca
mov r15, r14
inc qword [rsp + 0x70]
mov sil, 1
mov rax, qword [rsp + 0x48]
mov r12, rax
mov r13, rbx
mov qword [rsp + 0x50], rax
cmp byte [rsp + 0x107], 0
mov rdi, qword [rsp + 0x60]
movabs rbx, 0xaaaaaaaaaaaaaaaa
jns 0x140123e08
mov rcx, qword [rsp + 0xf0]
call fcn.14014b4e4
test sil, sil
jne 0x140123b05
jmp 0x1401242ad
xor esi, esi
mov r12, qword [rsp + 0x48]
mov r13, rbx
lea rbp, [rsp + 0xf0]
jmp 0x140123de2
mov rsi, qword [rsp + 0x58]
mov rax, qword [rsp + 0x70]
mov qword [rsi], rax
mov r15, qword [rsp + 0x80]
mov qword [rsp + 0x88], rbx
mov rax, qword [rdi]
test rax, rax
je 0x14012448c
mov rcx, qword [rax]
lea r9, [rsp + 0x88]
mov rdx, rsi
mov r8, r15
call fcn.1401202bf
mov ebp, 0x27
test al, al
je 0x140124437
test r15, r15
je 0x140123edc
lea rax, [0x140139b30]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x28], 0
lea rbx, [0x1401aef40]
lea r8, str.NtMapViewOfSection
mov rcx, rdi
mov rdx, rbx
mov r9d, 1
call fcn.140123664
lea rax, [0x140139ba0]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x28], 1
lea r8, str.NtUnmapViewOfSection
mov rcx, rdi
mov rdx, rbx
mov r9d, 1
call fcn.140123664
jmp 0x140123ee7
cmp qword [rdi + 0x18], 0
je 0x140124405
mov rax, qword [rdi]
test rax, rax
je 0x14012448f
mov rbx, qword [rax]
mov dword [rsp + 0x20], 1
mov r8d, 0x10000
mov rcx, rbx
xor edx, edx
mov r9d, 0x2000
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov r15, qword [rdi + 0x18]
shl r15, 6
lea r14, [r15 + 0x60]
cmp r14, 0x10001
jae 0x140124492
mov r12, rax
mov edx, 0x10000
sub edx, r14d
xor ecx, ecx
call fcn.14006c6e0
mov ecx, 0x800
mov r8d, 0x1000
mov edx, 0x800
mov rdi, r8
shr rdx, 1
mov r8, rcx
cmp rcx, r14
mov rcx, rdx
jae 0x140123f50
neg edi
and edi, eax
mov eax, edi
and eax, 0xfffff000
add r12, rax
add r15, 0x105f
and r15, 0xfffffffffffff000
mov dword [rsp + 0x20], 0x40
mov rcx, rbx
mov rdx, r12
mov r8, r15
mov r9d, 0x1000
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
test rax, rax
je 0x140124495
mov r15, rax
lea rcx, [rsp + 0xf0]
mov r8d, 0x158
mov dl, 0xaa
call fcn.14014ead0
lea rbp, [0x1401aef40]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x1401242a3
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x58], rsi
movaps xmm6, xmmword [0x1401940a0]
movups xmmword [rsp + 0x348], xmm6
movups xmmword [rsp + 0x388], xmm6
movups xmmword [rsp + 0x378], xmm6
movups xmmword [rsp + 0x368], xmm6
movups xmmword [rsp + 0x358], xmm6
mov qword [rsp + 0x338], r14
mov dword [rsp + 0x350], 0
mov qword [rsp + 0x340], 0x20
mov r12, qword [rsp + 0x60]
mov rax, qword [r12]
test rax, rax
je 0x1401244a1
and edi, 0xfff
add r15, rdi
mov rsi, qword [rax]
mov ecx, 0x30
call fcn.14014b4a8
mov r13, rax
lea rax, method.std::__Cr::locale::facet.virtual_0
mov qword [r13], rax
mov qword [r13 + 0x18], 0
mov qword [r13 + 0x20], rsi
mov byte [r13 + 0x28], 1
mov dword [r13 + 0x2c], 0
xor ebx, ebx
lea rcx, [rsp + 0x248]
mov r8d, 0xf0
xor edx, edx
call fcn.14014ead0
mov rdi, qword [r12 + 0x10]
cmp rdi, qword [rsp + 0x68]
je 0x14012426e
lea rsi, [rsp + 0x98]
lea rax, [r15 + 0x20]
mov qword [rsp + 0x70], rax
mov r12d, 0x20
lea rcx, [rsp + 0x90]
mov qword [rsp + 0x50], r15
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0xe0], rax
movaps xmmword [rsp + 0xd0], xmm6
movaps xmmword [rsp + 0xc0], xmm6
movaps xmmword [rsp + 0xb0], xmm6
movaps xmmword [rsp + 0xa0], xmm6
movaps xmmword [rsp + 0x90], xmm6
lea rdx, [rdi + 0x10]
mov r15, rcx
call fcn.140123544
movzx edx, byte [rsp + 0xaf]
mov rax, rsi
test dl, dl
jns 0x140124130
mov rdx, qword [rsp + 0xa0]
mov rax, qword [rsp + 0x98]
test rdx, rdx
js 0x14012449e
je 0x140124144
test rax, rax
je 0x14012449b
mov ecx, 2
cmp rdx, 9
jne 0x1401242df
xor edx, edx
movzx r8d, word [rax + rdx]
cmp r8w, word [rdx + rbp]
jne 0x1401242df
add rdx, 2
cmp rdx, 0x12
jne 0x140124155
cmp dword [rsp + 0x90], 1
jne 0x1401242df
cmp byte [rsp + 0xdf], 0
lea rcx, [rsp + 0xc8]
jns 0x140124197
mov rcx, qword [rsp + 0xc8]
cmp byte [rsp + 0xc7], 0
lea r9, [rsp + 0xb0]
jns 0x1401241b1
mov r9, qword [rsp + 0xb0]
mov rdx, r14
sub rdx, r12
movsxd r8, ebx
shl r8, 6
mov r12, qword [rsp + 0x70]
add r8, r12
mov r10, qword [rsp + 0xe0]
mov rax, qword [r13]
mov rax, qword [rax + 8]
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x40], 0
mov rcx, r13
mov rdx, qword [rsp + 0x78]
xor r8d, r8d
call qword [0x1401b4100]
test eax, eax
js 0x1401242bc
movsxd rax, dword [rsp + 0x350]
shl rax, 6
add rax, r12
movsxd rcx, dword [rsp + 0x94]
mov qword [rsp + rcx*8 + 0x248], rax
mov ebx, dword [rsp + 0x350]
inc ebx
mov dword [rsp + 0x350], ebx
mov r12, qword [rsp + 0x340]
add r12, 0x40
mov qword [rsp + 0x340], r12
mov rcx, r15
call fcn.1401235ea
mov rcx, r15
mov rdi, qword [rdi + 8]
cmp rdi, qword [rsp + 0x68]
mov r15, qword [rsp + 0x50]
jne 0x1401240cb
lea r12, [rsp + 0x248]
lea rbx, [rsp + 0xf0]
lea rdx, [rsp + 0x248]
mov r8d, 0x150
mov rcx, rbx
call fcn.14014e420
mov qword [rbx + 0x150], 1
xor esi, esi
jmp 0x14012430f
mov ebp, 7
jmp 0x140124437
mov ebp, 0x26
mov rsi, qword [rsp + 0x58]
jmp 0x140124437
mov ebx, eax
call fcn.1400fbe7b
mov rax, qword [rax + 0xd8]
mov ecx, ebx
call qword [0x1401b4100]
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, 0x28
lea r12, [rsp + 0x248]
mov dword [rsp + 0xf0], ecx
mov qword [rsp + 0x240], 2
lea rcx, [rsp + 0x90]
call fcn.1401235ea
mov sil, 1
mov r15, qword [rsp + 0x50]
test r13, r13
mov rdi, qword [rsp + 0x60]
movabs rbx, 0xaaaaaaaaaaaaaaaa
je 0x140124338
mov rax, qword [r13]
mov rax, qword [rax]
mov rcx, r13
mov edx, 1
call qword [0x1401b4100]
test sil, sil
jne 0x1401243f5
mov qword [rsp + 0x248], rbx
lea r8, [rsp + 0x1e0]
mov qword [rsp + 0x20], r12
mov r9d, 0x20
mov rbx, qword [rsp + 0x48]
mov rcx, rbx
mov rdx, r15
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov ebp, 0x2a
test eax, eax
mov rsi, qword [rsp + 0x58]
je 0x140124401
cmp qword [rsp + 0x248], 0x20
jne 0x140124401
lea rax, [rsp + 0x90]
mov dword [rax], 0xaaaaaaaa
mov qword [rsp + 0x20], rax
mov rcx, rbx
mov rdx, r15
mov r8, r14
mov r9d, 0x20
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
mov rcx, qword [rdi]
test rcx, rcx
je 0x1401244a7
cmp qword [rsp + 0x240], 1
jne 0x140124472
mov qword [rsp + 0x20], 0xf0
lea rdx, str.g_originals
lea r9, [0x1401d9e00]
lea r8, [rsp + 0xf0]
call fcn.140100d60
mov ebp, eax
jmp 0x140124401
mov ebp, dword [rsp + 0xf0]
mov rsi, qword [rsp + 0x58]
test ebp, ebp
jne 0x140124437
mov rcx, qword [rdi]
test rcx, rcx
je 0x1401244a4
mov qword [rsp + 0x20], 8
lea rdx, str.g_interceptions
lea r9, [0x1401d9f38]
lea r8, [rsp + 0x88]
call fcn.140100d60
mov ebp, eax
test rsi, rsi
je 0x140124444
mov rcx, rsi
call fcn.14014b524
mov rcx, qword [rsp + 0x398]
xor rcx, rsp
call fcn.14014c9b0
mov eax, ebp
movaps xmm6, xmmword [rsp + 0x3a0]
add rsp, 0x3b8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.1400d5ef0
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3