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)
4540ed:	59                   	pop    %ecx
4540ee:	03 f9                	add    %ecx,%edi
4540f0:	66 89 07             	mov    %ax,(%edi)
4540f3:	03 f9                	add    %ecx,%edi
4540f5:	66 8b 45 c8          	mov    -0x38(%ebp),%ax
4540f9:	66 89 07             	mov    %ax,(%edi)
4540fc:	03 f9                	add    %ecx,%edi
4540fe:	8b 45 f4             	mov    -0xc(%ebp),%eax
454101:	ff 4d e0             	decl   -0x20(%ebp)
454104:	89 7d ec             	mov    %edi,-0x14(%ebp)
454107:	89 45 c8             	mov    %eax,-0x38(%ebp)
45410a:	e9 7d 36 fc ff       	jmp    0x41778c
45410f:	83 fe 12             	cmp    $0x12,%esi
454112:	74 70                	je     0x454184
454114:	83 fe 13             	cmp    $0x13,%esi
454117:	74 43                	je     0x45415c
454119:	83 fe 14             	cmp    $0x14,%esi
45411c:	74 5f                	je     0x45417d
45411e:	83 fe 15             	cmp    $0x15,%esi
454121:	74 30                	je     0x454153
454123:	83 c6 e3             	add    $0xffffffe3,%esi
454126:	83 fe 05             	cmp    $0x5,%esi
454129:	0f 86 dc fc ff ff    	jbe    0x453e0b
45412f:	f6 45 cc 40          	testb  $0x40,-0x34(%ebp)
454133:	8b 75 fc             	mov    -0x4(%ebp),%esi
454136:	0f 85 4a 05 00 00    	jne    0x454686
45413c:	0f b7 1e             	movzwl (%esi),%ebx
45413f:	49                   	dec    %ecx
454140:	6a 02                	push   $0x2
454142:	89 4d e0             	mov    %ecx,-0x20(%ebp)
454145:	59                   	pop    %ecx
454146:	2b c1                	sub    %ecx,%eax
454148:	89 5d e8             	mov    %ebx,-0x18(%ebp)
45414b:	89 45 a8             	mov    %eax,-0x58(%ebp)
45414e:	e9 c0 35 fc ff       	jmp    0x417713
454153:	6a ff                	push   $0xffffffff
454155:	68 80 93 4b 00       	push   $0x4b9380
45415a:	eb 07                	jmp    0x454163
45415c:	6a ff                	push   $0xffffffff
45415e:	68 30 8f 4b 00       	push   $0x4b8f30
454163:	53                   	push   %ebx
454164:	ff 75 cc             	push   -0x34(%ebp)
454167:	8d 55 ec             	lea    -0x14(%ebp),%edx
45416a:	8d 8d 2c ff ff ff    	lea    -0xd4(%ebp),%ecx
454170:	e8 23 9b 03 00       	call   0x48dc98
454175:	83 c4 10             	add    $0x10,%esp
454178:	e9 0c 36 fc ff       	jmp    0x417789
45417d:	68 80 93 4b 00       	push   $0x4b9380
454182:	eb 05                	jmp    0x454189
454184:	68 30 8f 4b 00       	push   $0x4b8f30
454189:	53                   	push   %ebx
45418a:	ff 75 cc             	push   -0x34(%ebp)
45418d:	8d 55 ec             	lea    -0x14(%ebp),%edx
454190:	8d 8d 2c ff ff ff    	lea    -0xd4(%ebp),%ecx
454196:	e8 ff 9b 03 00       	call   0x48dd9a
45419b:	83 c4 0c             	add    $0xc,%esp
45419e:	e9 e6 35 fc ff       	jmp    0x417789
4541a3:	8b 75 fc             	mov    -0x4(%ebp),%esi
4541a6:	e9 e7 35 fc ff       	jmp    0x417792
4541ab:	66 39 5e 04          	cmp    %bx,0x4(%esi)
4541af:	75 0f                	jne    0x4541c0
4541b1:	83 c6 04             	add    $0x4,%esi
4541b4:	89 4d d0             	mov    %ecx,-0x30(%ebp)
4541b7:	89 75 fc             	mov    %esi,-0x4(%ebp)
4541ba:	66 39 7e 02          	cmp    %di,0x2(%esi)
4541be:	74 eb                	je     0x4541ab
4541c0:	8b 5d e8             	mov    -0x18(%ebp),%ebx
4541c3:	8b 55 0c             	mov    0xc(%ebp),%edx
4541c6:	e9 57 35 fc ff       	jmp    0x417722
4541cb:	8b 45 28             	mov    0x28(%ebp),%eax
4541ce:	81 48 64 00 08 00 00 	orl    $0x800,0x64(%eax)
4541d5:	e9 60 35 fc ff       	jmp    0x41773a
4541da:	6a 5c                	push   $0x5c
4541dc:	5a                   	pop    %edx
4541dd:	6a 45                	push   $0x45
4541df:	5f                   	pop    %edi
4541e0:	66 39 7e 02          	cmp    %di,0x2(%esi)
4541e4:	75 0a                	jne    0x4541f0
4541e6:	03 f0                	add    %eax,%esi
4541e8:	89 75 fc             	mov    %esi,-0x4(%ebp)
4541eb:	66 39 16             	cmp    %dx,(%esi)
4541ee:	74 f0                	je     0x4541e0
4541f0:	66 39 16             	cmp    %dx,(%esi)
4541f3:	8b 5d e8             	mov    -0x18(%ebp),%ebx
4541f6:	8b 55 0c             	mov    0xc(%ebp),%edx
4541f9:	8b 7d d0             	mov    -0x30(%ebp),%edi
4541fc:	0f 85 e2 3c fc ff    	jne    0x417ee4
454202:	66 83 7e 02 51       	cmpw   $0x51,0x2(%esi)
454207:	0f 85 d7 3c fc ff    	jne    0x417ee4
45420d:	03 f0                	add    %eax,%esi
45420f:	6a 5c                	push   $0x5c
454211:	58                   	pop    %eax
454212:	89 75 fc             	mov    %esi,-0x4(%ebp)
454215:	66 39 06             	cmp    %ax,(%esi)
454218:	6a 04                	push   $0x4
45421a:	58                   	pop    %eax
45421b:	75 21                	jne    0x45423e
45421d:	6a 45                	push   $0x45
45421f:	58                   	pop    %eax
454220:	66 39 46 02          	cmp    %ax,0x2(%esi)
454224:	6a 04                	push   $0x4
454226:	58                   	pop    %eax
454227:	75 15                	jne    0x45423e
454229:	03 f0                	add    %eax,%esi
45422b:	6a 5c                	push   $0x5c
45422d:	58                   	pop    %eax
45422e:	89 75 fc             	mov    %esi,-0x4(%ebp)
454231:	66 39 06             	cmp    %ax,(%esi)
454234:	6a 04                	push   $0x4
454236:	58                   	pop    %eax
454237:	74 c9                	je     0x454202
454239:	e9 a6 3c fc ff       	jmp    0x417ee4
45423e:	8b 7d f4             	mov    -0xc(%ebp),%edi
454241:	89 7d d0             	mov    %edi,-0x30(%ebp)
454244:	e9 9b 3c fc ff       	jmp    0x417ee4
454249:	83 c6 02             	add    $0x2,%esi
45424c:	b9 ff 03 00 00       	mov    $0x3ff,%ecx
454251:	23 f9                	and    %ecx,%edi
454253:	c1 e7 0a             	shl    $0xa,%edi
454256:	0f b7 06             	movzwl (%esi),%eax
454259:	23 c1                	and    %ecx,%eax
45425b:	89 75 fc             	mov    %esi,-0x4(%ebp)
45425e:	0b f8                	or     %eax,%edi
454260:	81 c7 00 00 01 00    	add    $0x10000,%edi
454266:	89 7d e8             	mov    %edi,-0x18(%ebp)
454269:	e9 b1 3c fc ff       	jmp    0x417f1f
45426e:	ff 75 f4             	push   -0xc(%ebp)
454271:	8b 45 28             	mov    0x28(%ebp),%eax
454274:	8d 4d fc             	lea    -0x4(%ebp),%ecx
454277:	ff 75 cc             	push   -0x34(%ebp)
45427a:	ff 70 40             	push   0x40(%eax)
45427d:	52                   	push   %edx
45427e:	8d 55 e8             	lea    -0x18(%ebp),%edx
454281:	e8 3e 41 fc ff       	call   0x4183c4
454286:	8b 4d 0c             	mov    0xc(%ebp),%ecx
454289:	33 d2                	xor    %edx,%edx
45428b:	83 c4 10             	add    $0x10,%esp
45428e:	39 11                	cmp    %edx,(%ecx)
454290:	0f 85 67 40 fc ff    	jne    0x4182fd
454296:	8b 75 fc             	mov    -0x4(%ebp),%esi
454299:	85 c0                	test   %eax,%eax
45429b:	74 11                	je     0x4542ae
45429d:	83 f8 05             	cmp    $0x5,%eax
4542a0:	0f 85 f3 03 00 00    	jne    0x454699
4542a6:	6a 08                	push   $0x8
4542a8:	5f                   	pop    %edi
4542a9:	e9 8e 3c fc ff       	jmp    0x417f3c
4542ae:	8b 7d e8             	mov    -0x18(%ebp),%edi
4542b1:	e9 86 3c fc ff       	jmp    0x417f3c
4542b6:	0f b7 46 02          	movzwl 0x2(%esi),%eax
4542ba:	6a 3a                	push   $0x3a
4542bc:	59                   	pop    %ecx
4542bd:	66 3b c1             	cmp    %cx,%ax
4542c0:	74 14                	je     0x4542d6
4542c2:	6a 2e                	push   $0x2e
4542c4:	59                   	pop    %ecx
4542c5:	66 3b c1             	cmp    %cx,%ax
4542c8:	74 0c                	je     0x4542d6
4542ca:	6a 3d                	push   $0x3d
4542cc:	59                   	pop    %ecx
4542cd:	66 3b c1             	cmp    %cx,%ax
4542d0:	0f 85 63 3c fc ff    	jne    0x417f39
4542d6:	8d 55 90             	lea    -0x70(%ebp),%edx
4542d9:	8b ce                	mov    %esi,%ecx
4542db:	e8 4e 9d 03 00       	call   0x48e02e
4542e0:	85 c0                	test   %eax,%eax
4542e2:	0f 84 51 3c fc ff    	je     0x417f39
4542e8:	8b 45 0c             	mov    0xc(%ebp),%eax
4542eb:	c7 00 53 00 00 00    	movl   $0x53,(%eax)
4542f1:	e9 bc 03 00 00       	jmp    0x4546b2
4542f6:	8b 45 28             	mov    0x28(%ebp),%eax
4542f9:	81 48 64 00 08 00 00 	orl    $0x800,0x64(%eax)
454300:	e9 64 3c fc ff       	jmp    0x417f69
454305:	8b 5d a0             	mov    -0x60(%ebp),%ebx
454308:	85 db                	test   %ebx,%ebx