Function at 0x4085d0
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x620
mov eax, dword [0x4394c4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push edi
mov edi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov dword [ebp - 0x620], eax
lea eax, [ebp - 0x618]
push eax
push 0x20019
push 0
push str.SYSTEMCurrentControlSetControlClass4D36E972_E325_11CE_BFC1_08002BE10318
push reloc.WS2_32.dll_bind
call edi
test eax, eax
je 0x40866f
push str.tapwin32_find_device
push str._s:
push 2
call fcn.0041b57f
add esp, 4
push eax
call fcn.00403bf0
add esp, 0xc
push str.Error_opening_adapter_key
push 2
call fcn.0041b57f
add esp, 4
push eax
call fcn.00403bf0
add esp, 8
push 0x42f570
push 2
call fcn.0041b57f
add esp, 4
push eax
call fcn.00403bf0
add esp, 8
xor eax, eax
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00417bc2
mov esp, ebp
pop ebp
ret
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 0x608], 0x100
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x608]
mov dword [ebp - 0x61c], ebx
push eax
lea eax, [ebp - 0x104]
push eax
push ebx
push dword [ebp - 0x618]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
jne 0x40893e
mov ebx, dword [ebp + 0xc]
lea eax, [ebp - 0x104]
push eax
push str.SYSTEMCurrentControlSetControlClass4D36E972_E325_11CE_BFC1_08002BE10318
push str._s_s
lea eax, [ebp - 0x304]
push 0x100
push eax
call fcn.004081d0
add esp, 0x14
test eax, eax
js 0x4088fa
cmp eax, 0x100
je 0x4088fa
lea eax, [ebp - 0x610]
push eax
push 0x20019
push 0
lea eax, [ebp - 0x304]
push eax
push reloc.WS2_32.dll_bind
call edi
test eax, eax
jne 0x4088fa
lea eax, [ebp - 0x608]
mov dword [ebp - 0x608], 0x100
push eax
lea eax, [ebp - 0x404]
push eax
lea eax, [ebp - 0x60c]
push eax
push 0
push str.ComponentId
push dword [ebp - 0x610]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x4088ea
cmp dword [ebp - 0x60c], 1
jne 0x4088ea
lea eax, [ebp - 0x608]
mov dword [ebp - 0x608], 0x100
push eax
lea eax, [ebp - 0x204]
push eax
lea eax, [ebp - 0x60c]
push eax
push 0
push str.NetCfgInstanceId
push dword [ebp - 0x610]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x4088d9
cmp dword [ebp - 0x60c], 1
jne 0x4088d9
push dword [ebp - 0x610]
call esi
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x404]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4087d0
test dl, dl
je 0x4087cc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4087d0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4087b0
xor eax, eax
jmp 0x4087d5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4088fa
test ebx, ebx
je 0x4088c1
lea eax, [ebp - 0x204]
push eax
push str.SYSTEMCurrentControlSetControlNetwork4D36E972_E325_11CE_BFC1_08002BE10318
push str._s_sConnection
lea eax, [ebp - 0x504]
push 0x100
push eax
call fcn.004081d0
add esp, 0x14
test eax, eax
js 0x4088fa
cmp eax, 0x100
je 0x4088fa
lea eax, [ebp - 0x614]
push eax
push 0x20019
push 0
lea eax, [ebp - 0x504]
push eax
push reloc.WS2_32.dll_bind
call edi
test eax, eax
jne 0x4088fa
lea eax, [ebp - 0x608]
mov dword [ebp - 0x608], 0x100
push eax
lea eax, [ebp - 0x604]
push eax
lea eax, [ebp - 0x60c]
push eax
push 0
push str.Name
push dword [ebp - 0x614]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x4088c8
cmp dword [ebp - 0x60c], 1
jne 0x4088c8
push dword [ebp - 0x614]
call esi
test eax, eax
jne 0x408a14
mov ecx, ebx
lea eax, [ebp - 0x604]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4088b8
test dl, dl
je 0x4088b4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4088b8
add eax, 2
add ecx, 2
test dl, dl
jne 0x408898
xor eax, eax
jmp 0x4088bd
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4088fa
mov ebx, 1
jmp 0x40893e
push dword [ebp - 0x614]
call esi
test eax, eax
je 0x4088fa
jmp 0x40899f
push dword [ebp - 0x610]
call esi
test eax, eax
je 0x4088fa
jmp 0x4089c6
push dword [ebp - 0x610]
call esi
test eax, eax
jne 0x408a3b
mov eax, dword [ebp - 0x61c]
lea ecx, [ebp - 0x608]
push 0
push 0
push 0
push 0
push ecx
lea ecx, [ebp - 0x104]
mov dword [ebp - 0x608], 0x100
inc eax
push ecx
push eax
push dword [ebp - 0x618]
mov dword [ebp - 0x61c], eax
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
test eax, eax
je 0x4086b3
xor ebx, ebx
push dword [ebp - 0x618]
call esi
test eax, eax
je 0x40894f
jmp 0x4089ed
pop esi
test ebx, ebx
pop ebx
je 0x40865e
lea eax, [ebp - 0x204]
push eax
push str..Global_s.tap
push 0x100
push dword [ebp - 0x620]
call fcn.004081d0
add esp, 0x10
test eax, eax
js 0x40865e
cmp eax, 0x100
je 0x40865e
mov ecx, dword [ebp - 4]
mov eax, 1
xor ecx, ebp
pop edi
call fcn.00417bc2
mov esp, ebp
pop ebp
ret
push 0xc9
push str.D:_badvpn_tuntap_tapwin32_funcs.c
push str._s:_d_Assertion_failed_n
push 2
call fcn.0041b57f
add esp, 4
push eax
call fcn.00403bf0
add esp, 0x10
call fcn.0041d6f0
push 0xac
push str.D:_badvpn_tuntap_tapwin32_funcs.c
push str._s:_d_Assertion_failed_n
push 2
call fcn.0041b57f
add esp, 4
push eax
call fcn.00403bf0
add esp, 0x10
call fcn.0041d6f0
push 0xd7
push str.D:_badvpn_tuntap_tapwin32_funcs.c
push str._s:_d_Assertion_failed_n
push 2
call fcn.0041b57f
add esp, 4
push eax
call fcn.00403bf0
add esp, 0x10
call fcn.0041d6f0
push 0xcd
push str.D:_badvpn_tuntap_tapwin32_funcs.c
push str._s:_d_Assertion_failed_n
push 2
call fcn.0041b57f
add esp, 4
push eax
call fcn.00403bf0
add esp, 0x10
call fcn.0041d6f0
push 0xa6
push str.D:_badvpn_tuntap_tapwin32_funcs.c
push str._s:_d_Assertion_failed_n
push 2
call fcn.0041b57f
add esp, 4
push eax
call fcn.00403bf0
add esp, 0x10
call fcn.0041d6f0
int3