406fa1:	c3                   	ret
406fa2:	85 c0                	test   %eax,%eax
406fa4:	74 c4                	je     0x406f6a
406fa6:	8b 16                	mov    (%esi),%edx
406fa8:	8b 0f                	mov    (%edi),%ecx
406faa:	38 ca                	cmp    %cl,%dl
406fac:	75 e7                	jne    0x406f95
406fae:	48                   	dec    %eax
406faf:	74 18                	je     0x406fc9
406fb1:	38 ee                	cmp    %ch,%dh
406fb3:	75 e0                	jne    0x406f95
406fb5:	48                   	dec    %eax
406fb6:	74 11                	je     0x406fc9
406fb8:	81 e1 00 00 ff 00    	and    $0xff0000,%ecx
406fbe:	81 e2 00 00 ff 00    	and    $0xff0000,%edx
406fc4:	3b d1                	cmp    %ecx,%edx
406fc6:	75 cd                	jne    0x406f95
406fc8:	48                   	dec    %eax
406fc9:	5f                   	pop    %edi
406fca:	5e                   	pop    %esi
406fcb:	c3                   	ret
406fcc:	56                   	push   %esi
406fcd:	8b 35 bc d0 40 00    	mov    0x40d0bc,%esi
406fd3:	ff 35 64 08 41 00    	push   0x410864
406fd9:	ff d6                	call   *%esi
406fdb:	ff 35 54 08 41 00    	push   0x410854
406fe1:	ff d6                	call   *%esi
406fe3:	ff 35 44 08 41 00    	push   0x410844
406fe9:	ff d6                	call   *%esi
406feb:	ff 35 24 08 41 00    	push   0x410824
406ff1:	ff d6                	call   *%esi
406ff3:	5e                   	pop    %esi
406ff4:	c3                   	ret
406ff5:	55                   	push   %ebp
406ff6:	8b ec                	mov    %esp,%ebp
406ff8:	8b 45 08             	mov    0x8(%ebp),%eax
406ffb:	56                   	push   %esi
406ffc:	83 3c 85 20 08 41 00 	cmpl   $0x0,0x410820(,%eax,4)
407003:	00
407004:	8d 34 85 20 08 41 00 	lea    0x410820(,%eax,4),%esi
40700b:	75 3e                	jne    0x40704b
40700d:	57                   	push   %edi
40700e:	6a 18                	push   $0x18
407010:	e8 78 03 00 00       	call   0x40738d
407015:	8b f8                	mov    %eax,%edi
407017:	59                   	pop    %ecx
407018:	85 ff                	test   %edi,%edi
40701a:	75 08                	jne    0x407024
40701c:	6a 11                	push   $0x11
40701e:	e8 59 e7 ff ff       	call   0x40577c
407023:	59                   	pop    %ecx
407024:	6a 11                	push   $0x11
407026:	e8 ca ff ff ff       	call   0x406ff5
40702b:	83 3e 00             	cmpl   $0x0,(%esi)
40702e:	59                   	pop    %ecx
40702f:	57                   	push   %edi
407030:	75 0a                	jne    0x40703c
407032:	ff 15 bc d0 40 00    	call   *0x40d0bc
407038:	89 3e                	mov    %edi,(%esi)
40703a:	eb 06                	jmp    0x407042
40703c:	e8 96 fe ff ff       	call   0x406ed7
407041:	59                   	pop    %ecx
407042:	6a 11                	push   $0x11
407044:	e8 0d 00 00 00       	call   0x407056
407049:	59                   	pop    %ecx
40704a:	5f                   	pop    %edi
40704b:	ff 36                	push   (%esi)
40704d:	ff 15 b4 d0 40 00    	call   *0x40d0b4
407053:	5e                   	pop    %esi
407054:	5d                   	pop    %ebp
407055:	c3                   	ret
407056:	55                   	push   %ebp
407057:	8b ec                	mov    %esp,%ebp
407059:	8b 45 08             	mov    0x8(%ebp),%eax
40705c:	ff 34 85 20 08 41 00 	push   0x410820(,%eax,4)
407063:	ff 15 c8 d0 40 00    	call   *0x40d0c8
407069:	5d                   	pop    %ebp
40706a:	c3                   	ret
40706b:	56                   	push   %esi
40706c:	e8 76 00 00 00       	call   0x4070e7
407071:	8b 4c 24 08          	mov    0x8(%esp),%ecx
407075:	33 f6                	xor    %esi,%esi
407077:	89 08                	mov    %ecx,(%eax)
407079:	b8 f8 0b 41 00       	mov    $0x410bf8,%eax
40707e:	3b 08                	cmp    (%eax),%ecx
407080:	74 22                	je     0x4070a4
407082:	83 c0 08             	add    $0x8,%eax
407085:	46                   	inc    %esi
407086:	3d 60 0d 41 00       	cmp    $0x410d60,%eax
40708b:	7c f1                	jl     0x40707e
40708d:	83 f9 13             	cmp    $0x13,%ecx
407090:	72 22                	jb     0x4070b4
407092:	83 f9 24             	cmp    $0x24,%ecx
407095:	77 1d                	ja     0x4070b4
407097:	e8 42 00 00 00       	call   0x4070de
40709c:	c7 00 0d 00 00 00    	movl   $0xd,(%eax)
4070a2:	5e                   	pop    %esi
4070a3:	c3                   	ret
4070a4:	e8 35 00 00 00       	call   0x4070de
4070a9:	8b 0c f5 fc 0b 41 00 	mov    0x410bfc(,%esi,8),%ecx
4070b0:	5e                   	pop    %esi
4070b1:	89 08                	mov    %ecx,(%eax)
4070b3:	c3                   	ret
4070b4:	81 f9 bc 00 00 00    	cmp    $0xbc,%ecx
4070ba:	72 15                	jb     0x4070d1
4070bc:	81 f9 ca 00 00 00    	cmp    $0xca,%ecx
4070c2:	77 0d                	ja     0x4070d1
4070c4:	e8 15 00 00 00       	call   0x4070de
4070c9:	c7 00 08 00 00 00    	movl   $0x8,(%eax)
4070cf:	5e                   	pop    %esi
4070d0:	c3                   	ret
4070d1:	e8 08 00 00 00       	call   0x4070de
4070d6:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4070dc:	5e                   	pop    %esi
4070dd:	c3                   	ret
4070de:	e8 e4 15 00 00       	call   0x4086c7
4070e3:	83 c0 08             	add    $0x8,%eax
4070e6:	c3                   	ret
4070e7:	e8 db 15 00 00       	call   0x4086c7
4070ec:	83 c0 0c             	add    $0xc,%eax
4070ef:	c3                   	ret
4070f0:	a1 d4 1e 41 00       	mov    0x411ed4,%eax
4070f5:	85 c0                	test   %eax,%eax
4070f7:	74 02                	je     0x4070fb
4070f9:	ff d0                	call   *%eax
4070fb:	68 7c 00 41 00       	push   $0x41007c
407100:	68 68 00 41 00       	push   $0x410068
407105:	e8 ec 00 00 00       	call   0x4071f6
40710a:	68 64 00 41 00       	push   $0x410064
40710f:	68 00 00 41 00       	push   $0x410000
407114:	e8 dd 00 00 00       	call   0x4071f6
407119:	83 c4 10             	add    $0x10,%esp
40711c:	c3                   	ret
40711d:	6a 00                	push   $0x0
40711f:	6a 00                	push   $0x0
407121:	ff 74 24 0c          	push   0xc(%esp)
407125:	e8 15 00 00 00       	call   0x40713f
40712a:	83 c4 0c             	add    $0xc,%esp
40712d:	c3                   	ret
40712e:	6a 00                	push   $0x0
407130:	6a 01                	push   $0x1
407132:	ff 74 24 0c          	push   0xc(%esp)
407136:	e8 04 00 00 00       	call   0x40713f
40713b:	83 c4 0c             	add    $0xc,%esp
40713e:	c3                   	ret
40713f:	57                   	push   %edi
407140:	e8 9f 00 00 00       	call   0x4071e4
407145:	6a 01                	push   $0x1
407147:	5f                   	pop    %edi
407148:	39 3d c4 18 41 00    	cmp    %edi,0x4118c4
40714e:	75 11                	jne    0x407161
407150:	ff 74 24 08          	push   0x8(%esp)
407154:	ff 15 b0 d0 40 00    	call   *0x40d0b0
40715a:	50                   	push   %eax
40715b:	ff 15 f8 d0 40 00    	call   *0x40d0f8
407161:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
407166:	53                   	push   %ebx
407167:	8b 5c 24 14          	mov    0x14(%esp),%ebx
40716b:	89 3d c0 18 41 00    	mov    %edi,0x4118c0
407171:	88 1d bc 18 41 00    	mov    %bl,0x4118bc
407177:	75 3c                	jne    0x4071b5
407179:	a1 d0 1e 41 00       	mov    0x411ed0,%eax
40717e:	85 c0                	test   %eax,%eax
407180:	74 22                	je     0x4071a4
407182:	8b 0d cc 1e 41 00    	mov    0x411ecc,%ecx
407188:	56                   	push   %esi
407189:	8d 71 fc             	lea    -0x4(%ecx),%esi
40718c:	3b f0                	cmp    %eax,%esi
40718e:	72 13                	jb     0x4071a3
407190:	8b 06                	mov    (%esi),%eax
407192:	85 c0                	test   %eax,%eax
407194:	74 02                	je     0x407198
407196:	ff d0                	call   *%eax
407198:	83 ee 04             	sub    $0x4,%esi
40719b:	3b 35 d0 1e 41 00    	cmp    0x411ed0,%esi
4071a1:	73 ed                	jae    0x407190
4071a3:	5e                   	pop    %esi
4071a4:	68 88 00 41 00       	push   $0x410088
4071a9:	68 80 00 41 00       	push   $0x410080
4071ae:	e8 43 00 00 00       	call   0x4071f6
4071b3:	59                   	pop    %ecx
4071b4:	59                   	pop    %ecx
4071b5:	68 94 00 41 00       	push   $0x410094
4071ba:	68 8c 00 41 00       	push   $0x41008c
4071bf:	e8 32 00 00 00       	call   0x4071f6
4071c4:	59                   	pop    %ecx
4071c5:	59                   	pop    %ecx
4071c6:	85 db                	test   %ebx,%ebx
4071c8:	5b                   	pop    %ebx
4071c9:	74 07                	je     0x4071d2
4071cb:	e8 1d 00 00 00       	call   0x4071ed
4071d0:	5f                   	pop    %edi
4071d1:	c3                   	ret
4071d2:	ff 74 24 08          	push   0x8(%esp)
4071d6:	89 3d c4 18 41 00    	mov    %edi,0x4118c4
4071dc:	ff 15 e8 d0 40 00    	call   *0x40d0e8
4071e2:	5f                   	pop    %edi
4071e3:	c3                   	ret
4071e4:	6a 0d                	push   $0xd
4071e6:	e8 0a fe ff ff       	call   0x406ff5
4071eb:	59                   	pop    %ecx
4071ec:	c3                   	ret
4071ed:	6a 0d                	push   $0xd
4071ef:	e8 62 fe ff ff       	call   0x407056
4071f4:	59                   	pop    %ecx
4071f5:	c3                   	ret
4071f6:	56                   	push   %esi
4071f7:	8b 74 24 08          	mov    0x8(%esp),%esi
4071fb:	3b 74 24 0c          	cmp    0xc(%esp),%esi
4071ff:	73 0d                	jae    0x40720e
407201:	8b 06                	mov    (%esi),%eax
407203:	85 c0                	test   %eax,%eax
407205:	74 02                	je     0x407209
407207:	ff d0                	call   *%eax
407209:	83 c6 04             	add    $0x4,%esi
40720c:	eb ed                	jmp    0x4071fb
40720e:	5e                   	pop    %esi
40720f:	c3                   	ret
407210:	55                   	push   %ebp
407211:	8b ec                	mov    %esp,%ebp
407213:	53                   	push   %ebx
407214:	8b 5d 08             	mov    0x8(%ebp),%ebx
407217:	56                   	push   %esi
407218:	57                   	push   %edi
407219:	85 db                	test   %ebx,%ebx
40721b:	75 0e                	jne    0x40722b
40721d:	ff 75 0c             	push   0xc(%ebp)
407220:	e8 68 01 00 00       	call   0x40738d
407225:	59                   	pop    %ecx
407226:	e9 18 01 00 00       	jmp    0x407343
40722b:	8b 75 0c             	mov    0xc(%ebp),%esi
40722e:	85 f6                	test   %esi,%esi
407230:	75 0e                	jne    0x407240
407232:	53                   	push   %ebx
407233:	e8 9f fc ff ff       	call   0x406ed7
407238:	59                   	pop    %ecx
407239:	33 c0                	xor    %eax,%eax
40723b:	e9 03 01 00 00       	jmp    0x407343
407240:	33 ff                	xor    %edi,%edi
407242:	83 fe e0             	cmp    $0xffffffe0,%esi
407245:	0f 87 d9 00 00 00    	ja     0x407324
40724b:	6a 09                	push   $0x9
40724d:	e8 a3 fd ff ff       	call   0x406ff5
407252:	53                   	push   %ebx
407253:	e8 2a 31 00 00       	call   0x40a382
407258:	59                   	pop    %ecx
407259:	89 45 0c             	mov    %eax,0xc(%ebp)
40725c:	85 c0                	test   %eax,%eax
40725e:	59                   	pop    %ecx
40725f:	0f 84 94 00 00 00    	je     0x4072f9
407265:	3b 35 f0 0e 41 00    	cmp    0x410ef0,%esi
40726b:	77 42                	ja     0x4072af
40726d:	56                   	push   %esi
40726e:	53                   	push   %ebx
40726f:	50                   	push   %eax
407270:	e8 18 39 00 00       	call   0x40ab8d
407275:	83 c4 0c             	add    $0xc,%esp
407278:	85 c0                	test   %eax,%eax
40727a:	74 04                	je     0x407280
40727c:	8b fb                	mov    %ebx,%edi
40727e:	eb 2b                	jmp    0x4072ab
407280:	56                   	push   %esi
407281:	e8 52 34 00 00       	call   0x40a6d8
407286:	8b f8                	mov    %eax,%edi
407288:	59                   	pop    %ecx
407289:	85 ff                	test   %edi,%edi
40728b:	74 22                	je     0x4072af
40728d:	8b 43 fc             	mov    -0x4(%ebx),%eax
407290:	48                   	dec    %eax
407291:	3b c6                	cmp    %esi,%eax
407293:	72 02                	jb     0x407297
407295:	8b c6                	mov    %esi,%eax
407297:	50                   	push   %eax
407298:	53                   	push   %ebx
407299:	57                   	push   %edi
40729a:	e8 c1 ea ff ff       	call   0x405d60
40729f:	53                   	push   %ebx
4072a0:	ff 75 0c             	push   0xc(%ebp)
4072a3:	e8 05 31 00 00       	call   0x40a3ad
4072a8:	83 c4 14             	add    $0x14,%esp
4072ab:	85 ff                	test   %edi,%edi
4072ad:	75 40                	jne    0x4072ef
4072af:	85 f6                	test   %esi,%esi
4072b1:	75 03                	jne    0x4072b6
4072b3:	6a 01                	push   $0x1
4072b5:	5e                   	pop    %esi
4072b6:	83 c6 0f             	add    $0xf,%esi
4072b9:	83 e6 f0             	and    $0xfffffff0,%esi
4072bc:	56                   	push   %esi
4072bd:	6a 00                	push   $0x0
4072bf:	ff 35 a0 1d 41 00    	push   0x411da0
4072c5:	ff 15 00 d1 40 00    	call   *0x40d100
4072cb:	8b f8                	mov    %eax,%edi
4072cd:	85 ff                	test   %edi,%edi
4072cf:	74 1e                	je     0x4072ef
4072d1:	8b 43 fc             	mov    -0x4(%ebx),%eax
4072d4:	48                   	dec    %eax
4072d5:	3b c6                	cmp    %esi,%eax
4072d7:	72 02                	jb     0x4072db
4072d9:	8b c6                	mov    %esi,%eax
4072db:	50                   	push   %eax
4072dc:	53                   	push   %ebx
4072dd:	57                   	push   %edi
4072de:	e8 7d ea ff ff       	call   0x405d60
4072e3:	53                   	push   %ebx
4072e4:	ff 75 0c             	push   0xc(%ebp)
4072e7:	e8 c1 30 00 00       	call   0x40a3ad
4072ec:	83 c4 14             	add    $0x14,%esp
4072ef:	6a 09                	push   $0x9
4072f1:	e8 60 fd ff ff       	call   0x407056
4072f6:	59                   	pop    %ecx
4072f7:	eb 27                	jmp    0x407320
4072f9:	6a 09                	push   $0x9
4072fb:	e8 56 fd ff ff       	call   0x407056
407300:	85 f6                	test   %esi,%esi
407302:	59                   	pop    %ecx
407303:	75 03                	jne    0x407308
407305:	6a 01                	push   $0x1
407307:	5e                   	pop    %esi
407308:	83 c6 0f             	add    $0xf,%esi
40730b:	83 e6 f0             	and    $0xfffffff0,%esi
40730e:	56                   	push   %esi
40730f:	53                   	push   %ebx
407310:	6a 00                	push   $0x0
407312:	ff 35 a0 1d 41 00    	push   0x411da0
407318:	ff 15 fc d0 40 00    	call   *0x40d0fc
40731e:	8b f8                	mov    %eax,%edi
407320:	85 ff                	test   %edi,%edi
407322:	75 1d                	jne    0x407341
407324:	83 3d 48 1a 41 00 00 	cmpl   $0x0,0x411a48
40732b:	74 14                	je     0x407341
40732d:	56                   	push   %esi
40732e:	e8 17 3d 00 00       	call   0x40b04a
407333:	85 c0                	test   %eax,%eax
407335:	59                   	pop    %ecx
407336:	0f 85 04 ff ff ff    	jne    0x407240
40733c:	e9 f8 fe ff ff       	jmp    0x407239
407341:	8b c7                	mov    %edi,%eax
407343:	5f                   	pop    %edi
407344:	5e                   	pop    %esi
407345:	5b                   	pop    %ebx
407346:	5d                   	pop    %ebp
407347:	c3                   	ret
407348:	56                   	push   %esi
407349:	6a 09                	push   $0x9
40734b:	e8 a5 fc ff ff       	call   0x406ff5
407350:	8b 74 24 0c          	mov    0xc(%esp),%esi
407354:	56                   	push   %esi
407355:	e8 28 30 00 00       	call   0x40a382
40735a:	59                   	pop    %ecx