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)
453efd:	33 c0                	xor    %eax,%eax
453eff:	8b c8                	mov    %eax,%ecx
453f01:	6a 20                	push   $0x20
453f03:	5a                   	pop    %edx
453f04:	85 ff                	test   %edi,%edi
453f06:	74 17                	je     0x453f1f
453f08:	8a 84 0d 88 fe ff ff 	mov    -0x178(%ebp,%ecx,1),%al
453f0f:	f6 d0                	not    %al
453f11:	08 84 0d 2c ff ff ff 	or     %al,-0xd4(%ebp,%ecx,1)
453f18:	41                   	inc    %ecx
453f19:	3b ca                	cmp    %edx,%ecx
453f1b:	72 eb                	jb     0x453f08
453f1d:	eb 13                	jmp    0x453f32
453f1f:	8a 84 0d 88 fe ff ff 	mov    -0x178(%ebp,%ecx,1),%al
453f26:	08 84 0d 2c ff ff ff 	or     %al,-0xd4(%ebp,%ecx,1)
453f2d:	41                   	inc    %ecx
453f2e:	3b ca                	cmp    %edx,%ecx
453f30:	72 ed                	jb     0x453f1f
453f32:	8b 75 90             	mov    -0x70(%ebp),%esi
453f35:	6a 02                	push   $0x2
453f37:	5a                   	pop    %edx
453f38:	03 f2                	add    %edx,%esi
453f3a:	89 5d e0             	mov    %ebx,-0x20(%ebp)
453f3d:	89 55 a8             	mov    %edx,-0x58(%ebp)
453f40:	e9 dc fe ff ff       	jmp    0x453e21
453f45:	83 fe 0c             	cmp    $0xc,%esi
453f48:	0f 84 40 07 00 00    	je     0x45468e
453f4e:	83 fe 1a             	cmp    $0x1a,%esi
453f51:	75 28                	jne    0x453f7b
453f53:	8b 75 fc             	mov    -0x4(%ebp),%esi
453f56:	6a 5c                	push   $0x5c
453f58:	58                   	pop    %eax
453f59:	66 39 46 02          	cmp    %ax,0x2(%esi)
453f5d:	75 11                	jne    0x453f70
453f5f:	6a 45                	push   $0x45
453f61:	59                   	pop    %ecx
453f62:	66 39 4e 04          	cmp    %cx,0x4(%esi)
453f66:	75 08                	jne    0x453f70
453f68:	83 c6 04             	add    $0x4,%esi
453f6b:	e9 22 38 fc ff       	jmp    0x417792
453f70:	8b 45 f4             	mov    -0xc(%ebp),%eax
453f73:	89 45 d0             	mov    %eax,-0x30(%ebp)
453f76:	e9 1a 38 fc ff       	jmp    0x417795
453f7b:	83 fe 19             	cmp    $0x19,%esi
453f7e:	0f 84 1f 02 00 00    	je     0x4541a3
453f84:	8b 4d e0             	mov    -0x20(%ebp),%ecx
453f87:	8b 45 a8             	mov    -0x58(%ebp),%eax
453f8a:	41                   	inc    %ecx
453f8b:	8b 7b 08             	mov    0x8(%ebx),%edi
453f8e:	83 c0 02             	add    $0x2,%eax
453f91:	89 4d e0             	mov    %ecx,-0x20(%ebp)
453f94:	89 45 a8             	mov    %eax,-0x58(%ebp)
453f97:	83 fe 10             	cmp    $0x10,%esi
453f9a:	0f 8f 6f 01 00 00    	jg     0x45410f
453fa0:	6a 0f                	push   $0xf
453fa2:	5b                   	pop    %ebx
453fa3:	3b f3                	cmp    %ebx,%esi
453fa5:	0f 8d f4 00 00 00    	jge    0x45409f
453fab:	83 ee 06             	sub    $0x6,%esi
453fae:	0f 84 c7 00 00 00    	je     0x45407b
453fb4:	4e                   	dec    %esi
453fb5:	0f 84 a4 00 00 00    	je     0x45405f
453fbb:	4e                   	dec    %esi
453fbc:	74 76                	je     0x454034
453fbe:	4e                   	dec    %esi
453fbf:	74 50                	je     0x454011
453fc1:	4e                   	dec    %esi
453fc2:	74 29                	je     0x453fed
453fc4:	4e                   	dec    %esi
453fc5:	0f 85 64 01 00 00    	jne    0x45412f
453fcb:	33 c0                	xor    %eax,%eax
453fcd:	8b c8                	mov    %eax,%ecx
453fcf:	8a 84 0f a0 00 00 00 	mov    0xa0(%edi,%ecx,1),%al
453fd6:	08 84 0d 2c ff ff ff 	or     %al,-0xd4(%ebp,%ecx,1)
453fdd:	41                   	inc    %ecx
453fde:	6a 20                	push   $0x20
453fe0:	58                   	pop    %eax
453fe1:	3b c8                	cmp    %eax,%ecx
453fe3:	72 ea                	jb     0x453fcf
453fe5:	8b 75 fc             	mov    -0x4(%ebp),%esi
453fe8:	e9 34 fe ff ff       	jmp    0x453e21
453fed:	8b 55 f4             	mov    -0xc(%ebp),%edx
453ff0:	33 c0                	xor    %eax,%eax
453ff2:	6a 20                	push   $0x20
453ff4:	89 55 d8             	mov    %edx,-0x28(%ebp)
453ff7:	8b c8                	mov    %eax,%ecx
453ff9:	5a                   	pop    %edx
453ffa:	8a 84 0f a0 00 00 00 	mov    0xa0(%edi,%ecx,1),%al
454001:	f6 d0                	not    %al
454003:	08 84 0d 2c ff ff ff 	or     %al,-0xd4(%ebp,%ecx,1)
45400a:	41                   	inc    %ecx
45400b:	3b ca                	cmp    %edx,%ecx
45400d:	72 eb                	jb     0x453ffa
45400f:	eb d4                	jmp    0x453fe5
454011:	33 c0                	xor    %eax,%eax
454013:	8b d0                	mov    %eax,%edx
454015:	8d 85 2c ff ff ff    	lea    -0xd4(%ebp),%eax
45401b:	2b f8                	sub    %eax,%edi
45401d:	8d 8d 2c ff ff ff    	lea    -0xd4(%ebp),%ecx
454023:	03 ca                	add    %edx,%ecx
454025:	6a 20                	push   $0x20
454027:	8a 04 39             	mov    (%ecx,%edi,1),%al
45402a:	08 01                	or     %al,(%ecx)
45402c:	42                   	inc    %edx
45402d:	58                   	pop    %eax
45402e:	3b d0                	cmp    %eax,%edx
454030:	72 eb                	jb     0x45401d
454032:	eb b1                	jmp    0x453fe5
454034:	8b 45 f4             	mov    -0xc(%ebp),%eax
454037:	89 45 d8             	mov    %eax,-0x28(%ebp)
45403a:	33 c0                	xor    %eax,%eax
45403c:	8b d0                	mov    %eax,%edx
45403e:	8d 85 2c ff ff ff    	lea    -0xd4(%ebp),%eax
454044:	2b f8                	sub    %eax,%edi
454046:	8d 8d 2c ff ff ff    	lea    -0xd4(%ebp),%ecx
45404c:	03 ca                	add    %edx,%ecx
45404e:	6a 20                	push   $0x20
454050:	8a 04 39             	mov    (%ecx,%edi,1),%al
454053:	f6 d0                	not    %al
454055:	08 01                	or     %al,(%ecx)
454057:	42                   	inc    %edx
454058:	58                   	pop    %eax
454059:	3b d0                	cmp    %eax,%edx
45405b:	72 e9                	jb     0x454046
45405d:	eb 86                	jmp    0x453fe5
45405f:	33 c0                	xor    %eax,%eax
454061:	8b c8                	mov    %eax,%ecx
454063:	8a 44 0f 40          	mov    0x40(%edi,%ecx,1),%al
454067:	08 84 0d 2c ff ff ff 	or     %al,-0xd4(%ebp,%ecx,1)
45406e:	41                   	inc    %ecx
45406f:	6a 20                	push   $0x20
454071:	58                   	pop    %eax
454072:	3b c8                	cmp    %eax,%ecx
454074:	72 ed                	jb     0x454063
454076:	e9 6a ff ff ff       	jmp    0x453fe5
45407b:	8b 55 f4             	mov    -0xc(%ebp),%edx
45407e:	33 c0                	xor    %eax,%eax
454080:	6a 20                	push   $0x20
454082:	89 55 d8             	mov    %edx,-0x28(%ebp)
454085:	8b c8                	mov    %eax,%ecx
454087:	5a                   	pop    %edx
454088:	8a 44 0f 40          	mov    0x40(%edi,%ecx,1),%al
45408c:	f6 d0                	not    %al
45408e:	08 84 0d 2c ff ff ff 	or     %al,-0xd4(%ebp,%ecx,1)
454095:	41                   	inc    %ecx
454096:	3b ca                	cmp    %edx,%ecx
454098:	72 ee                	jb     0x454088
45409a:	e9 46 ff ff ff       	jmp    0x453fe5
45409f:	33 c0                	xor    %eax,%eax
4540a1:	8d 4d fc             	lea    -0x4(%ebp),%ecx
4540a4:	89 45 b4             	mov    %eax,-0x4c(%ebp)
4540a7:	89 45 c8             	mov    %eax,-0x38(%ebp)
4540aa:	8d 45 c8             	lea    -0x38(%ebp),%eax
4540ad:	52                   	push   %edx
4540ae:	50                   	push   %eax
4540af:	8d 45 b4             	lea    -0x4c(%ebp),%eax
4540b2:	50                   	push   %eax
4540b3:	8d 95 c8 fe ff ff    	lea    -0x138(%ebp),%edx
4540b9:	e8 83 a4 03 00       	call   0x48e541
4540be:	83 c4 0c             	add    $0xc,%esp
4540c1:	85 c0                	test   %eax,%eax
4540c3:	0f 84 34 42 fc ff    	je     0x4182fd
4540c9:	8b 7d e4             	mov    -0x1c(%ebp),%edi
4540cc:	33 c0                	xor    %eax,%eax
4540ce:	6a 10                	push   $0x10
4540d0:	59                   	pop    %ecx
4540d1:	3b f1                	cmp    %ecx,%esi
4540d3:	6a 02                	push   $0x2
4540d5:	0f 94 c0             	sete   %al
4540d8:	33 c9                	xor    %ecx,%ecx
4540da:	3b 85 c8 fe ff ff    	cmp    -0x138(%ebp),%eax
4540e0:	66 8b 45 b4          	mov    -0x4c(%ebp),%ax
4540e4:	0f 94 c1             	sete   %cl
4540e7:	83 c1 03             	add    $0x3,%ecx
4540ea:	66 89 0f             	mov    %cx,(%edi)