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
452b7d:	3b c7                	cmp    %edi,%eax
452b7f:	0f 8c 7c 1a 00 00    	jl     0x454601
452b85:	8d 04 39             	lea    (%ecx,%edi,1),%eax
452b88:	8b 7d e8             	mov    -0x18(%ebp),%edi
452b8b:	89 03                	mov    %eax,(%ebx)
452b8d:	e9 dd 00 00 00       	jmp    0x452c6f
452b92:	83 bd 68 ff ff ff 00 	cmpl   $0x0,-0x98(%ebp)
452b99:	74 15                	je     0x452bb0
452b9b:	83 7d ac 00          	cmpl   $0x0,-0x54(%ebp)
452b9f:	7d 0f                	jge    0x452bb0
452ba1:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
452ba4:	89 4d a4             	mov    %ecx,-0x5c(%ebp)
452ba7:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
452baa:	89 4d ac             	mov    %ecx,-0x54(%ebp)
452bad:	8b 4d f4             	mov    -0xc(%ebp),%ecx
452bb0:	89 4d c8             	mov    %ecx,-0x38(%ebp)
452bb3:	8b d9                	mov    %ecx,%ebx
452bb5:	3b c1                	cmp    %ecx,%eax
452bb7:	0f 8e b8 00 00 00    	jle    0x452c75
452bbd:	8b 75 ec             	mov    -0x14(%ebp),%esi
452bc0:	8d 04 3f             	lea    (%edi,%edi,1),%eax
452bc3:	89 45 80             	mov    %eax,-0x80(%ebp)
452bc6:	8b 4d 28             	mov    0x28(%ebp),%ecx
452bc9:	50                   	push   %eax
452bca:	ff 75 f0             	push   -0x10(%ebp)
452bcd:	8b 79 20             	mov    0x20(%ecx),%edi
452bd0:	2b 79 10             	sub    0x10(%ecx),%edi
452bd3:	ff 75 f8             	push   -0x8(%ebp)
452bd6:	d1 ff                	sar    $1,%edi
452bd8:	89 7d 98             	mov    %edi,-0x68(%ebp)
452bdb:	e8 a0 e4 fc ff       	call   0x421080
452be0:	83 c4 0c             	add    $0xc,%esp
452be3:	eb 14                	jmp    0x452bf9
452be5:	8b ca                	mov    %edx,%ecx
452be7:	e8 fb b4 03 00       	call   0x48e0e7
452bec:	8b 4d 0c             	mov    0xc(%ebp),%ecx
452bef:	89 01                	mov    %eax,(%ecx)
452bf1:	85 c0                	test   %eax,%eax
452bf3:	0f 85 04 57 fc ff    	jne    0x4182fd
452bf9:	8b 55 28             	mov    0x28(%ebp),%edx
452bfc:	8b ce                	mov    %esi,%ecx
452bfe:	2b cf                	sub    %edi,%ecx
452c00:	03 4a 3c             	add    0x3c(%edx),%ecx
452c03:	8b 42 10             	mov    0x10(%edx),%eax
452c06:	8d 04 48             	lea    (%eax,%ecx,2),%eax
452c09:	05 38 ff ff ff       	add    $0xffffff38,%eax
452c0e:	39 42 20             	cmp    %eax,0x20(%edx)
452c11:	77 d2                	ja     0x452be5
452c13:	8b 42 10             	mov    0x10(%edx),%eax
452c16:	8d 14 70             	lea    (%eax,%esi,2),%edx
452c19:	8d 34 3f             	lea    (%edi,%edi,1),%esi
452c1c:	03 c6                	add    %esi,%eax
452c1e:	3b d0                	cmp    %eax,%edx
452c20:	73 29                	jae    0x452c4b
452c22:	8b 7d e8             	mov    -0x18(%ebp),%edi
452c25:	8b 5d 28             	mov    0x28(%ebp),%ebx
452c28:	66 8b 0a             	mov    (%edx),%cx
452c2b:	8b 43 20             	mov    0x20(%ebx),%eax
452c2e:	66 03 cf             	add    %di,%cx
452c31:	6a 02                	push   $0x2
452c33:	66 89 08             	mov    %cx,(%eax)
452c36:	58                   	pop    %eax
452c37:	01 43 20             	add    %eax,0x20(%ebx)
452c3a:	03 d0                	add    %eax,%edx
452c3c:	8b 43 10             	mov    0x10(%ebx),%eax
452c3f:	03 c6                	add    %esi,%eax
452c41:	3b d0                	cmp    %eax,%edx
452c43:	72 e3                	jb     0x452c28
452c45:	8b 7d 98             	mov    -0x68(%ebp),%edi
452c48:	8b 5d c8             	mov    -0x38(%ebp),%ebx
452c4b:	8b 45 f8             	mov    -0x8(%ebp),%eax
452c4e:	8b f7                	mov    %edi,%esi
452c50:	8b 7d e8             	mov    -0x18(%ebp),%edi
452c53:	43                   	inc    %ebx
452c54:	89 75 ec             	mov    %esi,-0x14(%ebp)
452c57:	89 5d c8             	mov    %ebx,-0x38(%ebp)
452c5a:	8d 04 78             	lea    (%eax,%edi,2),%eax
452c5d:	89 45 f8             	mov    %eax,-0x8(%ebp)
452c60:	8b 45 80             	mov    -0x80(%ebp),%eax
452c63:	3b 5d b0             	cmp    -0x50(%ebp),%ebx
452c66:	0f 8c 5a ff ff ff    	jl     0x452bc6
452c6c:	8b 75 fc             	mov    -0x4(%ebp),%esi
452c6f:	8b 45 b0             	mov    -0x50(%ebp),%eax
452c72:	8b 55 c0             	mov    -0x40(%ebp),%edx
452c75:	85 d2                	test   %edx,%edx
452c77:	0f 8e 06 52 fc ff    	jle    0x417e83
452c7d:	2b d0                	sub    %eax,%edx
452c7f:	e9 fa 51 fc ff       	jmp    0x417e7e
452c84:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
452c8a:	83 c0 05             	add    $0x5,%eax
452c8d:	8b c8                	mov    %eax,%ecx
452c8f:	0f af ca             	imul   %edx,%ecx
452c92:	6a 04                	push   $0x4
452c94:	f7 ea                	imul   %edx
452c96:	5f                   	pop    %edi
452c97:	2b cf                	sub    %edi,%ecx
452c99:	33 ff                	xor    %edi,%edi
452c9b:	3b d7                	cmp    %edi,%edx
452c9d:	0f 8f 5e 19 00 00    	jg     0x454601
452ca3:	7c 0b                	jl     0x452cb0
452ca5:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
452caa:	0f 87 51 19 00 00    	ja     0x454601
452cb0:	8b 13                	mov    (%ebx),%edx
452cb2:	b8 eb ff ff 7f       	mov    $0x7fffffeb,%eax
452cb7:	2b c2                	sub    %edx,%eax
452cb9:	3b c1                	cmp    %ecx,%eax
452cbb:	0f 8c 40 19 00 00    	jl     0x454601
452cc1:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
452cc4:	89 03                	mov    %eax,(%ebx)
452cc6:	e9 d6 51 fc ff       	jmp    0x417ea1
452ccb:	8b 45 e4             	mov    -0x1c(%ebp),%eax
452cce:	8d 0c 3f             	lea    (%edi,%edi,1),%ecx
452cd1:	8b 75 ec             	mov    -0x14(%ebp),%esi
452cd4:	05 92 00 00 00       	add    $0x92,%eax
452cd9:	8b 55 f8             	mov    -0x8(%ebp),%edx
452cdc:	89 45 80             	mov    %eax,-0x80(%ebp)
452cdf:	89 4d c8             	mov    %ecx,-0x38(%ebp)
452ce2:	8b 7d 28             	mov    0x28(%ebp),%edi
452ce5:	8b 4d 28             	mov    0x28(%ebp),%ecx
452ce8:	6a 02                	push   $0x2
452cea:	8b 7f 20             	mov    0x20(%edi),%edi
452ced:	2b 79 10             	sub    0x10(%ecx),%edi
452cf0:	8b 4d c8             	mov    -0x38(%ebp),%ecx
452cf3:	66 89 02             	mov    %ax,(%edx)
452cf6:	58                   	pop    %eax
452cf7:	d1 ff                	sar    $1,%edi
452cf9:	03 d0                	add    %eax,%edx
452cfb:	89 7d 98             	mov    %edi,-0x68(%ebp)
452cfe:	89 55 f8             	mov    %edx,-0x8(%ebp)
452d01:	85 db                	test   %ebx,%ebx
452d03:	74 33                	je     0x452d38
452d05:	b8 83 00 00 00       	mov    $0x83,%eax
452d0a:	66 89 02             	mov    %ax,(%edx)
452d0d:	6a 02                	push   $0x2
452d0f:	58                   	pop    %eax
452d10:	03 d0                	add    %eax,%edx
452d12:	89 55 f8             	mov    %edx,-0x8(%ebp)
452d15:	8b 55 dc             	mov    -0x24(%ebp),%edx
452d18:	85 d2                	test   %edx,%edx
452d1a:	75 04                	jne    0x452d20
452d1c:	33 c0                	xor    %eax,%eax
452d1e:	eb 07                	jmp    0x452d27
452d20:	8b 45 f8             	mov    -0x8(%ebp),%eax
452d23:	2b c2                	sub    %edx,%eax
452d25:	d1 f8                	sar    $1,%eax
452d27:	8b 55 f8             	mov    -0x8(%ebp),%edx
452d2a:	6a 02                	push   $0x2
452d2c:	89 55 dc             	mov    %edx,-0x24(%ebp)
452d2f:	66 89 02             	mov    %ax,(%edx)
452d32:	58                   	pop    %eax
452d33:	03 d0                	add    %eax,%edx
452d35:	89 55 f8             	mov    %edx,-0x8(%ebp)
452d38:	51                   	push   %ecx
452d39:	ff 75 f0             	push   -0x10(%ebp)
452d3c:	52                   	push   %edx
452d3d:	e8 3e e3 fc ff       	call   0x421080
452d42:	83 c4 0c             	add    $0xc,%esp
452d45:	eb 14                	jmp    0x452d5b
452d47:	8b ca                	mov    %edx,%ecx
452d49:	e8 99 b3 03 00       	call   0x48e0e7
452d4e:	8b 4d 0c             	mov    0xc(%ebp),%ecx
452d51:	89 01                	mov    %eax,(%ecx)
452d53:	85 c0                	test   %eax,%eax
452d55:	0f 85 a2 55 fc ff    	jne    0x4182fd
452d5b:	8b 55 28             	mov    0x28(%ebp),%edx
452d5e:	8b ce                	mov    %esi,%ecx
452d60:	2b cf                	sub    %edi,%ecx
452d62:	03 4a 3c             	add    0x3c(%edx),%ecx
452d65:	8b 42 10             	mov    0x10(%edx),%eax
452d68:	8d 04 48             	lea    (%eax,%ecx,2),%eax
452d6b:	05 38 ff ff ff       	add    $0xffffff38,%eax
452d70:	39 42 20             	cmp    %eax,0x20(%edx)
452d73:	77 d2                	ja     0x452d47
452d75:	8b 42 10             	mov    0x10(%edx),%eax
452d78:	8d 14 70             	lea    (%eax,%esi,2),%edx