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
452d7b:	8d 34 3f             	lea    (%edi,%edi,1),%esi
452d7e:	03 c6                	add    %esi,%eax
452d80:	3b d0                	cmp    %eax,%edx
452d82:	73 35                	jae    0x452db9
452d84:	8b 7d 28             	mov    0x28(%ebp),%edi
452d87:	66 8b 0a             	mov    (%edx),%cx
452d8a:	33 c0                	xor    %eax,%eax
452d8c:	85 db                	test   %ebx,%ebx
452d8e:	6a 02                	push   $0x2
452d90:	0f 95 c0             	setne  %al
452d93:	66 03 4d e8          	add    -0x18(%ebp),%cx
452d97:	8d 04 45 01 00 00 00 	lea    0x1(,%eax,2),%eax
452d9e:	66 03 c8             	add    %ax,%cx
452da1:	8b 47 20             	mov    0x20(%edi),%eax
452da4:	66 89 08             	mov    %cx,(%eax)
452da7:	58                   	pop    %eax
452da8:	01 47 20             	add    %eax,0x20(%edi)
452dab:	03 d0                	add    %eax,%edx
452dad:	8b 47 10             	mov    0x10(%edi),%eax
452db0:	03 c6                	add    %esi,%eax
452db2:	3b d0                	cmp    %eax,%edx
452db4:	72 d1                	jb     0x452d87
452db6:	8b 7d 98             	mov    -0x68(%ebp),%edi
452db9:	4b                   	dec    %ebx
452dba:	8b 45 e8             	mov    -0x18(%ebp),%eax
452dbd:	8b 55 f8             	mov    -0x8(%ebp),%edx
452dc0:	8b f7                	mov    %edi,%esi
452dc2:	8d 14 42             	lea    (%edx,%eax,2),%edx
452dc5:	8b 45 80             	mov    -0x80(%ebp),%eax
452dc8:	89 55 f8             	mov    %edx,-0x8(%ebp)
452dcb:	0f 89 11 ff ff ff    	jns    0x452ce2
452dd1:	8b 75 fc             	mov    -0x4(%ebp),%esi
452dd4:	33 ff                	xor    %edi,%edi
452dd6:	e9 c9 50 fc ff       	jmp    0x417ea4
452ddb:	8b ca                	mov    %edx,%ecx
452ddd:	2b cb                	sub    %ebx,%ecx
452ddf:	d1 f9                	sar    $1,%ecx
452de1:	41                   	inc    %ecx
452de2:	8d 04 09             	lea    (%ecx,%ecx,1),%eax
452de5:	2b d0                	sub    %eax,%edx
452de7:	0f b7 42 02          	movzwl 0x2(%edx),%eax
452deb:	85 c0                	test   %eax,%eax
452ded:	75 04                	jne    0x452df3
452def:	8b df                	mov    %edi,%ebx
452df1:	eb 05                	jmp    0x452df8
452df3:	f7 d8                	neg    %eax
452df5:	8d 1c 43             	lea    (%ebx,%eax,2),%ebx
452df8:	8b 45 f8             	mov    -0x8(%ebp),%eax
452dfb:	6a 78                	push   $0x78
452dfd:	5e                   	pop    %esi
452dfe:	6a 02                	push   $0x2
452e00:	66 89 30             	mov    %si,(%eax)
452e03:	5e                   	pop    %esi
452e04:	03 c6                	add    %esi,%eax
452e06:	66 89 08             	mov    %cx,(%eax)
452e09:	03 c6                	add    %esi,%eax
452e0b:	66 89 4a 02          	mov    %cx,0x2(%edx)
452e0f:	8b d0                	mov    %eax,%edx
452e11:	89 45 f8             	mov    %eax,-0x8(%ebp)
452e14:	85 db                	test   %ebx,%ebx
452e16:	75 c3                	jne    0x452ddb
452e18:	eb 09                	jmp    0x452e23
452e1a:	8b 45 e4             	mov    -0x1c(%ebp),%eax
452e1d:	83 c0 79             	add    $0x79,%eax
452e20:	66 89 01             	mov    %ax,(%ecx)
452e23:	8b 75 fc             	mov    -0x4(%ebp),%esi
452e26:	e9 84 50 fc ff       	jmp    0x417eaf
452e2b:	8b 4d f8             	mov    -0x8(%ebp),%ecx
452e2e:	ba 81 00 00 00       	mov    $0x81,%edx
452e33:	83 c1 fc             	add    $0xfffffffc,%ecx
452e36:	8b f9                	mov    %ecx,%edi
452e38:	89 4d dc             	mov    %ecx,-0x24(%ebp)
452e3b:	8d 72 01             	lea    0x1(%edx),%esi
452e3e:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
452e42:	03 c0                	add    %eax,%eax
452e44:	2b f8                	sub    %eax,%edi
452e46:	0f b7 07             	movzwl (%edi),%eax
452e49:	66 3b c2             	cmp    %dx,%ax
452e4c:	74 05                	je     0x452e53
452e4e:	66 3b c6             	cmp    %si,%ax
452e51:	75 0e                	jne    0x452e61
452e53:	83 7d e0 00          	cmpl   $0x0,-0x20(%ebp)
452e57:	74 08                	je     0x452e61
452e59:	b8 83 00 00 00       	mov    $0x83,%eax
452e5e:	66 89 07             	mov    %ax,(%edi)
452e61:	0f b7 1f             	movzwl (%edi),%ebx
452e64:	66 3b da             	cmp    %dx,%bx
452e67:	74 b1                	je     0x452e1a
452e69:	66 3b de             	cmp    %si,%bx
452e6c:	74 ac                	je     0x452e1a
452e6e:	83 7d 2c 00          	cmpl   $0x0,0x2c(%ebp)
452e72:	75 33                	jne    0x452ea7
452e74:	8b f7                	mov    %edi,%esi
452e76:	33 c0                	xor    %eax,%eax
452e78:	8b d1                	mov    %ecx,%edx
452e7a:	50                   	push   %eax
452e7b:	ff 75 28             	push   0x28(%ebp)
452e7e:	8b ce                	mov    %esi,%ecx
452e80:	ff 75 c4             	push   -0x3c(%ebp)
452e83:	e8 f9 55 fc ff       	call   0x418481
452e88:	8b 4d dc             	mov    -0x24(%ebp),%ecx
452e8b:	83 c4 0c             	add    $0xc,%esp
452e8e:	85 c0                	test   %eax,%eax
452e90:	75 0f                	jne    0x452ea1
452e92:	0f b7 46 02          	movzwl 0x2(%esi),%eax
452e96:	8d 34 46             	lea    (%esi,%eax,2),%esi
452e99:	66 83 3e 77          	cmpw   $0x77,(%esi)
452e9d:	75 08                	jne    0x452ea7
452e9f:	eb d5                	jmp    0x452e76
452ea1:	8d 43 05             	lea    0x5(%ebx),%eax
452ea4:	66 89 07             	mov    %ax,(%edi)
452ea7:	83 7d e0 00          	cmpl   $0x0,-0x20(%ebp)
452eab:	0f 84 ac 00 00 00    	je     0x452f5d
452eb1:	0f b7 07             	movzwl (%edi),%eax
452eb4:	ba 87 00 00 00       	mov    $0x87,%edx
452eb9:	66 3b c2             	cmp    %dx,%ax
452ebc:	74 17                	je     0x452ed5
452ebe:	83 c2 05             	add    $0x5,%edx
452ec1:	66 3b c2             	cmp    %dx,%ax
452ec4:	74 0f                	je     0x452ed5
452ec6:	40                   	inc    %eax
452ec7:	6a 7b                	push   $0x7b
452ec9:	66 89 07             	mov    %ax,(%edi)
452ecc:	58                   	pop    %eax
452ecd:	6a 02                	push   $0x2
452ecf:	66 89 01             	mov    %ax,(%ecx)
452ed2:	5a                   	pop    %edx
452ed3:	eb 60                	jmp    0x452f35
452ed5:	ff b5 78 ff ff ff    	push   -0x88(%ebp)
452edb:	8b 5d f8             	mov    -0x8(%ebp),%ebx
452ede:	33 c0                	xor    %eax,%eax
452ee0:	ff 75 28             	push   0x28(%ebp)
452ee3:	8b f3                	mov    %ebx,%esi
452ee5:	8b cf                	mov    %edi,%ecx
452ee7:	ff 75 c4             	push   -0x3c(%ebp)
452eea:	66 89 03             	mov    %ax,(%ebx)
452eed:	2b f7                	sub    %edi,%esi
452eef:	6a 02                	push   $0x2
452ef1:	58                   	pop    %eax
452ef2:	8b d0                	mov    %eax,%edx
452ef4:	d1 fe                	sar    $1,%esi
452ef6:	e8 a6 57 fc ff       	call   0x4186a1
452efb:	83 c4 0c             	add    $0xc,%esp
452efe:	8d 04 36             	lea    (%esi,%esi,1),%eax
452f01:	50                   	push   %eax
452f02:	8d 47 04             	lea    0x4(%edi),%eax
452f05:	57                   	push   %edi
452f06:	50                   	push   %eax
452f07:	e8 14 51 fd ff       	call   0x428020
452f0c:	83 c4 0c             	add    $0xc,%esp
452f0f:	6a 04                	push   $0x4
452f11:	58                   	pop    %eax
452f12:	03 d8                	add    %eax,%ebx
452f14:	b8 84 00 00 00       	mov    $0x84,%eax
452f19:	6a 02                	push   $0x2
452f1b:	5a                   	pop    %edx
452f1c:	66 89 07             	mov    %ax,(%edi)
452f1f:	03 f2                	add    %edx,%esi
452f21:	6a 7b                	push   $0x7b
452f23:	58                   	pop    %eax
452f24:	66 89 03             	mov    %ax,(%ebx)
452f27:	03 da                	add    %edx,%ebx
452f29:	66 89 33             	mov    %si,(%ebx)
452f2c:	03 da                	add    %edx,%ebx
452f2e:	89 5d f8             	mov    %ebx,-0x8(%ebp)
452f31:	66 89 77 02          	mov    %si,0x2(%edi)
452f35:	8b 45 b4             	mov    -0x4c(%ebp),%eax
452f38:	85 c0                	test   %eax,%eax
452f3a:	74 08                	je     0x452f44
452f3c:	b9 94 00 00 00       	mov    $0x94,%ecx
452f41:	66 89 08             	mov    %cx,(%eax)
452f44:	8b 7d f8             	mov    -0x8(%ebp),%edi
452f47:	39 55 b0             	cmp    %edx,-0x50(%ebp)
452f4a:	0f 8d 4e 52 fc ff    	jge    0x41819e
452f50:	8b 75 fc             	mov    -0x4(%ebp),%esi