47c11f:	56                   	push   %esi
47c120:	8b f1                	mov    %ecx,%esi
47c122:	8b 46 04             	mov    0x4(%esi),%eax
47c125:	8b 0e                	mov    (%esi),%ecx
47c127:	0f b7 00             	movzwl (%eax),%eax
47c12a:	50                   	push   %eax
47c12b:	e8 aa cf ff ff       	call   0x4790da
47c130:	8b 46 04             	mov    0x4(%esi),%eax
47c133:	33 c9                	xor    %ecx,%ecx
47c135:	66 89 08             	mov    %cx,(%eax)
47c138:	8b 46 08             	mov    0x8(%esi),%eax
47c13b:	8b 0e                	mov    (%esi),%ecx
47c13d:	5e                   	pop    %esi
47c13e:	8b 00                	mov    (%eax),%eax
47c140:	89 01                	mov    %eax,(%ecx)
47c142:	b0 01                	mov    $0x1,%al
47c144:	c3                   	ret
47c145:	80 79 04 00          	cmpb   $0x0,0x4(%ecx)
47c149:	74 03                	je     0x47c14e
47c14b:	8b 01                	mov    (%ecx),%eax
47c14d:	c3                   	ret
47c14e:	6a 00                	push   $0x0
47c150:	68 db 01 00 00       	push   $0x1db
47c155:	68 40 26 4a 00       	push   $0x4a2640
47c15a:	68 a8 26 4a 00       	push   $0x4a26a8
47c15f:	68 04 27 4a 00       	push   $0x4a2704
47c164:	e8 e5 d4 ff ff       	call   0x47964e
47c169:	cc                   	int3
47c16a:	80 79 04 00          	cmpb   $0x0,0x4(%ecx)
47c16e:	75 03                	jne    0x47c173
47c170:	8b 01                	mov    (%ecx),%eax
47c172:	c3                   	ret
47c173:	6a 00                	push   $0x0
47c175:	68 e1 01 00 00       	push   $0x1e1
47c17a:	68 40 26 4a 00       	push   $0x4a2640
47c17f:	68 20 27 4a 00       	push   $0x4a2720
47c184:	68 7c 27 4a 00       	push   $0x4a277c
47c189:	e8 c0 d4 ff ff       	call   0x47964e
47c18e:	cc                   	int3
47c18f:	8b ff                	mov    %edi,%edi
47c191:	55                   	push   %ebp
47c192:	8b ec                	mov    %esp,%ebp
47c194:	8b 4d 0c             	mov    0xc(%ebp),%ecx
47c197:	80 79 04 00          	cmpb   $0x0,0x4(%ecx)
47c19b:	74 1c                	je     0x47c1b9
47c19d:	e8 a3 ff ff ff       	call   0x47c145
47c1a2:	8b c8                	mov    %eax,%ecx
47c1a4:	0f b6 45 08          	movzbl 0x8(%ebp),%eax
47c1a8:	99                   	cltd
47c1a9:	c1 e0 1f             	shl    $0x1f,%eax
47c1ac:	0d 00 00 f0 7f       	or     $0x7ff00000,%eax
47c1b1:	83 21 00             	andl   $0x0,(%ecx)
47c1b4:	89 41 04             	mov    %eax,0x4(%ecx)
47c1b7:	5d                   	pop    %ebp
47c1b8:	c3                   	ret
47c1b9:	e8 ac ff ff ff       	call   0x47c16a
47c1be:	0f b6 4d 08          	movzbl 0x8(%ebp),%ecx
47c1c2:	c1 e1 1f             	shl    $0x1f,%ecx
47c1c5:	81 c9 00 00 80 7f    	or     $0x7f800000,%ecx
47c1cb:	89 08                	mov    %ecx,(%eax)
47c1cd:	5d                   	pop    %ebp
47c1ce:	c3                   	ret
47c1cf:	8b ff                	mov    %edi,%edi
47c1d1:	55                   	push   %ebp
47c1d2:	8b ec                	mov    %esp,%ebp
47c1d4:	83 ec 24             	sub    $0x24,%esp
47c1d7:	53                   	push   %ebx
47c1d8:	56                   	push   %esi
47c1d9:	8b 75 0c             	mov    0xc(%ebp),%esi
47c1dc:	33 db                	xor    %ebx,%ebx
47c1de:	57                   	push   %edi
47c1df:	8b 7d 08             	mov    0x8(%ebp),%edi
47c1e2:	3b f3                	cmp    %ebx,%esi
47c1e4:	77 14                	ja     0x47c1fa
47c1e6:	83 ff ff             	cmp    $0xffffffff,%edi
47c1e9:	77 0f                	ja     0x47c1fa
47c1eb:	0f bd cf             	bsr    %edi,%ecx
47c1ee:	89 5d dc             	mov    %ebx,-0x24(%ebp)
47c1f1:	74 03                	je     0x47c1f6
47c1f3:	41                   	inc    %ecx
47c1f4:	eb 14                	jmp    0x47c20a
47c1f6:	8b cb                	mov    %ebx,%ecx
47c1f8:	eb 10                	jmp    0x47c20a
47c1fa:	0f bd ce             	bsr    %esi,%ecx
47c1fd:	89 5d dc             	mov    %ebx,-0x24(%ebp)
47c200:	74 03                	je     0x47c205
47c202:	41                   	inc    %ecx
47c203:	eb 02                	jmp    0x47c207
47c205:	8b cb                	mov    %ebx,%ecx
47c207:	83 c1 20             	add    $0x20,%ecx
47c20a:	8b 45 1c             	mov    0x1c(%ebp),%eax
47c20d:	8a 50 04             	mov    0x4(%eax),%dl
47c210:	88 55 ff             	mov    %dl,-0x1(%ebp)
47c213:	33 d2                	xor    %edx,%edx
47c215:	38 55 ff             	cmp    %dl,-0x1(%ebp)
47c218:	0f 94 c2             	sete   %dl
47c21b:	33 c0                	xor    %eax,%eax
47c21d:	4a                   	dec    %edx
47c21e:	83 e2 1d             	and    $0x1d,%edx
47c221:	83 c2 18             	add    $0x18,%edx
47c224:	2b d1                	sub    %ecx,%edx
47c226:	8b 4d 10             	mov    0x10(%ebp),%ecx
47c229:	2b ca                	sub    %edx,%ecx
47c22b:	89 55 f4             	mov    %edx,-0xc(%ebp)
47c22e:	38 45 ff             	cmp    %al,-0x1(%ebp)
47c231:	89 4d f8             	mov    %ecx,-0x8(%ebp)
47c234:	0f 94 c0             	sete   %al
47c237:	48                   	dec    %eax
47c238:	25 80 03 00 00       	and    $0x380,%eax
47c23d:	83 c0 7f             	add    $0x7f,%eax
47c240:	89 45 ec             	mov    %eax,-0x14(%ebp)
47c243:	3b c8                	cmp    %eax,%ecx
47c245:	8b 45 1c             	mov    0x1c(%ebp),%eax
47c248:	0f 8f 72 02 00 00    	jg     0x47c4c0
47c24e:	33 c0                	xor    %eax,%eax
47c250:	38 45 ff             	cmp    %al,-0x1(%ebp)
47c253:	0f 94 c0             	sete   %al
47c256:	48                   	dec    %eax
47c257:	25 80 fc ff ff       	and    $0xfffffc80,%eax
47c25c:	83 c0 82             	add    $0xffffff82,%eax
47c25f:	3b c8                	cmp    %eax,%ecx
47c261:	0f 8d 3f 01 00 00    	jge    0x47c3a6
47c267:	8b 45 ec             	mov    -0x14(%ebp),%eax
47c26a:	8b c8                	mov    %eax,%ecx
47c26c:	8b 55 10             	mov    0x10(%ebp),%edx
47c26f:	f7 d9                	neg    %ecx
47c271:	4a                   	dec    %edx
47c272:	89 4d f8             	mov    %ecx,-0x8(%ebp)
47c275:	03 d0                	add    %eax,%edx
47c277:	89 55 ec             	mov    %edx,-0x14(%ebp)
47c27a:	85 d2                	test   %edx,%edx
47c27c:	0f 89 1c 01 00 00    	jns    0x47c39e
47c282:	8b c2                	mov    %edx,%eax
47c284:	f7 d8                	neg    %eax
47c286:	89 45 f0             	mov    %eax,-0x10(%ebp)
47c289:	83 f8 40             	cmp    $0x40,%eax
47c28c:	0f 83 f8 00 00 00    	jae    0x47c38a
47c292:	8d 48 ff             	lea    -0x1(%eax),%ecx
47c295:	33 d2                	xor    %edx,%edx
47c297:	33 c0                	xor    %eax,%eax
47c299:	40                   	inc    %eax
47c29a:	e8 b1 97 01 00       	call   0x495a50
47c29f:	8b 4d f0             	mov    -0x10(%ebp),%ecx
47c2a2:	89 45 e8             	mov    %eax,-0x18(%ebp)
47c2a5:	83 c0 ff             	add    $0xffffffff,%eax
47c2a8:	89 55 e4             	mov    %edx,-0x1c(%ebp)
47c2ab:	83 d2 ff             	adc    $0xffffffff,%edx
47c2ae:	89 45 e0             	mov    %eax,-0x20(%ebp)
47c2b1:	33 c0                	xor    %eax,%eax
47c2b3:	89 55 dc             	mov    %edx,-0x24(%ebp)
47c2b6:	40                   	inc    %eax
47c2b7:	33 d2                	xor    %edx,%edx
47c2b9:	e8 92 97 01 00       	call   0x495a50
47c2be:	23 c7                	and    %edi,%eax
47c2c0:	c6 45 fd 01          	movb   $0x1,-0x3(%ebp)
47c2c4:	23 d6                	and    %esi,%edx
47c2c6:	0b c2                	or     %edx,%eax
47c2c8:	75 03                	jne    0x47c2cd
47c2ca:	88 5d fd             	mov    %bl,-0x3(%ebp)
47c2cd:	8b 45 e8             	mov    -0x18(%ebp),%eax
47c2d0:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
47c2d3:	23 c7                	and    %edi,%eax
47c2d5:	23 ce                	and    %esi,%ecx
47c2d7:	0b c1                	or     %ecx,%eax
47c2d9:	74 07                	je     0x47c2e2
47c2db:	b1 01                	mov    $0x1,%cl
47c2dd:	88 4d ff             	mov    %cl,-0x1(%ebp)
47c2e0:	eb 05                	jmp    0x47c2e7
47c2e2:	8a cb                	mov    %bl,%cl
47c2e4:	88 5d ff             	mov    %bl,-0x1(%ebp)
47c2e7:	38 5d 18             	cmp    %bl,0x18(%ebp)
47c2ea:	74 15                	je     0x47c301
47c2ec:	8b 45 e0             	mov    -0x20(%ebp),%eax
47c2ef:	8b 55 dc             	mov    -0x24(%ebp),%edx
47c2f2:	23 c7                	and    %edi,%eax
47c2f4:	23 d6                	and    %esi,%edx
47c2f6:	0b c2                	or     %edx,%eax
47c2f8:	75 07                	jne    0x47c301
47c2fa:	8a c3                	mov    %bl,%al
47c2fc:	88 5d fe             	mov    %bl,-0x2(%ebp)
47c2ff:	eb 05                	jmp    0x47c306
47c301:	b0 01                	mov    $0x1,%al
47c303:	88 45 fe             	mov    %al,-0x2(%ebp)
47c306:	84 c9                	test   %cl,%cl
47c308:	75 04                	jne    0x47c30e
47c30a:	84 c0                	test   %al,%al
47c30c:	74 35                	je     0x47c343
47c30e:	e8 c1 d6 00 00       	call   0x4899d4
47c313:	85 c0                	test   %eax,%eax
47c315:	74 1b                	je     0x47c332
47c317:	3d 00 01 00 00       	cmp    $0x100,%eax
47c31c:	74 0f                	je     0x47c32d
47c31e:	3d 00 02 00 00       	cmp    $0x200,%eax
47c323:	75 1e                	jne    0x47c343
47c325:	8a 5d 14             	mov    0x14(%ebp),%bl
47c328:	80 f3 01             	xor    $0x1,%bl
47c32b:	eb 16                	jmp    0x47c343
47c32d:	8a 5d 14             	mov    0x14(%ebp),%bl
47c330:	eb 11                	jmp    0x47c343
47c332:	38 5d ff             	cmp    %bl,-0x1(%ebp)
47c335:	74 0c                	je     0x47c343
47c337:	38 5d fe             	cmp    %bl,-0x2(%ebp)
47c33a:	75 05                	jne    0x47c341
47c33c:	38 5d fd             	cmp    %bl,-0x3(%ebp)
47c33f:	74 02                	je     0x47c343
47c341:	b3 01                	mov    $0x1,%bl
47c343:	8b 4d f0             	mov    -0x10(%ebp),%ecx
47c346:	8b c7                	mov    %edi,%eax
47c348:	8b d6                	mov    %esi,%edx
47c34a:	e8 21 97 01 00       	call   0x495a70
47c34f:	8b f8                	mov    %eax,%edi
47c351:	8b f2                	mov    %edx,%esi
47c353:	0f b6 c3             	movzbl %bl,%eax
47c356:	99                   	cltd
47c357:	03 f8                	add    %eax,%edi
47c359:	8b c7                	mov    %edi,%eax
47c35b:	13 f2                	adc    %edx,%esi
47c35d:	0b c6                	or     %esi,%eax
47c35f:	74 29                	je     0x47c38a
47c361:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
47c364:	e8 d2 21 00 00       	call   0x47e53b
47c369:	3b f2                	cmp    %edx,%esi
47c36b:	0f 82 74 01 00 00    	jb     0x47c4e5
47c371:	77 08                	ja     0x47c37b
47c373:	3b f8                	cmp    %eax,%edi
47c375:	0f 86 6a 01 00 00    	jbe    0x47c4e5
47c37b:	8b 5d 10             	mov    0x10(%ebp),%ebx
47c37e:	2b 5d ec             	sub    -0x14(%ebp),%ebx
47c381:	2b 5d f4             	sub    -0xc(%ebp),%ebx
47c384:	4b                   	dec    %ebx
47c385:	e9 5e 01 00 00       	jmp    0x47c4e8
47c38a:	ff 75 1c             	push   0x1c(%ebp)
47c38d:	ff 75 14             	push   0x14(%ebp)
47c390:	e8 25 03 00 00       	call   0x47c6ba
47c395:	59                   	pop    %ecx
47c396:	59                   	pop    %ecx
47c397:	6a 02                	push   $0x2
47c399:	e9 2f 01 00 00       	jmp    0x47c4cd
47c39e:	8b 4d ec             	mov    -0x14(%ebp),%ecx
47c3a1:	e9 32 01 00 00       	jmp    0x47c4d8
47c3a6:	85 d2                	test   %edx,%edx
47c3a8:	0f 89 25 01 00 00    	jns    0x47c4d3
47c3ae:	f7 da                	neg    %edx
47c3b0:	89 55 f4             	mov    %edx,-0xc(%ebp)
47c3b3:	83 fa 40             	cmp    $0x40,%edx
47c3b6:	72 09                	jb     0x47c3c1
47c3b8:	8b fb                	mov    %ebx,%edi
47c3ba:	8b f3                	mov    %ebx,%esi
47c3bc:	e9 c9 00 00 00       	jmp    0x47c48a
47c3c1:	33 c0                	xor    %eax,%eax
47c3c3:	8d 4a ff             	lea    -0x1(%edx),%ecx
47c3c6:	40                   	inc    %eax
47c3c7:	33 d2                	xor    %edx,%edx
47c3c9:	e8 82 96 01 00       	call   0x495a50
47c3ce:	8b 4d f4             	mov    -0xc(%ebp),%ecx
47c3d1:	89 45 dc             	mov    %eax,-0x24(%ebp)
47c3d4:	83 c0 ff             	add    $0xffffffff,%eax
47c3d7:	89 55 e0             	mov    %edx,-0x20(%ebp)
47c3da:	83 d2 ff             	adc    $0xffffffff,%edx
47c3dd:	89 45 e4             	mov    %eax,-0x1c(%ebp)
47c3e0:	33 c0                	xor    %eax,%eax
47c3e2:	89 55 e8             	mov    %edx,-0x18(%ebp)
47c3e5:	40                   	inc    %eax
47c3e6:	33 d2                	xor    %edx,%edx
47c3e8:	e8 63 96 01 00       	call   0x495a50
47c3ed:	23 c7                	and    %edi,%eax
47c3ef:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
47c3f3:	23 d6                	and    %esi,%edx
47c3f5:	0b c2                	or     %edx,%eax
47c3f7:	75 03                	jne    0x47c3fc
47c3f9:	88 5d ff             	mov    %bl,-0x1(%ebp)
47c3fc:	8b 45 dc             	mov    -0x24(%ebp),%eax
47c3ff:	8b 4d e0             	mov    -0x20(%ebp),%ecx
47c402:	23 c7                	and    %edi,%eax
47c404:	23 ce                	and    %esi,%ecx
47c406:	0b c1                	or     %ecx,%eax
47c408:	74 07                	je     0x47c411
47c40a:	b1 01                	mov    $0x1,%cl
47c40c:	88 4d fd             	mov    %cl,-0x3(%ebp)
47c40f:	eb 05                	jmp    0x47c416
47c411:	8a cb                	mov    %bl,%cl
47c413:	88 5d fd             	mov    %bl,-0x3(%ebp)
47c416:	38 5d 18             	cmp    %bl,0x18(%ebp)
47c419:	74 15                	je     0x47c430
47c41b:	8b 45 e4             	mov    -0x1c(%ebp),%eax
47c41e:	8b 55 e8             	mov    -0x18(%ebp),%edx
47c421:	23 c7                	and    %edi,%eax
47c423:	23 d6                	and    %esi,%edx
47c425:	0b c2                	or     %edx,%eax
47c427:	75 07                	jne    0x47c430
47c429:	8a c3                	mov    %bl,%al
47c42b:	88 5d fe             	mov    %bl,-0x2(%ebp)
47c42e:	eb 05                	jmp    0x47c435
47c430:	b0 01                	mov    $0x1,%al
47c432:	88 45 fe             	mov    %al,-0x2(%ebp)
47c435:	84 c9                	test   %cl,%cl
47c437:	75 04                	jne    0x47c43d
47c439:	84 c0                	test   %al,%al
47c43b:	74 35                	je     0x47c472
47c43d:	e8 92 d5 00 00       	call   0x4899d4
47c442:	85 c0                	test   %eax,%eax
47c444:	74 1b                	je     0x47c461
47c446:	3d 00 01 00 00       	cmp    $0x100,%eax
47c44b:	74 0f                	je     0x47c45c
47c44d:	3d 00 02 00 00       	cmp    $0x200,%eax
47c452:	75 1e                	jne    0x47c472
47c454:	8a 5d 14             	mov    0x14(%ebp),%bl
47c457:	80 f3 01             	xor    $0x1,%bl
47c45a:	eb 16                	jmp    0x47c472
47c45c:	8a 5d 14             	mov    0x14(%ebp),%bl
47c45f:	eb 11                	jmp    0x47c472
47c461:	38 5d fd             	cmp    %bl,-0x3(%ebp)
47c464:	74 0c                	je     0x47c472
47c466:	38 5d fe             	cmp    %bl,-0x2(%ebp)
47c469:	75 05                	jne    0x47c470
47c46b:	38 5d ff             	cmp    %bl,-0x1(%ebp)
47c46e:	74 02                	je     0x47c472
47c470:	b3 01                	mov    $0x1,%bl
47c472:	8b 4d f4             	mov    -0xc(%ebp),%ecx
47c475:	8b c7                	mov    %edi,%eax
47c477:	8b d6                	mov    %esi,%edx
47c479:	e8 f2 95 01 00       	call   0x495a70
47c47e:	8b f8                	mov    %eax,%edi
47c480:	8b f2                	mov    %edx,%esi
47c482:	0f b6 c3             	movzbl %bl,%eax
47c485:	99                   	cltd
47c486:	03 f8                	add    %eax,%edi
47c488:	13 f2                	adc    %edx,%esi
47c48a:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
47c48d:	e8 79 25 00 00       	call   0x47ea0b
47c492:	3b f2                	cmp    %edx,%esi
47c494:	72 4f                	jb     0x47c4e5
47c496:	77 04                	ja     0x47c49c
47c498:	3b f8                	cmp    %eax,%edi
47c49a:	76 49                	jbe    0x47c4e5
47c49c:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
47c49f:	33 c0                	xor    %eax,%eax
47c4a1:	8b 5d f8             	mov    -0x8(%ebp),%ebx
47c4a4:	0f ac f7 01          	shrd   $0x1,%esi,%edi
47c4a8:	d1 ee                	shr    $1,%esi
47c4aa:	43                   	inc    %ebx
47c4ab:	38 41 04             	cmp    %al,0x4(%ecx)
47c4ae:	0f 94 c0             	sete   %al
47c4b1:	48                   	dec    %eax
47c4b2:	25 80 03 00 00       	and    $0x380,%eax
47c4b7:	83 c0 7f             	add    $0x7f,%eax
47c4ba:	3b d8                	cmp    %eax,%ebx
47c4bc:	7e 2a                	jle    0x47c4e8
47c4be:	8b c1                	mov    %ecx,%eax
47c4c0:	50                   	push   %eax