41b5c0:	d1 f9                	sar    $1,%ecx
41b5c2:	8b 45 c8             	mov    -0x38(%ebp),%eax
41b5c5:	47                   	inc    %edi
41b5c6:	8b 75 c8             	mov    -0x38(%ebp),%esi
41b5c9:	83 45 c8 0c          	addl   $0xc,-0x38(%ebp)
41b5cd:	89 50 fc             	mov    %edx,-0x4(%eax)
41b5d0:	8d 14 4a             	lea    (%edx,%ecx,2),%edx
41b5d3:	89 08                	mov    %ecx,(%eax)
41b5d5:	8b 45 c0             	mov    -0x40(%ebp),%eax
41b5d8:	89 46 04             	mov    %eax,0x4(%esi)
41b5db:	0f b7 02             	movzwl (%edx),%eax
41b5de:	83 c2 02             	add    $0x2,%edx
41b5e1:	8b 75 bc             	mov    -0x44(%ebp),%esi
41b5e4:	89 55 c4             	mov    %edx,-0x3c(%ebp)
41b5e7:	2b c3                	sub    %ebx,%eax
41b5e9:	74 0f                	je     0x41b5fa
41b5eb:	83 e8 2d             	sub    $0x2d,%eax
41b5ee:	74 97                	je     0x41b587
41b5f0:	83 e8 01             	sub    $0x1,%eax
41b5f3:	74 69                	je     0x41b65e
41b5f5:	83 e8 31             	sub    $0x31,%eax
41b5f8:	74 8d                	je     0x41b587
41b5fa:	83 ef 01             	sub    $0x1,%edi
41b5fd:	0f 84 02 01 00 00    	je     0x41b705
41b603:	83 ef 01             	sub    $0x1,%edi
41b606:	0f 84 b3 00 00 00    	je     0x41b6bf
41b60c:	83 ef 01             	sub    $0x1,%edi
41b60f:	74 55                	je     0x41b666
41b611:	83 ef 01             	sub    $0x1,%edi
41b614:	0f 85 f9 00 00 00    	jne    0x41b713
41b61a:	8d 45 cc             	lea    -0x34(%ebp),%eax
41b61d:	50                   	push   %eax
41b61e:	56                   	push   %esi
41b61f:	e8 3f 01 00 00       	call   0x41b763
41b624:	59                   	pop    %ecx
41b625:	59                   	pop    %ecx
41b626:	84 c0                	test   %al,%al
41b628:	0f 84 d3 00 00 00    	je     0x41b701
41b62e:	8d 45 d8             	lea    -0x28(%ebp),%eax
41b631:	50                   	push   %eax
41b632:	56                   	push   %esi
41b633:	e8 5b 02 00 00       	call   0x41b893
41b638:	59                   	pop    %ecx
41b639:	59                   	pop    %ecx
41b63a:	84 c0                	test   %al,%al
41b63c:	0f 84 bf 00 00 00    	je     0x41b701
41b642:	8d 45 e4             	lea    -0x1c(%ebp),%eax
41b645:	50                   	push   %eax
41b646:	56                   	push   %esi
41b647:	e8 89 01 00 00       	call   0x41b7d5
41b64c:	59                   	pop    %ecx
41b64d:	59                   	pop    %ecx
41b64e:	84 c0                	test   %al,%al
41b650:	0f 84 ab 00 00 00    	je     0x41b701
41b656:	8d 45 f0             	lea    -0x10(%ebp),%eax
41b659:	e9 94 00 00 00       	jmp    0x41b6f2
41b65e:	6a 02                	push   $0x2
41b660:	58                   	pop    %eax
41b661:	e9 23 ff ff ff       	jmp    0x41b589
41b666:	8d 45 cc             	lea    -0x34(%ebp),%eax
41b669:	50                   	push   %eax
41b66a:	56                   	push   %esi
41b66b:	e8 f3 00 00 00       	call   0x41b763
41b670:	59                   	pop    %ecx
41b671:	59                   	pop    %ecx
41b672:	84 c0                	test   %al,%al
41b674:	0f 84 87 00 00 00    	je     0x41b701
41b67a:	8d 45 d8             	lea    -0x28(%ebp),%eax
41b67d:	50                   	push   %eax
41b67e:	56                   	push   %esi
41b67f:	e8 0f 02 00 00       	call   0x41b893
41b684:	59                   	pop    %ecx
41b685:	59                   	pop    %ecx
41b686:	84 c0                	test   %al,%al
41b688:	74 20                	je     0x41b6aa
41b68a:	8d 45 e4             	lea    -0x1c(%ebp),%eax
41b68d:	50                   	push   %eax
41b68e:	56                   	push   %esi
41b68f:	e8 41 01 00 00       	call   0x41b7d5
41b694:	59                   	pop    %ecx
41b695:	59                   	pop    %ecx
41b696:	84 c0                	test   %al,%al
41b698:	75 65                	jne    0x41b6ff
41b69a:	8d 45 e4             	lea    -0x1c(%ebp),%eax
41b69d:	50                   	push   %eax
41b69e:	56                   	push   %esi
41b69f:	e8 80 00 00 00       	call   0x41b724
41b6a4:	59                   	pop    %ecx
41b6a5:	59                   	pop    %ecx
41b6a6:	84 c0                	test   %al,%al
41b6a8:	75 55                	jne    0x41b6ff
41b6aa:	8d 45 d8             	lea    -0x28(%ebp),%eax
41b6ad:	50                   	push   %eax
41b6ae:	56                   	push   %esi
41b6af:	e8 21 01 00 00       	call   0x41b7d5
41b6b4:	59                   	pop    %ecx
41b6b5:	59                   	pop    %ecx
41b6b6:	84 c0                	test   %al,%al
41b6b8:	74 47                	je     0x41b701
41b6ba:	8d 45 e4             	lea    -0x1c(%ebp),%eax
41b6bd:	eb 33                	jmp    0x41b6f2
41b6bf:	8d 45 cc             	lea    -0x34(%ebp),%eax
41b6c2:	50                   	push   %eax
41b6c3:	56                   	push   %esi
41b6c4:	e8 9a 00 00 00       	call   0x41b763
41b6c9:	59                   	pop    %ecx
41b6ca:	59                   	pop    %ecx
41b6cb:	84 c0                	test   %al,%al
41b6cd:	74 32                	je     0x41b701
41b6cf:	8d 45 d8             	lea    -0x28(%ebp),%eax
41b6d2:	50                   	push   %eax
41b6d3:	56                   	push   %esi
41b6d4:	e8 ba 01 00 00       	call   0x41b893
41b6d9:	59                   	pop    %ecx
41b6da:	59                   	pop    %ecx
41b6db:	84 c0                	test   %al,%al
41b6dd:	75 20                	jne    0x41b6ff
41b6df:	8d 45 d8             	lea    -0x28(%ebp),%eax
41b6e2:	50                   	push   %eax
41b6e3:	56                   	push   %esi
41b6e4:	e8 ec 00 00 00       	call   0x41b7d5
41b6e9:	59                   	pop    %ecx
41b6ea:	59                   	pop    %ecx
41b6eb:	84 c0                	test   %al,%al
41b6ed:	75 10                	jne    0x41b6ff
41b6ef:	8d 45 d8             	lea    -0x28(%ebp),%eax
41b6f2:	50                   	push   %eax
41b6f3:	56                   	push   %esi
41b6f4:	e8 2b 00 00 00       	call   0x41b724
41b6f9:	59                   	pop    %ecx
41b6fa:	59                   	pop    %ecx
41b6fb:	84 c0                	test   %al,%al
41b6fd:	74 02                	je     0x41b701
41b6ff:	b3 01                	mov    $0x1,%bl
41b701:	8a c3                	mov    %bl,%al
41b703:	eb 10                	jmp    0x41b715
41b705:	8d 45 cc             	lea    -0x34(%ebp),%eax
41b708:	50                   	push   %eax
41b709:	56                   	push   %esi
41b70a:	e8 54 00 00 00       	call   0x41b763
41b70f:	59                   	pop    %ecx
41b710:	59                   	pop    %ecx
41b711:	eb 02                	jmp    0x41b715
41b713:	32 c0                	xor    %al,%al
41b715:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41b718:	5f                   	pop    %edi
41b719:	5e                   	pop    %esi
41b71a:	33 cd                	xor    %ebp,%ecx
41b71c:	5b                   	pop    %ebx
41b71d:	e8 85 e5 fe ff       	call   0x409ca7
41b722:	c9                   	leave
41b723:	c3                   	ret
41b724:	8b ff                	mov    %edi,%edi
41b726:	55                   	push   %ebp
41b727:	8b ec                	mov    %esp,%ebp
41b729:	8b 45 0c             	mov    0xc(%ebp),%eax
41b72c:	83 78 08 02          	cmpl   $0x2,0x8(%eax)
41b730:	74 04                	je     0x41b736
41b732:	32 c0                	xor    %al,%al
41b734:	5d                   	pop    %ebp
41b735:	c3                   	ret
41b736:	ff 70 04             	push   0x4(%eax)
41b739:	ff 30                	push   (%eax)
41b73b:	8b 45 08             	mov    0x8(%ebp),%eax
41b73e:	05 00 01 00 00       	add    $0x100,%eax
41b743:	6a 10                	push   $0x10
41b745:	50                   	push   %eax
41b746:	e8 82 66 00 00       	call   0x421dcd
41b74b:	83 c4 10             	add    $0x10,%esp
41b74e:	85 c0                	test   %eax,%eax
41b750:	75 04                	jne    0x41b756
41b752:	b0 01                	mov    $0x1,%al
41b754:	5d                   	pop    %ebp
41b755:	c3                   	ret
41b756:	33 c0                	xor    %eax,%eax
41b758:	50                   	push   %eax
41b759:	50                   	push   %eax
41b75a:	50                   	push   %eax
41b75b:	50                   	push   %eax
41b75c:	50                   	push   %eax
41b75d:	e8 b9 1c ff ff       	call   0x40d41b
41b762:	cc                   	int3
41b763:	8b ff                	mov    %edi,%edi
41b765:	55                   	push   %ebp
41b766:	8b ec                	mov    %esp,%ebp
41b768:	53                   	push   %ebx
41b769:	56                   	push   %esi
41b76a:	8b 75 0c             	mov    0xc(%ebp),%esi
41b76d:	33 db                	xor    %ebx,%ebx
41b76f:	39 5e 08             	cmp    %ebx,0x8(%esi)
41b772:	75 50                	jne    0x41b7c4
41b774:	8b 4e 04             	mov    0x4(%esi),%ecx
41b777:	8d 41 fe             	lea    -0x2(%ecx),%eax
41b77a:	83 f8 01             	cmp    $0x1,%eax
41b77d:	77 45                	ja     0x41b7c4
41b77f:	51                   	push   %ecx
41b780:	ff 36                	push   (%esi)
41b782:	e8 7c 01 00 00       	call   0x41b903
41b787:	59                   	pop    %ecx
41b788:	59                   	pop    %ecx
41b789:	84 c0                	test   %al,%al
41b78b:	74 37                	je     0x41b7c4
41b78d:	57                   	push   %edi
41b78e:	ff 76 04             	push   0x4(%esi)
41b791:	8b 7d 08             	mov    0x8(%ebp),%edi
41b794:	ff 36                	push   (%esi)
41b796:	6a 40                	push   $0x40
41b798:	57                   	push   %edi
41b799:	e8 2f 66 00 00       	call   0x421dcd
41b79e:	83 c4 10             	add    $0x10,%esp
41b7a1:	85 c0                	test   %eax,%eax
41b7a3:	75 25                	jne    0x41b7ca
41b7a5:	ff 76 04             	push   0x4(%esi)
41b7a8:	8d 8f 20 01 00 00    	lea    0x120(%edi),%ecx
41b7ae:	ff 36                	push   (%esi)
41b7b0:	6a 55                	push   $0x55
41b7b2:	51                   	push   %ecx
41b7b3:	e8 15 66 00 00       	call   0x421dcd
41b7b8:	83 c4 10             	add    $0x10,%esp
41b7bb:	5f                   	pop    %edi
41b7bc:	85 c0                	test   %eax,%eax
41b7be:	75 0a                	jne    0x41b7ca
41b7c0:	b0 01                	mov    $0x1,%al
41b7c2:	eb 02                	jmp    0x41b7c6
41b7c4:	32 c0                	xor    %al,%al
41b7c6:	5e                   	pop    %esi
41b7c7:	5b                   	pop    %ebx
41b7c8:	5d                   	pop    %ebp
41b7c9:	c3                   	ret
41b7ca:	53                   	push   %ebx
41b7cb:	53                   	push   %ebx
41b7cc:	53                   	push   %ebx
41b7cd:	53                   	push   %ebx
41b7ce:	53                   	push   %ebx
41b7cf:	e8 47 1c ff ff       	call   0x40d41b
41b7d4:	cc                   	int3
41b7d5:	8b ff                	mov    %edi,%edi
41b7d7:	55                   	push   %ebp
41b7d8:	8b ec                	mov    %esp,%ebp
41b7da:	51                   	push   %ecx
41b7db:	53                   	push   %ebx
41b7dc:	56                   	push   %esi
41b7dd:	57                   	push   %edi
41b7de:	8b 7d 0c             	mov    0xc(%ebp),%edi
41b7e1:	33 db                	xor    %ebx,%ebx
41b7e3:	39 5f 08             	cmp    %ebx,0x8(%edi)
41b7e6:	0f 85 95 00 00 00    	jne    0x41b881
41b7ec:	83 7f 04 02          	cmpl   $0x2,0x4(%edi)
41b7f0:	75 0f                	jne    0x41b801
41b7f2:	6a 02                	push   $0x2
41b7f4:	ff 37                	push   (%edi)
41b7f6:	e8 08 01 00 00       	call   0x41b903
41b7fb:	59                   	pop    %ecx
41b7fc:	59                   	pop    %ecx
41b7fd:	84 c0                	test   %al,%al
41b7ff:	75 2f                	jne    0x41b830
41b801:	83 7f 04 03          	cmpl   $0x3,0x4(%edi)
41b805:	75 7a                	jne    0x41b881
41b807:	8b 07                	mov    (%edi),%eax
41b809:	89 45 fc             	mov    %eax,-0x4(%ebp)
41b80c:	0f b7 34 58          	movzwl (%eax,%ebx,2),%esi
41b810:	e8 a7 26 00 00       	call   0x41debc
41b815:	6a 04                	push   $0x4
41b817:	56                   	push   %esi
41b818:	50                   	push   %eax
41b819:	e8 e7 63 ff ff       	call   0x411c05
41b81e:	83 c4 0c             	add    $0xc,%esp
41b821:	85 c0                	test   %eax,%eax
41b823:	74 5c                	je     0x41b881
41b825:	8b 45 fc             	mov    -0x4(%ebp),%eax
41b828:	43                   	inc    %ebx
41b829:	83 fb 03             	cmp    $0x3,%ebx
41b82c:	72 de                	jb     0x41b80c
41b82e:	33 db                	xor    %ebx,%ebx
41b830:	ff 77 04             	push   0x4(%edi)
41b833:	8b 75 08             	mov    0x8(%ebp),%esi
41b836:	ff 37                	push   (%edi)
41b838:	6a 40                	push   $0x40
41b83a:	8d 86 80 00 00 00    	lea    0x80(%esi),%eax
41b840:	50                   	push   %eax
41b841:	e8 87 65 00 00       	call   0x421dcd
41b846:	83 c4 10             	add    $0x10,%esp
41b849:	85 c0                	test   %eax,%eax
41b84b:	75 3b                	jne    0x41b888
41b84d:	6a 01                	push   $0x1
41b84f:	68 04 33 43 00       	push   $0x433304
41b854:	81 c6 20 01 00 00    	add    $0x120,%esi
41b85a:	6a 55                	push   $0x55
41b85c:	56                   	push   %esi
41b85d:	e8 6e 8c 00 00       	call   0x4244d0
41b862:	83 c4 10             	add    $0x10,%esp
41b865:	85 c0                	test   %eax,%eax
41b867:	75 1f                	jne    0x41b888
41b869:	ff 77 04             	push   0x4(%edi)
41b86c:	ff 37                	push   (%edi)
41b86e:	6a 55                	push   $0x55
41b870:	56                   	push   %esi
41b871:	e8 5a 8c 00 00       	call   0x4244d0
41b876:	83 c4 10             	add    $0x10,%esp
41b879:	85 c0                	test   %eax,%eax
41b87b:	75 0b                	jne    0x41b888
41b87d:	b0 01                	mov    $0x1,%al
41b87f:	eb 02                	jmp    0x41b883
41b881:	32 c0                	xor    %al,%al
41b883:	5f                   	pop    %edi
41b884:	5e                   	pop    %esi
41b885:	5b                   	pop    %ebx
41b886:	c9                   	leave
41b887:	c3                   	ret
41b888:	53                   	push   %ebx
41b889:	53                   	push   %ebx
41b88a:	53                   	push   %ebx
41b88b:	53                   	push   %ebx
41b88c:	53                   	push   %ebx
41b88d:	e8 89 1b ff ff       	call   0x40d41b
41b892:	cc                   	int3
41b893:	8b ff                	mov    %edi,%edi
41b895:	55                   	push   %ebp
41b896:	8b ec                	mov    %esp,%ebp
41b898:	53                   	push   %ebx
41b899:	56                   	push   %esi
41b89a:	8b 75 0c             	mov    0xc(%ebp),%esi
41b89d:	33 db                	xor    %ebx,%ebx
41b89f:	39 5e 08             	cmp    %ebx,0x8(%esi)
41b8a2:	75 4e                	jne    0x41b8f2
41b8a4:	83 7e 04 04          	cmpl   $0x4,0x4(%esi)
41b8a8:	75 48                	jne    0x41b8f2
41b8aa:	6a 04                	push   $0x4
41b8ac:	ff 36                	push   (%esi)
41b8ae:	e8 50 00 00 00       	call   0x41b903
41b8b3:	59                   	pop    %ecx
41b8b4:	59                   	pop    %ecx
41b8b5:	84 c0                	test   %al,%al
41b8b7:	74 39                	je     0x41b8f2
41b8b9:	57                   	push   %edi
41b8ba:	8b 7d 08             	mov    0x8(%ebp),%edi
41b8bd:	6a 01                	push   $0x1
41b8bf:	68 04 33 43 00       	push   $0x433304
41b8c4:	81 c7 20 01 00 00    	add    $0x120,%edi
41b8ca:	6a 55                	push   $0x55
41b8cc:	57                   	push   %edi
41b8cd:	e8 fe 8b 00 00       	call   0x4244d0
41b8d2:	83 c4 10             	add    $0x10,%esp
41b8d5:	85 c0                	test   %eax,%eax
41b8d7:	75 1f                	jne    0x41b8f8
41b8d9:	ff 76 04             	push   0x4(%esi)
41b8dc:	ff 36                	push   (%esi)
41b8de:	6a 55                	push   $0x55
41b8e0:	57                   	push   %edi
41b8e1:	e8 ea 8b 00 00       	call   0x4244d0