40c06a:	56                   	push   %esi
40c06b:	57                   	push   %edi
40c06c:	8b f9                	mov    %ecx,%edi
40c06e:	8b cb                	mov    %ebx,%ecx
40c070:	e8 4d 01 00 00       	call   0x40c1c2
40c075:	32 c0                	xor    %al,%al
40c077:	88 45 ff             	mov    %al,-0x1(%ebp)
40c07a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
40c080:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
40c084:	0f 84 5d 7e 06 00    	je     0x473ee7
40c08a:	33 f6                	xor    %esi,%esi
40c08c:	8d 64 24 00          	lea    0x0(%esp),%esp
40c090:	8b 47 0c             	mov    0xc(%edi),%eax
40c093:	3b 47 08             	cmp    0x8(%edi),%eax
40c096:	0f 84 dd 00 00 00    	je     0x40c179
40c09c:	8b 4f 0c             	mov    0xc(%edi),%ecx
40c09f:	8b 47 04             	mov    0x4(%edi),%eax
40c0a2:	46                   	inc    %esi
40c0a3:	8a 04 01             	mov    (%ecx,%eax,1),%al
40c0a6:	88 44 35 0a          	mov    %al,0xa(%ebp,%esi,1)
40c0aa:	8d 41 01             	lea    0x1(%ecx),%eax
40c0ad:	89 47 0c             	mov    %eax,0xc(%edi)
40c0b0:	83 fe 01             	cmp    $0x1,%esi
40c0b3:	72 db                	jb     0x40c090
40c0b5:	01 77 10             	add    %esi,0x10(%edi)
40c0b8:	83 57 14 00          	adcl   $0x0,0x14(%edi)
40c0bc:	85 f6                	test   %esi,%esi
40c0be:	0f 84 e3 00 00 00    	je     0x40c1a7
40c0c4:	8a 45 0b             	mov    0xb(%ebp),%al
40c0c7:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
40c0cb:	3c 0d                	cmp    $0xd,%al
40c0cd:	74 39                	je     0x40c108
40c0cf:	3c 0a                	cmp    $0xa,%al
40c0d1:	74 50                	je     0x40c123
40c0d3:	8b 4b 0c             	mov    0xc(%ebx),%ecx
40c0d6:	8b 01                	mov    (%ecx),%eax
40c0d8:	83 f8 01             	cmp    $0x1,%eax
40c0db:	0f 8f 2f 7e 06 00    	jg     0x473f10
40c0e1:	8b 43 04             	mov    0x4(%ebx),%eax
40c0e4:	83 c0 02             	add    $0x2,%eax
40c0e7:	39 43 08             	cmp    %eax,0x8(%ebx)
40c0ea:	72 42                	jb     0x40c12e
40c0ec:	8b 53 04             	mov    0x4(%ebx),%edx
40c0ef:	8b 0b                	mov    (%ebx),%ecx
40c0f1:	8a 45 0b             	mov    0xb(%ebp),%al
40c0f4:	88 04 0a             	mov    %al,(%edx,%ecx,1)
40c0f7:	ff 43 04             	incl   0x4(%ebx)
40c0fa:	8b 4b 04             	mov    0x4(%ebx),%ecx
40c0fd:	8b 03                	mov    (%ebx),%eax
40c0ff:	c6 04 01 00          	movb   $0x0,(%ecx,%eax,1)
40c103:	e9 78 ff ff ff       	jmp    0x40c080
40c108:	6a 01                	push   $0x1
40c10a:	8d 45 0b             	lea    0xb(%ebp),%eax
40c10d:	50                   	push   %eax
40c10e:	8b cf                	mov    %edi,%ecx
40c110:	e8 cb 01 00 00       	call   0x40c2e0
40c115:	85 c0                	test   %eax,%eax
40c117:	74 0a                	je     0x40c123
40c119:	80 7d 0b 0a          	cmpb   $0xa,0xb(%ebp)
40c11d:	0f 85 e2 7e 06 00    	jne    0x474005
40c123:	5f                   	pop    %edi
40c124:	5e                   	pop    %esi
40c125:	b0 01                	mov    $0x1,%al
40c127:	5b                   	pop    %ebx
40c128:	8b e5                	mov    %ebp,%esp
40c12a:	5d                   	pop    %ebp
40c12b:	c2 04 00             	ret    $0x4
40c12e:	3d c2 41 00 00       	cmp    $0x41c2,%eax
40c133:	0f 83 0a 7e 06 00    	jae    0x473f43
40c139:	03 c0                	add    %eax,%eax
40c13b:	89 43 08             	mov    %eax,0x8(%ebx)
40c13e:	85 c0                	test   %eax,%eax
40c140:	74 79                	je     0x40c1bb
40c142:	83 c0 0f             	add    $0xf,%eax
40c145:	83 e0 f0             	and    $0xfffffff0,%eax
40c148:	50                   	push   %eax
40c149:	89 43 08             	mov    %eax,0x8(%ebx)
40c14c:	e8 99 33 01 00       	call   0x41f4ea
40c151:	8b f0                	mov    %eax,%esi
40c153:	8b 03                	mov    (%ebx),%eax
40c155:	83 c4 04             	add    $0x4,%esp
40c158:	85 c0                	test   %eax,%eax
40c15a:	74 16                	je     0x40c172
40c15c:	8b 4b 04             	mov    0x4(%ebx),%ecx
40c15f:	41                   	inc    %ecx
40c160:	51                   	push   %ecx
40c161:	50                   	push   %eax
40c162:	56                   	push   %esi
40c163:	e8 18 2d 01 00       	call   0x41ee80
40c168:	ff 33                	push   (%ebx)
40c16a:	e8 ef 33 01 00       	call   0x41f55e
40c16f:	83 c4 10             	add    $0x10,%esp
40c172:	89 33                	mov    %esi,(%ebx)
40c174:	e9 73 ff ff ff       	jmp    0x40c0ec
40c179:	6a 00                	push   $0x0
40c17b:	8d 45 f8             	lea    -0x8(%ebp),%eax
40c17e:	50                   	push   %eax
40c17f:	68 00 00 01 00       	push   $0x10000
40c184:	ff 77 04             	push   0x4(%edi)
40c187:	ff 37                	push   (%edi)
40c189:	ff 15 cc d1 48 00    	call   *0x48d1cc
40c18f:	85 c0                	test   %eax,%eax
40c191:	0f 84 1e ff ff ff    	je     0x40c0b5
40c197:	8b 45 f8             	mov    -0x8(%ebp),%eax
40c19a:	85 c0                	test   %eax,%eax
40c19c:	0f 84 13 ff ff ff    	je     0x40c0b5
40c1a2:	e9 5a 7d 06 00       	jmp    0x473f01
40c1a7:	8a 45 ff             	mov    -0x1(%ebp),%al
40c1aa:	84 c0                	test   %al,%al
40c1ac:	0f 85 71 ff ff ff    	jne    0x40c123
40c1b2:	5f                   	pop    %edi
40c1b3:	5e                   	pop    %esi
40c1b4:	5b                   	pop    %ebx
40c1b5:	8b e5                	mov    %ebp,%esp
40c1b7:	5d                   	pop    %ebp
40c1b8:	c2 04 00             	ret    $0x4
40c1bb:	b8 10 00 00 00       	mov    $0x10,%eax
40c1c0:	eb 86                	jmp    0x40c148
40c1c2:	56                   	push   %esi
40c1c3:	8b f1                	mov    %ecx,%esi
40c1c5:	8b 4e 0c             	mov    0xc(%esi),%ecx
40c1c8:	8b 01                	mov    (%ecx),%eax
40c1ca:	83 f8 01             	cmp    $0x1,%eax
40c1cd:	0f 8f 76 7c 06 00    	jg     0x473e49
40c1d3:	8b 06                	mov    (%esi),%eax
40c1d5:	83 66 04 00          	andl   $0x0,0x4(%esi)
40c1d9:	c6 00 00             	movb   $0x0,(%eax)
40c1dc:	5e                   	pop    %esi
40c1dd:	c3                   	ret
40c1de:	55                   	push   %ebp
40c1df:	8b ec                	mov    %esp,%ebp
40c1e1:	53                   	push   %ebx
40c1e2:	8b 5d 08             	mov    0x8(%ebp),%ebx
40c1e5:	57                   	push   %edi
40c1e6:	8b 7b 04             	mov    0x4(%ebx),%edi
40c1e9:	33 c0                	xor    %eax,%eax
40c1eb:	50                   	push   %eax
40c1ec:	50                   	push   %eax
40c1ed:	47                   	inc    %edi
40c1ee:	57                   	push   %edi
40c1ef:	ff 33                	push   (%ebx)
40c1f1:	6a 01                	push   $0x1
40c1f3:	50                   	push   %eax
40c1f4:	ff 15 78 d1 48 00    	call   *0x48d178
40c1fa:	89 45 08             	mov    %eax,0x8(%ebp)
40c1fd:	85 c0                	test   %eax,%eax
40c1ff:	74 44                	je     0x40c245
40c201:	56                   	push   %esi
40c202:	33 c9                	xor    %ecx,%ecx
40c204:	6a 02                	push   $0x2
40c206:	5a                   	pop    %edx
40c207:	f7 e2                	mul    %edx
40c209:	0f 90 c1             	seto   %cl
40c20c:	f7 d9                	neg    %ecx
40c20e:	0b c8                	or     %eax,%ecx
40c210:	51                   	push   %ecx
40c211:	e8 d4 32 01 00       	call   0x41f4ea
40c216:	59                   	pop    %ecx
40c217:	ff 75 08             	push   0x8(%ebp)
40c21a:	8b f0                	mov    %eax,%esi
40c21c:	56                   	push   %esi
40c21d:	57                   	push   %edi
40c21e:	ff 33                	push   (%ebx)
40c220:	6a 01                	push   $0x1
40c222:	6a 00                	push   $0x0
40c224:	ff 15 78 d1 48 00    	call   *0x48d178
40c22a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40c22d:	48                   	dec    %eax
40c22e:	50                   	push   %eax
40c22f:	6a 00                	push   $0x0
40c231:	56                   	push   %esi
40c232:	e8 18 00 00 00       	call   0x40c24f
40c237:	56                   	push   %esi
40c238:	e8 21 33 01 00       	call   0x41f55e
40c23d:	59                   	pop    %ecx
40c23e:	5e                   	pop    %esi
40c23f:	5f                   	pop    %edi
40c240:	5b                   	pop    %ebx
40c241:	5d                   	pop    %ebp
40c242:	c2 08 00             	ret    $0x8
40c245:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40c248:	e8 81 fa ff ff       	call   0x40bcce
40c24d:	eb f0                	jmp    0x40c23f
40c24f:	55                   	push   %ebp
40c250:	8b ec                	mov    %esp,%ebp
40c252:	53                   	push   %ebx
40c253:	56                   	push   %esi
40c254:	8b 75 10             	mov    0x10(%ebp),%esi
40c257:	57                   	push   %edi
40c258:	8b f9                	mov    %ecx,%edi
40c25a:	85 f6                	test   %esi,%esi
40c25c:	74 73                	je     0x40c2d1
40c25e:	83 fe ff             	cmp    $0xffffffff,%esi
40c261:	74 6e                	je     0x40c2d1
40c263:	8b 5d 08             	mov    0x8(%ebp),%ebx
40c266:	85 db                	test   %ebx,%ebx
40c268:	74 67                	je     0x40c2d1
40c26a:	8b 4f 0c             	mov    0xc(%edi),%ecx
40c26d:	8b 01                	mov    (%ecx),%eax
40c26f:	83 f8 01             	cmp    $0x1,%eax
40c272:	7f 2e                	jg     0x40c2a2
40c274:	56                   	push   %esi
40c275:	8b cf                	mov    %edi,%ecx
40c277:	e8 ed 00 00 00       	call   0x40c369
40c27c:	8b 45 0c             	mov    0xc(%ebp),%eax
40c27f:	89 77 04             	mov    %esi,0x4(%edi)
40c282:	03 f6                	add    %esi,%esi
40c284:	56                   	push   %esi
40c285:	8d 04 43             	lea    (%ebx,%eax,2),%eax
40c288:	50                   	push   %eax
40c289:	ff 37                	push   (%edi)
40c28b:	e8 f0 2b 01 00       	call   0x41ee80
40c290:	8b 07                	mov    (%edi),%eax
40c292:	83 c4 0c             	add    $0xc,%esp
40c295:	33 c9                	xor    %ecx,%ecx
40c297:	66 89 0c 06          	mov    %cx,(%esi,%eax,1)
40c29b:	5f                   	pop    %edi
40c29c:	5e                   	pop    %esi
40c29d:	5b                   	pop    %ebx
40c29e:	5d                   	pop    %ebp
40c29f:	c2 0c 00             	ret    $0xc
40c2a2:	48                   	dec    %eax
40c2a3:	89 01                	mov    %eax,(%ecx)
40c2a5:	8b cf                	mov    %edi,%ecx
40c2a7:	e8 9e a8 ff ff       	call   0x406b4a
40c2ac:	8d 46 01             	lea    0x1(%esi),%eax
40c2af:	50                   	push   %eax
40c2b0:	e8 41 a8 ff ff       	call   0x406af6
40c2b5:	33 c9                	xor    %ecx,%ecx
40c2b7:	6a 02                	push   $0x2
40c2b9:	5a                   	pop    %edx
40c2ba:	89 47 08             	mov    %eax,0x8(%edi)
40c2bd:	f7 e2                	mul    %edx
40c2bf:	0f 90 c1             	seto   %cl
40c2c2:	f7 d9                	neg    %ecx
40c2c4:	0b c8                	or     %eax,%ecx
40c2c6:	51                   	push   %ecx
40c2c7:	e8 1e 32 01 00       	call   0x41f4ea
40c2cc:	59                   	pop    %ecx
40c2cd:	89 07                	mov    %eax,(%edi)
40c2cf:	eb ab                	jmp    0x40c27c
40c2d1:	6a ff                	push   $0xffffffff
40c2d3:	6a 00                	push   $0x0
40c2d5:	e8 b1 ee ff ff       	call   0x40b18b
40c2da:	eb bf                	jmp    0x40c29b
40c2dc:	cc                   	int3
40c2dd:	cc                   	int3
40c2de:	cc                   	int3
40c2df:	cc                   	int3
40c2e0:	55                   	push   %ebp
40c2e1:	8b ec                	mov    %esp,%ebp
40c2e3:	53                   	push   %ebx
40c2e4:	56                   	push   %esi
40c2e5:	8b f1                	mov    %ecx,%esi
40c2e7:	57                   	push   %edi
40c2e8:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
40c2ec:	74 66                	je     0x40c354
40c2ee:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40c2f1:	33 ff                	xor    %edi,%edi
40c2f3:	85 db                	test   %ebx,%ebx
40c2f5:	74 20                	je     0x40c317
40c2f7:	8b 46 0c             	mov    0xc(%esi),%eax
40c2fa:	3b 46 08             	cmp    0x8(%esi),%eax
40c2fd:	74 28                	je     0x40c327
40c2ff:	8b 4e 04             	mov    0x4(%esi),%ecx
40c302:	8b 46 0c             	mov    0xc(%esi),%eax
40c305:	47                   	inc    %edi
40c306:	8a 04 01             	mov    (%ecx,%eax,1),%al
40c309:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c30c:	88 44 0f ff          	mov    %al,-0x1(%edi,%ecx,1)
40c310:	ff 46 0c             	incl   0xc(%esi)
40c313:	3b fb                	cmp    %ebx,%edi
40c315:	72 e0                	jb     0x40c2f7
40c317:	01 7e 10             	add    %edi,0x10(%esi)
40c31a:	8b c7                	mov    %edi,%eax
40c31c:	5f                   	pop    %edi
40c31d:	83 56 14 00          	adcl   $0x0,0x14(%esi)
40c321:	5e                   	pop    %esi
40c322:	5b                   	pop    %ebx
40c323:	5d                   	pop    %ebp
40c324:	c2 08 00             	ret    $0x8
40c327:	6a 00                	push   $0x0
40c329:	8d 45 0c             	lea    0xc(%ebp),%eax
40c32c:	50                   	push   %eax
40c32d:	68 00 00 01 00       	push   $0x10000
40c332:	ff 76 04             	push   0x4(%esi)
40c335:	ff 36                	push   (%esi)
40c337:	ff 15 cc d1 48 00    	call   *0x48d1cc
40c33d:	85 c0                	test   %eax,%eax
40c33f:	74 d6                	je     0x40c317
40c341:	8b 45 0c             	mov    0xc(%ebp),%eax
40c344:	85 c0                	test   %eax,%eax
40c346:	74 cf                	je     0x40c317
40c348:	89 46 08             	mov    %eax,0x8(%esi)
40c34b:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
40c352:	eb ab                	jmp    0x40c2ff
40c354:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
40c35b:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
40c362:	e8 3f 82 ff ff       	call   0x4045a6
40c367:	eb 85                	jmp    0x40c2ee
40c369:	55                   	push   %ebp
40c36a:	8b ec                	mov    %esp,%ebp
40c36c:	56                   	push   %esi
40c36d:	57                   	push   %edi
40c36e:	8b 7d 08             	mov    0x8(%ebp),%edi
40c371:	8b f1                	mov    %ecx,%esi
40c373:	8d 47 01             	lea    0x1(%edi),%eax
40c376:	39 46 08             	cmp    %eax,0x8(%esi)
40c379:	72 06                	jb     0x40c381
40c37b:	5f                   	pop    %edi
40c37c:	5e                   	pop    %esi
40c37d:	5d                   	pop    %ebp
40c37e:	c2 04 00             	ret    $0x4
40c381:	50                   	push   %eax
40c382:	e8 6f a7 ff ff       	call   0x406af6
40c387:	83 3e 00             	cmpl   $0x0,(%esi)
40c38a:	89 46 08             	mov    %eax,0x8(%esi)
40c38d:	74 08                	je     0x40c397
40c38f:	ff 36                	push   (%esi)
40c391:	e8 c8 31 01 00       	call   0x41f55e
40c396:	59                   	pop    %ecx
40c397:	8b 46 08             	mov    0x8(%esi),%eax
40c39a:	33 c9                	xor    %ecx,%ecx
40c39c:	6a 02                	push   $0x2
40c39e:	5a                   	pop    %edx
40c39f:	f7 e2                	mul    %edx
40c3a1:	0f 90 c1             	seto   %cl
40c3a4:	f7 d9                	neg    %ecx
40c3a6:	0b c8                	or     %eax,%ecx
40c3a8:	51                   	push   %ecx
40c3a9:	e8 3c 31 01 00       	call   0x41f4ea
40c3ae:	59                   	pop    %ecx
40c3af:	33 c9                	xor    %ecx,%ecx
40c3b1:	89 06                	mov    %eax,(%esi)
40c3b3:	66 89 0c 78          	mov    %cx,(%eax,%edi,2)
40c3b7:	eb c2                	jmp    0x40c37b
40c3b9:	55                   	push   %ebp
40c3ba:	8b ec                	mov    %esp,%ebp
40c3bc:	51                   	push   %ecx
40c3bd:	51                   	push   %ecx
40c3be:	8b 45 08             	mov    0x8(%ebp),%eax
40c3c1:	56                   	push   %esi
40c3c2:	8b f1                	mov    %ecx,%esi
40c3c4:	40                   	inc    %eax
40c3c5:	39 46 08             	cmp    %eax,0x8(%esi)
40c3c8:	72 05                	jb     0x40c3cf
40c3ca:	5e                   	pop    %esi
40c3cb:	c9                   	leave
40c3cc:	c2 04 00             	ret    $0x4
40c3cf:	3d c2 41 00 00       	cmp    $0x41c2,%eax