40933b:	8b 55 ec             	mov    -0x14(%ebp),%edx
40933e:	6a 01                	push   $0x1
409340:	6a 04                	push   $0x4
409342:	8b 02                	mov    (%edx),%eax
409344:	8b 48 04             	mov    0x4(%eax),%ecx
409347:	03 ca                	add    %edx,%ecx
409349:	e8 52 13 00 00       	call   0x40a6a0
40934e:	b8 54 93 40 00       	mov    $0x409354,%eax
409353:	c3                   	ret
409354:	8b 5d ec             	mov    -0x14(%ebp),%ebx
409357:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40935a:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
409361:	ba 04 00 00 00       	mov    $0x4,%edx
409366:	8b 03                	mov    (%ebx),%eax
409368:	6a 00                	push   $0x0
40936a:	8b 48 04             	mov    0x4(%eax),%ecx
40936d:	8b 44 19 0c          	mov    0xc(%ecx,%ebx,1),%eax
409371:	03 cb                	add    %ebx,%ecx
409373:	0b c6                	or     %esi,%eax
409375:	33 f6                	xor    %esi,%esi
409377:	39 71 38             	cmp    %esi,0x38(%ecx)
40937a:	0f 45 d6             	cmovne %esi,%edx
40937d:	0b d0                	or     %eax,%edx
40937f:	52                   	push   %edx
409380:	e8 ab b7 ff ff       	call   0x404b30
409385:	c7 45 fc 04 00 00 00 	movl   $0x4,-0x4(%ebp)
40938c:	e8 b9 20 01 00       	call   0x41b44a
409391:	84 c0                	test   %al,%al
409393:	75 08                	jne    0x40939d
409395:	8b 4d dc             	mov    -0x24(%ebp),%ecx
409398:	e8 93 22 00 00       	call   0x40b630
40939d:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
4093a1:	8b 4d dc             	mov    -0x24(%ebp),%ecx
4093a4:	8b 01                	mov    (%ecx),%eax
4093a6:	8b 40 04             	mov    0x4(%eax),%eax
4093a9:	8b 7c 08 38          	mov    0x38(%eax,%ecx,1),%edi
4093ad:	85 ff                	test   %edi,%edi
4093af:	74 11                	je     0x4093c2
4093b1:	8b 07                	mov    (%edi),%eax
4093b3:	8b 70 08             	mov    0x8(%eax),%esi
4093b6:	8b ce                	mov    %esi,%ecx
4093b8:	ff 15 3c f2 43 00    	call   *0x43f23c
4093be:	8b cf                	mov    %edi,%ecx
4093c0:	ff d6                	call   *%esi
4093c2:	8b c3                	mov    %ebx,%eax
4093c4:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4093c7:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4093ce:	59                   	pop    %ecx
4093cf:	5f                   	pop    %edi
4093d0:	5e                   	pop    %esi
4093d1:	5b                   	pop    %ebx
4093d2:	8b e5                	mov    %ebp,%esp
4093d4:	5d                   	pop    %ebp
4093d5:	c2 04 00             	ret    $0x4
4093d8:	cc                   	int3
4093d9:	cc                   	int3
4093da:	cc                   	int3
4093db:	cc                   	int3
4093dc:	cc                   	int3
4093dd:	cc                   	int3
4093de:	cc                   	int3
4093df:	cc                   	int3
4093e0:	8b 41 e8             	mov    -0x18(%ecx),%eax
4093e3:	8b 40 04             	mov    0x4(%eax),%eax
4093e6:	c7 44 08 e8 c8 dc 44 	movl   $0x44dcc8,-0x18(%eax,%ecx,1)
4093ed:	00
4093ee:	8b 41 e8             	mov    -0x18(%ecx),%eax
4093f1:	8b 50 04             	mov    0x4(%eax),%edx
4093f4:	8d 42 e8             	lea    -0x18(%edx),%eax
4093f7:	89 44 0a e4          	mov    %eax,-0x1c(%edx,%ecx,1)
4093fb:	c3                   	ret
4093fc:	cc                   	int3
4093fd:	cc                   	int3
4093fe:	cc                   	int3
4093ff:	cc                   	int3
409400:	55                   	push   %ebp
409401:	8b ec                	mov    %esp,%ebp
409403:	6a ff                	push   $0xffffffff
409405:	68 00 da 43 00       	push   $0x43da00
40940a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
409410:	50                   	push   %eax
409411:	a1 14 40 45 00       	mov    0x454014,%eax
409416:	33 c5                	xor    %ebp,%eax
409418:	50                   	push   %eax
409419:	8d 45 f4             	lea    -0xc(%ebp),%eax
40941c:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
409422:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
409429:	51                   	push   %ecx
40942a:	c7 01 f0 dc 44 00    	movl   $0x44dcf0,(%ecx)
409430:	e8 4d 20 01 00       	call   0x41b482
409435:	83 c4 04             	add    $0x4,%esp
409438:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40943b:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
409442:	59                   	pop    %ecx
409443:	8b e5                	mov    %ebp,%esp
409445:	5d                   	pop    %ebp
409446:	c3                   	ret
409447:	cc                   	int3
409448:	cc                   	int3
409449:	cc                   	int3
40944a:	cc                   	int3
40944b:	cc                   	int3
40944c:	cc                   	int3
40944d:	cc                   	int3
40944e:	cc                   	int3
40944f:	cc                   	int3
409450:	56                   	push   %esi
409451:	8b f1                	mov    %ecx,%esi
409453:	8b 06                	mov    (%esi),%eax
409455:	85 c0                	test   %eax,%eax
409457:	74 09                	je     0x409462
409459:	50                   	push   %eax
40945a:	e8 ee cb 01 00       	call   0x42604d
40945f:	83 c4 04             	add    $0x4,%esp
409462:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
409468:	5e                   	pop    %esi
409469:	c3                   	ret
40946a:	cc                   	int3
40946b:	cc                   	int3
40946c:	cc                   	int3
40946d:	cc                   	int3
40946e:	cc                   	int3
40946f:	cc                   	int3
409470:	57                   	push   %edi
409471:	8b f9                	mov    %ecx,%edi
409473:	8b 0f                	mov    (%edi),%ecx
409475:	85 c9                	test   %ecx,%ecx
409477:	74 64                	je     0x4094dd
409479:	8b 57 04             	mov    0x4(%edi),%edx
40947c:	56                   	push   %esi
40947d:	51                   	push   %ecx
40947e:	e8 3d 2e 00 00       	call   0x40c2c0
409483:	8b 4f 08             	mov    0x8(%edi),%ecx
409486:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
40948b:	8b 37                	mov    (%edi),%esi
40948d:	83 c4 04             	add    $0x4,%esp
409490:	2b ce                	sub    %esi,%ecx
409492:	f7 e9                	imul   %ecx
409494:	c1 fa 02             	sar    $0x2,%edx
409497:	8b c2                	mov    %edx,%eax
409499:	c1 e8 1f             	shr    $0x1f,%eax
40949c:	03 c2                	add    %edx,%eax
40949e:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
4094a1:	c1 e1 03             	shl    $0x3,%ecx
4094a4:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4094aa:	72 12                	jb     0x4094be
4094ac:	8b 56 fc             	mov    -0x4(%esi),%edx
4094af:	83 c1 23             	add    $0x23,%ecx
4094b2:	2b f2                	sub    %edx,%esi
4094b4:	8d 46 fc             	lea    -0x4(%esi),%eax
4094b7:	83 f8 1f             	cmp    $0x1f,%eax
4094ba:	77 23                	ja     0x4094df
4094bc:	8b f2                	mov    %edx,%esi
4094be:	51                   	push   %ecx
4094bf:	56                   	push   %esi
4094c0:	e8 49 24 01 00       	call   0x41b90e
4094c5:	83 c4 08             	add    $0x8,%esp
4094c8:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
4094ce:	c7 47 04 00 00 00 00 	movl   $0x0,0x4(%edi)
4094d5:	c7 47 08 00 00 00 00 	movl   $0x0,0x8(%edi)
4094dc:	5e                   	pop    %esi
4094dd:	5f                   	pop    %edi
4094de:	c3                   	ret
4094df:	e8 9b 75 01 00       	call   0x420a7f
4094e4:	cc                   	int3
4094e5:	cc                   	int3
4094e6:	cc                   	int3
4094e7:	cc                   	int3
4094e8:	cc                   	int3
4094e9:	cc                   	int3
4094ea:	cc                   	int3
4094eb:	cc                   	int3
4094ec:	cc                   	int3
4094ed:	cc                   	int3
4094ee:	cc                   	int3
4094ef:	cc                   	int3
4094f0:	55                   	push   %ebp
4094f1:	8b ec                	mov    %esp,%ebp
4094f3:	56                   	push   %esi
4094f4:	57                   	push   %edi
4094f5:	8b 7d 08             	mov    0x8(%ebp),%edi
4094f8:	8b f1                	mov    %ecx,%esi
4094fa:	3b f7                	cmp    %edi,%esi
4094fc:	74 65                	je     0x409563
4094fe:	8b 4e 14             	mov    0x14(%esi),%ecx
409501:	83 f9 08             	cmp    $0x8,%ecx
409504:	72 2d                	jb     0x409533
409506:	8b 06                	mov    (%esi),%eax
409508:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40950f:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
409515:	72 12                	jb     0x409529
409517:	8b 50 fc             	mov    -0x4(%eax),%edx
40951a:	83 c1 23             	add    $0x23,%ecx
40951d:	2b c2                	sub    %edx,%eax
40951f:	83 c0 fc             	add    $0xfffffffc,%eax
409522:	83 f8 1f             	cmp    $0x1f,%eax
409525:	77 44                	ja     0x40956b
409527:	8b c2                	mov    %edx,%eax
409529:	51                   	push   %ecx
40952a:	50                   	push   %eax
40952b:	e8 de 23 01 00       	call   0x41b90e
409530:	83 c4 08             	add    $0x8,%esp
409533:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
40953a:	33 c0                	xor    %eax,%eax
40953c:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
409543:	66 89 06             	mov    %ax,(%esi)
409546:	0f 10 07             	movups (%edi),%xmm0
409549:	0f 11 06             	movups %xmm0,(%esi)
40954c:	f3 0f 7e 47 10       	movq   0x10(%edi),%xmm0
409551:	66 0f d6 46 10       	movq   %xmm0,0x10(%esi)
409556:	89 47 10             	mov    %eax,0x10(%edi)
409559:	c7 47 14 07 00 00 00 	movl   $0x7,0x14(%edi)
409560:	66 89 07             	mov    %ax,(%edi)
409563:	5f                   	pop    %edi
409564:	8b c6                	mov    %esi,%eax
409566:	5e                   	pop    %esi
409567:	5d                   	pop    %ebp
409568:	c2 04 00             	ret    $0x4
40956b:	e8 0f 75 01 00       	call   0x420a7f
409570:	cc                   	int3
409571:	cc                   	int3
409572:	cc                   	int3
409573:	cc                   	int3
409574:	cc                   	int3
409575:	cc                   	int3
409576:	cc                   	int3
409577:	cc                   	int3
409578:	cc                   	int3
409579:	cc                   	int3
40957a:	cc                   	int3
40957b:	cc                   	int3
40957c:	cc                   	int3
40957d:	cc                   	int3
40957e:	cc                   	int3
40957f:	cc                   	int3
409580:	56                   	push   %esi
409581:	8b f1                	mov    %ecx,%esi
409583:	8b 4e 14             	mov    0x14(%esi),%ecx
409586:	83 f9 10             	cmp    $0x10,%ecx
409589:	72 27                	jb     0x4095b2
40958b:	8b 06                	mov    (%esi),%eax
40958d:	41                   	inc    %ecx
40958e:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
409594:	72 12                	jb     0x4095a8
409596:	8b 50 fc             	mov    -0x4(%eax),%edx
409599:	83 c1 23             	add    $0x23,%ecx
40959c:	2b c2                	sub    %edx,%eax
40959e:	83 c0 fc             	add    $0xfffffffc,%eax
4095a1:	83 f8 1f             	cmp    $0x1f,%eax
4095a4:	77 1f                	ja     0x4095c5
4095a6:	8b c2                	mov    %edx,%eax
4095a8:	51                   	push   %ecx
4095a9:	50                   	push   %eax
4095aa:	e8 5f 23 01 00       	call   0x41b90e
4095af:	83 c4 08             	add    $0x8,%esp
4095b2:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
4095b9:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
4095c0:	c6 06 00             	movb   $0x0,(%esi)
4095c3:	5e                   	pop    %esi
4095c4:	c3                   	ret
4095c5:	e8 b5 74 01 00       	call   0x420a7f
4095ca:	cc                   	int3
4095cb:	cc                   	int3
4095cc:	cc                   	int3
4095cd:	cc                   	int3
4095ce:	cc                   	int3
4095cf:	cc                   	int3
4095d0:	55                   	push   %ebp
4095d1:	8b ec                	mov    %esp,%ebp
4095d3:	51                   	push   %ecx
4095d4:	53                   	push   %ebx
4095d5:	8b 5d 08             	mov    0x8(%ebp),%ebx
4095d8:	8b c3                	mov    %ebx,%eax
4095da:	56                   	push   %esi
4095db:	8b f1                	mov    %ecx,%esi
4095dd:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4095e0:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
4095e6:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
4095ed:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
4095f4:	83 7b 14 10          	cmpl   $0x10,0x14(%ebx)
4095f8:	72 05                	jb     0x4095ff
4095fa:	8b 03                	mov    (%ebx),%eax
4095fc:	89 45 fc             	mov    %eax,-0x4(%ebp)
4095ff:	8b 5b 10             	mov    0x10(%ebx),%ebx
409602:	81 fb ff ff ff 7f    	cmp    $0x7fffffff,%ebx
409608:	0f 87 ab 00 00 00    	ja     0x4096b9
40960e:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
409615:	83 fb 10             	cmp    $0x10,%ebx
409618:	73 19                	jae    0x409633
40961a:	6a 10                	push   $0x10
40961c:	50                   	push   %eax
40961d:	56                   	push   %esi
40961e:	89 5e 10             	mov    %ebx,0x10(%esi)
409621:	e8 2a 3e 01 00       	call   0x41d450
409626:	83 c4 0c             	add    $0xc,%esp
409629:	8b c6                	mov    %esi,%eax
40962b:	5e                   	pop    %esi
40962c:	5b                   	pop    %ebx
40962d:	8b e5                	mov    %ebp,%esp
40962f:	5d                   	pop    %ebp
409630:	c2 04 00             	ret    $0x4
409633:	57                   	push   %edi
409634:	8b fb                	mov    %ebx,%edi
409636:	83 cf 0f             	or     $0xf,%edi
409639:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
40963f:	76 27                	jbe    0x409668
409641:	b9 00 00 00 80       	mov    $0x80000000,%ecx
409646:	bf ff ff ff 7f       	mov    $0x7fffffff,%edi
40964b:	83 c1 23             	add    $0x23,%ecx
40964e:	51                   	push   %ecx
40964f:	e8 8a 22 01 00       	call   0x41b8de
409654:	8b c8                	mov    %eax,%ecx
409656:	83 c4 04             	add    $0x4,%esp
409659:	85 c9                	test   %ecx,%ecx
40965b:	74 66                	je     0x4096c3
40965d:	8d 41 23             	lea    0x23(%ecx),%eax
409660:	83 e0 e0             	and    $0xffffffe0,%eax
409663:	89 48 fc             	mov    %ecx,-0x4(%eax)
409666:	eb 2e                	jmp    0x409696
409668:	b8 16 00 00 00       	mov    $0x16,%eax
40966d:	3b f8                	cmp    %eax,%edi
40966f:	0f 42 f8             	cmovb  %eax,%edi
409672:	8d 47 01             	lea    0x1(%edi),%eax
409675:	3d 00 10 00 00       	cmp    $0x1000,%eax
40967a:	72 09                	jb     0x409685
40967c:	8d 48 23             	lea    0x23(%eax),%ecx
40967f:	3b c8                	cmp    %eax,%ecx
409681:	76 3b                	jbe    0x4096be
409683:	eb c9                	jmp    0x40964e
409685:	85 c0                	test   %eax,%eax
409687:	74 0b                	je     0x409694
409689:	50                   	push   %eax
40968a:	e8 4f 22 01 00       	call   0x41b8de
40968f:	83 c4 04             	add    $0x4,%esp
409692:	eb 02                	jmp    0x409696
409694:	33 c0                	xor    %eax,%eax
409696:	8d 4b 01             	lea    0x1(%ebx),%ecx
409699:	89 06                	mov    %eax,(%esi)
40969b:	51                   	push   %ecx
40969c:	ff 75 fc             	push   -0x4(%ebp)
40969f:	89 5e 10             	mov    %ebx,0x10(%esi)
4096a2:	50                   	push   %eax
4096a3:	89 7e 14             	mov    %edi,0x14(%esi)
4096a6:	e8 a5 3d 01 00       	call   0x41d450
4096ab:	83 c4 0c             	add    $0xc,%esp
4096ae:	8b c6                	mov    %esi,%eax
4096b0:	5f                   	pop    %edi
4096b1:	5e                   	pop    %esi
4096b2:	5b                   	pop    %ebx
4096b3:	8b e5                	mov    %ebp,%esp