Function at 0x100267b0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10058330
mov eax, dword fs:[0]
push eax
mov eax, 0x2860
call fcn.100507a0
mov eax, dword [0x10072f40]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
movups xmm0, xmmword [0x1005dd10]
push 0x12
push 0
push 0
lea eax, [ebp - 0x2854]
mov byte [ebp - 0x2855], 0
push eax
movups xmmword [ebp - 0x2854], xmm0
call dword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsW]
mov esi, eax
mov dword [ebp - 0x2860], esi
cmp esi, 0xffffffff
jne 0x1002681d
xor al, al
jmp 0x10026a1f
lea eax, [ebp - 0x2844]
mov dword [ebp - 0x2844], 0x1c
push eax
xor edi, edi
push edi
push esi
mov dword [ebp - 0x285c], edi
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
je 0x10026a12
nop word [eax + eax]
cmp byte [ebp - 0x2855], 0
jne 0x10026a12
xor esi, esi
lea eax, [ebp - 0x810]
push 0x800
push esi
push eax
mov dword [ebp - 0x2868], esi
call sub.VCRUNTIME140.dll_memset
push 0x2000
lea eax, [ebp - 0x2810]
push esi
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0x18
mov dword [ebp - 0x2864], esi
lea eax, [ebp - 0x2864]
push esi
push eax
push 0x800
lea eax, [ebp - 0x810]
push eax
lea eax, [ebp - 0x2868]
push eax
push 0x10061a28
lea eax, [ebp - 0x2844]
push eax
push dword [ebp - 0x2860]
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDevicePropertyW]
test eax, eax
je 0x100269db
push 0x1000
lea eax, [ebp - 0x2810]
push eax
lea eax, [ebp - 0x810]
push eax
call dword [sym.imp.ole32.dll_StringFromGUID2]
xorps xmm0, xmm0
mov dword [ebp - 0x2818], esi
lea eax, [ebp - 0x2810]
mov dword [ebp - 0x2814], esi
movups xmmword [ebp - 0x2828], xmm0
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x10026905
sub eax, edx
lea ecx, [ebp - 0x2828]
sar eax, 1
push eax
lea eax, [ebp - 0x2810]
push eax
call fcn.10001e10
mov dword [ebp - 4], 0
lea edx, [ebp - 0x2828]
cmp dword [ebp - 0x2814], 8
mov esi, 0x811c9dc5
mov eax, dword [ebp - 0x2828]
cmovae edx, eax
mov dword [ebp - 0x286c], eax
mov eax, dword [ebp - 0x2818]
xor ecx, ecx
lea edi, [eax + eax]
test edi, edi
je 0x10026971
nop
movzx eax, byte [ecx + edx]
inc ecx
xor eax, esi
imul esi, eax, 0x1000193
cmp ecx, edi
jb 0x10026960
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x2814]
cmp eax, 8
jb 0x100269b8
mov edx, dword [ebp - 0x286c]
lea ecx, [eax*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x100269ae
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10026a3c
push ecx
push edx
call fcn.1005024f
add esp, 8
mov edi, dword [ebp - 0x285c]
xor eax, eax
mov dword [ebp - 0x2818], 0
mov dword [ebp - 0x2814], 7
mov word [ebp - 0x2828], ax
xor eax, eax
cmp esi, dword [ebp + 8]
jne 0x100269ee
cmp eax, dword [ebp + 0xc]
jne 0x100269ee
mov byte [ebp - 0x2855], 1
mov esi, dword [ebp - 0x2860]
lea eax, [ebp - 0x2844]
push eax
inc edi
push edi
push esi
mov dword [ebp - 0x285c], edi
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
jne 0x10026850
push esi
call dword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
mov al, byte [ebp - 0x2855]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1005078e
mov esp, ebp
pop ebp
ret 8
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3