Function at 0x1004099
Capabilities:
Set registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xb0
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
xor ebx, ebx
mov dword [ebp - 0x84], eax
xor eax, eax
mov dword [ebp - 0x64], ebx
lea edi, [ebp - 0x60]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
push 0xa
pop ecx
lea edi, [ebp - 0xac]
mov dword [ebp - 0xb0], ebx
rep stosd dword es:[edi], eax
mov word [ebp - 0x78], ax
lea edi, [ebp - 0x76]
stosd dword es:[edi], eax
mov dword [ebp - 0x6c], edx
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x7c], ebx
stosw word es:[edi], ax
mov dword [ebp - 0x70], ebx
cmp edx, ebx
jne 0x1004101
mov dword [ebp - 0x6c], 0x1003388
mov eax, dword [ebp - 0x6c]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, bx
jne 0x1004107
sub eax, edx
sar eax, 1
cmp eax, 0x100
jb 0x1004124
push 0x57
pop eax
jmp 0x10042aa
mov dword [ebp - 0x68], esi
cmp esi, ebx
je 0x1004278
xor edi, edi
inc edi
jmp 0x1004137
mov esi, dword [ebp - 0x68]
cmp dword [esi + 0x40], 0x18
je 0x1004265
push dword [ebp - 0x84]
push dword [esi + 0x28]
call fcn.010036a0
test eax, eax
je 0x1004265
inc dword [ebp - 0x70]
lea eax, [ebp - 0x64]
push eax
add esi, 0xb0
push esi
call sub.IPHLPAPI.DLL_ConvertInterfaceLuidToGuid
mov esi, eax
cmp esi, ebx
jne 0x10042a3
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x64]
push eax
call dword [sym.imp.ntdll.dll_RtlStringFromGUID]
test eax, eax
jl 0x10042a3
cmp word [ebp - 0x78], 0x50
jae 0x100428a
movzx esi, word [ebp - 0x78]
push esi
push dword [ebp - 0x74]
lea eax, [ebp - 0x54]
push eax
call sub.msvcrt.dll_memcpy
xor eax, eax
shr esi, 1
mov word [ebp + esi*2 - 0x54], ax
add esp, 0xc
lea eax, [ebp - 0x78]
push eax
call dword [sym.imp.ntdll.dll_RtlFreeUnicodeString]
lea eax, [ebp - 0x7c]
push eax
push 2
push edi
lea eax, [ebp - 0x54]
push eax
call fcn.010025f2
mov esi, eax
cmp esi, ebx
jne 0x100429b
mov eax, dword [ebp - 0x6c]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, bx
jne 0x10041dc
sub eax, edx
sar eax, 1
lea eax, [eax + eax + 2]
push eax
push dword [ebp - 0x6c]
push edi
push ebx
push 0x10027cc
push dword [ebp - 0x7c]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push dword [ebp - 0x7c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0x2c
lea eax, [ebp - 0xb0]
push ebx
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
push ebx
lea eax, [ebp - 0xb0]
push eax
lea eax, [ebp - 0x54]
push eax
push edi
push ebx
mov dword [ebp - 0xa0], edi
call sub.dhcpcsvc.DLL_DhcpHandlePnPEvent
mov dword [ebp - 0x80], eax
cmp eax, ebx
je 0x1004250
mov ecx, dword [ebp - 0x68]
push dword [ecx + 0x28]
push eax
push 0x2922
call fcn.01004732
jmp 0x1004262
mov eax, dword [ebp - 0x68]
push dword [eax + 0x28]
push 0x2923
call fcn.01001708
pop ecx
pop ecx
mov esi, dword [ebp - 0x68]
mov esi, dword [esi + 8]
mov dword [ebp - 0x68], esi
cmp esi, ebx
jne 0x1004134
cmp dword [ebp - 0x70], ebx
jne 0x10042a7
push 0x2908
call fcn.01001708
pop ecx
mov eax, 0x490
jmp 0x10042aa
lea eax, [ebp - 0x78]
push eax
call dword [sym.imp.ntdll.dll_RtlFreeUnicodeString]
mov eax, 0x54f
jmp 0x10042aa
push esi
push 0xe
call fcn.010047bd
mov eax, esi
jmp 0x10042aa
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.01002713
leave
ret 0xc