40407f:	ff
404080:	f6 c1 01             	test   $0x1,%cl
404083:	74 0e                	je     0x404093
404085:	80 4c 06 1d 10       	orb    $0x10,0x1d(%esi,%eax,1)
40408a:	8a 8c 05 fc fd ff ff 	mov    -0x204(%ebp,%eax,1),%cl
404091:	eb 11                	jmp    0x4040a4
404093:	f6 c1 02             	test   $0x2,%cl
404096:	74 15                	je     0x4040ad
404098:	80 4c 06 1d 20       	orb    $0x20,0x1d(%esi,%eax,1)
40409d:	8a 8c 05 fc fc ff ff 	mov    -0x304(%ebp,%eax,1),%cl
4040a4:	88 8c 06 1d 01 00 00 	mov    %cl,0x11d(%esi,%eax,1)
4040ab:	eb 08                	jmp    0x4040b5
4040ad:	c6 84 06 1d 01 00 00 	movb   $0x0,0x11d(%esi,%eax,1)
4040b4:	00
4040b5:	40                   	inc    %eax
4040b6:	3b c7                	cmp    %edi,%eax
4040b8:	72 be                	jb     0x404078
4040ba:	eb 56                	jmp    0x404112
4040bc:	8d 86 1d 01 00 00    	lea    0x11d(%esi),%eax
4040c2:	c7 85 e4 fa ff ff 9f 	movl   $0xffffff9f,-0x51c(%ebp)
4040c9:	ff ff ff
4040cc:	33 c9                	xor    %ecx,%ecx
4040ce:	29 85 e4 fa ff ff    	sub    %eax,-0x51c(%ebp)
4040d4:	8b 95 e4 fa ff ff    	mov    -0x51c(%ebp),%edx
4040da:	8d 84 0e 1d 01 00 00 	lea    0x11d(%esi,%ecx,1),%eax
4040e1:	03 d0                	add    %eax,%edx
4040e3:	8d 5a 20             	lea    0x20(%edx),%ebx
4040e6:	83 fb 19             	cmp    $0x19,%ebx
4040e9:	77 0c                	ja     0x4040f7
4040eb:	80 4c 0e 1d 10       	orb    $0x10,0x1d(%esi,%ecx,1)
4040f0:	8a d1                	mov    %cl,%dl
4040f2:	80 c2 20             	add    $0x20,%dl
4040f5:	eb 0f                	jmp    0x404106
4040f7:	83 fa 19             	cmp    $0x19,%edx
4040fa:	77 0e                	ja     0x40410a
4040fc:	80 4c 0e 1d 20       	orb    $0x20,0x1d(%esi,%ecx,1)
404101:	8a d1                	mov    %cl,%dl
404103:	80 ea 20             	sub    $0x20,%dl
404106:	88 10                	mov    %dl,(%eax)
404108:	eb 03                	jmp    0x40410d
40410a:	c6 00 00             	movb   $0x0,(%eax)
40410d:	41                   	inc    %ecx
40410e:	3b cf                	cmp    %edi,%ecx
404110:	72 c2                	jb     0x4040d4
404112:	8b 4d fc             	mov    -0x4(%ebp),%ecx
404115:	5f                   	pop    %edi
404116:	33 cd                	xor    %ebp,%ecx
404118:	5b                   	pop    %ebx
404119:	e8 d2 e2 ff ff       	call   0x4023f0
40411e:	c9                   	leave
40411f:	c3                   	ret
404120:	6a 0c                	push   $0xc
404122:	68 58 a5 40 00       	push   $0x40a558
404127:	e8 48 fb ff ff       	call   0x403c74
40412c:	e8 3a f8 ff ff       	call   0x40396b
404131:	8b f8                	mov    %eax,%edi
404133:	a1 4c b6 40 00       	mov    0x40b64c,%eax
404138:	85 47 70             	test   %eax,0x70(%edi)
40413b:	74 1d                	je     0x40415a
40413d:	83 7f 6c 00          	cmpl   $0x0,0x6c(%edi)
404141:	74 17                	je     0x40415a
404143:	8b 77 68             	mov    0x68(%edi),%esi
404146:	85 f6                	test   %esi,%esi
404148:	75 08                	jne    0x404152
40414a:	6a 20                	push   $0x20
40414c:	e8 e6 e8 ff ff       	call   0x402a37
404151:	59                   	pop    %ecx
404152:	8b c6                	mov    %esi,%eax
404154:	e8 60 fb ff ff       	call   0x403cb9
404159:	c3                   	ret
40415a:	6a 0d                	push   $0xd
40415c:	e8 aa 0c 00 00       	call   0x404e0b
404161:	59                   	pop    %ecx
404162:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
404166:	8b 77 68             	mov    0x68(%edi),%esi
404169:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40416c:	3b 35 50 b5 40 00    	cmp    0x40b550,%esi
404172:	74 36                	je     0x4041aa
404174:	85 f6                	test   %esi,%esi
404176:	74 1a                	je     0x404192
404178:	56                   	push   %esi
404179:	ff 15 cc 10 40 00    	call   *0x4010cc
40417f:	85 c0                	test   %eax,%eax
404181:	75 0f                	jne    0x404192
404183:	81 fe 28 b1 40 00    	cmp    $0x40b128,%esi
404189:	74 07                	je     0x404192
40418b:	56                   	push   %esi
40418c:	e8 0d 16 00 00       	call   0x40579e
404191:	59                   	pop    %ecx
404192:	a1 50 b5 40 00       	mov    0x40b550,%eax
404197:	89 47 68             	mov    %eax,0x68(%edi)
40419a:	8b 35 50 b5 40 00    	mov    0x40b550,%esi
4041a0:	89 75 e4             	mov    %esi,-0x1c(%ebp)
4041a3:	56                   	push   %esi
4041a4:	ff 15 5c 10 40 00    	call   *0x40105c
4041aa:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4041b1:	e8 05 00 00 00       	call   0x4041bb
4041b6:	eb 8e                	jmp    0x404146
4041b8:	8b 75 e4             	mov    -0x1c(%ebp),%esi
4041bb:	6a 0d                	push   $0xd
4041bd:	e8 6f 0b 00 00       	call   0x404d31
4041c2:	59                   	pop    %ecx
4041c3:	c3                   	ret
4041c4:	8b ff                	mov    %edi,%edi
4041c6:	55                   	push   %ebp
4041c7:	8b ec                	mov    %esp,%ebp
4041c9:	83 ec 10             	sub    $0x10,%esp
4041cc:	53                   	push   %ebx
4041cd:	33 db                	xor    %ebx,%ebx
4041cf:	53                   	push   %ebx
4041d0:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4041d3:	e8 fe e4 ff ff       	call   0x4026d6
4041d8:	89 1d e0 cd 45 00    	mov    %ebx,0x45cde0
4041de:	83 fe fe             	cmp    $0xfffffffe,%esi
4041e1:	75 1e                	jne    0x404201
4041e3:	c7 05 e0 cd 45 00 01 	movl   $0x1,0x45cde0
4041ea:	00 00 00
4041ed:	ff 15 ec 10 40 00    	call   *0x4010ec
4041f3:	38 5d fc             	cmp    %bl,-0x4(%ebp)
4041f6:	74 45                	je     0x40423d
4041f8:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4041fb:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
4041ff:	eb 3c                	jmp    0x40423d
404201:	83 fe fd             	cmp    $0xfffffffd,%esi
404204:	75 12                	jne    0x404218
404206:	c7 05 e0 cd 45 00 01 	movl   $0x1,0x45cde0
40420d:	00 00 00
404210:	ff 15 e8 10 40 00    	call   *0x4010e8
404216:	eb db                	jmp    0x4041f3
404218:	83 fe fc             	cmp    $0xfffffffc,%esi
40421b:	75 12                	jne    0x40422f
40421d:	8b 45 f0             	mov    -0x10(%ebp),%eax
404220:	8b 40 04             	mov    0x4(%eax),%eax
404223:	c7 05 e0 cd 45 00 01 	movl   $0x1,0x45cde0
40422a:	00 00 00
40422d:	eb c4                	jmp    0x4041f3
40422f:	38 5d fc             	cmp    %bl,-0x4(%ebp)
404232:	74 07                	je     0x40423b
404234:	8b 45 f8             	mov    -0x8(%ebp),%eax
404237:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
40423b:	8b c6                	mov    %esi,%eax
40423d:	5b                   	pop    %ebx
40423e:	c9                   	leave
40423f:	c3                   	ret
404240:	8b ff                	mov    %edi,%edi
404242:	55                   	push   %ebp
404243:	8b ec                	mov    %esp,%ebp
404245:	83 ec 20             	sub    $0x20,%esp
404248:	a1 04 b0 40 00       	mov    0x40b004,%eax
40424d:	33 c5                	xor    %ebp,%eax
40424f:	89 45 fc             	mov    %eax,-0x4(%ebp)
404252:	53                   	push   %ebx
404253:	8b 5d 0c             	mov    0xc(%ebp),%ebx
404256:	56                   	push   %esi
404257:	8b 75 08             	mov    0x8(%ebp),%esi
40425a:	57                   	push   %edi
40425b:	e8 64 ff ff ff       	call   0x4041c4
404260:	8b f8                	mov    %eax,%edi
404262:	33 f6                	xor    %esi,%esi
404264:	89 7d 08             	mov    %edi,0x8(%ebp)
404267:	3b fe                	cmp    %esi,%edi
404269:	75 0e                	jne    0x404279
40426b:	8b c3                	mov    %ebx,%eax
40426d:	e8 b7 fc ff ff       	call   0x403f29
404272:	33 c0                	xor    %eax,%eax
404274:	e9 9d 01 00 00       	jmp    0x404416
404279:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40427c:	33 c0                	xor    %eax,%eax
40427e:	39 b8 58 b5 40 00    	cmp    %edi,0x40b558(%eax)
404284:	0f 84 91 00 00 00    	je     0x40431b
40428a:	ff 45 e4             	incl   -0x1c(%ebp)
40428d:	83 c0 30             	add    $0x30,%eax
404290:	3d f0 00 00 00       	cmp    $0xf0,%eax
404295:	72 e7                	jb     0x40427e
404297:	81 ff e8 fd 00 00    	cmp    $0xfde8,%edi
40429d:	0f 84 70 01 00 00    	je     0x404413
4042a3:	81 ff e9 fd 00 00    	cmp    $0xfde9,%edi
4042a9:	0f 84 64 01 00 00    	je     0x404413
4042af:	0f b7 c7             	movzwl %di,%eax
4042b2:	50                   	push   %eax
4042b3:	ff 15 f0 10 40 00    	call   *0x4010f0
4042b9:	85 c0                	test   %eax,%eax
4042bb:	0f 84 52 01 00 00    	je     0x404413
4042c1:	8d 45 e8             	lea    -0x18(%ebp),%eax
4042c4:	50                   	push   %eax
4042c5:	57                   	push   %edi
4042c6:	ff 15 e4 10 40 00    	call   *0x4010e4
4042cc:	85 c0                	test   %eax,%eax
4042ce:	0f 84 33 01 00 00    	je     0x404407
4042d4:	68 01 01 00 00       	push   $0x101
4042d9:	8d 43 1c             	lea    0x1c(%ebx),%eax
4042dc:	56                   	push   %esi
4042dd:	50                   	push   %eax
4042de:	e8 3d 26 00 00       	call   0x406920
4042e3:	33 d2                	xor    %edx,%edx
4042e5:	42                   	inc    %edx
4042e6:	83 c4 0c             	add    $0xc,%esp
4042e9:	89 7b 04             	mov    %edi,0x4(%ebx)
4042ec:	89 73 0c             	mov    %esi,0xc(%ebx)
4042ef:	39 55 e8             	cmp    %edx,-0x18(%ebp)
4042f2:	0f 86 f8 00 00 00    	jbe    0x4043f0
4042f8:	80 7d ee 00          	cmpb   $0x0,-0x12(%ebp)
4042fc:	0f 84 cf 00 00 00    	je     0x4043d1
404302:	8d 75 ef             	lea    -0x11(%ebp),%esi
404305:	8a 0e                	mov    (%esi),%cl
404307:	84 c9                	test   %cl,%cl
404309:	0f 84 c2 00 00 00    	je     0x4043d1
40430f:	0f b6 46 ff          	movzbl -0x1(%esi),%eax
404313:	0f b6 c9             	movzbl %cl,%ecx
404316:	e9 a6 00 00 00       	jmp    0x4043c1
40431b:	68 01 01 00 00       	push   $0x101
404320:	8d 43 1c             	lea    0x1c(%ebx),%eax
404323:	56                   	push   %esi
404324:	50                   	push   %eax
404325:	e8 f6 25 00 00       	call   0x406920
40432a:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40432d:	83 c4 0c             	add    $0xc,%esp
404330:	6b c9 30             	imul   $0x30,%ecx,%ecx
404333:	89 75 e0             	mov    %esi,-0x20(%ebp)
404336:	8d b1 68 b5 40 00    	lea    0x40b568(%ecx),%esi
40433c:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40433f:	eb 2a                	jmp    0x40436b
404341:	8a 46 01             	mov    0x1(%esi),%al
404344:	84 c0                	test   %al,%al
404346:	74 28                	je     0x404370
404348:	0f b6 3e             	movzbl (%esi),%edi
40434b:	0f b6 c0             	movzbl %al,%eax
40434e:	eb 12                	jmp    0x404362
404350:	8b 45 e0             	mov    -0x20(%ebp),%eax
404353:	8a 80 54 b5 40 00    	mov    0x40b554(%eax),%al
404359:	08 44 3b 1d          	or     %al,0x1d(%ebx,%edi,1)
40435d:	0f b6 46 01          	movzbl 0x1(%esi),%eax
404361:	47                   	inc    %edi
404362:	3b f8                	cmp    %eax,%edi
404364:	76 ea                	jbe    0x404350
404366:	8b 7d 08             	mov    0x8(%ebp),%edi
404369:	46                   	inc    %esi
40436a:	46                   	inc    %esi
40436b:	80 3e 00             	cmpb   $0x0,(%esi)
40436e:	75 d1                	jne    0x404341
404370:	8b 75 e4             	mov    -0x1c(%ebp),%esi
404373:	ff 45 e0             	incl   -0x20(%ebp)
404376:	83 c6 08             	add    $0x8,%esi
404379:	83 7d e0 04          	cmpl   $0x4,-0x20(%ebp)
40437d:	89 75 e4             	mov    %esi,-0x1c(%ebp)
404380:	72 e9                	jb     0x40436b
404382:	8b c7                	mov    %edi,%eax
404384:	89 7b 04             	mov    %edi,0x4(%ebx)
404387:	c7 43 08 01 00 00 00 	movl   $0x1,0x8(%ebx)
40438e:	e8 67 fb ff ff       	call   0x403efa
404393:	6a 06                	push   $0x6
404395:	89 43 0c             	mov    %eax,0xc(%ebx)
404398:	8d 43 10             	lea    0x10(%ebx),%eax
40439b:	8d 89 5c b5 40 00    	lea    0x40b55c(%ecx),%ecx
4043a1:	5a                   	pop    %edx
4043a2:	66 8b 31             	mov    (%ecx),%si
4043a5:	41                   	inc    %ecx
4043a6:	66 89 30             	mov    %si,(%eax)
4043a9:	41                   	inc    %ecx
4043aa:	40                   	inc    %eax
4043ab:	40                   	inc    %eax
4043ac:	4a                   	dec    %edx
4043ad:	75 f3                	jne    0x4043a2
4043af:	8b f3                	mov    %ebx,%esi
4043b1:	e8 d7 fb ff ff       	call   0x403f8d
4043b6:	e9 b7 fe ff ff       	jmp    0x404272
4043bb:	80 4c 03 1d 04       	orb    $0x4,0x1d(%ebx,%eax,1)
4043c0:	40                   	inc    %eax
4043c1:	3b c1                	cmp    %ecx,%eax
4043c3:	76 f6                	jbe    0x4043bb
4043c5:	46                   	inc    %esi
4043c6:	46                   	inc    %esi
4043c7:	80 7e ff 00          	cmpb   $0x0,-0x1(%esi)
4043cb:	0f 85 34 ff ff ff    	jne    0x404305
4043d1:	8d 43 1e             	lea    0x1e(%ebx),%eax
4043d4:	b9 fe 00 00 00       	mov    $0xfe,%ecx
4043d9:	80 08 08             	orb    $0x8,(%eax)
4043dc:	40                   	inc    %eax
4043dd:	49                   	dec    %ecx
4043de:	75 f9                	jne    0x4043d9
4043e0:	8b 43 04             	mov    0x4(%ebx),%eax
4043e3:	e8 12 fb ff ff       	call   0x403efa
4043e8:	89 43 0c             	mov    %eax,0xc(%ebx)
4043eb:	89 53 08             	mov    %edx,0x8(%ebx)
4043ee:	eb 03                	jmp    0x4043f3
4043f0:	89 73 08             	mov    %esi,0x8(%ebx)
4043f3:	33 c0                	xor    %eax,%eax
4043f5:	0f b7 c8             	movzwl %ax,%ecx
4043f8:	8b c1                	mov    %ecx,%eax
4043fa:	c1 e1 10             	shl    $0x10,%ecx
4043fd:	0b c1                	or     %ecx,%eax
4043ff:	8d 7b 10             	lea    0x10(%ebx),%edi
404402:	ab                   	stos   %eax,%es:(%edi)
404403:	ab                   	stos   %eax,%es:(%edi)
404404:	ab                   	stos   %eax,%es:(%edi)
404405:	eb a8                	jmp    0x4043af
404407:	39 35 e0 cd 45 00    	cmp    %esi,0x45cde0
40440d:	0f 85 58 fe ff ff    	jne    0x40426b
404413:	83 c8 ff             	or     $0xffffffff,%eax
404416:	8b 4d fc             	mov    -0x4(%ebp),%ecx
404419:	5f                   	pop    %edi
40441a:	5e                   	pop    %esi
40441b:	33 cd                	xor    %ebp,%ecx
40441d:	5b                   	pop    %ebx
40441e:	e8 cd df ff ff       	call   0x4023f0
404423:	c9                   	leave
404424:	c3                   	ret
404425:	6a 14                	push   $0x14
404427:	68 78 a5 40 00       	push   $0x40a578
40442c:	e8 43 f8 ff ff       	call   0x403c74
404431:	83 4d e0 ff          	orl    $0xffffffff,-0x20(%ebp)
404435:	e8 31 f5 ff ff       	call   0x40396b
40443a:	8b f8                	mov    %eax,%edi
40443c:	89 7d dc             	mov    %edi,-0x24(%ebp)
40443f:	e8 dc fc ff ff       	call   0x404120
404444:	8b 5f 68             	mov    0x68(%edi),%ebx
404447:	8b 75 08             	mov    0x8(%ebp),%esi
40444a:	e8 75 fd ff ff       	call   0x4041c4
40444f:	89 45 08             	mov    %eax,0x8(%ebp)
404452:	3b 43 04             	cmp    0x4(%ebx),%eax
404455:	0f 84 57 01 00 00    	je     0x4045b2
40445b:	68 20 02 00 00       	push   $0x220
404460:	e8 36 14 00 00       	call   0x40589b
404465:	59                   	pop    %ecx
404466:	8b d8                	mov    %eax,%ebx
404468:	85 db                	test   %ebx,%ebx
40446a:	0f 84 46 01 00 00    	je     0x4045b6
404470:	b9 88 00 00 00       	mov    $0x88,%ecx
404475:	8b 77 68             	mov    0x68(%edi),%esi
404478:	8b fb                	mov    %ebx,%edi
40447a:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40447c:	83 23 00             	andl   $0x0,(%ebx)
40447f:	53                   	push   %ebx
404480:	ff 75 08             	push   0x8(%ebp)
404483:	e8 b8 fd ff ff       	call   0x404240
404488:	59                   	pop    %ecx
404489:	59                   	pop    %ecx
40448a:	89 45 e0             	mov    %eax,-0x20(%ebp)
40448d:	85 c0                	test   %eax,%eax
40448f:	0f 85 fc 00 00 00    	jne    0x404591
404495:	8b 75 dc             	mov    -0x24(%ebp),%esi
404498:	ff 76 68             	push   0x68(%esi)
40449b:	ff 15 cc 10 40 00    	call   *0x4010cc
4044a1:	85 c0                	test   %eax,%eax
4044a3:	75 11                	jne    0x4044b6
4044a5:	8b 46 68             	mov    0x68(%esi),%eax
4044a8:	3d 28 b1 40 00       	cmp    $0x40b128,%eax
4044ad:	74 07                	je     0x4044b6
4044af:	50                   	push   %eax
4044b0:	e8 e9 12 00 00       	call   0x40579e