406140:	74 31                	je     0x406173
406142:	8b 46 04             	mov    0x4(%esi),%eax
406145:	8b 3e                	mov    (%esi),%edi
406147:	85 c0                	test   %eax,%eax
406149:	74 09                	je     0x406154
40614b:	50                   	push   %eax
40614c:	e8 4c a8 02 00       	call   0x43099d
406151:	83 c4 04             	add    $0x4,%esp
406154:	8b 46 08             	mov    0x8(%esi),%eax
406157:	85 c0                	test   %eax,%eax
406159:	74 09                	je     0x406164
40615b:	50                   	push   %eax
40615c:	e8 3c a8 02 00       	call   0x43099d
406161:	83 c4 04             	add    $0x4,%esp
406164:	56                   	push   %esi
406165:	e8 33 a8 02 00       	call   0x43099d
40616a:	83 c4 04             	add    $0x4,%esp
40616d:	8b f7                	mov    %edi,%esi
40616f:	85 ff                	test   %edi,%edi
406171:	75 cf                	jne    0x406142
406173:	8b 43 14             	mov    0x14(%ebx),%eax
406176:	85 c0                	test   %eax,%eax
406178:	74 09                	je     0x406183
40617a:	50                   	push   %eax
40617b:	e8 1d a8 02 00       	call   0x43099d
406180:	83 c4 04             	add    $0x4,%esp
406183:	53                   	push   %ebx
406184:	e8 14 a8 02 00       	call   0x43099d
406189:	83 c4 04             	add    $0x4,%esp
40618c:	5f                   	pop    %edi
40618d:	5e                   	pop    %esi
40618e:	5b                   	pop    %ebx
40618f:	c3                   	ret
406190:	8b 44 24 04          	mov    0x4(%esp),%eax
406194:	56                   	push   %esi
406195:	8b 70 0c             	mov    0xc(%eax),%esi
406198:	85 f6                	test   %esi,%esi
40619a:	74 1d                	je     0x4061b9
40619c:	57                   	push   %edi
40619d:	8b 7c 24 10          	mov    0x10(%esp),%edi
4061a1:	8b 4e 04             	mov    0x4(%esi),%ecx
4061a4:	57                   	push   %edi
4061a5:	51                   	push   %ecx
4061a6:	e8 ec d3 02 00       	call   0x433597
4061ab:	83 c4 08             	add    $0x8,%esp
4061ae:	85 c0                	test   %eax,%eax
4061b0:	74 06                	je     0x4061b8
4061b2:	8b 36                	mov    (%esi),%esi
4061b4:	85 f6                	test   %esi,%esi
4061b6:	75 e9                	jne    0x4061a1
4061b8:	5f                   	pop    %edi
4061b9:	8b c6                	mov    %esi,%eax
4061bb:	5e                   	pop    %esi
4061bc:	c3                   	ret
4061bd:	cc                   	int3
4061be:	cc                   	int3
4061bf:	cc                   	int3
4061c0:	8b 44 24 04          	mov    0x4(%esp),%eax
4061c4:	56                   	push   %esi
4061c5:	8b 70 0c             	mov    0xc(%eax),%esi
4061c8:	57                   	push   %edi
4061c9:	85 f6                	test   %esi,%esi
4061cb:	74 24                	je     0x4061f1
4061cd:	8b 7c 24 10          	mov    0x10(%esp),%edi
4061d1:	8b 4e 04             	mov    0x4(%esi),%ecx
4061d4:	57                   	push   %edi
4061d5:	51                   	push   %ecx
4061d6:	e8 bc d3 02 00       	call   0x433597
4061db:	83 c4 08             	add    $0x8,%esp
4061de:	85 c0                	test   %eax,%eax
4061e0:	74 0b                	je     0x4061ed
4061e2:	8b 36                	mov    (%esi),%esi
4061e4:	85 f6                	test   %esi,%esi
4061e6:	75 e9                	jne    0x4061d1
4061e8:	5f                   	pop    %edi
4061e9:	33 c0                	xor    %eax,%eax
4061eb:	5e                   	pop    %esi
4061ec:	c3                   	ret
4061ed:	85 f6                	test   %esi,%esi
4061ef:	75 05                	jne    0x4061f6
4061f1:	5f                   	pop    %edi
4061f2:	33 c0                	xor    %eax,%eax
4061f4:	5e                   	pop    %esi
4061f5:	c3                   	ret
4061f6:	8b 46 08             	mov    0x8(%esi),%eax
4061f9:	5f                   	pop    %edi
4061fa:	5e                   	pop    %esi
4061fb:	c3                   	ret
4061fc:	cc                   	int3
4061fd:	cc                   	int3
4061fe:	cc                   	int3
4061ff:	cc                   	int3
406200:	56                   	push   %esi
406201:	6a 0c                	push   $0xc
406203:	e8 0e a8 02 00       	call   0x430a16
406208:	8b f0                	mov    %eax,%esi
40620a:	8b 44 24 10          	mov    0x10(%esp),%eax
40620e:	50                   	push   %eax
40620f:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
406215:	e8 7e 20 04 00       	call   0x448298
40621a:	89 46 04             	mov    %eax,0x4(%esi)
40621d:	8b 44 24 10          	mov    0x10(%esp),%eax
406221:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
406228:	8b 48 0c             	mov    0xc(%eax),%ecx
40622b:	89 0e                	mov    %ecx,(%esi)
40622d:	89 70 0c             	mov    %esi,0xc(%eax)
406230:	83 c4 08             	add    $0x8,%esp
406233:	8b c6                	mov    %esi,%eax
406235:	5e                   	pop    %esi
406236:	c3                   	ret
406237:	cc                   	int3
406238:	cc                   	int3
406239:	cc                   	int3
40623a:	cc                   	int3
40623b:	cc                   	int3
40623c:	cc                   	int3
40623d:	cc                   	int3
40623e:	cc                   	int3
40623f:	cc                   	int3
406240:	53                   	push   %ebx
406241:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
406245:	56                   	push   %esi
406246:	57                   	push   %edi
406247:	8b 7c 24 10          	mov    0x10(%esp),%edi
40624b:	8b 77 0c             	mov    0xc(%edi),%esi
40624e:	85 f6                	test   %esi,%esi
406250:	74 1b                	je     0x40626d
406252:	8b 46 04             	mov    0x4(%esi),%eax
406255:	53                   	push   %ebx
406256:	50                   	push   %eax
406257:	e8 3b d3 02 00       	call   0x433597
40625c:	83 c4 08             	add    $0x8,%esp
40625f:	85 c0                	test   %eax,%eax
406261:	74 06                	je     0x406269
406263:	8b 36                	mov    (%esi),%esi
406265:	85 f6                	test   %esi,%esi
406267:	75 e9                	jne    0x406252
406269:	85 f6                	test   %esi,%esi
40626b:	75 2a                	jne    0x406297
40626d:	6a 0c                	push   $0xc
40626f:	e8 a2 a7 02 00       	call   0x430a16
406274:	8b f0                	mov    %eax,%esi
406276:	53                   	push   %ebx
406277:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
40627d:	e8 16 20 04 00       	call   0x448298
406282:	89 46 04             	mov    %eax,0x4(%esi)
406285:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
40628c:	8b 4f 0c             	mov    0xc(%edi),%ecx
40628f:	89 0e                	mov    %ecx,(%esi)
406291:	83 c4 08             	add    $0x8,%esp
406294:	89 77 0c             	mov    %esi,0xc(%edi)
406297:	8b 46 08             	mov    0x8(%esi),%eax
40629a:	85 c0                	test   %eax,%eax
40629c:	74 10                	je     0x4062ae
40629e:	50                   	push   %eax
40629f:	e8 f9 a6 02 00       	call   0x43099d
4062a4:	83 c4 04             	add    $0x4,%esp
4062a7:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
4062ae:	8b 44 24 18          	mov    0x18(%esp),%eax
4062b2:	85 c0                	test   %eax,%eax
4062b4:	75 07                	jne    0x4062bd
4062b6:	5f                   	pop    %edi
4062b7:	89 46 08             	mov    %eax,0x8(%esi)
4062ba:	5e                   	pop    %esi
4062bb:	5b                   	pop    %ebx
4062bc:	c3                   	ret
4062bd:	50                   	push   %eax
4062be:	e8 d5 1f 04 00       	call   0x448298
4062c3:	83 c4 04             	add    $0x4,%esp
4062c6:	5f                   	pop    %edi
4062c7:	89 46 08             	mov    %eax,0x8(%esi)
4062ca:	5e                   	pop    %esi
4062cb:	5b                   	pop    %ebx
4062cc:	c3                   	ret
4062cd:	cc                   	int3
4062ce:	cc                   	int3
4062cf:	cc                   	int3
4062d0:	55                   	push   %ebp
4062d1:	8b 6c 24 08          	mov    0x8(%esp),%ebp
4062d5:	57                   	push   %edi
4062d6:	33 ff                	xor    %edi,%edi
4062d8:	85 ed                	test   %ebp,%ebp
4062da:	74 6c                	je     0x406348
4062dc:	53                   	push   %ebx
4062dd:	8b 5c 24 14          	mov    0x14(%esp),%ebx
4062e1:	85 db                	test   %ebx,%ebx
4062e3:	74 62                	je     0x406347
4062e5:	56                   	push   %esi
4062e6:	8b 75 0c             	mov    0xc(%ebp),%esi
4062e9:	85 f6                	test   %esi,%esi
4062eb:	74 59                	je     0x406346
4062ed:	8d 49 00             	lea    0x0(%ecx),%ecx
4062f0:	8b 46 04             	mov    0x4(%esi),%eax
4062f3:	53                   	push   %ebx
4062f4:	50                   	push   %eax
4062f5:	e8 9d d2 02 00       	call   0x433597
4062fa:	83 c4 08             	add    $0x8,%esp
4062fd:	85 c0                	test   %eax,%eax
4062ff:	74 0d                	je     0x40630e
406301:	8b fe                	mov    %esi,%edi
406303:	8b 36                	mov    (%esi),%esi
406305:	85 f6                	test   %esi,%esi
406307:	75 e7                	jne    0x4062f0
406309:	5e                   	pop    %esi
40630a:	5b                   	pop    %ebx
40630b:	5f                   	pop    %edi
40630c:	5d                   	pop    %ebp
40630d:	c3                   	ret
40630e:	85 ff                	test   %edi,%edi
406310:	75 07                	jne    0x406319
406312:	8b 0e                	mov    (%esi),%ecx
406314:	89 4d 0c             	mov    %ecx,0xc(%ebp)
406317:	eb 04                	jmp    0x40631d
406319:	8b 16                	mov    (%esi),%edx
40631b:	89 17                	mov    %edx,(%edi)
40631d:	8b 46 04             	mov    0x4(%esi),%eax
406320:	85 c0                	test   %eax,%eax
406322:	74 09                	je     0x40632d
406324:	50                   	push   %eax
406325:	e8 73 a6 02 00       	call   0x43099d
40632a:	83 c4 04             	add    $0x4,%esp
40632d:	8b 46 08             	mov    0x8(%esi),%eax
406330:	85 c0                	test   %eax,%eax
406332:	74 09                	je     0x40633d
406334:	50                   	push   %eax
406335:	e8 63 a6 02 00       	call   0x43099d
40633a:	83 c4 04             	add    $0x4,%esp
40633d:	56                   	push   %esi
40633e:	e8 5a a6 02 00       	call   0x43099d
406343:	83 c4 04             	add    $0x4,%esp
406346:	5e                   	pop    %esi
406347:	5b                   	pop    %ebx
406348:	5f                   	pop    %edi
406349:	5d                   	pop    %ebp
40634a:	c3                   	ret
40634b:	cc                   	int3
40634c:	cc                   	int3
40634d:	cc                   	int3
40634e:	cc                   	int3
40634f:	cc                   	int3
406350:	8b 44 24 04          	mov    0x4(%esp),%eax
406354:	56                   	push   %esi
406355:	8b 70 0c             	mov    0xc(%eax),%esi
406358:	57                   	push   %edi
406359:	85 f6                	test   %esi,%esi
40635b:	74 1b                	je     0x406378
40635d:	8b 7c 24 10          	mov    0x10(%esp),%edi
406361:	8b 4e 04             	mov    0x4(%esi),%ecx
406364:	57                   	push   %edi
406365:	51                   	push   %ecx
406366:	e8 2c d2 02 00       	call   0x433597
40636b:	83 c4 08             	add    $0x8,%esp
40636e:	85 c0                	test   %eax,%eax
406370:	74 0b                	je     0x40637d
406372:	8b 36                	mov    (%esi),%esi
406374:	85 f6                	test   %esi,%esi
406376:	75 e9                	jne    0x406361
406378:	5f                   	pop    %edi
406379:	33 c0                	xor    %eax,%eax
40637b:	5e                   	pop    %esi
40637c:	c3                   	ret
40637d:	85 f6                	test   %esi,%esi
40637f:	74 f7                	je     0x406378
406381:	8b 46 08             	mov    0x8(%esi),%eax
406384:	85 c0                	test   %eax,%eax
406386:	74 f0                	je     0x406378
406388:	b9 5c c9 45 00       	mov    $0x45c95c,%ecx
40638d:	8d 49 00             	lea    0x0(%ecx),%ecx
406390:	66 8b 10             	mov    (%eax),%dx
406393:	66 3b 11             	cmp    (%ecx),%dx
406396:	75 1e                	jne    0x4063b6
406398:	66 85 d2             	test   %dx,%dx
40639b:	74 15                	je     0x4063b2
40639d:	66 8b 50 02          	mov    0x2(%eax),%dx
4063a1:	66 3b 51 02          	cmp    0x2(%ecx),%dx
4063a5:	75 0f                	jne    0x4063b6
4063a7:	83 c0 04             	add    $0x4,%eax
4063aa:	83 c1 04             	add    $0x4,%ecx
4063ad:	66 85 d2             	test   %dx,%dx
4063b0:	75 de                	jne    0x406390
4063b2:	33 c0                	xor    %eax,%eax
4063b4:	eb 05                	jmp    0x4063bb
4063b6:	1b c0                	sbb    %eax,%eax
4063b8:	83 d8 ff             	sbb    $0xffffffff,%eax
4063bb:	85 c0                	test   %eax,%eax
4063bd:	75 b9                	jne    0x406378
4063bf:	5f                   	pop    %edi
4063c0:	b8 01 00 00 00       	mov    $0x1,%eax
4063c5:	5e                   	pop    %esi
4063c6:	c3                   	ret
4063c7:	cc                   	int3
4063c8:	cc                   	int3
4063c9:	cc                   	int3
4063ca:	cc                   	int3
4063cb:	cc                   	int3
4063cc:	cc                   	int3
4063cd:	cc                   	int3
4063ce:	cc                   	int3
4063cf:	cc                   	int3
4063d0:	8b 44 24 04          	mov    0x4(%esp),%eax
4063d4:	56                   	push   %esi
4063d5:	8b 70 0c             	mov    0xc(%eax),%esi
4063d8:	57                   	push   %edi
4063d9:	85 f6                	test   %esi,%esi
4063db:	74 2b                	je     0x406408
4063dd:	8b 7c 24 10          	mov    0x10(%esp),%edi
4063e1:	8b 4e 04             	mov    0x4(%esi),%ecx
4063e4:	57                   	push   %edi
4063e5:	51                   	push   %ecx
4063e6:	e8 ac d1 02 00       	call   0x433597
4063eb:	83 c4 08             	add    $0x8,%esp
4063ee:	85 c0                	test   %eax,%eax
4063f0:	74 0b                	je     0x4063fd
4063f2:	8b 36                	mov    (%esi),%esi
4063f4:	85 f6                	test   %esi,%esi
4063f6:	75 e9                	jne    0x4063e1
4063f8:	5f                   	pop    %edi
4063f9:	33 c0                	xor    %eax,%eax
4063fb:	5e                   	pop    %esi
4063fc:	c3                   	ret
4063fd:	85 f6                	test   %esi,%esi
4063ff:	74 07                	je     0x406408
406401:	8b 76 08             	mov    0x8(%esi),%esi
406404:	85 f6                	test   %esi,%esi
406406:	75 05                	jne    0x40640d
406408:	5f                   	pop    %edi
406409:	33 c0                	xor    %eax,%eax
40640b:	5e                   	pop    %esi
40640c:	c3                   	ret
40640d:	56                   	push   %esi
40640e:	e8 12 a7 02 00       	call   0x430b25
406413:	83 c4 04             	add    $0x4,%esp
406416:	5f                   	pop    %edi
406417:	5e                   	pop    %esi
406418:	c3                   	ret
406419:	cc                   	int3
40641a:	cc                   	int3
40641b:	cc                   	int3
40641c:	cc                   	int3
40641d:	cc                   	int3
40641e:	cc                   	int3
40641f:	cc                   	int3
406420:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
406425:	b8 5c c9 45 00       	mov    $0x45c95c,%eax
40642a:	75 05                	jne    0x406431
40642c:	b8 68 c9 45 00       	mov    $0x45c968,%eax
406431:	89 44 24 0c          	mov    %eax,0xc(%esp)
406435:	e9 06 fe ff ff       	jmp    0x406240
40643a:	cc                   	int3
40643b:	cc                   	int3