Function at 0x4fe1e0
Capabilities:
Create thread
Get socket status
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
sub esp, 8
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x1c]
mov ecx, edi
call fcn.00507fb0
mov esi, eax
xor ebx, ebx
cmp esi, ebx
je 0x4fe235
cmp byte [0x617f22], 1
jb 0x4fe215
push str.init_Failed_____
push 0x6180b8
call fcn.00435820
add esp, 8
push esi
push str.runProg_init_error_:__d
push 0x6180b8
call fcn.00435820
add esp, 0xc
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
push edi
push str.runProg__s_enter_dhcp_loop_...
push 0x6180b8
mov dword [0x5e7534], 1
mov dword [0x5e7538], ebx
call fcn.00435820
add esp, 0xc
cmp byte [0x5e96e8], bl
jne 0x4fe9fd
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
mov ebp, dword [sym.imp.MSVCR80.dll__errno]
mov edi, dword [sym.imp.MSVCR80.dll__time64]
cmp byte [0x5e9729], 0
mov byte [0x5eeb4a], 0
jne 0x4fe29b
cmp byte [0x5eb467], 0
jne 0x4fe29b
push 0x3e8
call esi
jmp 0x4fe9f0
cmp byte [0x5eeb49], 0
jne 0x4fe2b0
push 0x3e8
call esi
jmp 0x4fe9f0
xor eax, eax
cmp byte [0x5edf8b], al
mov dword [0x5e7430], eax
je 0x4fe2d3
mov eax, dword [0x5edf60]
mov dword [0x5e7434], eax
mov eax, 1
mov dword [0x5e7430], eax
mov edx, 0x5e96f0
cmp byte [edx + 0x39], 0
je 0x4fe320
xor ecx, ecx
cmp eax, ebx
jbe 0x4fe2f6
mov esi, dword [edx]
cmp dword [ecx*4 + 0x5e7434], esi
je 0x4fe2f6
add ecx, 1
cmp ecx, eax
jb 0x4fe2e6
cmp ecx, eax
jne 0x4fe315
cmp eax, 0x40
jae 0x4fe315
mov eax, dword [edx]
mov dword [ecx*4 + 0x5e7434], eax
mov eax, dword [0x5e7430]
add eax, 1
mov dword [0x5e7430], eax
add edx, 0x3c
cmp edx, 0x5eb43c
jl 0x4fe2d8
cmp byte [0x5effa3], 0
je 0x4fe362
mov edx, dword [0x5eff78]
xor ecx, ecx
cmp eax, ebx
jbe 0x4fe345
cmp dword [ecx*4 + 0x5e7434], edx
je 0x4fe345
add ecx, 1
cmp ecx, eax
jb 0x4fe335
cmp ecx, eax
jne 0x4fe362
cmp eax, 0x40
jae 0x4fe362
mov dword [ecx*4 + 0x5e7434], edx
mov eax, dword [0x5e7430]
add eax, 1
mov dword [0x5e7430], eax
mov edx, 0x5eb43c
cmp byte [edx + 0x2b], 0
je 0x4fe3af
xor ecx, ecx
cmp eax, ebx
jbe 0x4fe385
mov esi, dword [edx]
cmp dword [ecx*4 + 0x5e7434], esi
je 0x4fe385
add ecx, 1
cmp ecx, eax
jb 0x4fe375
cmp ecx, eax
jne 0x4fe3a4
cmp eax, 0x40
jae 0x4fe3a4
mov eax, dword [edx]
mov dword [ecx*4 + 0x5e7434], eax
mov eax, dword [0x5e7430]
add eax, 1
mov dword [0x5e7430], eax
add edx, 0x2c
cmp edx, 0x5ec9b8
jl 0x4fe367
mov edx, 0x5ec9e4
cmp byte [edx + 0x2b], 0
je 0x4fe3fc
xor ecx, ecx
cmp eax, ebx
jbe 0x4fe3d2
mov esi, dword [edx]
cmp dword [ecx*4 + 0x5e7434], esi
je 0x4fe3d2
add ecx, 1
cmp ecx, eax
jb 0x4fe3c2
cmp ecx, eax
jne 0x4fe3f1
cmp eax, 0x40
jae 0x4fe3f1
mov eax, dword [edx]
mov dword [ecx*4 + 0x5e7434], eax
mov eax, dword [0x5e7430]
add eax, 1
mov dword [0x5e7430], eax
add edx, 0x2c
cmp edx, 0x5edf60
jl 0x4fe3b4
cmp byte [0x5ec9e3], 0
je 0x4fe438
mov edx, dword [0x5ec9b8]
xor ecx, ecx
cmp eax, ebx
jbe 0x4fe421
cmp dword [ecx*4 + 0x5e7434], edx
je 0x4fe421
add ecx, 1
cmp ecx, eax
jb 0x4fe411
cmp ecx, eax
jne 0x4fe438
cmp eax, 0x40
jae 0x4fe438
mov dword [ecx*4 + 0x5e7434], edx
add dword [0x5e7430], 1
mov ecx, dword [0x5eeb44]
push 0x5e7534
push ebx
push ebx
push 0x5e7430
push ecx
call sub.WS2_32.dll_select
test eax, eax
push ebx
je 0x4fe9c6
call edi
add esp, 4
cmp byte [0x5effa3], 0
mov dword [0x619728], eax
mov dword [0x61972c], edx
mov byte [0x5eeb4a], 1
je 0x4fe4e1
mov edx, dword [0x5eff78]
push 0x5e7430
push edx
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x4fe4e1
call ebp
push 0x5e82d8
push 0x5e82c8
push ebx
push 0x400
mov dword [eax], ebx
mov eax, dword [0x5eff78]
push 0x5e7d7c
push eax
mov dword [0x5e82d8], 0x10
call dword [sym.imp.WS2_32.dll_recvfrom]
mov dword [0x5e82c4], eax
call ebp
mov esi, eax
call sub.WS2_32.dll_WSAGetLastError
mov dword [esi], eax
cmp dword [0x5e82c4], ebx
jg 0x4fe4e1
mov dword [0x617f10], ebx
mov dword [0x617f14], ebx
xor ebx, ebx
mov esi, 0x5e96f0
cmp byte [esi + 0x39], 0
je 0x4fe530
mov ecx, dword [esi]
push 0x5e7430
push ecx
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x4fe522
push ebx
mov edi, 0x5e7d78
call fcn.00509090
add esp, 4
test ax, ax
je 0x4fe522
call fcn.00504bc0
test eax, eax
je 0x4fe522
mov eax, edi
call fcn.00505180
add esi, 0x3c
add ebx, 1
cmp esi, 0x5eb43c
jl 0x4fe4e8
mov edi, dword [sym.imp.WS2_32.dll_sendto]
mov dword [esp + 0x14], 0
mov ebx, 0x5eb43c
cmp byte [ebx + 0x2b], 0
je 0x4fe79b
mov edx, dword [ebx]
push 0x5e7430
push edx
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x4fe787
mov eax, dword [esp + 0x14]
push eax
mov eax, 0x6183a0
call fcn.005019b0
add esp, 4
test ax, ax
je 0x4fe735
push 0x6183a0
call fcn.00501d90
add esp, 4
test ax, ax
je 0x4fe6e9
mov ecx, dword [0x6183a0]
movzx edx, word [ecx + 6]
push edx
call sub.WS2_32.dll_htons
test ax, ax
je 0x4fe640
cmp byte [0x617f23], 2
jb 0x4fe6a7
mov ax, word [0x6196e2]
cmp ax, 6
jne 0x4fe5d4
push 0x6193a8
push str.SOA_Sent_for_zone__s
jmp 0x4fe67e
cmp ax, 2
jne 0x4fe5e9
push 0x6193a8
push str.NS_Sent_for_zone__s
jmp 0x4fe67e
cmp byte [0x6196e9], 0x14
mov edi, 0x6183a0
jne 0x4fe61a
call fcn.00503ba0
push eax
mov esi, edi
call fcn.00506f00
push eax
push str._s_resolved_from_Cache_to__s
push 0x5e7878
call dword [sym.imp.MSVCR80.dll_sprintf]
add esp, 0x10
jmp 0x4fe68c
call fcn.00503ba0
push eax
mov esi, 0x6183a0
call fcn.00506f00
push eax
push str._s_resolved_Locally_to__s
push 0x5e7878
call dword [sym.imp.MSVCR80.dll_sprintf]
add esp, 0x10
jmp 0x4fe68c
mov edx, dword [0x6183a0]
mov eax, dword [edx]
mov ecx, eax
shr ecx, 0x18
and ecx, 0xf
cmp ecx, 3
je 0x4fe659
test ecx, ecx
jne 0x4fe6a7
and eax, 0xf3ffffff
or eax, 0x3000000
mov dword [edx], eax
cmp byte [0x617f23], 2
jb 0x4fe6a7
mov esi, 0x6183a0
call fcn.00506f00
push eax
push str._s_not_found
push 0x5e7878
call dword [sym.imp.MSVCR80.dll_sprintf]
add esp, 0xc
cmp byte [0x617f22], 2
jb 0x4fe6a7
push 0x5e7878
push 0x6180b8
call fcn.00435820
add esp, 8
call ebp
mov edi, dword [sym.imp.WS2_32.dll_sendto]
mov dword [eax], 0
mov eax, dword [0x6183a4]
push 0x10
push 0x6196c4
sub eax, 0x6183a8
push 0
push eax
mov dword [0x6196dc], eax
movzx eax, byte [0x6196e7]
imul eax, eax, 0x2c
mov ecx, dword [eax + 0x5eb43c]
push 0x6183a8
push ecx
jmp 0x4fe775
mov ecx, 0x6183a0
call fcn.00502a70
test ax, ax
jne 0x4fe787
call ebp
mov dword [eax], 0
movzx edx, byte [0x6196e7]
mov eax, dword [0x6183a4]
sub eax, 0x6183a8
imul edx, edx, 0x2c
push 0x10
push 0x6196c4
push 0
push eax
mov dword [0x6196dc], eax
mov eax, dword [edx + 0x5eb43c]
push 0x6183a8
push eax
jmp 0x4fe775
cmp dword [0x6183a0], 0
je 0x4fe787
call ebp
mov dword [eax], 0
movzx ecx, byte [0x6196e7]
mov eax, dword [0x6183a4]
sub eax, 0x6183a8
imul ecx, ecx, 0x2c
mov edx, dword [ecx + 0x5eb43c]
push 0x10
push 0x6196c4
push 0
push eax
push 0x6183a8
mov dword [0x6196dc], eax
push edx
call edi
mov dword [0x6196dc], eax
call ebp
mov esi, eax
call sub.WS2_32.dll_WSAGetLastError
mov dword [esi], eax
add dword [esp + 0x14], 1
add ebx, 0x2c
cmp ebx, 0x5ec9b8
jl 0x4fe543
xor ebx, ebx
mov esi, 0x5ec9e4
cmp byte [esi + 0x2b], 0
je 0x4fe861
mov eax, dword [esi]
push 0x5e7430
push eax
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x4fe84f
mov byte [0x6196e7], bl
mov dword [0x6196d4], 0x10
call ebp
push 0x6196d4
mov dword [eax], 0
mov ecx, dword [esi]
push 0x6196c4
push ecx
call sub.WS2_32.dll_accept
mov dword [0x6196b0], eax
call ebp
mov edi, eax
call sub.WS2_32.dll_WSAGetLastError
mov dword [edi], eax
cmp dword [0x6196b0], 0xffffffff
jne 0x4fe842
cmp byte [0x617f23], 0
je 0x4fe84f
call ebp
mov edx, dword [eax]
push edx
push str.Accept_Failed__WSAError_u
push 0x5e7878
call dword [sym.imp.MSVCR80.dll_sprintf]
add esp, 0xc
cmp byte [0x617f22], 1
jb 0x4fe84f
push 0x5e7878
push 0x6180b8
call fcn.00435820
add esp, 8
jmp 0x4fe84f
push 0x6183a0
call fcn.00500ce0
add esp, 4
add esi, 0x2c
add ebx, 1
cmp esi, 0x5edf60
jl 0x4fe7a2
cmp byte [0x5ec9e3], 0
je 0x4fe9d6
mov eax, dword [0x5ec9b8]
push 0x5e7430
push eax
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x4fe9d6
mov edi, 0x6183a0
call fcn.005032f0
test ax, ax
je 0x4fe9d6
call ebp
mov dword [eax], 0
movzx ecx, byte [0x6196e7]
mov eax, dword [0x6183a4]
imul ecx, ecx, 0x2c
mov edx, dword [ecx + 0x5eb43c]
push 0x10
push 0x6196c4
push 0
sub eax, 0x6183a8
push eax
push 0x6183a8
push edx
mov dword [0x6196dc], eax
call dword [sym.imp.WS2_32.dll_sendto]
mov dword [0x6196dc], eax
call ebp
mov esi, eax
call sub.WS2_32.dll_WSAGetLastError
mov dword [esi], eax
cmp byte [0x617f23], 2
jb 0x4fe9d6
cmp byte [0x6196e8], 0x7d
jae 0x4fe94b
mov eax, dword [0x6183a0]
cmp word [eax + 6], 0
je 0x4fe93f
call fcn.00503ba0
test eax, eax
je 0x4fe933
push 0x5e7b78
push 0x6194a8
push str._s_resolved_from_Forwarding_server_as__s
push 0x5e7878
call dword [sym.imp.MSVCR80.dll_sprintf]
add esp, 0x10
jmp 0x4fe9a9
push 0x6194a8
push str._s_resolved_from_Forwarding_server
jmp 0x4fe99b
push 0x6194a8
push str._s_not_found_by_Forwarding_Server
jmp 0x4fe99b
mov ecx, dword [0x6183a0]
cmp word [ecx + 6], 0
je 0x4fe991
mov edi, 0x6183a0
call fcn.00503ba0
test eax, eax
je 0x4fe985
push 0x5e7b78
push 0x6194a8
push str._s_resolved_from_Conditional_Forwarder_as__s
push 0x5e7878
call dword [sym.imp.MSVCR80.dll_sprintf]
add esp, 0x10
jmp 0x4fe9a9
push 0x6194a8
push str._s_resolved_from_Conditional_Forwarder
jmp 0x4fe99b
push 0x6194a8
push str._s_not_found_by_Conditional_Forwarder
push 0x5e7878
call dword [sym.imp.MSVCR80.dll_sprintf]
add esp, 0xc
cmp byte [0x617f22], 2
jb 0x4fe9d6
push 0x5e7878
push 0x6180b8
call fcn.00435820
add esp, 8
jmp 0x4fe9d6
call edi
add esp, 4
mov dword [0x619728], eax
mov dword [0x61972c], edx
mov dl, byte [0x5e96ea]
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
mov edi, dword [sym.imp.MSVCR80.dll__time64]
mov byte [0x5e96e9], dl
xor ebx, ebx
cmp byte [0x5e96e8], 0
je 0x4fe276
push str.Closing_Network_Connections...
push 0x5e7878
mov byte [0x5dcffc], 0
call dword [sym.imp.MSVCR80.dll_sprintf]
mov edi, dword [sym.imp.MSVCR80.dll_printf]
push 0x5e7878
push 0x5a89a0
call edi
mov ebp, dword [sym.imp.MSVCR80.dll__beginthread]
mov ebx, dword [sym.imp.MSVCR80.dll_calloc]
add esp, 0x10
cmp byte [0x617f23], 1
jae 0x4fea47
cmp byte [0x617f22], 1
jb 0x4fea8c
mov eax, 0x5e7878
lea edx, [eax + 1]
nop
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4fea50
sub eax, edx
add eax, 1
push eax
push 1
call ebx
add esp, 8
test eax, eax
je 0x4fea7f
mov ecx, 0x5e7878
mov esi, eax
sub esi, ecx
mov dl, byte [ecx]
mov byte [ecx + esi], dl
add ecx, 1
test dl, dl
jne 0x4fea73
push eax
push 0
push 0x509670
call ebp
add esp, 0xc
call fcn.004fddd0
cmp byte [0x5effa3], 0
je 0x4feaa5
mov eax, dword [0x5eff78]
push eax
call sub.WS2_32.dll_closesocket
push str.Dual_Server_Stopped___n
push 0x5e7878
call dword [sym.imp.MSVCR80.dll_sprintf]
push 0x5e7878
push 0x5a89a0
call edi
add esp, 0x10
cmp byte [0x617f23], 1
jae 0x4fead6
cmp byte [0x617f22], 1
jb 0x4feb1c
mov eax, 0x5e7878
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4feae0
sub eax, edx
add eax, 1
push eax
push 1
call ebx
add esp, 8
test eax, eax
je 0x4feb0f
mov ecx, 0x5e7878
mov esi, eax
sub esi, ecx
mov dl, byte [ecx]
mov byte [ecx + esi], dl
add ecx, 1
test dl, dl
jne 0x4feb03
push eax
push 0
push 0x509670
call ebp
add esp, 0xc
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov eax, dword [0x5eeb4c]
test eax, eax
je 0x4feb32
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x1c]
push ecx
push str.runProg__s_leave_dhcp_loop_...
push 0x6180b8
call fcn.00435820
add esp, 0xc
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 8
ret