Function at 0x40ad40
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x230
mov eax, dword [0x42c070]
xor eax, esp
mov dword [esp + 0x22c], eax
push ebx
push ebp
mov ebp, dword [esp + 0x23c]
push esi
push edi
push str.CheckConnectionInPC_enter..
mov edi, ecx
call fcn.00412950
add esp, 4
lea eax, [esp + 0x18]
push eax
xor ebx, ebx
push 0x20019
push ebx
push str.SYSTEMCurrentControlSetControlNetwork4D36E972_E325_11CE_BFC1_08002BE10318_
push 0x80000002
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x30], ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
cmp eax, ebx
je 0x40adad
push eax
push str.Cant_Open_control_registry__Error_Code:__x
call fcn.004129d0
add esp, 8
cmp edi, ebx
je 0x40af9d
jmp 0x40adc0
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x40af93
lea ecx, [esp + 0x14]
push ecx
push 0x20019
push ebx
lea esi, [edi + 8]
push esi
push eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
cmp eax, ebx
je 0x40adfa
push eax
push esi
push str.Cant_Open_registry__s__Error_Code:__x
call fcn.004129d0
add esp, 0xc
jmp 0x40af93
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x10]
push edx
push 0x20019
push ebx
push str.Connection
push eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
cmp eax, ebx
je 0x40ae2d
push eax
push esi
push str.Cant_Open_registry__sConnect_Error_Code:__x
call fcn.004129d0
add esp, 0xc
jmp 0x40af93
mov esi, 0x104
push esi
lea ecx, [esp + 0x2d]
push ebx
push ecx
mov byte [esp + 0x34], bl
call fcn.00418e90
add esp, 0xc
push esi
lea edx, [esp + 0x135]
push ebx
push edx
mov byte [esp + 0x13c], bl
call fcn.00418e90
add esp, 0xc
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x18]
push ebx
push ebx
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x144]
push eax
push ebx
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], esi
push ecx
xor esi, esi
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
test eax, eax
jne 0x40af79
jmp 0x40aea0
inc esi
mov ecx, str.PnpInstanceID
lea eax, [esp + 0x130]
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40aed0
cmp dl, bl
je 0x40aecc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40aed0
add eax, 2
add ecx, 2
cmp dl, bl
jne 0x40aeb0
xor eax, eax
jmp 0x40aed5
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x40af11
mov eax, 0x104
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], eax
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x2c]
push eax
mov eax, dword [esp + 0x18]
push ebx
push ebx
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x144]
push edx
push esi
push eax
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
test eax, eax
je 0x40aea0
jmp 0x40af79
lea eax, [esp + 0x28]
mov byte [esp + 0x12c], bl
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40af20
sub eax, edx
push eax
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [ebp + 0x80]
call fcn.00407f80
mov edx, dword [ebp + 0x9c]
mov ecx, dword [ebp + 0xa0]
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [ebp + 0xa4]
mov dword [eax + 4], ecx
mov ecx, dword [ebp + 0xa8]
mov dword [eax + 8], edx
lea edx, [esp + 0x38]
push edx
push ebp
mov dword [eax + 0xc], ecx
call 0x40a980
test eax, eax
je 0x40afc9
mov dword [esp + 0x1c], 1
mov eax, dword [esp + 0x10]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push eax
call esi
mov ecx, dword [esp + 0x14]
push ecx
call esi
cmp dword [esp + 0x1c], ebx
jne 0x40afa3
mov edi, dword [edi]
cmp edi, ebx
jne 0x40adc0
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edx, dword [esp + 0x18]
push edx
call esi
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x23c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00413017
add esp, 0x230
ret 4
push str.IsInstancePresent_return_false..
call fcn.004129d0
add esp, 4
xor eax, eax
jmp 0x40afae