43e5c5:	89 75 ec             	mov    %esi,-0x14(%ebp)
43e5c8:	e8 1a 0e fd ff       	call   0x40f3e7
43e5cd:	8b cb                	mov    %ebx,%ecx
43e5cf:	e8 28 fa ff ff       	call   0x43dffc
43e5d4:	8b d8                	mov    %eax,%ebx
43e5d6:	85 db                	test   %ebx,%ebx
43e5d8:	75 03                	jne    0x43e5dd
43e5da:	6a 02                	push   $0x2
43e5dc:	5b                   	pop    %ebx
43e5dd:	8d 45 14             	lea    0x14(%ebp),%eax
43e5e0:	50                   	push   %eax
43e5e1:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43e5e4:	e8 4c dc fe ff       	call   0x42c235
43e5e9:	8b 7d 20             	mov    0x20(%ebp),%edi
43e5ec:	84 c0                	test   %al,%al
43e5ee:	0f 85 e8 00 00 00    	jne    0x43e6dc
43e5f4:	8b 55 10             	mov    0x10(%ebp),%edx
43e5f7:	84 d2                	test   %dl,%dl
43e5f9:	75 0b                	jne    0x43e606
43e5fb:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43e5fe:	e8 77 cb fe ff       	call   0x42b17a
43e603:	8b 55 10             	mov    0x10(%ebp),%edx
43e606:	0f b6 4d 11          	movzbl 0x11(%ebp),%ecx
43e60a:	8b 46 0c             	mov    0xc(%esi),%eax
43e60d:	0f bf 04 48          	movswl (%eax,%ecx,2),%eax
43e611:	c1 e8 02             	shr    $0x2,%eax
43e614:	a8 01                	test   $0x1,%al
43e616:	75 23                	jne    0x43e63b
43e618:	8b 45 24             	mov    0x24(%ebp),%eax
43e61b:	8b 4d f0             	mov    -0x10(%ebp),%ecx
43e61e:	50                   	push   %eax
43e61f:	57                   	push   %edi
43e620:	ff 75 1c             	push   0x1c(%ebp)
43e623:	8d 45 e4             	lea    -0x1c(%ebp),%eax
43e626:	ff 75 18             	push   0x18(%ebp)
43e629:	ff 75 14             	push   0x14(%ebp)
43e62c:	52                   	push   %edx
43e62d:	ff 75 0c             	push   0xc(%ebp)
43e630:	50                   	push   %eax
43e631:	e8 3c 0a 00 00       	call   0x43f072
43e636:	6a 02                	push   $0x2
43e638:	5b                   	pop    %ebx
43e639:	eb 71                	jmp    0x43e6ac
43e63b:	83 fb 02             	cmp    $0x2,%ebx
43e63e:	75 2a                	jne    0x43e66a
43e640:	ff 75 ec             	push   -0x14(%ebp)
43e643:	8b 75 24             	mov    0x24(%ebp),%esi
43e646:	8d 45 14             	lea    0x14(%ebp),%eax
43e649:	83 c6 10             	add    $0x10,%esi
43e64c:	56                   	push   %esi
43e64d:	6a 0c                	push   $0xc
43e64f:	6a 01                	push   $0x1
43e651:	50                   	push   %eax
43e652:	8d 45 0c             	lea    0xc(%ebp),%eax
43e655:	50                   	push   %eax
43e656:	ff 75 f0             	push   -0x10(%ebp)
43e659:	e8 99 e2 ff ff       	call   0x43c8f7
43e65e:	09 07                	or     %eax,(%edi)
43e660:	83 c4 1c             	add    $0x1c,%esp
43e663:	ff 0e                	decl   (%esi)
43e665:	8b 75 ec             	mov    -0x14(%ebp),%esi
43e668:	eb 72                	jmp    0x43e6dc
43e66a:	8b 45 24             	mov    0x24(%ebp),%eax
43e66d:	83 fb 01             	cmp    $0x1,%ebx
43e670:	75 1f                	jne    0x43e691
43e672:	56                   	push   %esi
43e673:	83 c0 0c             	add    $0xc,%eax
43e676:	50                   	push   %eax
43e677:	6a 1f                	push   $0x1f
43e679:	53                   	push   %ebx
43e67a:	8d 45 14             	lea    0x14(%ebp),%eax
43e67d:	50                   	push   %eax
43e67e:	8d 45 0c             	lea    0xc(%ebp),%eax
43e681:	50                   	push   %eax
43e682:	ff 75 f0             	push   -0x10(%ebp)
43e685:	e8 6d e2 ff ff       	call   0x43c8f7
43e68a:	83 c4 1c             	add    $0x1c,%esp
43e68d:	09 07                	or     %eax,(%edi)
43e68f:	eb 4b                	jmp    0x43e6dc
43e691:	8b 4d f0             	mov    -0x10(%ebp),%ecx
43e694:	50                   	push   %eax
43e695:	57                   	push   %edi
43e696:	ff 75 1c             	push   0x1c(%ebp)
43e699:	8d 45 e4             	lea    -0x1c(%ebp),%eax
43e69c:	ff 75 18             	push   0x18(%ebp)
43e69f:	ff 75 14             	push   0x14(%ebp)
43e6a2:	52                   	push   %edx
43e6a3:	ff 75 0c             	push   0xc(%ebp)
43e6a6:	50                   	push   %eax
43e6a7:	e8 36 0a 00 00       	call   0x43f0e2
43e6ac:	8b 08                	mov    (%eax),%ecx
43e6ae:	89 4d 0c             	mov    %ecx,0xc(%ebp)
43e6b1:	8b 40 04             	mov    0x4(%eax),%eax
43e6b4:	89 45 10             	mov    %eax,0x10(%ebp)
43e6b7:	eb 23                	jmp    0x43e6dc
43e6b9:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
43e6bd:	75 08                	jne    0x43e6c7
43e6bf:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43e6c2:	e8 b3 ca fe ff       	call   0x42b17a
43e6c7:	0f b6 4d 11          	movzbl 0x11(%ebp),%ecx
43e6cb:	8b 46 0c             	mov    0xc(%esi),%eax
43e6ce:	f6 04 48 48          	testb  $0x48,(%eax,%ecx,2)
43e6d2:	74 18                	je     0x43e6ec
43e6d4:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43e6d7:	e8 79 c2 fe ff       	call   0x42a955
43e6dc:	8d 45 14             	lea    0x14(%ebp),%eax
43e6df:	50                   	push   %eax
43e6e0:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43e6e3:	e8 4d db fe ff       	call   0x42c235
43e6e8:	84 c0                	test   %al,%al
43e6ea:	74 cd                	je     0x43e6b9
43e6ec:	8d 45 14             	lea    0x14(%ebp),%eax
43e6ef:	50                   	push   %eax
43e6f0:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43e6f3:	e8 3d db fe ff       	call   0x42c235
43e6f8:	84 c0                	test   %al,%al
43e6fa:	75 38                	jne    0x43e734
43e6fc:	38 45 10             	cmp    %al,0x10(%ebp)
43e6ff:	75 08                	jne    0x43e709
43e701:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43e704:	e8 71 ca fe ff       	call   0x42b17a
43e709:	8b 06                	mov    (%esi),%eax
43e70b:	6a 00                	push   $0x0
43e70d:	ff 75 11             	push   0x11(%ebp)
43e710:	8b 70 28             	mov    0x28(%eax),%esi
43e713:	8b ce                	mov    %esi,%ecx
43e715:	ff 15 54 43 49 00    	call   *0x494354
43e71b:	8b 4d ec             	mov    -0x14(%ebp),%ecx
43e71e:	ff d6                	call   *%esi
43e720:	3c 3a                	cmp    $0x3a,%al
43e722:	74 08                	je     0x43e72c
43e724:	3c 2c                	cmp    $0x2c,%al
43e726:	74 04                	je     0x43e72c
43e728:	3c 2f                	cmp    $0x2f,%al
43e72a:	75 08                	jne    0x43e734
43e72c:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43e72f:	e8 21 c2 fe ff       	call   0x42a955
43e734:	8d 45 14             	lea    0x14(%ebp),%eax
43e737:	50                   	push   %eax
43e738:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43e73b:	e8 f5 da fe ff       	call   0x42c235
43e740:	84 c0                	test   %al,%al
43e742:	75 39                	jne    0x43e77d
43e744:	8b 7d ec             	mov    -0x14(%ebp),%edi
43e747:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
43e74b:	75 08                	jne    0x43e755
43e74d:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43e750:	e8 25 ca fe ff       	call   0x42b17a
43e755:	0f b6 4d 11          	movzbl 0x11(%ebp),%ecx
43e759:	8b 47 0c             	mov    0xc(%edi),%eax
43e75c:	f6 04 48 48          	testb  $0x48,(%eax,%ecx,2)
43e760:	74 18                	je     0x43e77a
43e762:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43e765:	e8 eb c1 fe ff       	call   0x42a955
43e76a:	8d 45 14             	lea    0x14(%ebp),%eax
43e76d:	50                   	push   %eax
43e76e:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43e771:	e8 bf da fe ff       	call   0x42c235
43e776:	84 c0                	test   %al,%al
43e778:	74 cd                	je     0x43e747
43e77a:	8b 7d 20             	mov    0x20(%ebp),%edi
43e77d:	8d 45 14             	lea    0x14(%ebp),%eax
43e780:	50                   	push   %eax
43e781:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43e784:	e8 ac da fe ff       	call   0x42c235
43e789:	84 c0                	test   %al,%al
43e78b:	0f 85 b2 00 00 00    	jne    0x43e843
43e791:	38 45 10             	cmp    %al,0x10(%ebp)
43e794:	75 08                	jne    0x43e79e
43e796:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43e799:	e8 dc c9 fe ff       	call   0x42b17a
43e79e:	8b 55 ec             	mov    -0x14(%ebp),%edx
43e7a1:	0f b6 4d 11          	movzbl 0x11(%ebp),%ecx
43e7a5:	8b 42 0c             	mov    0xc(%edx),%eax
43e7a8:	0f bf 04 48          	movswl (%eax,%ecx,2),%eax
43e7ac:	c1 e8 02             	shr    $0x2,%eax
43e7af:	a8 01                	test   $0x1,%al
43e7b1:	75 40                	jne    0x43e7f3
43e7b3:	83 fb 02             	cmp    $0x2,%ebx
43e7b6:	75 07                	jne    0x43e7bf
43e7b8:	09 1f                	or     %ebx,(%edi)
43e7ba:	e9 84 00 00 00       	jmp    0x43e843
43e7bf:	ff 75 24             	push   0x24(%ebp)
43e7c2:	8b 4d f0             	mov    -0x10(%ebp),%ecx
43e7c5:	8d 45 e4             	lea    -0x1c(%ebp),%eax
43e7c8:	57                   	push   %edi
43e7c9:	ff 75 1c             	push   0x1c(%ebp)
43e7cc:	ff 75 18             	push   0x18(%ebp)
43e7cf:	ff 75 14             	push   0x14(%ebp)
43e7d2:	ff 75 10             	push   0x10(%ebp)
43e7d5:	ff 75 0c             	push   0xc(%ebp)
43e7d8:	50                   	push   %eax
43e7d9:	e8 94 08 00 00       	call   0x43f072
43e7de:	8b 08                	mov    (%eax),%ecx
43e7e0:	89 4d 0c             	mov    %ecx,0xc(%ebp)
43e7e3:	8b 40 04             	mov    0x4(%eax),%eax
43e7e6:	89 45 10             	mov    %eax,0x10(%ebp)
43e7e9:	83 fb 04             	cmp    $0x4,%ebx
43e7ec:	75 55                	jne    0x43e843
43e7ee:	6a 03                	push   $0x3
43e7f0:	5b                   	pop    %ebx
43e7f1:	eb 50                	jmp    0x43e843
43e7f3:	83 fb 01             	cmp    $0x1,%ebx
43e7f6:	74 28                	je     0x43e820
43e7f8:	83 fb 03             	cmp    $0x3,%ebx
43e7fb:	74 23                	je     0x43e820
43e7fd:	8b 45 24             	mov    0x24(%ebp),%eax
43e800:	52                   	push   %edx
43e801:	83 c0 0c             	add    $0xc,%eax
43e804:	50                   	push   %eax
43e805:	6a 1f                	push   $0x1f
43e807:	6a 01                	push   $0x1
43e809:	8d 45 14             	lea    0x14(%ebp),%eax
43e80c:	50                   	push   %eax
43e80d:	8d 45 0c             	lea    0xc(%ebp),%eax
43e810:	50                   	push   %eax
43e811:	ff 75 f0             	push   -0x10(%ebp)
43e814:	e8 de e0 ff ff       	call   0x43c8f7
43e819:	83 c4 1c             	add    $0x1c,%esp
43e81c:	09 07                	or     %eax,(%edi)
43e81e:	eb 23                	jmp    0x43e843
43e820:	8b 75 24             	mov    0x24(%ebp),%esi
43e823:	8d 45 14             	lea    0x14(%ebp),%eax
43e826:	52                   	push   %edx
43e827:	83 c6 10             	add    $0x10,%esi
43e82a:	56                   	push   %esi
43e82b:	6a 0c                	push   $0xc
43e82d:	6a 01                	push   $0x1
43e82f:	50                   	push   %eax
43e830:	8d 45 0c             	lea    0xc(%ebp),%eax
43e833:	50                   	push   %eax
43e834:	ff 75 f0             	push   -0x10(%ebp)
43e837:	e8 bb e0 ff ff       	call   0x43c8f7
43e83c:	09 07                	or     %eax,(%edi)
43e83e:	83 c4 1c             	add    $0x1c,%esp
43e841:	ff 0e                	decl   (%esi)
43e843:	8d 45 14             	lea    0x14(%ebp),%eax
43e846:	50                   	push   %eax
43e847:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43e84a:	e8 e6 d9 fe ff       	call   0x42c235
43e84f:	8b 75 ec             	mov    -0x14(%ebp),%esi
43e852:	84 c0                	test   %al,%al
43e854:	75 30                	jne    0x43e886
43e856:	38 45 10             	cmp    %al,0x10(%ebp)
43e859:	75 08                	jne    0x43e863
43e85b:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43e85e:	e8 17 c9 fe ff       	call   0x42b17a
43e863:	0f b6 4d 11          	movzbl 0x11(%ebp),%ecx
43e867:	8b 46 0c             	mov    0xc(%esi),%eax
43e86a:	f6 04 48 48          	testb  $0x48,(%eax,%ecx,2)
43e86e:	74 16                	je     0x43e886
43e870:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43e873:	e8 dd c0 fe ff       	call   0x42a955
43e878:	8d 45 14             	lea    0x14(%ebp),%eax
43e87b:	50                   	push   %eax
43e87c:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43e87f:	e8 b1 d9 fe ff       	call   0x42c235
43e884:	eb cc                	jmp    0x43e852
43e886:	8d 45 14             	lea    0x14(%ebp),%eax
43e889:	50                   	push   %eax
43e88a:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43e88d:	e8 a3 d9 fe ff       	call   0x42c235
43e892:	84 c0                	test   %al,%al
43e894:	75 38                	jne    0x43e8ce
43e896:	38 45 10             	cmp    %al,0x10(%ebp)
43e899:	75 08                	jne    0x43e8a3
43e89b:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43e89e:	e8 d7 c8 fe ff       	call   0x42b17a
43e8a3:	8b 06                	mov    (%esi),%eax
43e8a5:	6a 00                	push   $0x0
43e8a7:	ff 75 11             	push   0x11(%ebp)
43e8aa:	8b 70 28             	mov    0x28(%eax),%esi
43e8ad:	8b ce                	mov    %esi,%ecx
43e8af:	ff 15 54 43 49 00    	call   *0x494354
43e8b5:	8b 4d ec             	mov    -0x14(%ebp),%ecx
43e8b8:	ff d6                	call   *%esi
43e8ba:	3c 3a                	cmp    $0x3a,%al
43e8bc:	74 08                	je     0x43e8c6
43e8be:	3c 2c                	cmp    $0x2c,%al
43e8c0:	74 04                	je     0x43e8c6
43e8c2:	3c 2f                	cmp    $0x2f,%al
43e8c4:	75 08                	jne    0x43e8ce
43e8c6:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43e8c9:	e8 87 c0 fe ff       	call   0x42a955
43e8ce:	8d 45 14             	lea    0x14(%ebp),%eax
43e8d1:	50                   	push   %eax
43e8d2:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43e8d5:	e8 5b d9 fe ff       	call   0x42c235
43e8da:	84 c0                	test   %al,%al
43e8dc:	75 39                	jne    0x43e917
43e8de:	8b 7d ec             	mov    -0x14(%ebp),%edi
43e8e1:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
43e8e5:	75 08                	jne    0x43e8ef
43e8e7:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43e8ea:	e8 8b c8 fe ff       	call   0x42b17a
43e8ef:	0f b6 4d 11          	movzbl 0x11(%ebp),%ecx
43e8f3:	8b 47 0c             	mov    0xc(%edi),%eax
43e8f6:	f6 04 48 48          	testb  $0x48,(%eax,%ecx,2)
43e8fa:	74 18                	je     0x43e914
43e8fc:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43e8ff:	e8 51 c0 fe ff       	call   0x42a955
43e904:	8d 45 14             	lea    0x14(%ebp),%eax
43e907:	50                   	push   %eax
43e908:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43e90b:	e8 25 d9 fe ff       	call   0x42c235
43e910:	84 c0                	test   %al,%al
43e912:	74 cd                	je     0x43e8e1
43e914:	8b 7d 20             	mov    0x20(%ebp),%edi
43e917:	8d 45 14             	lea    0x14(%ebp),%eax
43e91a:	50                   	push   %eax
43e91b:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43e91e:	e8 12 d9 fe ff       	call   0x42c235
43e923:	84 c0                	test   %al,%al
43e925:	74 08                	je     0x43e92f
43e927:	83 0f 02             	orl    $0x2,(%edi)
43e92a:	e9 c5 00 00 00       	jmp    0x43e9f4
43e92f:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
43e933:	75 08                	jne    0x43e93d
43e935:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43e938:	e8 3d c8 fe ff       	call   0x42b17a
43e93d:	8b 55 ec             	mov    -0x14(%ebp),%edx
43e940:	0f b6 4d 11          	movzbl 0x11(%ebp),%ecx
43e944:	8b 42 0c             	mov    0xc(%edx),%eax
43e947:	0f bf 04 48          	movswl (%eax,%ecx,2),%eax
43e94b:	c1 e8 02             	shr    $0x2,%eax
43e94e:	a8 01                	test   $0x1,%al
43e950:	75 26                	jne    0x43e978
43e952:	83 fb 04             	cmp    $0x4,%ebx
43e955:	75 d0                	jne    0x43e927
43e957:	ff 75 24             	push   0x24(%ebp)
43e95a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
43e95d:	8d 45 e4             	lea    -0x1c(%ebp),%eax
43e960:	57                   	push   %edi
43e961:	ff 75 1c             	push   0x1c(%ebp)
43e964:	ff 75 18             	push   0x18(%ebp)
43e967:	ff 75 14             	push   0x14(%ebp)
43e96a:	ff 75 10             	push   0x10(%ebp)
43e96d:	ff 75 0c             	push   0xc(%ebp)
43e970:	50                   	push   %eax
43e971:	e8 fc 06 00 00       	call   0x43f072
43e976:	eb 71                	jmp    0x43e9e9
43e978:	83 fb 04             	cmp    $0x4,%ebx
43e97b:	75 25                	jne    0x43e9a2
43e97d:	8b 75 24             	mov    0x24(%ebp),%esi
43e980:	8d 45 14             	lea    0x14(%ebp),%eax
43e983:	52                   	push   %edx
43e984:	83 c6 10             	add    $0x10,%esi
43e987:	56                   	push   %esi
43e988:	6a 0c                	push   $0xc
43e98a:	6a 01                	push   $0x1