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

Disassembly:
push rbp
push rbx
mov rbp, rsp
sub rsp, 0x28
mov edx, 0x40
xor ecx, ecx
mov r9d, 4
mov r8d, 0x1000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rbx, rax
test rax, rax
je 0x14000ad9e
mov rcx, qword [0x14021d6d8]
mov qword [rsp + 0x50], rsi
xor esi, esi
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x20], r14
mov qword [rbp + 0x20], rcx
test cl, cl
jne 0x14000aa46
mov dword [rbp + 0x18], esi
mov ecx, dword [rbp + 0x18]
nop word [rax + rax]
movsxd rax, dword [rbp + 0x18]
mov edx, dword [rbp + 0x18]
sub edx, 0x7e
xor edx, dword [rbp + rax*4 + 0x24]
movsxd rax, dword [rbp + 0x18]
mov dword [rbp + rax*4 + 0x24], edx
mov eax, dword [rbp + 0x18]
inc eax
mov dword [rbp + 0x18], eax
mov eax, dword [rbp + 0x18]
cmp eax, 1
jb 0x14000aa20
mov eax, dword [rbp + 0x24]
lea r14, [0x140000000]
xor edx, edx
mov byte [rbp + 0x20], 1
mov r8d, 0x40
mov rcx, rbx
call qword [r14 + rax*8 + 0x25b430]
mov edx, 0xe8
xor ecx, ecx
mov r9d, 4
mov r8d, 0x1000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rdi, rax
test rax, rax
je 0x14000abf3
mov rcx, qword [0x14021d770]
mov qword [rbp + 0x20], rcx
test cl, cl
jne 0x14000aac7
mov dword [rbp + 0x18], esi
mov ecx, dword [rbp + 0x18]
movsxd rax, dword [rbp + 0x18]
mov edx, dword [rbp + 0x18]
add edx, 0x7e
xor edx, dword [rbp + rax*4 + 0x24]
movsxd rax, dword [rbp + 0x18]
mov dword [rbp + rax*4 + 0x24], edx
mov eax, dword [rbp + 0x18]
inc eax
mov dword [rbp + 0x18], eax
mov eax, dword [rbp + 0x18]
cmp eax, 1
jb 0x14000aaa1
mov eax, dword [rbp + 0x24]
xor edx, edx
mov r8d, 0xe8
mov byte [rbp + 0x20], 1
mov rcx, rdi
call qword [r14 + rax*8 + 0x25b480]
xor r9d, r9d
mov dword [rdi + 0x2c], 0x1388
xor r8d, r8d
mov edx, 1
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
xor r9d, r9d
xor r8d, r8d
mov edx, 1
mov qword [rdi + 0x30], rax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
lea rcx, [rdi + 0x40]
mov qword [rdi + 8], rsi
mov qword [rdi + 0x38], rax
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea rax, [0x1400099c0]
mov dword [rdi + 0xe0], esi
mov qword [rdi + 0x68], rax
lea rax, [0x1400099d0]
mov qword [rdi + 0x70], rax
lea rax, [0x1400099f0]
mov qword [rdi + 0x78], rax
lea rax, [method.CMFCAutoHideButton.virtual_56]
mov qword [rdi + 0x80], rax
lea rax, [0x140009a80]
mov qword [rdi + 0x88], rax
lea rax, [0x140009a90]
mov qword [rdi + 0x90], rax
lea rax, [0x140009aa0]
mov qword [rdi + 0x98], rax
lea rax, [0x140009ab0]
mov qword [rdi + 0xa0], rax
lea rax, [0x140009da0]
mov qword [rdi + 0xa8], rax
lea rax, [0x140009ec0]
mov qword [rdi + 0xb0], rax
lea rax, [0x140009d40]
mov qword [rdi + 0xd8], rax
lea rax, [0x140009ff0]
mov qword [rdi + 0xb8], rax
lea rax, [0x14000a140]
mov qword [rdi + 0xc0], rax
lea rax, [fcn.14000a1e0]
mov qword [rdi + 0xc8], rax
lea rax, [0x14000a280]
mov qword [rdi + 0xd0], rax
mov qword [rbx], rdi
call fcn.14000a7c0
mov qword [rbx + 8], rax
call fcn.140008af0
lea rcx, [rbx + 0x10]
mov qword [rbx + 0x38], rax
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov rax, qword [0x14021d750]
mov rdi, qword [rsp + 0x58]
mov qword [rbp + 0x20], rax
test al, al
jne 0x14000ac56
mov dword [rbp + 0x18], esi
mov eax, dword [rbp + 0x18]
nop dword [rax]
movsxd rax, dword [rbp + 0x18]
mov edx, dword [rbp + 0x18]
sub edx, 0x7d
xor edx, dword [rbp + rax*4 + 0x24]
movsxd rax, dword [rbp + 0x18]
mov dword [rbp + rax*4 + 0x24], edx
mov eax, dword [rbp + 0x18]
inc eax
mov dword [rbp + 0x18], eax
mov eax, dword [rbp + 0x18]
cmp eax, 1
jb 0x14000ac30
mov eax, dword [rbp + 0x24]
lea r8, [0x14000a340]
mov rcx, qword [rbx + 0x38]
mov edx, 1
mov byte [rbp + 0x20], 1
call qword [r14 + rax*8 + 0x25c240]
mov rax, qword [0x140227f28]
mov qword [rbp + 0x20], rax
test al, al
jne 0x14000acb6
mov dword [rbp + 0x18], esi
mov eax, dword [rbp + 0x18]
nop word [rax + rax]
movsxd rax, dword [rbp + 0x18]
mov edx, dword [rbp + 0x18]
sub edx, 0x7d
xor edx, dword [rbp + rax*4 + 0x24]
movsxd rax, dword [rbp + 0x18]
mov dword [rbp + rax*4 + 0x24], edx
mov eax, dword [rbp + 0x18]
inc eax
mov dword [rbp + 0x18], eax
mov eax, dword [rbp + 0x18]
cmp eax, 1
jb 0x14000ac90
mov eax, dword [rbp + 0x24]
lea r8, [0x14000a4e0]
mov rcx, qword [rbx + 0x38]
mov edx, 2
mov byte [rbp + 0x20], 1
call qword [r14 + rax*8 + 0x25c1a0]
mov rax, qword [0x140227e50]
mov qword [rbp + 0x20], rax
test al, al
jne 0x14000ad16
mov dword [rbp + 0x18], esi
mov eax, dword [rbp + 0x18]
nop word [rax + rax]
movsxd rax, dword [rbp + 0x18]
mov edx, dword [rbp + 0x18]
sub edx, 0x7c
xor edx, dword [rbp + rax*4 + 0x24]
movsxd rax, dword [rbp + 0x18]
mov dword [rbp + rax*4 + 0x24], edx
mov eax, dword [rbp + 0x18]
inc eax
mov dword [rbp + 0x18], eax
mov eax, dword [rbp + 0x18]
cmp eax, 1
jb 0x14000acf0
mov eax, dword [rbp + 0x24]
lea r8, [0x14000a620]
mov rcx, qword [rbx + 0x38]
mov edx, 3
mov byte [rbp + 0x20], 1
call qword [r14 + rax*8 + 0x25c1f0]
mov rax, qword [0x140227df8]
mov qword [rbp + 0x20], rax
test al, al
jne 0x14000ad76
mov dword [rbp + 0x18], esi
mov eax, dword [rbp + 0x18]
nop word [rax + rax]
movsxd rax, dword [rbp + 0x18]
mov edx, dword [rbp + 0x18]
sub edx, 0x7b
xor edx, dword [rbp + rax*4 + 0x24]
movsxd rax, dword [rbp + 0x18]
mov dword [rbp + rax*4 + 0x24], edx
mov eax, dword [rbp + 0x18]
inc eax
mov dword [rbp + 0x18], eax
mov eax, dword [rbp + 0x18]
cmp eax, 1
jb 0x14000ad50
mov eax, dword [rbp + 0x24]
lea r8, [0x14000a770]
mov rcx, qword [rbx + 0x38]
mov edx, 5
call qword [r14 + rax*8 + 0x25c060]
mov r14, qword [rsp + 0x20]
mov rax, rbx
mov rsi, qword [rsp + 0x50]
add rsp, 0x28
pop rbx
pop rbp
ret