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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3dc
push ebx
mov ebx, ecx
mov dword [ebp - 0x24], 0
push esi
push edi
mov dword [ebp - 0x1c], ebx
mov eax, dword [ebx + 0x1fd4]
mov dword [ebp - 0x18], 0
mov dword [ebp - 8], eax
test eax, eax
je 0x40e0ff
nop dword [eax]
cmp byte [eax + 4], 0
jne 0x40e0fc
mov eax, dword [eax]
test eax, eax
jne 0x40e0f0
mov dword [ebp - 8], eax
lea eax, [ebx + 0x15c]
mov dword [ebp - 0x10], 0
mov ecx, 0x1f3
mov dword [ebp - 0x3c], eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x14], ecx
nop word [eax + eax]
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x40e204
nop dword [eax]
mov esi, dword [eax + 8]
test esi, esi
je 0x40e1f4
nop dword [eax + eax]
mov edi, dword [esi + 0x40]
test edi, edi
je 0x40e1e7
cmp dword [esi + 0x44], 4
jae 0x40e1e7
mov ecx, dword [esi + 0xc]
mov eax, 0x51eb851f
imul ecx, dword [0x44f49c]
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 0x40e1e7
push dword [esi + 0x1c]
mov eax, 0x66666667
imul ecx
lea ecx, [edi + 0x40]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebx + 0xdc]
sub edx, eax
call fcn.0040dd10
cmp dword [edi + 0x11c], 0
jne 0x40e1dd
cmp word [edi + 0x132], 0
je 0x40e1c3
mov eax, dword [ebx + 0xdc]
sub eax, dword [edi + 0x10]
mov dword [edi + 0xc], eax
inc dword [esi + 0x44]
jmp 0x40e1e7
mov eax, dword [edi + 0xa0]
test eax, eax
jne 0x40e1d8
mov eax, dword [esi + 0x1c]
mov dword [edi + 0xa0], eax
jmp 0x40e1e7
cmp eax, dword [esi + 0x1c]
je 0x40e1e7
mov dword [edi + 0xa0], 0xffffffff
mov esi, dword [esi]
test esi, esi
jne 0x40e140
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x40e130
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
add eax, 4
sub ecx, 1
mov dword [ebp - 4], eax
mov dword [ebp - 0x14], ecx
jne 0x40e120
mov eax, dword [ebx + 0x138]
test eax, eax
je 0x40e24b
mov cx, word [eax + 0x234]
call fcn.004010c0
push eax
mov eax, dword [ebx + 0x138]
add eax, 0x134
push eax
push str.SendQueries_ERROR_m__CurrentQuestion_already_set:__s___s_
push 0
call fcn.0041dc40
add esp, 0x10
mov eax, dword [ebx + 0x130]
mov edi, 1
mov dword [ebx + 0x138], eax
test eax, eax
je 0x40e44b
mov esi, dword [ebx + 0x138]
cmp esi, dword [ebx + 0x134]
je 0x40e44b
mov edx, dword [esi + 0x11c]
test edx, edx
je 0x40e3f0
cmp dword [esi + 0xa0], 0
jne 0x40e2b3
mov ecx, dword [esi + 0x10]
test ecx, ecx
jle 0x40e3f0
cmp dword [esi + 0x38], 0
jne 0x40e3f0
mov eax, dword [ebx + 0xdc]
sub eax, dword [esi + 0xc]
sub eax, ecx
js 0x40e3f0
cmp dword [esi + 0xc0], 0
lea edx, [ebx + 0x5970]
lea ecx, [ebx + 0x7c5c]
jne 0x40e2f1
movzx eax, word [0x43d970]
mov ecx, ebx
push eax
call fcn.00431b80
mov dword [esi + 0xc0], eax
lea ecx, [ebx + 0x7c5c]
lea edx, [ebx + 0x5970]
test eax, eax
je 0x40e3a6
movzx eax, word [esi + 0x132]
lea edi, [ebx + 0x5964]
mov word [edi], ax
movzx eax, word [0x43d950]
mov word [edi + 2], ax
xor eax, eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
movzx eax, word [esi + 0x236]
mov dword [ebp - 0x28], eax
movzx eax, word [esi + 0x234]
mov dword [ebp - 0xc], eax
lea eax, [esi + 0x134]
push eax
push ecx
mov ecx, edi
call fcn.00403870
mov edx, eax
test edx, edx
je 0x40e371
lea eax, [edx + 4]
lea ecx, [ebx + 0x7c5c]
mov dword [ebp - 0x14], eax
cmp eax, ecx
jae 0x40e371
mov eax, dword [ebp - 0xc]
mov ecx, eax
shr ecx, 8
mov byte [edx], cl
mov ecx, dword [ebp - 0x28]
mov byte [edx + 1], al
mov eax, ecx
shr eax, 8
mov byte [edx + 3], cl
mov ecx, dword [ebp - 0x14]
mov byte [edx + 2], al
inc word [edi + 4]
jmp 0x40e373
xor ecx, ecx
movzx eax, word [esi + 0x130]
mov edx, edi
push 0
push 0
push eax
lea eax, [esi + 0x11c]
push eax
push dword [esi + 0xc0]
push 0
push ecx
mov ecx, ebx
call fcn.00405b30
mov eax, dword [esi + 0x10]
mov edi, 1
lea eax, [eax + eax*2]
mov dword [esi + 0x10], eax
imul eax, dword [0x44f49c], 0xe10
cmp dword [esi + 0x10], eax
jle 0x40e3b8
mov dword [esi + 0x10], eax
mov eax, dword [ebx + 0xdc]
mov ecx, edi
mov dword [esi + 0xc], eax
mov eax, dword [ebx + 0xdc]
mov dword [esi + 0xac], eax
mov dword [esi + 0x1c], 0
mov dword [esi + 0xa0], 0
mov eax, dword [ebx + 0xdc]
test eax, eax
cmovne ecx, eax
mov dword [esi + 0x14], ecx
jmp 0x40e42c
cmp word [esi + 0x132], 0
jne 0x40e42c
test edx, edx
jne 0x40e42c
mov ecx, dword [esi + 0x10]
test ecx, ecx
jle 0x40e42c
cmp dword [esi + 0x38], edx
jne 0x40e42c
mov eax, dword [ebx + 0xdc]
sub eax, dword [esi + 0xc]
sub eax, ecx
js 0x40e42c
mov eax, dword [ebp - 0x18]
cmp eax, ecx
mov dword [esi + 0xa0], 0xffffffff
cmovl eax, ecx
mov dword [ebp - 0x18], eax
mov eax, dword [ebx + 0x138]
cmp esi, eax
jne 0x40e43e
mov eax, dword [eax]
mov dword [ebx + 0x138], eax
cmp dword [ebx + 0x138], 0
jne 0x40e264
cmp dword [ebx + 0x138], 0
je 0x40e49d
cmp dword [0x44f480], 0
je 0x40e48b
mov eax, dword [ebx + 0x138]
mov cx, word [eax + 0x234]
call fcn.004010c0
push eax
mov eax, dword [ebx + 0x138]
add eax, 0x134
push eax
push str.SendQueries_question_loop_1:_Skipping_NewQuestion__s___s_
push 3
call fcn.0041dc40
add esp, 0x10
mov eax, dword [ebx + 0x138]
mov eax, dword [eax]
mov dword [ebx + 0x138], eax
test eax, eax
jne 0x40e454
mov eax, dword [ebx + 0xdc]
mov esi, dword [ebx + 0x130]
add eax, 0x78000000
mov dword [ebx + 0x138], 0
mov dword [ebx + 0xf4], eax
test esi, esi
je 0x40e723
mov edi, dword [ebp - 8]
nop dword [eax]
cmp esi, dword [ebx + 0x134]
je 0x40e723
cmp word [esi + 0x132], 0
jne 0x40e6c6
cmp dword [esi + 0xa0], 0
jne 0x40e52f
cmp dword [esi + 0x11c], 0
jne 0x40e6c6
mov eax, dword [esi + 0x10]
test eax, eax
jle 0x40e6c6
cmp dword [esi + 0x38], 0
jne 0x40e6c6
cmp eax, dword [ebp - 0x18]
jg 0x40e6c6
mov edx, esi
mov ecx, ebx
call fcn.0040df90
test eax, eax
je 0x40e6c6
mov eax, dword [esi + 0x10]
mov ecx, dword [ebx + 0xdc]
cdq
sub eax, edx
sar eax, 1
sub ecx, eax
sub ecx, dword [esi + 0xc]
js 0x40e5d6
mov eax, dword [esi + 0x10]
imul ecx, dword [0x44f49c], 0xe10
mov dword [esi + 0xa0], 0xffffffff
lea eax, [eax + eax*2]
mov dword [ebp - 0xc], eax
mov dword [esi + 0x10], eax
cmp eax, ecx
jle 0x40e571
mov dword [esi + 0x10], ecx
jmp 0x40e5d6
cmp dword [esi + 0x20], 0
jne 0x40e5d6
mov ecx, dword [0x44f49c]
mov eax, 0x55555556
lea ecx, [ecx + 2]
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x1b
cmp dword [ebp - 0xc], eax
jne 0x40e5d6
cmp dword [esi + 0xa8], 0
jne 0x40e5d6
movzx eax, word [esi + 0x234]
cmp eax, 1
je 0x40e5b0
cmp eax, 0x1c
jne 0x40e5c4
push dword [esi + 4]
lea edx, [esi + 0x134]
mov ecx, ebx
call fcn.0040da70
test eax, eax
jne 0x40e5d6
push 0
push dword [esi + 4]
lea edx, [esi + 0x134]
mov ecx, ebx
call fcn.0040d930
xor eax, eax
cmp dword [esi + 0xa0], 0xffffffff
sete al
mov dword [esi + 0xa4], eax
test eax, eax
je 0x40e613
test edi, edi
jne 0x40e5f4
xor eax, eax
jmp 0x40e604
mov eax, dword [esi + 0x118]
test eax, eax
jne 0x40e604
mov eax, dword [edi + 0x1428]
mov dword [esi + 0xa0], eax
mov eax, dword [ebx + 0xdc]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x10]
mov ecx, dword [ebx + 0xdc]
cdq
sub eax, edx
sar eax, 1
sub ecx, eax
mov eax, dword [esi + 0x40]
sub eax, ecx
jns 0x40e631
mov dword [esi + 0x44], 0
mov eax, dword [esi + 0x4c]
sub eax, ecx
jns 0x40e63f
mov dword [esi + 0x50], 0
mov eax, dword [esi + 0x58]
sub eax, ecx
jns 0x40e64d
mov dword [esi + 0x5c], 0
mov eax, dword [esi + 0x64]
sub eax, ecx
jns 0x40e65b
mov dword [esi + 0x68], 0
mov eax, dword [esi + 0x70]
sub eax, ecx
jns 0x40e669
mov dword [esi + 0x74], 0
mov eax, dword [esi + 0x7c]
sub eax, ecx
jns 0x40e67a
mov dword [esi + 0x80], 0
mov eax, dword [esi + 0x88]
sub eax, ecx
jns 0x40e68e
mov dword [esi + 0x8c], 0
mov eax, dword [esi + 0x94]
sub eax, ecx
jns 0x40e6a2
mov dword [esi + 0x98], 0
mov eax, dword [ebx + 0xdc]
mov dword [esi + 0xac], eax
mov eax, dword [esi + 0xa8]
mov dword [esi + 0x1c], 0
test eax, eax
je 0x40e6c6
dec eax
mov dword [esi + 0xa8], eax
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebx + 0x2c]
lea eax, [ecx + 1]
cmp edx, eax
je 0x40e6e4
push ecx
push edx
push str.SetNextQueryTime:_Lock_not_held__mDNS_busy___ld__mDNS_reentrancy___ld_
push 0
call fcn.0041dc40
add esp, 0x10
mov edx, dword [esi + 0x10]
test edx, edx
jle 0x40e719
cmp dword [esi + 0x38], 0
jne 0x40e719
cmp word [esi + 0x132], 0
lea ecx, [ebx + 0xf4]
je 0x40e707
lea ecx, [ebx + 0x1fe4]
mov eax, dword [ecx]
sub eax, dword [esi + 0xc]
sub eax, edx
test eax, eax
jle 0x40e719
mov eax, dword [esi + 0xc]
add eax, edx
mov dword [ecx], eax
mov esi, dword [esi]
test esi, esi
jne 0x40e4d0
mov eax, dword [ebx + 0xdc]
mov ecx, dword [ebx + 0x1fcc]
add eax, 0x78000000
mov dword [ebx + 0xf8], eax
test ecx, ecx
je 0x40e760
mov edx, dword [ecx + 0x24]
lea eax, [ebx + 0x37]
push eax
add edx, 4
add ecx, 4
call fcn.00401290
push eax
push str.SendQueries_ERROR_m__CurrentRecord_already_set__s
push 0
call fcn.0041dc40
add esp, 0xc
mov eax, dword [ebx + 0x1fc0]
mov dword [ebx + 0x1fcc], eax
test eax, eax
je 0x40ed2e
nop dword [eax]
nop dword [eax + eax]
mov esi, dword [ebx + 0x1fcc]
mov eax, dword [esi]
mov dword [ebx + 0x1fcc], eax
mov edi, dword [esi + 0x1c]
test edi, edi
jne 0x40e7ab
cmp byte [esi + 0x46], 0
jne 0x40e7ab
mov ecx, dword [esi + 0x20]
call fcn.00401a00
test eax, eax
je 0x40ed21
cmp byte [esi + 4], 2
lea ecx, [esi + 4]
jne 0x40ed21
mov eax, dword [ebx + 0xdc]
sub eax, dword [esi + 0xb8]
sub eax, dword [esi + 0xb4]
js 0x40ed18
cmp byte [esi + 0x7d], 0
je 0x40ec95
mov eax, dword [esi + 0x5c]
cmp eax, 4
jne 0x40e851
cmp dword [0x44f480], 0
je 0x40e82a
mov eax, dword [ebx + 0x1fd4]
test eax, eax
je 0x40e803
cmp dword [eax + 0x1428], edi
je 0x40e845
mov eax, dword [eax]
test eax, eax
jne 0x40e7f5
xor edi, edi
mov edx, dword [esi + 0x24]
lea eax, [ebx + 0x37]
push eax
add edx, 4
call fcn.00401290
push eax
movzx eax, byte [esi + 0x7d]
push edi
push eax
push str.SendQueries_ARP_Probe__d__s__s
push 2
call fcn.0041dc40
add esp, 0x14
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x60]
push eax
push ecx
push 0x43d9b4
push esi
mov ecx, ebx
call fcn.0040b700
jmp 0x40e923
test eax, eax
je 0x40e803
lea edi, [eax + 0x145a]
jmp 0x40e805
cmp eax, 6
jne 0x40e923
cmp dword [0x44f480], 0
je 0x40e8a9
mov eax, dword [ebx + 0x1fd4]
test eax, eax
je 0x40e882
nop dword [eax]
cmp dword [eax + 0x1428], edi
je 0x40e94e
mov eax, dword [eax]
test eax, eax
jne 0x40e870
xor edi, edi
mov edx, dword [esi + 0x24]
lea eax, [ebx + 0x37]
push eax
add edx, 4
call fcn.00401290
push eax
movzx eax, byte [esi + 0x7d]
push edi
push eax
push str.SendQueries_NDP_Probe__d__s__s
push 2
call fcn.0041dc40
add esp, 0x14
movzx eax, byte [esi + 0x6d]
lea ecx, [ebx + 0x5970]
mov edx, dword [ebx + 0x1fd4]
mov byte [ebp - 0x2b], al
movzx eax, byte [esi + 0x6e]
mov byte [ebp - 0x2a], al
movzx eax, byte [esi + 0x6f]
mov dword [ebp - 0x38], 0x2ff
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0x1000000
mov byte [ebp - 0x2c], 0xff
mov byte [ebp - 0x29], al
test edx, edx
je 0x40e8fe
mov eax, dword [esi + 0x1c]
nop word [eax + eax]
cmp dword [edx + 0x1428], eax
je 0x40e961
mov edx, dword [edx]
test edx, edx
jne 0x40e8f0
mov edx, dword [esi + 0x24]
lea eax, [ebx + 0x37]
push eax
add edx, 4
lea ecx, [esi + 4]
call fcn.00401290
push eax
push dword [esi + 0x1c]
push str.SendNDP:_No_interface_with_InterfaceID__p_found__s
push 0
call fcn.0041dc40
add esp, 0x10
mov eax, dword [ebp - 8]
test eax, eax
je 0x40eb5f
cmp dword [esi + 0x4a], 0
jne 0x40eb5f
mov ecx, dword [esi + 0x1c]
test ecx, ecx
jne 0x40eb61
mov ecx, dword [eax + 0x1428]
jmp 0x40eb61
test eax, eax
je 0x40e882
lea edi, [eax + 0x145a]
jmp 0x40e884
test edx, edx
je 0x40e8fe
movzx eax, byte [esi + 0x50]
mov byte [ecx], al
movzx eax, byte [esi + 0x51]
mov byte [ecx + 1], al
movzx eax, byte [esi + 0x52]
mov byte [ecx + 2], al
movzx eax, byte [esi + 0x53]
mov byte [ecx + 3], al
movzx eax, byte [esi + 0x54]
mov byte [ecx + 4], al
movzx eax, byte [esi + 0x55]
mov byte [ecx + 5], al
movzx eax, byte [edx + 0x1454]
mov byte [ecx + 6], al
movzx eax, byte [edx + 0x1455]
mov byte [ecx + 7], al
movzx eax, byte [edx + 0x1456]
mov byte [ecx + 8], al
movzx eax, byte [edx + 0x1457]
mov byte [ecx + 9], al
movzx eax, byte [edx + 0x1458]
mov byte [ecx + 0xa], al
movzx eax, byte [edx + 0x1459]
mov byte [ecx + 0xb], al
mov dword [ecx + 0xc], 0x60dd86
mov dword [ecx + 0x10], 0x20000000
mov word [ecx + 0x14], 0xff3a
add ecx, 0x16
xor edi, edi
mov al, byte [edi + 0x43d940]
inc edi
mov byte [ecx], al
inc ecx
cmp edi, 0x10
jl 0x40e9e3
xor edi, edi
mov al, byte [ebp + edi - 0x38]
inc edi
mov byte [ecx], al
inc ecx
cmp edi, 0x10
jl 0x40e9f4
mov dword [ecx], 0x87
mov dword [ecx + 4], 0
add ecx, 8
xor edi, edi
mov al, byte [edi + esi + 0x60]
inc edi
mov byte [ecx], al
inc ecx
cmp edi, 0x10
jl 0x40ea13
mov eax, dword [0x43d940]
or eax, dword [0x43d944]
or eax, dword [0x43d948]
or eax, dword [0x43d94c]
je 0x40ea7d
mov word [ecx], 0x101
movzx eax, byte [edx + 0x1454]
mov byte [ecx + 2], al
movzx eax, byte [edx + 0x1455]
mov byte [ecx + 3], al
movzx eax, byte [edx + 0x1456]
mov byte [ecx + 4], al
movzx eax, byte [edx + 0x1457]
mov byte [ecx + 5], al
movzx eax, byte [edx + 0x1458]
mov byte [ecx + 6], al
movzx eax, byte [edx + 0x1459]
mov byte [ecx + 7], al
add ecx, 8
sub cl, bl
mov dword [ebp - 0x40], 0x3a000000
add cl, 0x5a
lea edx, [ebx + 0x59a6]
mov byte [ebx + 0x5983], cl
xor edi, edi
movups xmm0, xmmword [0x43d940]
movzx ecx, cl
mov eax, ecx
mov byte [ebp - 0x41], cl
shr eax, 0x18
mov byte [ebp - 0x44], al
mov eax, ecx
shr eax, 0x10
mov byte [ebp - 0x43], al
mov eax, ecx
movups xmmword [ebp - 0x64], xmm0
shr eax, 8
mov byte [ebp - 0x42], al
movups xmm0, xmmword [ebp - 0x38]
movups xmmword [ebp - 0x54], xmm0
test ecx, ecx
jle 0x40eadd
dec ecx
shr ecx, 1
inc ecx
movzx eax, word [edx]
lea edx, [edx + 2]
add edi, eax
sub ecx, 1
jne 0x40ead0
mov ecx, edi
movzx eax, di
shr ecx, 0x10
mov edi, 0x14
add ecx, eax
mov edx, ecx
movzx eax, cx
shr edx, 0x10
xor ecx, ecx
add edx, eax
cmp edx, 0xffff
movzx eax, dx
cmovne ecx, eax
movzx edx, cx
lea ecx, [ebp - 0x64]
nop word [eax + eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
add edx, eax
sub edi, 1
jne 0x40eb10
mov ecx, edx
movzx eax, dx
shr ecx, 0x10
add ecx, eax
mov edx, ecx
movzx eax, cx
shr edx, 0x10
xor ecx, ecx
add edx, eax
movzx eax, dx
cmp edx, 0xffff
cmovne ecx, eax
not cx
mov al, cl
mov word [ebp - 0x14], cx
mov byte [ebx + 0x59a8], al
mov eax, dword [ebp - 0x14]
shr eax, 8
mov byte [ebx + 0x59a9], al
jmp 0x40e923
xor ecx, ecx
cmp byte [esi + 0x7d], 3
mov dword [esi + 0x90], ecx
mov eax, dword [ebx + 0xdc]
mov dword [esi + 0xb8], eax
jbe 0x40eb7d
mov byte [esi + 0x7d], 3
dec byte [esi + 0x7d]
mov edx, esi
mov ecx, ebx
call fcn.004090f0
cmp byte [esi + 0x7d], 0
jne 0x40ed21
mov edi, dword [ebx + 0x1fc4]
test edi, edi
je 0x40ec29
cmp byte [edi + 4], 2
jne 0x40ec1c
mov eax, dword [edi + 0x1c]
cmp eax, dword [esi + 0x1c]
jne 0x40ec1c
mov cl, byte [esi + 4]
cmp cl, 2
je 0x40ebc4
mov al, cl
or al, 2
cmp al, 0x12
je 0x40ebc4
cmp cl, 1
jne 0x40ec1c
mov ax, word [edi + 6]
cmp ax, word [esi + 6]
jne 0x40ec1c
mov ax, word [edi + 8]
cmp ax, word [esi + 8]
jne 0x40ec1c
mov eax, dword [edi + 0x14]
cmp eax, dword [esi + 0x14]
jne 0x40ec1c
mov ax, word [edi + 0x10]
cmp ax, word [esi + 0x10]
jne 0x40ec1c
mov eax, dword [edi + 0x18]
cmp eax, dword [esi + 0x18]
jne 0x40ec1c
mov edx, dword [esi + 0x24]
lea ecx, [edi + 4]
push fcn.004018b0
add edx, 4
call fcn.00402d40
test eax, eax
je 0x40ec1c
push dword [esi + 0x20]
push dword [edi + 0x20]
call fcn.004018b0
test eax, eax
je 0x40ec1c
mov byte [edi + 0x7d], 0
mov edi, dword [edi]
test edi, edi
jne 0x40eba1
mov ebx, dword [ebp - 0x1c]
cmp byte [esi + 0x7c], 0
jne 0x40ed21
cmp dword [esi + 0x3c], 0
je 0x40ed21
mov byte [esi + 0x7c], 1
inc dword [ebx + 0x30]
mov eax, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x2c]
cmp ecx, eax
je 0x40ec64
push eax
push ecx
push str.AcknowledgeRecord
push str._s:_Locking_Failure__mDNS_busy___ld____mDNS_reentrancy___ld_
push 0
call fcn.0041dc40
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 0x40ec8d
push eax
push ecx
push str.AcknowledgeRecord
push str._s:_Unlocking_Failure__mDNS_busy___ld____mDNS_reentrancy___ld_
push 0
call fcn.0041dc40
add esp, 0x14
dec dword [ebx + 0x30]
jmp 0x40ed21
cmp byte [esi + 0x7c], 0
jne 0x40ecf7
cmp dword [esi + 0x3c], 0
je 0x40ecf7
mov byte [esi + 0x7c], 1
inc dword [ebx + 0x30]
mov eax, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x2c]
cmp ecx, eax
je 0x40ecc8
push eax
push ecx
push str.AcknowledgeRecord
push str._s:_Locking_Failure__mDNS_busy___ld____mDNS_reentrancy___ld_
push 0
call fcn.0041dc40
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 0x40ecf1
push eax
push ecx
push str.AcknowledgeRecord
push str._s:_Unlocking_Failure__mDNS_busy___ld____mDNS_reentrancy___ld_
push 0
call fcn.0041dc40
add esp, 0x14
dec dword [ebx + 0x30]
lea ecx, [esi + 4]
mov eax, dword [0x44f49c]
cdq
sub eax, edx
mov byte [ecx], 0x10
sar eax, 1
mov dword [esi + 0xb4], eax
mov ecx, dword [ebx + 0xdc]
sub ecx, eax
mov dword [esi + 0xb8], ecx
mov edx, esi
mov ecx, ebx
call fcn.004090f0
cmp dword [ebx + 0x1fcc], 0
jne 0x40e780
mov eax, dword [ebx + 0x1fc4]
mov dword [ebx + 0x1fcc], eax
test eax, eax
je 0x40edc8
mov esi, dword [ebx + 0x1fcc]
mov eax, dword [esi]
mov dword [ebx + 0x1fcc], eax
cmp byte [esi + 4], 2
jne 0x40edbb
cmp byte [esi + 0x7d], 0
jne 0x40edbb
cmp byte [esi + 0x7c], 0
jne 0x40edbb
cmp dword [esi + 0x3c], 0
je 0x40edbb
mov byte [esi + 0x7c], 1
inc dword [ebx + 0x30]
mov eax, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x2c]
cmp ecx, eax
je 0x40ed8f
push eax
push ecx
push str.AcknowledgeRecord
push str._s:_Locking_Failure__mDNS_busy___ld____mDNS_reentrancy___ld_
push 0
call fcn.0041dc40
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 0x40edb8
push eax
push ecx
push str.AcknowledgeRecord
push str._s:_Unlocking_Failure__mDNS_busy___ld____mDNS_reentrancy___ld_
push 0
call fcn.0041dc40
add esp, 0x14
dec dword [ebx + 0x30]
cmp dword [ebx + 0x1fcc], 0
jne 0x40ed42
mov ecx, dword [ebp - 8]
test ecx, ecx
je 0x40f648
mov edi, dword [ebp - 0x10]
lea edx, [ebx + 0x5970]
cmp dword [ebx + 0x11c], 0
lea esi, [ebx + 0x5964]
je 0x40ee2d
cmp dword [ecx + 0x1454], 0
je 0x40ee2d
mov ax, word [ebx + 0x1c]
cmp ax, word [ecx + 0x1454]
jne 0x40ee20
mov ax, word [ebx + 0x1e]
cmp ax, word [ecx + 0x1456]
jne 0x40ee20
mov ax, word [ebx + 0x20]
cmp ax, word [ecx + 0x1458]
mov eax, 0xc
je 0x40ee25
mov eax, 0x12
add eax, 0xb
mov dword [ebp - 0x18], eax
jmp 0x40ee34
mov dword [ebp - 0x18], 0
movzx eax, word [0x43da2c]
mov word [esi], ax
movzx eax, word [0x43d950]
mov word [esi + 2], ax
xor eax, eax
mov dword [ebp - 4], edx
mov dword [ebp - 0x28], edx
mov dword [esi + 4], eax
mov dword [esi + 8], eax
test edi, edi
jne 0x40f086
mov esi, dword [ebx + 0x130]
lea eax, [ebp - 0x10]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0xc], eax
test esi, esi
je 0x40ef7f
nop dword [eax]
cmp esi, dword [ebx + 0x134]
je 0x40ef70
cmp word [esi + 0x132], 0
jne 0x40ef66
mov eax, dword [ecx + 0x1428]
mov dword [ebp - 4], eax
cmp dword [esi + 0xa0], eax
jne 0x40ef66
xor edx, edx
cmp byte [ecx + 5], dl
sete dl
xor eax, eax
cmp byte [ecx + 6], al
lea ecx, [esi + 0x48]
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 4]
sete al
xor edi, edi
nop word [eax + eax]
cmp dword [ecx - 4], edx
jne 0x40eefd
mov edx, dword [ecx]
cmp edx, 4
jne 0x40eee5
mov dword [ebp - 0x14], 1
jmp 0x40eef6
cmp edx, 6
mov edx, 1
cmove eax, edx
cmp dword [ebp - 0x14], 0
je 0x40eefa
test eax, eax
jne 0x40ef24
mov edx, dword [ebp - 4]
inc edi
add ecx, 0xc
cmp edi, 8
jl 0x40eed0
lea eax, [ebp - 0xc]
mov ecx, ebx
push eax
lea eax, [ebp - 0x1c]
push eax
push esi
lea eax, [ebp - 0x28]
push eax
lea edx, [ebx + 0x5964]
call fcn.0040d6a0
test eax, eax
je 0x40ef63
cmp dword [esi + 0x118], 0
jne 0x40ef40
cmp dword [esi + 0xa4], 0
je 0x40ef40
mov ecx, dword [ebp - 8]
call fcn.00401060
jmp 0x40ef45
mov ecx, dword [ebp - 8]
xor eax, eax
cmp byte [esi + 0xb9], 0
mov dword [esi + 0xa0], eax
je 0x40ef66
mov edx, esi
mov ecx, ebx
call fcn.0040de50
dec byte [esi + 0xb9]
mov ecx, dword [ebp - 8]
mov esi, dword [esi]
test esi, esi
jne 0x40ee80
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov dword [ebp - 4], edx
mov dword [ebp - 0x20], eax
mov esi, dword [ebx + 0x1fc0]
test esi, esi
je 0x40f07e
nop dword [eax]
mov eax, dword [esi + 0x90]
cmp eax, dword [ecx + 0x1428]
jne 0x40f071
cmp byte [esi + 0x7d], 2
jb 0x40efb5
cmp dword [ebx + 8], 0
je 0x40efb5
mov ecx, 1
jmp 0x40efb7
xor ecx, ecx
movzx eax, word [esi + 0x12]
mov edi, dword [ebp - 0x20]
push dword [esi + 0x20]
add edi, 0xc
add edi, eax
neg ecx
mov dword [ebp - 0x1c], edi
sbb ecx, ecx
and ecx, 0x8000
or cx, word [esi + 8]
cmp word [ebx + 0x5968], 0
movzx eax, cx
mov ecx, 0x5a0
mov dword [ebp - 0xc], eax
mov eax, 0x22ec
cmovne eax, ecx
lea ecx, [ebx + 0x5964]
sub eax, edi
lea edi, [eax + 0x5970]
add edi, ebx
push edi
call fcn.00403870
mov ecx, eax
test ecx, ecx
je 0x40f06b
lea edx, [ecx + 4]
cmp edx, edi
jae 0x40f06b
mov eax, dword [ebp - 0xc]
shr eax, 8
mov byte [ecx + 2], al
mov eax, dword [ebp - 0xc]
mov word [ecx], 0xff00
mov byte [ecx + 3], al
inc word [ebx + 0x5968]
test edx, edx
je 0x40f06b
cmp dword [esi + 0x1c], 0
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 8]
mov dword [ebp - 4], edx
mov dword [ebp - 0x20], eax
je 0x40f057
xor eax, eax
mov byte [esi + 0x81], 1
mov dword [esi + 0x90], eax
jmp 0x40f071
call fcn.00401060
mov dword [esi + 0x90], eax
mov byte [esi + 0x81], 1
jmp 0x40f071
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
mov esi, dword [esi]
test esi, esi
jne 0x40ef90
mov edi, dword [ebp - 0x10]
test edi, edi
je 0x40f11d
mov eax, ebx
lea esi, [ebx + 0x596a]
sub eax, dword [ebp - 0x18]
add eax, 0x5f10
mov dword [ebp - 0x1c], eax
nop dword [eax]
mov eax, dword [ebx + 0xdc]
xor edx, edx
sub eax, dword [edi + 0x30]
div dword [0x44f49c]
push dword [ebp - 0x1c]
mov ecx, dword [edi + 0xc]
mov edx, dword [ebp - 4]
sub ecx, eax
push ecx
lea eax, [edi + 4]
push eax
push esi
lea ecx, [ebx + 0x5964]
call fcn.00403fd0
test eax, eax
je 0x40f0f2
mov ecx, eax
lea esi, [ebx + 0x596a]
mov eax, dword [edi + 0x2c]
mov dword [ebp - 0x10], eax
mov dword [edi + 0x2c], 0
mov edi, dword [ebp - 0x10]
mov dword [ebp - 4], ecx
test edi, edi
jne 0x40f0a0
jmp 0x40f120
cmp word [ebx + 0x5968], 1
jbe 0x40f113
movzx eax, word [ebx + 0x596a]
push eax
push str.SendQueries:___Put__d_answers__No_more_space_for_known_answers
push 0
call fcn.0041dc40
add esp, 0xc
or byte [ebx + 0x5966], 2
mov edi, dword [ebp - 0x10]
mov ecx, dword [ebp - 4]
mov esi, dword [ebx + 0x1fc0]
test esi, esi
je 0x40f1cb
nop
cmp byte [esi + 0x81], 0
je 0x40f1be
cmp word [ebx + 0x596a], 0
jne 0x40f160
cmp word [ebx + 0x596c], 0
jne 0x40f160
cmp word [ebx + 0x596e], 0
mov eax, 0x22ec
je 0x40f165
mov eax, 0x5a0
add eax, 0x5970
lea edi, [esi + 4]
add eax, ebx
mov edx, ecx
push eax
push dword [esi + 0xc]
lea eax, [ebx + 0x596c]
push edi
push eax
lea ecx, [ebx + 0x5964]
call fcn.00403fd0
mov byte [esi + 0x81], 0
test eax, eax
je 0x40f19a
mov ecx, eax
mov dword [ebp - 4], ecx
jmp 0x40f1be
mov edx, dword [esi + 0x24]
lea eax, [ebx + 0x37]
push eax
add edx, 4
mov ecx, edi
call fcn.00401290
push eax
push str.SendQueries:___How_did_we_fail_to_have_space_for_the_Update_record__s
push 0
call fcn.0041dc40
mov ecx, dword [ebp - 4]
add esp, 0xc
mov esi, dword [esi]
test esi, esi
jne 0x40f130
mov edi, dword [ebp - 0x10]
lea edx, [ebx + 0x5970]
cmp ecx, edx
jbe 0x40f610
cmp dword [ebp - 0x18], 0
je 0x40f52f
xor edx, edx
mov byte [ebp - 0x3d4], 0x20
mov eax, SysReAllocString
mov dword [ebp - 0x3bc], 0
div dword [0x44f49c]
mov ecx, 0x1194
mov dword [ebp - 0x3b0], 0
cmp eax, ecx
mov dword [ebp - 0x39c], 0
xorps xmm0, xmm0
mov dword [ebp - 0x398], 0
cmovb ecx, eax
mov word [ebp - 0x394], 0
lea eax, [ebp - 0x278]
mov dword [ebp - 0x3cc], ecx
mov dword [ebp - 0x3b8], eax
mov eax, 0x29
mov word [ebp - 0x3d2], ax
lea eax, [ebp - 0x178]
mov dword [ebp - 0x3b4], eax
mov eax, 0x108
mov word [ebp - 0x178], ax
mov eax, dword [0x43d9ac]
mov dword [ebp - 0x380], eax
mov eax, dword [0x43d998]
mov dword [ebp - 0x36c], eax
movzx eax, word [0x43da2c]
movups xmmword [ebp - 0x3ac], xmm0
mov word [ebp - 0x2ec], ax
lea eax, [ebp - 0x278]
movups xmm0, xmmword [0x43d99c]
mov dword [ebp - 0x2e8], eax
xor eax, eax
push 0x3c
movups xmmword [ebp - 0x390], xmm0
push eax
movups xmm0, xmmword [0x43d988]
mov dword [ebp - 0x28c], eax
mov dword [ebp - 0x280], eax
mov dword [ebp - 0x27c], eax
mov word [ebp - 0x288], ax
lea eax, [ebp - 0x2dc]
movups xmmword [ebp - 0x37c], xmm0
mov byte [ebp - 0x392], 0
xorps xmm0, xmm0
mov dword [ebp - 0x368], 0
push eax
mov dword [ebp - 0x364], 0
mov dword [ebp - 0x360], 0
movups xmmword [ebp - 0x2fc], xmm0
mov dword [ebp - 0x2e4], 0
mov dword [ebp - 0x2e0], 0
mov dword [ebp - 0x284], 0
call sub.VCRUNTIME140.dll_memset
mov edx, dword [ebp - 0x3b4]
mov eax, 0x5a0
mov ecx, dword [ebp - 8]
add esp, 0xc
mov word [ebp - 0x3d0], ax
mov dword [ebp - 0x2a0], 0
mov dword [ebp - 0x29c], 0
mov byte [ebp - 0x278], 0
mov dword [ebp - 0x3c8], 0x180018
mov byte [edx + 8], 0
mov al, byte [ebx + 0x116]
mov byte [edx + 9], al
mov eax, dword [ebx + 0x1c]
mov dword [edx + 0xa], eax
movzx eax, word [ebx + 0x20]
mov word [edx + 0xe], ax
mov eax, dword [ecx + 0x1454]
mov dword [edx + 0x10], eax
movzx eax, word [ecx + 0x1458]
mov word [edx + 0x14], ax
mov eax, dword [0x43da04]
mov dword [edx + 0x16], eax
movzx eax, word [0x43da08]
mov word [edx + 0x1a], ax
mov eax, 4
mov word [edx + 4], ax
movzx eax, word [ebx + 0x1c]
cmp ax, word [ecx + 0x1454]
jne 0x40f3e9
mov ax, word [ebx + 0x1e]
cmp ax, word [ecx + 0x1456]
jne 0x40f3e9
mov ax, word [ebx + 0x20]
cmp ax, word [ecx + 0x1458]
mov eax, 0xc
je 0x40f3ee
mov eax, 0x12
add eax, 0xfffffffc
cmp dword [0x44f480], 0
mov word [edx + 6], ax
je 0x40f426
mov edx, dword [ebp - 0x3b4]
lea eax, [ebx + 0x37]
push eax
lea ecx, [ebp - 0x3d4]
lea edx, [edx + 4]
call fcn.00401290
push eax
push str.SendQueries_putting__s
push 2
call fcn.0041dc40
add esp, 0xc
mov edx, dword [ebp - 4]
lea eax, [ebx + 0x7c5c]
push eax
push dword [ebp - 0x3cc]
lea eax, [ebp - 0x3d4]
push eax
lea edi, [ebx + 0x596e]
push edi
lea ecx, [ebx + 0x5964]
call fcn.00403fd0
mov ecx, eax
mov dword [ebp - 4], ecx
test ecx, ecx
jne 0x40f49f
mov edx, dword [ebp - 0x3b4]
lea eax, [ebx + 0x37]
push eax
lea ecx, [ebp - 0x3d4]
lea edx, [edx + 4]
call fcn.00401290
push eax
movzx eax, word [edi]
push eax
movzx eax, word [ebx + 0x596c]
push eax
movzx eax, word [ebx + 0x596a]
push eax
movzx eax, word [ebx + 0x5968]
push eax
push str.SendQueries:_How_did_we_fail_to_have_space_for_the_OPT_record___d__d__d__d___s
push 0
call fcn.0041dc40
mov ecx, dword [ebp - 4]
add esp, 0x1c
lea eax, [ebx + 0x5f10]
cmp ecx, eax
jbe 0x40f52c
cmp word [ebx + 0x5968], 1
jne 0x40f4d1
cmp word [ebx + 0x596a], 0
jne 0x40f4d1
cmp word [ebx + 0x596c], 1
jne 0x40f4d1
cmp word [edi], 1
je 0x40f52c
mov edx, dword [ebp - 0x3b4]
lea eax, [ebx + 0x37]
push eax
lea ecx, [ebp - 0x3d4]
lea edx, [edx + 4]
call fcn.00401290
mov esi, dword [ebp - 4]
push eax
movzx eax, word [edi]
push eax
movzx eax, word [ebx + 0x596c]
push eax
movzx eax, word [ebx + 0x596a]
push eax
movzx eax, word [ebx + 0x5968]
push eax
push esi
lea eax, [ebx + 0x5f10]
push eax
lea eax, [ebx + 0x5970]
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.0041dc40
mov edi, dword [ebp - 0x10]
add esp, 0x28
jmp 0x40f532
mov edi, dword [ebp - 0x10]
mov esi, dword [ebp - 4]
test byte [ebx + 0x5966], 2
je 0x40f55a
movzx eax, word [ebx + 0x5968]
cmp eax, 1
jbe 0x40f55a
push eax
push str.SendQueries:_Should_not_have_more_than_one_question___d__in_a_truncated_packet
push 0
call fcn.0041dc40
mov edi, dword [ebp - 0x10]
add esp, 0xc
mov ecx, dword [ebp - 8]
cmp byte [ecx + 5], 0
je 0x40f590
movzx eax, word [0x43da44]
lea edx, [ebx + 0x5964]
push 0
push 0
push eax
push 0x43da14
push 0
push dword [ecx + 0x1428]
mov ecx, ebx
push esi
call fcn.00405b30
mov edi, dword [ebp - 0x10]
mov ecx, dword [ebp - 8]
cmp byte [ecx + 6], 0
je 0x40f5c0
movzx eax, word [0x43da44]
lea edx, [ebx + 0x5964]
push 0
push 0
push eax
push 0x43d974
push 0
push dword [ecx + 0x1428]
mov ecx, ebx
push esi
call fcn.00405b30
mov edi, dword [ebp - 0x10]
cmp dword [ebx + 0xec], 0
jne 0x40f5f7
mov ecx, dword [0x44f49c]
mov eax, 0x66666667
lea ecx, [ecx + 9]
imul ecx
mov eax, 1
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
add ecx, dword [ebx + 0xdc]
cmovne eax, ecx
mov dword [ebx + 0xec], eax
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
cmp eax, 0x3e8
jge 0x40f638
mov ecx, dword [ebp - 8]
lea edx, [ebx + 0x5970]
jmp 0x40f62f
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
mov dword [ebp - 8], ecx
test ecx, ecx
je 0x40f648
nop dword [eax]
cmp byte [ecx + 4], 0
jne 0x40f62c
mov ecx, dword [ecx]
test ecx, ecx
jne 0x40f620
mov dword [ebp - 8], ecx
test ecx, ecx
je 0x40f648
jmp 0x40eddc
push eax
push str.SendQueries_exceeded_loop_limit__d:_giving_up
push 0
call fcn.0041dc40
add esp, 0xc
mov esi, dword [ebx + 0x1fc0]
test esi, esi
je 0x40f6a3
cmp dword [esi + 0x90], 0
je 0x40f69d
mov eax, dword [esi + 0x78]
cmp eax, 2
je 0x40f693
cmp eax, 3
je 0x40f693
mov edx, dword [esi + 0x24]
lea eax, [ebx + 0x37]
push eax
add edx, 4
lea ecx, [esi + 4]
call fcn.00401290
push eax
push dword [esi + 0x1c]
push dword [esi + 0x90]
push str.SendQueries:_No_active_interface__p_to_send_probe:__p__s
push 0
call fcn.0041dc40
add esp, 0x14
mov dword [esi + 0x90], 0
mov esi, dword [esi]
test esi, esi
jne 0x40f652
mov ecx, 0x1f3
lea eax, [ebx + 0x15c]
mov dword [ebp - 0xc], ecx
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
test eax, eax
je 0x40f725
nop word [eax + eax]
mov esi, dword [eax + 8]
test esi, esi
je 0x40f719
mov edi, dword [esi + 0x40]
test edi, edi
je 0x40f710
cmp dword [esi + 0x44], 4
jae 0x40f710
mov ecx, dword [esi + 0xc]
mov eax, 0x51eb851f
imul ecx, dword [0x44f49c]
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 0x40f710
inc dword [esi + 0x44]
mov edx, esi
mov ecx, ebx
mov dword [edi + 0xa0], 0
call fcn.0040d480
mov esi, dword [esi]
test esi, esi
jne 0x40f6c7
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x40f6c0
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x3c]
add eax, 4
sub ecx, 1
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0xc], ecx
jne 0x40f6b1
mov edi, dword [ebx + 0x130]
test edi, edi
je 0x40f7b0
cmp dword [edi + 0xa0], 0
je 0x40f7aa
mov esi, dword [ebx + 0x134]
test esi, esi
je 0x40f761
cmp esi, edi
je 0x40f761
mov esi, dword [esi]
test esi, esi
jne 0x40f757
mov cx, word [edi + 0x234]
call fcn.004010c0
push eax
lea eax, [edi + 0x134]
test esi, esi
push eax
push dword [edi + 0x118]
mov ecx, 0x43f638
mov eax, 0x43f634
cmove eax, ecx
push eax
push dword [edi + 0xa0]
push str.SendQueries:_No_active_interface__p_to_send__s_question:__p__s___s_
push 0
call fcn.0041dc40
add esp, 0x1c
mov dword [edi + 0xa0], 0
mov edi, dword [edi]
test edi, edi
jne 0x40f744
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret