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
453d24:	6a 45                	push   $0x45
453d26:	59                   	pop    %ecx
453d27:	66 39 4e 02          	cmp    %cx,0x2(%esi)
453d2b:	0f 85 df 39 fc ff    	jne    0x417710
453d31:	33 c9                	xor    %ecx,%ecx
453d33:	83 c6 02             	add    $0x2,%esi
453d36:	89 4d d0             	mov    %ecx,-0x30(%ebp)
453d39:	8b c1                	mov    %ecx,%eax
453d3b:	e9 55 3a fc ff       	jmp    0x417795
453d40:	0f b7 7e 02          	movzwl 0x2(%esi),%edi
453d44:	6a 3a                	push   $0x3a
453d46:	58                   	pop    %eax
453d47:	66 3b f8             	cmp    %ax,%di
453d4a:	74 14                	je     0x453d60
453d4c:	6a 2e                	push   $0x2e
453d4e:	58                   	pop    %eax
453d4f:	66 3b f8             	cmp    %ax,%di
453d52:	74 0c                	je     0x453d60
453d54:	6a 3d                	push   $0x3d
453d56:	58                   	pop    %eax
453d57:	66 3b f8             	cmp    %ax,%di
453d5a:	0f 85 b0 39 fc ff    	jne    0x417710
453d60:	8d 55 90             	lea    -0x70(%ebp),%edx
453d63:	8b ce                	mov    %esi,%ecx
453d65:	e8 c4 a2 03 00       	call   0x48e02e
453d6a:	85 c0                	test   %eax,%eax
453d6c:	0f 84 9e 39 fc ff    	je     0x417710
453d72:	33 c0                	xor    %eax,%eax
453d74:	89 45 e8             	mov    %eax,-0x18(%ebp)
453d77:	8b 45 28             	mov    0x28(%ebp),%eax
453d7a:	6a 3a                	push   $0x3a
453d7c:	8b 58 08             	mov    0x8(%eax),%ebx
453d7f:	58                   	pop    %eax
453d80:	66 3b f8             	cmp    %ax,%di
453d83:	0f 85 f3 08 00 00    	jne    0x45467c
453d89:	6a 04                	push   $0x4
453d8b:	58                   	pop    %eax
453d8c:	03 f0                	add    %eax,%esi
453d8e:	6a 5e                	push   $0x5e
453d90:	58                   	pop    %eax
453d91:	89 75 fc             	mov    %esi,-0x4(%ebp)
453d94:	66 39 06             	cmp    %ax,(%esi)
453d97:	75 15                	jne    0x453dae
453d99:	8b 45 f4             	mov    -0xc(%ebp),%eax
453d9c:	8b f8                	mov    %eax,%edi
453d9e:	6a 02                	push   $0x2
453da0:	89 45 d8             	mov    %eax,-0x28(%ebp)
453da3:	58                   	pop    %eax
453da4:	03 f0                	add    %eax,%esi
453da6:	89 7d e8             	mov    %edi,-0x18(%ebp)
453da9:	89 75 fc             	mov    %esi,-0x4(%ebp)
453dac:	eb 03                	jmp    0x453db1
453dae:	8b 7d e8             	mov    -0x18(%ebp),%edi
453db1:	8b 55 90             	mov    -0x70(%ebp),%edx
453db4:	8b ce                	mov    %esi,%ecx
453db6:	2b d6                	sub    %esi,%edx
453db8:	d1 fa                	sar    $1,%edx
453dba:	e8 22 a2 03 00       	call   0x48dfe1
453dbf:	8b c8                	mov    %eax,%ecx
453dc1:	85 c9                	test   %ecx,%ecx
453dc3:	0f 88 af 08 00 00    	js     0x454678
453dc9:	8b 55 f4             	mov    -0xc(%ebp),%edx
453dcc:	8b 45 cc             	mov    -0x34(%ebp),%eax
453dcf:	84 c2                	test   %al,%dl
453dd1:	6a 02                	push   $0x2
453dd3:	5a                   	pop    %edx
453dd4:	74 06                	je     0x453ddc
453dd6:	3b ca                	cmp    %edx,%ecx
453dd8:	7f 02                	jg     0x453ddc
453dda:	33 c9                	xor    %ecx,%ecx
453ddc:	a9 00 00 00 20       	test   $0x20000000,%eax
453de1:	0f 84 8f 00 00 00    	je     0x453e76
453de7:	8b c7                	mov    %edi,%eax
453de9:	f7 d8                	neg    %eax
453deb:	1b c0                	sbb    %eax,%eax
453ded:	83 e0 0e             	and    $0xe,%eax
453df0:	03 c1                	add    %ecx,%eax
453df2:	8b 34 85 a0 88 4b 00 	mov    0x4b88a0(,%eax,4),%esi
453df9:	85 f6                	test   %esi,%esi
453dfb:	74 2c                	je     0x453e29
453dfd:	8b 45 90             	mov    -0x70(%ebp),%eax
453e00:	83 c0 02             	add    $0x2,%eax
453e03:	83 c6 fe             	add    $0xfffffffe,%esi
453e06:	89 45 a0             	mov    %eax,-0x60(%ebp)
453e09:	eb 16                	jmp    0x453e21
453e0b:	8b 45 fc             	mov    -0x4(%ebp),%eax
453e0e:	8b 34 b5 40 86 4b 00 	mov    0x4b8640(,%esi,4),%esi
453e15:	6a 02                	push   $0x2
453e17:	89 45 a0             	mov    %eax,-0x60(%ebp)
453e1a:	58                   	pop    %eax
453e1b:	2b f0                	sub    %eax,%esi
453e1d:	49                   	dec    %ecx
453e1e:	89 4d e0             	mov    %ecx,-0x20(%ebp)
453e21:	8b 7d e4             	mov    -0x1c(%ebp),%edi
453e24:	e9 69 39 fc ff       	jmp    0x417792
453e29:	8b c1                	mov    %ecx,%eax
453e2b:	83 e8 08             	sub    $0x8,%eax
453e2e:	74 11                	je     0x453e41
453e30:	48                   	dec    %eax
453e31:	74 0a                	je     0x453e3d
453e33:	48                   	dec    %eax
453e34:	75 40                	jne    0x453e76
453e36:	6a 0d                	push   $0xd
453e38:	58                   	pop    %eax
453e39:	8b c8                	mov    %eax,%ecx
453e3b:	eb 07                	jmp    0x453e44
453e3d:	6a 0c                	push   $0xc
453e3f:	eb 02                	jmp    0x453e43
453e41:	6a 0b                	push   $0xb
453e43:	59                   	pop    %ecx
453e44:	8b 75 90             	mov    -0x70(%ebp),%esi
453e47:	33 c0                	xor    %eax,%eax
453e49:	85 ff                	test   %edi,%edi
453e4b:	8b 7d e4             	mov    -0x1c(%ebp),%edi
453e4e:	0f 95 c0             	setne  %al
453e51:	83 c0 03             	add    $0x3,%eax
453e54:	66 89 07             	mov    %ax,(%edi)
453e57:	03 fa                	add    %edx,%edi
453e59:	33 c0                	xor    %eax,%eax
453e5b:	66 89 0f             	mov    %cx,(%edi)
453e5e:	03 fa                	add    %edx,%edi
453e60:	66 89 07             	mov    %ax,(%edi)
453e63:	03 fa                	add    %edx,%edi
453e65:	8b 45 f4             	mov    -0xc(%ebp),%eax
453e68:	83 c6 02             	add    $0x2,%esi
453e6b:	89 7d ec             	mov    %edi,-0x14(%ebp)
453e6e:	89 45 c8             	mov    %eax,-0x38(%ebp)
453e71:	e9 19 39 fc ff       	jmp    0x41778f
453e76:	6b f1 03             	imul   $0x3,%ecx,%esi
453e79:	6a 20                	push   $0x20
453e7b:	58                   	pop    %eax
453e7c:	50                   	push   %eax
453e7d:	8b 04 b5 f0 87 4b 00 	mov    0x4b87f0(,%esi,4),%eax
453e84:	03 c3                	add    %ebx,%eax
453e86:	50                   	push   %eax
453e87:	8d 85 88 fe ff ff    	lea    -0x178(%ebp),%eax
453e8d:	50                   	push   %eax
453e8e:	e8 ed d1 fc ff       	call   0x421080
453e93:	8b 04 b5 f4 87 4b 00 	mov    0x4b87f4(,%esi,4),%eax
453e9a:	83 c4 0c             	add    $0xc,%esp
453e9d:	8b 34 b5 f8 87 4b 00 	mov    0x4b87f8(,%esi,4),%esi
453ea4:	85 c0                	test   %eax,%eax
453ea6:	78 31                	js     0x453ed9
453ea8:	33 c9                	xor    %ecx,%ecx
453eaa:	8d 14 18             	lea    (%eax,%ebx,1),%edx
453ead:	6a 20                	push   $0x20
453eaf:	5f                   	pop    %edi
453eb0:	85 f6                	test   %esi,%esi
453eb2:	78 11                	js     0x453ec5
453eb4:	8a 04 0a             	mov    (%edx,%ecx,1),%al
453eb7:	08 84 0d 88 fe ff ff 	or     %al,-0x178(%ebp,%ecx,1)
453ebe:	41                   	inc    %ecx
453ebf:	3b cf                	cmp    %edi,%ecx
453ec1:	72 f1                	jb     0x453eb4
453ec3:	eb 11                	jmp    0x453ed6
453ec5:	8a 04 0a             	mov    (%edx,%ecx,1),%al
453ec8:	f6 d0                	not    %al
453eca:	20 84 0d 88 fe ff ff 	and    %al,-0x178(%ebp,%ecx,1)
453ed1:	41                   	inc    %ecx
453ed2:	3b cf                	cmp    %edi,%ecx
453ed4:	72 ef                	jb     0x453ec5
453ed6:	8b 7d e8             	mov    -0x18(%ebp),%edi
453ed9:	85 f6                	test   %esi,%esi
453edb:	79 02                	jns    0x453edf
453edd:	f7 de                	neg    %esi
453edf:	8b 5d f4             	mov    -0xc(%ebp),%ebx
453ee2:	6a 02                	push   $0x2
453ee4:	5a                   	pop    %edx
453ee5:	3b f3                	cmp    %ebx,%esi
453ee7:	75 09                	jne    0x453ef2
453ee9:	80 a5 89 fe ff ff c3 	andb   $0xc3,-0x177(%ebp)
453ef0:	eb 0b                	jmp    0x453efd
453ef2:	3b f2                	cmp    %edx,%esi
453ef4:	75 07                	jne    0x453efd
453ef6:	80 a5 93 fe ff ff 7f 	andb   $0x7f,-0x16d(%ebp)