Function at 0x4014b0
Capabilities:
Query or enumerate registry value

Disassembly:
mov eax, dword [esp + 4]
sub esp, 8
push ebx
push ebp
push esi
push edi
push eax
call dword [sym.imp.USER32.dll_GetParent]
mov ebx, eax
mov ecx, 0x77
xor eax, eax
mov edi, 0x415020
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x14]
push ecx
push 0x20019
push eax
push str.SOFTWARETFTPD32DHCP
push reloc.WSOCK32.dll_bind
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov edi, eax
neg edi
sbb edi, edi
inc edi
je 0x40165f
mov eax, dword [esp + 0x14]
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea edx, [esp + 0x10]
mov ebp, 4
push edx
push 0x415020
push 0
push 0
push str.IP_Pool
push eax
mov dword [esp + 0x28], ebp
call esi
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x10]
push ecx
push 0x415024
push 0
push 0
push str.PoolSize
push edx
mov dword [esp + 0x28], ebp
call esi
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x10]
push eax
push 0x415034
push 0
push 0
push str.BootFile
push ecx
mov dword [esp + 0x28], 0x100
call esi
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x10]
push edx
push 0x41502c
push 0
push 0
push 0x4121f0
push eax
mov dword [esp + 0x28], ebp
call esi
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x10]
push ecx
push 0x415028
push 0
push 0
push 0x4122ac
push edx
mov dword [esp + 0x28], ebp
call esi
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x10]
push eax
push 0x415030
push 0
push 0
push str.Gateway
push ecx
mov dword [esp + 0x28], ebp
call esi
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x10]
push edx
push 0x415134
push 0
push 0
push str.DomainName
push eax
mov dword [esp + 0x28], 0x40
call esi
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x10]
push ecx
push 0x415174
push 0
push 0
push str.AddOptionNumber1
mov dword [esp + 0x24], ebp
push edx
call esi
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x10]
push eax
push 0x415178
push 0
push 0
push str.AddOptionValue1
push ecx
mov dword [esp + 0x28], 0x40
call esi
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x10]
push edx
push 0x4151b8
push 0
push 0
push str.AddOptionNumber2
push eax
mov dword [esp + 0x28], ebp
call esi
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x10]
push ecx
push 0x4151bc
push 0
push 0
push str.AddOptionValue2
push edx
mov dword [esp + 0x28], 0x40
call esi
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [0x415020]
push ecx
call sub.WSOCK32.dll_inet_ntoa
mov esi, dword [sym.imp.USER32.dll_SetDlgItemTextA]
push eax
push 0xbba
push ebx
call esi
mov edx, dword [0x415028]
push edx
call sub.WSOCK32.dll_inet_ntoa
push eax
push 0xbbb
push ebx
call esi
mov eax, dword [0x41502c]
push eax
call sub.WSOCK32.dll_inet_ntoa
push eax
push 0xbbc
push ebx
call esi
mov ecx, dword [0x415030]
push ecx
call sub.WSOCK32.dll_inet_ntoa
push eax
push 0xbc0
push ebx
call esi
push 0x415034
push 0xbbe
push ebx
call esi
mov edx, dword [0x415024]
mov ebp, dword [sym.imp.USER32.dll_SetDlgItemInt]
push 0
push edx
push 0xbbd
push ebx
call ebp
push 0x415134
push 0xbc1
push ebx
call esi
mov eax, dword [0x415174]
push 0
push eax
push 0xbc2
push ebx
call ebp
push 0x415178
push 0xbc3
push ebx
call esi
mov eax, dword [0x415024]
xor ebx, ebx
cmp eax, ebx
je 0x40175e
lea ecx, [eax*8]
sub ecx, eax
shl ecx, 2
push ecx
call fcn.0040a3ba
add esp, 4
cmp eax, ebx
mov dword [0x414fe0], eax
jne 0x40175e
mov esi, dword [esp + 0x1c]
push 0x10
push str.Tftpd32
push str.Can_not_allocate_memory
push esi
call fcn.00403120
add esp, 0x10
push ebx
push ebx
push 0x10
push esi
call dword [sym.imp.USER32.dll_PostMessageA]
mov eax, edi
pop edi
pop esi
mov dword [0x414fe8], ebx
pop ebp
pop ebx
add esp, 8
ret