404397:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
40439e:	c7 45 d4 0f 00 00 00 	movl   $0xf,-0x2c(%ebp)
4043a5:	c6 45 c0 00          	movb   $0x0,-0x40(%ebp)
4043a9:	83 fa 10             	cmp    $0x10,%edx
4043ac:	72 28                	jb     0x4043d6
4043ae:	8b 4d d8             	mov    -0x28(%ebp),%ecx
4043b1:	42                   	inc    %edx
4043b2:	8b c1                	mov    %ecx,%eax
4043b4:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
4043ba:	72 10                	jb     0x4043cc
4043bc:	8b 49 fc             	mov    -0x4(%ecx),%ecx
4043bf:	83 c2 23             	add    $0x23,%edx
4043c2:	2b c1                	sub    %ecx,%eax
4043c4:	83 c0 fc             	add    $0xfffffffc,%eax
4043c7:	83 f8 1f             	cmp    $0x1f,%eax
4043ca:	77 2d                	ja     0x4043f9
4043cc:	52                   	push   %edx
4043cd:	51                   	push   %ecx
4043ce:	e8 79 32 00 00       	call   0x40764c
4043d3:	83 c4 08             	add    $0x8,%esp
4043d6:	8b c6                	mov    %esi,%eax
4043d8:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4043db:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4043e2:	59                   	pop    %ecx
4043e3:	5f                   	pop    %edi
4043e4:	5e                   	pop    %esi
4043e5:	5b                   	pop    %ebx
4043e6:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4043e9:	33 cd                	xor    %ebp,%ecx
4043eb:	e8 1c 30 00 00       	call   0x40740c
4043f0:	8b e5                	mov    %ebp,%esp
4043f2:	5d                   	pop    %ebp
4043f3:	c3                   	ret
4043f4:	e8 a7 03 00 00       	call   0x4047a0
4043f9:	e8 93 8c 00 00       	call   0x40d091
4043fe:	cc                   	int3
4043ff:	cc                   	int3
404400:	55                   	push   %ebp
404401:	8b ec                	mov    %esp,%ebp
404403:	8b 55 14             	mov    0x14(%ebp),%edx
404406:	56                   	push   %esi
404407:	8b 75 0c             	mov    0xc(%ebp),%esi
40440a:	c6 06 25             	movb   $0x25,(%esi)
40440d:	8d 46 01             	lea    0x1(%esi),%eax
404410:	f6 c2 20             	test   $0x20,%dl
404413:	74 04                	je     0x404419
404415:	c6 00 2b             	movb   $0x2b,(%eax)
404418:	40                   	inc    %eax
404419:	f6 c2 10             	test   $0x10,%dl
40441c:	74 04                	je     0x404422
40441e:	c6 00 23             	movb   $0x23,(%eax)
404421:	40                   	inc    %eax
404422:	8a 4d 10             	mov    0x10(%ebp),%cl
404425:	66 c7 00 2e 2a       	movw   $0x2a2e,(%eax)
40442a:	83 c0 02             	add    $0x2,%eax
40442d:	84 c9                	test   %cl,%cl
40442f:	74 03                	je     0x404434
404431:	88 08                	mov    %cl,(%eax)
404433:	40                   	inc    %eax
404434:	8b ca                	mov    %edx,%ecx
404436:	81 e1 00 30 00 00    	and    $0x3000,%ecx
40443c:	f6 c2 04             	test   $0x4,%dl
40443f:	74 38                	je     0x404479
404441:	81 f9 00 20 00 00    	cmp    $0x2000,%ecx
404447:	74 38                	je     0x404481
404449:	81 f9 00 30 00 00    	cmp    $0x3000,%ecx
40444f:	75 0d                	jne    0x40445e
404451:	b1 41                	mov    $0x41,%cl
404453:	88 08                	mov    %cl,(%eax)
404455:	c6 40 01 00          	movb   $0x0,0x1(%eax)
404459:	8b c6                	mov    %esi,%eax
40445b:	5e                   	pop    %esi
40445c:	5d                   	pop    %ebp
40445d:	c3                   	ret
40445e:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
404464:	0f 95 c1             	setne  %cl
404467:	8d 0c 4d 45 00 00 00 	lea    0x45(,%ecx,2),%ecx
40446e:	88 08                	mov    %cl,(%eax)
404470:	c6 40 01 00          	movb   $0x0,0x1(%eax)
404474:	8b c6                	mov    %esi,%eax
404476:	5e                   	pop    %esi
404477:	5d                   	pop    %ebp
404478:	c3                   	ret
404479:	81 f9 00 20 00 00    	cmp    $0x2000,%ecx
40447f:	75 0d                	jne    0x40448e
404481:	b1 66                	mov    $0x66,%cl
404483:	88 08                	mov    %cl,(%eax)
404485:	c6 40 01 00          	movb   $0x0,0x1(%eax)
404489:	8b c6                	mov    %esi,%eax
40448b:	5e                   	pop    %esi
40448c:	5d                   	pop    %ebp
40448d:	c3                   	ret
40448e:	81 f9 00 30 00 00    	cmp    $0x3000,%ecx
404494:	75 0d                	jne    0x4044a3
404496:	b1 61                	mov    $0x61,%cl
404498:	88 08                	mov    %cl,(%eax)
40449a:	c6 40 01 00          	movb   $0x0,0x1(%eax)
40449e:	8b c6                	mov    %esi,%eax
4044a0:	5e                   	pop    %esi
4044a1:	5d                   	pop    %ebp
4044a2:	c3                   	ret
4044a3:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4044a9:	0f 95 c1             	setne  %cl
4044ac:	8d 0c 4d 65 00 00 00 	lea    0x65(,%ecx,2),%ecx
4044b3:	88 08                	mov    %cl,(%eax)
4044b5:	c6 40 01 00          	movb   $0x0,0x1(%eax)
4044b9:	8b c6                	mov    %esi,%eax
4044bb:	5e                   	pop    %esi
4044bc:	5d                   	pop    %ebp
4044bd:	c3                   	ret
4044be:	cc                   	int3
4044bf:	cc                   	int3
4044c0:	55                   	push   %ebp
4044c1:	8b ec                	mov    %esp,%ebp
4044c3:	6a ff                	push   $0xffffffff
4044c5:	68 80 2c 42 00       	push   $0x422c80
4044ca:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4044d0:	50                   	push   %eax
4044d1:	a1 14 30 43 00       	mov    0x433014,%eax
4044d6:	33 c5                	xor    %ebp,%eax
4044d8:	50                   	push   %eax
4044d9:	8d 45 f4             	lea    -0xc(%ebp),%eax
4044dc:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4044e2:	8b 09                	mov    (%ecx),%ecx
4044e4:	8b 01                	mov    (%ecx),%eax
4044e6:	8b 40 04             	mov    0x4(%eax),%eax
4044e9:	8b 4c 08 38          	mov    0x38(%eax,%ecx,1),%ecx
4044ed:	85 c9                	test   %ecx,%ecx
4044ef:	74 05                	je     0x4044f6
4044f1:	8b 01                	mov    (%ecx),%eax
4044f3:	ff 50 08             	call   *0x8(%eax)
4044f6:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4044f9:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
404500:	59                   	pop    %ecx
404501:	8b e5                	mov    %ebp,%esp
404503:	5d                   	pop    %ebp
404504:	c3                   	ret
404505:	cc                   	int3
404506:	cc                   	int3
404507:	cc                   	int3
404508:	cc                   	int3
404509:	cc                   	int3
40450a:	cc                   	int3
40450b:	cc                   	int3
40450c:	cc                   	int3
40450d:	cc                   	int3
40450e:	cc                   	int3
40450f:	cc                   	int3
404510:	55                   	push   %ebp
404511:	8b ec                	mov    %esp,%ebp
404513:	6a ff                	push   $0xffffffff
404515:	68 a0 2c 42 00       	push   $0x422ca0
40451a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
404520:	50                   	push   %eax
404521:	51                   	push   %ecx
404522:	53                   	push   %ebx
404523:	56                   	push   %esi
404524:	57                   	push   %edi
404525:	a1 14 30 43 00       	mov    0x433014,%eax
40452a:	33 c5                	xor    %ebp,%eax
40452c:	50                   	push   %eax
40452d:	8d 45 f4             	lea    -0xc(%ebp),%eax
404530:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
404536:	89 65 f0             	mov    %esp,-0x10(%ebp)
404539:	8b f1                	mov    %ecx,%esi
40453b:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
404542:	8b 06                	mov    (%esi),%eax
404544:	8b 40 04             	mov    0x4(%eax),%eax
404547:	83 7c 30 0c 00       	cmpl   $0x0,0xc(%eax,%esi,1)
40454c:	75 2b                	jne    0x404579
40454e:	f6 44 30 14 02       	testb  $0x2,0x14(%eax,%esi,1)
404553:	74 24                	je     0x404579
404555:	8b 4c 30 38          	mov    0x38(%eax,%esi,1),%ecx
404559:	8b 01                	mov    (%ecx),%eax
40455b:	ff 50 34             	call   *0x34(%eax)
40455e:	83 f8 ff             	cmp    $0xffffffff,%eax
404561:	75 16                	jne    0x404579
404563:	8b 06                	mov    (%esi),%eax
404565:	6a 00                	push   $0x0
404567:	8b 48 04             	mov    0x4(%eax),%ecx
40456a:	8b 44 31 0c          	mov    0xc(%ecx,%esi,1),%eax
40456e:	03 ce                	add    %esi,%ecx
404570:	83 c8 04             	or     $0x4,%eax
404573:	50                   	push   %eax
404574:	e8 27 d9 ff ff       	call   0x401ea0
404579:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40457c:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
404583:	59                   	pop    %ecx
404584:	5f                   	pop    %edi
404585:	5e                   	pop    %esi
404586:	5b                   	pop    %ebx
404587:	8b e5                	mov    %ebp,%esp
404589:	5d                   	pop    %ebp
40458a:	c3                   	ret
40458b:	b8 79 45 40 00       	mov    $0x404579,%eax
404590:	c3                   	ret
404591:	cc                   	int3
404592:	cc                   	int3
404593:	cc                   	int3
404594:	cc                   	int3
404595:	cc                   	int3
404596:	cc                   	int3
404597:	cc                   	int3
404598:	cc                   	int3
404599:	cc                   	int3
40459a:	cc                   	int3
40459b:	cc                   	int3
40459c:	cc                   	int3
40459d:	cc                   	int3
40459e:	cc                   	int3
40459f:	cc                   	int3
4045a0:	55                   	push   %ebp
4045a1:	8b ec                	mov    %esp,%ebp
4045a3:	56                   	push   %esi
4045a4:	57                   	push   %edi
4045a5:	8b 7d 08             	mov    0x8(%ebp),%edi
4045a8:	8b f1                	mov    %ecx,%esi
4045aa:	3b f7                	cmp    %edi,%esi
4045ac:	74 61                	je     0x40460f
4045ae:	8b 4e 14             	mov    0x14(%esi),%ecx
4045b1:	83 f9 10             	cmp    $0x10,%ecx
4045b4:	72 27                	jb     0x4045dd
4045b6:	8b 06                	mov    (%esi),%eax
4045b8:	41                   	inc    %ecx
4045b9:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4045bf:	72 12                	jb     0x4045d3
4045c1:	8b 50 fc             	mov    -0x4(%eax),%edx
4045c4:	83 c1 23             	add    $0x23,%ecx
4045c7:	2b c2                	sub    %edx,%eax
4045c9:	83 c0 fc             	add    $0xfffffffc,%eax
4045cc:	83 f8 1f             	cmp    $0x1f,%eax
4045cf:	77 46                	ja     0x404617
4045d1:	8b c2                	mov    %edx,%eax
4045d3:	51                   	push   %ecx
4045d4:	50                   	push   %eax
4045d5:	e8 72 30 00 00       	call   0x40764c
4045da:	83 c4 08             	add    $0x8,%esp
4045dd:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
4045e4:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
4045eb:	c6 06 00             	movb   $0x0,(%esi)
4045ee:	0f 10 07             	movups (%edi),%xmm0
4045f1:	0f 11 06             	movups %xmm0,(%esi)
4045f4:	f3 0f 7e 47 10       	movq   0x10(%edi),%xmm0
4045f9:	66 0f d6 46 10       	movq   %xmm0,0x10(%esi)
4045fe:	c7 47 10 00 00 00 00 	movl   $0x0,0x10(%edi)
404605:	c7 47 14 0f 00 00 00 	movl   $0xf,0x14(%edi)
40460c:	c6 07 00             	movb   $0x0,(%edi)
40460f:	5f                   	pop    %edi
404610:	8b c6                	mov    %esi,%eax
404612:	5e                   	pop    %esi
404613:	5d                   	pop    %ebp
404614:	c2 04 00             	ret    $0x4
404617:	e8 75 8a 00 00       	call   0x40d091
40461c:	cc                   	int3
40461d:	cc                   	int3
40461e:	cc                   	int3
40461f:	cc                   	int3
404620:	55                   	push   %ebp
404621:	8b ec                	mov    %esp,%ebp
404623:	56                   	push   %esi
404624:	8b f1                	mov    %ecx,%esi
404626:	ff 76 08             	push   0x8(%esi)
404629:	c7 06 04 50 42 00    	movl   $0x425004,(%esi)
40462f:	e8 df 85 00 00       	call   0x40cc13
404634:	ff 76 10             	push   0x10(%esi)
404637:	e8 d7 85 00 00       	call   0x40cc13
40463c:	ff 76 14             	push   0x14(%esi)
40463f:	e8 cf 85 00 00       	call   0x40cc13
404644:	83 c4 0c             	add    $0xc,%esp
404647:	c7 06 78 43 42 00    	movl   $0x424378,(%esi)
40464d:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
404651:	74 0b                	je     0x40465e
404653:	6a 18                	push   $0x18
404655:	56                   	push   %esi
404656:	e8 f1 2f 00 00       	call   0x40764c
40465b:	83 c4 08             	add    $0x8,%esp
40465e:	8b c6                	mov    %esi,%eax
404660:	5e                   	pop    %esi
404661:	5d                   	pop    %ebp
404662:	c2 04 00             	ret    $0x4
404665:	cc                   	int3
404666:	cc                   	int3
404667:	cc                   	int3
404668:	cc                   	int3
404669:	cc                   	int3
40466a:	cc                   	int3
40466b:	cc                   	int3
40466c:	cc                   	int3
40466d:	cc                   	int3
40466e:	cc                   	int3
40466f:	cc                   	int3
404670:	55                   	push   %ebp
404671:	8b ec                	mov    %esp,%ebp
404673:	51                   	push   %ecx
404674:	53                   	push   %ebx
404675:	8b 5d 08             	mov    0x8(%ebp),%ebx
404678:	56                   	push   %esi
404679:	8b f1                	mov    %ecx,%esi
40467b:	57                   	push   %edi
40467c:	8b 4e 14             	mov    0x14(%esi),%ecx
40467f:	89 4d fc             	mov    %ecx,-0x4(%ebp)
404682:	3b d9                	cmp    %ecx,%ebx
404684:	77 2a                	ja     0x4046b0
404686:	8b fe                	mov    %esi,%edi
404688:	83 f9 10             	cmp    $0x10,%ecx
40468b:	72 02                	jb     0x40468f
40468d:	8b 3e                	mov    (%esi),%edi
40468f:	0f be 45 0c          	movsbl 0xc(%ebp),%eax
404693:	53                   	push   %ebx
404694:	50                   	push   %eax
404695:	57                   	push   %edi
404696:	89 5e 10             	mov    %ebx,0x10(%esi)
404699:	e8 52 48 00 00       	call   0x408ef0
40469e:	83 c4 0c             	add    $0xc,%esp
4046a1:	c6 04 1f 00          	movb   $0x0,(%edi,%ebx,1)
4046a5:	8b c6                	mov    %esi,%eax
4046a7:	5f                   	pop    %edi
4046a8:	5e                   	pop    %esi
4046a9:	5b                   	pop    %ebx
4046aa:	8b e5                	mov    %ebp,%esp
4046ac:	5d                   	pop    %ebp
4046ad:	c2 08 00             	ret    $0x8
4046b0:	81 fb ff ff ff 7f    	cmp    $0x7fffffff,%ebx
4046b6:	0f 87 d3 00 00 00    	ja     0x40478f
4046bc:	8b fb                	mov    %ebx,%edi
4046be:	83 cf 0f             	or     $0xf,%edi
4046c1:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
4046c7:	77 2f                	ja     0x4046f8
4046c9:	8b d1                	mov    %ecx,%edx
4046cb:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
4046d0:	d1 ea                	shr    $1,%edx
4046d2:	2b c2                	sub    %edx,%eax
4046d4:	3b c8                	cmp    %eax,%ecx
4046d6:	77 20                	ja     0x4046f8
4046d8:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
4046db:	3b f8                	cmp    %eax,%edi
4046dd:	0f 42 f8             	cmovb  %eax,%edi
4046e0:	8d 4f 01             	lea    0x1(%edi),%ecx
4046e3:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4046e9:	72 2f                	jb     0x40471a
4046eb:	8d 41 23             	lea    0x23(%ecx),%eax
4046ee:	3b c1                	cmp    %ecx,%eax
4046f0:	0f 86 9e 00 00 00    	jbe    0x404794
4046f6:	eb 0a                	jmp    0x404702
4046f8:	bf ff ff ff 7f       	mov    $0x7fffffff,%edi
4046fd:	b8 23 00 00 80       	mov    $0x80000023,%eax
404702:	50                   	push   %eax
404703:	e8 14 2f 00 00       	call   0x40761c
404708:	83 c4 04             	add    $0x4,%esp
40470b:	85 c0                	test   %eax,%eax