4557af:	88 95 9c fb ff ff    	mov    %dl,-0x464(%ebp)
4557b5:	85 ff                	test   %edi,%edi
4557b7:	75 07                	jne    0x4557c0
4557b9:	c6 85 9c fb ff ff 01 	movb   $0x1,-0x464(%ebp)
4557c0:	ff 75 20             	push   0x20(%ebp)
4557c3:	8d 85 90 fb ff ff    	lea    -0x470(%ebp),%eax
4557c9:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
4557cf:	8d 85 80 fb ff ff    	lea    -0x480(%ebp),%eax
4557d5:	50                   	push   %eax
4557d6:	ff 75 18             	push   0x18(%ebp)
4557d9:	8d 85 a0 fb ff ff    	lea    -0x460(%ebp),%eax
4557df:	ff 75 0c             	push   0xc(%ebp)
4557e2:	51                   	push   %ecx
4557e3:	50                   	push   %eax
4557e4:	8d 8d a4 fb ff ff    	lea    -0x45c(%ebp),%ecx
4557ea:	e8 7b 3b 00 00       	call   0x45936a
4557ef:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
4557f3:	8d 8d a4 fb ff ff    	lea    -0x45c(%ebp),%ecx
4557f9:	e8 af 64 00 00       	call   0x45bcad
4557fe:	8b f0                	mov    %eax,%esi
455800:	85 ff                	test   %edi,%edi
455802:	74 51                	je     0x455855
455804:	8b 45 08             	mov    0x8(%ebp),%eax
455807:	83 e0 01             	and    $0x1,%eax
45580a:	83 c8 00             	or     $0x0,%eax
45580d:	74 1c                	je     0x45582b
45580f:	85 db                	test   %ebx,%ebx
455811:	75 04                	jne    0x455817
455813:	85 f6                	test   %esi,%esi
455815:	75 76                	jne    0x45588d
455817:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
45581d:	3b c3                	cmp    %ebx,%eax
45581f:	75 2e                	jne    0x45584f
455821:	85 f6                	test   %esi,%esi
455823:	78 30                	js     0x455855
455825:	3b f3                	cmp    %ebx,%esi
455827:	76 2c                	jbe    0x455855
455829:	eb 62                	jmp    0x45588d
45582b:	8b 85 8c fb ff ff    	mov    -0x474(%ebp),%eax
455831:	83 c8 00             	or     $0x0,%eax
455834:	74 53                	je     0x455889
455836:	85 db                	test   %ebx,%ebx
455838:	74 1b                	je     0x455855
45583a:	85 f6                	test   %esi,%esi
45583c:	79 07                	jns    0x455845
45583e:	33 c0                	xor    %eax,%eax
455840:	66 89 07             	mov    %ax,(%edi)
455843:	eb 10                	jmp    0x455855
455845:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
45584b:	3b c3                	cmp    %ebx,%eax
45584d:	74 50                	je     0x45589f
45584f:	33 c9                	xor    %ecx,%ecx
455851:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
455855:	8d 8d e4 fb ff ff    	lea    -0x41c(%ebp),%ecx
45585b:	e8 e7 3e 00 00       	call   0x459747
455860:	80 bd 88 fb ff ff 00 	cmpb   $0x0,-0x478(%ebp)
455867:	74 0d                	je     0x455876
455869:	8b 8d 7c fb ff ff    	mov    -0x484(%ebp),%ecx
45586f:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
455876:	5f                   	pop    %edi
455877:	8b c6                	mov    %esi,%eax
455879:	5e                   	pop    %esi
45587a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
45587d:	33 cd                	xor    %ebp,%ecx
45587f:	5b                   	pop    %ebx
455880:	e8 7d a1 fe ff       	call   0x43fa02
455885:	8b e5                	mov    %ebp,%esp
455887:	5d                   	pop    %ebp
455888:	c3                   	ret
455889:	85 db                	test   %ebx,%ebx
45588b:	75 05                	jne    0x455892
45588d:	83 ce ff             	or     $0xffffffff,%esi
455890:	eb c3                	jmp    0x455855
455892:	8b 85 98 fb ff ff    	mov    -0x468(%ebp),%eax
455898:	3b c3                	cmp    %ebx,%eax
45589a:	75 b3                	jne    0x45584f
45589c:	6a fe                	push   $0xfffffffe
45589e:	5e                   	pop    %esi
45589f:	33 c0                	xor    %eax,%eax
4558a1:	66 89 44 5f fe       	mov    %ax,-0x2(%edi,%ebx,2)
4558a6:	eb ad                	jmp    0x455855
4558a8:	8b ff                	mov    %edi,%edi
4558aa:	55                   	push   %ebp
4558ab:	8b ec                	mov    %esp,%ebp
4558ad:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
4558b1:	75 15                	jne    0x4558c8
4558b3:	e8 77 75 ff ff       	call   0x44ce2f
4558b8:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4558be:	e8 13 74 ff ff       	call   0x44ccd6
4558c3:	83 c8 ff             	or     $0xffffffff,%eax
4558c6:	5d                   	pop    %ebp
4558c7:	c3                   	ret
4558c8:	56                   	push   %esi
4558c9:	8b 75 10             	mov    0x10(%ebp),%esi
4558cc:	85 f6                	test   %esi,%esi
4558ce:	74 3a                	je     0x45590a
4558d0:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
4558d4:	76 34                	jbe    0x45590a
4558d6:	ff 75 20             	push   0x20(%ebp)
4558d9:	ff 75 1c             	push   0x1c(%ebp)
4558dc:	ff 75 18             	push   0x18(%ebp)
4558df:	ff 75 14             	push   0x14(%ebp)
4558e2:	56                   	push   %esi
4558e3:	ff 75 0c             	push   0xc(%ebp)
4558e6:	ff 75 08             	push   0x8(%ebp)
4558e9:	e8 3b f6 ff ff       	call   0x454f29
4558ee:	83 c4 1c             	add    $0x1c,%esp
4558f1:	85 c0                	test   %eax,%eax
4558f3:	79 03                	jns    0x4558f8
4558f5:	c6 06 00             	movb   $0x0,(%esi)
4558f8:	83 f8 fe             	cmp    $0xfffffffe,%eax
4558fb:	75 20                	jne    0x45591d
4558fd:	e8 2d 75 ff ff       	call   0x44ce2f
455902:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
455908:	eb 0b                	jmp    0x455915
45590a:	e8 20 75 ff ff       	call   0x44ce2f
45590f:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
455915:	e8 bc 73 ff ff       	call   0x44ccd6
45591a:	83 c8 ff             	or     $0xffffffff,%eax
45591d:	5e                   	pop    %esi
45591e:	5d                   	pop    %ebp
45591f:	c3                   	ret
455920:	8b ff                	mov    %edi,%edi
455922:	55                   	push   %ebp
455923:	8b ec                	mov    %esp,%ebp
455925:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
455929:	75 15                	jne    0x455940
45592b:	e8 ff 74 ff ff       	call   0x44ce2f
455930:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
455936:	e8 9b 73 ff ff       	call   0x44ccd6
45593b:	83 c8 ff             	or     $0xffffffff,%eax
45593e:	5d                   	pop    %ebp
45593f:	c3                   	ret
455940:	56                   	push   %esi
455941:	8b 75 10             	mov    0x10(%ebp),%esi
455944:	85 f6                	test   %esi,%esi
455946:	74 3c                	je     0x455984
455948:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
45594c:	76 36                	jbe    0x455984
45594e:	ff 75 20             	push   0x20(%ebp)
455951:	ff 75 1c             	push   0x1c(%ebp)
455954:	ff 75 18             	push   0x18(%ebp)
455957:	ff 75 14             	push   0x14(%ebp)
45595a:	56                   	push   %esi
45595b:	ff 75 0c             	push   0xc(%ebp)
45595e:	ff 75 08             	push   0x8(%ebp)
455961:	e8 43 f7 ff ff       	call   0x4550a9
455966:	83 c4 1c             	add    $0x1c,%esp
455969:	85 c0                	test   %eax,%eax
45596b:	79 05                	jns    0x455972
45596d:	33 c9                	xor    %ecx,%ecx
45596f:	66 89 0e             	mov    %cx,(%esi)
455972:	83 f8 fe             	cmp    $0xfffffffe,%eax
455975:	75 20                	jne    0x455997
455977:	e8 b3 74 ff ff       	call   0x44ce2f
45597c:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
455982:	eb 0b                	jmp    0x45598f
455984:	e8 a6 74 ff ff       	call   0x44ce2f
455989:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
45598f:	e8 42 73 ff ff       	call   0x44ccd6
455994:	83 c8 ff             	or     $0xffffffff,%eax
455997:	5e                   	pop    %esi
455998:	5d                   	pop    %ebp
455999:	c3                   	ret
45599a:	83 b9 04 04 00 00 00 	cmpl   $0x0,0x404(%ecx)
4559a1:	75 06                	jne    0x4559a9
4559a3:	b8 00 02 00 00       	mov    $0x200,%eax
4559a8:	c3                   	ret
4559a9:	8b 81 00 04 00 00    	mov    0x400(%ecx),%eax
4559af:	d1 e8                	shr    $1,%eax
4559b1:	c3                   	ret
4559b2:	83 b9 04 04 00 00 00 	cmpl   $0x0,0x404(%ecx)
4559b9:	75 06                	jne    0x4559c1
4559bb:	b8 00 01 00 00       	mov    $0x100,%eax
4559c0:	c3                   	ret
4559c1:	8b 81 00 04 00 00    	mov    0x400(%ecx),%eax
4559c7:	c1 e8 02             	shr    $0x2,%eax
4559ca:	c3                   	ret
4559cb:	8b 81 04 04 00 00    	mov    0x404(%ecx),%eax
4559d1:	85 c0                	test   %eax,%eax
4559d3:	75 02                	jne    0x4559d7
4559d5:	8b c1                	mov    %ecx,%eax
4559d7:	c3                   	ret
4559d8:	8b 81 04 04 00 00    	mov    0x404(%ecx),%eax
4559de:	85 c0                	test   %eax,%eax
4559e0:	75 02                	jne    0x4559e4
4559e2:	8b c1                	mov    %ecx,%eax
4559e4:	c3                   	ret
4559e5:	8b ff                	mov    %edi,%edi
4559e7:	55                   	push   %ebp
4559e8:	8b ec                	mov    %esp,%ebp
4559ea:	51                   	push   %ecx
4559eb:	83 c8 ff             	or     $0xffffffff,%eax
4559ee:	33 d2                	xor    %edx,%edx
4559f0:	56                   	push   %esi
4559f1:	8b 75 08             	mov    0x8(%ebp),%esi
4559f4:	f7 f6                	div    %esi
4559f6:	57                   	push   %edi
4559f7:	83 e0 fe             	and    $0xfffffffe,%eax
4559fa:	8b f9                	mov    %ecx,%edi
4559fc:	83 f8 02             	cmp    $0x2,%eax
4559ff:	73 0f                	jae    0x455a10
455a01:	e8 29 74 ff ff       	call   0x44ce2f
455a06:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
455a0c:	32 c0                	xor    %al,%al
455a0e:	eb 53                	jmp    0x455a63
455a10:	53                   	push   %ebx
455a11:	33 db                	xor    %ebx,%ebx
455a13:	03 f6                	add    %esi,%esi
455a15:	39 9f 04 04 00 00    	cmp    %ebx,0x404(%edi)
455a1b:	75 08                	jne    0x455a25
455a1d:	81 fe 00 04 00 00    	cmp    $0x400,%esi
455a23:	76 08                	jbe    0x455a2d
455a25:	3b b7 00 04 00 00    	cmp    0x400(%edi),%esi
455a2b:	77 04                	ja     0x455a31
455a2d:	b0 01                	mov    $0x1,%al
455a2f:	eb 31                	jmp    0x455a62
455a31:	56                   	push   %esi
455a32:	e8 f3 12 02 00       	call   0x476d2a
455a37:	89 45 fc             	mov    %eax,-0x4(%ebp)
455a3a:	59                   	pop    %ecx
455a3b:	85 c0                	test   %eax,%eax
455a3d:	74 1a                	je     0x455a59
455a3f:	8d 45 fc             	lea    -0x4(%ebp),%eax
455a42:	50                   	push   %eax
455a43:	8d 8f 04 04 00 00    	lea    0x404(%edi),%ecx
455a49:	e8 13 3d 00 00       	call   0x459761
455a4e:	8b 45 fc             	mov    -0x4(%ebp),%eax
455a51:	b3 01                	mov    $0x1,%bl
455a53:	89 b7 00 04 00 00    	mov    %esi,0x400(%edi)
455a59:	50                   	push   %eax
455a5a:	e8 da c8 01 00       	call   0x472339
455a5f:	59                   	pop    %ecx
455a60:	8a c3                	mov    %bl,%al
455a62:	5b                   	pop    %ebx
455a63:	5f                   	pop    %edi
455a64:	5e                   	pop    %esi
455a65:	8b e5                	mov    %ebp,%esp
455a67:	5d                   	pop    %ebp
455a68:	c2 04 00             	ret    $0x4
455a6b:	8b ff                	mov    %edi,%edi
455a6d:	55                   	push   %ebp
455a6e:	8b ec                	mov    %esp,%ebp
455a70:	83 b9 5c 04 00 00 01 	cmpl   $0x1,0x45c(%ecx)
455a77:	75 18                	jne    0x455a91
455a79:	83 41 14 04          	addl   $0x4,0x14(%ecx)
455a7d:	8b 49 14             	mov    0x14(%ecx),%ecx
455a80:	0f be 41 fc          	movsbl -0x4(%ecx),%eax
455a84:	8b 4d 08             	mov    0x8(%ebp),%ecx
455a87:	99                   	cltd
455a88:	89 01                	mov    %eax,(%ecx)
455a8a:	b0 01                	mov    $0x1,%al
455a8c:	89 51 04             	mov    %edx,0x4(%ecx)
455a8f:	eb 55                	jmp    0x455ae6
455a91:	8b 91 a8 0a 00 00    	mov    0xaa8(%ecx),%edx
455a97:	85 d2                	test   %edx,%edx
455a99:	78 39                	js     0x455ad4
455a9b:	83 fa 64             	cmp    $0x64,%edx
455a9e:	7d 34                	jge    0x455ad4
455aa0:	83 b9 58 04 00 00 01 	cmpl   $0x1,0x458(%ecx)
455aa7:	75 1d                	jne    0x455ac6
455aa9:	ff 71 2c             	push   0x2c(%ecx)
455aac:	0f b6 41 31          	movzbl 0x31(%ecx),%eax
455ab0:	50                   	push   %eax
455ab1:	c1 e2 04             	shl    $0x4,%edx
455ab4:	8d 81 64 04 00 00    	lea    0x464(%ecx),%eax
455aba:	6a 01                	push   $0x1
455abc:	03 c2                	add    %edx,%eax
455abe:	50                   	push   %eax
455abf:	e8 01 ea 00 00       	call   0x4644c5
455ac4:	eb 20                	jmp    0x455ae6
455ac6:	03 d2                	add    %edx,%edx
455ac8:	8b 84 d1 6c 04 00 00 	mov    0x46c(%ecx,%edx,8),%eax
455acf:	0f be 00             	movsbl (%eax),%eax
455ad2:	eb b0                	jmp    0x455a84
455ad4:	e8 56 73 ff ff       	call   0x44ce2f
455ad9:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
455adf:	e8 f2 71 ff ff       	call   0x44ccd6
455ae4:	32 c0                	xor    %al,%al
455ae6:	5d                   	pop    %ebp
455ae7:	c2 04 00             	ret    $0x4
455aea:	8b ff                	mov    %edi,%edi
455aec:	55                   	push   %ebp
455aed:	8b ec                	mov    %esp,%ebp
455aef:	83 b9 5c 04 00 00 01 	cmpl   $0x1,0x45c(%ecx)
455af6:	75 18                	jne    0x455b10
455af8:	83 41 14 04          	addl   $0x4,0x14(%ecx)
455afc:	8b 49 14             	mov    0x14(%ecx),%ecx
455aff:	0f be 41 fc          	movsbl -0x4(%ecx),%eax
455b03:	8b 4d 08             	mov    0x8(%ebp),%ecx
455b06:	99                   	cltd
455b07:	89 01                	mov    %eax,(%ecx)
455b09:	b0 01                	mov    $0x1,%al
455b0b:	89 51 04             	mov    %edx,0x4(%ecx)
455b0e:	eb 55                	jmp    0x455b65
455b10:	8b 91 a8 0a 00 00    	mov    0xaa8(%ecx),%edx
455b16:	85 d2                	test   %edx,%edx
455b18:	78 39                	js     0x455b53
455b1a:	83 fa 64             	cmp    $0x64,%edx
455b1d:	7d 34                	jge    0x455b53
455b1f:	83 b9 58 04 00 00 01 	cmpl   $0x1,0x458(%ecx)
455b26:	75 1d                	jne    0x455b45
455b28:	ff 71 2c             	push   0x2c(%ecx)
455b2b:	0f b6 41 31          	movzbl 0x31(%ecx),%eax
455b2f:	50                   	push   %eax
455b30:	c1 e2 04             	shl    $0x4,%edx
455b33:	8d 81 64 04 00 00    	lea    0x464(%ecx),%eax
455b39:	6a 01                	push   $0x1
455b3b:	03 c2                	add    %edx,%eax
455b3d:	50                   	push   %eax
455b3e:	e8 cd e9 00 00       	call   0x464510
455b43:	eb 20                	jmp    0x455b65
455b45:	03 d2                	add    %edx,%edx
455b47:	8b 84 d1 6c 04 00 00 	mov    0x46c(%ecx,%edx,8),%eax
455b4e:	0f be 00             	movsbl (%eax),%eax
455b51:	eb b0                	jmp    0x455b03
455b53:	e8 d7 72 ff ff       	call   0x44ce2f
455b58:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
455b5e:	e8 73 71 ff ff       	call   0x44ccd6
455b63:	32 c0                	xor    %al,%al
455b65:	5d                   	pop    %ebp
455b66:	c2 04 00             	ret    $0x4
455b69:	8b ff                	mov    %edi,%edi
455b6b:	55                   	push   %ebp
455b6c:	8b ec                	mov    %esp,%ebp
455b6e:	83 b9 5c 04 00 00 01 	cmpl   $0x1,0x45c(%ecx)
455b75:	75 18                	jne    0x455b8f
455b77:	83 41 14 04          	addl   $0x4,0x14(%ecx)
455b7b:	8b 49 14             	mov    0x14(%ecx),%ecx
455b7e:	0f be 41 fc          	movsbl -0x4(%ecx),%eax
455b82:	8b 4d 08             	mov    0x8(%ebp),%ecx
455b85:	99                   	cltd
455b86:	89 01                	mov    %eax,(%ecx)
455b88:	b0 01                	mov    $0x1,%al
455b8a:	89 51 04             	mov    %edx,0x4(%ecx)
455b8d:	eb 55                	jmp    0x455be4
455b8f:	8b 91 a8 0a 00 00    	mov    0xaa8(%ecx),%edx
455b95:	85 d2                	test   %edx,%edx
455b97:	78 39                	js     0x455bd2
455b99:	83 fa 64             	cmp    $0x64,%edx
455b9c:	7d 34                	jge    0x455bd2
455b9e:	83 b9 58 04 00 00 01 	cmpl   $0x1,0x458(%ecx)
455ba5:	75 1d                	jne    0x455bc4
455ba7:	ff 71 2c             	push   0x2c(%ecx)
455baa:	0f b7 41 32          	movzwl 0x32(%ecx),%eax
455bae:	50                   	push   %eax
455baf:	c1 e2 04             	shl    $0x4,%edx
455bb2:	8d 81 64 04 00 00    	lea    0x464(%ecx),%eax
455bb8:	6a 01                	push   $0x1
455bba:	03 c2                	add    %edx,%eax