40af1c:	83 20 00             	andl   $0x0,(%eax)
40af1f:	41                   	inc    %ecx
40af20:	83 f9 07             	cmp    $0x7,%ecx
40af23:	72 e9                	jb     0x40af0e
40af25:	8b c7                	mov    %edi,%eax
40af27:	48                   	dec    %eax
40af28:	74 46                	je     0x40af70
40af2a:	48                   	dec    %eax
40af2b:	74 38                	je     0x40af65
40af2d:	48                   	dec    %eax
40af2e:	74 2a                	je     0x40af5a
40af30:	48                   	dec    %eax
40af31:	74 1c                	je     0x40af4f
40af33:	48                   	dec    %eax
40af34:	74 0e                	je     0x40af44
40af36:	48                   	dec    %eax
40af37:	75 40                	jne    0x40af79
40af39:	83 7d 08 10          	cmpl   $0x10,0x8(%ebp)
40af3d:	7d 3a                	jge    0x40af79
40af3f:	ff 45 08             	incl   0x8(%ebp)
40af42:	eb 35                	jmp    0x40af79
40af44:	83 7d 08 f0          	cmpl   $0xfffffff0,0x8(%ebp)
40af48:	7c 2f                	jl     0x40af79
40af4a:	ff 4d 08             	decl   0x8(%ebp)
40af4d:	eb 2a                	jmp    0x40af79
40af4f:	83 7d fc 10          	cmpl   $0x10,-0x4(%ebp)
40af53:	7d 24                	jge    0x40af79
40af55:	ff 45 fc             	incl   -0x4(%ebp)
40af58:	eb 1f                	jmp    0x40af79
40af5a:	83 7d fc f0          	cmpl   $0xfffffff0,-0x4(%ebp)
40af5e:	7c 19                	jl     0x40af79
40af60:	ff 4d fc             	decl   -0x4(%ebp)
40af63:	eb 14                	jmp    0x40af79
40af65:	83 7d f8 10          	cmpl   $0x10,-0x8(%ebp)
40af69:	7d 0e                	jge    0x40af79
40af6b:	ff 45 f8             	incl   -0x8(%ebp)
40af6e:	eb 09                	jmp    0x40af79
40af70:	83 7d f8 f0          	cmpl   $0xfffffff0,-0x8(%ebp)
40af74:	7c 03                	jl     0x40af79
40af76:	ff 4d f8             	decl   -0x8(%ebp)
40af79:	8b 45 e8             	mov    -0x18(%ebp),%eax
40af7c:	03 45 d4             	add    -0x2c(%ebp),%eax
40af7f:	ff 45 e4             	incl   -0x1c(%ebp)
40af82:	3b 45 d8             	cmp    -0x28(%ebp),%eax
40af85:	89 45 e8             	mov    %eax,-0x18(%ebp)
40af88:	0f 8c b8 fe ff ff    	jl     0x40ae46
40af8e:	ff 45 f0             	incl   -0x10(%ebp)
40af91:	8b 45 f0             	mov    -0x10(%ebp),%eax
40af94:	3b 45 d4             	cmp    -0x2c(%ebp),%eax
40af97:	0f 8c 75 fe ff ff    	jl     0x40ae12
40af9d:	e9 3a 02 00 00       	jmp    0x40b1dc
40afa2:	8b 46 24             	mov    0x24(%esi),%eax
40afa5:	8b 4e 14             	mov    0x14(%esi),%ecx
40afa8:	8b 56 18             	mov    0x18(%esi),%edx
40afab:	8b 76 10             	mov    0x10(%esi),%esi
40afae:	83 e9 03             	sub    $0x3,%ecx
40afb1:	89 45 f0             	mov    %eax,-0x10(%ebp)
40afb4:	89 4d cc             	mov    %ecx,-0x34(%ebp)
40afb7:	89 55 d0             	mov    %edx,-0x30(%ebp)
40afba:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40afbd:	8d 1c 06             	lea    (%esi,%eax,1),%ebx
40afc0:	89 86 20 c0 03 00    	mov    %eax,0x3c020(%esi)
40afc6:	3d 00 e0 01 00       	cmp    $0x1e000,%eax
40afcb:	0f 83 0b 02 00 00    	jae    0x40b1dc
40afd1:	85 d2                	test   %edx,%edx
40afd3:	0f 8c 03 02 00 00    	jl     0x40b1dc
40afd9:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40afdd:	f7 d9                	neg    %ecx
40afdf:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40afe2:	8b 45 f0             	mov    -0x10(%ebp),%eax
40afe5:	83 65 08 00          	andl   $0x0,0x8(%ebp)
40afe9:	39 45 f8             	cmp    %eax,-0x8(%ebp)
40afec:	0f 8d 9a 00 00 00    	jge    0x40b08c
40aff2:	8b 45 ec             	mov    -0x14(%ebp),%eax
40aff5:	89 45 e8             	mov    %eax,-0x18(%ebp)
40aff8:	8d 34 03             	lea    (%ebx,%eax,1),%esi
40affb:	8b 45 f0             	mov    -0x10(%ebp),%eax
40affe:	2b 45 f8             	sub    -0x8(%ebp),%eax
40b001:	6a 03                	push   $0x3
40b003:	48                   	dec    %eax
40b004:	33 d2                	xor    %edx,%edx
40b006:	59                   	pop    %ecx
40b007:	f7 f1                	div    %ecx
40b009:	40                   	inc    %eax
40b00a:	89 45 f4             	mov    %eax,-0xc(%ebp)
40b00d:	83 7d e8 03          	cmpl   $0x3,-0x18(%ebp)
40b011:	7c 56                	jl     0x40b069
40b013:	0f b6 3e             	movzbl (%esi),%edi
40b016:	0f b6 46 fd          	movzbl -0x3(%esi),%eax
40b01a:	89 7d dc             	mov    %edi,-0x24(%ebp)
40b01d:	2b f8                	sub    %eax,%edi
40b01f:	03 7d 08             	add    0x8(%ebp),%edi
40b022:	89 45 e0             	mov    %eax,-0x20(%ebp)
40b025:	8b c7                	mov    %edi,%eax
40b027:	2b 45 08             	sub    0x8(%ebp),%eax
40b02a:	50                   	push   %eax
40b02b:	e8 a5 18 01 00       	call   0x41c8d5
40b030:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40b033:	8b c7                	mov    %edi,%eax
40b035:	2b 45 dc             	sub    -0x24(%ebp),%eax
40b038:	50                   	push   %eax
40b039:	e8 97 18 01 00       	call   0x41c8d5
40b03e:	2b 7d e0             	sub    -0x20(%ebp),%edi
40b041:	89 45 d8             	mov    %eax,-0x28(%ebp)
40b044:	57                   	push   %edi
40b045:	e8 8b 18 01 00       	call   0x41c8d5
40b04a:	8b 4d d8             	mov    -0x28(%ebp),%ecx
40b04d:	83 c4 0c             	add    $0xc,%esp
40b050:	39 4d d4             	cmp    %ecx,-0x2c(%ebp)
40b053:	7f 05                	jg     0x40b05a
40b055:	39 45 d4             	cmp    %eax,-0x2c(%ebp)
40b058:	7e 0f                	jle    0x40b069
40b05a:	39 45 d8             	cmp    %eax,-0x28(%ebp)
40b05d:	7f 05                	jg     0x40b064
40b05f:	8b 45 dc             	mov    -0x24(%ebp),%eax
40b062:	eb 08                	jmp    0x40b06c
40b064:	8b 45 e0             	mov    -0x20(%ebp),%eax
40b067:	eb 03                	jmp    0x40b06c
40b069:	8b 45 08             	mov    0x8(%ebp),%eax
40b06c:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40b06f:	2a 01                	sub    (%ecx),%al
40b071:	8b 4d cc             	mov    -0x34(%ebp),%ecx
40b074:	ff 45 e4             	incl   -0x1c(%ebp)
40b077:	83 45 e8 03          	addl   $0x3,-0x18(%ebp)
40b07b:	0f b6 c0             	movzbl %al,%eax
40b07e:	88 04 0e             	mov    %al,(%esi,%ecx,1)
40b081:	83 c6 03             	add    $0x3,%esi
40b084:	ff 4d f4             	decl   -0xc(%ebp)
40b087:	89 45 08             	mov    %eax,0x8(%ebp)
40b08a:	75 81                	jne    0x40b00d
40b08c:	ff 45 f8             	incl   -0x8(%ebp)
40b08f:	ff 45 ec             	incl   -0x14(%ebp)
40b092:	83 7d f8 03          	cmpl   $0x3,-0x8(%ebp)
40b096:	0f 8c 46 ff ff ff    	jl     0x40afe2
40b09c:	8b 55 f0             	mov    -0x10(%ebp),%edx
40b09f:	8b 45 d0             	mov    -0x30(%ebp),%eax
40b0a2:	83 c2 fe             	add    $0xfffffffe,%edx
40b0a5:	eb 0e                	jmp    0x40b0b5
40b0a7:	8a 4c 18 01          	mov    0x1(%eax,%ebx,1),%cl
40b0ab:	00 0c 18             	add    %cl,(%eax,%ebx,1)
40b0ae:	00 4c 18 02          	add    %cl,0x2(%eax,%ebx,1)
40b0b2:	83 c0 03             	add    $0x3,%eax
40b0b5:	3b c2                	cmp    %edx,%eax
40b0b7:	7c ee                	jl     0x40b0a7
40b0b9:	e9 1e 01 00 00       	jmp    0x40b1dc
40b0be:	8b 46 10             	mov    0x10(%esi),%eax
40b0c1:	89 45 08             	mov    %eax,0x8(%ebp)
40b0c4:	8b 46 24             	mov    0x24(%esi),%eax
40b0c7:	3d 00 c0 03 00       	cmp    $0x3c000,%eax
40b0cc:	0f 83 0a 01 00 00    	jae    0x40b1dc
40b0d2:	83 f8 15             	cmp    $0x15,%eax
40b0d5:	0f 8c 01 01 00 00    	jl     0x40b1dc
40b0db:	8b 5e 2c             	mov    0x2c(%esi),%ebx
40b0de:	83 c0 eb             	add    $0xffffffeb,%eax
40b0e1:	c1 eb 04             	shr    $0x4,%ebx
40b0e4:	85 c0                	test   %eax,%eax
40b0e6:	0f 8e f0 00 00 00    	jle    0x40b1dc
40b0ec:	48                   	dec    %eax
40b0ed:	c1 e8 04             	shr    $0x4,%eax
40b0f0:	40                   	inc    %eax
40b0f1:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40b0f4:	8b 45 08             	mov    0x8(%ebp),%eax
40b0f7:	0f b6 00             	movzbl (%eax),%eax
40b0fa:	83 e0 1f             	and    $0x1f,%eax
40b0fd:	83 e8 10             	sub    $0x10,%eax
40b100:	78 68                	js     0x40b16a
40b102:	8a 80 b0 f0 42 00    	mov    0x42f0b0(%eax),%al
40b108:	84 c0                	test   %al,%al
40b10a:	74 5e                	je     0x40b16a
40b10c:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
40b110:	0f b6 c0             	movzbl %al,%eax
40b113:	6a 12                	push   $0x12
40b115:	89 45 cc             	mov    %eax,-0x34(%ebp)
40b118:	5f                   	pop    %edi
40b119:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40b11c:	33 c0                	xor    %eax,%eax
40b11e:	40                   	inc    %eax
40b11f:	d3 e0                	shl    %cl,%eax
40b121:	8b 4d cc             	mov    -0x34(%ebp),%ecx
40b124:	85 c1                	test   %eax,%ecx
40b126:	74 37                	je     0x40b15f
40b128:	6a 04                	push   $0x4
40b12a:	8d 47 18             	lea    0x18(%edi),%eax
40b12d:	50                   	push   %eax
40b12e:	ff 75 08             	push   0x8(%ebp)
40b131:	8b ce                	mov    %esi,%ecx
40b133:	e8 e0 f9 ff ff       	call   0x40ab18
40b138:	83 f8 05             	cmp    $0x5,%eax
40b13b:	75 22                	jne    0x40b15f
40b13d:	6a 14                	push   $0x14
40b13f:	57                   	push   %edi
40b140:	6a 14                	push   $0x14
40b142:	57                   	push   %edi
40b143:	ff 75 08             	push   0x8(%ebp)
40b146:	8b ce                	mov    %esi,%ecx
40b148:	e8 cb f9 ff ff       	call   0x40ab18
40b14d:	2b c3                	sub    %ebx,%eax
40b14f:	25 ff ff 0f 00       	and    $0xfffff,%eax
40b154:	50                   	push   %eax
40b155:	ff 75 08             	push   0x8(%ebp)
40b158:	8b ce                	mov    %esi,%ecx
40b15a:	e8 09 fa ff ff       	call   0x40ab68
40b15f:	ff 45 e4             	incl   -0x1c(%ebp)
40b162:	83 c7 29             	add    $0x29,%edi
40b165:	83 ff 64             	cmp    $0x64,%edi
40b168:	7e af                	jle    0x40b119
40b16a:	83 45 08 10          	addl   $0x10,0x8(%ebp)
40b16e:	43                   	inc    %ebx
40b16f:	ff 4d d4             	decl   -0x2c(%ebp)
40b172:	75 80                	jne    0x40b0f4
40b174:	eb 66                	jmp    0x40b1dc
40b176:	8b 46 24             	mov    0x24(%esi),%eax
40b179:	8b 4e 10             	mov    0x10(%esi),%ecx
40b17c:	8b 76 2c             	mov    0x2c(%esi),%esi
40b17f:	3d 00 c0 03 00       	cmp    $0x3c000,%eax
40b184:	73 56                	jae    0x40b1dc
40b186:	83 f8 04             	cmp    $0x4,%eax
40b189:	7c 51                	jl     0x40b1dc
40b18b:	83 fa 02             	cmp    $0x2,%edx
40b18e:	0f 94 c2             	sete   %dl
40b191:	83 65 08 00          	andl   $0x0,0x8(%ebp)
40b195:	8d 78 fc             	lea    -0x4(%eax),%edi
40b198:	80 c2 e8             	add    $0xe8,%dl
40b19b:	85 ff                	test   %edi,%edi
40b19d:	7e 3d                	jle    0x40b1dc
40b19f:	8a 01                	mov    (%ecx),%al
40b1a1:	41                   	inc    %ecx
40b1a2:	ff 45 08             	incl   0x8(%ebp)
40b1a5:	46                   	inc    %esi
40b1a6:	3c e8                	cmp    $0xe8,%al
40b1a8:	74 04                	je     0x40b1ae
40b1aa:	3a c2                	cmp    %dl,%al
40b1ac:	75 29                	jne    0x40b1d7
40b1ae:	8b 01                	mov    (%ecx),%eax
40b1b0:	85 c0                	test   %eax,%eax
40b1b2:	7d 0e                	jge    0x40b1c2
40b1b4:	8d 1c 06             	lea    (%esi,%eax,1),%ebx
40b1b7:	85 db                	test   %ebx,%ebx
40b1b9:	7c 12                	jl     0x40b1cd
40b1bb:	05 00 00 00 01       	add    $0x1000000,%eax
40b1c0:	eb 09                	jmp    0x40b1cb
40b1c2:	3d 00 00 00 01       	cmp    $0x1000000,%eax
40b1c7:	7d 04                	jge    0x40b1cd
40b1c9:	2b c6                	sub    %esi,%eax
40b1cb:	89 01                	mov    %eax,(%ecx)
40b1cd:	83 45 08 04          	addl   $0x4,0x8(%ebp)
40b1d1:	83 c1 04             	add    $0x4,%ecx
40b1d4:	83 c6 04             	add    $0x4,%esi
40b1d7:	39 7d 08             	cmp    %edi,0x8(%ebp)
40b1da:	7c c3                	jl     0x40b19f
40b1dc:	5f                   	pop    %edi
40b1dd:	5b                   	pop    %ebx
40b1de:	5e                   	pop    %esi
40b1df:	c9                   	leave
40b1e0:	c2 04 00             	ret    $0x4
40b1e3:	8b 44 24 04          	mov    0x4(%esp),%eax
40b1e7:	56                   	push   %esi
40b1e8:	57                   	push   %edi
40b1e9:	be 40 78 7d 01       	mov    $0x17d7840,%esi
40b1ee:	8b 10                	mov    (%eax),%edx
40b1f0:	83 fa 16             	cmp    $0x16,%edx
40b1f3:	74 0b                	je     0x40b200
40b1f5:	83 fa 28             	cmp    $0x28,%edx
40b1f8:	74 38                	je     0x40b232
40b1fa:	83 c0 28             	add    $0x28,%eax
40b1fd:	4e                   	dec    %esi
40b1fe:	eb ee                	jmp    0x40b1ee
40b200:	8b 51 30             	mov    0x30(%ecx),%edx
40b203:	81 fa 00 00 04 00    	cmp    $0x40000,%edx
40b209:	73 2f                	jae    0x40b23a
40b20b:	8b 79 10             	mov    0x10(%ecx),%edi
40b20e:	8b c2                	mov    %edx,%eax
40b210:	25 ff ff 03 00       	and    $0x3ffff,%eax
40b215:	8b 04 38             	mov    (%eax,%edi,1),%eax
40b218:	3b 44 24 10          	cmp    0x10(%esp),%eax
40b21c:	73 1c                	jae    0x40b23a
40b21e:	4e                   	dec    %esi
40b21f:	85 f6                	test   %esi,%esi
40b221:	7e 1b                	jle    0x40b23e
40b223:	6b c0 28             	imul   $0x28,%eax,%eax
40b226:	03 44 24 0c          	add    0xc(%esp),%eax
40b22a:	83 c2 04             	add    $0x4,%edx
40b22d:	89 51 30             	mov    %edx,0x30(%ecx)
40b230:	eb bc                	jmp    0x40b1ee
40b232:	ff 70 0c             	push   0xc(%eax)
40b235:	e8 05 fb ff ff       	call   0x40ad3f
40b23a:	b0 01                	mov    $0x1,%al
40b23c:	eb 02                	jmp    0x40b240
40b23e:	32 c0                	xor    %al,%al
40b240:	5f                   	pop    %edi
40b241:	5e                   	pop    %esi
40b242:	c2 08 00             	ret    $0x8
40b245:	55                   	push   %ebp
40b246:	8b ec                	mov    %esp,%ebp
40b248:	53                   	push   %ebx
40b249:	56                   	push   %esi
40b24a:	8b 75 08             	mov    0x8(%ebp),%esi
40b24d:	57                   	push   %edi
40b24e:	6a 1c                	push   $0x1c
40b250:	8d 46 38             	lea    0x38(%esi),%eax
40b253:	8b f9                	mov    %ecx,%edi
40b255:	50                   	push   %eax
40b256:	8d 47 14             	lea    0x14(%edi),%eax
40b259:	50                   	push   %eax
40b25a:	e8 11 0a 01 00       	call   0x41bc70
40b25f:	8b 46 1c             	mov    0x1c(%esi),%eax
40b262:	bb 00 20 00 00       	mov    $0x2000,%ebx
40b267:	83 c4 0c             	add    $0xc,%esp
40b26a:	89 45 08             	mov    %eax,0x8(%ebp)
40b26d:	3b c3                	cmp    %ebx,%eax
40b26f:	72 03                	jb     0x40b274
40b271:	89 5d 08             	mov    %ebx,0x8(%ebp)
40b274:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40b278:	74 17                	je     0x40b291
40b27a:	ff 75 08             	push   0x8(%ebp)
40b27d:	8b 47 10             	mov    0x10(%edi),%eax
40b280:	ff 76 18             	push   0x18(%esi)
40b283:	05 00 c0 03 00       	add    $0x3c000,%eax
40b288:	50                   	push   %eax
40b289:	e8 e2 09 01 00       	call   0x41bc70
40b28e:	83 c4 0c             	add    $0xc,%esp
40b291:	8b 4d 08             	mov    0x8(%ebp),%ecx
40b294:	8b 46 2c             	mov    0x2c(%esi),%eax
40b297:	2b d9                	sub    %ecx,%ebx
40b299:	3b c3                	cmp    %ebx,%eax
40b29b:	72 02                	jb     0x40b29f
40b29d:	8b c3                	mov    %ebx,%eax
40b29f:	85 c0                	test   %eax,%eax
40b2a1:	74 17                	je     0x40b2ba
40b2a3:	50                   	push   %eax
40b2a4:	8b 47 10             	mov    0x10(%edi),%eax
40b2a7:	ff 76 28             	push   0x28(%esi)
40b2aa:	8d 84 08 00 c0 03 00 	lea    0x3c000(%eax,%ecx,1),%eax
40b2b1:	50                   	push   %eax
40b2b2:	e8 b9 09 01 00       	call   0x41bc70
40b2b7:	83 c4 0c             	add    $0xc,%esp
40b2ba:	83 67 34 00          	andl   $0x0,0x34(%edi)
40b2be:	c7 47 30 00 00 04 00 	movl   $0x40000,0x30(%edi)
40b2c5:	8b 46 10             	mov    0x10(%esi),%eax
40b2c8:	8b d8                	mov    %eax,%ebx
40b2ca:	85 c0                	test   %eax,%eax
40b2cc:	75 02                	jne    0x40b2d0
40b2ce:	8b 1e                	mov    (%esi),%ebx
40b2d0:	8b 46 14             	mov    0x14(%esi),%eax
40b2d3:	85 c0                	test   %eax,%eax
40b2d5:	7e 13                	jle    0x40b2ea
40b2d7:	50                   	push   %eax
40b2d8:	53                   	push   %ebx
40b2d9:	8b cf                	mov    %edi,%ecx
40b2db:	e8 03 ff ff ff       	call   0x40b1e3