40a55c:	cc                   	int3
40a55d:	cc                   	int3
40a55e:	cc                   	int3
40a55f:	cc                   	int3
40a560:	55                   	push   %ebp
40a561:	8b ec                	mov    %esp,%ebp
40a563:	6a ff                	push   $0xffffffff
40a565:	68 ee da 43 00       	push   $0x43daee
40a56a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40a570:	50                   	push   %eax
40a571:	83 ec 14             	sub    $0x14,%esp
40a574:	53                   	push   %ebx
40a575:	56                   	push   %esi
40a576:	57                   	push   %edi
40a577:	a1 14 40 45 00       	mov    0x454014,%eax
40a57c:	33 c5                	xor    %ebp,%eax
40a57e:	50                   	push   %eax
40a57f:	8d 45 f4             	lea    -0xc(%ebp),%eax
40a582:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40a588:	8b d1                	mov    %ecx,%edx
40a58a:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
40a591:	33 c0                	xor    %eax,%eax
40a593:	8b 7d 08             	mov    0x8(%ebp),%edi
40a596:	c7 47 10 00 00 00 00 	movl   $0x0,0x10(%edi)
40a59d:	c7 47 14 00 00 00 00 	movl   $0x0,0x14(%edi)
40a5a4:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
40a5aa:	c7 47 10 00 00 00 00 	movl   $0x0,0x10(%edi)
40a5b1:	c7 47 14 07 00 00 00 	movl   $0x7,0x14(%edi)
40a5b8:	66 89 07             	mov    %ax,(%edi)
40a5bb:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a5be:	0f 57 c0             	xorps  %xmm0,%xmm0
40a5c1:	8b 5a 3c             	mov    0x3c(%edx),%ebx
40a5c4:	89 45 e8             	mov    %eax,-0x18(%ebp)
40a5c7:	8b c3                	mov    %ebx,%eax
40a5c9:	24 22                	and    $0x22,%al
40a5cb:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
40a5d2:	66 0f d6 45 e0       	movq   %xmm0,-0x20(%ebp)
40a5d7:	3c 02                	cmp    $0x2,%al
40a5d9:	74 19                	je     0x40a5f4
40a5db:	8b 42 20             	mov    0x20(%edx),%eax
40a5de:	8b 08                	mov    (%eax),%ecx
40a5e0:	85 c9                	test   %ecx,%ecx
40a5e2:	74 10                	je     0x40a5f4
40a5e4:	8b 42 10             	mov    0x10(%edx),%eax
40a5e7:	3b 4a 38             	cmp    0x38(%edx),%ecx
40a5ea:	0f 42 4a 38          	cmovb  0x38(%edx),%ecx
40a5ee:	8b 18                	mov    (%eax),%ebx
40a5f0:	2b cb                	sub    %ebx,%ecx
40a5f2:	eb 1e                	jmp    0x40a612
40a5f4:	f6 c3 04             	test   $0x4,%bl
40a5f7:	75 4f                	jne    0x40a648
40a5f9:	8b 42 1c             	mov    0x1c(%edx),%eax
40a5fc:	8b 30                	mov    (%eax),%esi
40a5fe:	85 f6                	test   %esi,%esi
40a600:	74 46                	je     0x40a648
40a602:	8b 42 0c             	mov    0xc(%edx),%eax
40a605:	8b 18                	mov    (%eax),%ebx
40a607:	8b 42 2c             	mov    0x2c(%edx),%eax
40a60a:	8b 08                	mov    (%eax),%ecx
40a60c:	03 c9                	add    %ecx,%ecx
40a60e:	2b cb                	sub    %ebx,%ecx
40a610:	03 ce                	add    %esi,%ecx
40a612:	8b c3                	mov    %ebx,%eax
40a614:	d1 f9                	sar    $1,%ecx
40a616:	85 c0                	test   %eax,%eax
40a618:	74 2e                	je     0x40a648
40a61a:	83 f9 07             	cmp    $0x7,%ecx
40a61d:	77 19                	ja     0x40a638
40a61f:	8d 34 09             	lea    (%ecx,%ecx,1),%esi
40a622:	89 4f 10             	mov    %ecx,0x10(%edi)
40a625:	56                   	push   %esi
40a626:	53                   	push   %ebx
40a627:	57                   	push   %edi
40a628:	e8 23 2e 01 00       	call   0x41d450
40a62d:	83 c4 0c             	add    $0xc,%esp
40a630:	33 c0                	xor    %eax,%eax
40a632:	66 89 04 3e          	mov    %ax,(%esi,%edi,1)
40a636:	eb 10                	jmp    0x40a648
40a638:	53                   	push   %ebx
40a639:	c6 45 ec 00          	movb   $0x0,-0x14(%ebp)
40a63d:	ff 75 ec             	push   -0x14(%ebp)
40a640:	51                   	push   %ecx
40a641:	8b cf                	mov    %edi,%ecx
40a643:	e8 c8 7f ff ff       	call   0x402610
40a648:	8b c7                	mov    %edi,%eax
40a64a:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40a64d:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a654:	59                   	pop    %ecx
40a655:	5f                   	pop    %edi
40a656:	5e                   	pop    %esi
40a657:	5b                   	pop    %ebx
40a658:	8b e5                	mov    %ebp,%esp
40a65a:	5d                   	pop    %ebp
40a65b:	c2 04 00             	ret    $0x4
40a65e:	cc                   	int3
40a65f:	cc                   	int3
40a660:	8b 41 20             	mov    0x20(%ecx),%eax
40a663:	83 38 00             	cmpl   $0x0,(%eax)
40a666:	74 07                	je     0x40a66f
40a668:	8b 41 30             	mov    0x30(%ecx),%eax
40a66b:	8b 00                	mov    (%eax),%eax
40a66d:	99                   	cltd
40a66e:	c3                   	ret
40a66f:	33 c0                	xor    %eax,%eax
40a671:	99                   	cltd
40a672:	c3                   	ret
40a673:	cc                   	int3
40a674:	cc                   	int3
40a675:	cc                   	int3
40a676:	cc                   	int3
40a677:	cc                   	int3
40a678:	cc                   	int3
40a679:	cc                   	int3
40a67a:	cc                   	int3
40a67b:	cc                   	int3
40a67c:	cc                   	int3
40a67d:	cc                   	int3
40a67e:	cc                   	int3
40a67f:	cc                   	int3
40a680:	8b 41 1c             	mov    0x1c(%ecx),%eax
40a683:	83 38 00             	cmpl   $0x0,(%eax)
40a686:	74 07                	je     0x40a68f
40a688:	8b 41 2c             	mov    0x2c(%ecx),%eax
40a68b:	8b 00                	mov    (%eax),%eax
40a68d:	99                   	cltd
40a68e:	c3                   	ret
40a68f:	33 c0                	xor    %eax,%eax
40a691:	99                   	cltd
40a692:	c3                   	ret
40a693:	cc                   	int3
40a694:	cc                   	int3
40a695:	cc                   	int3
40a696:	cc                   	int3
40a697:	cc                   	int3
40a698:	cc                   	int3
40a699:	cc                   	int3
40a69a:	cc                   	int3
40a69b:	cc                   	int3
40a69c:	cc                   	int3
40a69d:	cc                   	int3
40a69e:	cc                   	int3
40a69f:	cc                   	int3
40a6a0:	55                   	push   %ebp
40a6a1:	8b ec                	mov    %esp,%ebp
40a6a3:	ff 75 0c             	push   0xc(%ebp)
40a6a6:	33 d2                	xor    %edx,%edx
40a6a8:	b8 04 00 00 00       	mov    $0x4,%eax
40a6ad:	39 51 38             	cmp    %edx,0x38(%ecx)
40a6b0:	0f 45 c2             	cmovne %edx,%eax
40a6b3:	0b 41 0c             	or     0xc(%ecx),%eax
40a6b6:	0b 45 08             	or     0x8(%ebp),%eax
40a6b9:	50                   	push   %eax
40a6ba:	e8 71 a4 ff ff       	call   0x404b30
40a6bf:	5d                   	pop    %ebp
40a6c0:	c2 08 00             	ret    $0x8
40a6c3:	cc                   	int3
40a6c4:	cc                   	int3
40a6c5:	cc                   	int3
40a6c6:	cc                   	int3
40a6c7:	cc                   	int3
40a6c8:	cc                   	int3
40a6c9:	cc                   	int3
40a6ca:	cc                   	int3
40a6cb:	cc                   	int3
40a6cc:	cc                   	int3
40a6cd:	cc                   	int3
40a6ce:	cc                   	int3
40a6cf:	cc                   	int3
40a6d0:	68 80 dc 44 00       	push   $0x44dc80
40a6d5:	e8 80 07 01 00       	call   0x41ae5a
40a6da:	cc                   	int3
40a6db:	cc                   	int3
40a6dc:	cc                   	int3
40a6dd:	cc                   	int3
40a6de:	cc                   	int3
40a6df:	cc                   	int3
40a6e0:	8b c1                	mov    %ecx,%eax
40a6e2:	c3                   	ret
40a6e3:	cc                   	int3
40a6e4:	cc                   	int3
40a6e5:	cc                   	int3
40a6e6:	cc                   	int3
40a6e7:	cc                   	int3
40a6e8:	cc                   	int3
40a6e9:	cc                   	int3
40a6ea:	cc                   	int3
40a6eb:	cc                   	int3
40a6ec:	cc                   	int3
40a6ed:	cc                   	int3
40a6ee:	cc                   	int3
40a6ef:	cc                   	int3
40a6f0:	55                   	push   %ebp
40a6f1:	8b ec                	mov    %esp,%ebp
40a6f3:	51                   	push   %ecx
40a6f4:	8b 45 08             	mov    0x8(%ebp),%eax
40a6f7:	8b d0                	mov    %eax,%edx
40a6f9:	53                   	push   %ebx
40a6fa:	56                   	push   %esi
40a6fb:	8b f1                	mov    %ecx,%esi
40a6fd:	83 78 14 08          	cmpl   $0x8,0x14(%eax)
40a701:	72 02                	jb     0x40a705
40a703:	8b 10                	mov    (%eax),%edx
40a705:	8b 48 10             	mov    0x10(%eax),%ecx
40a708:	8b 46 14             	mov    0x14(%esi),%eax
40a70b:	8b 5e 10             	mov    0x10(%esi),%ebx
40a70e:	2b c3                	sub    %ebx,%eax
40a710:	3b c8                	cmp    %eax,%ecx
40a712:	77 38                	ja     0x40a74c
40a714:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40a718:	8d 04 0b             	lea    (%ebx,%ecx,1),%eax
40a71b:	57                   	push   %edi
40a71c:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a71f:	8b fe                	mov    %esi,%edi
40a721:	89 46 10             	mov    %eax,0x10(%esi)
40a724:	72 02                	jb     0x40a728
40a726:	8b 3e                	mov    (%esi),%edi
40a728:	03 c9                	add    %ecx,%ecx
40a72a:	51                   	push   %ecx
40a72b:	52                   	push   %edx
40a72c:	8d 0c 5f             	lea    (%edi,%ebx,2),%ecx
40a72f:	51                   	push   %ecx
40a730:	e8 1b 2d 01 00       	call   0x41d450
40a735:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a738:	83 c4 0c             	add    $0xc,%esp
40a73b:	33 c9                	xor    %ecx,%ecx
40a73d:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
40a741:	8b c6                	mov    %esi,%eax
40a743:	5f                   	pop    %edi
40a744:	5e                   	pop    %esi
40a745:	5b                   	pop    %ebx
40a746:	8b e5                	mov    %ebp,%esp
40a748:	5d                   	pop    %ebp
40a749:	c2 04 00             	ret    $0x4
40a74c:	51                   	push   %ecx
40a74d:	52                   	push   %edx
40a74e:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
40a752:	ff 75 fc             	push   -0x4(%ebp)
40a755:	51                   	push   %ecx
40a756:	8b ce                	mov    %esi,%ecx
40a758:	e8 e3 7f ff ff       	call   0x402740
40a75d:	5e                   	pop    %esi
40a75e:	5b                   	pop    %ebx
40a75f:	8b e5                	mov    %ebp,%esp
40a761:	5d                   	pop    %ebp
40a762:	c2 04 00             	ret    $0x4
40a765:	cc                   	int3
40a766:	cc                   	int3
40a767:	cc                   	int3
40a768:	cc                   	int3
40a769:	cc                   	int3
40a76a:	cc                   	int3
40a76b:	cc                   	int3
40a76c:	cc                   	int3
40a76d:	cc                   	int3
40a76e:	cc                   	int3
40a76f:	cc                   	int3
40a770:	55                   	push   %ebp
40a771:	8b ec                	mov    %esp,%ebp
40a773:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
40a777:	56                   	push   %esi
40a778:	8b f1                	mov    %ecx,%esi
40a77a:	c7 06 9c f8 43 00    	movl   $0x43f89c,(%esi)
40a780:	74 0b                	je     0x40a78d
40a782:	6a 08                	push   $0x8
40a784:	56                   	push   %esi
40a785:	e8 84 11 01 00       	call   0x41b90e
40a78a:	83 c4 08             	add    $0x8,%esp
40a78d:	8b c6                	mov    %esi,%eax
40a78f:	5e                   	pop    %esi
40a790:	5d                   	pop    %ebp
40a791:	c2 04 00             	ret    $0x4
40a794:	cc                   	int3
40a795:	cc                   	int3
40a796:	cc                   	int3
40a797:	cc                   	int3
40a798:	cc                   	int3
40a799:	cc                   	int3
40a79a:	cc                   	int3
40a79b:	cc                   	int3
40a79c:	cc                   	int3
40a79d:	cc                   	int3
40a79e:	cc                   	int3
40a79f:	cc                   	int3
40a7a0:	55                   	push   %ebp
40a7a1:	8b ec                	mov    %esp,%ebp
40a7a3:	51                   	push   %ecx
40a7a4:	8b 51 14             	mov    0x14(%ecx),%edx
40a7a7:	8b ca                	mov    %edx,%ecx
40a7a9:	56                   	push   %esi
40a7aa:	8b 75 08             	mov    0x8(%ebp),%esi
40a7ad:	57                   	push   %edi
40a7ae:	8d 79 02             	lea    0x2(%ecx),%edi
40a7b1:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
40a7b7:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
40a7be:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
40a7c5:	66 8b 01             	mov    (%ecx),%ax
40a7c8:	83 c1 02             	add    $0x2,%ecx
40a7cb:	66 85 c0             	test   %ax,%ax
40a7ce:	75 f5                	jne    0x40a7c5
40a7d0:	2b cf                	sub    %edi,%ecx
40a7d2:	d1 f9                	sar    $1,%ecx
40a7d4:	51                   	push   %ecx
40a7d5:	52                   	push   %edx
40a7d6:	8b ce                	mov    %esi,%ecx
40a7d8:	e8 33 7d ff ff       	call   0x402510
40a7dd:	5f                   	pop    %edi
40a7de:	8b c6                	mov    %esi,%eax
40a7e0:	5e                   	pop    %esi
40a7e1:	8b e5                	mov    %ebp,%esp
40a7e3:	5d                   	pop    %ebp
40a7e4:	c2 04 00             	ret    $0x4
40a7e7:	cc                   	int3
40a7e8:	cc                   	int3
40a7e9:	cc                   	int3
40a7ea:	cc                   	int3
40a7eb:	cc                   	int3
40a7ec:	cc                   	int3
40a7ed:	cc                   	int3
40a7ee:	cc                   	int3
40a7ef:	cc                   	int3
40a7f0:	55                   	push   %ebp
40a7f1:	8b ec                	mov    %esp,%ebp
40a7f3:	51                   	push   %ecx
40a7f4:	8b 51 10             	mov    0x10(%ecx),%edx
40a7f7:	8b ca                	mov    %edx,%ecx
40a7f9:	56                   	push   %esi
40a7fa:	8b 75 08             	mov    0x8(%ebp),%esi
40a7fd:	57                   	push   %edi
40a7fe:	8d 79 02             	lea    0x2(%ecx),%edi
40a801:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
40a807:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
40a80e:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
40a815:	66 8b 01             	mov    (%ecx),%ax
40a818:	83 c1 02             	add    $0x2,%ecx
40a81b:	66 85 c0             	test   %ax,%ax
40a81e:	75 f5                	jne    0x40a815
40a820:	2b cf                	sub    %edi,%ecx
40a822:	d1 f9                	sar    $1,%ecx
40a824:	51                   	push   %ecx
40a825:	52                   	push   %edx
40a826:	8b ce                	mov    %esi,%ecx
40a828:	e8 e3 7c ff ff       	call   0x402510
40a82d:	5f                   	pop    %edi
40a82e:	8b c6                	mov    %esi,%eax
40a830:	5e                   	pop    %esi
40a831:	8b e5                	mov    %ebp,%esp
40a833:	5d                   	pop    %ebp
40a834:	c2 04 00             	ret    $0x4
40a837:	cc                   	int3
40a838:	cc                   	int3