Function at 0x10008000
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x40
mov eax, dword [0x100a801c]
xor eax, esp
mov dword [esp + 0x3c], eax
push str.win32u.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x1000803f
push str.NtUserSendInput
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x100a9c34], eax
test eax, eax
jne 0x10008056
push str.____NtUserSendInput_is_null
jmp 0x10008044
push str.____win32u.dll_is_null
push 0x10070cd4
push 0x100a8be0
call fcn.10003520
add esp, 0xc
push dword [esp + 0x38]
call fcn.10008bb0
add esp, 4
push dword [esp + 0x38]
call fcn.10008c40
add esp, 4
push dword [esp + 0x38]
call fcn.10008cd0
mov eax, dword [0x100a9b7c]
add esp, 4
test eax, eax
je 0x100080d1
cmp dword [eax], 2
jne 0x100080d1
mov eax, dword [0x100a9c34]
test eax, eax
je 0x100080d1
cmp byte [eax], 0xe9
jne 0x100080d1
lea ecx, [esp + 0x38]
push ecx
push 0x40
push 5
push eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov ecx, dword [0x100a9c34]
mov eax, dword [ecx + 1]
mov dword [0x100a9bf0], eax
mov eax, dword [0x100a88dc]
mov byte [ecx], 0xb8
mov dword [ecx + 1], eax
lea eax, [esp + 0x38]
push eax
push dword [esp + 0x3c]
push 5
push ecx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
call fcn.10003230
call fcn.1000ccc0
mov eax, dword [0x100a9eec]
test eax, eax
je 0x100081c1
cmp dword [0x100a9efc], 0
je 0x100081c1
cmp byte [0x100a9b61], 0
xorps xmm1, xmm1
mov dword [esp], eax
mov dword [esp + 4], 0x1000df10
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0xa
movups xmm0, xmmword [esp]
mov byte [esp + 0x20], 0
mov eax, dword [esp + 0x20]
mov dword [0x100aa2a8], eax
mov eax, dword [0x100a9ef4]
mov dword [esp], eax
mov dword [esp + 4], 0x1000df40
mov dword [esp + 8], 0
mov dword [esp + 0xc], 6
movups xmmword [0x100aa288], xmm0
mov byte [esp + 0x20], 0
movups xmm0, xmmword [esp]
mov eax, dword [esp + 0x20]
mov dword [0x100aa284], eax
mov eax, dword [0x100a9ef0]
mov dword [esp], eax
movups xmmword [0x100aa264], xmm0
mov dword [esp + 4], 0x1000df50
mov dword [esp + 8], 0
mov dword [esp + 0xc], 6
movups xmm0, xmmword [esp]
mov byte [esp + 0x20], 0
mov eax, dword [esp + 0x20]
movups xmmword [0x100aa298], xmm1
mov dword [0x100aa260], eax
movups xmmword [0x100aa274], xmm1
movups xmmword [0x100aa240], xmm0
movups xmmword [0x100aa250], xmm1
je 0x100081c1
call fcn.1000dd60
mov eax, dword [0x100a9ee4]
test eax, eax
je 0x10008216
cmp byte [0x100a9b63], 0
xorps xmm1, xmm1
mov dword [esp], eax
mov dword [esp + 4], 0x1000dd50
mov dword [esp + 8], 0
mov dword [esp + 0xc], 5
movups xmm0, xmmword [esp]
mov byte [esp + 0x20], 0
mov eax, dword [esp + 0x20]
movups xmmword [0x100aa21c], xmm0
mov dword [0x100aa23c], eax
movups xmmword [0x100aa22c], xmm1
je 0x10008216
call fcn.1000dca0
call fcn.1000d610
mov ecx, dword [0x100a9edc]
test ecx, ecx
je 0x1000829d
cmp byte [0x100a9b6a], 0
mov edx, 7
mov dword [esp], ecx
xorps xmm1, xmm1
mov dword [esp + 4], 0x1000dc80
mov dword [esp + 8], 0
mov dword [esp + 0xc], edx
movups xmm0, xmmword [esp]
mov byte [esp + 0x20], 0
mov eax, dword [esp + 0x20]
movups xmmword [0x100aa1f8], xmm0
mov dword [0x100aa218], eax
movups xmmword [0x100aa208], xmm1
je 0x1000829d
push edx
push ecx
push 0x100aa208
call fcn.1004c810
mov edx, dword [0x100aa1fc]
add esp, 0xc
mov ecx, dword [0x100aa1f8]
push dword [0x100aa204]
call fcn.100031d0
add esp, 4
mov byte [0x100aa218], 1
cmp dword [0x100a9f20], 0
je 0x100082b4
cmp byte [0x100a9b64], 0
je 0x100082b4
call fcn.1000df60
mov eax, dword [0x100a9eb4]
test eax, eax
je 0x10008311
add eax, 7
mov dword [esp + 4], 0x1000d820
cmp byte [0x100a9b69], 0
xorps xmm1, xmm1
mov dword [esp], eax
mov dword [esp + 8], 0x100a9ebc
mov dword [esp + 0xc], 6
movups xmm0, xmmword [esp]
mov byte [esp + 0x20], 0
mov eax, dword [esp + 0x20]
movups xmmword [0x100aa1d0], xmm0
mov dword [0x100aa1f0], eax
movups xmmword [0x100aa1e0], xmm1
je 0x10008311
mov ecx, 0x100aa1d0
call fcn.10006eb0
mov ecx, dword [0x100a9c14]
test ecx, ecx
je 0x100083a9
cmp byte [0x100a9b6a], 0
mov edx, 6
mov dword [esp], ecx
xorps xmm1, xmm1
mov dword [esp + 4], 0x10008610
mov dword [esp + 8], 0
mov dword [esp + 0xc], edx
movups xmm0, xmmword [esp]
mov byte [esp + 0x20], 0
mov eax, dword [esp + 0x20]
movups xmmword [0x100aa020], xmm0
mov dword [0x100aa040], eax
movups xmmword [0x100aa030], xmm1
jne 0x10008379
cmp byte [0x100a9b66], 0
jne 0x10008379
cmp byte [0x100a9b60], 0
je 0x100083a9
push edx
push ecx
push 0x100aa030
call fcn.1004c810
mov edx, dword [0x100aa024]
add esp, 0xc
mov ecx, dword [0x100aa020]
push dword [0x100aa02c]
call fcn.100031d0
add esp, 4
mov byte [0x100aa040], 1
mov eax, dword [0x100a9c30]
test eax, eax
je 0x10008418
add eax, 0xf
mov dword [esp + 4], 0x10008630
cmp byte [0x100a9b6a], 0
xorps xmm1, xmm1
mov dword [esp], eax
mov dword [esp + 8], 0x100a9c28
mov dword [esp + 0xc], 5
movups xmm0, xmmword [esp]
mov byte [esp + 0x20], 0
mov eax, dword [esp + 0x20]
movups xmmword [0x100aa068], xmm0
mov dword [0x100aa088], eax
movups xmmword [0x100aa078], xmm1
jne 0x1000840e
cmp byte [0x100a9b66], 0
jne 0x1000840e
cmp byte [0x100a9b60], 0
je 0x10008418
mov ecx, 0x100aa068
call fcn.10006eb0
mov ecx, dword [esp + 0x3c]
xor ecx, esp
call fcn.1004ad35
mov esp, ebp
pop ebp
ret