40a1d4:	56                   	push   %esi
40a1d5:	8b 18                	mov    (%eax),%ebx
40a1d7:	89 d6                	mov    %edx,%esi
40a1d9:	31 d2                	xor    %edx,%edx
40a1db:	41                   	inc    %ecx
40a1dc:	74 18                	je     0x40a1f6
40a1de:	ad                   	lods   %ds:(%esi),%eax
40a1df:	85 c0                	test   %eax,%eax
40a1e1:	7d 08                	jge    0x40a1eb
40a1e3:	f7 d0                	not    %eax
40a1e5:	f6 c3 01             	test   $0x1,%bl
40a1e8:	74 06                	je     0x40a1f0
40a1ea:	4b                   	dec    %ebx
40a1eb:	f6 c3 01             	test   $0x1,%bl
40a1ee:	74 02                	je     0x40a1f2
40a1f0:	09 c2                	or     %eax,%edx
40a1f2:	d1 eb                	shr    $1,%ebx
40a1f4:	e2 e8                	loop   0x40a1de
40a1f6:	92                   	xchg   %eax,%edx
40a1f7:	5e                   	pop    %esi
40a1f8:	5b                   	pop    %ebx
40a1f9:	8b e5                	mov    %ebp,%esp
40a1fb:	5d                   	pop    %ebp
40a1fc:	c3                   	ret
40a1fd:	8d 40 00             	lea    0x0(%eax),%eax
40a200:	e8 a7 89 ff ff       	call   0x402bac
40a205:	74 06                	je     0x40a20d
40a207:	50                   	push   %eax
40a208:	8b 10                	mov    (%eax),%edx
40a20a:	ff 12                	call   *(%edx)
40a20c:	58                   	pop    %eax
40a20d:	c3                   	ret
40a20e:	8b c0                	mov    %eax,%eax
40a210:	85 c0                	test   %eax,%eax
40a212:	74 0b                	je     0x40a21f
40a214:	83 68 04 02          	subl   $0x2,0x4(%eax)
40a218:	7d 05                	jge    0x40a21f
40a21a:	8b 10                	mov    (%eax),%edx
40a21c:	ff 72 04             	push   0x4(%edx)
40a21f:	c3                   	ret
40a220:	50                   	push   %eax
40a221:	e8 4a af ff ff       	call   0x405170
40a226:	58                   	pop    %eax
40a227:	31 d2                	xor    %edx,%edx
40a229:	e8 32 86 ff ff       	call   0x402860
40a22e:	c3                   	ret
40a22f:	90                   	nop
40a230:	53                   	push   %ebx
40a231:	52                   	push   %edx
40a232:	93                   	xchg   %eax,%ebx
40a233:	8b 43 10             	mov    0x10(%ebx),%eax
40a236:	85 c0                	test   %eax,%eax
40a238:	75 08                	jne    0x40a242
40a23a:	e8 79 af ff ff       	call   0x4051b8
40a23f:	89 43 10             	mov    %eax,0x10(%ebx)
40a242:	89 c3                	mov    %eax,%ebx
40a244:	31 d2                	xor    %edx,%edx
40a246:	59                   	pop    %ecx
40a247:	e8 54 b0 ff ff       	call   0x4052a0
40a24c:	93                   	xchg   %eax,%ebx
40a24d:	31 d2                	xor    %edx,%edx
40a24f:	b9 10 a2 40 00       	mov    $0x40a210,%ecx
40a254:	e8 47 b0 ff ff       	call   0x4052a0
40a259:	5b                   	pop    %ebx
40a25a:	c3                   	ret
40a25b:	90                   	nop
40a25c:	55                   	push   %ebp
40a25d:	8b ec                	mov    %esp,%ebp
40a25f:	53                   	push   %ebx
40a260:	93                   	xchg   %eax,%ebx
40a261:	8b 43 10             	mov    0x10(%ebx),%eax
40a264:	85 c0                	test   %eax,%eax
40a266:	75 08                	jne    0x40a270
40a268:	e8 4b af ff ff       	call   0x4051b8
40a26d:	89 43 10             	mov    %eax,0x10(%ebx)
40a270:	31 d2                	xor    %edx,%edx
40a272:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40a275:	89 c3                	mov    %eax,%ebx
40a277:	e8 24 b0 ff ff       	call   0x4052a0
40a27c:	93                   	xchg   %eax,%ebx
40a27d:	31 d2                	xor    %edx,%edx
40a27f:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a282:	e8 19 b0 ff ff       	call   0x4052a0
40a287:	5b                   	pop    %ebx
40a288:	5d                   	pop    %ebp
40a289:	c2 08 00             	ret    $0x8
40a28c:	53                   	push   %ebx
40a28d:	93                   	xchg   %eax,%ebx
40a28e:	8b 4b 10             	mov    0x10(%ebx),%ecx
40a291:	e3 29                	jecxz  0x40a2bc
40a293:	91                   	xchg   %eax,%ecx
40a294:	50                   	push   %eax
40a295:	e8 ea af ff ff       	call   0x405284
40a29a:	85 c0                	test   %eax,%eax
40a29c:	5a                   	pop    %edx
40a29d:	92                   	xchg   %eax,%edx
40a29e:	7c 1c                	jl     0x40a2bc
40a2a0:	50                   	push   %eax
40a2a1:	83 e2 fe             	and    $0xfffffffe,%edx
40a2a4:	31 c9                	xor    %ecx,%ecx
40a2a6:	b1 02                	mov    $0x2,%cl
40a2a8:	e8 87 af ff ff       	call   0x405234
40a2ad:	58                   	pop    %eax
40a2ae:	8b 48 1c             	mov    0x1c(%eax),%ecx
40a2b1:	41                   	inc    %ecx
40a2b2:	e2 08                	loop   0x40a2bc
40a2b4:	8d 43 10             	lea    0x10(%ebx),%eax
40a2b7:	e8 94 ae ff ff       	call   0x405150
40a2bc:	5b                   	pop    %ebx
40a2bd:	c3                   	ret
40a2be:	8b c0                	mov    %eax,%eax
40a2c0:	50                   	push   %eax
40a2c1:	e8 26 00 00 00       	call   0x40a2ec
40a2c6:	58                   	pop    %eax
40a2c7:	e8 54 ff ff ff       	call   0x40a220
40a2cc:	c3                   	ret
40a2cd:	8d 40 00             	lea    0x0(%eax),%eax
40a2d0:	3b 50 1c             	cmp    0x1c(%eax),%edx
40a2d3:	7d 03                	jge    0x40a2d8
40a2d5:	8b 50 1c             	mov    0x1c(%eax),%edx
40a2d8:	3b 50 20             	cmp    0x20(%eax),%edx
40a2db:	74 0e                	je     0x40a2eb
40a2dd:	89 50 20             	mov    %edx,0x20(%eax)
40a2e0:	c1 e2 02             	shl    $0x2,%edx
40a2e3:	8d 40 18             	lea    0x18(%eax),%eax
40a2e6:	e8 95 85 ff ff       	call   0x402880
40a2eb:	c3                   	ret
40a2ec:	ff 70 18             	push   0x18(%eax)
40a2ef:	31 d2                	xor    %edx,%edx
40a2f1:	89 50 18             	mov    %edx,0x18(%eax)
40a2f4:	89 50 1c             	mov    %edx,0x1c(%eax)
40a2f7:	89 50 20             	mov    %edx,0x20(%eax)
40a2fa:	58                   	pop    %eax
40a2fb:	e8 60 85 ff ff       	call   0x402860
40a300:	c3                   	ret
40a301:	8d 40 00             	lea    0x0(%eax),%eax
40a304:	85 d2                	test   %edx,%edx
40a306:	7c 0c                	jl     0x40a314
40a308:	3b 50 1c             	cmp    0x1c(%eax),%edx
40a30b:	7d 07                	jge    0x40a314
40a30d:	8b 40 18             	mov    0x18(%eax),%eax
40a310:	8b 04 90             	mov    (%eax,%edx,4),%eax
40a313:	c3                   	ret
40a314:	31 c0                	xor    %eax,%eax
40a316:	c3                   	ret
40a317:	90                   	nop
40a318:	53                   	push   %ebx
40a319:	56                   	push   %esi
40a31a:	66 bb 00 01          	mov    $0x100,%bx
40a31e:	66 87 1d 94 98 42 00 	xchg   %bx,0x429894
40a325:	31 c9                	xor    %ecx,%ecx
40a327:	87 0d 98 98 42 00    	xchg   %ecx,0x429898
40a32d:	e3 32                	jecxz  0x40a361
40a32f:	50                   	push   %eax
40a330:	91                   	xchg   %eax,%ecx
40a331:	89 c6                	mov    %eax,%esi
40a333:	e8 30 ae ff ff       	call   0x405168
40a338:	84 ff                	test   %bh,%bh
40a33a:	75 13                	jne    0x40a34f
40a33c:	89 f0                	mov    %esi,%eax
40a33e:	e8 21 1a 00 00       	call   0x40bd64
40a343:	6a 00                	push   $0x0
40a345:	6a 00                	push   $0x0
40a347:	6a 10                	push   $0x10
40a349:	56                   	push   %esi
40a34a:	e8 ed 21 00 00       	call   0x40c53c
40a34f:	58                   	pop    %eax
40a350:	31 c9                	xor    %ecx,%ecx
40a352:	89 08                	mov    %ecx,(%eax)
40a354:	89 f0                	mov    %esi,%eax
40a356:	e8 b5 fe ff ff       	call   0x40a210
40a35b:	96                   	xchg   %eax,%esi
40a35c:	e8 af fe ff ff       	call   0x40a210
40a361:	5e                   	pop    %esi
40a362:	5b                   	pop    %ebx
40a363:	c3                   	ret
40a364:	83 f8 00             	cmp    $0x0,%eax
40a367:	74 37                	je     0x40a3a0
40a369:	53                   	push   %ebx
40a36a:	93                   	xchg   %eax,%ebx
40a36b:	fe 05 94 98 42 00    	incb   0x429894
40a371:	8b 03                	mov    (%ebx),%eax
40a373:	89 05 98 98 42 00    	mov    %eax,0x429898
40a379:	e8 f6 af ff ff       	call   0x405374
40a37e:	eb 0c                	jmp    0x40a38c
40a380:	e8 d3 a7 ff ff       	call   0x404b58
40a385:	8b 03                	mov    (%ebx),%eax
40a387:	e8 d8 19 00 00       	call   0x40bd64
40a38c:	0f b6 0d 95 98 42 00 	movzbl 0x429895,%ecx
40a393:	e3 eb                	jecxz  0x40a380
40a395:	8b 0b                	mov    (%ebx),%ecx
40a397:	93                   	xchg   %eax,%ebx
40a398:	5b                   	pop    %ebx
40a399:	e3 05                	jecxz  0x40a3a0
40a39b:	e8 78 ff ff ff       	call   0x40a318
40a3a0:	c3                   	ret
40a3a1:	8d 40 00             	lea    0x0(%eax),%eax
40a3a4:	8b 48 30             	mov    0x30(%eax),%ecx
40a3a7:	e3 10                	jecxz  0x40a3b9
40a3a9:	8b 90 a4 00 00 00    	mov    0xa4(%eax),%edx
40a3af:	3b 91 a4 00 00 00    	cmp    0xa4(%ecx),%edx
40a3b5:	91                   	xchg   %eax,%ecx
40a3b6:	74 ec                	je     0x40a3a4
40a3b8:	91                   	xchg   %eax,%ecx
40a3b9:	91                   	xchg   %eax,%ecx
40a3ba:	8b 41 48             	mov    0x48(%ecx),%eax
40a3bd:	85 c0                	test   %eax,%eax
40a3bf:	75 16                	jne    0x40a3d7
40a3c1:	51                   	push   %ecx
40a3c2:	8b 81 a4 00 00 00    	mov    0xa4(%ecx),%eax
40a3c8:	e8 97 00 00 00       	call   0x40a464
40a3cd:	50                   	push   %eax
40a3ce:	e8 1d a5 ff ff       	call   0x4048f0
40a3d3:	59                   	pop    %ecx
40a3d4:	89 41 48             	mov    %eax,0x48(%ecx)
40a3d7:	c3                   	ret
40a3d8:	56                   	push   %esi
40a3d9:	ff 70 30             	push   0x30(%eax)
40a3dc:	e8 a7 1b 00 00       	call   0x40bf88
40a3e1:	96                   	xchg   %eax,%esi
40a3e2:	59                   	pop    %ecx
40a3e3:	e3 09                	jecxz  0x40a3ee
40a3e5:	91                   	xchg   %eax,%ecx
40a3e6:	e8 9d 1b 00 00       	call   0x40bf88
40a3eb:	89 46 1d             	mov    %eax,0x1d(%esi)
40a3ee:	96                   	xchg   %eax,%esi
40a3ef:	e8 dc 01 00 00       	call   0x40a5d0
40a3f4:	5e                   	pop    %esi
40a3f5:	c3                   	ret
40a3f6:	8b c0                	mov    %eax,%eax
40a3f8:	c7 05 44 61 42 00 d8 	movl   $0x40a3d8,0x426144
40a3ff:	a3 40 00
40a402:	e8 bd af ff ff       	call   0x4053c4
40a407:	c7 40 6d f8 a3 40 00 	movl   $0x40a3f8,0x6d(%eax)
40a40e:	c6 40 18 00          	movb   $0x0,0x18(%eax)
40a412:	c7 40 71 28 a6 40 00 	movl   $0x40a628,0x71(%eax)
40a419:	c7 40 2d 0f 00 00 80 	movl   $0x8000000f,0x2d(%eax)
40a420:	c3                   	ret
40a421:	8d 40 00             	lea    0x0(%eax),%eax
40a424:	b8 f4 bf 40 00       	mov    $0x40bff4,%eax
40a429:	89 05 60 62 42 00    	mov    %eax,0x426260
40a42f:	e8 90 af ff ff       	call   0x4053c4
40a434:	c7 40 6d 24 a4 40 00 	movl   $0x40a424,0x6d(%eax)
40a43b:	c6 40 18 01          	movb   $0x1,0x18(%eax)
40a43f:	c7 40 71 6c 54 40 00 	movl   $0x40546c,0x71(%eax)
40a446:	8b 15 10 61 42 00    	mov    0x426110,%edx
40a44c:	89 50 2d             	mov    %edx,0x2d(%eax)
40a44f:	50                   	push   %eax
40a450:	8d 50 31             	lea    0x31(%eax),%edx
40a453:	b8 d4 60 42 00       	mov    $0x4260d4,%eax
40a458:	31 c9                	xor    %ecx,%ecx
40a45a:	b1 3c                	mov    $0x3c,%cl
40a45c:	e8 e3 84 ff ff       	call   0x402944
40a461:	58                   	pop    %eax
40a462:	c3                   	ret
40a463:	90                   	nop
40a464:	0f ba f0 1f          	btr    $0x1f,%eax
40a468:	73 09                	jae    0x40a473
40a46a:	83 e0 7f             	and    $0x7f,%eax
40a46d:	50                   	push   %eax
40a46e:	e8 fd a5 ff ff       	call   0x404a70
40a473:	c3                   	ret
40a474:	e8 eb ff ff ff       	call   0x40a464
40a479:	86 e0                	xchg   %ah,%al
40a47b:	c1 c8 10             	ror    $0x10,%eax
40a47e:	86 e0                	xchg   %ah,%al
40a480:	c1 e8 08             	shr    $0x8,%eax
40a483:	c3                   	ret
40a484:	89 c2                	mov    %eax,%edx
40a486:	c1 ea 13             	shr    $0x13,%edx
40a489:	83 e2 1f             	and    $0x1f,%edx
40a48c:	89 c1                	mov    %eax,%ecx
40a48e:	c1 e9 05             	shr    $0x5,%ecx
40a491:	81 e1 e0 07 00 00    	and    $0x7e0,%ecx
40a497:	88 c4                	mov    %al,%ah
40a499:	25 00 f8 00 00       	and    $0xf800,%eax
40a49e:	09 d0                	or     %edx,%eax
40a4a0:	09 c8                	or     %ecx,%eax
40a4a2:	c3                   	ret
40a4a3:	90                   	nop
40a4a4:	85 d2                	test   %edx,%edx
40a4a6:	75 08                	jne    0x40a4b0
40a4a8:	e8 63 fd ff ff       	call   0x40a210
40a4ad:	31 c0                	xor    %eax,%eax
40a4af:	c3                   	ret
40a4b0:	57                   	push   %edi
40a4b1:	89 d7                	mov    %edx,%edi
40a4b3:	85 c0                	test   %eax,%eax
40a4b5:	75 04                	jne    0x40a4bb
40a4b7:	92                   	xchg   %eax,%edx
40a4b8:	ff 50 6d             	call   *0x6d(%eax)
40a4bb:	39 f8                	cmp    %edi,%eax
40a4bd:	74 2c                	je     0x40a4eb
40a4bf:	53                   	push   %ebx
40a4c0:	93                   	xchg   %eax,%ebx
40a4c1:	8b 4b 19             	mov    0x19(%ebx),%ecx
40a4c4:	e3 05                	jecxz  0x40a4cb
40a4c6:	3b 4f 19             	cmp    0x19(%edi),%ecx
40a4c9:	74 1e                	je     0x40a4e9
40a4cb:	89 d8                	mov    %ebx,%eax
40a4cd:	e8 1e 00 00 00       	call   0x40a4f0
40a4d2:	8d 53 2d             	lea    0x2d(%ebx),%edx
40a4d5:	8d 47 2d             	lea    0x2d(%edi),%eax
40a4d8:	b9 40 00 00 00       	mov    $0x40,%ecx
40a4dd:	e8 62 84 ff ff       	call   0x402944
40a4e2:	89 d8                	mov    %ebx,%eax
40a4e4:	e8 07 00 00 00       	call   0x40a4f0
40a4e9:	93                   	xchg   %eax,%ebx
40a4ea:	5b                   	pop    %ebx
40a4eb:	5f                   	pop    %edi
40a4ec:	c3                   	ret
40a4ed:	8d 40 00             	lea    0x0(%eax),%eax
40a4f0:	31 c9                	xor    %ecx,%ecx
40a4f2:	87 48 19             	xchg   %ecx,0x19(%eax)
40a4f5:	e3 0d                	jecxz  0x40a504
40a4f7:	50                   	push   %eax
40a4f8:	51                   	push   %ecx
40a4f9:	e8 06 00 00 00       	call   0x40a504
40a4fe:	e8 fd a3 ff ff       	call   0x404900
40a503:	58                   	pop    %eax
40a504:	8b 48 25             	mov    0x25(%eax),%ecx
40a507:	e3 08                	jecxz  0x40a511
40a509:	50                   	push   %eax
40a50a:	92                   	xchg   %eax,%edx
40a50b:	8b 42 29             	mov    0x29(%edx),%eax
40a50e:	ff d1                	call   *%ecx
40a510:	58                   	pop    %eax
40a511:	c3                   	ret
40a512:	8b c0                	mov    %eax,%eax
40a514:	50                   	push   %eax
40a515:	80 78 18 01          	cmpb   $0x1,0x18(%eax)
40a519:	74 0d                	je     0x40a528
40a51b:	8b 48 31             	mov    0x31(%eax),%ecx
40a51e:	e3 08                	jecxz  0x40a528
40a520:	51                   	push   %ecx
40a521:	e8 da a3 ff ff       	call   0x404900
40a526:	58                   	pop    %eax
40a527:	50                   	push   %eax
40a528:	8b 48 19             	mov    0x19(%eax),%ecx
40a52b:	e3 06                	jecxz  0x40a533
40a52d:	51                   	push   %ecx
40a52e:	e8 cd a3 ff ff       	call   0x404900
40a533:	58                   	pop    %eax
40a534:	e8 e7 fc ff ff       	call   0x40a220
40a539:	c3                   	ret
40a53a:	8b c0                	mov    %eax,%eax
40a53c:	50                   	push   %eax
40a53d:	e8 ae ff ff ff       	call   0x40a4f0
40a542:	5a                   	pop    %edx
40a543:	31 c0                	xor    %eax,%eax