403438:	8b 45 ec             	mov    -0x14(%ebp),%eax
40343b:	89 7d dc             	mov    %edi,-0x24(%ebp)
40343e:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
403441:	8d 04 cf             	lea    (%edi,%ecx,8),%eax
403444:	8d 48 18             	lea    0x18(%eax),%ecx
403447:	89 45 e0             	mov    %eax,-0x20(%ebp)
40344a:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40344d:	8b c8                	mov    %eax,%ecx
40344f:	e8 1c 01 00 00       	call   0x403570
403454:	8b 0b                	mov    (%ebx),%ecx
403456:	8b 53 04             	mov    0x4(%ebx),%edx
403459:	8b 45 08             	mov    0x8(%ebp),%eax
40345c:	51                   	push   %ecx
40345d:	57                   	push   %edi
40345e:	3b c2                	cmp    %edx,%eax
403460:	74 13                	je     0x403475
403462:	8b d0                	mov    %eax,%edx
403464:	e8 d7 01 00 00       	call   0x403640
403469:	8b 53 04             	mov    0x4(%ebx),%edx
40346c:	83 c4 04             	add    $0x4,%esp
40346f:	8b 4d 08             	mov    0x8(%ebp),%ecx
403472:	ff 75 ec             	push   -0x14(%ebp)
403475:	e8 c6 01 00 00       	call   0x403640
40347a:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40347d:	83 c4 08             	add    $0x8,%esp
403480:	40                   	inc    %eax
403481:	8b cb                	mov    %ebx,%ecx
403483:	56                   	push   %esi
403484:	50                   	push   %eax
403485:	57                   	push   %edi
403486:	e8 55 00 00 00       	call   0x4034e0
40348b:	8b 45 e0             	mov    -0x20(%ebp),%eax
40348e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
403491:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
403498:	59                   	pop    %ecx
403499:	5f                   	pop    %edi
40349a:	5e                   	pop    %esi
40349b:	5b                   	pop    %ebx
40349c:	8b e5                	mov    %ebp,%esp
40349e:	5d                   	pop    %ebp
40349f:	c2 08 00             	ret    $0x8
4034a2:	51                   	push   %ecx
4034a3:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4034a6:	8b d1                	mov    %ecx,%edx
4034a8:	e8 23 fc ff ff       	call   0x4030d0
4034ad:	83 c4 04             	add    $0x4,%esp
4034b0:	ff 75 e8             	push   -0x18(%ebp)
4034b3:	ff 75 dc             	push   -0x24(%ebp)
4034b6:	e8 d5 fb ff ff       	call   0x403090
4034bb:	6a 00                	push   $0x0
4034bd:	6a 00                	push   $0x0
4034bf:	e8 ea 80 06 00       	call   0x46b5ae
4034c4:	e8 07 00 00 00       	call   0x4034d0
4034c9:	cc                   	int3
4034ca:	cc                   	int3
4034cb:	cc                   	int3
4034cc:	cc                   	int3
4034cd:	cc                   	int3
4034ce:	cc                   	int3
4034cf:	cc                   	int3
4034d0:	68 e0 f2 4a 00       	push   $0x4af2e0
4034d5:	e8 60 52 06 00       	call   0x46873a
4034da:	cc                   	int3
4034db:	cc                   	int3
4034dc:	cc                   	int3
4034dd:	cc                   	int3
4034de:	cc                   	int3
4034df:	cc                   	int3
4034e0:	55                   	push   %ebp
4034e1:	8b ec                	mov    %esp,%ebp
4034e3:	57                   	push   %edi
4034e4:	8b f9                	mov    %ecx,%edi
4034e6:	8b 0f                	mov    (%edi),%ecx
4034e8:	85 c9                	test   %ecx,%ecx
4034ea:	74 50                	je     0x40353c
4034ec:	8b 57 04             	mov    0x4(%edi),%edx
4034ef:	56                   	push   %esi
4034f0:	51                   	push   %ecx
4034f1:	e8 da fb ff ff       	call   0x4030d0
4034f6:	8b 4f 08             	mov    0x8(%edi),%ecx
4034f9:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
4034fe:	8b 37                	mov    (%edi),%esi
403500:	83 c4 04             	add    $0x4,%esp
403503:	2b ce                	sub    %esi,%ecx
403505:	f7 e9                	imul   %ecx
403507:	c1 fa 02             	sar    $0x2,%edx
40350a:	8b c2                	mov    %edx,%eax
40350c:	c1 e8 1f             	shr    $0x1f,%eax
40350f:	03 c2                	add    %edx,%eax
403511:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
403514:	c1 e1 03             	shl    $0x3,%ecx
403517:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40351d:	72 12                	jb     0x403531
40351f:	8b 56 fc             	mov    -0x4(%esi),%edx
403522:	83 c1 23             	add    $0x23,%ecx
403525:	2b f2                	sub    %edx,%esi
403527:	8d 46 fc             	lea    -0x4(%esi),%eax
40352a:	83 f8 1f             	cmp    $0x1f,%eax
40352d:	77 2f                	ja     0x40355e
40352f:	8b f2                	mov    %edx,%esi
403531:	51                   	push   %ecx
403532:	56                   	push   %esi
403533:	e8 d0 64 06 00       	call   0x469a08
403538:	83 c4 08             	add    $0x8,%esp
40353b:	5e                   	pop    %esi
40353c:	8b 4d 08             	mov    0x8(%ebp),%ecx
40353f:	8b 45 0c             	mov    0xc(%ebp),%eax
403542:	89 0f                	mov    %ecx,(%edi)
403544:	8d 04 40             	lea    (%eax,%eax,2),%eax
403547:	8d 04 c1             	lea    (%ecx,%eax,8),%eax
40354a:	89 47 04             	mov    %eax,0x4(%edi)
40354d:	8b 45 10             	mov    0x10(%ebp),%eax
403550:	8d 04 40             	lea    (%eax,%eax,2),%eax
403553:	8d 04 c1             	lea    (%ecx,%eax,8),%eax
403556:	89 47 08             	mov    %eax,0x8(%edi)
403559:	5f                   	pop    %edi
40355a:	5d                   	pop    %ebp
40355b:	c2 0c 00             	ret    $0xc
40355e:	e8 ce 60 07 00       	call   0x479631
403563:	cc                   	int3
403564:	cc                   	int3
403565:	cc                   	int3
403566:	cc                   	int3
403567:	cc                   	int3
403568:	cc                   	int3
403569:	cc                   	int3
40356a:	cc                   	int3
40356b:	cc                   	int3
40356c:	cc                   	int3
40356d:	cc                   	int3
40356e:	cc                   	int3
40356f:	cc                   	int3
403570:	55                   	push   %ebp
403571:	8b ec                	mov    %esp,%ebp
403573:	51                   	push   %ecx
403574:	53                   	push   %ebx
403575:	8b 5d 08             	mov    0x8(%ebp),%ebx
403578:	8b c3                	mov    %ebx,%eax
40357a:	56                   	push   %esi
40357b:	8b f1                	mov    %ecx,%esi
40357d:	89 5d fc             	mov    %ebx,-0x4(%ebp)
403580:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
403586:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
40358d:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
403594:	83 7b 14 08          	cmpl   $0x8,0x14(%ebx)
403598:	72 05                	jb     0x40359f
40359a:	8b 03                	mov    (%ebx),%eax
40359c:	89 45 fc             	mov    %eax,-0x4(%ebp)
40359f:	8b 5b 10             	mov    0x10(%ebx),%ebx
4035a2:	81 fb fe ff ff 7f    	cmp    $0x7ffffffe,%ebx
4035a8:	0f 87 81 00 00 00    	ja     0x40362f
4035ae:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
4035b5:	83 fb 08             	cmp    $0x8,%ebx
4035b8:	73 19                	jae    0x4035d3
4035ba:	6a 10                	push   $0x10
4035bc:	50                   	push   %eax
4035bd:	56                   	push   %esi
4035be:	89 5e 10             	mov    %ebx,0x10(%esi)
4035c1:	e8 5a 80 06 00       	call   0x46b620
4035c6:	83 c4 0c             	add    $0xc,%esp
4035c9:	8b c6                	mov    %esi,%eax
4035cb:	5e                   	pop    %esi
4035cc:	5b                   	pop    %ebx
4035cd:	8b e5                	mov    %ebp,%esp
4035cf:	5d                   	pop    %ebp
4035d0:	c2 04 00             	ret    $0x4
4035d3:	57                   	push   %edi
4035d4:	8b fb                	mov    %ebx,%edi
4035d6:	83 cf 07             	or     $0x7,%edi
4035d9:	81 ff fe ff ff 7f    	cmp    $0x7ffffffe,%edi
4035df:	76 07                	jbe    0x4035e8
4035e1:	bf fe ff ff 7f       	mov    $0x7ffffffe,%edi
4035e6:	eb 0a                	jmp    0x4035f2
4035e8:	b8 0a 00 00 00       	mov    $0xa,%eax
4035ed:	3b f8                	cmp    %eax,%edi
4035ef:	0f 42 f8             	cmovb  %eax,%edi
4035f2:	33 c9                	xor    %ecx,%ecx
4035f4:	8b c7                	mov    %edi,%eax
4035f6:	83 c0 01             	add    $0x1,%eax
4035f9:	0f 92 c1             	setb   %cl
4035fc:	f7 d9                	neg    %ecx
4035fe:	0b c8                	or     %eax,%ecx
403600:	51                   	push   %ecx
403601:	8b ce                	mov    %esi,%ecx
403603:	e8 08 eb ff ff       	call   0x402110
403608:	8d 0c 5d 02 00 00 00 	lea    0x2(,%ebx,2),%ecx
40360f:	89 06                	mov    %eax,(%esi)
403611:	51                   	push   %ecx
403612:	ff 75 fc             	push   -0x4(%ebp)
403615:	89 5e 10             	mov    %ebx,0x10(%esi)
403618:	50                   	push   %eax
403619:	89 7e 14             	mov    %edi,0x14(%esi)
40361c:	e8 ff 7f 06 00       	call   0x46b620
403621:	83 c4 0c             	add    $0xc,%esp
403624:	8b c6                	mov    %esi,%eax
403626:	5f                   	pop    %edi
403627:	5e                   	pop    %esi
403628:	5b                   	pop    %ebx
403629:	8b e5                	mov    %ebp,%esp
40362b:	5d                   	pop    %ebp
40362c:	c2 04 00             	ret    $0x4
40362f:	e8 ac dd ff ff       	call   0x4013e0
403634:	cc                   	int3
403635:	cc                   	int3
403636:	cc                   	int3
403637:	cc                   	int3
403638:	cc                   	int3
403639:	cc                   	int3
40363a:	cc                   	int3
40363b:	cc                   	int3
40363c:	cc                   	int3
40363d:	cc                   	int3
40363e:	cc                   	int3
40363f:	cc                   	int3
403640:	55                   	push   %ebp
403641:	8b ec                	mov    %esp,%ebp
403643:	56                   	push   %esi
403644:	8b 75 08             	mov    0x8(%ebp),%esi
403647:	3b ca                	cmp    %edx,%ecx
403649:	74 48                	je     0x403693
40364b:	8b c6                	mov    %esi,%eax
40364d:	2b c1                	sub    %ecx,%eax
40364f:	57                   	push   %edi
403650:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
403656:	33 ff                	xor    %edi,%edi
403658:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
40365f:	c7 44 08 14 00 00 00 	movl   $0x0,0x14(%eax,%ecx,1)
403666:	00
403667:	0f 10 01             	movups (%ecx),%xmm0
40366a:	0f 11 06             	movups %xmm0,(%esi)
40366d:	f3 0f 7e 41 10       	movq   0x10(%ecx),%xmm0
403672:	66 0f d6 46 10       	movq   %xmm0,0x10(%esi)
403677:	83 c6 18             	add    $0x18,%esi
40367a:	c7 41 10 00 00 00 00 	movl   $0x0,0x10(%ecx)
403681:	c7 41 14 07 00 00 00 	movl   $0x7,0x14(%ecx)
403688:	66 89 39             	mov    %di,(%ecx)
40368b:	83 c1 18             	add    $0x18,%ecx
40368e:	3b ca                	cmp    %edx,%ecx
403690:	75 be                	jne    0x403650
403692:	5f                   	pop    %edi
403693:	51                   	push   %ecx
403694:	8b d6                	mov    %esi,%edx
403696:	8b ce                	mov    %esi,%ecx
403698:	e8 33 fa ff ff       	call   0x4030d0
40369d:	83 c4 04             	add    $0x4,%esp
4036a0:	8b c6                	mov    %esi,%eax
4036a2:	5e                   	pop    %esi
4036a3:	5d                   	pop    %ebp
4036a4:	c3                   	ret
4036a5:	cc                   	int3
4036a6:	cc                   	int3
4036a7:	cc                   	int3
4036a8:	cc                   	int3
4036a9:	cc                   	int3
4036aa:	cc                   	int3
4036ab:	cc                   	int3
4036ac:	cc                   	int3
4036ad:	cc                   	int3
4036ae:	cc                   	int3
4036af:	cc                   	int3
4036b0:	8b 51 04             	mov    0x4(%ecx),%edx
4036b3:	51                   	push   %ecx
4036b4:	8b 09                	mov    (%ecx),%ecx
4036b6:	e8 15 fa ff ff       	call   0x4030d0
4036bb:	59                   	pop    %ecx
4036bc:	c3                   	ret
4036bd:	cc                   	int3
4036be:	cc                   	int3
4036bf:	cc                   	int3
4036c0:	68 f0 f2 4a 00       	push   $0x4af2f0
4036c5:	e8 70 50 06 00       	call   0x46873a
4036ca:	cc                   	int3
4036cb:	cc                   	int3
4036cc:	cc                   	int3
4036cd:	cc                   	int3
4036ce:	cc                   	int3
4036cf:	cc                   	int3
4036d0:	56                   	push   %esi
4036d1:	8b f1                	mov    %ecx,%esi
4036d3:	8b 4e 14             	mov    0x14(%esi),%ecx
4036d6:	83 f9 10             	cmp    $0x10,%ecx
4036d9:	72 27                	jb     0x403702
4036db:	8b 06                	mov    (%esi),%eax
4036dd:	41                   	inc    %ecx
4036de:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4036e4:	72 12                	jb     0x4036f8
4036e6:	8b 50 fc             	mov    -0x4(%eax),%edx
4036e9:	83 c1 23             	add    $0x23,%ecx
4036ec:	2b c2                	sub    %edx,%eax
4036ee:	83 c0 fc             	add    $0xfffffffc,%eax
4036f1:	83 f8 1f             	cmp    $0x1f,%eax
4036f4:	77 1f                	ja     0x403715
4036f6:	8b c2                	mov    %edx,%eax
4036f8:	51                   	push   %ecx
4036f9:	50                   	push   %eax
4036fa:	e8 09 63 06 00       	call   0x469a08
4036ff:	83 c4 08             	add    $0x8,%esp
403702:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
403709:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
403710:	c6 06 00             	movb   $0x0,(%esi)
403713:	5e                   	pop    %esi
403714:	c3                   	ret
403715:	e8 17 5f 07 00       	call   0x479631
40371a:	cc                   	int3
40371b:	cc                   	int3
40371c:	cc                   	int3
40371d:	cc                   	int3
40371e:	cc                   	int3
40371f:	cc                   	int3
403720:	55                   	push   %ebp
403721:	8b ec                	mov    %esp,%ebp
403723:	51                   	push   %ecx
403724:	53                   	push   %ebx
403725:	8b 5d 08             	mov    0x8(%ebp),%ebx
403728:	8b c3                	mov    %ebx,%eax
40372a:	56                   	push   %esi
40372b:	8b f1                	mov    %ecx,%esi
40372d:	89 5d fc             	mov    %ebx,-0x4(%ebp)
403730:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
403736:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
40373d:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
403744:	83 7b 14 10          	cmpl   $0x10,0x14(%ebx)
403748:	72 05                	jb     0x40374f
40374a:	8b 03                	mov    (%ebx),%eax
40374c:	89 45 fc             	mov    %eax,-0x4(%ebp)
40374f:	8b 5b 10             	mov    0x10(%ebx),%ebx
403752:	81 fb ff ff ff 7f    	cmp    $0x7fffffff,%ebx
403758:	0f 87 ab 00 00 00    	ja     0x403809
40375e:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
403765:	83 fb 10             	cmp    $0x10,%ebx
403768:	73 19                	jae    0x403783
40376a:	6a 10                	push   $0x10
40376c:	50                   	push   %eax
40376d:	56                   	push   %esi
40376e:	89 5e 10             	mov    %ebx,0x10(%esi)
403771:	e8 aa 7e 06 00       	call   0x46b620
403776:	83 c4 0c             	add    $0xc,%esp
403779:	8b c6                	mov    %esi,%eax
40377b:	5e                   	pop    %esi
40377c:	5b                   	pop    %ebx
40377d:	8b e5                	mov    %ebp,%esp
40377f:	5d                   	pop    %ebp
403780:	c2 04 00             	ret    $0x4
403783:	57                   	push   %edi
403784:	8b fb                	mov    %ebx,%edi
403786:	83 cf 0f             	or     $0xf,%edi
403789:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
40378f:	76 27                	jbe    0x4037b8
403791:	b9 00 00 00 80       	mov    $0x80000000,%ecx
403796:	bf ff ff ff 7f       	mov    $0x7fffffff,%edi