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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov eax, dword [0x4c002c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push 0x134c
push 0
push edi
call fcn.0048635c
mov ebx, dword [0x496520]
lea esi, [edi + 0x1334]
add esp, 0xc
mov dword [esi], 0x10
call ebx
and dword [eax], 0
push esi
lea eax, [edi + 0x1324]
push eax
push 0
push 0x800
lea ecx, [edi + 8]
push ecx
push dword [0x4ca918]
call dword [0x49699c]
mov dword [edi + 0x133c], eax
call ebx
mov esi, eax
call dword [0x4969c0]
mov dword [esi], eax
call ebx
xor esi, esi
cmp dword [eax], esi
jne 0x407434
cmp dword [edi + 0x133c], esi
jle 0x407434
lea eax, [edi + 8]
mov dword [edi], eax
movzx eax, word [eax]
push eax
lea eax, [ebp - 0xc]
push 0x49b790
push eax
call fcn.0040d74a
add esp, 0xc
lea ecx, [ebp - 0xc]
call fcn.0040a732
mov ebx, eax
cmp ebx, esi
je 0x407434
mov eax, dword [ebx + 8]
or eax, dword [ebx + 0xc]
je 0x407434
mov al, byte [ebx + 0x13]
cmp al, 0x7d
mov dword [ebx + 8], esi
mov dword [ebx + 0xc], esi
jae 0x40711a
movzx eax, byte [0x4ccaa8]
mov edx, dword [edi + 0x1328]
cmp edx, dword [eax*4 + 0x4cc8b0]
je 0x407160
xor cl, cl
movzx eax, cl
mov eax, dword [eax*4 + 0x4cc8b0]
cmp eax, esi
je 0x407160
cmp eax, edx
je 0x407112
inc cl
cmp cl, 0x7d
jb 0x4070f7
jmp 0x407160
mov byte [0x4ccaa8], cl
jmp 0x407160
cmp al, 0x80
jb 0x407160
cmp al, 0xc0
jae 0x407160
mov ecx, dword [edi + 0x1328]
movzx eax, al
sub eax, 0x80
cdq
sub eax, edx
sar eax, 1
imul eax, eax, 0x110
add eax, 0x4cdf98
cmp dword [eax + 0x104], ecx
jne 0x407151
mov byte [eax + 0x10c], 0
jmp 0x407160
cmp dword [eax + 0x108], ecx
jne 0x407160
mov byte [eax + 0x10c], 1
cmp byte [ebx + 0x11], 0x16
jne 0x407434
push 0x10
push dword [ebx + 0x1c]
lea eax, [edi + 0x1324]
push eax
call fcn.00486306
add esp, 0xc
push dword [ebx + 0x20]
lea eax, [edi + 0x1008]
push eax
call fcn.0040d70d
mov al, byte [ebx + 0x12]
mov byte [edi + 0x1347], al
mov al, byte [ebx + 0x13]
mov ebx, dword [0x4969cc]
pop ecx
mov byte [edi + 0x1348], al
mov eax, dword [edi]
pop ecx
lea ecx, [eax + 0xc]
mov dword [edi + 4], ecx
movzx eax, word [eax + 4]
xor esi, esi
inc esi
push eax
mov dword [ebp - 0x1c], esi
call ebx
cmp ax, si
jb 0x407427
push dword [edi]
mov ecx, dword [edi + 4]
lea eax, [edi + 0x1108]
call fcn.00403718
movzx eax, ax
add dword [edi + 4], eax
mov eax, dword [edi + 4]
movzx eax, word [eax]
pop ecx
push eax
call ebx
add dword [edi + 4], 4
inc dword [ebp - 0x1c]
movzx esi, ax
mov eax, dword [edi]
movzx eax, word [eax + 4]
push eax
call ebx
movzx eax, ax
cmp dword [ebp - 0x1c], eax
jle 0x4071c5
xor ecx, ecx
inc ecx
cmp si, cx
je 0x407212
cmp si, 0xc
jne 0x407427
mov eax, dword [edi]
test dword [eax], 0xf020000
jne 0x407427
movzx eax, word [eax + 6]
test ax, ax
je 0x407427
and dword [ebp - 0x18], 0
and dword [ebp - 0x14], 0
push eax
mov byte [ebp - 0xd], 0
mov dword [ebp - 0x1c], ecx
call ebx
cmp ax, 1
jb 0x407427
push dword [edi]
mov ecx, dword [edi + 4]
mov eax, 0x4c5b20
call fcn.00403718
movzx eax, ax
add dword [edi + 4], eax
mov eax, dword [edi + 4]
movzx eax, word [eax]
pop ecx
push eax
call ebx
movzx eax, ax
cmp ax, 1
jne 0x407295
mov byte [ebp - 0xd], al
lea eax, [edi + 0x1108]
push eax
lea esi, [edi + 0x1208]
push esi
call fcn.0040d70d
pop ecx
pop ecx
call fcn.0040a4e0
call fcn.0040a5b3
jmp 0x4072e0
cmp ax, 0xc
jne 0x4072e0
lea eax, [edi + 0x1108]
push eax
lea esi, [edi + 0x1208]
push esi
call fcn.0040d70d
call fcn.0040a4e0
push str..in_addr.arpa
push esi
call dword [0x4964ec]
mov esi, eax
add esp, 0x10
test esi, esi
je 0x4072e0
push str..in_addr.arpa
push esi
call dword [0x49655c]
test eax, eax
pop ecx
pop ecx
jne 0x4072e0
mov byte [esi], al
mov byte [ebp - 0xd], 1
add dword [edi + 4], 4
mov ecx, dword [ebp - 0x18]
or ecx, dword [ebp - 0x14]
mov eax, dword [edi + 4]
je 0x4072fc
push dword [eax]
call dword [0x49696c]
cmp eax, dword [ebp - 0x18]
jae 0x40730e
mov eax, dword [edi + 4]
push dword [eax]
call dword [0x49696c]
and dword [ebp - 0x14], 0
mov dword [ebp - 0x18], eax
add dword [edi + 4], 4
mov eax, dword [edi + 4]
movzx eax, word [eax]
push eax
call ebx
movzx eax, ax
add eax, 2
add dword [edi + 4], eax
mov eax, dword [edi]
movzx eax, word [eax + 6]
inc dword [ebp - 0x1c]
push eax
call ebx
movzx eax, ax
cmp dword [ebp - 0x1c], eax
jle 0x407249
cmp byte [ebp - 0xd], 0
je 0x407427
mov ax, word [edi + 4]
sub ax, di
sub ax, 8
movzx ebx, ax
mov ax, word [0x4cdf24]
test ax, ax
je 0x407375
movzx eax, ax
cdq
cmp dword [ebp - 0x14], edx
jg 0x407375
jl 0x40736f
cmp dword [ebp - 0x18], eax
jae 0x407375
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
mov ax, word [0x4cdf26]
test ax, ax
je 0x407396
movzx eax, ax
cdq
cmp dword [ebp - 0x14], edx
jl 0x407396
jg 0x407390
cmp dword [ebp - 0x18], eax
jbe 0x407396
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
mov edx, dword [0x4f7380]
mov esi, dword [0x4f7384]
mov ecx, 0x7fffffff
push 0
sub ecx, edx
pop eax
sbb eax, esi
cmp dword [ebp - 0x14], eax
jg 0x4073c2
jl 0x4073ba
cmp dword [ebp - 0x18], ecx
jae 0x4073c2
add dword [ebp - 0x18], edx
adc dword [ebp - 0x14], esi
jmp 0x4073cd
and dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0x7fffffff
push 0x24
push 0
mov esi, 0x4c53d4
push esi
call fcn.0048635c
lea eax, [edi + 0x1208]
mov dword [0x4c53d4], eax
movzx eax, bx
mov dword [0x4c53f0], eax
mov byte [0x4c53f4], 0x14
mov eax, dword [edi]
mov dword [0x4c53d8], eax
add esp, 0xc
mov eax, esi
call fcn.0040be9e
test eax, eax
je 0x407427
mov ecx, dword [ebp - 0x18]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x14]
mov dword [eax + 0xc], ecx
movzx ecx, byte [0x4c7649]
push ecx
mov ecx, eax
call fcn.0040a892
pop ecx
mov esi, edi
call fcn.00403923
mov ax, 1
jmp 0x407437
xor ax, ax
mov ecx, dword [ebp - 4]
pop esi
xor ecx, ebp
pop ebx
call fcn.004862e5
leave
ret