452757:	8b 7d 28             	mov    0x28(%ebp),%edi
45275a:	ba ff 00 00 00       	mov    $0xff,%edx
45275f:	66 3b c2             	cmp    %dx,%ax
452762:	77 23                	ja     0x452787
452764:	8b 57 0c             	mov    0xc(%edi),%edx
452767:	6a 02                	push   $0x2
452769:	5b                   	pop    %ebx
45276a:	0f b7 c0             	movzwl %ax,%eax
45276d:	f6 04 10 10          	testb  $0x10,(%eax,%edx,1)
452771:	74 11                	je     0x452784
452773:	03 f3                	add    %ebx,%esi
452775:	89 75 fc             	mov    %esi,-0x4(%ebp)
452778:	0f b7 06             	movzwl (%esi),%eax
45277b:	66 3b 85 4c ff ff ff 	cmp    -0xb4(%ebp),%ax
452782:	76 e6                	jbe    0x45276a
452784:	8b 5d dc             	mov    -0x24(%ebp),%ebx
452787:	8b d6                	mov    %esi,%edx
452789:	2b d3                	sub    %ebx,%edx
45278b:	d1 fa                	sar    $1,%edx
45278d:	83 7d 2c 00          	cmpl   $0x0,0x2c(%ebp)
452791:	89 55 ec             	mov    %edx,-0x14(%ebp)
452794:	0f 84 22 01 00 00    	je     0x4528bc
45279a:	8b 47 40             	mov    0x40(%edi),%eax
45279d:	40                   	inc    %eax
45279e:	89 45 e8             	mov    %eax,-0x18(%ebp)
4527a1:	66 39 0e             	cmp    %cx,(%esi)
4527a4:	0f 85 40 1e 00 00    	jne    0x4545ea
4527aa:	81 7f 30 10 27 00 00 	cmpl   $0x2710,0x30(%edi)
4527b1:	0f 8d 25 1e 00 00    	jge    0x4545dc
4527b7:	8d 42 02             	lea    0x2(%edx),%eax
4527ba:	3b 47 34             	cmp    0x34(%edi),%eax
4527bd:	7e 11                	jle    0x4527d0
4527bf:	6a 20                	push   $0x20
4527c1:	89 47 34             	mov    %eax,0x34(%edi)
4527c4:	58                   	pop    %eax
4527c5:	3b d0                	cmp    %eax,%edx
4527c7:	7e 07                	jle    0x4527d0
4527c9:	6a 30                	push   $0x30
4527cb:	e9 ae 1e 00 00       	jmp    0x45467e
4527d0:	8b 4d 28             	mov    0x28(%ebp),%ecx
4527d3:	33 c0                	xor    %eax,%eax
4527d5:	8b 7f 28             	mov    0x28(%edi),%edi
4527d8:	8b d8                	mov    %eax,%ebx
4527da:	39 41 30             	cmp    %eax,0x30(%ecx)
4527dd:	7e 5d                	jle    0x45283c
4527df:	3b 57 04             	cmp    0x4(%edi),%edx
4527e2:	75 3f                	jne    0x452823
4527e4:	8b 4d dc             	mov    -0x24(%ebp),%ecx
4527e7:	52                   	push   %edx
4527e8:	8b 17                	mov    (%edi),%edx
4527ea:	e8 09 c2 03 00       	call   0x48e9f8
4527ef:	59                   	pop    %ecx
4527f0:	85 c0                	test   %eax,%eax
4527f2:	75 2c                	jne    0x452820
4527f4:	8b 45 e8             	mov    -0x18(%ebp),%eax
4527f7:	39 47 08             	cmp    %eax,0x8(%edi)
4527fa:	74 3d                	je     0x452839
4527fc:	f7 45 cc 00 00 08 00 	testl  $0x80000,-0x34(%ebp)
452803:	0f 84 be 1d 00 00    	je     0x4545c7
452809:	8b 4d 28             	mov    0x28(%ebp),%ecx
45280c:	8b 45 f4             	mov    -0xc(%ebp),%eax
45280f:	89 41 78             	mov    %eax,0x78(%ecx)
452812:	8b 55 ec             	mov    -0x14(%ebp),%edx
452815:	43                   	inc    %ebx
452816:	83 c7 0c             	add    $0xc,%edi
452819:	3b 59 30             	cmp    0x30(%ecx),%ebx
45281c:	7c c1                	jl     0x4527df
45281e:	eb 1c                	jmp    0x45283c
452820:	8b 4d 28             	mov    0x28(%ebp),%ecx
452823:	8b 45 e8             	mov    -0x18(%ebp),%eax
452826:	39 47 08             	cmp    %eax,0x8(%edi)
452829:	75 e7                	jne    0x452812
45282b:	8b 45 0c             	mov    0xc(%ebp),%eax
45282e:	c7 00 41 00 00 00    	movl   $0x41,(%eax)
452834:	e9 79 1e 00 00       	jmp    0x4546b2
452839:	8b 4d 28             	mov    0x28(%ebp),%ecx
45283c:	3b 59 30             	cmp    0x30(%ecx),%ebx
45283f:	8b 5d 28             	mov    0x28(%ebp),%ebx
452842:	7c 7b                	jl     0x4528bf
452844:	8b 43 38             	mov    0x38(%ebx),%eax
452847:	39 43 30             	cmp    %eax,0x30(%ebx)
45284a:	7c 3f                	jl     0x45288b
45284c:	8d 3c 00             	lea    (%eax,%eax,1),%edi
45284f:	6b c7 0c             	imul   $0xc,%edi,%eax
452852:	50                   	push   %eax
452853:	ff 15 4c 57 4a 00    	call   *0x4a574c
452859:	8b f0                	mov    %eax,%esi
45285b:	59                   	pop    %ecx
45285c:	85 f6                	test   %esi,%esi
45285e:	0f 84 6a 1d 00 00    	je     0x4545ce
452864:	6b 43 38 0c          	imul   $0xc,0x38(%ebx),%eax
452868:	50                   	push   %eax
452869:	ff 73 28             	push   0x28(%ebx)
45286c:	56                   	push   %esi
45286d:	e8 0e e8 fc ff       	call   0x421080
452872:	83 c4 0c             	add    $0xc,%esp
452875:	83 7b 38 14          	cmpl   $0x14,0x38(%ebx)
452879:	7e 0a                	jle    0x452885
45287b:	ff 73 28             	push   0x28(%ebx)
45287e:	ff 15 48 57 4a 00    	call   *0x4a5748
452884:	59                   	pop    %ecx
452885:	89 73 28             	mov    %esi,0x28(%ebx)
452888:	89 7b 38             	mov    %edi,0x38(%ebx)
45288b:	6b 4b 30 0c          	imul   $0xc,0x30(%ebx),%ecx
45288f:	8b 43 28             	mov    0x28(%ebx),%eax
452892:	8b 55 dc             	mov    -0x24(%ebp),%edx
452895:	89 14 01             	mov    %edx,(%ecx,%eax,1)
452898:	6b 4b 30 0c          	imul   $0xc,0x30(%ebx),%ecx
45289c:	8b 43 28             	mov    0x28(%ebx),%eax
45289f:	8b 55 ec             	mov    -0x14(%ebp),%edx
4528a2:	89 54 01 04          	mov    %edx,0x4(%ecx,%eax,1)
4528a6:	6b 4b 30 0c          	imul   $0xc,0x30(%ebx),%ecx
4528aa:	8b 43 28             	mov    0x28(%ebx),%eax
4528ad:	8b 55 e8             	mov    -0x18(%ebp),%edx
4528b0:	89 54 01 08          	mov    %edx,0x8(%ecx,%eax,1)
4528b4:	ff 43 30             	incl   0x30(%ebx)
4528b7:	8b 75 fc             	mov    -0x4(%ebp),%esi
4528ba:	eb 03                	jmp    0x4528bf
4528bc:	8b 5d 28             	mov    0x28(%ebp),%ebx
4528bf:	6a 02                	push   $0x2
4528c1:	58                   	pop    %eax
4528c2:	03 f0                	add    %eax,%esi
4528c4:	89 75 fc             	mov    %esi,-0x4(%ebp)
4528c7:	e9 7f 50 fc ff       	jmp    0x41794b
4528cc:	6a 7f                	push   $0x7f
4528ce:	5b                   	pop    %ebx
4528cf:	eb 05                	jmp    0x4528d6
4528d1:	bb 80 00 00 00       	mov    $0x80,%ebx
4528d6:	8b 55 28             	mov    0x28(%ebp),%edx
4528d9:	6a 04                	push   $0x4
4528db:	ff 42 5c             	incl   0x5c(%edx)
4528de:	e9 50 fd ff ff       	jmp    0x452633
4528e3:	f6 45 cc 02          	testb  $0x2,-0x34(%ebp)
4528e7:	8b d9                	mov    %ecx,%ebx
4528e9:	6a 00                	push   $0x0
4528eb:	58                   	pop    %eax
4528ec:	0f 95 c0             	setne  %al
4528ef:	83 c0 19             	add    $0x19,%eax
4528f2:	e9 2a 57 fc ff       	jmp    0x418021
4528f7:	85 c9                	test   %ecx,%ecx
4528f9:	0f 84 fc 4a fc ff    	je     0x4173fb
4528ff:	ff 75 0c             	push   0xc(%ebp)
452902:	8d 45 c0             	lea    -0x40(%ebp),%eax
452905:	50                   	push   %eax
452906:	8d 4e 02             	lea    0x2(%esi),%ecx
452909:	8d 55 b0             	lea    -0x50(%ebp),%edx
45290c:	e8 c0 bd 03 00       	call   0x48e6d1
452911:	8b f0                	mov    %eax,%esi
452913:	8b 45 0c             	mov    0xc(%ebp),%eax
452916:	59                   	pop    %ecx
452917:	59                   	pop    %ecx
452918:	33 c9                	xor    %ecx,%ecx
45291a:	89 75 fc             	mov    %esi,-0x4(%ebp)
45291d:	39 08                	cmp    %ecx,(%eax)
45291f:	0f 85 8d 1d 00 00    	jne    0x4546b2
452925:	8b 55 c0             	mov    -0x40(%ebp),%edx
452928:	8b 7d b0             	mov    -0x50(%ebp),%edi
45292b:	e9 dd 51 fc ff       	jmp    0x417b0d
452930:	6a 02                	push   $0x2
452932:	5a                   	pop    %edx
452933:	0f b7 06             	movzwl (%esi),%eax
452936:	bf ff 00 00 00       	mov    $0xff,%edi
45293b:	8b 5d 28             	mov    0x28(%ebp),%ebx
45293e:	66 3b c7             	cmp    %di,%ax
452941:	77 16                	ja     0x452959
452943:	8b 4b 0c             	mov    0xc(%ebx),%ecx
452946:	0f b7 c0             	movzwl %ax,%eax
452949:	f6 04 08 01          	testb  $0x1,(%eax,%ecx,1)
45294d:	74 0a                	je     0x452959
45294f:	03 f2                	add    %edx,%esi
452951:	0f b7 06             	movzwl (%esi),%eax
452954:	66 3b c7             	cmp    %di,%ax
452957:	76 ed                	jbe    0x452946
452959:	6a 23                	push   $0x23
45295b:	58                   	pop    %eax
45295c:	66 39 06             	cmp    %ax,(%esi)
45295f:	0f 84 93 00 00 00    	je     0x4529f8
452965:	8b 55 c0             	mov    -0x40(%ebp),%edx
452968:	83 c6 fe             	add    $0xfffffffe,%esi
45296b:	8b 7d b0             	mov    -0x50(%ebp),%edi
45296e:	89 75 fc             	mov    %esi,-0x4(%ebp)
452971:	e9 dc 51 fc ff       	jmp    0x417b52
452976:	8b 93 80 00 00 00    	mov    0x80(%ebx),%edx
45297c:	85 d2                	test   %edx,%edx
45297e:	74 2b                	je     0x4529ab
452980:	3b 73 1c             	cmp    0x1c(%ebx),%esi
452983:	73 53                	jae    0x4529d8
452985:	ff 75 c4             	push   -0x3c(%ebp)
452988:	8d 83 84 00 00 00    	lea    0x84(%ebx),%eax
45298e:	8b ce                	mov    %esi,%ecx
452990:	50                   	push   %eax
452991:	ff 73 1c             	push   0x1c(%ebx)
452994:	e8 06 35 fc ff       	call   0x415e9f
452999:	83 c4 0c             	add    $0xc,%esp
45299c:	85 c0                	test   %eax,%eax
45299e:	74 38                	je     0x4529d8
4529a0:	8b 83 84 00 00 00    	mov    0x84(%ebx),%eax
4529a6:	8d 34 46             	lea    (%esi,%eax,2),%esi
4529a9:	eb 85                	jmp    0x452930
4529ab:	8b 93 84 00 00 00    	mov    0x84(%ebx),%edx
4529b1:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
4529b4:	8d 04 12             	lea    (%edx,%edx,1),%eax
4529b7:	2b c8                	sub    %eax,%ecx
4529b9:	3b f1                	cmp    %ecx,%esi
4529bb:	77 1b                	ja     0x4529d8
4529bd:	66 3b bb 88 00 00 00 	cmp    0x88(%ebx),%di
4529c4:	75 12                	jne    0x4529d8
4529c6:	3b 55 f4             	cmp    -0xc(%ebp),%edx
4529c9:	74 d5                	je     0x4529a0
4529cb:	66 8b 46 02          	mov    0x2(%esi),%ax
4529cf:	66 3b 83 8a 00 00 00 	cmp    0x8a(%ebx),%ax
4529d6:	74 c8                	je     0x4529a0
4529d8:	6a 02                	push   $0x2
4529da:	5a                   	pop    %edx
4529db:	03 f2                	add    %edx,%esi
4529dd:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
4529e1:	74 17                	je     0x4529fa
4529e3:	66 8b 06             	mov    (%esi),%ax
4529e6:	b9 00 fc 00 00       	mov    $0xfc00,%ecx
4529eb:	66 23 c1             	and    %cx,%ax
4529ee:	b9 00 dc 00 00       	mov    $0xdc00,%ecx
4529f3:	66 3b c1             	cmp    %cx,%ax
4529f6:	75 02                	jne    0x4529fa
4529f8:	03 f2                	add    %edx,%esi
4529fa:	0f b7 3e             	movzwl (%esi),%edi
4529fd:	66 85 ff             	test   %di,%di
452a00:	0f 85 70 ff ff ff    	jne    0x452976
452a06:	e9 28 ff ff ff       	jmp    0x452933
452a0b:	33 c0                	xor    %eax,%eax
452a0d:	8b f1                	mov    %ecx,%esi
452a0f:	8b d8                	mov    %eax,%ebx
452a11:	89 45 e4             	mov    %eax,-0x1c(%ebp)
452a14:	8b 45 f4             	mov    -0xc(%ebp),%eax
452a17:	89 45 e0             	mov    %eax,-0x20(%ebp)
452a1a:	89 75 fc             	mov    %esi,-0x4(%ebp)
452a1d:	e9 57 51 fc ff       	jmp    0x417b79
452a22:	8b 75 f0             	mov    -0x10(%ebp),%esi
452a25:	6a 04                	push   $0x4
452a27:	58                   	pop    %eax
452a28:	50                   	push   %eax
452a29:	8d 46 04             	lea    0x4(%esi),%eax
452a2c:	56                   	push   %esi
452a2d:	50                   	push   %eax
452a2e:	e8 ed 55 fd ff       	call   0x428020
452a33:	83 45 f8 08          	addl   $0x8,-0x8(%ebp)
452a37:	83 c4 0c             	add    $0xc,%esp
452a3a:	83 7d 2c 00          	cmpl   $0x0,0x2c(%ebp)
452a3e:	b8 81 00 00 00       	mov    $0x81,%eax
452a43:	66 89 06             	mov    %ax,(%esi)
452a46:	6a 04                	push   $0x4
452a48:	58                   	pop    %eax
452a49:	6a 78                	push   $0x78
452a4b:	59                   	pop    %ecx
452a4c:	66 89 46 02          	mov    %ax,0x2(%esi)
452a50:	66 89 4e 08          	mov    %cx,0x8(%esi)
452a54:	66 89 46 0a          	mov    %ax,0xa(%esi)
452a58:	c7 85 7c ff ff ff 06 	movl   $0x6,-0x84(%ebp)
452a5f:	00 00 00
452a62:	75 30                	jne    0x452a94
452a64:	8b 45 28             	mov    0x28(%ebp),%eax
452a67:	6a 02                	push   $0x2
452a69:	5a                   	pop    %edx
452a6a:	8b 48 20             	mov    0x20(%eax),%ecx
452a6d:	8b 40 10             	mov    0x10(%eax),%eax
452a70:	03 c2                	add    %edx,%eax
452a72:	3b c8                	cmp    %eax,%ecx
452a74:	72 1e                	jb     0x452a94
452a76:	0f b7 51 fe          	movzwl -0x2(%ecx),%edx
452a7a:	8b c6                	mov    %esi,%eax
452a7c:	8b 75 28             	mov    0x28(%ebp),%esi
452a7f:	6a 02                	push   $0x2
452a81:	2b 46 14             	sub    0x14(%esi),%eax
452a84:	5e                   	pop    %esi
452a85:	03 c6                	add    %esi,%eax
452a87:	d1 f8                	sar    $1,%eax
452a89:	3b d0                	cmp    %eax,%edx
452a8b:	75 07                	jne    0x452a94
452a8d:	8d 42 02             	lea    0x2(%edx),%eax
452a90:	66 89 41 fe          	mov    %ax,-0x2(%ecx)
452a94:	8b 45 f0             	mov    -0x10(%ebp),%eax
452a97:	8b 55 c0             	mov    -0x40(%ebp),%edx
452a9a:	8b 75 fc             	mov    -0x4(%ebp),%esi
452a9d:	e9 e6 50 fc ff       	jmp    0x417b88
452aa2:	bb 91 00 00 00       	mov    $0x91,%ebx
452aa7:	66 39 58 04          	cmp    %bx,0x4(%eax)
452aab:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
452aae:	0f 84 5e 51 fc ff    	je     0x417c12
452ab4:	e9 44 53 fc ff       	jmp    0x417dfd
452ab9:	85 c0                	test   %eax,%eax
452abb:	0f 8f 51 51 fc ff    	jg     0x417c12
452ac1:	8b 4d f4             	mov    -0xc(%ebp),%ecx
452ac4:	85 d2                	test   %edx,%edx
452ac6:	78 08                	js     0x452ad0
452ac8:	3b d1                	cmp    %ecx,%edx
452aca:	0f 8e 41 53 fc ff    	jle    0x417e11
452ad0:	8b d1                	mov    %ecx,%edx
452ad2:	89 55 c0             	mov    %edx,-0x40(%ebp)
452ad5:	e9 37 53 fc ff       	jmp    0x417e11
452ada:	8b 45 f0             	mov    -0x10(%ebp),%eax
452add:	b9 a1 00 00 00       	mov    $0xa1,%ecx
452ae2:	66 89 08             	mov    %cx,(%eax)
452ae5:	e9 a1 08 00 00       	jmp    0x45338b
452aea:	8b 75 f0             	mov    -0x10(%ebp),%esi
452aed:	33 c9                	xor    %ecx,%ecx
452aef:	66 89 08             	mov    %cx,(%eax)
452af2:	8b ce                	mov    %esi,%ecx
452af4:	6a 03                	push   $0x3
452af6:	5a                   	pop    %edx
452af7:	e8 a5 5b fc ff       	call   0x4186a1
452afc:	83 c4 0c             	add    $0xc,%esp
452aff:	8d 04 3f             	lea    (%edi,%edi,1),%eax
452b02:	50                   	push   %eax
452b03:	8d 46 06             	lea    0x6(%esi),%eax
452b06:	56                   	push   %esi
452b07:	50                   	push   %eax
452b08:	e8 13 55 fd ff       	call   0x428020
452b0d:	83 45 f8 06          	addl   $0x6,-0x8(%ebp)
452b11:	8d 83 92 00 00 00    	lea    0x92(%ebx),%eax
452b17:	8b 55 c0             	mov    -0x40(%ebp),%edx
452b1a:	83 c4 0c             	add    $0xc,%esp
452b1d:	66 89 06             	mov    %ax,(%esi)
452b20:	b8 83 00 00 00       	mov    $0x83,%eax
452b25:	6a 02                	push   $0x2
452b27:	59                   	pop    %ecx
452b28:	03 f1                	add    %ecx,%esi
452b2a:	66 89 06             	mov    %ax,(%esi)
452b2d:	03 f1                	add    %ecx,%esi
452b2f:	33 c0                	xor    %eax,%eax
452b31:	89 75 dc             	mov    %esi,-0x24(%ebp)
452b34:	66 89 06             	mov    %ax,(%esi)
452b37:	03 f1                	add    %ecx,%esi
452b39:	e9 39 53 fc ff       	jmp    0x417e77
452b3e:	3b c1                	cmp    %ecx,%eax
452b40:	0f 8e 2f 01 00 00    	jle    0x452c75
452b46:	8b 5d 2c             	mov    0x2c(%ebp),%ebx
452b49:	85 db                	test   %ebx,%ebx
452b4b:	74 45                	je     0x452b92
452b4d:	48                   	dec    %eax
452b4e:	33 c9                	xor    %ecx,%ecx
452b50:	8b f8                	mov    %eax,%edi
452b52:	f7 ad 7c ff ff ff    	imull  -0x84(%ebp)
452b58:	0f af bd 7c ff ff ff 	imul   -0x84(%ebp),%edi
452b5f:	3b d1                	cmp    %ecx,%edx
452b61:	0f 8f 9a 1a 00 00    	jg     0x454601
452b67:	7c 0b                	jl     0x452b74
452b69:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
452b6e:	0f 87 8d 1a 00 00    	ja     0x454601
452b74:	8b 0b                	mov    (%ebx),%ecx
452b76:	b8 eb ff ff 7f       	mov    $0x7fffffeb,%eax
452b7b:	2b c1                	sub    %ecx,%eax