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
43e98c:	50                   	push   %eax
43e98d:	8d 45 0c             	lea    0xc(%ebp),%eax
43e990:	50                   	push   %eax
43e991:	ff 75 f0             	push   -0x10(%ebp)
43e994:	e8 5e df ff ff       	call   0x43c8f7
43e999:	09 07                	or     %eax,(%edi)
43e99b:	83 c4 1c             	add    $0x1c,%esp
43e99e:	ff 0e                	decl   (%esi)
43e9a0:	eb 52                	jmp    0x43e9f4
43e9a2:	83 fb 03             	cmp    $0x3,%ebx
43e9a5:	75 23                	jne    0x43e9ca
43e9a7:	8b 45 24             	mov    0x24(%ebp),%eax
43e9aa:	52                   	push   %edx
43e9ab:	83 c0 0c             	add    $0xc,%eax
43e9ae:	50                   	push   %eax
43e9af:	6a 1f                	push   $0x1f
43e9b1:	6a 01                	push   $0x1
43e9b3:	8d 45 14             	lea    0x14(%ebp),%eax
43e9b6:	50                   	push   %eax
43e9b7:	8d 45 0c             	lea    0xc(%ebp),%eax
43e9ba:	50                   	push   %eax
43e9bb:	ff 75 f0             	push   -0x10(%ebp)
43e9be:	e8 34 df ff ff       	call   0x43c8f7
43e9c3:	83 c4 1c             	add    $0x1c,%esp
43e9c6:	09 07                	or     %eax,(%edi)
43e9c8:	eb 2a                	jmp    0x43e9f4
43e9ca:	ff 75 24             	push   0x24(%ebp)
43e9cd:	8b 4d f0             	mov    -0x10(%ebp),%ecx
43e9d0:	8d 45 dc             	lea    -0x24(%ebp),%eax
43e9d3:	57                   	push   %edi
43e9d4:	ff 75 1c             	push   0x1c(%ebp)
43e9d7:	ff 75 18             	push   0x18(%ebp)
43e9da:	ff 75 14             	push   0x14(%ebp)
43e9dd:	ff 75 10             	push   0x10(%ebp)
43e9e0:	ff 75 0c             	push   0xc(%ebp)
43e9e3:	50                   	push   %eax
43e9e4:	e8 f9 06 00 00       	call   0x43f0e2
43e9e9:	8b 08                	mov    (%eax),%ecx
43e9eb:	89 4d 0c             	mov    %ecx,0xc(%ebp)
43e9ee:	8b 40 04             	mov    0x4(%eax),%eax
43e9f1:	89 45 10             	mov    %eax,0x10(%ebp)
43e9f4:	8d 45 14             	lea    0x14(%ebp),%eax
43e9f7:	50                   	push   %eax
43e9f8:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43e9fb:	e8 35 d8 fe ff       	call   0x42c235
43ea00:	84 c0                	test   %al,%al
43ea02:	74 03                	je     0x43ea07
43ea04:	83 0f 01             	orl    $0x1,(%edi)
43ea07:	8b 45 08             	mov    0x8(%ebp),%eax
43ea0a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
43ea0d:	89 08                	mov    %ecx,(%eax)
43ea0f:	8b 4d 10             	mov    0x10(%ebp),%ecx
43ea12:	89 48 04             	mov    %ecx,0x4(%eax)
43ea15:	e8 f9 0f 00 00       	call   0x43fa13
43ea1a:	c2 20 00             	ret    $0x20
43ea1d:	55                   	push   %ebp
43ea1e:	8b ec                	mov    %esp,%ebp
43ea20:	ff 71 0c             	push   0xc(%ecx)
43ea23:	8d 45 14             	lea    0x14(%ebp),%eax
43ea26:	6a 00                	push   $0x0
43ea28:	50                   	push   %eax
43ea29:	8d 45 0c             	lea    0xc(%ebp),%eax
43ea2c:	50                   	push   %eax
43ea2d:	e8 91 9b fe ff       	call   0x4285c3
43ea32:	8b c8                	mov    %eax,%ecx
43ea34:	83 c4 10             	add    $0x10,%esp
43ea37:	85 c9                	test   %ecx,%ecx
43ea39:	79 08                	jns    0x43ea43
43ea3b:	8b 45 20             	mov    0x20(%ebp),%eax
43ea3e:	83 08 02             	orl    $0x2,(%eax)
43ea41:	eb 08                	jmp    0x43ea4b
43ea43:	8b 45 24             	mov    0x24(%ebp),%eax
43ea46:	d1 f9                	sar    $1,%ecx
43ea48:	89 48 10             	mov    %ecx,0x10(%eax)
43ea4b:	8b 45 08             	mov    0x8(%ebp),%eax
43ea4e:	8b 4d 0c             	mov    0xc(%ebp),%ecx
43ea51:	89 08                	mov    %ecx,(%eax)
43ea53:	8b 4d 10             	mov    0x10(%ebp),%ecx
43ea56:	89 48 04             	mov    %ecx,0x4(%eax)
43ea59:	5d                   	pop    %ebp
43ea5a:	c2 20 00             	ret    $0x20
43ea5d:	6a 0c                	push   $0xc
43ea5f:	b8 71 2e 49 00       	mov    $0x492e71,%eax
43ea64:	e8 e1 0f 00 00       	call   0x43fa4a
43ea69:	8b f1                	mov    %ecx,%esi
43ea6b:	89 75 f0             	mov    %esi,-0x10(%ebp)
43ea6e:	8b 45 1c             	mov    0x1c(%ebp),%eax
43ea71:	8d 4d e8             	lea    -0x18(%ebp),%ecx
43ea74:	ff 70 30             	push   0x30(%eax)
43ea77:	e8 c0 a3 fe ff       	call   0x428e3c
43ea7c:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
43ea80:	8d 45 e8             	lea    -0x18(%ebp),%eax
43ea83:	50                   	push   %eax
43ea84:	e8 33 a2 fc ff       	call   0x408cbc
43ea89:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
43ea8d:	8b d8                	mov    %eax,%ebx
43ea8f:	59                   	pop    %ecx
43ea90:	8d 4d e8             	lea    -0x18(%ebp),%ecx
43ea93:	e8 4f 09 fd ff       	call   0x40f3e7
43ea98:	8b 4d 24             	mov    0x24(%ebp),%ecx
43ea9b:	8d 45 14             	lea    0x14(%ebp),%eax
43ea9e:	53                   	push   %ebx
43ea9f:	83 c1 08             	add    $0x8,%ecx
43eaa2:	51                   	push   %ecx
43eaa3:	6a 17                	push   $0x17
43eaa5:	6a 00                	push   $0x0
43eaa7:	50                   	push   %eax
43eaa8:	8d 45 0c             	lea    0xc(%ebp),%eax
43eaab:	50                   	push   %eax
43eaac:	56                   	push   %esi
43eaad:	e8 45 de ff ff       	call   0x43c8f7
43eab2:	8b 7d 20             	mov    0x20(%ebp),%edi
43eab5:	83 c4 1c             	add    $0x1c,%esp
43eab8:	09 07                	or     %eax,(%edi)
43eaba:	75 53                	jne    0x43eb0f
43eabc:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
43eac0:	75 08                	jne    0x43eaca
43eac2:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43eac5:	e8 b0 c6 fe ff       	call   0x42b17a
43eaca:	8b 03                	mov    (%ebx),%eax
43eacc:	6a 00                	push   $0x0
43eace:	ff 75 11             	push   0x11(%ebp)
43ead1:	8b 70 28             	mov    0x28(%eax),%esi
43ead4:	8b ce                	mov    %esi,%ecx
43ead6:	ff 15 54 43 49 00    	call   *0x494354
43eadc:	8b cb                	mov    %ebx,%ecx
43eade:	ff d6                	call   *%esi
43eae0:	3c 3a                	cmp    $0x3a,%al
43eae2:	75 2b                	jne    0x43eb0f
43eae4:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43eae7:	e8 69 be fe ff       	call   0x42a955
43eaec:	8b 45 24             	mov    0x24(%ebp),%eax
43eaef:	53                   	push   %ebx
43eaf0:	83 c0 04             	add    $0x4,%eax
43eaf3:	50                   	push   %eax
43eaf4:	6a 3b                	push   $0x3b
43eaf6:	6a 00                	push   $0x0
43eaf8:	8d 45 14             	lea    0x14(%ebp),%eax
43eafb:	50                   	push   %eax
43eafc:	8d 45 0c             	lea    0xc(%ebp),%eax
43eaff:	50                   	push   %eax
43eb00:	ff 75 f0             	push   -0x10(%ebp)
43eb03:	e8 ef dd ff ff       	call   0x43c8f7
43eb08:	83 c4 1c             	add    $0x1c,%esp
43eb0b:	09 07                	or     %eax,(%edi)
43eb0d:	eb 03                	jmp    0x43eb12
43eb0f:	83 0f 02             	orl    $0x2,(%edi)
43eb12:	8b 07                	mov    (%edi),%eax
43eb14:	85 c0                	test   %eax,%eax
43eb16:	75 4e                	jne    0x43eb66
43eb18:	38 45 10             	cmp    %al,0x10(%ebp)
43eb1b:	75 08                	jne    0x43eb25
43eb1d:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43eb20:	e8 55 c6 fe ff       	call   0x42b17a
43eb25:	8b 03                	mov    (%ebx),%eax
43eb27:	6a 00                	push   $0x0
43eb29:	ff 75 11             	push   0x11(%ebp)
43eb2c:	8b 70 28             	mov    0x28(%eax),%esi
43eb2f:	8b ce                	mov    %esi,%ecx
43eb31:	ff 15 54 43 49 00    	call   *0x494354
43eb37:	8b cb                	mov    %ebx,%ecx
43eb39:	ff d6                	call   *%esi
43eb3b:	3c 3a                	cmp    $0x3a,%al
43eb3d:	75 27                	jne    0x43eb66
43eb3f:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43eb42:	e8 0e be fe ff       	call   0x42a955
43eb47:	53                   	push   %ebx
43eb48:	ff 75 24             	push   0x24(%ebp)
43eb4b:	8d 45 14             	lea    0x14(%ebp),%eax
43eb4e:	6a 3b                	push   $0x3b
43eb50:	6a 00                	push   $0x0
43eb52:	50                   	push   %eax
43eb53:	8d 45 0c             	lea    0xc(%ebp),%eax
43eb56:	50                   	push   %eax
43eb57:	ff 75 f0             	push   -0x10(%ebp)