421042:	85 c9                	test   %ecx,%ecx
421044:	79 02                	jns    0x421048
421046:	88 06                	mov    %al,(%esi)
421048:	83 f9 fe             	cmp    $0xfffffffe,%ecx
42104b:	75 0e                	jne    0x42105b
42104d:	c6 47 1c 01          	movb   $0x1,0x1c(%edi)
421051:	c7 47 18 22 00 00 00 	movl   $0x22,0x18(%edi)
421058:	57                   	push   %edi
421059:	eb 15                	jmp    0x421070
42105b:	8b c1                	mov    %ecx,%eax
42105d:	eb 21                	jmp    0x421080
42105f:	8b 45 1c             	mov    0x1c(%ebp),%eax
421062:	50                   	push   %eax
421063:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
421067:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
42106e:	33 c0                	xor    %eax,%eax
421070:	50                   	push   %eax
421071:	50                   	push   %eax
421072:	50                   	push   %eax
421073:	50                   	push   %eax
421074:	50                   	push   %eax
421075:	e8 78 f9 ff ff       	call   0x4209f2
42107a:	83 c4 18             	add    $0x18,%esp
42107d:	83 c8 ff             	or     $0xffffffff,%eax
421080:	5e                   	pop    %esi
421081:	5f                   	pop    %edi
421082:	5d                   	pop    %ebp
421083:	c3                   	ret
421084:	8b ff                	mov    %edi,%edi
421086:	55                   	push   %ebp
421087:	8b ec                	mov    %esp,%ebp
421089:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
42108d:	57                   	push   %edi
42108e:	75 23                	jne    0x4210b3
421090:	8b 45 1c             	mov    0x1c(%ebp),%eax
421093:	50                   	push   %eax
421094:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
421098:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
42109f:	33 c0                	xor    %eax,%eax
4210a1:	50                   	push   %eax
4210a2:	50                   	push   %eax
4210a3:	50                   	push   %eax
4210a4:	50                   	push   %eax
4210a5:	50                   	push   %eax
4210a6:	e8 47 f9 ff ff       	call   0x4209f2
4210ab:	83 c4 18             	add    $0x18,%esp
4210ae:	83 c8 ff             	or     $0xffffffff,%eax
4210b1:	eb 68                	jmp    0x42111b
4210b3:	56                   	push   %esi
4210b4:	8b 75 10             	mov    0x10(%ebp),%esi
4210b7:	85 f6                	test   %esi,%esi
4210b9:	74 3e                	je     0x4210f9
4210bb:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
4210bf:	76 38                	jbe    0x4210f9
4210c1:	ff 75 20             	push   0x20(%ebp)
4210c4:	8b 7d 1c             	mov    0x1c(%ebp),%edi
4210c7:	57                   	push   %edi
4210c8:	ff 75 18             	push   0x18(%ebp)
4210cb:	ff 75 14             	push   0x14(%ebp)
4210ce:	56                   	push   %esi
4210cf:	ff 75 0c             	push   0xc(%ebp)
4210d2:	ff 75 08             	push   0x8(%ebp)
4210d5:	e8 88 fd ff ff       	call   0x420e62
4210da:	83 c4 1c             	add    $0x1c,%esp
4210dd:	85 c0                	test   %eax,%eax
4210df:	79 05                	jns    0x4210e6
4210e1:	33 c9                	xor    %ecx,%ecx
4210e3:	66 89 0e             	mov    %cx,(%esi)
4210e6:	83 f8 fe             	cmp    $0xfffffffe,%eax
4210e9:	75 2f                	jne    0x42111a
4210eb:	c6 47 1c 01          	movb   $0x1,0x1c(%edi)
4210ef:	c7 47 18 22 00 00 00 	movl   $0x22,0x18(%edi)
4210f6:	57                   	push   %edi
4210f7:	eb 0f                	jmp    0x421108
4210f9:	8b 45 1c             	mov    0x1c(%ebp),%eax
4210fc:	50                   	push   %eax
4210fd:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
421101:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
421108:	33 c0                	xor    %eax,%eax
42110a:	50                   	push   %eax
42110b:	50                   	push   %eax
42110c:	50                   	push   %eax
42110d:	50                   	push   %eax
42110e:	50                   	push   %eax
42110f:	e8 de f8 ff ff       	call   0x4209f2
421114:	83 c4 18             	add    $0x18,%esp
421117:	83 c8 ff             	or     $0xffffffff,%eax
42111a:	5e                   	pop    %esi
42111b:	5f                   	pop    %edi
42111c:	5d                   	pop    %ebp
42111d:	c3                   	ret
42111e:	83 b9 04 04 00 00 00 	cmpl   $0x0,0x404(%ecx)
421125:	75 06                	jne    0x42112d
421127:	b8 00 02 00 00       	mov    $0x200,%eax
42112c:	c3                   	ret
42112d:	8b 81 00 04 00 00    	mov    0x400(%ecx),%eax
421133:	d1 e8                	shr    $1,%eax
421135:	c3                   	ret
421136:	83 b9 04 04 00 00 00 	cmpl   $0x0,0x404(%ecx)
42113d:	75 06                	jne    0x421145
42113f:	b8 00 01 00 00       	mov    $0x100,%eax
421144:	c3                   	ret
421145:	8b 81 00 04 00 00    	mov    0x400(%ecx),%eax
42114b:	c1 e8 02             	shr    $0x2,%eax
42114e:	c3                   	ret
42114f:	8b ff                	mov    %edi,%edi
421151:	55                   	push   %ebp
421152:	8b ec                	mov    %esp,%ebp
421154:	51                   	push   %ecx
421155:	56                   	push   %esi
421156:	8b 75 08             	mov    0x8(%ebp),%esi
421159:	57                   	push   %edi
42115a:	8b f9                	mov    %ecx,%edi
42115c:	81 fe ff ff ff 7f    	cmp    $0x7fffffff,%esi
421162:	76 12                	jbe    0x421176
421164:	8b 45 0c             	mov    0xc(%ebp),%eax
421167:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
42116b:	c7 40 18 0c 00 00 00 	movl   $0xc,0x18(%eax)
421172:	32 c0                	xor    %al,%al
421174:	eb 54                	jmp    0x4211ca
421176:	53                   	push   %ebx
421177:	8d 9f 04 04 00 00    	lea    0x404(%edi),%ebx
42117d:	03 f6                	add    %esi,%esi
42117f:	83 3b 00             	cmpl   $0x0,(%ebx)
421182:	75 08                	jne    0x42118c
421184:	81 fe 00 04 00 00    	cmp    $0x400,%esi
42118a:	76 3b                	jbe    0x4211c7
42118c:	3b b7 00 04 00 00    	cmp    0x400(%edi),%esi
421192:	76 33                	jbe    0x4211c7
421194:	56                   	push   %esi
421195:	e8 17 b3 00 00       	call   0x42c4b1
42119a:	89 45 fc             	mov    %eax,-0x4(%ebp)
42119d:	59                   	pop    %ecx
42119e:	85 c0                	test   %eax,%eax
4211a0:	75 0b                	jne    0x4211ad
4211a2:	50                   	push   %eax
4211a3:	e8 cf b2 00 00       	call   0x42c477
4211a8:	59                   	pop    %ecx
4211a9:	32 c0                	xor    %al,%al
4211ab:	eb 1c                	jmp    0x4211c9
4211ad:	8d 45 fc             	lea    -0x4(%ebp),%eax
4211b0:	8b cb                	mov    %ebx,%ecx
4211b2:	50                   	push   %eax
4211b3:	e8 35 1a 00 00       	call   0x422bed
4211b8:	ff 75 fc             	push   -0x4(%ebp)
4211bb:	89 b7 00 04 00 00    	mov    %esi,0x400(%edi)
4211c1:	e8 b1 b2 00 00       	call   0x42c477
4211c6:	59                   	pop    %ecx
4211c7:	b0 01                	mov    $0x1,%al
4211c9:	5b                   	pop    %ebx
4211ca:	5f                   	pop    %edi
4211cb:	5e                   	pop    %esi
4211cc:	c9                   	leave
4211cd:	c2 08 00             	ret    $0x8
4211d0:	8b ff                	mov    %edi,%edi
4211d2:	55                   	push   %ebp
4211d3:	8b ec                	mov    %esp,%ebp
4211d5:	51                   	push   %ecx
4211d6:	56                   	push   %esi
4211d7:	8b 75 08             	mov    0x8(%ebp),%esi
4211da:	57                   	push   %edi
4211db:	8b f9                	mov    %ecx,%edi
4211dd:	81 fe ff ff ff 3f    	cmp    $0x3fffffff,%esi
4211e3:	76 12                	jbe    0x4211f7
4211e5:	8b 45 0c             	mov    0xc(%ebp),%eax
4211e8:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
4211ec:	c7 40 18 0c 00 00 00 	movl   $0xc,0x18(%eax)
4211f3:	32 c0                	xor    %al,%al
4211f5:	eb 55                	jmp    0x42124c
4211f7:	53                   	push   %ebx
4211f8:	8d 9f 04 04 00 00    	lea    0x404(%edi),%ebx
4211fe:	c1 e6 02             	shl    $0x2,%esi
421201:	83 3b 00             	cmpl   $0x0,(%ebx)
421204:	75 08                	jne    0x42120e
421206:	81 fe 00 04 00 00    	cmp    $0x400,%esi
42120c:	76 3b                	jbe    0x421249
42120e:	3b b7 00 04 00 00    	cmp    0x400(%edi),%esi
421214:	76 33                	jbe    0x421249
421216:	56                   	push   %esi
421217:	e8 95 b2 00 00       	call   0x42c4b1
42121c:	89 45 fc             	mov    %eax,-0x4(%ebp)
42121f:	59                   	pop    %ecx
421220:	85 c0                	test   %eax,%eax
421222:	75 0b                	jne    0x42122f
421224:	50                   	push   %eax
421225:	e8 4d b2 00 00       	call   0x42c477
42122a:	59                   	pop    %ecx
42122b:	32 c0                	xor    %al,%al
42122d:	eb 1c                	jmp    0x42124b
42122f:	8d 45 fc             	lea    -0x4(%ebp),%eax
421232:	8b cb                	mov    %ebx,%ecx
421234:	50                   	push   %eax
421235:	e8 b3 19 00 00       	call   0x422bed
42123a:	ff 75 fc             	push   -0x4(%ebp)
42123d:	89 b7 00 04 00 00    	mov    %esi,0x400(%edi)
421243:	e8 2f b2 00 00       	call   0x42c477
421248:	59                   	pop    %ecx
421249:	b0 01                	mov    $0x1,%al
42124b:	5b                   	pop    %ebx
42124c:	5f                   	pop    %edi
42124d:	5e                   	pop    %esi
42124e:	c9                   	leave
42124f:	c2 08 00             	ret    $0x8
421252:	8b ff                	mov    %edi,%edi
421254:	55                   	push   %ebp
421255:	8b ec                	mov    %esp,%ebp
421257:	f6 45 08 04          	testb  $0x4,0x8(%ebp)
42125b:	75 25                	jne    0x421282
42125d:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
421261:	74 0f                	je     0x421272
421263:	f6 45 08 02          	testb  $0x2,0x8(%ebp)
421267:	74 0d                	je     0x421276
421269:	81 7d 0c 00 00 00 80 	cmpl   $0x80000000,0xc(%ebp)
421270:	77 10                	ja     0x421282
421272:	32 c0                	xor    %al,%al
421274:	5d                   	pop    %ebp
421275:	c3                   	ret
421276:	81 7d 0c ff ff ff 7f 	cmpl   $0x7fffffff,0xc(%ebp)
42127d:	0f 97 c0             	seta   %al
421280:	5d                   	pop    %ebp
421281:	c3                   	ret
421282:	b0 01                	mov    $0x1,%al
421284:	5d                   	pop    %ebp
421285:	c3                   	ret
421286:	8b ff                	mov    %edi,%edi
421288:	55                   	push   %ebp
421289:	8b ec                	mov    %esp,%ebp
42128b:	8b 45 14             	mov    0x14(%ebp),%eax
42128e:	48                   	dec    %eax
42128f:	83 e8 01             	sub    $0x1,%eax
421292:	74 1f                	je     0x4212b3
421294:	83 e8 01             	sub    $0x1,%eax
421297:	74 16                	je     0x4212af
421299:	83 e8 09             	sub    $0x9,%eax
42129c:	74 11                	je     0x4212af
42129e:	83 7d 14 0d          	cmpl   $0xd,0x14(%ebp)
4212a2:	74 0f                	je     0x4212b3
4212a4:	8a 45 10             	mov    0x10(%ebp),%al
4212a7:	3c 63                	cmp    $0x63,%al
4212a9:	74 08                	je     0x4212b3
4212ab:	3c 73                	cmp    $0x73,%al
4212ad:	74 04                	je     0x4212b3
4212af:	b0 01                	mov    $0x1,%al
4212b1:	5d                   	pop    %ebp
4212b2:	c3                   	ret
4212b3:	32 c0                	xor    %al,%al
4212b5:	5d                   	pop    %ebp
4212b6:	c3                   	ret
4212b7:	8b ff                	mov    %edi,%edi
4212b9:	55                   	push   %ebp
4212ba:	8b ec                	mov    %esp,%ebp
4212bc:	8b 45 14             	mov    0x14(%ebp),%eax
4212bf:	48                   	dec    %eax
4212c0:	83 e8 01             	sub    $0x1,%eax
4212c3:	74 3c                	je     0x421301
4212c5:	83 e8 01             	sub    $0x1,%eax
4212c8:	74 33                	je     0x4212fd
4212ca:	83 e8 09             	sub    $0x9,%eax
4212cd:	74 2e                	je     0x4212fd
4212cf:	83 7d 14 0d          	cmpl   $0xd,0x14(%ebp)
4212d3:	74 28                	je     0x4212fd
4212d5:	8b 45 08             	mov    0x8(%ebp),%eax
4212d8:	83 e0 04             	and    $0x4,%eax
4212db:	83 c8 00             	or     $0x0,%eax
4212de:	6a 01                	push   $0x1
4212e0:	58                   	pop    %eax
4212e1:	74 04                	je     0x4212e7
4212e3:	8a c8                	mov    %al,%cl
4212e5:	eb 02                	jmp    0x4212e9
4212e7:	32 c9                	xor    %cl,%cl
4212e9:	66 83 7d 10 63       	cmpw   $0x63,0x10(%ebp)
4212ee:	74 07                	je     0x4212f7
4212f0:	66 83 7d 10 73       	cmpw   $0x73,0x10(%ebp)
4212f5:	75 02                	jne    0x4212f9
4212f7:	32 c0                	xor    %al,%al
4212f9:	32 c1                	xor    %cl,%al
4212fb:	5d                   	pop    %ebp
4212fc:	c3                   	ret
4212fd:	b0 01                	mov    $0x1,%al
4212ff:	5d                   	pop    %ebp
421300:	c3                   	ret
421301:	32 c0                	xor    %al,%al
421303:	5d                   	pop    %ebp
421304:	c3                   	ret
421305:	8b ff                	mov    %edi,%edi
421307:	55                   	push   %ebp
421308:	8b ec                	mov    %esp,%ebp
42130a:	8b 45 08             	mov    0x8(%ebp),%eax
42130d:	8b 4d 10             	mov    0x10(%ebp),%ecx
421310:	8b 55 0c             	mov    0xc(%ebp),%edx
421313:	89 10                	mov    %edx,(%eax)
421315:	89 48 04             	mov    %ecx,0x4(%eax)
421318:	85 c9                	test   %ecx,%ecx
42131a:	74 02                	je     0x42131e
42131c:	89 11                	mov    %edx,(%ecx)
42131e:	5d                   	pop    %ebp
42131f:	c3                   	ret
421320:	8b ff                	mov    %edi,%edi
421322:	55                   	push   %ebp
421323:	8b ec                	mov    %esp,%ebp
421325:	83 ec 14             	sub    $0x14,%esp
421328:	8d 4d 0c             	lea    0xc(%ebp),%ecx
42132b:	53                   	push   %ebx
42132c:	56                   	push   %esi
42132d:	e8 c9 32 00 00       	call   0x4245fb
421332:	84 c0                	test   %al,%al
421334:	74 2f                	je     0x421365
421336:	8b 75 14             	mov    0x14(%ebp),%esi
421339:	85 f6                	test   %esi,%esi
42133b:	74 3d                	je     0x42137a
42133d:	83 fe 02             	cmp    $0x2,%esi
421340:	7c 05                	jl     0x421347
421342:	83 fe 24             	cmp    $0x24,%esi
421345:	7e 33                	jle    0x42137a
421347:	8b 45 08             	mov    0x8(%ebp),%eax
42134a:	50                   	push   %eax
42134b:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
42134f:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
421356:	33 c0                	xor    %eax,%eax
421358:	50                   	push   %eax
421359:	50                   	push   %eax
42135a:	50                   	push   %eax
42135b:	50                   	push   %eax
42135c:	50                   	push   %eax
42135d:	e8 90 f6 ff ff       	call   0x4209f2
421362:	83 c4 18             	add    $0x18,%esp
421365:	8b 4d 10             	mov    0x10(%ebp),%ecx
421368:	85 c9                	test   %ecx,%ecx
42136a:	0f 84 52 01 00 00    	je     0x4214c2
421370:	8b 45 0c             	mov    0xc(%ebp),%eax
421373:	89 01                	mov    %eax,(%ecx)
421375:	e9 48 01 00 00       	jmp    0x4214c2
42137a:	8b 45 0c             	mov    0xc(%ebp),%eax
42137d:	33 c9                	xor    %ecx,%ecx
42137f:	57                   	push   %edi
421380:	89 45 ec             	mov    %eax,-0x14(%ebp)
421383:	89 4d f4             	mov    %ecx,-0xc(%ebp)
421386:	8a 18                	mov    (%eax),%bl
421388:	8d 78 01             	lea    0x1(%eax),%edi
42138b:	0f b6 45 18          	movzbl 0x18(%ebp),%eax
42138f:	88 5d fc             	mov    %bl,-0x4(%ebp)
421392:	89 7d 0c             	mov    %edi,0xc(%ebp)
421395:	89 45 f8             	mov    %eax,-0x8(%ebp)
421398:	80 fb 2d             	cmp    $0x2d,%bl
42139b:	75 08                	jne    0x4213a5
42139d:	83 c8 02             	or     $0x2,%eax
4213a0:	89 45 f8             	mov    %eax,-0x8(%ebp)
4213a3:	eb 05                	jmp    0x4213aa
4213a5:	80 fb 2b             	cmp    $0x2b,%bl
4213a8:	75 09                	jne    0x4213b3