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
40f407:	5e                   	pop    %esi
40f408:	5b                   	pop    %ebx
40f409:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f40c:	33 cd                	xor    %ebp,%ecx
40f40e:	e8 26 53 ff ff       	call   0x404739
40f413:	c9                   	leave
40f414:	c3                   	ret
40f415:	55                   	push   %ebp
40f416:	8b ec                	mov    %esp,%ebp
40f418:	83 ec 10             	sub    $0x10,%esp
40f41b:	ff 75 08             	push   0x8(%ebp)
40f41e:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40f421:	e8 d7 5d ff ff       	call   0x4051fd
40f426:	ff 75 20             	push   0x20(%ebp)
40f429:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f42c:	ff 75 1c             	push   0x1c(%ebp)
40f42f:	ff 75 18             	push   0x18(%ebp)
40f432:	ff 75 14             	push   0x14(%ebp)
40f435:	ff 75 10             	push   0x10(%ebp)
40f438:	ff 75 0c             	push   0xc(%ebp)
40f43b:	50                   	push   %eax
40f43c:	e8 e8 fe ff ff       	call   0x40f329
40f441:	83 c4 1c             	add    $0x1c,%esp
40f444:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
40f448:	74 07                	je     0x40f451
40f44a:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40f44d:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
40f451:	c9                   	leave
40f452:	c3                   	ret
40f453:	55                   	push   %ebp
40f454:	8b ec                	mov    %esp,%ebp
40f456:	8b 45 10             	mov    0x10(%ebp),%eax
40f459:	83 ec 14             	sub    $0x14,%esp
40f45c:	56                   	push   %esi
40f45d:	57                   	push   %edi
40f45e:	8b 7d 08             	mov    0x8(%ebp),%edi
40f461:	33 f6                	xor    %esi,%esi
40f463:	85 ff                	test   %edi,%edi
40f465:	74 0d                	je     0x40f474
40f467:	85 c0                	test   %eax,%eax
40f469:	0f 84 3f 01 00 00    	je     0x40f5ae
40f46f:	33 c0                	xor    %eax,%eax
40f471:	66 89 07             	mov    %ax,(%edi)
40f474:	53                   	push   %ebx
40f475:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40f478:	85 db                	test   %ebx,%ebx
40f47a:	75 18                	jne    0x40f494
40f47c:	e8 fc 8c ff ff       	call   0x40817d
40f481:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40f487:	e8 69 c1 ff ff       	call   0x40b5f5
40f48c:	83 c8 ff             	or     $0xffffffff,%eax
40f48f:	e9 19 01 00 00       	jmp    0x40f5ad
40f494:	ff 75 14             	push   0x14(%ebp)
40f497:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40f49a:	e8 5e 5d ff ff       	call   0x4051fd
40f49f:	8b 45 ec             	mov    -0x14(%ebp),%eax
40f4a2:	85 ff                	test   %edi,%edi
40f4a4:	0f 84 bb 00 00 00    	je     0x40f565
40f4aa:	39 b0 a8 00 00 00    	cmp    %esi,0xa8(%eax)
40f4b0:	75 28                	jne    0x40f4da
40f4b2:	39 75 10             	cmp    %esi,0x10(%ebp)
40f4b5:	0f 86 e3 00 00 00    	jbe    0x40f59e
40f4bb:	0f b6 04 1e          	movzbl (%esi,%ebx,1),%eax
40f4bf:	66 89 07             	mov    %ax,(%edi)
40f4c2:	80 3c 1e 00          	cmpb   $0x0,(%esi,%ebx,1)
40f4c6:	0f 84 d2 00 00 00    	je     0x40f59e
40f4cc:	46                   	inc    %esi
40f4cd:	83 c7 02             	add    $0x2,%edi
40f4d0:	3b 75 10             	cmp    0x10(%ebp),%esi
40f4d3:	72 e6                	jb     0x40f4bb
40f4d5:	e9 c4 00 00 00       	jmp    0x40f59e
40f4da:	ff 75 10             	push   0x10(%ebp)
40f4dd:	83 ce ff             	or     $0xffffffff,%esi
40f4e0:	57                   	push   %edi
40f4e1:	56                   	push   %esi
40f4e2:	53                   	push   %ebx
40f4e3:	6a 09                	push   $0x9
40f4e5:	ff 70 04             	push   0x4(%eax)
40f4e8:	ff 15 74 90 41 00    	call   *0x419074
40f4ee:	85 c0                	test   %eax,%eax
40f4f0:	0f 85 a5 00 00 00    	jne    0x40f59b
40f4f6:	ff 15 18 90 41 00    	call   *0x419018
40f4fc:	83 f8 7a             	cmp    $0x7a,%eax
40f4ff:	75 52                	jne    0x40f553
40f501:	8b 4d 10             	mov    0x10(%ebp),%ecx
40f504:	8b c3                	mov    %ebx,%eax
40f506:	eb 2a                	jmp    0x40f532
40f508:	49                   	dec    %ecx
40f509:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40f50c:	8a 08                	mov    (%eax),%cl
40f50e:	84 c9                	test   %cl,%cl
40f510:	74 27                	je     0x40f539
40f512:	8d 45 ec             	lea    -0x14(%ebp),%eax
40f515:	50                   	push   %eax
40f516:	0f b6 c1             	movzbl %cl,%eax
40f519:	50                   	push   %eax
40f51a:	e8 58 1d 00 00       	call   0x411277
40f51f:	59                   	pop    %ecx
40f520:	85 c0                	test   %eax,%eax
40f522:	8b 45 08             	mov    0x8(%ebp),%eax
40f525:	59                   	pop    %ecx
40f526:	74 06                	je     0x40f52e
40f528:	40                   	inc    %eax
40f529:	80 38 00             	cmpb   $0x0,(%eax)
40f52c:	74 25                	je     0x40f553
40f52e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f531:	40                   	inc    %eax
40f532:	89 45 08             	mov    %eax,0x8(%ebp)
40f535:	85 c9                	test   %ecx,%ecx
40f537:	75 cf                	jne    0x40f508
40f539:	ff 75 10             	push   0x10(%ebp)
40f53c:	2b c3                	sub    %ebx,%eax
40f53e:	57                   	push   %edi
40f53f:	50                   	push   %eax
40f540:	8b 45 ec             	mov    -0x14(%ebp),%eax
40f543:	53                   	push   %ebx
40f544:	6a 01                	push   $0x1
40f546:	ff 70 04             	push   0x4(%eax)
40f549:	ff 15 74 90 41 00    	call   *0x419074
40f54f:	85 c0                	test   %eax,%eax
40f551:	75 21                	jne    0x40f574
40f553:	e8 25 8c ff ff       	call   0x40817d
40f558:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
40f55e:	33 c0                	xor    %eax,%eax
40f560:	66 89 07             	mov    %ax,(%edi)
40f563:	eb 39                	jmp    0x40f59e
40f565:	39 b0 a8 00 00 00    	cmp    %esi,0xa8(%eax)
40f56b:	75 0b                	jne    0x40f578
40f56d:	53                   	push   %ebx
40f56e:	e8 7d 67 ff ff       	call   0x405cf0
40f573:	59                   	pop    %ecx
40f574:	8b f0                	mov    %eax,%esi
40f576:	eb 26                	jmp    0x40f59e
40f578:	56                   	push   %esi
40f579:	56                   	push   %esi
40f57a:	83 ce ff             	or     $0xffffffff,%esi
40f57d:	56                   	push   %esi
40f57e:	53                   	push   %ebx
40f57f:	6a 09                	push   $0x9
40f581:	ff 70 04             	push   0x4(%eax)
40f584:	ff 15 74 90 41 00    	call   *0x419074
40f58a:	85 c0                	test   %eax,%eax
40f58c:	75 0d                	jne    0x40f59b
40f58e:	e8 ea 8b ff ff       	call   0x40817d
40f593:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
40f599:	eb 03                	jmp    0x40f59e
40f59b:	8d 70 ff             	lea    -0x1(%eax),%esi
40f59e:	80 7d f8 00          	cmpb   $0x0,-0x8(%ebp)
40f5a2:	74 07                	je     0x40f5ab
40f5a4:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40f5a7:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
40f5ab:	8b c6                	mov    %esi,%eax
40f5ad:	5b                   	pop    %ebx
40f5ae:	5f                   	pop    %edi
40f5af:	5e                   	pop    %esi
40f5b0:	c9                   	leave
40f5b1:	c3                   	ret
40f5b2:	55                   	push   %ebp
40f5b3:	8b ec                	mov    %esp,%ebp
40f5b5:	83 ec 10             	sub    $0x10,%esp
40f5b8:	53                   	push   %ebx
40f5b9:	8b 5d 10             	mov    0x10(%ebp),%ebx
40f5bc:	56                   	push   %esi
40f5bd:	57                   	push   %edi
40f5be:	8b 7d 0c             	mov    0xc(%ebp),%edi
40f5c1:	33 f6                	xor    %esi,%esi
40f5c3:	85 ff                	test   %edi,%edi
40f5c5:	75 06                	jne    0x40f5cd
40f5c7:	85 db                	test   %ebx,%ebx
40f5c9:	74 1f                	je     0x40f5ea
40f5cb:	eb 04                	jmp    0x40f5d1
40f5cd:	85 db                	test   %ebx,%ebx
40f5cf:	75 14                	jne    0x40f5e5
40f5d1:	e8 a7 8b ff ff       	call   0x40817d
40f5d6:	6a 16                	push   $0x16