Function at 0x40d400
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3d8
mov eax, dword [0x45a0b0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebx + 0x2018]
push esi
push edi
xor esi, esi
push eax
mov dword [ebp - 0x3d4], esi
mov dword [ebp - 0x3cc], esi
call fcn.00401040
mov dword [ebp - 0x3bc], eax
lea eax, [ebx + 0x15c]
mov dword [ebp - 0x3d0], esi
mov dword [ebp - 0x3c8], eax
mov dword [ebp - 0x3c0], 0x1f3
mov ecx, dword [ebp - 0x3c8]
mov eax, dword [ecx]
mov dword [ebp - 0x3c4], eax
test eax, eax
je 0x40d626
jmp 0x40d470
mov edx, dword [ebp - 0x3c4]
mov eax, dword [edx + 8]
mov dword [ebp - 0x3b8], eax
test eax, eax
je 0x40d610
jmp 0x40d490
mov eax, dword [ebp - 0x3b8]
mov ecx, dword [eax + 0x40]
test ecx, ecx
je 0x40d5fa
mov edx, eax
cmp dword [edx + 0x44], 4
jae 0x40d5fa
mov esi, dword [eax + 0xc]
imul esi, dword [0x46129c]
mov edi, dword [ebx + 0xdc]
mov eax, 0x51eb851f
imul esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x3b8]
sub eax, dword [edx + 0x38]
add eax, edi
js 0x40d5fa
mov eax, edx
mov edx, dword [eax + 0x1c]
mov dword [ebp - 0x3d8], edx
mov eax, 0x66666667
imul esi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x3d8]
sub edi, eax
cmp dword [ecx + 0x44], edx
jne 0x40d516
mov eax, dword [ecx + 0x40]
sub eax, edi
jns 0x40d516
xor edx, edx
mov dword [ecx + 0x44], edx
jmp 0x40d518
xor edx, edx
mov eax, dword [ebp - 0x3d8]
cmp dword [ecx + 0x50], eax
jne 0x40d52d
mov esi, dword [ecx + 0x4c]
sub esi, edi
jns 0x40d52d
mov dword [ecx + 0x50], edx
cmp dword [ecx + 0x5c], eax
jne 0x40d53c
mov esi, dword [ecx + 0x58]
sub esi, edi
jns 0x40d53c
mov dword [ecx + 0x5c], edx
cmp dword [ecx + 0x68], eax
jne 0x40d54b
mov esi, dword [ecx + 0x64]
sub esi, edi
jns 0x40d54b
mov dword [ecx + 0x68], edx
cmp dword [ecx + 0x74], eax
jne 0x40d55a
mov esi, dword [ecx + 0x70]
sub esi, edi
jns 0x40d55a
mov dword [ecx + 0x74], edx
cmp dword [ecx + 0x80], eax
jne 0x40d56f
mov esi, dword [ecx + 0x7c]
sub esi, edi
jns 0x40d56f
mov dword [ecx + 0x80], edx
cmp dword [ecx + 0x8c], eax
jne 0x40d587
mov esi, dword [ecx + 0x88]
sub esi, edi
jns 0x40d587
mov dword [ecx + 0x8c], edx
cmp dword [ecx + 0x98], eax
jne 0x40d59f
mov eax, dword [ecx + 0x94]
sub eax, edi
jns 0x40d59f
mov dword [ecx + 0x98], edx
cmp dword [ecx + 0x11c], edx
je 0x40d5b5
mov edx, dword [0x446380]
mov dword [ecx + 0xa0], edx
jmp 0x40d5fa
cmp word [ecx + 0x132], dx
je 0x40d5d5
mov eax, dword [ebx + 0xdc]
sub eax, dword [ecx + 0x10]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp - 0x3b8]
inc dword [eax + 0x44]
jmp 0x40d5fa
mov eax, dword [ecx + 0xa0]
cmp eax, edx
mov edx, dword [ebp - 0x3b8]
jne 0x40d5ea
mov eax, dword [edx + 0x1c]
jmp 0x40d5f4
cmp eax, dword [edx + 0x1c]
je 0x40d5fa
mov eax, dword [0x446380]
mov dword [ecx + 0xa0], eax
mov ecx, dword [ebp - 0x3b8]
mov eax, dword [ecx]
mov dword [ebp - 0x3b8], eax
test eax, eax
jne 0x40d490
mov edx, dword [ebp - 0x3c4]
mov eax, dword [edx]
mov dword [ebp - 0x3c4], eax
test eax, eax
jne 0x40d470
add dword [ebp - 0x3c8], 4
dec dword [ebp - 0x3c0]
jne 0x40d451
mov eax, dword [ebx + 0x138]
xor esi, esi
cmp eax, esi
je 0x40d66e
movzx eax, word [eax + 0x234]
push eax
call fcn.00404d60
mov ecx, dword [ebx + 0x138]
push eax
add ecx, 0x134
push ecx
push str.SendQueries_ERROR_m__CurrentQuestion_already_set:__s___s_
push esi
call fcn.00420520
add esp, 0x10
mov eax, dword [ebx + 0x130]
mov dword [ebx + 0x138], eax
cmp eax, esi
je 0x40d80d
mov edi, dword [ebx + 0x138]
cmp edi, dword [ebx + 0x134]
je 0x40d80d
mov ecx, dword [edi + 0x11c]
cmp ecx, esi
je 0x40d7af
cmp dword [edi + 0xa0], esi
jne 0x40d6cf
mov eax, dword [edi + 0x10]
cmp eax, esi
jle 0x40d7af
cmp dword [edi + 0x38], esi
jne 0x40d7af
mov edx, dword [ebx + 0xdc]
sub edx, dword [edi + 0xc]
sub edx, eax
js 0x40d7af
cmp dword [edi + 0xc0], esi
jne 0x40d6ef
movzx eax, word [0x4463d4]
push eax
push ebx
call fcn.00422510
mov dword [edi + 0xc0], eax
cmp eax, esi
je 0x40d76a
movzx ecx, word [0x446484]
movzx edx, word [edi + 0x132]
push ecx
push edx
lea esi, [ebx + 0x5afc]
push esi
call fcn.00402f90
movzx eax, word [edi + 0x236]
movzx ecx, word [edi + 0x234]
push eax
push ecx
lea edx, [edi + 0x134]
push edx
lea eax, [ebx + 0x7df4]
push eax
lea eax, [ebx + 0x5b08]
push eax
push esi
call fcn.00403840
movzx ecx, word [edi + 0x130]
mov edx, dword [edi + 0xc0]
push 0
push 0
push ecx
lea ecx, [edi + 0x11c]
push ecx
mov ecx, dword [0x44637c]
push edx
push ecx
push eax
push esi
push ebx
call fcn.00406e50
mov eax, dword [edi + 0x10]
lea edx, [eax + eax*2]
mov dword [edi + 0x10], edx
xor esi, esi
mov eax, dword [0x46129c]
imul eax, eax, 0xe10
cmp dword [edi + 0x10], eax
jle 0x40d77d
mov dword [edi + 0x10], eax
mov eax, dword [ebx + 0xdc]
mov dword [edi + 0xc], eax
mov ecx, dword [ebx + 0xdc]
mov dword [edi + 0xac], ecx
mov dword [edi + 0x1c], esi
mov dword [edi + 0xa0], esi
mov eax, dword [ebx + 0xdc]
cmp eax, esi
jne 0x40d7aa
mov eax, 1
mov dword [edi + 0x14], eax
jmp 0x40d7ef
cmp word [edi + 0x132], si
jne 0x40d7ef
cmp ecx, esi
jne 0x40d7ef
mov eax, dword [edi + 0x10]
cmp eax, esi
jle 0x40d7ef
cmp dword [edi + 0x38], esi
jne 0x40d7ef
mov edx, dword [ebx + 0xdc]
sub edx, dword [edi + 0xc]
sub edx, eax
js 0x40d7ef
mov ecx, dword [0x446380]
mov dword [edi + 0xa0], ecx
cmp dword [ebp - 0x3cc], eax
jge 0x40d7ef
mov dword [ebp - 0x3cc], eax
mov eax, dword [ebx + 0x138]
cmp edi, eax
jne 0x40d801
mov edx, dword [eax]
mov dword [ebx + 0x138], edx
cmp dword [ebx + 0x138], esi
jne 0x40d682
cmp dword [ebx + 0x138], esi
je 0x40d85f
cmp dword [0x45b59c], esi
je 0x40d84d
mov eax, dword [ebx + 0x138]
movzx ecx, word [eax + 0x234]
push ecx
call fcn.00404d60
mov edx, dword [ebx + 0x138]
push eax
add edx, 0x134
push edx
push str.SendQueries_question_loop_1:_Skipping_NewQuestion__s___s_
push 3
call fcn.00420520
add esp, 0x10
mov eax, dword [ebx + 0x138]
mov ecx, dword [eax]
mov dword [ebx + 0x138], ecx
cmp ecx, esi
jne 0x40d815
mov edx, dword [ebx + 0xdc]
mov edi, dword [ebx + 0x130]
add edx, 0x78000000
mov dword [ebx + 0x138], esi
mov dword [ebx + 0xf4], edx
cmp edi, esi
je 0x40dabd
jmp 0x40d890
cmp edi, dword [ebx + 0x134]
je 0x40dabd
cmp word [edi + 0x132], si
jne 0x40da62
cmp dword [edi + 0xa0], esi
jne 0x40d8eb
cmp dword [edi + 0x11c], esi
jne 0x40da62
mov eax, dword [edi + 0x10]
cmp eax, esi
jle 0x40da62
cmp dword [edi + 0x38], esi
jne 0x40da62
cmp eax, dword [ebp - 0x3cc]
jg 0x40da62
push ebx
call fcn.0040d2d0
test eax, eax
je 0x40da62
mov ecx, dword [edi + 0x10]
mov eax, ecx
cdq
sub eax, edx
mov edx, dword [ebx + 0xdc]
sar eax, 1
sub edx, eax
sub edx, dword [edi + 0xc]
js 0x40d989
mov eax, dword [0x446380]
lea ecx, [ecx + ecx*2]
mov dword [edi + 0xa0], eax
mov dword [edi + 0x10], ecx
mov edx, dword [0x46129c]
mov eax, edx
imul eax, eax, 0xe10
cmp ecx, eax
jle 0x40d92e
mov dword [edi + 0x10], eax
jmp 0x40d989
cmp dword [edi + 0x20], esi
jne 0x40d989
add edx, 2
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x1b
cmp ecx, eax
jne 0x40d989
cmp dword [edi + 0xa8], esi
jne 0x40d989
movzx eax, word [edi + 0x234]
cmp eax, 1
je 0x40d964
cmp eax, 0x1c
jne 0x40d977
mov ecx, dword [edi + 4]
lea eax, [edi + 0x134]
push ebx
call fcn.0040ce50
test eax, eax
jne 0x40d989
mov ecx, dword [edi + 4]
push esi
push ecx
lea edx, [edi + 0x134]
push edx
push ebx
call fcn.0040cd20
mov ecx, dword [edi + 0xa0]
xor eax, eax
cmp ecx, dword [0x446380]
sete al
mov dword [edi + 0xa4], eax
cmp eax, esi
je 0x40d9d1
mov ecx, dword [ebp - 0x3bc]
cmp ecx, esi
jne 0x40d9b2
xor eax, eax
jmp 0x40d9c2
mov eax, dword [edi + 0x118]
cmp eax, esi
jne 0x40d9c2
mov eax, dword [ecx + 0x14f4]
mov dword [edi + 0xa0], eax
mov edx, dword [ebx + 0xdc]
mov dword [edi + 0xc], edx
mov eax, dword [edi + 0x10]
cdq
sub eax, edx
mov edx, dword [edi + 0x40]
mov ecx, eax
mov eax, dword [ebx + 0xdc]
sar ecx, 1
sub eax, ecx
sub edx, eax
jns 0x40d9ed
mov dword [edi + 0x44], esi
mov ecx, dword [edi + 0x4c]
sub ecx, eax
jns 0x40d9f7
mov dword [edi + 0x50], esi
mov edx, dword [edi + 0x58]
sub edx, eax
jns 0x40da01
mov dword [edi + 0x5c], esi
mov ecx, dword [edi + 0x64]
sub ecx, eax
jns 0x40da0b
mov dword [edi + 0x68], esi
mov edx, dword [edi + 0x70]
sub edx, eax
jns 0x40da15
mov dword [edi + 0x74], esi
mov ecx, dword [edi + 0x7c]
sub ecx, eax
jns 0x40da22
mov dword [edi + 0x80], esi
mov edx, dword [edi + 0x88]
sub edx, eax
jns 0x40da32
mov dword [edi + 0x8c], esi
mov ecx, dword [edi + 0x94]
sub ecx, eax
jns 0x40da42
mov dword [edi + 0x98], esi
mov edx, dword [ebx + 0xdc]
mov eax, dword [edi + 0xa8]
mov dword [edi + 0xac], edx
mov dword [edi + 0x1c], esi
cmp eax, esi
je 0x40da62
dec eax
mov dword [edi + 0xa8], eax
mov eax, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x2c]
lea edx, [eax + 1]
cmp ecx, edx
je 0x40da7f
push eax
push ecx
push str.SetNextQueryTime:_Lock_not_held__mDNS_busy___ld__mDNS_reentrancy___ld_
push esi
call fcn.00420520
add esp, 0x10
mov edx, dword [edi + 0x10]
cmp edx, esi
jle 0x40dab3
cmp dword [edi + 0x38], esi
jne 0x40dab3
lea ecx, [ebx + 0xf4]
cmp word [edi + 0x132], si
je 0x40daa0
lea ecx, [ebx + 0x2028]
mov eax, dword [edi + 0xc]
mov esi, dword [ecx]
sub esi, eax
sub esi, edx
test esi, esi
jle 0x40dab1
add eax, edx
mov dword [ecx], eax
xor esi, esi
mov edi, dword [edi]
cmp edi, esi
jne 0x40d890
mov eax, dword [ebx + 0xdc]
add eax, 0x78000000
mov dword [ebx + 0xf8], eax
mov eax, dword [ebx + 0x2010]
cmp eax, esi
je 0x40dafb
mov edx, dword [eax + 0x24]
lea ecx, [ebx + 0x37]
push ecx
add edx, 4
push edx
add eax, 4
push eax
call fcn.00404f60
push eax
push str.SendQueries_ERROR_m__CurrentRecord_already_set__s
push esi
call fcn.00420520
add esp, 0xc
mov eax, dword [ebx + 0x2004]
mov dword [ebx + 0x2010], eax
cmp eax, esi
je 0x40de7a
nop
mov esi, dword [ebx + 0x2010]
mov eax, dword [esi]
mov dword [ebx + 0x2010], eax
mov ecx, dword [esi + 0x1c]
cmp ecx, dword [0x44637c]
jne 0x40db40
cmp byte [esi + 0x46], 0
jne 0x40db40
mov edx, dword [esi + 0x20]
push edx
call fcn.00401320
test eax, eax
je 0x40de6d
cmp byte [esi + 4], 2
jne 0x40de6d
mov eax, dword [ebx + 0xdc]
sub eax, dword [esi + 0xb8]
sub eax, dword [esi + 0xb4]
js 0x40de64
cmp byte [esi + 0x7d], 0
je 0x40ddd9
mov eax, dword [esi + 0x5c]
cmp eax, 4
jne 0x40dbf4
cmp dword [0x45b59c], 0
je 0x40dbca
mov eax, dword [ebx + 0x2018]
test eax, eax
je 0x40db9e
mov ecx, dword [esi + 0x1c]
mov edi, edi
cmp dword [eax + 0x14f4], ecx
je 0x40dbe8
mov eax, dword [eax]
test eax, eax
jne 0x40db90
xor edi, edi
mov edx, dword [esi + 0x24]
lea ecx, [ebx + 0x37]
push ecx
add edx, 4
push edx
lea eax, [esi + 4]
push eax
call fcn.00404f60
push eax
movzx eax, byte [esi + 0x7d]
push edi
push eax
push str.SendQueries_ARP_Probe__d__s__s
push 2
call fcn.00420520
add esp, 0x14
push 0x4463d8
push esi
push 1
lea eax, [esi + 0x50]
lea edx, [esi + 0x60]
push ebx
mov edi, 0x4463ec
call fcn.0040c2a0
jmp 0x40dc69
test eax, eax
je 0x40db9e
lea edi, [eax + 0x1526]
jmp 0x40dba0
cmp eax, 6
jne 0x40dc69
cmp dword [0x45b59c], 0
je 0x40dc4a
mov eax, dword [ebx + 0x2018]
test eax, eax
je 0x40dc1e
mov ecx, dword [esi + 0x1c]
nop
cmp dword [eax + 0x14f4], ecx
je 0x40dc88
mov eax, dword [eax]
test eax, eax
jne 0x40dc10
xor edi, edi
mov edx, dword [esi + 0x24]
lea ecx, [ebx + 0x37]
push ecx
add edx, 4
push edx
lea eax, [esi + 4]
push eax
call fcn.00404f60
push eax
movzx eax, byte [esi + 0x7d]
push edi
push eax
push str.SendQueries_NDP_Probe__d__s__s
push 2
call fcn.00420520
add esp, 0x14
lea ecx, [esi + 0x50]
push ecx
lea edx, [esi + 0x60]
push edx
push 0
push 0x4463dc
push 0
push 0x87
mov edx, esi
mov ecx, ebx
call fcn.0040c4e0
mov ecx, dword [ebp - 0x3bc]
test ecx, ecx
je 0x40dc94
cmp dword [esi + 0x4a], 0
jne 0x40dc94
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x40dc96
mov eax, dword [ecx + 0x14f4]
jmp 0x40dc96
test eax, eax
je 0x40dc1e
lea edi, [eax + 0x1526]
jmp 0x40dc20
xor eax, eax
cmp byte [esi + 0x7d], 3
mov dword [esi + 0x90], eax
mov eax, dword [ebx + 0xdc]
mov dword [esi + 0xb8], eax
jbe 0x40dcb2
mov byte [esi + 0x7d], 3
dec byte [esi + 0x7d]
mov eax, esi
mov edi, ebx
call fcn.0040b080
cmp byte [esi + 0x7d], 0
jne 0x40de6d
mov edi, dword [ebx + 0x2008]
test edi, edi
je 0x40dd6d
jmp 0x40dce0
cmp byte [edi + 4], 2
lea ecx, [edi + 4]
jne 0x40dd63
mov edx, dword [edi + 0x1c]
cmp edx, dword [esi + 0x1c]
jne 0x40dd63
mov al, byte [esi + 4]
cmp al, 2
je 0x40dd0a
mov dl, al
or dl, 2
cmp dl, 0x12
je 0x40dd0a
cmp al, 1
jne 0x40dd63
mov ax, word [edi + 6]
cmp ax, word [esi + 6]
jne 0x40dd63
mov dx, word [edi + 8]
cmp dx, word [esi + 8]
jne 0x40dd63
mov eax, dword [edi + 0x14]
cmp eax, dword [esi + 0x14]
jne 0x40dd63
mov dx, word [edi + 0x10]
cmp dx, word [esi + 0x10]
jne 0x40dd63
mov eax, dword [edi + 0x18]
cmp eax, dword [esi + 0x18]
jne 0x40dd63
mov edx, dword [esi + 0x24]
push fcn.00401270
add edx, 4
push edx
push ecx
call fcn.00402500
test eax, eax
je 0x40dd63
mov eax, dword [esi + 0x20]
mov ecx, dword [edi + 0x20]
push eax
push ecx
call fcn.00401270
test eax, eax
je 0x40dd63
mov byte [edi + 0x7d], 0
mov edi, dword [edi]
test edi, edi
jne 0x40dce0
cmp byte [esi + 0x7c], 0
jne 0x40de6d
cmp dword [esi + 0x3c], 0
je 0x40de6d
mov byte [esi + 0x7c], 1
inc dword [ebx + 0x30]
mov eax, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x2c]
cmp ecx, eax
je 0x40dda8
push eax
push ecx
push str.AcknowledgeRecord
push str._s:_Locking_Failure__mDNS_busy___ld____mDNS_reentrancy___ld_
push 0
call fcn.00420520
add esp, 0x14
mov edx, dword [esi + 0x3c]
push 0
push esi
push ebx
call edx
mov eax, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x2c]
cmp ecx, eax
je 0x40ddd1
push eax
push ecx
push str.AcknowledgeRecord
push str._s:_Unlocking_Failure__mDNS_busy___ld____mDNS_reentrancy___ld_
push 0
call fcn.00420520
add esp, 0x14
dec dword [ebx + 0x30]
jmp 0x40de6d
cmp byte [esi + 0x7c], 0
jne 0x40de38
cmp dword [esi + 0x3c], 0
je 0x40de38
mov byte [esi + 0x7c], 1
inc dword [ebx + 0x30]
mov eax, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x2c]
cmp ecx, eax
je 0x40de0c
push eax
push ecx
push str.AcknowledgeRecord
push str._s:_Locking_Failure__mDNS_busy___ld____mDNS_reentrancy___ld_
push 0
call fcn.00420520
add esp, 0x14
mov eax, dword [esi + 0x3c]
push 0
push esi
push ebx
call eax
mov eax, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x2c]
cmp ecx, eax
je 0x40de35
push eax
push ecx
push str.AcknowledgeRecord
push str._s:_Unlocking_Failure__mDNS_busy___ld____mDNS_reentrancy___ld_
push 0
call fcn.00420520
add esp, 0x14
dec dword [ebx + 0x30]
mov byte [esi + 4], 0x10
mov eax, dword [0x46129c]
cdq
sub eax, edx
sar eax, 1
mov dword [esi + 0xb4], eax
mov eax, dword [0x46129c]
mov ecx, dword [ebx + 0xdc]
cdq
sub eax, edx
sar eax, 1
sub ecx, eax
mov dword [esi + 0xb8], ecx
mov eax, esi
mov edi, ebx
call fcn.0040b080
cmp dword [ebx + 0x2010], 0
jne 0x40db10
mov eax, dword [ebx + 0x2008]
mov dword [ebx + 0x2010], eax
test eax, eax
je 0x40df17
or edi, 0xffffffff
mov esi, dword [ebx + 0x2010]
mov edx, dword [esi]
mov dword [ebx + 0x2010], edx
cmp byte [esi + 4], 2
jne 0x40df0a
cmp byte [esi + 0x7d], 0
jne 0x40df0a
cmp byte [esi + 0x7c], 0
jne 0x40df0a
cmp dword [esi + 0x3c], 0
je 0x40df0a
mov byte [esi + 0x7c], 1
inc dword [ebx + 0x30]
mov eax, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x2c]
cmp ecx, eax
je 0x40dede
push eax
push ecx
push str.AcknowledgeRecord
push str._s:_Locking_Failure__mDNS_busy___ld____mDNS_reentrancy___ld_
push 0
call fcn.00420520
add esp, 0x14
mov eax, dword [esi + 0x3c]
push 0
push esi
push ebx
call eax
mov eax, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x2c]
cmp ecx, eax
je 0x40df07
push eax
push ecx
push str.AcknowledgeRecord
push str._s:_Unlocking_Failure__mDNS_busy___ld____mDNS_reentrancy___ld_
push 0
call fcn.00420520
add esp, 0x14
add dword [ebx + 0x30], edi
cmp dword [ebx + 0x2010], 0
jne 0x40de91
cmp dword [ebp - 0x3bc], 0
je 0x40e5af
jmp 0x40df30
cmp dword [ebx + 0x11c], 0
mov eax, dword [ebp - 0x3bc]
je 0x40df7e
cmp dword [eax + 0x1520], 0
je 0x40df7e
mov cx, word [ebx + 0x1c]
cmp cx, word [eax + 0x1520]
jne 0x40df74
mov dx, word [ebx + 0x1e]
cmp dx, word [eax + 0x1522]
jne 0x40df74
mov cx, word [ebx + 0x20]
cmp cx, word [eax + 0x1524]
mov eax, 0xc
je 0x40df79
mov eax, 0x12
lea esi, [eax + 0xb]
jmp 0x40df80
xor esi, esi
movzx edx, word [0x446484]
lea eax, [ebx + 0x5b08]
mov dword [ebp - 0x3b8], eax
movzx eax, word [0x44647c]
push edx
push eax
lea eax, [ebx + 0x5afc]
push eax
mov dword [ebp - 0x3c8], esi
call fcn.00402f90
mov ecx, dword [ebp - 0x3d0]
test ecx, ecx
jne 0x40e1ce
mov dword [ebp - 0x3cc], esi
mov esi, dword [ebx + 0x130]
lea edx, [ebp - 0x3d0]
mov dword [ebp - 0x3c4], edx
test esi, esi
je 0x40e0f2
lea esp, [esp]
cmp esi, dword [ebx + 0x134]
je 0x40e0ec
cmp word [esi + 0x132], 0
jne 0x40e0e2
mov eax, dword [ebp - 0x3bc]
mov eax, dword [eax + 0x14f4]
mov dword [ebp - 0x3d8], eax
cmp dword [esi + 0xa0], eax
jne 0x40e0e2
mov eax, dword [ebp - 0x3bc]
xor ecx, ecx
cmp byte [eax + 5], cl
sete cl
xor edx, edx
cmp byte [eax + 6], dl
lea eax, [esi + 0x48]
sete dl
mov dword [ebp - 0x3c0], ecx
mov edi, edx
xor edx, edx
jmp 0x40e040
mov ecx, dword [ebp - 0x3d8]
cmp dword [eax - 4], ecx
jne 0x40e073
mov ecx, dword [eax]
cmp ecx, 4
jne 0x40e05e
mov dword [ebp - 0x3c0], 1
jmp 0x40e06f
cmp ecx, 6
jne 0x40e066
lea edi, [ecx - 5]
cmp dword [ebp - 0x3c0], 0
je 0x40e073
test edi, edi
jne 0x40e0a3
inc edx
add eax, 0xc
cmp edx, 8
jl 0x40e040
lea edx, [ebp - 0x3cc]
push edx
lea eax, [ebp - 0x3c4]
push eax
push esi
lea ecx, [ebp - 0x3b8]
push ecx
lea eax, [ebx + 0x5afc]
push eax
push ebx
call fcn.0040caf0
test eax, eax
je 0x40e0e2
cmp dword [esi + 0x118], 0
jne 0x40e0c3
cmp dword [esi + 0xa4], 0
je 0x40e0c3
mov edx, dword [ebp - 0x3bc]
push edx
call fcn.00401060
jmp 0x40e0c5
xor eax, eax
cmp byte [esi + 0xb9], 0
mov dword [esi + 0xa0], eax
je 0x40e0e2
push ebx
mov ecx, esi
call fcn.0040d160
dec byte [esi + 0xb9]
mov esi, dword [esi]
test esi, esi
jne 0x40dfe0
mov ecx, dword [ebp - 0x3d0]
mov esi, dword [ebx + 0x2004]
test esi, esi
je 0x40e1c6
mov eax, dword [esi + 0x90]
mov ecx, dword [ebp - 0x3bc]
cmp eax, dword [ecx + 0x14f4]
jne 0x40e1b6
cmp byte [esi + 0x7d], 2
jb 0x40e12b
cmp dword [ebx + 8], 0
je 0x40e12b
mov eax, 1
jmp 0x40e12d
xor eax, eax
movzx edx, word [ebx + 0x5b00]
mov edi, dword [ebp - 0x3cc]
neg edx
sbb edx, edx
and edx, 0xffffe2b4
neg eax
sbb eax, eax
and eax, 0x8000
or ax, word [esi + 8]
lea ecx, [edx + ebx + 0x7df4]
movzx edx, word [esi + 0x12]
movzx eax, ax
push eax
mov eax, dword [ebp - 0x3b8]
push 0xff
lea edi, [edx + edi + 0xc]
mov edx, dword [esi + 0x20]
push edx
sub ecx, edi
push ecx
push eax
lea eax, [ebx + 0x5afc]
push eax
call fcn.00403840
test eax, eax
je 0x40e1b6
cmp dword [esi + 0x1c], 0
mov dword [ebp - 0x3b8], eax
mov dword [ebp - 0x3cc], edi
je 0x40e19d
xor eax, eax
jmp 0x40e1a9
mov ecx, dword [ebp - 0x3bc]
push ecx
call fcn.00401060
mov dword [esi + 0x90], eax
mov byte [esi + 0x81], 1
mov esi, dword [esi]
test esi, esi
jne 0x40e100
mov ecx, dword [ebp - 0x3d0]
test ecx, ecx
je 0x40e278
mov edi, dword [ebp - 0x3b8]
mov edx, ebx
sub edx, dword [ebp - 0x3c8]
add edx, 0x60a8
mov dword [ebp - 0x3c0], edx
jmp 0x40e1f0
mov eax, dword [ebx + 0xdc]
sub eax, dword [ecx + 0x30]
xor edx, edx
div dword [0x46129c]
mov edx, dword [ebp - 0x3c0]
push edx
mov edx, dword [ecx + 0xc]
mov esi, ecx
add ecx, 4
sub edx, eax
push edx
push ecx
lea eax, [ebx + 0x5b02]
push eax
push edi
lea eax, [ebx + 0x5afc]
push eax
call fcn.00405630
test eax, eax
je 0x40e250
mov edi, eax
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0x3d0], eax
mov dword [esi + 0x2c], 0
mov ecx, dword [ebp - 0x3d0]
mov dword [ebp - 0x3b8], edi
test ecx, ecx
jne 0x40e1f0
jmp 0x40e278
cmp word [ebx + 0x5b00], 1
jbe 0x40e271
movzx ecx, word [ebx + 0x5b02]
push ecx
push str.SendQueries:___Put__d_answers__No_more_space_for_known_answers
push 0
call fcn.00420520
add esp, 0xc
or byte [ebx + 0x5afe], 2
mov esi, dword [ebx + 0x2004]
test esi, esi
je 0x40e32d
jmp 0x40e290
cmp byte [esi + 0x81], 0
je 0x40e323
cmp word [ebx + 0x5b02], 0
jne 0x40e2c0
cmp word [ebx + 0x5b04], 0
jne 0x40e2c0
cmp word [ebx + 0x5b06], 0
mov eax, 0x22ec
je 0x40e2c5
mov eax, 0x5a0
lea edx, [eax + ebx + 0x5b08]
mov eax, dword [esi + 0xc]
push edx
mov edx, dword [ebp - 0x3b8]
push eax
lea edi, [esi + 4]
push edi
lea ecx, [ebx + 0x5b04]
push ecx
push edx
lea eax, [ebx + 0x5afc]
push eax
call fcn.00405630
mov byte [esi + 0x81], 0
test eax, eax
je 0x40e302
mov dword [ebp - 0x3b8], eax
jmp 0x40e323
mov ecx, dword [esi + 0x24]
lea eax, [ebx + 0x37]
push eax
add ecx, 4
push ecx
push edi
call fcn.00404f60
push eax
push str.SendQueries:___How_did_we_fail_to_have_space_for_the_Update_record__s
push 0
call fcn.00420520
add esp, 0xc
mov esi, dword [esi]
test esi, esi
jne 0x40e290
mov edi, dword [ebp - 0x3b8]
lea eax, [ebx + 0x5b08]
cmp edi, eax
jbe 0x40e6fc
cmp dword [ebp - 0x3c8], 0
je 0x40e4ca
mov edx, dword [0x44637c]
push 0
push 0
push 0
push 0x20
push 0x1194
push 0x29
push edx
push 0
lea eax, [ebp - 0x3b4]
push eax
call fcn.004021d0
mov eax, dword [ebp - 0x390]
mov esi, dword [ebp - 0x3bc]
mov ecx, 0x5a0
mov word [ebp - 0x3ac], cx
add eax, 4
mov ecx, ebx
mov dword [ebp - 0x3a4], 0x180018
call fcn.0040c860
cmp dword [0x45b59c], 0
je 0x40e3d1
mov edx, dword [ebp - 0x390]
lea ecx, [ebx + 0x37]
push ecx
add edx, 4
push edx
lea eax, [ebp - 0x3b0]
push eax
call fcn.00404f60
push eax
push str.SendQueries_putting__s
push 2
call fcn.00420520
add esp, 0xc
mov edx, dword [ebp - 0x3a8]
lea ecx, [ebx + 0x7df4]
push ecx
push edx
lea eax, [ebp - 0x3b0]
push eax
lea esi, [ebx + 0x5b06]
push esi
push edi
lea eax, [ebx + 0x5afc]
push eax
call fcn.00405630
mov edi, eax
test edi, edi
jne 0x40e445
mov edx, dword [ebp - 0x390]
lea ecx, [ebx + 0x37]
push ecx
add edx, 4
push edx
lea eax, [ebp - 0x3b0]
push eax
call fcn.00404f60
movzx ecx, word [esi]
movzx edx, word [ebx + 0x5b04]
push eax
movzx eax, word [ebx + 0x5b02]
push ecx
movzx ecx, word [ebx + 0x5b00]
push edx
push eax
push ecx
push str.SendQueries:_How_did_we_fail_to_have_space_for_the_OPT_record___d__d__d__d___s
push edi
call fcn.00420520
add esp, 0x1c
lea eax, [ebx + 0x60a8]
cmp edi, eax
jbe 0x40e4ca
mov eax, 1
cmp word [ebx + 0x5b00], ax
jne 0x40e475
cmp word [ebx + 0x5b02], 0
jne 0x40e475
cmp word [ebx + 0x5b04], ax
jne 0x40e475
cmp word [esi], ax
je 0x40e4ca
mov eax, dword [ebp - 0x390]
lea edx, [ebx + 0x37]
push edx
add eax, 4
push eax
lea ecx, [ebp - 0x3b0]
push ecx
call fcn.00404f60
movzx edx, word [esi]
movzx ecx, word [ebx + 0x5b02]
push eax
movzx eax, word [ebx + 0x5b04]
push edx
movzx edx, word [ebx + 0x5b00]
push eax
push ecx
push edx
push edi
lea eax, [ebx + 0x60a8]
push eax
lea eax, [ebx + 0x5b08]
push eax
push str.SendQueries:_Why_did_we_generate_oversized_packet_with_OPT_record__p__p__p___d__d__d__d___s
push 0
call fcn.00420520
add esp, 0x28
test byte [ebx + 0x5afe], 2
je 0x40e4ef
movzx eax, word [ebx + 0x5b00]
cmp eax, 1
jbe 0x40e4ef
push eax
push str.SendQueries:_Should_not_have_more_than_one_question___d__in_a_truncated_packet
push 0
call fcn.00420520
add esp, 0xc
mov esi, dword [ebp - 0x3bc]
cmp byte [esi + 5], 0
je 0x40e523
movzx ecx, word [0x4463b4]
mov edx, dword [esi + 0x14f4]
push 0
push 0
push ecx
push 0x446454
push 0
push edx
push edi
lea eax, [ebx + 0x5afc]
push eax
push ebx
call fcn.00406e50
cmp byte [esi + 6], 0
je 0x40e551
movzx eax, word [0x4463b4]
mov ecx, dword [esi + 0x14f4]
push 0
push 0
push eax
push 0x446468
push 0
push ecx
push edi
lea eax, [ebx + 0x5afc]
push eax
push ebx
call fcn.00406e50
cmp dword [ebx + 0xec], 0
jne 0x40e587
mov ecx, dword [0x46129c]
add ecx, 9
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, dword [ebx + 0xdc]
jne 0x40e581
mov eax, 1
mov dword [ebx + 0xec], eax
mov eax, dword [ebp - 0x3d4]
inc eax
mov dword [ebp - 0x3d4], eax
cmp eax, 0x3e8
jl 0x40e710
push eax
push str.SendQueries_exceeded_loop_limit__d:_giving_up
push 0
call fcn.00420520
add esp, 0xc
mov esi, dword [ebx + 0x2004]
test esi, esi
je 0x40e615
lea esp, [esp]
cmp dword [esi + 0x90], 0
je 0x40e60f
mov eax, dword [esi + 0x78]
cmp eax, 2
je 0x40e605
cmp eax, 3
je 0x40e605
mov edx, dword [esi + 0x24]
lea ecx, [ebx + 0x37]
push ecx
add edx, 4
push edx
lea eax, [esi + 4]
push eax
call fcn.00404f60
mov ecx, dword [esi + 0x1c]
mov edx, dword [esi + 0x90]
push eax
push ecx
push edx
push str.SendQueries:_No_active_interface__p_to_send_probe:__p__s
push 0
call fcn.00420520
add esp, 0x14
mov dword [esi + 0x90], 0
mov esi, dword [esi]
test esi, esi
jne 0x40e5c0
lea eax, [ebx + 0x15c]
mov dword [ebp - 0x3d4], eax
mov dword [ebp - 0x3c0], 0x1f3
jmp 0x40e630
mov eax, dword [eax]
mov dword [ebp - 0x3c4], eax
test eax, eax
je 0x40e6aa
lea esp, [esp]
mov esi, dword [eax + 8]
test esi, esi
je 0x40e69e
cmp dword [esi + 0x40], 0
je 0x40e692
mov edi, dword [esi + 0x44]
cmp edi, 4
jae 0x40e692
mov ecx, dword [esi + 0xc]
imul ecx, dword [0x46129c]
mov eax, 0x51eb851f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
sub eax, dword [esi + 0x38]
add eax, dword [ebx + 0xdc]
js 0x40e692
mov eax, dword [esi + 0x40]
inc edi
mov dword [esi + 0x44], edi
push ebx
mov dword [eax + 0xa0], 0
call fcn.0040c930
mov esi, dword [esi]
test esi, esi
jne 0x40e647
mov eax, dword [ebp - 0x3c4]
mov eax, dword [eax]
mov dword [ebp - 0x3c4], eax
test eax, eax
jne 0x40e640
mov eax, dword [ebp - 0x3d4]
add eax, 4
dec dword [ebp - 0x3c0]
mov dword [ebp - 0x3d4], eax
jne 0x40e630
mov esi, dword [ebx + 0x130]
test esi, esi
je 0x40e777
cmp dword [esi + 0xa0], 0
je 0x40e76d
mov eax, dword [ebx + 0x134]
test eax, eax
je 0x40e72b
lea ebx, [ebx]
cmp eax, esi
je 0x40e722
mov eax, dword [eax]
test eax, eax
jne 0x40e6f0
jmp 0x40e72b
mov edx, dword [ebp - 0x3bc]
mov eax, dword [edx]
push eax
call fcn.00401040
mov dword [ebp - 0x3bc], eax
cmp dword [ebp - 0x3bc], 0
jne 0x40df30
jmp 0x40e5af
mov edi, 0x44948c
test eax, eax
jne 0x40e730
mov edi, 0x449488
movzx ecx, word [esi + 0x234]
push ecx
call fcn.00404d60
mov ecx, dword [esi + 0xa0]
push eax
mov eax, dword [esi + 0x118]
lea edx, [esi + 0x134]
push edx
push eax
push edi
push ecx
push str.SendQueries:_No_active_interface__p_to_send__s_question:__p__s___s_
push 0
call fcn.00420520
add esp, 0x1c
mov dword [esi + 0xa0], 0
mov esi, dword [esi]
test esi, esi
jne 0x40e6d3
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.00439e8a
mov esp, ebp
pop ebp
ret