404044:	83 e7 f0             	and    $0xfffffff0,%edi
404047:	2b cf                	sub    %edi,%ecx
404049:	81 f9 80 00 00 00    	cmp    $0x80,%ecx
40404f:	76 4c                	jbe    0x40409d
404051:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
404058:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40405f:	90                   	nop
404060:	66 0f 7f 07          	movdqa %xmm0,(%edi)
404064:	66 0f 7f 47 10       	movdqa %xmm0,0x10(%edi)
404069:	66 0f 7f 47 20       	movdqa %xmm0,0x20(%edi)
40406e:	66 0f 7f 47 30       	movdqa %xmm0,0x30(%edi)
404073:	66 0f 7f 47 40       	movdqa %xmm0,0x40(%edi)
404078:	66 0f 7f 47 50       	movdqa %xmm0,0x50(%edi)
40407d:	66 0f 7f 47 60       	movdqa %xmm0,0x60(%edi)
404082:	66 0f 7f 47 70       	movdqa %xmm0,0x70(%edi)
404087:	8d bf 80 00 00 00    	lea    0x80(%edi),%edi
40408d:	81 e9 80 00 00 00    	sub    $0x80,%ecx
404093:	f7 c1 00 ff ff ff    	test   $0xffffff00,%ecx
404099:	75 c5                	jne    0x404060
40409b:	eb 13                	jmp    0x4040b0
40409d:	0f ba 25 10 60 41 00 	btl    $0x1,0x416010
4040a4:	01
4040a5:	73 3e                	jae    0x4040e5
4040a7:	66 0f 6e c0          	movd   %eax,%xmm0
4040ab:	66 0f 70 c0 00       	pshufd $0x0,%xmm0,%xmm0
4040b0:	83 f9 20             	cmp    $0x20,%ecx
4040b3:	72 1c                	jb     0x4040d1
4040b5:	f3 0f 7f 07          	movdqu %xmm0,(%edi)
4040b9:	f3 0f 7f 47 10       	movdqu %xmm0,0x10(%edi)
4040be:	83 c7 20             	add    $0x20,%edi
4040c1:	83 e9 20             	sub    $0x20,%ecx
4040c4:	83 f9 20             	cmp    $0x20,%ecx
4040c7:	73 ec                	jae    0x4040b5
4040c9:	f7 c1 1f 00 00 00    	test   $0x1f,%ecx
4040cf:	74 62                	je     0x404133
4040d1:	8d 7c 0f e0          	lea    -0x20(%edi,%ecx,1),%edi
4040d5:	f3 0f 7f 07          	movdqu %xmm0,(%edi)
4040d9:	f3 0f 7f 47 10       	movdqu %xmm0,0x10(%edi)
4040de:	8b 44 24 04          	mov    0x4(%esp),%eax
4040e2:	8b fa                	mov    %edx,%edi
4040e4:	c3                   	ret
4040e5:	f7 c1 03 00 00 00    	test   $0x3,%ecx
4040eb:	74 0e                	je     0x4040fb
4040ed:	88 07                	mov    %al,(%edi)
4040ef:	47                   	inc    %edi
4040f0:	83 e9 01             	sub    $0x1,%ecx
4040f3:	f7 c1 03 00 00 00    	test   $0x3,%ecx
4040f9:	75 f2                	jne    0x4040ed
4040fb:	f7 c1 04 00 00 00    	test   $0x4,%ecx
404101:	74 08                	je     0x40410b
404103:	89 07                	mov    %eax,(%edi)
404105:	83 c7 04             	add    $0x4,%edi
404108:	83 e9 04             	sub    $0x4,%ecx
40410b:	f7 c1 f8 ff ff ff    	test   $0xfffffff8,%ecx
404111:	74 20                	je     0x404133
404113:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40411a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
404120:	89 07                	mov    %eax,(%edi)
404122:	89 47 04             	mov    %eax,0x4(%edi)
404125:	83 c7 08             	add    $0x8,%edi
404128:	83 e9 08             	sub    $0x8,%ecx
40412b:	f7 c1 f8 ff ff ff    	test   $0xfffffff8,%ecx
404131:	75 ed                	jne    0x404120
404133:	8b 44 24 04          	mov    0x4(%esp),%eax
404137:	8b fa                	mov    %edx,%edi
404139:	c3                   	ret
40413a:	55                   	push   %ebp
40413b:	8b ec                	mov    %esp,%ebp
40413d:	8b 45 08             	mov    0x8(%ebp),%eax
404140:	85 c0                	test   %eax,%eax
404142:	74 0e                	je     0x404152
404144:	3d e8 6c 41 00       	cmp    $0x416ce8,%eax
404149:	74 07                	je     0x404152
40414b:	50                   	push   %eax
40414c:	e8 e4 1c 00 00       	call   0x405e35
404151:	59                   	pop    %ecx
404152:	5d                   	pop    %ebp
404153:	c2 04 00             	ret    $0x4
404156:	e8 09 00 00 00       	call   0x404164
40415b:	85 c0                	test   %eax,%eax
40415d:	0f 84 3b 2e 00 00    	je     0x406f9e
404163:	c3                   	ret
404164:	83 3d 20 60 41 00 ff 	cmpl   $0xffffffff,0x416020
40416b:	75 03                	jne    0x404170
40416d:	33 c0                	xor    %eax,%eax
40416f:	c3                   	ret
404170:	53                   	push   %ebx
404171:	57                   	push   %edi
404172:	ff 15 58 f0 40 00    	call   *0x40f058
404178:	ff 35 20 60 41 00    	push   0x416020
40417e:	8b f8                	mov    %eax,%edi
404180:	e8 be 11 00 00       	call   0x405343
404185:	8b d8                	mov    %eax,%ebx
404187:	59                   	pop    %ecx
404188:	83 fb ff             	cmp    $0xffffffff,%ebx
40418b:	74 17                	je     0x4041a4
40418d:	85 db                	test   %ebx,%ebx
40418f:	75 59                	jne    0x4041ea
404191:	6a ff                	push   $0xffffffff
404193:	ff 35 20 60 41 00    	push   0x416020
404199:	e8 e0 11 00 00       	call   0x40537e
40419e:	59                   	pop    %ecx
40419f:	59                   	pop    %ecx
4041a0:	85 c0                	test   %eax,%eax
4041a2:	75 04                	jne    0x4041a8
4041a4:	33 db                	xor    %ebx,%ebx
4041a6:	eb 42                	jmp    0x4041ea
4041a8:	56                   	push   %esi
4041a9:	6a 28                	push   $0x28
4041ab:	6a 01                	push   $0x1
4041ad:	e8 8a 2e 00 00       	call   0x40703c
4041b2:	8b f0                	mov    %eax,%esi
4041b4:	59                   	pop    %ecx
4041b5:	59                   	pop    %ecx
4041b6:	85 f6                	test   %esi,%esi
4041b8:	74 12                	je     0x4041cc
4041ba:	56                   	push   %esi
4041bb:	ff 35 20 60 41 00    	push   0x416020
4041c1:	e8 b8 11 00 00       	call   0x40537e
4041c6:	59                   	pop    %ecx
4041c7:	59                   	pop    %ecx
4041c8:	85 c0                	test   %eax,%eax
4041ca:	75 12                	jne    0x4041de
4041cc:	33 db                	xor    %ebx,%ebx
4041ce:	53                   	push   %ebx
4041cf:	ff 35 20 60 41 00    	push   0x416020
4041d5:	e8 a4 11 00 00       	call   0x40537e
4041da:	59                   	pop    %ecx
4041db:	59                   	pop    %ecx
4041dc:	eb 04                	jmp    0x4041e2
4041de:	8b de                	mov    %esi,%ebx
4041e0:	33 f6                	xor    %esi,%esi
4041e2:	56                   	push   %esi
4041e3:	e8 4d 1c 00 00       	call   0x405e35
4041e8:	59                   	pop    %ecx
4041e9:	5e                   	pop    %esi
4041ea:	57                   	push   %edi
4041eb:	ff 15 5c f0 40 00    	call   *0x40f05c
4041f1:	5f                   	pop    %edi
4041f2:	8b c3                	mov    %ebx,%eax
4041f4:	5b                   	pop    %ebx
4041f5:	c3                   	ret
4041f6:	68 3a 41 40 00       	push   $0x40413a
4041fb:	e8 cd 10 00 00       	call   0x4052cd
404200:	a3 20 60 41 00       	mov    %eax,0x416020
404205:	59                   	pop    %ecx
404206:	83 f8 ff             	cmp    $0xffffffff,%eax
404209:	75 03                	jne    0x40420e
40420b:	32 c0                	xor    %al,%al
40420d:	c3                   	ret
40420e:	68 e8 6c 41 00       	push   $0x416ce8
404213:	50                   	push   %eax
404214:	e8 65 11 00 00       	call   0x40537e
404219:	59                   	pop    %ecx
40421a:	59                   	pop    %ecx
40421b:	85 c0                	test   %eax,%eax
40421d:	75 07                	jne    0x404226
40421f:	e8 05 00 00 00       	call   0x404229
404224:	eb e5                	jmp    0x40420b
404226:	b0 01                	mov    $0x1,%al
404228:	c3                   	ret
404229:	a1 20 60 41 00       	mov    0x416020,%eax
40422e:	83 f8 ff             	cmp    $0xffffffff,%eax
404231:	74 0e                	je     0x404241
404233:	50                   	push   %eax
404234:	e8 cf 10 00 00       	call   0x405308
404239:	83 0d 20 60 41 00 ff 	orl    $0xffffffff,0x416020
404240:	59                   	pop    %ecx
404241:	b0 01                	mov    $0x1,%al
404243:	c3                   	ret
404244:	6a 10                	push   $0x10
404246:	68 18 49 41 00       	push   $0x414918
40424b:	e8 c0 f1 ff ff       	call   0x403410
404250:	33 db                	xor    %ebx,%ebx
404252:	8b 45 10             	mov    0x10(%ebp),%eax
404255:	8b 48 04             	mov    0x4(%eax),%ecx
404258:	85 c9                	test   %ecx,%ecx
40425a:	0f 84 0a 01 00 00    	je     0x40436a
404260:	38 59 08             	cmp    %bl,0x8(%ecx)
404263:	0f 84 01 01 00 00    	je     0x40436a
404269:	8b 50 08             	mov    0x8(%eax),%edx
40426c:	85 d2                	test   %edx,%edx
40426e:	75 08                	jne    0x404278
404270:	39 18                	cmp    %ebx,(%eax)
404272:	0f 8d f2 00 00 00    	jge    0x40436a
404278:	8b 08                	mov    (%eax),%ecx
40427a:	8b 75 0c             	mov    0xc(%ebp),%esi
40427d:	85 c9                	test   %ecx,%ecx
40427f:	78 05                	js     0x404286
404281:	83 c6 0c             	add    $0xc,%esi
404284:	03 f2                	add    %edx,%esi
404286:	89 5d fc             	mov    %ebx,-0x4(%ebp)
404289:	8b 7d 14             	mov    0x14(%ebp),%edi
40428c:	84 c9                	test   %cl,%cl
40428e:	79 20                	jns    0x4042b0
404290:	f6 07 10             	testb  $0x10,(%edi)
404293:	74 1b                	je     0x4042b0
404295:	a1 e4 6c 41 00       	mov    0x416ce4,%eax
40429a:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40429d:	85 c0                	test   %eax,%eax
40429f:	74 0f                	je     0x4042b0
4042a1:	8b c8                	mov    %eax,%ecx
4042a3:	ff 15 18 f1 40 00    	call   *0x40f118
4042a9:	ff 55 e4             	call   *-0x1c(%ebp)
4042ac:	8b c8                	mov    %eax,%ecx
4042ae:	eb 0b                	jmp    0x4042bb
4042b0:	8b 45 08             	mov    0x8(%ebp),%eax
4042b3:	f6 c1 08             	test   $0x8,%cl
4042b6:	74 1c                	je     0x4042d4
4042b8:	8b 48 18             	mov    0x18(%eax),%ecx
4042bb:	85 c9                	test   %ecx,%ecx
4042bd:	0f 84 b9 00 00 00    	je     0x40437c
4042c3:	85 f6                	test   %esi,%esi
4042c5:	0f 84 b1 00 00 00    	je     0x40437c
4042cb:	89 0e                	mov    %ecx,(%esi)
4042cd:	8d 47 08             	lea    0x8(%edi),%eax
4042d0:	50                   	push   %eax
4042d1:	51                   	push   %ecx
4042d2:	eb 37                	jmp    0x40430b
4042d4:	f6 07 01             	testb  $0x1,(%edi)
4042d7:	74 3d                	je     0x404316
4042d9:	83 78 18 00          	cmpl   $0x0,0x18(%eax)
4042dd:	0f 84 99 00 00 00    	je     0x40437c
4042e3:	85 f6                	test   %esi,%esi
4042e5:	0f 84 91 00 00 00    	je     0x40437c
4042eb:	ff 77 14             	push   0x14(%edi)
4042ee:	ff 70 18             	push   0x18(%eax)
4042f1:	56                   	push   %esi
4042f2:	e8 59 11 00 00       	call   0x405450
4042f7:	83 c4 0c             	add    $0xc,%esp
4042fa:	83 7f 14 04          	cmpl   $0x4,0x14(%edi)
4042fe:	75 56                	jne    0x404356
404300:	83 3e 00             	cmpl   $0x0,(%esi)
404303:	74 51                	je     0x404356
404305:	8d 47 08             	lea    0x8(%edi),%eax
404308:	50                   	push   %eax
404309:	ff 36                	push   (%esi)
40430b:	e8 37 f9 ff ff       	call   0x403c47
404310:	59                   	pop    %ecx
404311:	59                   	pop    %ecx
404312:	89 06                	mov    %eax,(%esi)
404314:	eb 40                	jmp    0x404356
404316:	8b 48 18             	mov    0x18(%eax),%ecx
404319:	39 5f 18             	cmp    %ebx,0x18(%edi)
40431c:	75 23                	jne    0x404341
40431e:	85 c9                	test   %ecx,%ecx
404320:	74 5a                	je     0x40437c
404322:	85 f6                	test   %esi,%esi
404324:	74 56                	je     0x40437c
404326:	ff 77 14             	push   0x14(%edi)
404329:	8d 47 08             	lea    0x8(%edi),%eax
40432c:	50                   	push   %eax
40432d:	51                   	push   %ecx
40432e:	e8 14 f9 ff ff       	call   0x403c47
404333:	59                   	pop    %ecx
404334:	59                   	pop    %ecx
404335:	50                   	push   %eax
404336:	56                   	push   %esi
404337:	e8 14 11 00 00       	call   0x405450
40433c:	83 c4 0c             	add    $0xc,%esp
40433f:	eb 15                	jmp    0x404356
404341:	85 c9                	test   %ecx,%ecx
404343:	74 37                	je     0x40437c
404345:	85 f6                	test   %esi,%esi
404347:	74 33                	je     0x40437c
404349:	f6 07 04             	testb  $0x4,(%edi)
40434c:	6a 00                	push   $0x0
40434e:	5b                   	pop    %ebx
40434f:	0f 95 c3             	setne  %bl
404352:	43                   	inc    %ebx
404353:	89 5d e0             	mov    %ebx,-0x20(%ebp)
404356:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40435d:	8b c3                	mov    %ebx,%eax
40435f:	eb 0b                	jmp    0x40436c
404361:	33 c0                	xor    %eax,%eax
404363:	40                   	inc    %eax
404364:	c3                   	ret
404365:	8b 65 e8             	mov    -0x18(%ebp),%esp
404368:	eb 12                	jmp    0x40437c
40436a:	33 c0                	xor    %eax,%eax
40436c:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40436f:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
404376:	59                   	pop    %ecx
404377:	5f                   	pop    %edi
404378:	5e                   	pop    %esi
404379:	5b                   	pop    %ebx
40437a:	c9                   	leave
40437b:	c3                   	ret
40437c:	e8 1d 2c 00 00       	call   0x406f9e
404381:	cc                   	int3
404382:	6a 08                	push   $0x8
404384:	68 38 49 41 00       	push   $0x414938
404389:	e8 82 f0 ff ff       	call   0x403410
40438e:	8b 55 10             	mov    0x10(%ebp),%edx
404391:	8b 4d 0c             	mov    0xc(%ebp),%ecx
404394:	83 3a 00             	cmpl   $0x0,(%edx)
404397:	7d 04                	jge    0x40439d
404399:	8b f9                	mov    %ecx,%edi
40439b:	eb 06                	jmp    0x4043a3
40439d:	8d 79 0c             	lea    0xc(%ecx),%edi
4043a0:	03 7a 08             	add    0x8(%edx),%edi
4043a3:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4043a7:	8b 75 14             	mov    0x14(%ebp),%esi
4043aa:	56                   	push   %esi
4043ab:	52                   	push   %edx
4043ac:	51                   	push   %ecx
4043ad:	8b 5d 08             	mov    0x8(%ebp),%ebx
4043b0:	53                   	push   %ebx
4043b1:	e8 8e fe ff ff       	call   0x404244
4043b6:	83 c4 10             	add    $0x10,%esp
4043b9:	83 e8 01             	sub    $0x1,%eax
4043bc:	74 21                	je     0x4043df
4043be:	83 e8 01             	sub    $0x1,%eax
4043c1:	75 34                	jne    0x4043f7
4043c3:	8d 46 08             	lea    0x8(%esi),%eax
4043c6:	50                   	push   %eax
4043c7:	ff 73 18             	push   0x18(%ebx)
4043ca:	e8 78 f8 ff ff       	call   0x403c47
4043cf:	59                   	pop    %ecx
4043d0:	59                   	pop    %ecx
4043d1:	6a 01                	push   $0x1
4043d3:	50                   	push   %eax
4043d4:	ff 76 18             	push   0x18(%esi)
4043d7:	57                   	push   %edi
4043d8:	e8 86 0b 00 00       	call   0x404f63
4043dd:	eb 18                	jmp    0x4043f7
4043df:	8d 46 08             	lea    0x8(%esi),%eax
4043e2:	50                   	push   %eax
4043e3:	ff 73 18             	push   0x18(%ebx)
4043e6:	e8 5c f8 ff ff       	call   0x403c47
4043eb:	59                   	pop    %ecx
4043ec:	59                   	pop    %ecx
4043ed:	50                   	push   %eax
4043ee:	ff 76 18             	push   0x18(%esi)
4043f1:	57                   	push   %edi
4043f2:	e8 5c 0b 00 00       	call   0x404f53
4043f7:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4043fe:	8b 4d f0             	mov    -0x10(%ebp),%ecx
404401:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
404408:	59                   	pop    %ecx
404409:	5f                   	pop    %edi
40440a:	5e                   	pop    %esi
40440b:	5b                   	pop    %ebx
40440c:	c9                   	leave
40440d:	c3                   	ret
40440e:	33 c0                	xor    %eax,%eax
404410:	40                   	inc    %eax
404411:	c3                   	ret
404412:	8b 65 e8             	mov    -0x18(%ebp),%esp
404415:	e8 84 2b 00 00       	call   0x406f9e