41a3ec:	83 c0 fc             	add    $0xfffffffc,%eax
41a3ef:	83 f8 1f             	cmp    $0x1f,%eax
41a3f2:	0f 87 51 02 00 00    	ja     0x41a649
41a3f8:	51                   	push   %ecx
41a3f9:	52                   	push   %edx
41a3fa:	e8 09 f6 04 00       	call   0x469a08
41a3ff:	83 c4 08             	add    $0x8,%esp
41a402:	6a 00                	push   $0x0
41a404:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
41a407:	e8 14 06 00 00       	call   0x41aa20
41a40c:	8b 07                	mov    (%edi),%eax
41a40e:	8d 4d 8c             	lea    -0x74(%ebp),%ecx
41a411:	51                   	push   %ecx
41a412:	8b 70 1c             	mov    0x1c(%eax),%esi
41a415:	8b ce                	mov    %esi,%ecx
41a417:	ff 15 d4 e2 49 00    	call   *0x49e2d4
41a41d:	8b cf                	mov    %edi,%ecx
41a41f:	ff d6                	call   *%esi
41a421:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
41a425:	8d 45 8c             	lea    -0x74(%ebp),%eax
41a428:	83 7d a0 08          	cmpl   $0x8,-0x60(%ebp)
41a42c:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
41a42f:	ff 75 9c             	push   -0x64(%ebp)
41a432:	0f 43 45 8c          	cmovae -0x74(%ebp),%eax
41a436:	50                   	push   %eax
41a437:	e8 d4 8a fe ff       	call   0x402f10
41a43c:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
41a440:	8b 4d a0             	mov    -0x60(%ebp),%ecx
41a443:	83 f9 08             	cmp    $0x8,%ecx
41a446:	72 32                	jb     0x41a47a
41a448:	8b 55 8c             	mov    -0x74(%ebp),%edx
41a44b:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
41a452:	8b c2                	mov    %edx,%eax
41a454:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
41a45a:	72 14                	jb     0x41a470
41a45c:	8b 50 fc             	mov    -0x4(%eax),%edx
41a45f:	83 c1 23             	add    $0x23,%ecx
41a462:	2b c2                	sub    %edx,%eax
41a464:	83 c0 fc             	add    $0xfffffffc,%eax
41a467:	83 f8 1f             	cmp    $0x1f,%eax
41a46a:	0f 87 de 01 00 00    	ja     0x41a64e
41a470:	51                   	push   %ecx
41a471:	52                   	push   %edx
41a472:	e8 91 f5 04 00       	call   0x469a08
41a477:	83 c4 08             	add    $0x8,%esp
41a47a:	83 7d c8 08          	cmpl   $0x8,-0x38(%ebp)
41a47e:	8d 45 b4             	lea    -0x4c(%ebp),%eax
41a481:	6a 01                	push   $0x1
41a483:	0f 43 45 b4          	cmovae -0x4c(%ebp),%eax
41a487:	50                   	push   %eax
41a488:	6a 02                	push   $0x2
41a48a:	8d 45 14             	lea    0x14(%ebp),%eax
41a48d:	50                   	push   %eax
41a48e:	8d 45 0c             	lea    0xc(%ebp),%eax
41a491:	50                   	push   %eax
41a492:	e8 b9 31 00 00       	call   0x41d650
41a497:	83 c4 14             	add    $0x14,%esp
41a49a:	83 e8 00             	sub    $0x0,%eax
41a49d:	74 18                	je     0x41a4b7
41a49f:	83 e8 01             	sub    $0x1,%eax
41a4a2:	74 0e                	je     0x41a4b2
41a4a4:	8b 45 ac             	mov    -0x54(%ebp),%eax
41a4a7:	c6 03 00             	movb   $0x0,(%ebx)
41a4aa:	c7 00 02 00 00 00    	movl   $0x2,(%eax)
41a4b0:	eb 08                	jmp    0x41a4ba
41a4b2:	c6 03 01             	movb   $0x1,(%ebx)
41a4b5:	eb 03                	jmp    0x41a4ba
41a4b7:	c6 03 00             	movb   $0x0,(%ebx)
41a4ba:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
41a4c1:	8b 4d c8             	mov    -0x38(%ebp),%ecx
41a4c4:	83 f9 08             	cmp    $0x8,%ecx
41a4c7:	72 32                	jb     0x41a4fb
41a4c9:	8b 55 b4             	mov    -0x4c(%ebp),%edx
41a4cc:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
41a4d3:	8b c2                	mov    %edx,%eax
41a4d5:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
41a4db:	72 14                	jb     0x41a4f1
41a4dd:	8b 50 fc             	mov    -0x4(%eax),%edx
41a4e0:	83 c1 23             	add    $0x23,%ecx
41a4e3:	2b c2                	sub    %edx,%eax
41a4e5:	83 c0 fc             	add    $0xfffffffc,%eax
41a4e8:	83 f8 1f             	cmp    $0x1f,%eax
41a4eb:	0f 87 62 01 00 00    	ja     0x41a653
41a4f1:	51                   	push   %ecx
41a4f2:	52                   	push   %edx
41a4f3:	e8 10 f5 04 00       	call   0x469a08
41a4f8:	83 c4 08             	add    $0x8,%esp
41a4fb:	8b 5d ac             	mov    -0x54(%ebp),%ebx
41a4fe:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
41a502:	75 08                	jne    0x41a50c
41a504:	8d 4d 0c             	lea    0xc(%ebp),%ecx
41a507:	e8 94 2e 00 00       	call   0x41d3a0
41a50c:	80 7d 18 00          	cmpb   $0x0,0x18(%ebp)
41a510:	75 08                	jne    0x41a51a
41a512:	8d 4d 14             	lea    0x14(%ebp),%ecx
41a515:	e8 86 2e 00 00       	call   0x41d3a0
41a51a:	8b 45 0c             	mov    0xc(%ebp),%eax
41a51d:	85 c0                	test   %eax,%eax
41a51f:	0f 85 f0 00 00 00    	jne    0x41a615
41a525:	39 45 14             	cmp    %eax,0x14(%ebp)
41a528:	0f 84 ed 00 00 00    	je     0x41a61b
41a52e:	e9 eb 00 00 00       	jmp    0x41a61e
41a533:	ff 15 d4 e2 49 00    	call   *0x49e2d4
41a539:	8b cf                	mov    %edi,%ecx
41a53b:	ff d6                	call   *%esi
41a53d:	c7 45 fc 04 00 00 00 	movl   $0x4,-0x4(%ebp)
41a544:	8d 45 a4             	lea    -0x5c(%ebp),%eax
41a547:	50                   	push   %eax
41a548:	8b 45 cc             	mov    -0x34(%ebp),%eax
41a54b:	ff 70 14             	push   0x14(%eax)
41a54e:	8d 45 14             	lea    0x14(%ebp),%eax
41a551:	50                   	push   %eax
41a552:	8d 45 0c             	lea    0xc(%ebp),%eax
41a555:	50                   	push   %eax
41a556:	8d 45 d0             	lea    -0x30(%ebp),%eax
41a559:	50                   	push   %eax
41a55a:	ff 75 b0             	push   -0x50(%ebp)
41a55d:	e8 6e 14 00 00       	call   0x41b9d0
41a562:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
41a569:	83 c4 18             	add    $0x18,%esp
41a56c:	8b 7d a8             	mov    -0x58(%ebp),%edi
41a56f:	89 45 cc             	mov    %eax,-0x34(%ebp)
41a572:	85 ff                	test   %edi,%edi
41a574:	74 2c                	je     0x41a5a2
41a576:	8b 07                	mov    (%edi),%eax
41a578:	8b 70 08             	mov    0x8(%eax),%esi
41a57b:	8b ce                	mov    %esi,%ecx
41a57d:	ff 15 d4 e2 49 00    	call   *0x49e2d4
41a583:	8b cf                	mov    %edi,%ecx
41a585:	ff d6                	call   *%esi
41a587:	8b f8                	mov    %eax,%edi
41a589:	85 ff                	test   %edi,%edi
41a58b:	74 12                	je     0x41a59f
41a58d:	8b 07                	mov    (%edi),%eax
41a58f:	6a 01                	push   $0x1
41a591:	8b 30                	mov    (%eax),%esi
41a593:	8b ce                	mov    %esi,%ecx
41a595:	ff 15 d4 e2 49 00    	call   *0x49e2d4
41a59b:	8b cf                	mov    %edi,%ecx
41a59d:	ff d6                	call   *%esi
41a59f:	8b 45 cc             	mov    -0x34(%ebp),%eax
41a5a2:	80 7d d0 00          	cmpb   $0x0,-0x30(%ebp)
41a5a6:	75 11                	jne    0x41a5b9
41a5a8:	c6 03 00             	movb   $0x0,(%ebx)
41a5ab:	8b 5d ac             	mov    -0x54(%ebp),%ebx
41a5ae:	c7 03 02 00 00 00    	movl   $0x2,(%ebx)
41a5b4:	e9 45 ff ff ff       	jmp    0x41a4fe
41a5b9:	8d 4d cc             	lea    -0x34(%ebp),%ecx
41a5bc:	51                   	push   %ecx
41a5bd:	50                   	push   %eax
41a5be:	8d 45 b0             	lea    -0x50(%ebp),%eax
41a5c1:	50                   	push   %eax
41a5c2:	8d 45 d0             	lea    -0x30(%ebp),%eax
41a5c5:	50                   	push   %eax
41a5c6:	e8 a8 eb 04 00       	call   0x469173
41a5cb:	8b c8                	mov    %eax,%ecx
41a5cd:	83 c4 10             	add    $0x10,%esp
41a5d0:	8d 45 d0             	lea    -0x30(%ebp),%eax
41a5d3:	39 45 b0             	cmp    %eax,-0x50(%ebp)
41a5d6:	74 2c                	je     0x41a604
41a5d8:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
41a5dc:	75 26                	jne    0x41a604
41a5de:	85 c9                	test   %ecx,%ecx
41a5e0:	0f 95 c0             	setne  %al
41a5e3:	88 03                	mov    %al,(%ebx)
41a5e5:	85 c9                	test   %ecx,%ecx
41a5e7:	0f 84 0e ff ff ff    	je     0x41a4fb
41a5ed:	8b 5d ac             	mov    -0x54(%ebp),%ebx
41a5f0:	83 f9 01             	cmp    $0x1,%ecx
41a5f3:	0f 84 05 ff ff ff    	je     0x41a4fe
41a5f9:	c7 03 02 00 00 00    	movl   $0x2,(%ebx)
41a5ff:	e9 fa fe ff ff       	jmp    0x41a4fe
41a604:	c6 03 01             	movb   $0x1,(%ebx)
41a607:	8b 5d ac             	mov    -0x54(%ebp),%ebx
41a60a:	c7 03 02 00 00 00    	movl   $0x2,(%ebx)
41a610:	e9 e9 fe ff ff       	jmp    0x41a4fe
41a615:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
41a619:	74 03                	je     0x41a61e
41a61b:	83 0b 01             	orl    $0x1,(%ebx)
41a61e:	8b 55 88             	mov    -0x78(%ebp),%edx
41a621:	8b 4d 10             	mov    0x10(%ebp),%ecx
41a624:	89 02                	mov    %eax,(%edx)
41a626:	8b c2                	mov    %edx,%eax
41a628:	89 4a 04             	mov    %ecx,0x4(%edx)
41a62b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
41a62e:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
41a635:	59                   	pop    %ecx
41a636:	5f                   	pop    %edi
41a637:	5e                   	pop    %esi
41a638:	5b                   	pop    %ebx
41a639:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41a63c:	33 cd                	xor    %ebp,%ecx
41a63e:	e8 87 f3 04 00       	call   0x4699ca
41a643:	8b e5                	mov    %ebp,%esp
41a645:	5d                   	pop    %ebp
41a646:	c2 20 00             	ret    $0x20
41a649:	e8 e3 ef 05 00       	call   0x479631
41a64e:	e8 de ef 05 00       	call   0x479631
41a653:	e8 d9 ef 05 00       	call   0x479631
41a658:	cc                   	int3
41a659:	cc                   	int3
41a65a:	cc                   	int3
41a65b:	cc                   	int3
41a65c:	cc                   	int3
41a65d:	cc                   	int3
41a65e:	cc                   	int3
41a65f:	cc                   	int3
41a660:	53                   	push   %ebx
41a661:	8b dc                	mov    %esp,%ebx
41a663:	83 ec 08             	sub    $0x8,%esp
41a666:	83 e4 f8             	and    $0xfffffff8,%esp
41a669:	83 c4 04             	add    $0x4,%esp
41a66c:	55                   	push   %ebp
41a66d:	8b 6b 04             	mov    0x4(%ebx),%ebp
41a670:	89 6c 24 04          	mov    %ebp,0x4(%esp)
41a674:	8b ec                	mov    %esp,%ebp
41a676:	6a ff                	push   $0xffffffff
41a678:	68 31 90 49 00       	push   $0x499031
41a67d:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
41a683:	50                   	push   %eax
41a684:	53                   	push   %ebx
41a685:	81 ec e8 00 00 00    	sub    $0xe8,%esp
41a68b:	a1 14 40 4c 00       	mov    0x4c4014,%eax
41a690:	33 c5                	xor    %ebp,%eax
41a692:	89 45 ec             	mov    %eax,-0x14(%ebp)
41a695:	56                   	push   %esi
41a696:	57                   	push   %edi
41a697:	50                   	push   %eax
41a698:	8d 45 f4             	lea    -0xc(%ebp),%eax
41a69b:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
41a6a1:	8b 43 08             	mov    0x8(%ebx),%eax
41a6a4:	8b 7b 0c             	mov    0xc(%ebx),%edi
41a6a7:	89 85 68 ff ff ff    	mov    %eax,-0x98(%ebp)
41a6ad:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
41a6b4:	85 c0                	test   %eax,%eax
41a6b6:	0f 84 90 02 00 00    	je     0x41a94c
41a6bc:	83 38 00             	cmpl   $0x0,(%eax)
41a6bf:	0f 85 87 02 00 00    	jne    0x41a94c
41a6c5:	6a 18                	push   $0x18
41a6c7:	e8 0c f3 04 00       	call   0x4699d8
41a6cc:	8b f0                	mov    %eax,%esi
41a6ce:	83 c4 04             	add    $0x4,%esp
41a6d1:	89 75 dc             	mov    %esi,-0x24(%ebp)
41a6d4:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
41a6db:	0f 57 c0             	xorps  %xmm0,%xmm0
41a6de:	0f 11 06             	movups %xmm0,(%esi)
41a6e1:	66 0f d6 46 10       	movq   %xmm0,0x10(%esi)
41a6e6:	8b 47 04             	mov    0x4(%edi),%eax
41a6e9:	85 c0                	test   %eax,%eax
41a6eb:	74 0c                	je     0x41a6f9
41a6ed:	8b 78 18             	mov    0x18(%eax),%edi
41a6f0:	85 ff                	test   %edi,%edi
41a6f2:	75 0a                	jne    0x41a6fe
41a6f4:	8d 78 1c             	lea    0x1c(%eax),%edi
41a6f7:	eb 05                	jmp    0x41a6fe
41a6f9:	bf ca 0c 4b 00       	mov    $0x4b0cca,%edi
41a6fe:	6a 00                	push   $0x0
41a700:	8d 8d 6c ff ff ff    	lea    -0x94(%ebp),%ecx
41a706:	e8 bc e0 04 00       	call   0x4687c7
41a70b:	c7 85 70 ff ff ff 00 	movl   $0x0,-0x90(%ebp)
41a712:	00 00 00
41a715:	c6 85 74 ff ff ff 00 	movb   $0x0,-0x8c(%ebp)
41a71c:	c7 85 78 ff ff ff 00 	movl   $0x0,-0x88(%ebp)
41a723:	00 00 00
41a726:	c6 85 7c ff ff ff 00 	movb   $0x0,-0x84(%ebp)
41a72d:	33 c0                	xor    %eax,%eax
41a72f:	c7 45 80 00 00 00 00 	movl   $0x0,-0x80(%ebp)
41a736:	66 89 45 84          	mov    %ax,-0x7c(%ebp)
41a73a:	89 45 88             	mov    %eax,-0x78(%ebp)
41a73d:	66 89 45 8c          	mov    %ax,-0x74(%ebp)
41a741:	89 45 90             	mov    %eax,-0x70(%ebp)
41a744:	88 45 94             	mov    %al,-0x6c(%ebp)
41a747:	89 45 98             	mov    %eax,-0x68(%ebp)
41a74a:	88 45 9c             	mov    %al,-0x64(%ebp)
41a74d:	c6 45 fc 07          	movb   $0x7,-0x4(%ebp)
41a751:	85 ff                	test   %edi,%edi
41a753:	0f 84 16 02 00 00    	je     0x41a96f
41a759:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
41a75f:	57                   	push   %edi
41a760:	50                   	push   %eax
41a761:	e8 4e e3 04 00       	call   0x468ab4
41a766:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%ebp)
41a76d:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
41a774:	c7 45 fc 09 00 00 00 	movl   $0x9,-0x4(%ebp)
41a77b:	c7 06 e8 06 4a 00    	movl   $0x4a06e8,(%esi)
41a781:	e8 5f 53 06 00       	call   0x47fae5
41a786:	8d 85 38 ff ff ff    	lea    -0xc8(%ebp),%eax
41a78c:	50                   	push   %eax
41a78d:	e8 e3 e7 04 00       	call   0x468f75
41a792:	83 c4 0c             	add    $0xc,%esp
41a795:	89 75 d8             	mov    %esi,-0x28(%ebp)
41a798:	0f 10 00             	movups (%eax),%xmm0
41a79b:	0f 11 45 a0          	movups %xmm0,-0x60(%ebp)
41a79f:	0f 10 40 10          	movups 0x10(%eax),%xmm0
41a7a3:	0f 11 45 b0          	movups %xmm0,-0x50(%ebp)
41a7a7:	f3 0f 7e 40 20       	movq   0x20(%eax),%xmm0
41a7ac:	66 0f d6 45 c0       	movq   %xmm0,-0x40(%ebp)
41a7b1:	8b 40 28             	mov    0x28(%eax),%eax
41a7b4:	89 45 c8             	mov    %eax,-0x38(%ebp)
41a7b7:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
41a7be:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
41a7c5:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
41a7cc:	8d 85 08 ff ff ff    	lea    -0xf8(%ebp),%eax
41a7d2:	c6 45 fc 0a          	movb   $0xa,-0x4(%ebp)
41a7d6:	50                   	push   %eax
41a7d7:	e8 99 e7 04 00       	call   0x468f75
41a7dc:	83 c4 04             	add    $0x4,%esp
41a7df:	6a 01                	push   $0x1
41a7e1:	6a 01                	push   $0x1
41a7e3:	e8 99 fd 05 00       	call   0x47a581
41a7e8:	83 c4 08             	add    $0x8,%esp
41a7eb:	85 c0                	test   %eax,%eax
41a7ed:	0f 84 86 01 00 00    	je     0x41a979
41a7f3:	c6 00 00             	movb   $0x0,(%eax)
41a7f6:	89 46 08             	mov    %eax,0x8(%esi)
41a7f9:	8d 45 a0             	lea    -0x60(%ebp),%eax
41a7fc:	50                   	push   %eax
41a7fd:	6a 00                	push   $0x0
41a7ff:	68 14 30 4b 00       	push   $0x4b3014
41a804:	e8 07 bb ff ff       	call   0x416310
41a809:	83 c4 0c             	add    $0xc,%esp
41a80c:	89 46 10             	mov    %eax,0x10(%esi)
41a80f:	8d 45 a0             	lea    -0x60(%ebp),%eax
41a812:	50                   	push   %eax
41a813:	6a 00                	push   $0x0
41a815:	68 1c 30 4b 00       	push   $0x4b301c
41a81a:	e8 f1 ba ff ff       	call   0x416310
41a81f:	89 46 14             	mov    %eax,0x14(%esi)
41a822:	83 c4 0c             	add    $0xc,%esp
41a825:	33 c0                	xor    %eax,%eax
41a827:	c6 45 e8 2e          	movb   $0x2e,-0x18(%ebp)
41a82b:	66 89 45 dc          	mov    %ax,-0x24(%ebp)
41a82f:	0f 57 c0             	xorps  %xmm0,%xmm0
41a832:	8d 45 a0             	lea    -0x60(%ebp),%eax
41a835:	66 0f 13 45 d4       	movlpd %xmm0,-0x2c(%ebp)
41a83a:	50                   	push   %eax
41a83b:	8d 45 d4             	lea    -0x2c(%ebp),%eax
41a83e:	50                   	push   %eax
41a83f:	6a 01                	push   $0x1
41a841:	8d 45 e8             	lea    -0x18(%ebp),%eax
41a844:	50                   	push   %eax
41a845:	8d 45 dc             	lea    -0x24(%ebp),%eax
41a848:	50                   	push   %eax
41a849:	e8 ff e4 04 00       	call   0x468d4d
41a84e:	0f b7 45 dc          	movzwl -0x24(%ebp),%eax
41a852:	83 c4 14             	add    $0x14,%esp
41a855:	66 89 46 0c          	mov    %ax,0xc(%esi)
41a859:	0f 57 c0             	xorps  %xmm0,%xmm0
41a85c:	33 c0                	xor    %eax,%eax
41a85e:	c6 45 e4 2c          	movb   $0x2c,-0x1c(%ebp)