Function at 0x40d3f0
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 0x40d616
jmp 0x40d460
mov edx, dword [ebp - 0x3c4]
mov eax, dword [edx + 8]
mov dword [ebp - 0x3b8], eax
test eax, eax
je 0x40d600
jmp 0x40d480
mov eax, dword [ebp - 0x3b8]
mov ecx, dword [eax + 0x40]
test ecx, ecx
je 0x40d5ea
mov edx, eax
cmp dword [edx + 0x44], 4
jae 0x40d5ea
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 0x40d5ea
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 0x40d506
mov eax, dword [ecx + 0x40]
sub eax, edi
jns 0x40d506
xor edx, edx
mov dword [ecx + 0x44], edx
jmp 0x40d508
xor edx, edx
mov eax, dword [ebp - 0x3d8]
cmp dword [ecx + 0x50], eax
jne 0x40d51d
mov esi, dword [ecx + 0x4c]
sub esi, edi
jns 0x40d51d
mov dword [ecx + 0x50], edx
cmp dword [ecx + 0x5c], eax
jne 0x40d52c
mov esi, dword [ecx + 0x58]
sub esi, edi
jns 0x40d52c
mov dword [ecx + 0x5c], edx
cmp dword [ecx + 0x68], eax
jne 0x40d53b
mov esi, dword [ecx + 0x64]
sub esi, edi
jns 0x40d53b
mov dword [ecx + 0x68], edx
cmp dword [ecx + 0x74], eax
jne 0x40d54a
mov esi, dword [ecx + 0x70]
sub esi, edi
jns 0x40d54a
mov dword [ecx + 0x74], edx
cmp dword [ecx + 0x80], eax
jne 0x40d55f
mov esi, dword [ecx + 0x7c]
sub esi, edi
jns 0x40d55f
mov dword [ecx + 0x80], edx
cmp dword [ecx + 0x8c], eax
jne 0x40d577
mov esi, dword [ecx + 0x88]
sub esi, edi
jns 0x40d577
mov dword [ecx + 0x8c], edx
cmp dword [ecx + 0x98], eax
jne 0x40d58f
mov eax, dword [ecx + 0x94]
sub eax, edi
jns 0x40d58f
mov dword [ecx + 0x98], edx
cmp dword [ecx + 0x11c], edx
je 0x40d5a5
mov edx, dword [0x446380]
mov dword [ecx + 0xa0], edx
jmp 0x40d5ea
cmp word [ecx + 0x132], dx
je 0x40d5c5
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 0x40d5ea
mov eax, dword [ecx + 0xa0]
cmp eax, edx
mov edx, dword [ebp - 0x3b8]
jne 0x40d5da
mov eax, dword [edx + 0x1c]
jmp 0x40d5e4
cmp eax, dword [edx + 0x1c]
je 0x40d5ea
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 0x40d480
mov edx, dword [ebp - 0x3c4]
mov eax, dword [edx]
mov dword [ebp - 0x3c4], eax
test eax, eax
jne 0x40d460
add dword [ebp - 0x3c8], 4
dec dword [ebp - 0x3c0]
jne 0x40d441
mov eax, dword [ebx + 0x138]
xor esi, esi
cmp eax, esi
je 0x40d65e
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.00420510
add esp, 0x10
mov eax, dword [ebx + 0x130]
mov dword [ebx + 0x138], eax
cmp eax, esi
je 0x40d7fd
mov edi, dword [ebx + 0x138]
cmp edi, dword [ebx + 0x134]
je 0x40d7fd
mov ecx, dword [edi + 0x11c]
cmp ecx, esi
je 0x40d79f
cmp dword [edi + 0xa0], esi
jne 0x40d6bf
mov eax, dword [edi + 0x10]
cmp eax, esi
jle 0x40d79f
cmp dword [edi + 0x38], esi
jne 0x40d79f
mov edx, dword [ebx + 0xdc]
sub edx, dword [edi + 0xc]
sub edx, eax
js 0x40d79f
cmp dword [edi + 0xc0], esi
jne 0x40d6df
movzx eax, word [0x4463d4]
push eax
push ebx
call fcn.00422500
mov dword [edi + 0xc0], eax
cmp eax, esi
je 0x40d75a
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 0x40d76d
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 0x40d79a
mov eax, 1
mov dword [edi + 0x14], eax
jmp 0x40d7df
cmp word [edi + 0x132], si
jne 0x40d7df
cmp ecx, esi
jne 0x40d7df
mov eax, dword [edi + 0x10]
cmp eax, esi
jle 0x40d7df
cmp dword [edi + 0x38], esi
jne 0x40d7df
mov edx, dword [ebx + 0xdc]
sub edx, dword [edi + 0xc]
sub edx, eax
js 0x40d7df
mov ecx, dword [0x446380]
mov dword [edi + 0xa0], ecx
cmp dword [ebp - 0x3cc], eax
jge 0x40d7df
mov dword [ebp - 0x3cc], eax
mov eax, dword [ebx + 0x138]
cmp edi, eax
jne 0x40d7f1
mov edx, dword [eax]
mov dword [ebx + 0x138], edx
cmp dword [ebx + 0x138], esi
jne 0x40d672
cmp dword [ebx + 0x138], esi
je 0x40d84f
cmp dword [0x45b59c], esi
je 0x40d83d
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.00420510
add esp, 0x10
mov eax, dword [ebx + 0x138]
mov ecx, dword [eax]
mov dword [ebx + 0x138], ecx
cmp ecx, esi
jne 0x40d805
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 0x40daad
jmp 0x40d880
cmp edi, dword [ebx + 0x134]
je 0x40daad
cmp word [edi + 0x132], si
jne 0x40da52
cmp dword [edi + 0xa0], esi
jne 0x40d8db
cmp dword [edi + 0x11c], esi
jne 0x40da52
mov eax, dword [edi + 0x10]
cmp eax, esi
jle 0x40da52
cmp dword [edi + 0x38], esi
jne 0x40da52
cmp eax, dword [ebp - 0x3cc]
jg 0x40da52
push ebx
call fcn.0040d2c0
test eax, eax
je 0x40da52
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 0x40d979
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 0x40d91e
mov dword [edi + 0x10], eax
jmp 0x40d979
cmp dword [edi + 0x20], esi
jne 0x40d979
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 0x40d979
cmp dword [edi + 0xa8], esi
jne 0x40d979
movzx eax, word [edi + 0x234]
cmp eax, 1
je 0x40d954
cmp eax, 0x1c
jne 0x40d967
mov ecx, dword [edi + 4]
lea eax, [edi + 0x134]
push ebx
call fcn.0040ce40
test eax, eax
jne 0x40d979
mov ecx, dword [edi + 4]
push esi
push ecx
lea edx, [edi + 0x134]
push edx
push ebx
call fcn.0040cd10
mov ecx, dword [edi + 0xa0]
xor eax, eax
cmp ecx, dword [0x446380]
sete al
mov dword [edi + 0xa4], eax
cmp eax, esi
je 0x40d9c1
mov ecx, dword [ebp - 0x3bc]
cmp ecx, esi
jne 0x40d9a2
xor eax, eax
jmp 0x40d9b2
mov eax, dword [edi + 0x118]
cmp eax, esi
jne 0x40d9b2
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 0x40d9dd
mov dword [edi + 0x44], esi
mov ecx, dword [edi + 0x4c]
sub ecx, eax
jns 0x40d9e7
mov dword [edi + 0x50], esi
mov edx, dword [edi + 0x58]
sub edx, eax
jns 0x40d9f1
mov dword [edi + 0x5c], esi
mov ecx, dword [edi + 0x64]
sub ecx, eax
jns 0x40d9fb
mov dword [edi + 0x68], esi
mov edx, dword [edi + 0x70]
sub edx, eax
jns 0x40da05
mov dword [edi + 0x74], esi
mov ecx, dword [edi + 0x7c]
sub ecx, eax
jns 0x40da12
mov dword [edi + 0x80], esi
mov edx, dword [edi + 0x88]
sub edx, eax
jns 0x40da22
mov dword [edi + 0x8c], esi
mov ecx, dword [edi + 0x94]
sub ecx, eax
jns 0x40da32
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 0x40da52
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 0x40da6f
push eax
push ecx
push str.SetNextQueryTime:_Lock_not_held__mDNS_busy___ld__mDNS_reentrancy___ld_
push esi
call fcn.00420510
add esp, 0x10
mov edx, dword [edi + 0x10]
cmp edx, esi
jle 0x40daa3
cmp dword [edi + 0x38], esi
jne 0x40daa3
lea ecx, [ebx + 0xf4]
cmp word [edi + 0x132], si
je 0x40da90
lea ecx, [ebx + 0x2028]
mov eax, dword [edi + 0xc]
mov esi, dword [ecx]
sub esi, eax
sub esi, edx
test esi, esi
jle 0x40daa1
add eax, edx
mov dword [ecx], eax
xor esi, esi
mov edi, dword [edi]
cmp edi, esi
jne 0x40d880
mov eax, dword [ebx + 0xdc]
add eax, 0x78000000
mov dword [ebx + 0xf8], eax
mov eax, dword [ebx + 0x2010]
cmp eax, esi
je 0x40daeb
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.00420510
add esp, 0xc
mov eax, dword [ebx + 0x2004]
mov dword [ebx + 0x2010], eax
cmp eax, esi
je 0x40de6a
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 0x40db30
cmp byte [esi + 0x46], 0
jne 0x40db30
mov edx, dword [esi + 0x20]
push edx
call fcn.00401320
test eax, eax
je 0x40de5d
cmp byte [esi + 4], 2
jne 0x40de5d
mov eax, dword [ebx + 0xdc]
sub eax, dword [esi + 0xb8]
sub eax, dword [esi + 0xb4]
js 0x40de54
cmp byte [esi + 0x7d], 0
je 0x40ddc9
mov eax, dword [esi + 0x5c]
cmp eax, 4
jne 0x40dbe4
cmp dword [0x45b59c], 0
je 0x40dbba
mov eax, dword [ebx + 0x2018]
test eax, eax
je 0x40db8e
mov ecx, dword [esi + 0x1c]
mov edi, edi
cmp dword [eax + 0x14f4], ecx
je 0x40dbd8
mov eax, dword [eax]
test eax, eax
jne 0x40db80
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.00420510
add esp, 0x14
push 0x4463d8
push esi
push 1
lea eax, [esi + 0x50]
lea edx, [esi + 0x60]
push ebx
mov edi, 0x4463ec
call fcn.0040c290
jmp 0x40dc59
test eax, eax
je 0x40db8e
lea edi, [eax + 0x1526]
jmp 0x40db90
cmp eax, 6
jne 0x40dc59
cmp dword [0x45b59c], 0
je 0x40dc3a
mov eax, dword [ebx + 0x2018]
test eax, eax
je 0x40dc0e
mov ecx, dword [esi + 0x1c]
nop
cmp dword [eax + 0x14f4], ecx
je 0x40dc78
mov eax, dword [eax]
test eax, eax
jne 0x40dc00
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.00420510
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.0040c4d0
mov ecx, dword [ebp - 0x3bc]
test ecx, ecx
je 0x40dc84
cmp dword [esi + 0x4a], 0
jne 0x40dc84
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x40dc86
mov eax, dword [ecx + 0x14f4]
jmp 0x40dc86
test eax, eax
je 0x40dc0e
lea edi, [eax + 0x1526]
jmp 0x40dc10
xor eax, eax
cmp byte [esi + 0x7d], 3
mov dword [esi + 0x90], eax
mov eax, dword [ebx + 0xdc]
mov dword [esi + 0xb8], eax
jbe 0x40dca2
mov byte [esi + 0x7d], 3
dec byte [esi + 0x7d]
mov eax, esi
mov edi, ebx
call fcn.0040b070
cmp byte [esi + 0x7d], 0
jne 0x40de5d
mov edi, dword [ebx + 0x2008]
test edi, edi
je 0x40dd5d
jmp 0x40dcd0
cmp byte [edi + 4], 2
lea ecx, [edi + 4]
jne 0x40dd53
mov edx, dword [edi + 0x1c]
cmp edx, dword [esi + 0x1c]
jne 0x40dd53
mov al, byte [esi + 4]
cmp al, 2
je 0x40dcfa
mov dl, al
or dl, 2
cmp dl, 0x12
je 0x40dcfa
cmp al, 1
jne 0x40dd53
mov ax, word [edi + 6]
cmp ax, word [esi + 6]
jne 0x40dd53
mov dx, word [edi + 8]
cmp dx, word [esi + 8]
jne 0x40dd53
mov eax, dword [edi + 0x14]
cmp eax, dword [esi + 0x14]
jne 0x40dd53
mov dx, word [edi + 0x10]
cmp dx, word [esi + 0x10]
jne 0x40dd53
mov eax, dword [edi + 0x18]
cmp eax, dword [esi + 0x18]
jne 0x40dd53
mov edx, dword [esi + 0x24]
push fcn.00401270
add edx, 4
push edx
push ecx
call fcn.00402500
test eax, eax
je 0x40dd53
mov eax, dword [esi + 0x20]
mov ecx, dword [edi + 0x20]
push eax
push ecx
call fcn.00401270
test eax, eax
je 0x40dd53
mov byte [edi + 0x7d], 0
mov edi, dword [edi]
test edi, edi
jne 0x40dcd0
cmp byte [esi + 0x7c], 0
jne 0x40de5d
cmp dword [esi + 0x3c], 0
je 0x40de5d
mov byte [esi + 0x7c], 1
inc dword [ebx + 0x30]
mov eax, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x2c]
cmp ecx, eax
je 0x40dd98
push eax
push ecx
push str.AcknowledgeRecord
push str._s:_Locking_Failure__mDNS_busy___ld____mDNS_reentrancy___ld_
push 0
call fcn.00420510
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 0x40ddc1
push eax
push ecx
push str.AcknowledgeRecord
push str._s:_Unlocking_Failure__mDNS_busy___ld____mDNS_reentrancy___ld_
push 0
call fcn.00420510
add esp, 0x14
dec dword [ebx + 0x30]
jmp 0x40de5d
cmp byte [esi + 0x7c], 0
jne 0x40de28
cmp dword [esi + 0x3c], 0
je 0x40de28
mov byte [esi + 0x7c], 1
inc dword [ebx + 0x30]
mov eax, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x2c]
cmp ecx, eax
je 0x40ddfc
push eax
push ecx
push str.AcknowledgeRecord
push str._s:_Locking_Failure__mDNS_busy___ld____mDNS_reentrancy___ld_
push 0
call fcn.00420510
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 0x40de25
push eax
push ecx
push str.AcknowledgeRecord
push str._s:_Unlocking_Failure__mDNS_busy___ld____mDNS_reentrancy___ld_
push 0
call fcn.00420510
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.0040b070
cmp dword [ebx + 0x2010], 0
jne 0x40db00
mov eax, dword [ebx + 0x2008]
mov dword [ebx + 0x2010], eax
test eax, eax
je 0x40df07
or edi, 0xffffffff
mov esi, dword [ebx + 0x2010]
mov edx, dword [esi]
mov dword [ebx + 0x2010], edx
cmp byte [esi + 4], 2
jne 0x40defa
cmp byte [esi + 0x7d], 0
jne 0x40defa
cmp byte [esi + 0x7c], 0
jne 0x40defa
cmp dword [esi + 0x3c], 0
je 0x40defa
mov byte [esi + 0x7c], 1
inc dword [ebx + 0x30]
mov eax, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x2c]
cmp ecx, eax
je 0x40dece
push eax
push ecx
push str.AcknowledgeRecord
push str._s:_Locking_Failure__mDNS_busy___ld____mDNS_reentrancy___ld_
push 0
call fcn.00420510
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 0x40def7
push eax
push ecx
push str.AcknowledgeRecord
push str._s:_Unlocking_Failure__mDNS_busy___ld____mDNS_reentrancy___ld_
push 0
call fcn.00420510
add esp, 0x14
add dword [ebx + 0x30], edi
cmp dword [ebx + 0x2010], 0
jne 0x40de81
cmp dword [ebp - 0x3bc], 0
je 0x40e59f
jmp 0x40df20
cmp dword [ebx + 0x11c], 0
mov eax, dword [ebp - 0x3bc]
je 0x40df6e
cmp dword [eax + 0x1520], 0
je 0x40df6e
mov cx, word [ebx + 0x1c]
cmp cx, word [eax + 0x1520]
jne 0x40df64
mov dx, word [ebx + 0x1e]
cmp dx, word [eax + 0x1522]
jne 0x40df64
mov cx, word [ebx + 0x20]
cmp cx, word [eax + 0x1524]
mov eax, 0xc
je 0x40df69
mov eax, 0x12
lea esi, [eax + 0xb]
jmp 0x40df70
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 0x40e1be
mov dword [ebp - 0x3cc], esi
mov esi, dword [ebx + 0x130]
lea edx, [ebp - 0x3d0]
mov dword [ebp - 0x3c4], edx
test esi, esi
je 0x40e0e2
lea esp, [esp]
cmp esi, dword [ebx + 0x134]
je 0x40e0dc
cmp word [esi + 0x132], 0
jne 0x40e0d2
mov eax, dword [ebp - 0x3bc]
mov eax, dword [eax + 0x14f4]
mov dword [ebp - 0x3d8], eax
cmp dword [esi + 0xa0], eax
jne 0x40e0d2
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 0x40e030
mov ecx, dword [ebp - 0x3d8]
cmp dword [eax - 4], ecx
jne 0x40e063
mov ecx, dword [eax]
cmp ecx, 4
jne 0x40e04e
mov dword [ebp - 0x3c0], 1
jmp 0x40e05f
cmp ecx, 6
jne 0x40e056
lea edi, [ecx - 5]
cmp dword [ebp - 0x3c0], 0
je 0x40e063
test edi, edi
jne 0x40e093
inc edx
add eax, 0xc
cmp edx, 8
jl 0x40e030
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.0040cae0
test eax, eax
je 0x40e0d2
cmp dword [esi + 0x118], 0
jne 0x40e0b3
cmp dword [esi + 0xa4], 0
je 0x40e0b3
mov edx, dword [ebp - 0x3bc]
push edx
call fcn.00401060
jmp 0x40e0b5
xor eax, eax
cmp byte [esi + 0xb9], 0
mov dword [esi + 0xa0], eax
je 0x40e0d2
push ebx
mov ecx, esi
call fcn.0040d150
dec byte [esi + 0xb9]
mov esi, dword [esi]
test esi, esi
jne 0x40dfd0
mov ecx, dword [ebp - 0x3d0]
mov esi, dword [ebx + 0x2004]
test esi, esi
je 0x40e1b6
mov eax, dword [esi + 0x90]
mov ecx, dword [ebp - 0x3bc]
cmp eax, dword [ecx + 0x14f4]
jne 0x40e1a6
cmp byte [esi + 0x7d], 2
jb 0x40e11b
cmp dword [ebx + 8], 0
je 0x40e11b
mov eax, 1
jmp 0x40e11d
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 0x40e1a6
cmp dword [esi + 0x1c], 0
mov dword [ebp - 0x3b8], eax
mov dword [ebp - 0x3cc], edi
je 0x40e18d
xor eax, eax
jmp 0x40e199
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 0x40e0f0
mov ecx, dword [ebp - 0x3d0]
test ecx, ecx
je 0x40e268
mov edi, dword [ebp - 0x3b8]
mov edx, ebx
sub edx, dword [ebp - 0x3c8]
add edx, 0x60a8
mov dword [ebp - 0x3c0], edx
jmp 0x40e1e0
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 0x40e240
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 0x40e1e0
jmp 0x40e268
cmp word [ebx + 0x5b00], 1
jbe 0x40e261
movzx ecx, word [ebx + 0x5b02]
push ecx
push str.SendQueries:___Put__d_answers__No_more_space_for_known_answers
push 0
call fcn.00420510
add esp, 0xc
or byte [ebx + 0x5afe], 2
mov esi, dword [ebx + 0x2004]
test esi, esi
je 0x40e31d
jmp 0x40e280
cmp byte [esi + 0x81], 0
je 0x40e313
cmp word [ebx + 0x5b02], 0
jne 0x40e2b0
cmp word [ebx + 0x5b04], 0
jne 0x40e2b0
cmp word [ebx + 0x5b06], 0
mov eax, 0x22ec
je 0x40e2b5
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 0x40e2f2
mov dword [ebp - 0x3b8], eax
jmp 0x40e313
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.00420510
add esp, 0xc
mov esi, dword [esi]
test esi, esi
jne 0x40e280
mov edi, dword [ebp - 0x3b8]
lea eax, [ebx + 0x5b08]
cmp edi, eax
jbe 0x40e6ec
cmp dword [ebp - 0x3c8], 0
je 0x40e4ba
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.0040c850
cmp dword [0x45b59c], 0
je 0x40e3c1
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.00420510
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 0x40e435
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.00420510
add esp, 0x1c
lea eax, [ebx + 0x60a8]
cmp edi, eax
jbe 0x40e4ba
mov eax, 1
cmp word [ebx + 0x5b00], ax
jne 0x40e465
cmp word [ebx + 0x5b02], 0
jne 0x40e465
cmp word [ebx + 0x5b04], ax
jne 0x40e465
cmp word [esi], ax
je 0x40e4ba
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.00420510
add esp, 0x28
test byte [ebx + 0x5afe], 2
je 0x40e4df
movzx eax, word [ebx + 0x5b00]
cmp eax, 1
jbe 0x40e4df
push eax
push str.SendQueries:_Should_not_have_more_than_one_question___d__in_a_truncated_packet
push 0
call fcn.00420510
add esp, 0xc
mov esi, dword [ebp - 0x3bc]
cmp byte [esi + 5], 0
je 0x40e513
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 0x40e541
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 0x40e577
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 0x40e571
mov eax, 1
mov dword [ebx + 0xec], eax
mov eax, dword [ebp - 0x3d4]
inc eax
mov dword [ebp - 0x3d4], eax
cmp eax, 0x3e8
jl 0x40e700
push eax
push str.SendQueries_exceeded_loop_limit__d:_giving_up
push 0
call fcn.00420510
add esp, 0xc
mov esi, dword [ebx + 0x2004]
test esi, esi
je 0x40e605
lea esp, [esp]
cmp dword [esi + 0x90], 0
je 0x40e5ff
mov eax, dword [esi + 0x78]
cmp eax, 2
je 0x40e5f5
cmp eax, 3
je 0x40e5f5
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.00420510
add esp, 0x14
mov dword [esi + 0x90], 0
mov esi, dword [esi]
test esi, esi
jne 0x40e5b0
lea eax, [ebx + 0x15c]
mov dword [ebp - 0x3d4], eax
mov dword [ebp - 0x3c0], 0x1f3
jmp 0x40e620
mov eax, dword [eax]
mov dword [ebp - 0x3c4], eax
test eax, eax
je 0x40e69a
lea esp, [esp]
mov esi, dword [eax + 8]
test esi, esi
je 0x40e68e
cmp dword [esi + 0x40], 0
je 0x40e682
mov edi, dword [esi + 0x44]
cmp edi, 4
jae 0x40e682
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 0x40e682
mov eax, dword [esi + 0x40]
inc edi
mov dword [esi + 0x44], edi
push ebx
mov dword [eax + 0xa0], 0
call fcn.0040c920
mov esi, dword [esi]
test esi, esi
jne 0x40e637
mov eax, dword [ebp - 0x3c4]
mov eax, dword [eax]
mov dword [ebp - 0x3c4], eax
test eax, eax
jne 0x40e630
mov eax, dword [ebp - 0x3d4]
add eax, 4
dec dword [ebp - 0x3c0]
mov dword [ebp - 0x3d4], eax
jne 0x40e620
mov esi, dword [ebx + 0x130]
test esi, esi
je 0x40e767
cmp dword [esi + 0xa0], 0
je 0x40e75d
mov eax, dword [ebx + 0x134]
test eax, eax
je 0x40e71b
lea ebx, [ebx]
cmp eax, esi
je 0x40e712
mov eax, dword [eax]
test eax, eax
jne 0x40e6e0
jmp 0x40e71b
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 0x40df20
jmp 0x40e59f
mov edi, 0x44948c
test eax, eax
jne 0x40e720
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.00420510
add esp, 0x1c
mov dword [esi + 0xa0], 0
mov esi, dword [esi]
test esi, esi
jne 0x40e6c3
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.00439f90
mov esp, ebp
pop ebp
ret