Function at 0x41f736
Capabilities:
Check if file exists
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c4
mov eax, dword [0x5c2460]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
lea eax, [ebp - 0x2b8]
push edi
push eax
call fcn.0041fa7f
mov ecx, eax
call fcn.0041faa6
push ecx
push ecx
lea eax, [ebp - 0x2b8]
mov ecx, esp
push eax
call fcn.004050d6
lea ecx, [ebp - 0x258]
call fcn.00458fb0
mov ecx, eax
call fcn.00457b60
mov bl, al
lea ecx, [ebp - 0x258]
neg bl
sbb bl, bl
call fcn.00459030
xor edi, edi
xor esi, esi
inc edi
inc bl
jne 0x41fa10
xor eax, eax
mov dword [ebp - 0x274], 7
lea ecx, [ebp - 0x288]
mov dword [ebp - 0x278], esi
mov word [ebp - 0x288], ax
call fcn.00434ea7
test al, al
je 0x41fa03
push esi
call dword [sym.imp.ole32.dll_OleInitialize]
test eax, eax
js 0x41fa03
push edi
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
push ecx
push ecx
lea eax, [ebp - 0x2b8]
mov ecx, esp
push eax
call fcn.004050d6
lea ecx, [ebp - 0x270]
call fcn.00458fb0
push ecx
push ecx
lea eax, [ebp - 0x288]
mov ecx, esp
push eax
call fcn.004050d6
lea eax, [ebp - 0x258]
push eax
lea ecx, [ebp - 0x270]
call fcn.00459bb0
push eax
lea ecx, [ebp - 0x270]
call fcn.00459060
lea ecx, [ebp - 0x258]
call fcn.00459030
push str.plugins
lea ecx, [ebp - 0x2a0]
call fcn.004058f0
push ecx
push ecx
mov ecx, esp
push eax
call fcn.004050d6
lea ecx, [ebp - 0x228]
call fcn.00458fb0
push eax
lea eax, [ebp - 0x258]
push eax
lea ecx, [ebp - 0x270]
call fcn.00459dd0
push eax
lea ecx, [ebp - 0x270]
call fcn.00459060
lea ecx, [ebp - 0x258]
call fcn.00459030
lea ecx, [ebp - 0x228]
call fcn.00459030
push esi
push edi
lea ecx, [ebp - 0x2a0]
call fcn.0040536f
xor eax, eax
push 0x206
mov word [ebp - 0x210], ax
lea eax, [ebp - 0x20e]
push esi
push eax
call fcn.005091d0
add esp, 0xc
mov dword [ebp - 0x2bc], edi
lea eax, [ebp - 0x2c0]
mov dword [ebp - 0x2c0], 0x208
push eax
lea eax, [ebp - 0x210]
push eax
lea eax, [ebp - 0x2bc]
push eax
push esi
push str.CLSID7978461C_CC22_48F2_BC69_02220D3E101DInprocServer32
push SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
lea ecx, [ebp - 0x210]
push 2
lea edx, [ecx + 2]
pop ebx
mov ax, word [ecx]
add ecx, ebx
cmp ax, si
jne 0x41f8fc
sub ecx, edx
sar ecx, 1
je 0x41f921
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41f9f2
push str.pta.dll
lea ecx, [ebp - 0x240]
call fcn.004058f0
push str.itrusenroll.dll
lea ecx, [ebp - 0x228]
call fcn.004058f0
lea edi, [ebp - 0x240]
push ecx
push ecx
mov ecx, esp
push edi
call fcn.004050d6
lea eax, [ebp - 0x2a0]
push eax
lea ecx, [ebp - 0x270]
call fcn.00459bb0
push eax
lea ecx, [ebp - 0x258]
call fcn.00409846
lea ecx, [ebp - 0x2a0]
call fcn.00459030
cmp dword [ebp - 0x244], 8
mov eax, dword [ebp - 0x258]
jae 0x41f98f
lea eax, [ebp - 0x258]
push 8
push esi
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov esi, eax
cmp esi, 0x20
jbe 0x41f9b9
push 0x5491bc
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x41f9b2
call eax
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
xor esi, esi
lea ecx, [ebp - 0x258]
push esi
push 1
call fcn.0040536f
add edi, 0x18
dec ebx
jne 0x41f947
xor edi, edi
lea esi, [ebp - 0x210]
inc edi
push 0
sub esi, 0x18
push 1
mov ecx, esi
call fcn.0040536f
dec edi
jns 0x41f9dc
xor edi, edi
xor esi, esi
inc edi
call dword [sym.imp.ole32.dll_OleUninitialize]
lea ecx, [ebp - 0x270]
call fcn.00459030
push esi
push edi
lea ecx, [ebp - 0x288]
call fcn.0040536f
push esi
push edi
lea ecx, [ebp - 0x2b8]
call fcn.0040536f
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00501d03
mov esp, ebp
pop ebp
ret