Function at 0x180010820
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 0x18001089e
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 0x18001089e
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 0x180010a33
movdqa xmm0, xmmword [0x1800c2540]
xor ebx, ebx
movdqu xmmword [rbp - 0x3e], xmm0
mov ecx, ebx
mov dword [rbp - 0x2e], 0x3d2f0920
mov dword [rbp - 0x2a], 0x1003b29
nop dword [rax]
lea eax, [rcx + 0x49]
xor byte [rbp + rcx - 0x3e], al
inc rcx
cmp rcx, 0x16
jb 0x1800108c0
mov byte [rbp - 0x27], bl
mov rcx, rbx
mov dword [rbp + 0x20], 0x7f25233e
mov dword [rbp + 0x24], 0x1003b7f
nop dword [rax]
nop dword [rax + rax]
lea eax, [rcx + 0x49]
xor byte [rbp + rcx + 0x20], al
inc rcx
cmp rcx, 6
jb 0x1800108f0
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 0x180010a3d
movdqa xmm0, xmmword [0x1800c2540]
mov rcx, rbx
movdqu xmmword [rbp - 0x26], xmm0
mov dword [rbp - 0x16], 0x3d2f0920
mov dword [rbp - 0x12], 0x1003b29
nop dword [rax]
nop dword [rax + rax]
lea eax, [rcx + 0x49]
xor byte [rbp + rcx - 0x26], al
inc rcx
cmp rcx, 0x16
jb 0x180010950
mov byte [rbp - 0xf], bl
mov rcx, rbx
mov dword [rbp + 0x28], 0x3e2e393c
mov dword [rbp + 0x2c], 0x1007c7e
nop dword [rax]
nop dword [rax + rax]
lea eax, [rcx + 0x49]
xor byte [rbp + rcx + 0x28], al
inc rcx
cmp rcx, 6
jb 0x180010980
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 0x180010a3d
movdqa xmm0, xmmword [0x1800c2550]
mov rcx, rbx
movdqu xmmword [rbp - 0x50], xmm0
mov word [rbp - 0x40], 0x100
nop dword [rax]
lea eax, [rcx + 0x49]
xor byte [rbp + rcx - 0x50], al
inc rcx
cmp rcx, 0x10
jb 0x1800109d0
mov byte [rbp - 0x3f], bl
mov dword [rbp + 0x30], 0x3e2e393c
mov dword [rbp + 0x34], 0x1007c7e
nop dword [rax]
nop word [rax + rax]
lea eax, [rbx + 0x49]
xor byte [rbp + rbx + 0x30], al
inc rbx
cmp rbx, 6
jb 0x180010a00
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 0x180010a3d
xor al, al
add rsp, 0x70
pop rdi
pop rbx
pop rbp
ret
movups xmm0, xmmword [rdi]
movups xmmword [0x18043fa90], xmm0
movsd xmm1, qword [rdi + 0x10]
movsd qword [0x18043faa0], xmm1
mov eax, dword [rdi + 0x18]
mov dword [0x18043faa8], eax
movzx eax, word [rdi + 0x1c]
mov word [0x18043faac], ax
movups xmm0, xmmword [rcx]
movups xmmword [0x18043fab0], xmm0
movsd xmm1, qword [rcx + 0x10]
movsd qword [0x18043fac0], xmm1
mov eax, dword [rcx + 0x18]
mov dword [0x18043fac8], eax
movzx eax, word [rcx + 0x1c]
mov word [0x18043facc], ax
mov al, 1
add rsp, 0x70
pop rdi
pop rbx
pop rbp
ret