Function at 0x4076a0
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0xe4c
mov eax, dword [0x418714]
mov ecx, dword [0x418718]
mov dx, word [0x41871c]
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
mov ecx, 0xfd
xor eax, eax
lea edi, [esp + 0x4a]
mov word [esp + 0x48], dx
xor ebp, ebp
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, dword [esp + 0xe60]
lea ecx, [esp + 0x440]
push eax
push 0x41870c
push 0x10c
push ecx
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x38], ebp
call fcn.00406c80
lea edx, [esp + 0x450]
push 0x5c
push edx
call dword [sym.imp.MSVCRT.dll_wcsrchr]
mov edi, eax
add esp, 0x18
cmp edi, ebp
jne 0x407723
lea edi, [esp + 0x440]
jmp 0x407726
add edi, 2
mov esi, dword [sym.imp.MSVCRT.dll_wcslen]
lea eax, [esp + 0x40]
push eax
call esi
lea ecx, [esp + 0x44]
push eax
push ecx
push edi
call dword [sym.imp.MSVCRT.dll_wcsncmp]
add esp, 0x10
test eax, eax
jne 0x407754
lea edx, [esp + 0x40]
push edx
call esi
add esp, 4
lea edi, [edi + eax*2]
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea eax, [esp + 0x18]
push eax
push 0x20019
push ebp
push str.SYSTEMCurrentControlSetServicesTcpipParametersInterfaces
push 0x80000002
call esi
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
jne 0x4077aa
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x14]
push ecx
push 0x20019
push ebp
push edi
push edx
call esi
test eax, eax
je 0x407882
mov eax, dword [esp + 0x18]
push eax
call ebx
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xe4c
ret
lea ecx, [esp + 0x2c]
push ecx
push 0x20019
push ebp
push str.SYSTEMCurrentControlSetServices
push 0x80000002
call esi
test eax, eax
jne 0x407b50
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x34]
push edx
push 0x20019
push ebp
push edi
push eax
call esi
test eax, eax
je 0x407801
mov ecx, dword [esp + 0x2c]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push ecx
call esi
mov edx, dword [esp + 0x18]
push edx
call esi
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xe4c
ret
mov eax, dword [esp + 0x2c]
push eax
call ebx
mov edx, dword [esp + 0x34]
lea ecx, [esp + 0x30]
push ecx
push 0x20019
push ebp
push str.Parameters
push edx
call esi
test eax, eax
je 0x40783e
mov eax, dword [esp + 0x34]
push eax
call ebx
mov ecx, dword [esp + 0x18]
push ecx
call ebx
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xe4c
ret
mov edx, dword [esp + 0x34]
push edx
call ebx
mov ecx, dword [esp + 0x30]
lea eax, [esp + 0x14]
push eax
push 0x20019
push ebp
push str.TcpIp
push ecx
call esi
test eax, eax
je 0x40787b
mov edx, dword [esp + 0x30]
push edx
call ebx
mov eax, dword [esp + 0x18]
push eax
call ebx
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xe4c
ret
mov ecx, dword [esp + 0x30]
push ecx
call ebx
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea edx, [esp + 0x10]
lea eax, [esp + 0x38]
push edx
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x28]
push eax
push ecx
push ebp
mov esi, 4
push str.UseZeroBroadcast
push edx
mov dword [esp + 0x28], esi
call edi
test eax, eax
je 0x4078b5
mov dword [esp + 0x38], ebp
lea eax, [esp + 0x10]
lea ecx, [esp + 0x3c]
push eax
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x28]
push ecx
push edx
push ebp
push str.EnableDHCP
push eax
mov dword [esp + 0x28], esi
call edi
test eax, eax
je 0x40792b
mov dword [esp + 0x3c], ebp
lea ecx, [esp + 0x10]
lea edx, [esp + 0x658]
push ecx
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x28]
push edx
push eax
push ebp
push str.IPAddress
push ecx
mov dword [esp + 0x38], ebp
mov dword [esp + 0x28], 0x802
call edi
test eax, eax
je 0x407b5d
mov edx, dword [esp + 0x14]
push edx
call ebx
mov eax, dword [esp + 0x18]
push eax
call ebx
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xe4c
ret
cmp dword [esp + 0x3c], ebp
je 0x4078dd
lea ecx, [esp + 0x10]
lea edx, [esp + 0x658]
push ecx
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x28]
push edx
push eax
push ebp
push str.DhcpIPAddress
push ecx
mov dword [esp + 0x38], ebp
mov dword [esp + 0x28], 0x802
call edi
test eax, eax
je 0x40797b
mov edx, dword [esp + 0x14]
push edx
call ebx
mov eax, dword [esp + 0x18]
push eax
call ebx
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xe4c
ret
push 0x188
push 0x40
xor edi, edi
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov esi, eax
cmp esi, ebp
je 0x407b50
lea ebx, [esp + edi*2 + 0x658]
mov dword [esi + 0x180], ebp
push ebx
call fcn.00406290
add esp, 4
cmp eax, 0xffffffff
mov dword [esi + 4], eax
je 0x407a4f
mov word [esi], 2
mov word [esi + 0x100], 2
cmp dword [esp + 0x38], ebp
jne 0x4079dd
mov dword [esi + 0x104], 0xffffffff
jmp 0x4079e3
mov dword [esi + 0x104], ebp
cmp word [ebx], bp
je 0x4079f3
mov eax, ebx
add eax, 2
inc edi
cmp word [eax], bp
jne 0x4079ea
mov eax, dword [esp + 0x1c]
inc edi
cmp eax, ebp
jne 0x407a02
mov dword [esp + 0x1c], esi
jmp 0x407a0c
mov ecx, dword [esp + 0x28]
mov dword [ecx + 0x180], esi
mov edx, dword [esp + 0x20]
lea eax, [edi + edi]
inc edx
mov dword [esp + 0x28], esi
cmp word [esp + eax + 0x658], bp
mov dword [esp + 0x20], edx
je 0x407a69
cmp eax, dword [esp + 0x10]
jae 0x407a69
push 0x188
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov esi, eax
cmp esi, ebp
jne 0x40799b
jmp 0x407b22
mov edi, dword [sym.imp.KERNEL32.dll_GlobalHandle]
push esi
call edi
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push esi
call edi
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
lea edx, [esp + 0x10]
lea eax, [esp + 0x658]
push edx
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x28]
push eax
push ecx
push ebp
push str.DhcpSubnetMask
push edx
mov dword [esp + 0x28], 0x802
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp eax, ebp
je 0x407aae
mov eax, dword [esp + 0x14]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push eax
call esi
mov ecx, dword [esp + 0x18]
push ecx
call esi
jmp 0x407b22
mov edi, dword [esp + 0x1c]
xor esi, esi
xor ebp, ebp
test edi, edi
je 0x407b50
lea ebx, [esp + esi*2 + 0x658]
push ebx
call fcn.00406290
add esp, 4
cmp eax, 0xffffffff
mov dword [edi + 0x84], eax
je 0x407cfa
mov word [edi + 0x80], 2
cmp word [ebx], 0
je 0x407af8
mov eax, ebx
add eax, 2
inc esi
cmp word [eax], 0
jne 0x407aee
mov edi, dword [edi + 0x180]
inc esi
inc ebp
lea eax, [esi + esi]
cmp word [esp + eax + 0x658], 0
je 0x407cfa
cmp eax, dword [esp + 0x10]
jae 0x407cfa
test edi, edi
jne 0x407abe
xor ebp, ebp
mov edi, dword [esp + 0x1c]
cmp edi, ebp
je 0x407b50
mov ebx, dword [sym.imp.KERNEL32.dll_GlobalHandle]
mov esi, dword [edi + 0x180]
push edi
call ebx
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push edi
call ebx
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
cmp esi, ebp
mov edi, esi
jne 0x407b30
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xe4c
ret
push 0x188
push 0x40
xor edi, edi
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov esi, eax
cmp esi, ebp
je 0x407b50
lea ebx, [esp + edi*2 + 0x658]
mov dword [esi + 0x180], ebp
push ebx
call fcn.00406290
add esp, 4
cmp eax, 0xffffffff
mov dword [esi + 4], eax
je 0x407c2d
mov word [esi], 2
mov word [esi + 0x100], 2
cmp dword [esp + 0x38], ebp
jne 0x407bbb
mov dword [esi + 0x104], 0xffffffff
jmp 0x407bc1
mov dword [esi + 0x104], ebp
cmp word [ebx], bp
je 0x407bd1
mov eax, ebx
add eax, 2
inc edi
cmp word [eax], bp
jne 0x407bc8
mov eax, dword [esp + 0x1c]
inc edi
cmp eax, ebp
jne 0x407be0
mov dword [esp + 0x1c], esi
jmp 0x407bea
mov ecx, dword [esp + 0x28]
mov dword [ecx + 0x180], esi
mov edx, dword [esp + 0x20]
lea eax, [edi + edi]
inc edx
mov dword [esp + 0x28], esi
cmp word [esp + eax + 0x658], bp
mov dword [esp + 0x20], edx
je 0x407c47
cmp eax, dword [esp + 0x10]
jae 0x407c47
push 0x188
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov esi, eax
cmp esi, ebp
jne 0x407b79
jmp 0x407b22
mov edi, dword [sym.imp.KERNEL32.dll_GlobalHandle]
push esi
call edi
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push esi
call edi
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
lea edx, [esp + 0x10]
lea eax, [esp + 0x658]
push edx
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x28]
push eax
push ecx
push ebp
push str.SubnetMask
push edx
mov dword [esp + 0x28], 0x802
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp eax, ebp
je 0x407c8f
mov eax, dword [esp + 0x14]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push eax
call esi
mov ecx, dword [esp + 0x18]
push ecx
call esi
jmp 0x407b22
mov edi, dword [esp + 0x1c]
xor esi, esi
xor ebp, ebp
test edi, edi
je 0x407b50
lea ebx, [esp + esi*2 + 0x658]
push ebx
call fcn.00406290
add esp, 4
cmp eax, 0xffffffff
mov dword [edi + 0x84], eax
je 0x407cfa
mov word [edi + 0x80], 2
cmp word [ebx], 0
je 0x407cd5
mov eax, ebx
add eax, 2
inc esi
cmp word [eax], 0
jne 0x407ccb
mov edi, dword [edi + 0x180]
inc esi
inc ebp
lea eax, [esi + esi]
cmp word [esp + eax + 0x658], 0
je 0x407cfa
cmp eax, dword [esp + 0x10]
jae 0x407cfa
test edi, edi
jne 0x407c9f
jmp 0x407b20
cmp ebp, dword [esp + 0x20]
je 0x407d19
mov edx, dword [esp + 0x14]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push edx
call esi
mov eax, dword [esp + 0x18]
push eax
call esi
jmp 0x407b20
mov ecx, dword [esp + 0x14]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push ecx
call esi
mov edx, dword [esp + 0x18]
push edx
call esi
mov eax, dword [esp + 0xe64]
mov ecx, dword [esp + 0x1c]
pop edi
pop esi
mov dword [eax], ecx
pop ebp
mov al, 1
pop ebx
add esp, 0xe4c
ret