453923:	8b 5d 28             	mov    0x28(%ebp),%ebx
453926:	8b 55 b8             	mov    -0x48(%ebp),%edx
453929:	8b 75 f4             	mov    -0xc(%ebp),%esi
45392c:	89 4d 8c             	mov    %ecx,-0x74(%ebp)
45392f:	41                   	inc    %ecx
453930:	8b 43 34             	mov    0x34(%ebx),%eax
453933:	89 4d ec             	mov    %ecx,-0x14(%ebp)
453936:	8d 14 42             	lea    (%edx,%eax,2),%edx
453939:	89 55 dc             	mov    %edx,-0x24(%ebp)
45393c:	3b 4b 30             	cmp    0x30(%ebx),%ecx
45393f:	0f 8d d7 01 00 00    	jge    0x453b1c
453945:	8b 5d b8             	mov    -0x48(%ebp),%ebx
453948:	8b f9                	mov    %ecx,%edi
45394a:	83 c2 02             	add    $0x2,%edx
45394d:	8d 4b 02             	lea    0x2(%ebx),%ecx
453950:	e8 73 b0 03 00       	call   0x48e9c8
453955:	8b 55 dc             	mov    -0x24(%ebp),%edx
453958:	85 c0                	test   %eax,%eax
45395a:	75 13                	jne    0x45396f
45395c:	8b 4d 28             	mov    0x28(%ebp),%ecx
45395f:	46                   	inc    %esi
453960:	47                   	inc    %edi
453961:	8b 41 34             	mov    0x34(%ecx),%eax
453964:	8d 14 42             	lea    (%edx,%eax,2),%edx
453967:	89 55 dc             	mov    %edx,-0x24(%ebp)
45396a:	3b 79 30             	cmp    0x30(%ecx),%edi
45396d:	7c db                	jl     0x45394a
45396f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
453972:	8b 7d c8             	mov    -0x38(%ebp),%edi
453975:	3b f1                	cmp    %ecx,%esi
453977:	0f 8e ef 01 00 00    	jle    0x453b6c
45397d:	83 7d d4 fe          	cmpl   $0xfffffffe,-0x2c(%ebp)
453981:	75 04                	jne    0x453987
453983:	83 4d d4 ff          	orl    $0xffffffff,-0x2c(%ebp)
453987:	8b 45 f4             	mov    -0xc(%ebp),%eax
45398a:	84 45 cc             	test   %al,-0x34(%ebp)
45398d:	8b 4d f8             	mov    -0x8(%ebp),%ecx
453990:	8b d9                	mov    %ecx,%ebx
453992:	6a 00                	push   $0x0
453994:	58                   	pop    %eax
453995:	0f 95 c0             	setne  %al
453998:	89 5d f0             	mov    %ebx,-0x10(%ebp)
45399b:	6a 73                	push   $0x73
45399d:	5f                   	pop    %edi
45399e:	03 c7                	add    %edi,%eax
4539a0:	66 89 01             	mov    %ax,(%ecx)
4539a3:	6a 02                	push   $0x2
4539a5:	58                   	pop    %eax
4539a6:	03 c8                	add    %eax,%ecx
4539a8:	8b 45 8c             	mov    -0x74(%ebp),%eax
4539ab:	6a 02                	push   $0x2
4539ad:	66 89 01             	mov    %ax,(%ecx)
4539b0:	58                   	pop    %eax
4539b1:	03 c8                	add    %eax,%ecx
4539b3:	66 89 31             	mov    %si,(%ecx)
4539b6:	03 c8                	add    %eax,%ecx
4539b8:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4539bb:	8b 4d b8             	mov    -0x48(%ebp),%ecx
4539be:	3b ca                	cmp    %edx,%ecx
4539c0:	0f 83 ca 01 00 00    	jae    0x453b90
4539c6:	8b 75 dc             	mov    -0x24(%ebp),%esi
4539c9:	8b 7d 28             	mov    0x28(%ebp),%edi
4539cc:	8b 5d f4             	mov    -0xc(%ebp),%ebx
4539cf:	0f b7 11             	movzwl (%ecx),%edx
4539d2:	6a 20                	push   $0x20
4539d4:	58                   	pop    %eax
4539d5:	3b d0                	cmp    %eax,%edx
4539d7:	8b c3                	mov    %ebx,%eax
4539d9:	7d 04                	jge    0x4539df
4539db:	8b ca                	mov    %edx,%ecx
4539dd:	d3 e0                	shl    %cl,%eax
4539df:	09 47 50             	or     %eax,0x50(%edi)
4539e2:	3b 57 4c             	cmp    0x4c(%edi),%edx
4539e5:	7e 03                	jle    0x4539ea
4539e7:	89 57 4c             	mov    %edx,0x4c(%edi)
4539ea:	8b 4f 24             	mov    0x24(%edi),%ecx
4539ed:	e9 07 01 00 00       	jmp    0x453af9
4539f2:	8b 55 28             	mov    0x28(%ebp),%edx
4539f5:	8b 45 f8             	mov    -0x8(%ebp),%eax
4539f8:	33 c9                	xor    %ecx,%ecx
4539fa:	8b d8                	mov    %eax,%ebx
4539fc:	8b 72 14             	mov    0x14(%edx),%esi
4539ff:	89 5d f0             	mov    %ebx,-0x10(%ebp)
453a02:	39 4d 2c             	cmp    %ecx,0x2c(%ebp)
453a05:	0f 85 dc 00 00 00    	jne    0x453ae7
453a0b:	66 89 08             	mov    %cx,(%eax)
453a0e:	85 ff                	test   %edi,%edi
453a10:	74 17                	je     0x453a29
453a12:	8b 45 28             	mov    0x28(%ebp),%eax
453a15:	8b 55 c4             	mov    -0x3c(%ebp),%edx
453a18:	57                   	push   %edi
453a19:	8b 48 14             	mov    0x14(%eax),%ecx
453a1c:	e8 30 a1 03 00       	call   0x48db51
453a21:	8b 55 28             	mov    0x28(%ebp),%edx
453a24:	8b f0                	mov    %eax,%esi
453a26:	59                   	pop    %ecx
453a27:	8b c3                	mov    %ebx,%eax
453a29:	85 f6                	test   %esi,%esi
453a2b:	0f 85 86 00 00 00    	jne    0x453ab7
453a31:	3b 7a 44             	cmp    0x44(%edx),%edi
453a34:	0f 8f 23 0c 00 00    	jg     0x45465d
453a3a:	8b 42 14             	mov    0x14(%edx),%eax
453a3d:	8b 4a 3c             	mov    0x3c(%edx),%ecx
453a40:	8d 34 78             	lea    (%eax,%edi,2),%esi
453a43:	8b 42 10             	mov    0x10(%edx),%eax
453a46:	8d 04 48             	lea    (%eax,%ecx,2),%eax
453a49:	05 38 ff ff ff       	add    $0xffffff38,%eax
453a4e:	39 42 20             	cmp    %eax,0x20(%edx)
453a51:	72 14                	jb     0x453a67
453a53:	8b ca                	mov    %edx,%ecx
453a55:	e8 8d a6 03 00       	call   0x48e0e7
453a5a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
453a5d:	89 01                	mov    %eax,(%ecx)
453a5f:	85 c0                	test   %eax,%eax
453a61:	0f 85 96 48 fc ff    	jne    0x4182fd
453a67:	8b 45 28             	mov    0x28(%ebp),%eax
453a6a:	8b 55 f8             	mov    -0x8(%ebp),%edx
453a6d:	8b ca                	mov    %edx,%ecx
453a6f:	6a 02                	push   $0x2
453a71:	5f                   	pop    %edi
453a72:	2b 48 14             	sub    0x14(%eax),%ecx
453a75:	8b 40 20             	mov    0x20(%eax),%eax
453a78:	03 cf                	add    %edi,%ecx
453a7a:	d1 f9                	sar    $1,%ecx
453a7c:	66 89 08             	mov    %cx,(%eax)
453a7f:	8b 45 28             	mov    0x28(%ebp),%eax
453a82:	01 78 20             	add    %edi,0x20(%eax)
453a85:	33 c9                	xor    %ecx,%ecx
453a87:	6a 75                	push   $0x75
453a89:	5f                   	pop    %edi
453a8a:	66 89 3a             	mov    %di,(%edx)
453a8d:	2b 70 14             	sub    0x14(%eax),%esi
453a90:	d1 fe                	sar    $1,%esi
453a92:	6a 04                	push   $0x4
453a94:	58                   	pop    %eax
453a95:	66 89 72 02          	mov    %si,0x2(%edx)
453a99:	03 d0                	add    %eax,%edx
453a9b:	83 7d d4 fe          	cmpl   $0xfffffffe,-0x2c(%ebp)
453a9f:	89 55 f8             	mov    %edx,-0x8(%ebp)
453aa2:	89 8d 68 ff ff ff    	mov    %ecx,-0x98(%ebp)
453aa8:	0f 85 4a 46 fc ff    	jne    0x4180f8
453aae:	83 4d d4 ff          	orl    $0xffffffff,-0x2c(%ebp)
453ab2:	e9 41 46 fc ff       	jmp    0x4180f8
453ab7:	33 c9                	xor    %ecx,%ecx
453ab9:	66 39 4e 02          	cmp    %cx,0x2(%esi)
453abd:	75 28                	jne    0x453ae7
453abf:	39 4d 24             	cmp    %ecx,0x24(%ebp)
453ac2:	7f 23                	jg     0x453ae7
453ac4:	52                   	push   %edx
453ac5:	ff 75 c4             	push   -0x3c(%ebp)
453ac8:	8b d0                	mov    %eax,%edx
453aca:	8b ce                	mov    %esi,%ecx
453acc:	ff 75 20             	push   0x20(%ebp)
453acf:	e8 d5 a5 03 00       	call   0x48e0a9
453ad4:	83 c4 0c             	add    $0xc,%esp
453ad7:	85 c0                	test   %eax,%eax
453ad9:	0f 85 8b 0b 00 00    	jne    0x45466a
453adf:	8b 55 f8             	mov    -0x8(%ebp),%edx
453ae2:	8b 45 28             	mov    0x28(%ebp),%eax
453ae5:	eb 9e                	jmp    0x453a85
453ae7:	8b 55 f8             	mov    -0x8(%ebp),%edx
453aea:	8b 45 28             	mov    0x28(%ebp),%eax
453aed:	eb 98                	jmp    0x453a87
453aef:	0f b7 41 04          	movzwl 0x4(%ecx),%eax
453af3:	3b c2                	cmp    %edx,%eax
453af5:	74 08                	je     0x453aff
453af7:	8b 09                	mov    (%ecx),%ecx
453af9:	85 c9                	test   %ecx,%ecx
453afb:	75 f2                	jne    0x453aef
453afd:	eb 04                	jmp    0x453b03
453aff:	66 89 59 06          	mov    %bx,0x6(%ecx)
453b03:	8b 4d b8             	mov    -0x48(%ebp),%ecx
453b06:	8b 47 34             	mov    0x34(%edi),%eax
453b09:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
453b0c:	89 4d b8             	mov    %ecx,-0x48(%ebp)
453b0f:	3b ce                	cmp    %esi,%ecx
453b11:	0f 82 b8 fe ff ff    	jb     0x4539cf
453b17:	e9 f9 39 fc ff       	jmp    0x417515
453b1c:	8b f3                	mov    %ebx,%esi
453b1e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
453b21:	83 7d d4 fe          	cmpl   $0xfffffffe,-0x2c(%ebp)
453b25:	75 04                	jne    0x453b2b
453b27:	83 4d d4 ff          	orl    $0xffffffff,-0x2c(%ebp)
453b2b:	8b 55 f8             	mov    -0x8(%ebp),%edx
453b2e:	8b da                	mov    %edx,%ebx
453b30:	84 4d cc             	test   %cl,-0x34(%ebp)
453b33:	6a 00                	push   $0x0
453b35:	58                   	pop    %eax
453b36:	0f 95 c0             	setne  %al
453b39:	89 5d f0             	mov    %ebx,-0x10(%ebp)
453b3c:	83 c0 71             	add    $0x71,%eax
453b3f:	66 89 02             	mov    %ax,(%edx)
453b42:	6a 02                	push   $0x2
453b44:	58                   	pop    %eax
453b45:	03 d0                	add    %eax,%edx
453b47:	6a 20                	push   $0x20
453b49:	66 89 3a             	mov    %di,(%edx)
453b4c:	03 d0                	add    %eax,%edx
453b4e:	58                   	pop    %eax
453b4f:	3b f8                	cmp    %eax,%edi
453b51:	89 55 f8             	mov    %edx,-0x8(%ebp)
453b54:	8b c1                	mov    %ecx,%eax
453b56:	7d 04                	jge    0x453b5c
453b58:	8b cf                	mov    %edi,%ecx
453b5a:	d3 e0                	shl    %cl,%eax
453b5c:	09 46 50             	or     %eax,0x50(%esi)
453b5f:	3b 7e 4c             	cmp    0x4c(%esi),%edi
453b62:	7e 03                	jle    0x453b67
453b64:	89 7e 4c             	mov    %edi,0x4c(%esi)
453b67:	8b 4e 24             	mov    0x24(%esi),%ecx
453b6a:	eb 0f                	jmp    0x453b7b
453b6c:	8b 75 28             	mov    0x28(%ebp),%esi
453b6f:	eb b0                	jmp    0x453b21
453b71:	0f b7 41 04          	movzwl 0x4(%ecx),%eax
453b75:	3b c7                	cmp    %edi,%eax
453b77:	74 0b                	je     0x453b84
453b79:	8b 09                	mov    (%ecx),%ecx
453b7b:	85 c9                	test   %ecx,%ecx
453b7d:	75 f2                	jne    0x453b71
453b7f:	e9 74 45 fc ff       	jmp    0x4180f8
453b84:	8b 45 f4             	mov    -0xc(%ebp),%eax
453b87:	66 89 41 06          	mov    %ax,0x6(%ecx)
453b8b:	e9 68 45 fc ff       	jmp    0x4180f8
453b90:	8b 55 f8             	mov    -0x8(%ebp),%edx
453b93:	e9 60 45 fc ff       	jmp    0x4180f8
453b98:	39 5e 48             	cmp    %ebx,0x48(%esi)
453b9b:	0f 85 23 45 fc ff    	jne    0x4180c4
453ba1:	89 4e 48             	mov    %ecx,0x48(%esi)
453ba4:	e9 1b 45 fc ff       	jmp    0x4180c4
453ba9:	83 ff 22             	cmp    $0x22,%edi
453bac:	0f 8f 1d 45 fc ff    	jg     0x4180cf
453bb2:	e9 ae e2 ff ff       	jmp    0x451e65
453bb7:	83 ff 0e             	cmp    $0xe,%edi
453bba:	0f 85 2d 45 fc ff    	jne    0x4180ed
453bc0:	6a 0d                	push   $0xd
453bc2:	58                   	pop    %eax
453bc3:	8b f8                	mov    %eax,%edi
453bc5:	e9 23 45 fc ff       	jmp    0x4180ed
453bca:	52                   	push   %edx
453bcb:	8d 45 c8             	lea    -0x38(%ebp),%eax
453bce:	89 5d b4             	mov    %ebx,-0x4c(%ebp)
453bd1:	50                   	push   %eax
453bd2:	8d 45 b4             	lea    -0x4c(%ebp),%eax
453bd5:	89 5d c8             	mov    %ebx,-0x38(%ebp)
453bd8:	50                   	push   %eax
453bd9:	8d 95 d0 fe ff ff    	lea    -0x130(%ebp),%edx
453bdf:	8d 4d fc             	lea    -0x4(%ebp),%ecx
453be2:	e8 5a a9 03 00       	call   0x48e541
453be7:	83 c4 0c             	add    $0xc,%esp
453bea:	85 c0                	test   %eax,%eax
453bec:	0f 84 0b 47 fc ff    	je     0x4182fd
453bf2:	8b 55 f8             	mov    -0x8(%ebp),%edx
453bf5:	33 c0                	xor    %eax,%eax
453bf7:	6a 10                	push   $0x10
453bf9:	59                   	pop    %ecx
453bfa:	3b f9                	cmp    %ecx,%edi
453bfc:	8b da                	mov    %edx,%ebx
453bfe:	6a 0f                	push   $0xf
453c00:	0f 94 c0             	sete   %al
453c03:	89 5d f0             	mov    %ebx,-0x10(%ebp)
453c06:	33 c9                	xor    %ecx,%ecx
453c08:	3b 85 d0 fe ff ff    	cmp    -0x130(%ebp),%eax
453c0e:	58                   	pop    %eax
453c0f:	0f 95 c1             	setne  %cl
453c12:	03 c8                	add    %eax,%ecx
453c14:	66 8b 45 b4          	mov    -0x4c(%ebp),%ax
453c18:	66 89 0a             	mov    %cx,(%edx)
453c1b:	6a 02                	push   $0x2
453c1d:	5e                   	pop    %esi
453c1e:	03 d6                	add    %esi,%edx
453c20:	66 89 02             	mov    %ax,(%edx)
453c23:	03 d6                	add    %esi,%edx
453c25:	66 8b 45 c8          	mov    -0x38(%ebp),%ax
453c29:	66 89 02             	mov    %ax,(%edx)
453c2c:	e9 c2 44 fc ff       	jmp    0x4180f3
453c31:	8d 46 0e             	lea    0xe(%esi),%eax
453c34:	be bc 78 4b 00       	mov    $0x4b78bc,%esi
453c39:	e9 34 e2 ff ff       	jmp    0x451e72
453c3e:	8d 46 0e             	lea    0xe(%esi),%eax
453c41:	be dc 87 4b 00       	mov    $0x4b87dc,%esi
453c46:	e9 27 e2 ff ff       	jmp    0x451e72
453c4b:	8d 55 90             	lea    -0x70(%ebp),%edx
453c4e:	8b ce                	mov    %esi,%ecx
453c50:	e8 d9 a3 03 00       	call   0x48e02e
453c55:	85 c0                	test   %eax,%eax
453c57:	0f 84 ef 39 fc ff    	je     0x41764c
453c5d:	33 c0                	xor    %eax,%eax
453c5f:	66 39 5e 02          	cmp    %bx,0x2(%esi)
453c63:	6a 1f                	push   $0x1f
453c65:	0f 95 c0             	setne  %al
453c68:	48                   	dec    %eax
453c69:	59                   	pop    %ecx
453c6a:	83 e0 ee             	and    $0xffffffee,%eax
453c6d:	03 c1                	add    %ecx,%eax
453c6f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
453c72:	89 01                	mov    %eax,(%ecx)
453c74:	e9 39 0a 00 00       	jmp    0x4546b2
453c79:	8b 45 f4             	mov    -0xc(%ebp),%eax
453c7c:	89 45 dc             	mov    %eax,-0x24(%ebp)
453c7f:	e9 d6 39 fc ff       	jmp    0x41765a
453c84:	8b 4d 28             	mov    0x28(%ebp),%ecx
453c87:	f7 41 60 00 00 00 02 	testl  $0x2000000,0x60(%ecx)
453c8e:	0f 84 f1 39 fc ff    	je     0x417685
453c94:	8b 55 f8             	mov    -0x8(%ebp),%edx
453c97:	f7 d8                	neg    %eax
453c99:	1b c0                	sbb    %eax,%eax
453c9b:	25 70 ff ff ff       	and    $0xffffff70,%eax
453ca0:	05 9d 00 00 00       	add    $0x9d,%eax
453ca5:	66 89 02             	mov    %ax,(%edx)
453ca8:	03 d7                	add    %edi,%edx
453caa:	8b 45 d4             	mov    -0x2c(%ebp),%eax
453cad:	89 55 f8             	mov    %edx,-0x8(%ebp)
453cb0:	83 f8 fe             	cmp    $0xfffffffe,%eax
453cb3:	75 06                	jne    0x453cbb
453cb5:	83 c8 ff             	or     $0xffffffff,%eax
453cb8:	89 45 d4             	mov    %eax,-0x2c(%ebp)
453cbb:	8b 7d 9c             	mov    -0x64(%ebp),%edi
453cbe:	89 7d 84             	mov    %edi,-0x7c(%ebp)
453cc1:	89 45 94             	mov    %eax,-0x6c(%ebp)
453cc4:	e9 a9 3b fc ff       	jmp    0x417872
453cc9:	0f b7 1e             	movzwl (%esi),%ebx
453ccc:	8b c3                	mov    %ebx,%eax
453cce:	89 5d e8             	mov    %ebx,-0x18(%ebp)
453cd1:	23 c1                	and    %ecx,%eax
453cd3:	3b c2                	cmp    %edx,%eax
453cd5:	0f 85 05 3a fc ff    	jne    0x4176e0
453cdb:	83 c6 02             	add    $0x2,%esi
453cde:	b9 ff 03 00 00       	mov    $0x3ff,%ecx
453ce3:	23 d9                	and    %ecx,%ebx
453ce5:	c1 e3 0a             	shl    $0xa,%ebx
453ce8:	0f b7 06             	movzwl (%esi),%eax
453ceb:	23 c1                	and    %ecx,%eax
453ced:	89 75 fc             	mov    %esi,-0x4(%ebp)
453cf0:	0b d8                	or     %eax,%ebx
453cf2:	81 c3 00 00 01 00    	add    $0x10000,%ebx
453cf8:	89 5d e8             	mov    %ebx,-0x18(%ebp)
453cfb:	e9 e0 39 fc ff       	jmp    0x4176e0
453d00:	8b 45 f4             	mov    -0xc(%ebp),%eax
453d03:	2b f9                	sub    %ecx,%edi
453d05:	d1 ff                	sar    $1,%edi
453d07:	01 3a                	add    %edi,(%edx)
453d09:	8b f9                	mov    %ecx,%edi
453d0b:	89 45 98             	mov    %eax,-0x68(%ebp)
453d0e:	89 7d e4             	mov    %edi,-0x1c(%ebp)
453d11:	89 7d ec             	mov    %edi,-0x14(%ebp)
453d14:	e9 d9 39 fc ff       	jmp    0x4176f2
453d19:	6a 5c                	push   $0x5c
453d1b:	58                   	pop    %eax
453d1c:	3b d8                	cmp    %eax,%ebx
453d1e:	0f 85 ec 39 fc ff    	jne    0x417710