Function at 0x409820
Capabilities:
Create udp socket
Get socket status
Receive data
Receive data on socket
Resolve function by parsing pe exports
Send data
Send data on socket
Set socket configuration

Disassembly:
sub esp, 0x994
mov eax, dword [0x4b3774]
xor eax, esp
mov dword [esp + 0x98c], eax
push ebx
push ebp
push esi
push edi
mov esi, ecx
xor edi, edi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], 7
mov dword [esp + 0x14], edi
call fcn.00403a40
test eax, eax
jbe 0x409da2
mov dword [esp + 0x18], edi
lea ebx, [edi + 1]
jmp 0x409866
mov esi, dword [esp + 0x1c]
push 0x11
push 2
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov ebp, eax
mov eax, dword [esi + 4]
test eax, eax
je 0x409897
mov ecx, dword [esi + 8]
sub ecx, eax
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x14], eax
jb 0x40989d
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov esi, dword [esi + 4]
add esi, dword [esp + 0x18]
cmp ebp, 0xffffffff
mov ecx, 0xb
lea edi, [esp + 0x34]
rep movsd dword es:[edi], dword [esi]
jne 0x409921
call sub.Comn.dll_GetObjectLogPXE
mov edi, eax
mov esi, dword [edi]
push 0xad
add esi, 0xc
call fcn.00409230
push eax
mov eax, dword [esi]
push str._s:__DHCP_Create_socket_fail
push edi
call eax
mov ebp, dword [esp + 0x2c]
mov eax, dword [ebp + 4]
add esp, 0x10
test eax, eax
mov byte [esp + 0x51], 0
je 0x409904
mov ecx, dword [ebp + 8]
sub ecx, eax
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x14], eax
jb 0x40990a
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edi, dword [ebp + 4]
add edi, dword [esp + 0x18]
mov ecx, 0xb
lea esi, [esp + 0x34]
rep movsd dword es:[edi], dword [esi]
jmp 0x409d84
push 4
lea ecx, [esp + 0x28]
push ecx
push 0x20
push 0xffff
push ebp
mov dword [esp + 0x38], ebx
call dword [sym.imp.WS2_32.dll_setsockopt]
mov esi, dword [sym.imp.WS2_32.dll_htons]
mov edi, 2
push 0x22b9
mov word [esp + 0x16c], di
call esi
mov edx, dword [esp + 0x3c]
push edx
mov word [esp + 0x16e], ax
call dword [sym.imp.WS2_32.dll_htonl]
mov dword [esp + 0x16c], eax
push 0x10
lea eax, [esp + 0x16c]
push eax
push ebp
call dword [sym.imp.WS2_32.dll_bind]
cmp eax, 0xffffffff
jne 0x409a42
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2741
jne 0x409a14
push 0xdac
call dword [sym.imp.KERNEL32.dll_Sleep]
call sub.Comn.dll_GetObjectLogPXE
mov edi, eax
mov esi, dword [edi]
push 0xc5
add esi, 0xc
call fcn.00409230
mov ecx, dword [esi]
push eax
push str._s:__DHCP_bind_fail_sleep
push edi
call ecx
add esp, 0x10
push 0x10
lea edx, [esp + 0x16c]
push edx
push ebp
call dword [sym.imp.WS2_32.dll_bind]
cmp eax, 0xffffffff
jne 0x409d35
call sub.Comn.dll_GetObjectLogPXE
mov ecx, dword [esp + 0x3c]
mov edi, eax
mov esi, dword [edi]
push ecx
push 0xc9
add esi, 0xc
call fcn.00409230
mov edx, dword [esi]
add esp, 4
push eax
push str._s:__DHCP_bind_fail._X
push edi
call edx
add esp, 0x10
mov eax, 0xfa6
jmp 0x409da4
call sub.Comn.dll_GetObjectLogPXE
mov edi, eax
mov eax, dword [esp + 0x3c]
mov esi, dword [edi]
push eax
push 0xd0
add esi, 0xc
call fcn.00409230
mov ecx, dword [esi]
add esp, 4
push eax
push str._s:__DHCP_bind_fail._X
push edi
call ecx
jmp 0x409d32
push 0x400
lea edx, [esp + 0x19c]
push 0
push edx
call sub.MSVCR80.dll_memset
mov eax, dword [esp + 0x2c]
movzx ecx, byte [esp + 0x41]
movzx edx, byte [esp + 0x42]
or dword [esp + 0x1ac], 0x800000
mov dword [esp + 0x1a8], eax
add eax, ebx
mov dword [esp + 0x2c], eax
movzx eax, byte [esp + 0x40]
mov byte [esp + 0x1c1], cl
movzx ecx, byte [esp + 0x44]
mov byte [esp + 0x1c0], al
movzx eax, byte [esp + 0x43]
mov byte [esp + 0x1c4], cl
movzx ecx, byte [0x4a621c]
mov byte [esp + 0x1c2], dl
movzx edx, byte [esp + 0x45]
mov byte [esp + 0x1c3], al
mov eax, dword [str.ampxe]
mov byte [esp + 0x29a], cl
movzx ecx, byte [0x4a66f0]
add esp, 0xc
mov byte [esp + 0x1b9], dl
mov edx, dword [str.PXEClient]
mov dword [esp + 0x28a], eax
mov eax, dword [0x4a66ec]
push 0x43
mov byte [esp + 0x19c], bl
mov byte [esp + 0x19d], bl
mov byte [esp + 0x19e], 6
mov byte [esp + 0x19f], 0
mov byte [esp + 0x288], 0x63
mov byte [esp + 0x289], 0x82
mov byte [esp + 0x28a], 0x53
mov byte [esp + 0x28b], 0x63
mov byte [esp + 0x28c], 0xee
mov byte [esp + 0x28d], 5
mov byte [esp + 0x293], 0x35
mov byte [esp + 0x294], bl
mov byte [esp + 0x295], bl
mov byte [esp + 0x296], 0x37
mov byte [esp + 0x297], 5
mov byte [esp + 0x298], bl
mov byte [esp + 0x299], 3
mov byte [esp + 0x29a], 5
mov byte [esp + 0x29b], 6
mov byte [esp + 0x29c], 0x36
mov byte [esp + 0x29d], 0x3c
mov byte [esp + 0x29e], 9
mov dword [esp + 0x29f], edx
mov dword [esp + 0x2a3], eax
mov byte [esp + 0x2a7], cl
mov byte [esp + 0x2a8], 0xff
mov word [esp + 0x17c], di
call esi
push str.255.255.255.255
mov word [esp + 0x17e], ax
call dword [sym.imp.WS2_32.dll_inet_addr]
push 0x10
lea edx, [esp + 0x17c]
push edx
xor edi, edi
push edi
mov dword [esp + 0x188], eax
push 0x10d
lea eax, [esp + 0x1a8]
push eax
push ebp
call dword [sym.imp.WS2_32.dll_sendto]
cmp eax, 0xffffffff
jne 0x409c23
call sub.Comn.dll_GetObjectLogPXE
mov edi, eax
mov esi, dword [edi]
push 0x116
add esi, 0xc
call fcn.00409230
mov ecx, dword [esi]
push eax
push str._s:__DHCP_send_data_error
push edi
call ecx
jmp 0x409d32
lea edx, [esp + 0x2c]
push edx
push edi
push edi
lea eax, [esp + 0x6c]
push eax
push edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x40], 3
mov dword [esp + 0x78], ebp
mov dword [esp + 0x74], ebx
call dword [sym.imp.WS2_32.dll_select]
mov esi, eax
cmp esi, 0xffffffff
je 0x409d11
cmp esi, edi
je 0x409d11
test esi, esi
jle 0x409d35
push 0x400
lea ecx, [esp + 0x59c]
push 0
push ecx
call sub.MSVCR80.dll_memset
add esp, 0xc
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x18c]
push eax
push 0
push 0x400
lea ecx, [esp + 0x5a8]
push ecx
push ebp
mov dword [esp + 0x40], 0x10
call dword [sym.imp.WS2_32.dll_recvfrom]
cmp eax, 0xffffffff
je 0x409cee
cmp byte [esp + 0x68a], 0x61
jne 0x409ce2
cmp byte [esp + 0x68b], 0x6d
jne 0x409ce2
cmp byte [esp + 0x68c], 0x70
jne 0x409ce2
cmp byte [esp + 0x68d], 0x78
jne 0x409ce2
cmp byte [esp + 0x68e], 0x65
je 0x409dbd
add edi, ebx
cmp edi, esi
jl 0x409c65
jmp 0x409d35
call sub.Comn.dll_GetObjectLogPXE
mov edi, eax
mov esi, dword [edi]
push 0x130
add esi, 0xc
call fcn.00409230
mov edx, dword [esi]
push eax
push str._s:__DHCP_recv_data_fail
push edi
call edx
jmp 0x409d32
call sub.Comn.dll_GetObjectLogPXE
mov edi, eax
mov esi, dword [edi]
push 0x124
add esi, 0xc
call fcn.00409230
push eax
mov eax, dword [esi]
push str._s:__DHCP_no_recv_date
push edi
call eax
add esp, 0x10
mov esi, dword [esp + 0x1c]
mov eax, dword [esi + 4]
test eax, eax
mov byte [esp + 0x51], 0
je 0x409d61
mov ecx, dword [esi + 8]
sub ecx, eax
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x14], eax
jb 0x409d67
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edi, dword [esi + 4]
add edi, dword [esp + 0x18]
mov ecx, 0xb
lea esi, [esp + 0x34]
push ebp
rep movsd dword es:[edi], dword [esi]
call dword [sym.imp.WS2_32.dll_closesocket]
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
add dword [esp + 0x18], 0x2c
add esi, ebx
mov ecx, ebp
mov dword [esp + 0x14], esi
call fcn.00403a40
cmp esi, eax
jb 0x409862
xor eax, eax
mov ecx, dword [esp + 0x99c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0042c614
add esp, 0x994
ret
push ebp
call dword [sym.imp.WS2_32.dll_closesocket]
call sub.Comn.dll_GetObjectLogPXE
mov edi, eax
mov esi, dword [edi]
push 0x139
add esi, 0xc
call fcn.00409230
push eax
mov eax, dword [esi]
push str._s:__DHCP_find_the_am_dhcp_server_int_lan
push edi
call eax
add esp, 0x10
mov eax, 0xfa5
jmp 0x409da4