458758:	75 02                	jne    0x45875c
45875a:	8b f9                	mov    %ecx,%edi
45875c:	e8 51 d2 ff ff       	call   0x4559b2
458761:	8b 5d 08             	mov    0x8(%ebp),%ebx
458764:	8d 3c 47             	lea    (%edi,%eax,2),%edi
458767:	83 c7 fe             	add    $0xfffffffe,%edi
45876a:	89 7e 34             	mov    %edi,0x34(%esi)
45876d:	8b 4e 28             	mov    0x28(%esi),%ecx
458770:	85 c9                	test   %ecx,%ecx
458772:	7f 04                	jg     0x458778
458774:	85 db                	test   %ebx,%ebx
458776:	74 3e                	je     0x4587b6
458778:	8b c3                	mov    %ebx,%eax
45877a:	33 d2                	xor    %edx,%edx
45877c:	f7 75 0c             	divl   0xc(%ebp)
45877f:	49                   	dec    %ecx
458780:	8b d8                	mov    %eax,%ebx
458782:	89 4e 28             	mov    %ecx,0x28(%esi)
458785:	8d 42 30             	lea    0x30(%edx),%eax
458788:	0f b7 c8             	movzwl %ax,%ecx
45878b:	83 f9 39             	cmp    $0x39,%ecx
45878e:	76 16                	jbe    0x4587a6
458790:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
458794:	0f 94 c0             	sete   %al
458797:	fe c8                	dec    %al
458799:	24 e0                	and    $0xe0,%al
45879b:	04 61                	add    $0x61,%al
45879d:	2c 3a                	sub    $0x3a,%al
45879f:	02 c1                	add    %cl,%al
4587a1:	66 98                	cbtw
4587a3:	0f b7 c8             	movzwl %ax,%ecx
4587a6:	8b 46 34             	mov    0x34(%esi),%eax
4587a9:	66 0f be c9          	movsbw %cl,%cx
4587ad:	66 89 08             	mov    %cx,(%eax)
4587b0:	83 46 34 fe          	addl   $0xfffffffe,0x34(%esi)
4587b4:	eb b7                	jmp    0x45876d
4587b6:	2b 7e 34             	sub    0x34(%esi),%edi
4587b9:	d1 ff                	sar    $1,%edi
4587bb:	89 7e 38             	mov    %edi,0x38(%esi)
4587be:	83 46 34 02          	addl   $0x2,0x34(%esi)
4587c2:	5f                   	pop    %edi
4587c3:	5e                   	pop    %esi
4587c4:	5b                   	pop    %ebx
4587c5:	5d                   	pop    %ebp
4587c6:	c2 0c 00             	ret    $0xc
4587c9:	8b ff                	mov    %edi,%edi
4587cb:	55                   	push   %ebp
4587cc:	8b ec                	mov    %esp,%ebp
4587ce:	53                   	push   %ebx
4587cf:	56                   	push   %esi
4587d0:	8b f1                	mov    %ecx,%esi
4587d2:	57                   	push   %edi
4587d3:	8d 4e 40             	lea    0x40(%esi),%ecx
4587d6:	8b b9 04 04 00 00    	mov    0x404(%ecx),%edi
4587dc:	85 ff                	test   %edi,%edi
4587de:	75 02                	jne    0x4587e2
4587e0:	8b f9                	mov    %ecx,%edi
4587e2:	e8 cb d1 ff ff       	call   0x4559b2
4587e7:	8b 5d 08             	mov    0x8(%ebp),%ebx
4587ea:	8d 3c 47             	lea    (%edi,%eax,2),%edi
4587ed:	83 c7 fe             	add    $0xfffffffe,%edi
4587f0:	89 7e 34             	mov    %edi,0x34(%esi)
4587f3:	8b 4e 28             	mov    0x28(%esi),%ecx
4587f6:	85 c9                	test   %ecx,%ecx
4587f8:	7f 04                	jg     0x4587fe
4587fa:	85 db                	test   %ebx,%ebx
4587fc:	74 3e                	je     0x45883c
4587fe:	8b c3                	mov    %ebx,%eax
458800:	33 d2                	xor    %edx,%edx
458802:	f7 75 0c             	divl   0xc(%ebp)
458805:	49                   	dec    %ecx
458806:	8b d8                	mov    %eax,%ebx
458808:	89 4e 28             	mov    %ecx,0x28(%esi)
45880b:	8d 42 30             	lea    0x30(%edx),%eax
45880e:	0f b7 c8             	movzwl %ax,%ecx
458811:	83 f9 39             	cmp    $0x39,%ecx
458814:	76 16                	jbe    0x45882c
458816:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
45881a:	0f 94 c0             	sete   %al
45881d:	fe c8                	dec    %al
45881f:	24 e0                	and    $0xe0,%al
458821:	04 61                	add    $0x61,%al
458823:	2c 3a                	sub    $0x3a,%al
458825:	02 c1                	add    %cl,%al
458827:	66 98                	cbtw
458829:	0f b7 c8             	movzwl %ax,%ecx
45882c:	8b 46 34             	mov    0x34(%esi),%eax
45882f:	66 0f be c9          	movsbw %cl,%cx
458833:	66 89 08             	mov    %cx,(%eax)
458836:	83 46 34 fe          	addl   $0xfffffffe,0x34(%esi)
45883a:	eb b7                	jmp    0x4587f3
45883c:	2b 7e 34             	sub    0x34(%esi),%edi
45883f:	d1 ff                	sar    $1,%edi
458841:	89 7e 38             	mov    %edi,0x38(%esi)
458844:	83 46 34 02          	addl   $0x2,0x34(%esi)
458848:	5f                   	pop    %edi
458849:	5e                   	pop    %esi
45884a:	5b                   	pop    %ebx
45884b:	5d                   	pop    %ebp
45884c:	c2 0c 00             	ret    $0xc
45884f:	8b ff                	mov    %edi,%edi
458851:	55                   	push   %ebp
458852:	8b ec                	mov    %esp,%ebp
458854:	53                   	push   %ebx
458855:	56                   	push   %esi
458856:	8b f1                	mov    %ecx,%esi
458858:	57                   	push   %edi
458859:	8d 4e 40             	lea    0x40(%esi),%ecx
45885c:	8b b9 04 04 00 00    	mov    0x404(%ecx),%edi
458862:	85 ff                	test   %edi,%edi
458864:	75 02                	jne    0x458868
458866:	8b f9                	mov    %ecx,%edi
458868:	e8 45 d1 ff ff       	call   0x4559b2
45886d:	8b 5d 08             	mov    0x8(%ebp),%ebx
458870:	8d 3c 47             	lea    (%edi,%eax,2),%edi
458873:	83 c7 fe             	add    $0xfffffffe,%edi
458876:	89 7e 34             	mov    %edi,0x34(%esi)
458879:	8b 4e 28             	mov    0x28(%esi),%ecx
45887c:	85 c9                	test   %ecx,%ecx
45887e:	7f 04                	jg     0x458884
458880:	85 db                	test   %ebx,%ebx
458882:	74 3e                	je     0x4588c2
458884:	8b c3                	mov    %ebx,%eax
458886:	33 d2                	xor    %edx,%edx
458888:	f7 75 0c             	divl   0xc(%ebp)
45888b:	49                   	dec    %ecx
45888c:	8b d8                	mov    %eax,%ebx
45888e:	89 4e 28             	mov    %ecx,0x28(%esi)
458891:	8d 42 30             	lea    0x30(%edx),%eax
458894:	0f b7 c8             	movzwl %ax,%ecx
458897:	83 f9 39             	cmp    $0x39,%ecx
45889a:	76 16                	jbe    0x4588b2
45889c:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
4588a0:	0f 94 c0             	sete   %al
4588a3:	fe c8                	dec    %al
4588a5:	24 e0                	and    $0xe0,%al
4588a7:	04 61                	add    $0x61,%al
4588a9:	2c 3a                	sub    $0x3a,%al
4588ab:	02 c1                	add    %cl,%al
4588ad:	66 98                	cbtw
4588af:	0f b7 c8             	movzwl %ax,%ecx
4588b2:	8b 46 34             	mov    0x34(%esi),%eax
4588b5:	66 0f be c9          	movsbw %cl,%cx
4588b9:	66 89 08             	mov    %cx,(%eax)
4588bc:	83 46 34 fe          	addl   $0xfffffffe,0x34(%esi)
4588c0:	eb b7                	jmp    0x458879
4588c2:	2b 7e 34             	sub    0x34(%esi),%edi
4588c5:	d1 ff                	sar    $1,%edi
4588c7:	89 7e 38             	mov    %edi,0x38(%esi)
4588ca:	83 46 34 02          	addl   $0x2,0x34(%esi)
4588ce:	5f                   	pop    %edi
4588cf:	5e                   	pop    %esi
4588d0:	5b                   	pop    %ebx
4588d1:	5d                   	pop    %ebp
4588d2:	c2 0c 00             	ret    $0xc
4588d5:	8b ff                	mov    %edi,%edi
4588d7:	55                   	push   %ebp
4588d8:	8b ec                	mov    %esp,%ebp
4588da:	51                   	push   %ecx
4588db:	51                   	push   %ecx
4588dc:	53                   	push   %ebx
4588dd:	56                   	push   %esi
4588de:	8b f1                	mov    %ecx,%esi
4588e0:	57                   	push   %edi
4588e1:	8d 4e 40             	lea    0x40(%esi),%ecx
4588e4:	8b b9 04 04 00 00    	mov    0x404(%ecx),%edi
4588ea:	85 ff                	test   %edi,%edi
4588ec:	75 02                	jne    0x4588f0
4588ee:	8b f9                	mov    %ecx,%edi
4588f0:	e8 a5 d0 ff ff       	call   0x45599a
4588f5:	8b 55 0c             	mov    0xc(%ebp),%edx
4588f8:	48                   	dec    %eax
4588f9:	8b 5d 08             	mov    0x8(%ebp),%ebx
4588fc:	03 f8                	add    %eax,%edi
4588fe:	89 7e 34             	mov    %edi,0x34(%esi)
458901:	8b 4e 28             	mov    0x28(%esi),%ecx
458904:	85 c9                	test   %ecx,%ecx
458906:	7f 06                	jg     0x45890e
458908:	8b c3                	mov    %ebx,%eax
45890a:	0b c2                	or     %edx,%eax
45890c:	74 3c                	je     0x45894a
45890e:	53                   	push   %ebx
45890f:	6a 00                	push   $0x0
458911:	ff 75 10             	push   0x10(%ebp)
458914:	8d 41 ff             	lea    -0x1(%ecx),%eax
458917:	52                   	push   %edx
458918:	53                   	push   %ebx
458919:	89 46 28             	mov    %eax,0x28(%esi)
45891c:	e8 ff 73 fe ff       	call   0x43fd20
458921:	89 5d fc             	mov    %ebx,-0x4(%ebp)
458924:	5b                   	pop    %ebx
458925:	80 c1 30             	add    $0x30,%cl
458928:	8b d8                	mov    %eax,%ebx
45892a:	80 f9 39             	cmp    $0x39,%cl
45892d:	7e 11                	jle    0x458940
45892f:	80 7d 14 00          	cmpb   $0x0,0x14(%ebp)
458933:	0f 94 c0             	sete   %al
458936:	fe c8                	dec    %al
458938:	24 e0                	and    $0xe0,%al
45893a:	04 61                	add    $0x61,%al
45893c:	2c 3a                	sub    $0x3a,%al
45893e:	02 c8                	add    %al,%cl
458940:	8b 46 34             	mov    0x34(%esi),%eax
458943:	88 08                	mov    %cl,(%eax)
458945:	ff 4e 34             	decl   0x34(%esi)
458948:	eb b7                	jmp    0x458901
45894a:	2b 7e 34             	sub    0x34(%esi),%edi
45894d:	89 7e 38             	mov    %edi,0x38(%esi)
458950:	ff 46 34             	incl   0x34(%esi)
458953:	5f                   	pop    %edi
458954:	5e                   	pop    %esi
458955:	5b                   	pop    %ebx
458956:	8b e5                	mov    %ebp,%esp
458958:	5d                   	pop    %ebp
458959:	c2 10 00             	ret    $0x10
45895c:	8b ff                	mov    %edi,%edi
45895e:	55                   	push   %ebp
45895f:	8b ec                	mov    %esp,%ebp
458961:	51                   	push   %ecx
458962:	51                   	push   %ecx
458963:	53                   	push   %ebx
458964:	56                   	push   %esi
458965:	8b f1                	mov    %ecx,%esi
458967:	57                   	push   %edi
458968:	8d 4e 40             	lea    0x40(%esi),%ecx
45896b:	8b b9 04 04 00 00    	mov    0x404(%ecx),%edi
458971:	85 ff                	test   %edi,%edi
458973:	75 02                	jne    0x458977
458975:	8b f9                	mov    %ecx,%edi
458977:	e8 1e d0 ff ff       	call   0x45599a
45897c:	8b 55 0c             	mov    0xc(%ebp),%edx
45897f:	48                   	dec    %eax
458980:	8b 5d 08             	mov    0x8(%ebp),%ebx
458983:	03 f8                	add    %eax,%edi
458985:	89 7e 34             	mov    %edi,0x34(%esi)
458988:	8b 4e 28             	mov    0x28(%esi),%ecx
45898b:	85 c9                	test   %ecx,%ecx
45898d:	7f 06                	jg     0x458995
45898f:	8b c3                	mov    %ebx,%eax
458991:	0b c2                	or     %edx,%eax
458993:	74 3c                	je     0x4589d1
458995:	53                   	push   %ebx
458996:	6a 00                	push   $0x0
458998:	ff 75 10             	push   0x10(%ebp)
45899b:	8d 41 ff             	lea    -0x1(%ecx),%eax
45899e:	52                   	push   %edx
45899f:	53                   	push   %ebx
4589a0:	89 46 28             	mov    %eax,0x28(%esi)
4589a3:	e8 78 73 fe ff       	call   0x43fd20
4589a8:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4589ab:	5b                   	pop    %ebx
4589ac:	80 c1 30             	add    $0x30,%cl
4589af:	8b d8                	mov    %eax,%ebx
4589b1:	80 f9 39             	cmp    $0x39,%cl
4589b4:	7e 11                	jle    0x4589c7
4589b6:	80 7d 14 00          	cmpb   $0x0,0x14(%ebp)
4589ba:	0f 94 c0             	sete   %al
4589bd:	fe c8                	dec    %al
4589bf:	24 e0                	and    $0xe0,%al
4589c1:	04 61                	add    $0x61,%al
4589c3:	2c 3a                	sub    $0x3a,%al
4589c5:	02 c8                	add    %al,%cl
4589c7:	8b 46 34             	mov    0x34(%esi),%eax
4589ca:	88 08                	mov    %cl,(%eax)
4589cc:	ff 4e 34             	decl   0x34(%esi)
4589cf:	eb b7                	jmp    0x458988
4589d1:	2b 7e 34             	sub    0x34(%esi),%edi
4589d4:	89 7e 38             	mov    %edi,0x38(%esi)
4589d7:	ff 46 34             	incl   0x34(%esi)
4589da:	5f                   	pop    %edi
4589db:	5e                   	pop    %esi
4589dc:	5b                   	pop    %ebx
4589dd:	8b e5                	mov    %ebp,%esp
4589df:	5d                   	pop    %ebp
4589e0:	c2 10 00             	ret    $0x10
4589e3:	8b ff                	mov    %edi,%edi
4589e5:	55                   	push   %ebp
4589e6:	8b ec                	mov    %esp,%ebp
4589e8:	51                   	push   %ecx
4589e9:	51                   	push   %ecx
4589ea:	53                   	push   %ebx
4589eb:	56                   	push   %esi
4589ec:	8b f1                	mov    %ecx,%esi
4589ee:	57                   	push   %edi
4589ef:	8d 4e 40             	lea    0x40(%esi),%ecx
4589f2:	8b b9 04 04 00 00    	mov    0x404(%ecx),%edi
4589f8:	85 ff                	test   %edi,%edi
4589fa:	75 02                	jne    0x4589fe
4589fc:	8b f9                	mov    %ecx,%edi
4589fe:	e8 97 cf ff ff       	call   0x45599a
458a03:	8b 55 0c             	mov    0xc(%ebp),%edx
458a06:	48                   	dec    %eax
458a07:	8b 5d 08             	mov    0x8(%ebp),%ebx
458a0a:	03 f8                	add    %eax,%edi
458a0c:	89 7e 34             	mov    %edi,0x34(%esi)
458a0f:	8b 4e 28             	mov    0x28(%esi),%ecx
458a12:	85 c9                	test   %ecx,%ecx
458a14:	7f 06                	jg     0x458a1c
458a16:	8b c3                	mov    %ebx,%eax
458a18:	0b c2                	or     %edx,%eax
458a1a:	74 3c                	je     0x458a58
458a1c:	53                   	push   %ebx
458a1d:	6a 00                	push   $0x0
458a1f:	ff 75 10             	push   0x10(%ebp)
458a22:	8d 41 ff             	lea    -0x1(%ecx),%eax
458a25:	52                   	push   %edx
458a26:	53                   	push   %ebx
458a27:	89 46 28             	mov    %eax,0x28(%esi)
458a2a:	e8 f1 72 fe ff       	call   0x43fd20
458a2f:	89 5d fc             	mov    %ebx,-0x4(%ebp)
458a32:	5b                   	pop    %ebx
458a33:	80 c1 30             	add    $0x30,%cl
458a36:	8b d8                	mov    %eax,%ebx
458a38:	80 f9 39             	cmp    $0x39,%cl
458a3b:	7e 11                	jle    0x458a4e
458a3d:	80 7d 14 00          	cmpb   $0x0,0x14(%ebp)
458a41:	0f 94 c0             	sete   %al
458a44:	fe c8                	dec    %al
458a46:	24 e0                	and    $0xe0,%al
458a48:	04 61                	add    $0x61,%al
458a4a:	2c 3a                	sub    $0x3a,%al
458a4c:	02 c8                	add    %al,%cl
458a4e:	8b 46 34             	mov    0x34(%esi),%eax
458a51:	88 08                	mov    %cl,(%eax)
458a53:	ff 4e 34             	decl   0x34(%esi)
458a56:	eb b7                	jmp    0x458a0f
458a58:	2b 7e 34             	sub    0x34(%esi),%edi
458a5b:	89 7e 38             	mov    %edi,0x38(%esi)
458a5e:	ff 46 34             	incl   0x34(%esi)
458a61:	5f                   	pop    %edi
458a62:	5e                   	pop    %esi
458a63:	5b                   	pop    %ebx
458a64:	8b e5                	mov    %ebp,%esp
458a66:	5d                   	pop    %ebp
458a67:	c2 10 00             	ret    $0x10
458a6a:	8b ff                	mov    %edi,%edi
458a6c:	55                   	push   %ebp
458a6d:	8b ec                	mov    %esp,%ebp
458a6f:	51                   	push   %ecx
458a70:	51                   	push   %ecx
458a71:	53                   	push   %ebx
458a72:	56                   	push   %esi
458a73:	8b f1                	mov    %ecx,%esi
458a75:	57                   	push   %edi
458a76:	8d 4e 40             	lea    0x40(%esi),%ecx
458a79:	8b b9 04 04 00 00    	mov    0x404(%ecx),%edi
458a7f:	85 ff                	test   %edi,%edi
458a81:	75 02                	jne    0x458a85
458a83:	8b f9                	mov    %ecx,%edi
458a85:	e8 10 cf ff ff       	call   0x45599a