43b710:	88 5d ef             	mov    %bl,-0x11(%ebp)
43b713:	3c 02                	cmp    $0x2,%al
43b715:	0f 87 c1 00 00 00    	ja     0x43b7dc
43b71b:	80 fb 01             	cmp    $0x1,%bl
43b71e:	0f 82 b8 00 00 00    	jb     0x43b7dc
43b724:	3a df                	cmp    %bh,%bl
43b726:	0f 83 b0 00 00 00    	jae    0x43b7dc
43b72c:	8b 4d 10             	mov    0x10(%ebp),%ecx
43b72f:	0f b6 c3             	movzbl %bl,%eax
43b732:	89 45 dc             	mov    %eax,-0x24(%ebp)
43b735:	3b c1                	cmp    %ecx,%eax
43b737:	73 02                	jae    0x43b73b
43b739:	8b c8                	mov    %eax,%ecx
43b73b:	8b c7                	mov    %edi,%eax
43b73d:	2b 45 e0             	sub    -0x20(%ebp),%eax
43b740:	eb 25                	jmp    0x43b767
43b742:	8a 1f                	mov    (%edi),%bl
43b744:	47                   	inc    %edi
43b745:	40                   	inc    %eax
43b746:	88 5d ee             	mov    %bl,-0x12(%ebp)
43b749:	89 45 e0             	mov    %eax,-0x20(%ebp)
43b74c:	8a e3                	mov    %bl,%ah
43b74e:	8a 5d ef             	mov    -0x11(%ebp),%bl
43b751:	8a c4                	mov    %ah,%al
43b753:	24 c0                	and    $0xc0,%al
43b755:	3c 80                	cmp    $0x80,%al
43b757:	75 30                	jne    0x43b789
43b759:	0f b6 c4             	movzbl %ah,%eax
43b75c:	83 e0 3f             	and    $0x3f,%eax
43b75f:	c1 e2 06             	shl    $0x6,%edx
43b762:	0b d0                	or     %eax,%edx
43b764:	8b 45 e0             	mov    -0x20(%ebp),%eax
43b767:	3b c1                	cmp    %ecx,%eax
43b769:	72 d7                	jb     0x43b742
43b76b:	8b 7d dc             	mov    -0x24(%ebp),%edi
43b76e:	3b cf                	cmp    %edi,%ecx
43b770:	73 1c                	jae    0x43b78e
43b772:	0f b6 c7             	movzbl %bh,%eax
43b775:	2a d9                	sub    %cl,%bl
43b777:	66 89 46 04          	mov    %ax,0x4(%esi)
43b77b:	0f b6 c3             	movzbl %bl,%eax
43b77e:	89 16                	mov    %edx,(%esi)
43b780:	66 89 46 06          	mov    %ax,0x6(%esi)
43b784:	e9 0e ff ff ff       	jmp    0x43b697
43b789:	ff 75 e4             	push   -0x1c(%ebp)
43b78c:	eb 4f                	jmp    0x43b7dd
43b78e:	81 fa 00 d8 00 00    	cmp    $0xd800,%edx
43b794:	72 08                	jb     0x43b79e
43b796:	81 fa ff df 00 00    	cmp    $0xdfff,%edx
43b79c:	76 eb                	jbe    0x43b789
43b79e:	81 fa ff ff 10 00    	cmp    $0x10ffff,%edx
43b7a4:	77 e3                	ja     0x43b789
43b7a6:	0f b6 c7             	movzbl %bh,%eax
43b7a9:	c7 45 f0 80 00 00 00 	movl   $0x80,-0x10(%ebp)
43b7b0:	c7 45 f4 00 08 00 00 	movl   $0x800,-0xc(%ebp)
43b7b7:	c7 45 f8 00 00 01 00 	movl   $0x10000,-0x8(%ebp)
43b7be:	3b 54 85 e8          	cmp    -0x18(%ebp,%eax,4),%edx
43b7c2:	72 c5                	jb     0x43b789
43b7c4:	8b 4d e8             	mov    -0x18(%ebp),%ecx
43b7c7:	85 c9                	test   %ecx,%ecx
43b7c9:	74 02                	je     0x43b7cd
43b7cb:	89 11                	mov    %edx,(%ecx)
43b7cd:	f7 da                	neg    %edx
43b7cf:	56                   	push   %esi
43b7d0:	1b d2                	sbb    %edx,%edx
43b7d2:	23 d7                	and    %edi,%edx
43b7d4:	52                   	push   %edx
43b7d5:	e8 33 fe ff ff       	call   0x43b60d
43b7da:	eb 07                	jmp    0x43b7e3
43b7dc:	51                   	push   %ecx
43b7dd:	56                   	push   %esi
43b7de:	e8 3e fe ff ff       	call   0x43b621
43b7e3:	59                   	pop    %ecx
43b7e4:	59                   	pop    %ecx
43b7e5:	8b 4d fc             	mov    -0x4(%ebp),%ecx
43b7e8:	5f                   	pop    %edi
43b7e9:	5e                   	pop    %esi
43b7ea:	33 cd                	xor    %ebp,%ecx
43b7ec:	5b                   	pop    %ebx
43b7ed:	e8 de 00 fe ff       	call   0x41b8d0
43b7f2:	c9                   	leave
43b7f3:	c3                   	ret
43b7f4:	cc                   	int3
43b7f5:	cc                   	int3
43b7f6:	cc                   	int3
43b7f7:	cc                   	int3
43b7f8:	cc                   	int3
43b7f9:	cc                   	int3
43b7fa:	cc                   	int3
43b7fb:	cc                   	int3
43b7fc:	cc                   	int3
43b7fd:	cc                   	int3
43b7fe:	cc                   	int3
43b7ff:	cc                   	int3
43b800:	55                   	push   %ebp
43b801:	8b ec                	mov    %esp,%ebp
43b803:	57                   	push   %edi
43b804:	56                   	push   %esi
43b805:	53                   	push   %ebx
43b806:	8b 4d 10             	mov    0x10(%ebp),%ecx
43b809:	0b c9                	or     %ecx,%ecx
43b80b:	74 4d                	je     0x43b85a
43b80d:	8b 75 08             	mov    0x8(%ebp),%esi
43b810:	8b 7d 0c             	mov    0xc(%ebp),%edi
43b813:	b7 41                	mov    $0x41,%bh
43b815:	b3 5a                	mov    $0x5a,%bl
43b817:	b6 20                	mov    $0x20,%dh
43b819:	8d 49 00             	lea    0x0(%ecx),%ecx
43b81c:	8a 26                	mov    (%esi),%ah
43b81e:	0a e4                	or     %ah,%ah
43b820:	8a 07                	mov    (%edi),%al
43b822:	74 27                	je     0x43b84b
43b824:	0a c0                	or     %al,%al
43b826:	74 23                	je     0x43b84b
43b828:	83 c6 01             	add    $0x1,%esi
43b82b:	83 c7 01             	add    $0x1,%edi
43b82e:	3a e7                	cmp    %bh,%ah
43b830:	72 06                	jb     0x43b838
43b832:	3a e3                	cmp    %bl,%ah
43b834:	77 02                	ja     0x43b838
43b836:	02 e6                	add    %dh,%ah
43b838:	3a c7                	cmp    %bh,%al
43b83a:	72 06                	jb     0x43b842
43b83c:	3a c3                	cmp    %bl,%al
43b83e:	77 02                	ja     0x43b842
43b840:	02 c6                	add    %dh,%al
43b842:	3a e0                	cmp    %al,%ah
43b844:	75 0b                	jne    0x43b851
43b846:	83 e9 01             	sub    $0x1,%ecx
43b849:	75 d1                	jne    0x43b81c
43b84b:	33 c9                	xor    %ecx,%ecx
43b84d:	3a e0                	cmp    %al,%ah
43b84f:	74 09                	je     0x43b85a
43b851:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
43b856:	72 02                	jb     0x43b85a
43b858:	f7 d9                	neg    %ecx
43b85a:	8b c1                	mov    %ecx,%eax
43b85c:	5b                   	pop    %ebx
43b85d:	5e                   	pop    %esi
43b85e:	5f                   	pop    %edi
43b85f:	c9                   	leave
43b860:	c3                   	ret
43b861:	8b ff                	mov    %edi,%edi
43b863:	55                   	push   %ebp
43b864:	8b ec                	mov    %esp,%ebp
43b866:	53                   	push   %ebx
43b867:	56                   	push   %esi
43b868:	8b 75 08             	mov    0x8(%ebp),%esi
43b86b:	33 db                	xor    %ebx,%ebx
43b86d:	57                   	push   %edi
43b86e:	6a 01                	push   $0x1
43b870:	53                   	push   %ebx
43b871:	53                   	push   %ebx
43b872:	56                   	push   %esi
43b873:	8b f9                	mov    %ecx,%edi
43b875:	e8 86 50 ff ff       	call   0x430900
43b87a:	6a 02                	push   $0x2
43b87c:	53                   	push   %ebx
43b87d:	53                   	push   %ebx
43b87e:	56                   	push   %esi
43b87f:	89 07                	mov    %eax,(%edi)
43b881:	89 57 04             	mov    %edx,0x4(%edi)
43b884:	e8 77 50 ff ff       	call   0x430900
43b889:	8b 4d 0c             	mov    0xc(%ebp),%ecx
43b88c:	83 c4 20             	add    $0x20,%esp
43b88f:	89 47 08             	mov    %eax,0x8(%edi)
43b892:	2b c8                	sub    %eax,%ecx
43b894:	8b 45 10             	mov    0x10(%ebp),%eax
43b897:	1b c2                	sbb    %edx,%eax
43b899:	89 77 18             	mov    %esi,0x18(%edi)
43b89c:	89 47 14             	mov    %eax,0x14(%edi)
43b89f:	8b c7                	mov    %edi,%eax
43b8a1:	89 57 0c             	mov    %edx,0xc(%edi)
43b8a4:	89 4f 10             	mov    %ecx,0x10(%edi)
43b8a7:	5f                   	pop    %edi
43b8a8:	5e                   	pop    %esi
43b8a9:	5b                   	pop    %ebx
43b8aa:	5d                   	pop    %ebp
43b8ab:	c2 0c 00             	ret    $0xc
43b8ae:	8b ff                	mov    %edi,%edi
43b8b0:	55                   	push   %ebp
43b8b1:	8b ec                	mov    %esp,%ebp
43b8b3:	83 ec 28             	sub    $0x28,%esp
43b8b6:	8d 4d d8             	lea    -0x28(%ebp),%ecx
43b8b9:	56                   	push   %esi
43b8ba:	6a 00                	push   $0x0
43b8bc:	e8 a2 4e fe ff       	call   0x420763
43b8c1:	8d 45 d8             	lea    -0x28(%ebp),%eax
43b8c4:	50                   	push   %eax
43b8c5:	ff 75 10             	push   0x10(%ebp)
43b8c8:	ff 75 0c             	push   0xc(%ebp)
43b8cb:	ff 75 08             	push   0x8(%ebp)
43b8ce:	e8 12 00 00 00       	call   0x43b8e5
43b8d3:	83 c4 10             	add    $0x10,%esp
43b8d6:	8d 4d d8             	lea    -0x28(%ebp),%ecx
43b8d9:	8b f0                	mov    %eax,%esi
43b8db:	e8 cb 4e fe ff       	call   0x4207ab
43b8e0:	8b c6                	mov    %esi,%eax
43b8e2:	5e                   	pop    %esi
43b8e3:	c9                   	leave
43b8e4:	c3                   	ret
43b8e5:	8b ff                	mov    %edi,%edi
43b8e7:	55                   	push   %ebp
43b8e8:	8b ec                	mov    %esp,%ebp
43b8ea:	83 ec 2c             	sub    $0x2c,%esp
43b8ed:	53                   	push   %ebx
43b8ee:	8b 5d 08             	mov    0x8(%ebp),%ebx
43b8f1:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
43b8f4:	56                   	push   %esi
43b8f5:	57                   	push   %edi
43b8f6:	ff 75 10             	push   0x10(%ebp)
43b8f9:	8b 7d 14             	mov    0x14(%ebp),%edi
43b8fc:	ff 75 0c             	push   0xc(%ebp)
43b8ff:	53                   	push   %ebx
43b900:	e8 5c ff ff ff       	call   0x43b861
43b905:	8b 45 d4             	mov    -0x2c(%ebp),%eax
43b908:	23 45 d8             	and    -0x28(%ebp),%eax
43b90b:	83 f8 ff             	cmp    $0xffffffff,%eax
43b90e:	0f 84 40 01 00 00    	je     0x43ba54
43b914:	8b 45 dc             	mov    -0x24(%ebp),%eax
43b917:	23 45 e0             	and    -0x20(%ebp),%eax
43b91a:	83 f8 ff             	cmp    $0xffffffff,%eax
43b91d:	0f 84 31 01 00 00    	je     0x43ba54
43b923:	8b 4d e8             	mov    -0x18(%ebp),%ecx
43b926:	8b 45 e4             	mov    -0x1c(%ebp),%eax
43b929:	89 4d f8             	mov    %ecx,-0x8(%ebp)
43b92c:	89 45 fc             	mov    %eax,-0x4(%ebp)
43b92f:	85 c9                	test   %ecx,%ecx
43b931:	0f 8c d2 00 00 00    	jl     0x43ba09
43b937:	7f 08                	jg     0x43b941
43b939:	85 c0                	test   %eax,%eax
43b93b:	0f 84 be 00 00 00    	je     0x43b9ff
43b941:	6a 01                	push   $0x1
43b943:	68 00 10 00 00       	push   $0x1000
43b948:	e8 cd 0a ff ff       	call   0x42c41a
43b94d:	8b f0                	mov    %eax,%esi
43b94f:	59                   	pop    %ecx
43b950:	59                   	pop    %ecx
43b951:	85 f6                	test   %esi,%esi
43b953:	75 0f                	jne    0x43b964
43b955:	6a 0c                	push   $0xc
43b957:	5b                   	pop    %ebx
43b958:	c6 47 1c 01          	movb   $0x1,0x1c(%edi)
43b95c:	89 5f 18             	mov    %ebx,0x18(%edi)
43b95f:	e9 92 00 00 00       	jmp    0x43b9f6
43b964:	68 00 80 00 00       	push   $0x8000
43b969:	53                   	push   %ebx
43b96a:	e8 11 e6 fe ff       	call   0x429f80
43b96f:	59                   	pop    %ecx
43b970:	59                   	pop    %ecx
43b971:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
43b974:	89 45 f4             	mov    %eax,-0xc(%ebp)
43b977:	8b 45 e8             	mov    -0x18(%ebp),%eax
43b97a:	85 c0                	test   %eax,%eax
43b97c:	7c 0f                	jl     0x43b98d
43b97e:	7f 08                	jg     0x43b988
43b980:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
43b986:	72 05                	jb     0x43b98d
43b988:	b9 00 10 00 00       	mov    $0x1000,%ecx
43b98d:	57                   	push   %edi
43b98e:	51                   	push   %ecx
43b98f:	56                   	push   %esi
43b990:	53                   	push   %ebx
43b991:	e8 ed e4 ff ff       	call   0x439e83
43b996:	83 c4 10             	add    $0x10,%esp
43b999:	83 f8 ff             	cmp    $0xffffffff,%eax
43b99c:	74 34                	je     0x43b9d2
43b99e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
43b9a1:	99                   	cltd
43b9a2:	2b c8                	sub    %eax,%ecx
43b9a4:	8b 45 f8             	mov    -0x8(%ebp),%eax
43b9a7:	89 4d fc             	mov    %ecx,-0x4(%ebp)
43b9aa:	1b c2                	sbb    %edx,%eax
43b9ac:	89 45 f8             	mov    %eax,-0x8(%ebp)
43b9af:	85 c0                	test   %eax,%eax
43b9b1:	7f d5                	jg     0x43b988
43b9b3:	7c 04                	jl     0x43b9b9
43b9b5:	85 c9                	test   %ecx,%ecx
43b9b7:	75 c1                	jne    0x43b97a
43b9b9:	ff 75 f4             	push   -0xc(%ebp)
43b9bc:	53                   	push   %ebx
43b9bd:	e8 be e5 fe ff       	call   0x429f80
43b9c2:	56                   	push   %esi
43b9c3:	e8 af 0a ff ff       	call   0x42c477
43b9c8:	83 c4 0c             	add    $0xc,%esp
43b9cb:	33 db                	xor    %ebx,%ebx
43b9cd:	e9 90 00 00 00       	jmp    0x43ba62
43b9d2:	80 7f 24 00          	cmpb   $0x0,0x24(%edi)
43b9d6:	74 11                	je     0x43b9e9
43b9d8:	83 7f 20 05          	cmpl   $0x5,0x20(%edi)
43b9dc:	75 0b                	jne    0x43b9e9
43b9de:	c6 47 1c 01          	movb   $0x1,0x1c(%edi)
43b9e2:	c7 47 18 0d 00 00 00 	movl   $0xd,0x18(%edi)
43b9e9:	80 7f 1c 00          	cmpb   $0x0,0x1c(%edi)
43b9ed:	74 05                	je     0x43b9f4
43b9ef:	8b 5f 18             	mov    0x18(%edi),%ebx
43b9f2:	eb 02                	jmp    0x43b9f6
43b9f4:	33 db                	xor    %ebx,%ebx
43b9f6:	56                   	push   %esi
43b9f7:	e8 7b 0a ff ff       	call   0x42c477
43b9fc:	59                   	pop    %ecx
43b9fd:	eb 63                	jmp    0x43ba62
43b9ff:	85 c9                	test   %ecx,%ecx
43ba01:	7f c8                	jg     0x43b9cb
43ba03:	7c 04                	jl     0x43ba09
43ba05:	85 c0                	test   %eax,%eax
43ba07:	73 c2                	jae    0x43b9cb
43ba09:	6a 00                	push   $0x0
43ba0b:	ff 75 10             	push   0x10(%ebp)
43ba0e:	ff 75 0c             	push   0xc(%ebp)
43ba11:	53                   	push   %ebx
43ba12:	e8 e9 4e ff ff       	call   0x430900
43ba17:	23 c2                	and    %edx,%eax
43ba19:	83 c4 10             	add    $0x10,%esp
43ba1c:	83 f8 ff             	cmp    $0xffffffff,%eax
43ba1f:	75 08                	jne    0x43ba29
43ba21:	80 7f 1c 00          	cmpb   $0x0,0x1c(%edi)
43ba25:	74 a4                	je     0x43b9cb
43ba27:	eb 31                	jmp    0x43ba5a
43ba29:	53                   	push   %ebx
43ba2a:	e8 fb 8b ff ff       	call   0x43462a
43ba2f:	59                   	pop    %ecx
43ba30:	50                   	push   %eax
43ba31:	ff 15 18 f0 43 00    	call   *0x43f018
43ba37:	85 c0                	test   %eax,%eax
43ba39:	75 90                	jne    0x43b9cb
43ba3b:	ff 15 60 f0 43 00    	call   *0x43f060
43ba41:	6a 0d                	push   $0xd
43ba43:	c6 47 24 01          	movb   $0x1,0x24(%edi)
43ba47:	89 47 20             	mov    %eax,0x20(%edi)
43ba4a:	5b                   	pop    %ebx
43ba4b:	c6 47 1c 01          	movb   $0x1,0x1c(%edi)
43ba4f:	89 5f 18             	mov    %ebx,0x18(%edi)
43ba52:	eb 0e                	jmp    0x43ba62
43ba54:	80 7f 1c 00          	cmpb   $0x0,0x1c(%edi)
43ba58:	74 05                	je     0x43ba5f
43ba5a:	8b 5f 18             	mov    0x18(%edi),%ebx
43ba5d:	eb 03                	jmp    0x43ba62
43ba5f:	6a 16                	push   $0x16
43ba61:	5b                   	pop    %ebx
43ba62:	6a 00                	push   $0x0
43ba64:	ff 75 d8             	push   -0x28(%ebp)
43ba67:	ff 75 d4             	push   -0x2c(%ebp)
43ba6a:	ff 75 ec             	push   -0x14(%ebp)
43ba6d:	e8 8e 4e ff ff       	call   0x430900
43ba72:	83 c4 10             	add    $0x10,%esp
43ba75:	8b c3                	mov    %ebx,%eax
43ba77:	5f                   	pop    %edi
43ba78:	5e                   	pop    %esi
43ba79:	5b                   	pop    %ebx