Function at 0x180022bb0
Capabilities:
Encode data using xor
Link many functions at runtime

Disassembly:
push rbp
push rbx
push rdi
mov rbp, rsp
sub rsp, 0x70
lea rcx, str.win32u
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, str.NtUserSendInput
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rdi, rax
test rax, rax
jne 0x180022c2e
lea rcx, str.user32
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, str.NtUserSendInput
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rdi, rax
test rax, rax
jne 0x180022c2e
lea rcx, str.user32
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, str.SendInput
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rdi, rax
test rax, rax
je 0x180022dc3
movdqa xmm0, xmmword [0x1800be8b0]
xor ebx, ebx
movdqu xmmword [rbp - 0x3e], xmm0
mov ecx, ebx
mov dword [rbp - 0x2e], 0x6074ac87
mov dword [rbp - 0x2a], 0x1006676
nop dword [rax]
lea eax, [rcx - 0x12]
xor byte [rbp + rcx - 0x3e], al
inc rcx
cmp rcx, 0x16
jb 0x180022c50
mov byte [rbp - 0x27], bl
mov rcx, rbx
mov dword [rbp + 0x20], 0xc29e8699
mov dword [rbp + 0x24], 0x10086c0
nop dword [rax]
nop dword [rax + rax]
lea eax, [rcx - 0x12]
xor byte [rbp + rcx + 0x20], al
inc rcx
cmp rcx, 6
jb 0x180022c80
lea rcx, [rbp + 0x20]
mov byte [rbp + 0x27], bl
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, [rbp - 0x3e]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
test rax, rax
jne 0x180022dcd
movdqa xmm0, xmmword [0x1800be8b0]
mov rcx, rbx
movdqu xmmword [rbp - 0x26], xmm0
mov dword [rbp - 0x16], 0x6074ac87
mov dword [rbp - 0x12], 0x1006676
nop dword [rax]
nop dword [rax + rax]
lea eax, [rcx - 0x12]
xor byte [rbp + rcx - 0x26], al
inc rcx
cmp rcx, 0x16
jb 0x180022ce0
mov byte [rbp - 0xf], bl
mov rcx, rbx
mov dword [rbp + 0x28], 0x83959c9b
mov dword [rbp + 0x2c], 0x100c1c1
nop dword [rax]
nop dword [rax + rax]
lea eax, [rcx - 0x12]
xor byte [rbp + rcx + 0x28], al
inc rcx
cmp rcx, 6
jb 0x180022d10
lea rcx, [rbp + 0x28]
mov byte [rbp + 0x2f], bl
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, [rbp - 0x26]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
test rax, rax
jne 0x180022dcd
movdqa xmm0, xmmword [0x1800be8a0]
mov rcx, rbx
movdqu xmmword [rbp - 0x50], xmm0
mov word [rbp - 0x40], pe_nt_image_headers64
nop dword [rax]
lea eax, [rcx - 0x12]
xor byte [rbp + rcx - 0x50], al
inc rcx
cmp rcx, 0x10
jb 0x180022d60
mov byte [rbp - 0x3f], bl
mov dword [rbp + 0x30], 0x83959c9b
mov dword [rbp + 0x34], 0x100c1c1
nop dword [rax]
nop word [rax + rax]
lea eax, [rbx - 0x12]
xor byte [rbp + rbx + 0x30], al
inc rbx
cmp rbx, 6
jb 0x180022d90
lea rcx, [rbp + 0x30]
mov byte [rbp + 0x37], 0
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, [rbp - 0x50]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
test rax, rax
jne 0x180022dcd
xor al, al
add rsp, 0x70
pop rdi
pop rbx
pop rbp
ret
movups xmm0, xmmword [rdi]
movups xmmword [0x1800f8ba8], xmm0
movsd xmm1, qword [rdi + 0x10]
movsd qword [0x1800f8bb8], xmm1
mov eax, dword [rdi + 0x18]
mov dword [0x1800f8bc0], eax
movzx eax, word [rdi + 0x1c]
mov word [0x1800f8bc4], ax
movups xmm0, xmmword [rcx]
movups xmmword [0x1800f8bc8], xmm0
movsd xmm1, qword [rcx + 0x10]
movsd qword [0x1800f8bd8], xmm1
mov eax, dword [rcx + 0x18]
mov dword [0x1800f8be0], eax
movzx eax, word [rcx + 0x1c]
mov word [0x1800f8be4], ax
mov al, 1
add rsp, 0x70
pop rdi
pop rbx
pop rbp
ret