46edf5:	57                   	push   %edi
46edf6:	33 ff                	xor    %edi,%edi
46edf8:	89 45 cc             	mov    %eax,-0x34(%ebp)
46edfb:	89 7d f0             	mov    %edi,-0x10(%ebp)
46edfe:	89 7d f4             	mov    %edi,-0xc(%ebp)
46ee01:	e8 8a 51 00 00       	call   0x473f90
46ee06:	8b 75 0c             	mov    0xc(%ebp),%esi
46ee09:	8b c8                	mov    %eax,%ecx
46ee0b:	33 c0                	xor    %eax,%eax
46ee0d:	89 4d ec             	mov    %ecx,-0x14(%ebp)
46ee10:	40                   	inc    %eax
46ee11:	8b 1e                	mov    (%esi),%ebx
46ee13:	8d 56 04             	lea    0x4(%esi),%edx
46ee16:	89 55 e8             	mov    %edx,-0x18(%ebp)
46ee19:	85 db                	test   %ebx,%ebx
46ee1b:	74 0d                	je     0x46ee2a
46ee1d:	f7 02 00 02 00 00    	testl  $0x200,(%edx)
46ee23:	74 05                	je     0x46ee2a
46ee25:	89 45 a0             	mov    %eax,-0x60(%ebp)
46ee28:	eb 06                	jmp    0x46ee30
46ee2a:	89 7d a0             	mov    %edi,-0x60(%ebp)
46ee2d:	89 55 e8             	mov    %edx,-0x18(%ebp)
46ee30:	81 f9 ff ff 00 00    	cmp    $0xffff,%ecx
46ee36:	75 12                	jne    0x46ee4a
46ee38:	8b 4d 08             	mov    0x8(%ebp),%ecx
46ee3b:	6a 02                	push   $0x2
46ee3d:	e8 14 fa ff ff       	call   0x46e856
46ee42:	8b 45 08             	mov    0x8(%ebp),%eax
46ee45:	e9 88 0c 00 00       	jmp    0x46fad2
46ee4a:	81 f9 fe ff 00 00    	cmp    $0xfffe,%ecx
46ee50:	75 0f                	jne    0x46ee61
46ee52:	56                   	push   %esi
46ee53:	50                   	push   %eax
46ee54:	ff 75 08             	push   0x8(%ebp)
46ee57:	e8 dd fc ff ff       	call   0x46eb39
46ee5c:	83 c4 0c             	add    $0xc,%esp
46ee5f:	eb e1                	jmp    0x46ee42
46ee61:	81 f9 fd ff 00 00    	cmp    $0xfffd,%ecx
46ee67:	75 0c                	jne    0x46ee75
46ee69:	8b 45 08             	mov    0x8(%ebp),%eax
46ee6c:	89 18                	mov    %ebx,(%eax)
46ee6e:	8b 0a                	mov    (%edx),%ecx
46ee70:	e9 5a 0c 00 00       	jmp    0x46facf
46ee75:	8b f1                	mov    %ecx,%esi
46ee77:	81 e6 00 80 00 00    	and    $0x8000,%esi
46ee7d:	89 75 d0             	mov    %esi,-0x30(%ebp)
46ee80:	0f 84 7b 06 00 00    	je     0x46f501
46ee86:	8b c1                	mov    %ecx,%eax
46ee88:	8b d9                	mov    %ecx,%ebx
46ee8a:	25 00 60 00 00       	and    $0x6000,%eax
46ee8f:	8b d1                	mov    %ecx,%edx
46ee91:	89 45 e4             	mov    %eax,-0x1c(%ebp)
46ee94:	81 e3 00 18 00 00    	and    $0x1800,%ebx
46ee9a:	8b c1                	mov    %ecx,%eax
46ee9c:	81 e2 00 04 00 00    	and    $0x400,%edx
46eea2:	25 00 10 00 00       	and    $0x1000,%eax
46eea7:	89 55 88             	mov    %edx,-0x78(%ebp)
46eeaa:	89 45 b8             	mov    %eax,-0x48(%ebp)
46eead:	81 fb 00 08 00 00    	cmp    $0x800,%ebx
46eeb3:	75 02                	jne    0x46eeb7
46eeb5:	8b c2                	mov    %edx,%eax
46eeb7:	85 c0                	test   %eax,%eax
46eeb9:	8b c1                	mov    %ecx,%eax
46eebb:	74 12                	je     0x46eecf
46eebd:	25 00 1b 00 00       	and    $0x1b00,%eax
46eec2:	3d 00 10 00 00       	cmp    $0x1000,%eax
46eec7:	0f 84 34 06 00 00    	je     0x46f501
46eecd:	8b c1                	mov    %ecx,%eax
46eecf:	25 00 1b 00 00       	and    $0x1b00,%eax
46eed4:	81 fb 00 08 00 00    	cmp    $0x800,%ebx
46eeda:	75 05                	jne    0x46eee1
46eedc:	89 55 c0             	mov    %edx,-0x40(%ebp)
46eedf:	eb 09                	jmp    0x46eeea
46eee1:	8b 75 b8             	mov    -0x48(%ebp),%esi
46eee4:	89 75 c0             	mov    %esi,-0x40(%ebp)
46eee7:	8b 75 d0             	mov    -0x30(%ebp),%esi
46eeea:	39 7d c0             	cmp    %edi,-0x40(%ebp)
46eeed:	74 16                	je     0x46ef05
46eeef:	3d 00 11 00 00       	cmp    $0x1100,%eax
46eef4:	0f 84 07 06 00 00    	je     0x46f501
46eefa:	3d 00 12 00 00       	cmp    $0x1200,%eax
46eeff:	0f 84 fc 05 00 00    	je     0x46f501
46ef05:	f7 c1 00 40 00 00    	test   $0x4000,%ecx
46ef0b:	74 52                	je     0x46ef5f
46ef0d:	8b 0d 94 83 4c 00    	mov    0x4c8394,%ecx
46ef13:	8d 45 f8             	lea    -0x8(%ebp),%eax
46ef16:	c1 e9 02             	shr    $0x2,%ecx
46ef19:	0b 0d 94 83 4c 00    	or     0x4c8394,%ecx
46ef1f:	d1 e9                	shr    $1,%ecx
46ef21:	f7 d1                	not    %ecx
46ef23:	50                   	push   %eax
46ef24:	f6 c1 01             	test   $0x1,%cl
46ef27:	74 21                	je     0x46ef4a
46ef29:	e8 57 11 00 00       	call   0x470085
46ef2e:	50                   	push   %eax
46ef2f:	8d 45 c4             	lea    -0x3c(%ebp),%eax
46ef32:	6a 20                	push   $0x20
46ef34:	50                   	push   %eax
46ef35:	e8 d4 fb ff ff       	call   0x46eb0e
46ef3a:	83 c4 10             	add    $0x10,%esp
46ef3d:	8b 08                	mov    (%eax),%ecx
46ef3f:	8b 40 04             	mov    0x4(%eax),%eax
46ef42:	89 4d f0             	mov    %ecx,-0x10(%ebp)
46ef45:	89 45 f4             	mov    %eax,-0xc(%ebp)
46ef48:	eb 0f                	jmp    0x46ef59
46ef4a:	e8 36 11 00 00       	call   0x470085
46ef4f:	59                   	pop    %ecx
46ef50:	50                   	push   %eax
46ef51:	8d 4d f0             	lea    -0x10(%ebp),%ecx
46ef54:	e8 0e fe ff ff       	call   0x46ed67
46ef59:	8b 55 88             	mov    -0x78(%ebp),%edx
46ef5c:	8b 4d ec             	mov    -0x14(%ebp),%ecx
46ef5f:	8b 75 b8             	mov    -0x48(%ebp),%esi
46ef62:	8b c2                	mov    %edx,%eax
46ef64:	81 fb 00 08 00 00    	cmp    $0x800,%ebx
46ef6a:	74 02                	je     0x46ef6e
46ef6c:	8b c6                	mov    %esi,%eax
46ef6e:	85 c0                	test   %eax,%eax
46ef70:	0f 84 1c 01 00 00    	je     0x46f092
46ef76:	81 fb 00 18 00 00    	cmp    $0x1800,%ebx
46ef7c:	0f 85 10 01 00 00    	jne    0x46f092
46ef82:	8b 4d 0c             	mov    0xc(%ebp),%ecx
46ef85:	8d 45 c4             	lea    -0x3c(%ebp),%eax
46ef88:	6a 7b                	push   $0x7b
46ef8a:	50                   	push   %eax
46ef8b:	e8 0f fc ff ff       	call   0x46eb9f
46ef90:	8b f0                	mov    %eax,%esi
46ef92:	8d 45 f8             	lea    -0x8(%ebp),%eax
46ef95:	57                   	push   %edi
46ef96:	50                   	push   %eax
46ef97:	e8 d2 22 00 00       	call   0x47126e
46ef9c:	59                   	pop    %ecx
46ef9d:	59                   	pop    %ecx
46ef9e:	8d 45 f8             	lea    -0x8(%ebp),%eax
46efa1:	8b ce                	mov    %esi,%ecx
46efa3:	50                   	push   %eax
46efa4:	8d 45 ac             	lea    -0x54(%ebp),%eax
46efa7:	50                   	push   %eax
46efa8:	e8 d0 fb ff ff       	call   0x46eb7d
46efad:	50                   	push   %eax
46efae:	8d 4d f0             	lea    -0x10(%ebp),%ecx
46efb1:	e8 85 fc ff ff       	call   0x46ec3b
46efb6:	8d 45 c4             	lea    -0x3c(%ebp),%eax
46efb9:	50                   	push   %eax
46efba:	e8 cf 54 00 00       	call   0x47448e
46efbf:	be 00 10 00 00       	mov    $0x1000,%esi
46efc4:	59                   	pop    %ecx
46efc5:	85 35 94 83 4c 00    	test   %esi,0x4c8394
46efcb:	75 38                	jne    0x46f005
46efcd:	8d 45 c4             	lea    -0x3c(%ebp),%eax
46efd0:	c7 45 f8 20 13 4a 00 	movl   $0x4a1320,-0x8(%ebp)
46efd7:	50                   	push   %eax
46efd8:	8d 45 ac             	lea    -0x54(%ebp),%eax
46efdb:	c7 45 fc 03 00 00 00 	movl   $0x3,-0x4(%ebp)
46efe2:	6a 2c                	push   $0x2c
46efe4:	50                   	push   %eax
46efe5:	e8 24 fb ff ff       	call   0x46eb0e
46efea:	83 c4 0c             	add    $0xc,%esp
46efed:	8d 4d f8             	lea    -0x8(%ebp),%ecx
46eff0:	51                   	push   %ecx
46eff1:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
46eff4:	51                   	push   %ecx
46eff5:	8b c8                	mov    %eax,%ecx
46eff7:	e8 5f fb ff ff       	call   0x46eb5b
46effc:	50                   	push   %eax
46effd:	8d 4d f0             	lea    -0x10(%ebp),%ecx
46f000:	e8 36 fc ff ff       	call   0x46ec3b
46f005:	8d 45 f8             	lea    -0x8(%ebp),%eax
46f008:	c7 45 f8 24 13 4a 00 	movl   $0x4a1324,-0x8(%ebp)
46f00f:	50                   	push   %eax
46f010:	8d 4d f0             	lea    -0x10(%ebp),%ecx
46f013:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
46f01a:	e8 c4 fb ff ff       	call   0x46ebe3
46f01f:	8d 45 f8             	lea    -0x8(%ebp),%eax
46f022:	50                   	push   %eax
46f023:	e8 7b 16 00 00       	call   0x4706a3
46f028:	59                   	pop    %ecx
46f029:	8b 0d 94 83 4c 00    	mov    0x4c8394,%ecx
46f02f:	8b c1                	mov    %ecx,%eax
46f031:	d1 e8                	shr    $1,%eax
46f033:	f7 d0                	not    %eax
46f035:	a8 01                	test   $0x1,%al
46f037:	0f 84 b3 04 00 00    	je     0x46f4f0
46f03d:	8b c1                	mov    %ecx,%eax
46f03f:	c1 e8 04             	shr    $0x4,%eax
46f042:	f7 d0                	not    %eax
46f044:	a8 01                	test   $0x1,%al
46f046:	0f 84 a4 04 00 00    	je     0x46f4f0
46f04c:	85 ce                	test   %ecx,%esi
46f04e:	0f 85 9c 04 00 00    	jne    0x46f4f0
46f054:	8d 45 f8             	lea    -0x8(%ebp),%eax
46f057:	50                   	push   %eax
46f058:	8d 45 c4             	lea    -0x3c(%ebp),%eax
46f05b:	6a 20                	push   $0x20
46f05d:	50                   	push   %eax
46f05e:	e8 ab fa ff ff       	call   0x46eb0e
46f063:	83 c4 0c             	add    $0xc,%esp
46f066:	8d 4d ac             	lea    -0x54(%ebp),%ecx
46f069:	6a 20                	push   $0x20
46f06b:	51                   	push   %ecx
46f06c:	8b c8                	mov    %eax,%ecx
46f06e:	e8 2c fb ff ff       	call   0x46eb9f
46f073:	8d 4d f0             	lea    -0x10(%ebp),%ecx
46f076:	51                   	push   %ecx
46f077:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
46f07a:	51                   	push   %ecx
46f07b:	8b c8                	mov    %eax,%ecx
46f07d:	e8 fb fa ff ff       	call   0x46eb7d
46f082:	8b 38                	mov    (%eax),%edi
46f084:	8b 70 04             	mov    0x4(%eax),%esi
46f087:	89 7d f0             	mov    %edi,-0x10(%ebp)
46f08a:	89 75 f4             	mov    %esi,-0xc(%ebp)
46f08d:	e9 64 04 00 00       	jmp    0x46f4f6
46f092:	b8 00 08 00 00       	mov    $0x800,%eax
46f097:	89 7d c4             	mov    %edi,-0x3c(%ebp)
46f09a:	89 7d c8             	mov    %edi,-0x38(%ebp)
46f09d:	89 7d f8             	mov    %edi,-0x8(%ebp)
46f0a0:	89 7d fc             	mov    %edi,-0x4(%ebp)
46f0a3:	89 7d a4             	mov    %edi,-0x5c(%ebp)
46f0a6:	89 7d a8             	mov    %edi,-0x58(%ebp)
46f0a9:	89 7d 8c             	mov    %edi,-0x74(%ebp)
46f0ac:	89 7d e0             	mov    %edi,-0x20(%ebp)
46f0af:	89 7d ac             	mov    %edi,-0x54(%ebp)
46f0b2:	89 7d b0             	mov    %edi,-0x50(%ebp)
46f0b5:	3b d8                	cmp    %eax,%ebx
46f0b7:	74 02                	je     0x46f0bb
46f0b9:	8b d6                	mov    %esi,%edx
46f0bb:	8b f1                	mov    %ecx,%esi
46f0bd:	81 e6 00 07 00 00    	and    $0x700,%esi
46f0c3:	89 75 98             	mov    %esi,-0x68(%ebp)
46f0c6:	85 d2                	test   %edx,%edx
46f0c8:	0f 84 89 00 00 00    	je     0x46f157
46f0ce:	3b d8                	cmp    %eax,%ebx
46f0d0:	75 67                	jne    0x46f139
46f0d2:	81 fe 00 06 00 00    	cmp    $0x600,%esi
46f0d8:	75 3e                	jne    0x46f118
46f0da:	8d 45 dc             	lea    -0x24(%ebp),%eax
46f0dd:	6a 01                	push   $0x1
46f0df:	50                   	push   %eax
46f0e0:	e8 89 21 00 00       	call   0x47126e
46f0e5:	8b 45 dc             	mov    -0x24(%ebp),%eax
46f0e8:	89 45 c4             	mov    %eax,-0x3c(%ebp)
46f0eb:	8b 45 e0             	mov    -0x20(%ebp),%eax
46f0ee:	89 45 c8             	mov    %eax,-0x38(%ebp)
46f0f1:	8d 45 dc             	lea    -0x24(%ebp),%eax
46f0f4:	6a 01                	push   $0x1
46f0f6:	50                   	push   %eax
46f0f7:	e8 72 21 00 00       	call   0x47126e
46f0fc:	8b 45 dc             	mov    -0x24(%ebp),%eax
46f0ff:	89 45 f8             	mov    %eax,-0x8(%ebp)
46f102:	8b 45 e0             	mov    -0x20(%ebp),%eax
46f105:	89 45 fc             	mov    %eax,-0x4(%ebp)
46f108:	8d 45 dc             	lea    -0x24(%ebp),%eax
46f10b:	6a 01                	push   $0x1
46f10d:	50                   	push   %eax
46f10e:	e8 5b 21 00 00       	call   0x47126e
46f113:	83 c4 18             	add    $0x18,%esp
46f116:	eb 15                	jmp    0x46f12d
46f118:	81 fe 00 05 00 00    	cmp    $0x500,%esi
46f11e:	75 19                	jne    0x46f139
46f120:	8d 45 dc             	lea    -0x24(%ebp),%eax
46f123:	6a 01                	push   $0x1
46f125:	50                   	push   %eax
46f126:	e8 43 21 00 00       	call   0x47126e
46f12b:	59                   	pop    %ecx
46f12c:	59                   	pop    %ecx
46f12d:	8b 45 dc             	mov    -0x24(%ebp),%eax
46f130:	89 45 a4             	mov    %eax,-0x5c(%ebp)
46f133:	8b 45 e0             	mov    -0x20(%ebp),%eax
46f136:	89 45 a8             	mov    %eax,-0x58(%ebp)
46f139:	8d 45 dc             	lea    -0x24(%ebp),%eax
46f13c:	6a 01                	push   $0x1
46f13e:	50                   	push   %eax
46f13f:	e8 2a 21 00 00       	call   0x47126e
46f144:	8b 45 dc             	mov    -0x24(%ebp),%eax
46f147:	89 45 8c             	mov    %eax,-0x74(%ebp)
46f14a:	8b 45 e0             	mov    -0x20(%ebp),%eax
46f14d:	59                   	pop    %ecx
46f14e:	89 45 e0             	mov    %eax,-0x20(%ebp)
46f151:	b8 00 08 00 00       	mov    $0x800,%eax
46f156:	59                   	pop    %ecx
46f157:	3b d8                	cmp    %eax,%ebx
46f159:	75 3a                	jne    0x46f195
46f15b:	81 fe 00 02 00 00    	cmp    $0x200,%esi
46f161:	74 32                	je     0x46f195
46f163:	a1 94 83 4c 00       	mov    0x4c8394,%eax
46f168:	83 e0 60             	and    $0x60,%eax
46f16b:	3c 60                	cmp    $0x60,%al
46f16d:	8d 45 bc             	lea    -0x44(%ebp),%eax
46f170:	50                   	push   %eax
46f171:	74 13                	je     0x46f186
46f173:	e8 c6 4d 00 00       	call   0x473f3e
46f178:	59                   	pop    %ecx
46f179:	8b 08                	mov    (%eax),%ecx
46f17b:	8b 40 04             	mov    0x4(%eax),%eax
46f17e:	89 4d ac             	mov    %ecx,-0x54(%ebp)
46f181:	89 45 b0             	mov    %eax,-0x50(%ebp)
46f184:	eb 0f                	jmp    0x46f195
46f186:	e8 b3 4d 00 00       	call   0x473f3e
46f18b:	59                   	pop    %ecx
46f18c:	50                   	push   %eax
46f18d:	8d 4d ac             	lea    -0x54(%ebp),%ecx
46f190:	e8 d2 fb ff ff       	call   0x46ed67
46f195:	8b 0d 94 83 4c 00    	mov    0x4c8394,%ecx
46f19b:	8b c1                	mov    %ecx,%eax
46f19d:	d1 e8                	shr    $1,%eax
46f19f:	f7 d0                	not    %eax
46f1a1:	a8 01                	test   $0x1,%al
46f1a3:	74 30                	je     0x46f1d5
46f1a5:	c1 e9 04             	shr    $0x4,%ecx
46f1a8:	f7 d1                	not    %ecx
46f1aa:	f6 c1 01             	test   $0x1,%cl
46f1ad:	74 26                	je     0x46f1d5
46f1af:	8d 45 bc             	lea    -0x44(%ebp),%eax
46f1b2:	50                   	push   %eax
46f1b3:	e8 eb 14 00 00       	call   0x4706a3
46f1b8:	59                   	pop    %ecx
46f1b9:	8d 4d f0             	lea    -0x10(%ebp),%ecx
46f1bc:	51                   	push   %ecx
46f1bd:	8d 4d 90             	lea    -0x70(%ebp),%ecx
46f1c0:	51                   	push   %ecx
46f1c1:	8b c8                	mov    %eax,%ecx
46f1c3:	e8 b5 f9 ff ff       	call   0x46eb7d
46f1c8:	8b 08                	mov    (%eax),%ecx
46f1ca:	8b 40 04             	mov    0x4(%eax),%eax
46f1cd:	89 4d f0             	mov    %ecx,-0x10(%ebp)
46f1d0:	89 45 f4             	mov    %eax,-0xc(%ebp)
46f1d3:	eb 13                	jmp    0x46f1e8
46f1d5:	8d 45 90             	lea    -0x70(%ebp),%eax
46f1d8:	50                   	push   %eax
46f1d9:	e8 c5 14 00 00       	call   0x4706a3
46f1de:	59                   	pop    %ecx
46f1df:	50                   	push   %eax
46f1e0:	8d 4d f0             	lea    -0x10(%ebp),%ecx
46f1e3:	e8 7f fb ff ff       	call   0x46ed67
46f1e8:	8b 45 0c             	mov    0xc(%ebp),%eax
46f1eb:	8b 08                	mov    (%eax),%ecx
46f1ed:	85 c9                	test   %ecx,%ecx
46f1ef:	74 36                	je     0x46f227
46f1f1:	39 7d f0             	cmp    %edi,-0x10(%ebp)
46f1f4:	74 26                	je     0x46f21c
46f1f6:	f7 05 94 83 4c 00 00 	testl  $0x1000,0x4c8394
46f1fd:	10 00 00
46f200:	75 1a                	jne    0x46f21c
46f202:	50                   	push   %eax
46f203:	8d 45 90             	lea    -0x70(%ebp),%eax
46f206:	6a 20                	push   $0x20
46f208:	50                   	push   %eax
46f209:	e8 00 f9 ff ff       	call   0x46eb0e
46f20e:	83 c4 0c             	add    $0xc,%esp