40f019:	3b f8                	cmp    %eax,%edi
40f01b:	77 11                	ja     0x40f02e
40f01d:	f6 43 0c 08          	testb  $0x8,0xc(%ebx)
40f021:	74 0b                	je     0x40f02e
40f023:	f7 43 0c 00 04 00 00 	testl  $0x400,0xc(%ebx)
40f02a:	8b f8                	mov    %eax,%edi
40f02c:	74 03                	je     0x40f031
40f02e:	8b 7b 18             	mov    0x18(%ebx),%edi
40f031:	8b 85 ec ef ff ff    	mov    -0x1014(%ebp),%eax
40f037:	8b 8d e0 ef ff ff    	mov    -0x1020(%ebp),%ecx
40f03d:	8b 04 85 20 2a 42 00 	mov    0x422a20(,%eax,4),%eax
40f044:	8b 95 f4 ef ff ff    	mov    -0x100c(%ebp),%edx
40f04a:	f6 44 08 04 04       	testb  $0x4,0x4(%eax,%ecx,1)
40f04f:	8b 85 f0 ef ff ff    	mov    -0x1010(%ebp),%eax
40f055:	74 01                	je     0x40f058
40f057:	47                   	inc    %edi
40f058:	80 bd fb ef ff ff 01 	cmpb   $0x1,-0x1005(%ebp)
40f05f:	75 02                	jne    0x40f063
40f061:	d1 ef                	shr    $1,%edi
40f063:	2b c7                	sub    %edi,%eax
40f065:	83 da 00             	sbb    $0x0,%edx
40f068:	89 95 f4 ef ff ff    	mov    %edx,-0x100c(%ebp)
40f06e:	80 bd fb ef ff ff 01 	cmpb   $0x1,-0x1005(%ebp)
40f075:	75 02                	jne    0x40f079
40f077:	d1 ee                	shr    $1,%esi
40f079:	33 d2                	xor    %edx,%edx
40f07b:	03 c6                	add    %esi,%eax
40f07d:	13 95 f4 ef ff ff    	adc    -0x100c(%ebp),%edx
40f083:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f086:	5f                   	pop    %edi
40f087:	5e                   	pop    %esi
40f088:	33 cd                	xor    %ebp,%ecx
40f08a:	5b                   	pop    %ebx
40f08b:	e8 a9 56 ff ff       	call   0x404739
40f090:	c9                   	leave
40f091:	c3                   	ret
40f092:	6a 18                	push   $0x18
40f094:	68 f8 e6 41 00       	push   $0x41e6f8
40f099:	e8 12 bd ff ff       	call   0x40adb0
40f09e:	83 ce ff             	or     $0xffffffff,%esi
40f0a1:	89 75 d8             	mov    %esi,-0x28(%ebp)
40f0a4:	89 75 dc             	mov    %esi,-0x24(%ebp)
40f0a7:	8b 7d 08             	mov    0x8(%ebp),%edi
40f0aa:	83 ff fe             	cmp    $0xfffffffe,%edi
40f0ad:	75 18                	jne    0x40f0c7
40f0af:	e8 95 90 ff ff       	call   0x408149
40f0b4:	83 20 00             	andl   $0x0,(%eax)
40f0b7:	e8 c1 90 ff ff       	call   0x40817d
40f0bc:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40f0c2:	e9 ca 00 00 00       	jmp    0x40f191
40f0c7:	e8 26 e5 ff ff       	call   0x40d5f2
40f0cc:	85 c0                	test   %eax,%eax
40f0ce:	0f 88 bd 00 00 00    	js     0x40f191
40f0d4:	85 ff                	test   %edi,%edi
40f0d6:	0f 88 9d 00 00 00    	js     0x40f179
40f0dc:	3b 3d 14 2a 42 00    	cmp    0x422a14,%edi
40f0e2:	0f 83 91 00 00 00    	jae    0x40f179
40f0e8:	8b c7                	mov    %edi,%eax
40f0ea:	c1 f8 05             	sar    $0x5,%eax
40f0ed:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40f0f0:	8b df                	mov    %edi,%ebx
40f0f2:	83 e3 1f             	and    $0x1f,%ebx
40f0f5:	c1 e3 06             	shl    $0x6,%ebx
40f0f8:	8b 04 85 20 2a 42 00 	mov    0x422a20(,%eax,4),%eax
40f0ff:	0f be 44 18 04       	movsbl 0x4(%eax,%ebx,1),%eax
40f104:	83 e0 01             	and    $0x1,%eax
40f107:	74 70                	je     0x40f179
40f109:	57                   	push   %edi
40f10a:	e8 88 4a 00 00       	call   0x413b97
40f10f:	59                   	pop    %ecx
40f110:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40f114:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40f117:	8b 04 85 20 2a 42 00 	mov    0x422a20(,%eax,4),%eax
40f11e:	f6 44 18 04 01       	testb  $0x1,0x4(%eax,%ebx,1)
40f123:	74 18                	je     0x40f13d
40f125:	ff 75 14             	push   0x14(%ebp)
40f128:	ff 75 10             	push   0x10(%ebp)
40f12b:	ff 75 0c             	push   0xc(%ebp)
40f12e:	57                   	push   %edi
40f12f:	e8 67 00 00 00       	call   0x40f19b
40f134:	83 c4 10             	add    $0x10,%esp
40f137:	8b f0                	mov    %eax,%esi
40f139:	8b da                	mov    %edx,%ebx
40f13b:	eb 15                	jmp    0x40f152
40f13d:	e8 3b 90 ff ff       	call   0x40817d
40f142:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40f148:	e8 fc 8f ff ff       	call   0x408149
40f14d:	83 20 00             	andl   $0x0,(%eax)
40f150:	8b de                	mov    %esi,%ebx
40f152:	89 75 d8             	mov    %esi,-0x28(%ebp)
40f155:	89 5d dc             	mov    %ebx,-0x24(%ebp)
40f158:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40f15f:	e8 0d 00 00 00       	call   0x40f171
40f164:	8b d3                	mov    %ebx,%edx
40f166:	eb 2b                	jmp    0x40f193
40f168:	8b 7d 08             	mov    0x8(%ebp),%edi
40f16b:	8b 5d dc             	mov    -0x24(%ebp),%ebx
40f16e:	8b 75 d8             	mov    -0x28(%ebp),%esi
40f171:	57                   	push   %edi
40f172:	e8 a4 4b 00 00       	call   0x413d1b
40f177:	59                   	pop    %ecx
40f178:	c3                   	ret
40f179:	e8 cb 8f ff ff       	call   0x408149
40f17e:	83 20 00             	andl   $0x0,(%eax)
40f181:	e8 f7 8f ff ff       	call   0x40817d
40f186:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40f18c:	e8 64 c4 ff ff       	call   0x40b5f5
40f191:	8b d6                	mov    %esi,%edx
40f193:	8b c6                	mov    %esi,%eax
40f195:	e8 5b bc ff ff       	call   0x40adf5
40f19a:	c3                   	ret
40f19b:	55                   	push   %ebp
40f19c:	8b ec                	mov    %esp,%ebp
40f19e:	51                   	push   %ecx
40f19f:	51                   	push   %ecx
40f1a0:	56                   	push   %esi
40f1a1:	8b 75 08             	mov    0x8(%ebp),%esi
40f1a4:	57                   	push   %edi
40f1a5:	56                   	push   %esi
40f1a6:	e8 fe 4a 00 00       	call   0x413ca9
40f1ab:	83 cf ff             	or     $0xffffffff,%edi
40f1ae:	59                   	pop    %ecx
40f1af:	3b c7                	cmp    %edi,%eax
40f1b1:	75 11                	jne    0x40f1c4
40f1b3:	e8 c5 8f ff ff       	call   0x40817d
40f1b8:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40f1be:	8b c7                	mov    %edi,%eax
40f1c0:	8b d7                	mov    %edi,%edx
40f1c2:	eb 44                	jmp    0x40f208
40f1c4:	ff 75 14             	push   0x14(%ebp)
40f1c7:	8d 4d f8             	lea    -0x8(%ebp),%ecx
40f1ca:	51                   	push   %ecx
40f1cb:	ff 75 10             	push   0x10(%ebp)
40f1ce:	ff 75 0c             	push   0xc(%ebp)
40f1d1:	50                   	push   %eax
40f1d2:	ff 15 00 91 41 00    	call   *0x419100
40f1d8:	85 c0                	test   %eax,%eax
40f1da:	75 0f                	jne    0x40f1eb
40f1dc:	ff 15 18 90 41 00    	call   *0x419018
40f1e2:	50                   	push   %eax
40f1e3:	e8 74 8f ff ff       	call   0x40815c
40f1e8:	59                   	pop    %ecx
40f1e9:	eb d3                	jmp    0x40f1be
40f1eb:	8b c6                	mov    %esi,%eax
40f1ed:	c1 f8 05             	sar    $0x5,%eax
40f1f0:	83 e6 1f             	and    $0x1f,%esi
40f1f3:	8b 04 85 20 2a 42 00 	mov    0x422a20(,%eax,4),%eax
40f1fa:	c1 e6 06             	shl    $0x6,%esi
40f1fd:	80 64 30 04 fd       	andb   $0xfd,0x4(%eax,%esi,1)
40f202:	8b 45 f8             	mov    -0x8(%ebp),%eax
40f205:	8b 55 fc             	mov    -0x4(%ebp),%edx
40f208:	5f                   	pop    %edi
40f209:	5e                   	pop    %esi
40f20a:	c9                   	leave
40f20b:	c3                   	ret
40f20c:	55                   	push   %ebp
40f20d:	8b ec                	mov    %esp,%ebp
40f20f:	ff 05 50 1c 42 00    	incl   0x421c50
40f215:	56                   	push   %esi
40f216:	be 00 10 00 00       	mov    $0x1000,%esi
40f21b:	56                   	push   %esi
40f21c:	e8 81 98 ff ff       	call   0x408aa2
40f221:	59                   	pop    %ecx
40f222:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f225:	89 41 08             	mov    %eax,0x8(%ecx)
40f228:	85 c0                	test   %eax,%eax
40f22a:	74 09                	je     0x40f235
40f22c:	83 49 0c 08          	orl    $0x8,0xc(%ecx)
40f230:	89 71 18             	mov    %esi,0x18(%ecx)
40f233:	eb 11                	jmp    0x40f246
40f235:	83 49 0c 04          	orl    $0x4,0xc(%ecx)
40f239:	8d 41 14             	lea    0x14(%ecx),%eax
40f23c:	89 41 08             	mov    %eax,0x8(%ecx)
40f23f:	c7 41 18 02 00 00 00 	movl   $0x2,0x18(%ecx)
40f246:	8b 41 08             	mov    0x8(%ecx),%eax
40f249:	83 61 04 00          	andl   $0x0,0x4(%ecx)
40f24d:	89 01                	mov    %eax,(%ecx)
40f24f:	5e                   	pop    %esi
40f250:	5d                   	pop    %ebp
40f251:	c3                   	ret
40f252:	85 c0                	test   %eax,%eax
40f254:	75 06                	jne    0x40f25c
40f256:	66 0f ef c0          	pxor   %xmm0,%xmm0
40f25a:	eb 11                	jmp    0x40f26d
40f25c:	66 0f 6e c0          	movd   %eax,%xmm0
40f260:	66 0f 60 c0          	punpcklbw %xmm0,%xmm0
40f264:	66 0f 61 c0          	punpcklwd %xmm0,%xmm0
40f268:	66 0f 70 c0 00       	pshufd $0x0,%xmm0,%xmm0
40f26d:	53                   	push   %ebx
40f26e:	51                   	push   %ecx
40f26f:	8b d9                	mov    %ecx,%ebx
40f271:	83 e3 0f             	and    $0xf,%ebx
40f274:	85 db                	test   %ebx,%ebx
40f276:	75 78                	jne    0x40f2f0
40f278:	8b da                	mov    %edx,%ebx
40f27a:	83 e2 7f             	and    $0x7f,%edx
40f27d:	c1 eb 07             	shr    $0x7,%ebx
40f280:	74 30                	je     0x40f2b2
40f282:	66 0f 7f 01          	movdqa %xmm0,(%ecx)
40f286:	66 0f 7f 41 10       	movdqa %xmm0,0x10(%ecx)
40f28b:	66 0f 7f 41 20       	movdqa %xmm0,0x20(%ecx)
40f290:	66 0f 7f 41 30       	movdqa %xmm0,0x30(%ecx)
40f295:	66 0f 7f 41 40       	movdqa %xmm0,0x40(%ecx)
40f29a:	66 0f 7f 41 50       	movdqa %xmm0,0x50(%ecx)
40f29f:	66 0f 7f 41 60       	movdqa %xmm0,0x60(%ecx)
40f2a4:	66 0f 7f 41 70       	movdqa %xmm0,0x70(%ecx)
40f2a9:	8d 89 80 00 00 00    	lea    0x80(%ecx),%ecx
40f2af:	4b                   	dec    %ebx
40f2b0:	75 d0                	jne    0x40f282
40f2b2:	85 d2                	test   %edx,%edx
40f2b4:	74 37                	je     0x40f2ed
40f2b6:	8b da                	mov    %edx,%ebx
40f2b8:	c1 eb 04             	shr    $0x4,%ebx
40f2bb:	74 0f                	je     0x40f2cc
40f2bd:	eb 03                	jmp    0x40f2c2
40f2bf:	8d 49 00             	lea    0x0(%ecx),%ecx
40f2c2:	66 0f 7f 01          	movdqa %xmm0,(%ecx)
40f2c6:	8d 49 10             	lea    0x10(%ecx),%ecx
40f2c9:	4b                   	dec    %ebx
40f2ca:	75 f6                	jne    0x40f2c2
40f2cc:	83 e2 0f             	and    $0xf,%edx
40f2cf:	74 1c                	je     0x40f2ed
40f2d1:	8b da                	mov    %edx,%ebx
40f2d3:	c1 ea 02             	shr    $0x2,%edx
40f2d6:	74 0a                	je     0x40f2e2
40f2d8:	66 0f 7e 01          	movd   %xmm0,(%ecx)
40f2dc:	8d 49 04             	lea    0x4(%ecx),%ecx
40f2df:	4a                   	dec    %edx
40f2e0:	75 f6                	jne    0x40f2d8
40f2e2:	83 e3 03             	and    $0x3,%ebx
40f2e5:	74 06                	je     0x40f2ed
40f2e7:	88 01                	mov    %al,(%ecx)
40f2e9:	41                   	inc    %ecx
40f2ea:	4b                   	dec    %ebx
40f2eb:	75 fa                	jne    0x40f2e7
40f2ed:	58                   	pop    %eax
40f2ee:	5b                   	pop    %ebx
40f2ef:	c3                   	ret
40f2f0:	f7 db                	neg    %ebx
40f2f2:	83 c3 10             	add    $0x10,%ebx
40f2f5:	2b d3                	sub    %ebx,%edx
40f2f7:	52                   	push   %edx
40f2f8:	8b d3                	mov    %ebx,%edx
40f2fa:	83 e2 03             	and    $0x3,%edx
40f2fd:	74 06                	je     0x40f305
40f2ff:	88 01                	mov    %al,(%ecx)
40f301:	41                   	inc    %ecx
40f302:	4a                   	dec    %edx
40f303:	75 fa                	jne    0x40f2ff
40f305:	c1 eb 02             	shr    $0x2,%ebx
40f308:	74 0a                	je     0x40f314
40f30a:	66 0f 7e 01          	movd   %xmm0,(%ecx)
40f30e:	8d 49 04             	lea    0x4(%ecx),%ecx
40f311:	4b                   	dec    %ebx
40f312:	75 f6                	jne    0x40f30a
40f314:	5a                   	pop    %edx
40f315:	e9 5e ff ff ff       	jmp    0x40f278
40f31a:	55                   	push   %ebp
40f31b:	8b ec                	mov    %esp,%ebp
40f31d:	8b 45 08             	mov    0x8(%ebp),%eax
40f320:	f7 d8                	neg    %eax
40f322:	1b c0                	sbb    %eax,%eax
40f324:	83 e0 01             	and    $0x1,%eax
40f327:	5d                   	pop    %ebp
40f328:	c3                   	ret
40f329:	55                   	push   %ebp
40f32a:	8b ec                	mov    %esp,%ebp
40f32c:	51                   	push   %ecx
40f32d:	a1 90 08 42 00       	mov    0x420890,%eax
40f332:	33 c5                	xor    %ebp,%eax
40f334:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f337:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
40f33a:	53                   	push   %ebx
40f33b:	56                   	push   %esi
40f33c:	57                   	push   %edi
40f33d:	33 ff                	xor    %edi,%edi
40f33f:	85 c9                	test   %ecx,%ecx
40f341:	75 0d                	jne    0x40f350
40f343:	8b 45 08             	mov    0x8(%ebp),%eax
40f346:	8b 00                	mov    (%eax),%eax
40f348:	8b 40 04             	mov    0x4(%eax),%eax
40f34b:	89 45 1c             	mov    %eax,0x1c(%ebp)
40f34e:	8b c8                	mov    %eax,%ecx
40f350:	33 c0                	xor    %eax,%eax
40f352:	39 45 20             	cmp    %eax,0x20(%ebp)
40f355:	57                   	push   %edi
40f356:	57                   	push   %edi
40f357:	ff 75 14             	push   0x14(%ebp)
40f35a:	0f 95 c0             	setne  %al
40f35d:	ff 75 10             	push   0x10(%ebp)
40f360:	8d 04 c5 01 00 00 00 	lea    0x1(,%eax,8),%eax
40f367:	50                   	push   %eax
40f368:	51                   	push   %ecx
40f369:	ff 15 74 90 41 00    	call   *0x419074
40f36f:	8b d8                	mov    %eax,%ebx
40f371:	85 db                	test   %ebx,%ebx
40f373:	75 07                	jne    0x40f37c
40f375:	33 c0                	xor    %eax,%eax
40f377:	e9 87 00 00 00       	jmp    0x40f403
40f37c:	7e 41                	jle    0x40f3bf
40f37e:	81 fb f0 ff ff 7f    	cmp    $0x7ffffff0,%ebx
40f384:	77 39                	ja     0x40f3bf
40f386:	8d 04 5d 08 00 00 00 	lea    0x8(,%ebx,2),%eax
40f38d:	3d 00 04 00 00       	cmp    $0x400,%eax
40f392:	77 13                	ja     0x40f3a7
40f394:	e8 17 08 00 00       	call   0x40fbb0
40f399:	8b f4                	mov    %esp,%esi
40f39b:	85 f6                	test   %esi,%esi
40f39d:	74 d6                	je     0x40f375
40f39f:	c7 06 cc cc 00 00    	movl   $0xcccc,(%esi)
40f3a5:	eb 13                	jmp    0x40f3ba
40f3a7:	50                   	push   %eax
40f3a8:	e8 90 8e ff ff       	call   0x40823d
40f3ad:	8b f0                	mov    %eax,%esi
40f3af:	59                   	pop    %ecx
40f3b0:	85 f6                	test   %esi,%esi
40f3b2:	74 c1                	je     0x40f375
40f3b4:	c7 06 dd dd 00 00    	movl   $0xdddd,(%esi)
40f3ba:	83 c6 08             	add    $0x8,%esi
40f3bd:	eb 02                	jmp    0x40f3c1
40f3bf:	8b f7                	mov    %edi,%esi
40f3c1:	85 f6                	test   %esi,%esi
40f3c3:	74 b0                	je     0x40f375
40f3c5:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
40f3c8:	50                   	push   %eax
40f3c9:	57                   	push   %edi
40f3ca:	56                   	push   %esi
40f3cb:	e8 70 7b ff ff       	call   0x406f40
40f3d0:	83 c4 0c             	add    $0xc,%esp
40f3d3:	53                   	push   %ebx
40f3d4:	56                   	push   %esi
40f3d5:	ff 75 14             	push   0x14(%ebp)
40f3d8:	ff 75 10             	push   0x10(%ebp)
40f3db:	6a 01                	push   $0x1
40f3dd:	ff 75 1c             	push   0x1c(%ebp)
40f3e0:	ff 15 74 90 41 00    	call   *0x419074
40f3e6:	85 c0                	test   %eax,%eax
40f3e8:	74 10                	je     0x40f3fa
40f3ea:	ff 75 18             	push   0x18(%ebp)
40f3ed:	50                   	push   %eax
40f3ee:	56                   	push   %esi
40f3ef:	ff 75 0c             	push   0xc(%ebp)
40f3f2:	ff 15 78 90 41 00    	call   *0x419078
40f3f8:	8b f8                	mov    %eax,%edi
40f3fa:	56                   	push   %esi
40f3fb:	e8 3a 96 ff ff       	call   0x408a3a
40f400:	59                   	pop    %ecx
40f401:	8b c7                	mov    %edi,%eax
40f403:	8d 65 f0             	lea    -0x10(%ebp),%esp
40f406:	5f                   	pop    %edi