Function at 0x10011e53
Capabilities:
Print debug messages
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x250
mov eax, dword [0x10026204]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
mov ecx, str.SOFTWAREMicrosoftBidInterfaceSelfDiag_
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov dword [ebp - 0x250], eax
xor esi, esi
mov eax, dword [ebp + 0x14]
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x24c], eax
lea eax, [ebx*2 - 2]
mov dword [ebp - 0x22c], eax
lea eax, [ebp - 0x23c]
push eax
push 0x20019
push esi
push ecx
push 0x80000002
mov dword [ebp - 0x23c], esi
mov dword [ebp - 0x234], str._NotFound_
mov dword [ebp - 0x230], edi
mov dword [ebp - 0x228], esi
mov dword [ebp - 0x224], esi
mov dword [ebp - 0x238], ecx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x10011ef6
lea eax, [ebx - 1]
mov ecx, str._NotFound_
push eax
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
mov dword [ebp - 0x228], esi
jmp 0x10012043
lea eax, [ebp - 0x248]
mov dword [ebp - 0x244], esi
push eax
lea eax, [ebp - 0x244]
mov dword [ebp - 0x248], 4
push eax
lea eax, [ebp - 0x240]
mov dword [ebp - 0x240], esi
push eax
push esi
push 0x10004a94
push dword [ebp - 0x23c]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x10011f51
cmp dword [ebp - 0x240], 4
jne 0x10011f51
cmp dword [ebp - 0x244], eax
setne al
mov dword [ebp - 0x224], eax
jmp 0x10011f57
mov dword [ebp - 0x224], esi
push 0x10d
lea eax, [ebp - 0x220]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
dec eax
cmp eax, 0x10b
ja 0x1001202b
xor eax, eax
mov word [ebp - 6], ax
lea eax, [ebp - 0x220]
mov dword [ebp - 0x234], eax
lea eax, [ebp - 0x23c]
push eax
call fcn.100120df
test eax, eax
jne 0x1001202b
lea eax, [ebp - 0x220]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [ebp + eax*2 - 0x222]
jmp 0x10011fc2
movzx ecx, word [eax]
cmp ecx, 0x5c
je 0x10011fce
cmp ecx, 0x2f
je 0x10011fce
sub eax, 2
lea ecx, [ebp - 0x220]
cmp eax, ecx
jae 0x10011fb2
jmp 0x10011ff4
add eax, 2
lea ecx, [ebp - 6]
cmp eax, ecx
jae 0x10011ff4
push 0x2a
pop ecx
mov word [eax], cx
xor ecx, ecx
mov word [eax + 2], cx
lea eax, [ebp - 0x23c]
push eax
call fcn.100120df
test eax, eax
jne 0x1001202b
lea eax, [ebp - 0x23c]
mov dword [ebp - 0x234], 0x10004aa4
push eax
call fcn.100120df
test eax, eax
jne 0x1001202b
lea eax, [ebx - 1]
mov ecx, str._NotFound_
push eax
push ecx
push edi
mov dword [ebp - 0x234], ecx
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
mov dword [ebp - 0x228], esi
push dword [ebp - 0x23c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x23c], esi
mov esi, dword [ebp - 0x228]
xor eax, eax
mov word [edi + ebx*2 - 2], ax
test esi, esi
je 0x1001205d
push ebx
push edi
call fcn.10011d84
mov esi, eax
mov dword [ebp - 0x228], esi
mov eax, dword [ebp - 0x224]
test eax, eax
je 0x100120be
push 0x10004ab0
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push dword [ebp - 0x238]
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push 0x10004ac8
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push dword [ebp - 0x234]
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push 0x10004ad0
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push edi
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push 0x10004ae4
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [ebp - 0x224]
mov esi, dword [ebp - 0x228]
mov ecx, dword [ebp - 0x24c]
pop edi
mov dword [ecx], eax
mov eax, dword [ebp - 0x250]
mov ecx, dword [ebp - 4]
xor ecx, ebp
mov dword [eax], esi
pop esi
pop ebx
call fcn.100137a3
leave
ret 0x10