Function at 0x423f20
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push esi
push 0x1370
push 0
mov eax, dword [ebp + 8]
push eax
call fcn.00409ed0
add esp, 0xc
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x1344], 0x10
call fcn.00409828
mov dword [eax], 0
mov edx, dword [ebp + 8]
add edx, 0x1344
push edx
mov eax, dword [ebp + 8]
add eax, 0x1334
push eax
push 0
push 0x800
mov ecx, dword [ebp + 8]
add ecx, 4
push ecx
movzx edx, byte [ebp + 0xc]
imul edx, edx, 0x1c
mov eax, dword [edx + 0x4409f4]
push eax
call dword [sym.imp.WS2_32.dll_recvfrom]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x135c], eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call fcn.00409828
mov dword [eax], esi
call fcn.00409828
cmp dword [eax], 0
jne 0x423fb5
mov edx, dword [ebp + 8]
cmp dword [edx + 0x135c], 0
jg 0x423fbc
xor eax, eax
jmp 0x4244e9
mov eax, dword [ebp + 8]
mov cl, byte [ebp + 0xc]
mov byte [eax + 0x1367], cl
mov edx, dword [ebp + 8]
add edx, 4
mov eax, dword [ebp + 8]
mov dword [eax], edx
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov al, byte [edx + 2]
shr al, 3
and al, 0xf
movzx ecx, al
test ecx, ecx
je 0x4240df
movzx edx, byte [0x44b43b]
test edx, edx
je 0x4240ae
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dl, byte [ecx + 2]
shr dl, 3
and dl, 0xf
movzx eax, dl
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
sub ecx, 1
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], 4
ja case.0x424020.2
mov edx, dword [ebp - 0x14]
jmp dword [edx*4 + 0x4244f0]
push str.Inverse_query_not_supported
push 0x44bd18
call fcn.00407379
add esp, 8
jmp 0x42409b
push str.Server_Status_Request_not_supported
push 0x44bd18
call fcn.00407379
add esp, 8
jmp 0x42409b
push str.Notify_not_supported
push 0x44bd18
call fcn.00407379
add esp, 8
jmp 0x42409b
push str.Dynamic_Update_not_needed_supported_by_Dual_Server
push 0x44bd18
call fcn.00407379
add esp, 8
jmp 0x42409b
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dl, byte [ecx + 2]
shr dl, 3
and dl, 0xf
movzx eax, dl
push eax
push str.OpCode__u_not_supported
push 0x44bd18
call fcn.00407379
add esp, 0xc
push 1
push 0x44bd18
mov ecx, dword [ebp + 8]
push ecx
call fcn.0041af80
add esp, 0xc
mov edx, dword [ebp + 8]
push edx
call fcn.0041a010
add esp, 4
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dl, byte [ecx + 3]
and dl, 0xf0
or dl, 4
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov byte [ecx + 3], dl
mov edx, dword [ebp + 8]
mov ax, word [edx + 0x135c]
jmp 0x4244e9
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dl, byte [ecx + 2]
shr dl, 7
and dl, 1
movzx eax, dl
test eax, eax
jne 0x424123
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
movzx eax, word [edx + 4]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx ecx, ax
cmp ecx, 1
jne 0x424123
mov edx, dword [ebp + 8]
mov eax, dword [edx]
movzx ecx, word [eax + 6]
push ecx
call dword [sym.imp.WS2_32.dll_ntohs]
movzx edx, ax
test edx, edx
je 0x424184
movzx eax, byte [0x44b43b]
test eax, eax
je 0x424153
push str.DNS_Query_Format_Error
push 0x44bd18
call fcn.00407379
add esp, 8
push 1
push 0x44bd18
mov ecx, dword [ebp + 8]
push ecx
call fcn.0041af80
add esp, 0xc
mov edx, dword [ebp + 8]
push edx
call fcn.0041a010
add esp, 4
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dl, byte [ecx + 3]
and dl, 0xf0
or dl, 1
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov byte [ecx + 3], dl
mov edx, dword [ebp + 8]
mov ax, word [edx + 0x135c]
jmp 0x4244e9
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
add ecx, 0xc
mov edx, dword [ebp + 8]
mov dword [edx + 0x1004], ecx
mov dword [ebp - 8], 1
jmp 0x4241a7
mov eax, dword [ebp - 8]
add eax, 1
mov dword [ebp - 8], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
movzx eax, word [edx + 4]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx ecx, ax
cmp dword [ebp - 8], ecx
jg 0x424260
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x1004]
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp + 8]
add eax, 0x1008
push eax
call fcn.0041a140
add esp, 0xc
movzx ecx, ax
mov edx, dword [ebp + 8]
add ecx, dword [edx + 0x1004]
mov eax, dword [ebp + 8]
mov dword [eax + 0x1004], ecx
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x1004]
push edx
call fcn.0041a120
add esp, 4
mov ecx, dword [ebp + 8]
mov word [ecx + 0x1362], ax
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x1004]
add eax, 2
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x1004], eax
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x1004]
push eax
call fcn.0041a120
add esp, 4
mov ecx, dword [ebp + 8]
mov word [ecx + 0x1364], ax
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x1004]
add eax, 2
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x1004], eax
jmp 0x42419e
mov edx, dword [ebp + 8]
movzx eax, word [edx + 0x1364]
cmp eax, 1
je 0x4242db
movzx ecx, byte [0x44b43b]
test ecx, ecx
je 0x4242aa
mov edx, dword [ebp + 8]
movzx eax, word [edx + 0x1364]
push eax
push str.DNS_Class__u_not_supported
push 0x44bd18
call fcn.00407379
add esp, 0xc
push 1
push 0x44bd18
mov ecx, dword [ebp + 8]
push ecx
call fcn.0041af80
add esp, 0xc
mov edx, dword [ebp + 8]
push edx
call fcn.0041a010
add esp, 4
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dl, byte [ecx + 3]
and dl, 0xf0
or dl, 4
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov byte [ecx + 3], dl
mov edx, dword [ebp + 8]
mov ax, word [edx + 0x135c]
jmp 0x4244e9
mov eax, dword [ebp + 8]
movzx ecx, word [eax + 0x1362]
test ecx, ecx
jne 0x42434a
movzx edx, byte [0x44b43b]
test edx, edx
je 0x424319
push str.missing_query_type
push 0x44bd18
call fcn.00407379
add esp, 8
push 1
push 0x44bd18
mov eax, dword [ebp + 8]
push eax
call fcn.0041af80
add esp, 0xc
mov ecx, dword [ebp + 8]
push ecx
call fcn.0041a010
add esp, 4
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov cl, byte [eax + 3]
and cl, 0xf0
or cl, 1
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov byte [eax + 3], cl
mov ecx, dword [ebp + 8]
mov ax, word [ecx + 0x135c]
jmp 0x4244e9
mov edx, dword [ebp + 8]
add edx, 0x1008
push edx
call fcn.00409210
add esp, 4
mov ecx, dword [ebp + 8]
mov word [ecx + 0x1360], ax
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x1338]
push eax
call dword [sym.imp.WS2_32.dll_ntohl]
mov dword [ebp - 4], eax
mov dword [ebp - 0xc], 0
jmp 0x42438b
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], 0x20
jge 0x4243cd
mov edx, dword [ebp - 0xc]
cmp dword [edx*8 + 0x4462c4], 0
je 0x4243cd
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
cmp ecx, dword [eax*8 + 0x4462c4]
jb 0x4243cb
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
cmp eax, dword [edx*8 + 0x4462c8]
ja 0x4243cb
mov ecx, dword [ebp + 8]
mov ax, word [ecx + 0x135c]
jmp 0x4244e9
jmp 0x424382
mov dword [ebp - 0x10], 0
jmp 0x4243df
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x10], 0x20
jge 0x424427
mov eax, dword [ebp - 0x10]
imul eax, eax, 0x1c
cmp dword [eax + 0x4463c8], 0
je 0x424427
mov ecx, dword [ebp - 0x10]
imul ecx, ecx, 0x1c
mov edx, dword [ebp - 4]
cmp edx, dword [ecx + 0x4463c8]
jb 0x424425
mov eax, dword [ebp - 0x10]
imul eax, eax, 0x1c
mov ecx, dword [ebp - 4]
cmp ecx, dword [eax + 0x4463cc]
ja 0x424425
mov edx, dword [ebp + 8]
mov ax, word [edx + 0x135c]
jmp 0x4244e9
jmp 0x4243d6
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x1108
push ecx
call fcn.004198c0
add esp, 8
push eax
movzx edx, byte [0x461db8]
push edx
call fcn.00422eb0
add esp, 8
test eax, eax
je 0x424461
mov eax, dword [ebp + 8]
mov ax, word [eax + 0x135c]
jmp 0x4244e9
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x1338]
cmp edx, dword [0x4415b4]
je 0x424483
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x1338]
cmp ecx, dword [0x4415b8]
jne 0x42448f
mov edx, dword [ebp + 8]
mov ax, word [edx + 0x135c]
jmp 0x4244e9
mov eax, dword [ebp + 8]
push eax
call fcn.0041a010
add esp, 4
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov al, byte [edx + 3]
and al, 0xf0
or al, 5
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov byte [edx + 3], al
movzx eax, byte [0x44b43b]
test eax, eax
je 0x4244df
push str.DNS_UDP_Query__Access_Denied
push 0x44bd18
call fcn.00407379
add esp, 8
push 1
push 0x44bd18
mov ecx, dword [ebp + 8]
push ecx
call fcn.0041af80
add esp, 0xc
mov edx, dword [ebp + 8]
mov ax, word [edx + 0x135c]
pop esi
mov esp, ebp
pop ebp
ret