458ed6:	85 ff                	test   %edi,%edi
458ed8:	74 6d                	je     0x458f47
458eda:	8b 45 08             	mov    0x8(%ebp),%eax
458edd:	83 78 08 03          	cmpl   $0x3,0x8(%eax)
458ee1:	72 0f                	jb     0x458ef2
458ee3:	8b 40 04             	mov    0x4(%eax),%eax
458ee6:	8b 48 08             	mov    0x8(%eax),%ecx
458ee9:	e8 98 43 fb ff       	call   0x40d286
458eee:	85 c0                	test   %eax,%eax
458ef0:	75 3f                	jne    0x458f31
458ef2:	53                   	push   %ebx
458ef3:	c6 04 3b 00          	movb   $0x0,(%ebx,%edi,1)
458ef7:	e8 d4 88 fc ff       	call   0x4217d0
458efc:	59                   	pop    %ecx
458efd:	3b c7                	cmp    %edi,%eax
458eff:	75 30                	jne    0x458f31
458f01:	53                   	push   %ebx
458f02:	8d 4d dc             	lea    -0x24(%ebp),%ecx
458f05:	e8 f5 43 fe ff       	call   0x43d2ff
458f0a:	8d 45 cc             	lea    -0x34(%ebp),%eax
458f0d:	50                   	push   %eax
458f0e:	8d 4d dc             	lea    -0x24(%ebp),%ecx
458f11:	e8 9d 1a 00 00       	call   0x45a9b3
458f16:	8b 4d 0c             	mov    0xc(%ebp),%ecx
458f19:	50                   	push   %eax
458f1a:	e8 49 dc fa ff       	call   0x406b68
458f1f:	8d 4d cc             	lea    -0x34(%ebp),%ecx
458f22:	e8 10 3c fb ff       	call   0x40cb37
458f27:	8d 4d dc             	lea    -0x24(%ebp),%ecx
458f2a:	e8 08 3c fb ff       	call   0x40cb37
458f2f:	eb 26                	jmp    0x458f57
458f31:	8b 4d 0c             	mov    0xc(%ebp),%ecx
458f34:	57                   	push   %edi
458f35:	53                   	push   %ebx
458f36:	57                   	push   %edi
458f37:	e8 a7 14 ff ff       	call   0x44a3e3
458f3c:	50                   	push   %eax
458f3d:	e8 3e 5f fc ff       	call   0x41ee80
458f42:	83 c4 0c             	add    $0xc,%esp
458f45:	eb 10                	jmp    0x458f57
458f47:	6a 00                	push   $0x0
458f49:	6a ff                	push   $0xffffffff
458f4b:	8b 06                	mov    (%esi),%eax
458f4d:	8b 48 04             	mov    0x4(%eax),%ecx
458f50:	03 ce                	add    %esi,%ecx
458f52:	e8 f5 3f ff ff       	call   0x44cf4c
458f57:	8d 4d f8             	lea    -0x8(%ebp),%ecx
458f5a:	e8 83 b8 fa ff       	call   0x4047e2
458f5f:	5f                   	pop    %edi
458f60:	5e                   	pop    %esi
458f61:	33 c0                	xor    %eax,%eax
458f63:	5b                   	pop    %ebx
458f64:	c9                   	leave
458f65:	c2 08 00             	ret    $0x8
458f68:	6a 00                	push   $0x0
458f6a:	ff 15 f4 d7 48 00    	call   *0x48d7f4
458f70:	50                   	push   %eax
458f71:	eb d8                	jmp    0x458f4b
458f73:	55                   	push   %ebp
458f74:	8b ec                	mov    %esp,%ebp
458f76:	53                   	push   %ebx
458f77:	56                   	push   %esi
458f78:	8b 75 08             	mov    0x8(%ebp),%esi
458f7b:	8b d9                	mov    %ecx,%ebx
458f7d:	8b 46 04             	mov    0x4(%esi),%eax
458f80:	57                   	push   %edi
458f81:	8b 08                	mov    (%eax),%ecx
458f83:	e8 fe 42 fb ff       	call   0x40d286
458f88:	8b 56 04             	mov    0x4(%esi),%edx
458f8b:	8b f8                	mov    %eax,%edi
458f8d:	8b 4a 04             	mov    0x4(%edx),%ecx
458f90:	e8 c6 25 ff ff       	call   0x44b55b
458f95:	8b 4e 04             	mov    0x4(%esi),%ecx
458f98:	8b d0                	mov    %eax,%edx
458f9a:	8b 49 04             	mov    0x4(%ecx),%ecx
458f9d:	e8 fc 25 ff ff       	call   0x44b59e
458fa2:	6a 00                	push   $0x0
458fa4:	50                   	push   %eax
458fa5:	52                   	push   %edx
458fa6:	57                   	push   %edi
458fa7:	ff 15 b8 d7 48 00    	call   *0x48d7b8
458fad:	8b 75 0c             	mov    0xc(%ebp),%esi
458fb0:	8b ce                	mov    %esi,%ecx
458fb2:	8b f8                	mov    %eax,%edi
458fb4:	e8 67 9c fb ff       	call   0x412c20
458fb9:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
458fc0:	83 ff ff             	cmp    $0xffffffff,%edi
458fc3:	75 1a                	jne    0x458fdf
458fc5:	83 26 00             	andl   $0x0,(%esi)
458fc8:	6a 00                	push   $0x0
458fca:	ff 15 f4 d7 48 00    	call   *0x48d7f4
458fd0:	50                   	push   %eax
458fd1:	8b 03                	mov    (%ebx),%eax
458fd3:	8b 48 04             	mov    0x4(%eax),%ecx
458fd6:	03 cb                	add    %ebx,%ecx
458fd8:	e8 6f 3f ff ff       	call   0x44cf4c
458fdd:	eb 02                	jmp    0x458fe1
458fdf:	89 3e                	mov    %edi,(%esi)
458fe1:	5f                   	pop    %edi
458fe2:	5e                   	pop    %esi
458fe3:	33 c0                	xor    %eax,%eax
458fe5:	5b                   	pop    %ebx
458fe6:	5d                   	pop    %ebp
458fe7:	c2 08 00             	ret    $0x8
458fea:	55                   	push   %ebp
458feb:	8b ec                	mov    %esp,%ebp
458fed:	51                   	push   %ecx
458fee:	56                   	push   %esi
458fef:	57                   	push   %edi
458ff0:	8b f1                	mov    %ecx,%esi
458ff2:	ff 15 e8 d7 48 00    	call   *0x48d7e8
458ff8:	8b 16                	mov    (%esi),%edx
458ffa:	8b f8                	mov    %eax,%edi
458ffc:	8b 4a 04             	mov    0x4(%edx),%ecx
458fff:	6a 00                	push   $0x0
459001:	57                   	push   %edi
459002:	03 ce                	add    %esi,%ecx
459004:	e8 43 3f ff ff       	call   0x44cf4c
459009:	8b 4d 0c             	mov    0xc(%ebp),%ecx
45900c:	85 ff                	test   %edi,%edi
45900e:	0f 94 45 fc          	sete   -0x4(%ebp)
459012:	ff 75 fc             	push   -0x4(%ebp)
459015:	e8 00 4c fc ff       	call   0x41dc1a
45901a:	5f                   	pop    %edi
45901b:	33 c0                	xor    %eax,%eax
45901d:	5e                   	pop    %esi
45901e:	c9                   	leave
45901f:	c2 08 00             	ret    $0x8
459022:	55                   	push   %ebp
459023:	8b ec                	mov    %esp,%ebp
459025:	83 e4 f8             	and    $0xfffffff8,%esp
459028:	81 ec 98 01 00 00    	sub    $0x198,%esp
45902e:	56                   	push   %esi
45902f:	57                   	push   %edi
459030:	8d 44 24 10          	lea    0x10(%esp),%eax
459034:	50                   	push   %eax
459035:	68 02 02 00 00       	push   $0x202
45903a:	8b f9                	mov    %ecx,%edi
45903c:	ff 15 cc d7 48 00    	call   *0x48d7cc
459042:	8b 17                	mov    (%edi),%edx
459044:	8b f0                	mov    %eax,%esi
459046:	8b 4a 04             	mov    0x4(%edx),%ecx
459049:	6a 00                	push   $0x0
45904b:	56                   	push   %esi
45904c:	03 cf                	add    %edi,%ecx
45904e:	e8 f9 3e ff ff       	call   0x44cf4c
459053:	8b 4d 0c             	mov    0xc(%ebp),%ecx
459056:	85 f6                	test   %esi,%esi
459058:	0f 94 44 24 0c       	sete   0xc(%esp)
45905d:	ff 74 24 0c          	push   0xc(%esp)
459061:	e8 b4 4b fc ff       	call   0x41dc1a
459066:	5f                   	pop    %edi
459067:	33 c0                	xor    %eax,%eax
459069:	5e                   	pop    %esi
45906a:	8b e5                	mov    %ebp,%esp
45906c:	5d                   	pop    %ebp
45906d:	c2 08 00             	ret    $0x8
459070:	55                   	push   %ebp
459071:	8b ec                	mov    %esp,%ebp
459073:	83 e4 f8             	and    $0xfffffff8,%esp
459076:	81 ec bc 03 00 00    	sub    $0x3bc,%esp
45907c:	a1 e8 10 4c 00       	mov    0x4c10e8,%eax
459081:	53                   	push   %ebx
459082:	8b 5d 08             	mov    0x8(%ebp),%ebx
459085:	89 44 24 0c          	mov    %eax,0xc(%esp)
459089:	8b 43 04             	mov    0x4(%ebx),%eax
45908c:	56                   	push   %esi
45908d:	c7 44 24 0c a8 03 00 	movl   $0x3a8,0xc(%esp)
459094:	00
459095:	c7 44 24 18 10 00 00 	movl   $0x10,0x18(%esp)
45909c:	00
45909d:	c7 44 24 14 01 00 00 	movl   $0x1,0x14(%esp)
4590a4:	00
4590a5:	8b 30                	mov    (%eax),%esi
4590a7:	57                   	push   %edi
4590a8:	8b 7b 08             	mov    0x8(%ebx),%edi
4590ab:	8b ce                	mov    %esi,%ecx
4590ad:	e8 ba 02 fb ff       	call   0x40936c
4590b2:	8b 46 08             	mov    0x8(%esi),%eax
4590b5:	6a 3f                	push   $0x3f
4590b7:	ff 30                	push   (%eax)
4590b9:	8d 84 24 3c 03 00 00 	lea    0x33c(%esp),%eax
4590c0:	50                   	push   %eax
4590c1:	e8 e6 92 fc ff       	call   0x4223ac
4590c6:	33 c0                	xor    %eax,%eax
4590c8:	66 89 84 24 be 03 00 	mov    %ax,0x3be(%esp)
4590cf:	00
4590d0:	8b 43 04             	mov    0x4(%ebx),%eax
4590d3:	83 c4 0c             	add    $0xc,%esp
4590d6:	8b 70 04             	mov    0x4(%eax),%esi
4590d9:	8b ce                	mov    %esi,%ecx
4590db:	e8 8c 02 fb ff       	call   0x40936c
4590e0:	8b 46 08             	mov    0x8(%esi),%eax
4590e3:	68 ff 00 00 00       	push   $0xff
4590e8:	ff 30                	push   (%eax)
4590ea:	8d 84 24 38 01 00 00 	lea    0x138(%esp),%eax
4590f1:	50                   	push   %eax
4590f2:	e8 b5 92 fc ff       	call   0x4223ac
4590f7:	33 c0                	xor    %eax,%eax
4590f9:	66 89 84 24 3a 03 00 	mov    %ax,0x33a(%esp)
459100:	00
459101:	8b 43 04             	mov    0x4(%ebx),%eax
459104:	83 c4 0c             	add    $0xc,%esp
459107:	8b 48 08             	mov    0x8(%eax),%ecx
45910a:	e8 77 41 fb ff       	call   0x40d286
45910f:	69 c0 e8 03 00 00    	imul   $0x3e8,%eax,%eax
459115:	89 84 24 30 03 00 00 	mov    %eax,0x330(%esp)
45911c:	83 ff 03             	cmp    $0x3,%edi
45911f:	76 14                	jbe    0x459135
459121:	8b 43 04             	mov    0x4(%ebx),%eax
459124:	8b 48 0c             	mov    0xc(%eax),%ecx
459127:	e8 5a 41 fb ff       	call   0x40d286
45912c:	89 84 24 b4 03 00 00 	mov    %eax,0x3b4(%esp)
459133:	eb 08                	jmp    0x45913d
459135:	83 a4 24 b4 03 00 00 	andl   $0x0,0x3b4(%esp)
45913c:	00
45913d:	8d 44 24 10          	lea    0x10(%esp),%eax
459141:	50                   	push   %eax
459142:	6a 01                	push   $0x1
459144:	ff 15 a4 d4 48 00    	call   *0x48d4a4
45914a:	5f                   	pop    %edi
45914b:	5e                   	pop    %esi
45914c:	33 c0                	xor    %eax,%eax
45914e:	5b                   	pop    %ebx
45914f:	8b e5                	mov    %ebp,%esp
459151:	5d                   	pop    %ebp
459152:	c2 08 00             	ret    $0x8
459155:	55                   	push   %ebp
459156:	8b ec                	mov    %esp,%ebp
459158:	51                   	push   %ecx
459159:	51                   	push   %ecx
45915a:	8b 45 08             	mov    0x8(%ebp),%eax
45915d:	53                   	push   %ebx
45915e:	8b 40 04             	mov    0x4(%eax),%eax
459161:	56                   	push   %esi
459162:	8b 30                	mov    (%eax),%esi
459164:	57                   	push   %edi
459165:	8b f9                	mov    %ecx,%edi
459167:	6a 05                	push   $0x5
459169:	8b ce                	mov    %esi,%ecx
45916b:	89 7d f8             	mov    %edi,-0x8(%ebp)
45916e:	89 45 fc             	mov    %eax,-0x4(%ebp)
459171:	e8 6e 44 fb ff       	call   0x40d5e4
459176:	84 c0                	test   %al,%al
459178:	75 51                	jne    0x4591cb
45917a:	6a 0f                	push   $0xf
45917c:	8b ce                	mov    %esi,%ecx
45917e:	e8 61 44 fb ff       	call   0x40d5e4
459183:	84 c0                	test   %al,%al
459185:	74 25                	je     0x4591ac
459187:	83 7e 0c 0f          	cmpl   $0xf,0xc(%esi)
45918b:	75 04                	jne    0x459191
45918d:	8b 06                	mov    (%esi),%eax
45918f:	eb 02                	jmp    0x459193
459191:	33 c0                	xor    %eax,%eax
459193:	8b 40 04             	mov    0x4(%eax),%eax
459196:	8b 75 0c             	mov    0xc(%ebp),%esi
459199:	8b 78 08             	mov    0x8(%eax),%edi
45919c:	8b ce                	mov    %esi,%ecx
45919e:	e8 7d 9a fb ff       	call   0x412c20
4591a3:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
4591aa:	eb 41                	jmp    0x4591ed
4591ac:	8b 75 0c             	mov    0xc(%ebp),%esi
4591af:	8b ce                	mov    %esi,%ecx
4591b1:	e8 6a 9a fb ff       	call   0x412c20
4591b6:	83 26 00             	andl   $0x0,(%esi)
4591b9:	33 db                	xor    %ebx,%ebx
4591bb:	43                   	inc    %ebx
4591bc:	89 5e 0c             	mov    %ebx,0xc(%esi)
4591bf:	8b 07                	mov    (%edi),%eax
4591c1:	6a 00                	push   $0x0
4591c3:	8b 48 04             	mov    0x4(%eax),%ecx
4591c6:	53                   	push   %ebx
4591c7:	03 cf                	add    %edi,%ecx
4591c9:	eb 62                	jmp    0x45922d
4591cb:	8b 45 08             	mov    0x8(%ebp),%eax
4591ce:	33 db                	xor    %ebx,%ebx
4591d0:	43                   	inc    %ebx
4591d1:	39 58 08             	cmp    %ebx,0x8(%eax)
4591d4:	75 1b                	jne    0x4591f1
4591d6:	53                   	push   %ebx
4591d7:	8b ce                	mov    %esi,%ecx
4591d9:	e8 41 2e fc ff       	call   0x41c01f
4591de:	8b 75 0c             	mov    0xc(%ebp),%esi
4591e1:	8b ce                	mov    %esi,%ecx
4591e3:	8b f8                	mov    %eax,%edi
4591e5:	e8 36 9a fb ff       	call   0x412c20
4591ea:	89 5e 0c             	mov    %ebx,0xc(%esi)
4591ed:	89 3e                	mov    %edi,(%esi)
4591ef:	eb 41                	jmp    0x459232
4591f1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4591f4:	8b 49 04             	mov    0x4(%ecx),%ecx
4591f7:	e8 8a 40 fb ff       	call   0x40d286
4591fc:	50                   	push   %eax
4591fd:	8b ce                	mov    %esi,%ecx
4591ff:	e8 1b 2e fc ff       	call   0x41c01f
459204:	8b 7d 0c             	mov    0xc(%ebp),%edi
459207:	8b cf                	mov    %edi,%ecx
459209:	8b f0                	mov    %eax,%esi
45920b:	e8 10 9a fb ff       	call   0x412c20
459210:	8b cf                	mov    %edi,%ecx
459212:	89 5f 0c             	mov    %ebx,0xc(%edi)
459215:	89 37                	mov    %esi,(%edi)
459217:	e8 6a 40 fb ff       	call   0x40d286
45921c:	85 c0                	test   %eax,%eax
45921e:	75 12                	jne    0x459232
459220:	8b 55 f8             	mov    -0x8(%ebp),%edx
459223:	50                   	push   %eax
459224:	8b 02                	mov    (%edx),%eax
459226:	6a 02                	push   $0x2
459228:	8b 48 04             	mov    0x4(%eax),%ecx
45922b:	03 ca                	add    %edx,%ecx
45922d:	e8 1a 3d ff ff       	call   0x44cf4c
459232:	5f                   	pop    %edi
459233:	5e                   	pop    %esi
459234:	33 c0                	xor    %eax,%eax
459236:	5b                   	pop    %ebx
459237:	c9                   	leave
459238:	c2 08 00             	ret    $0x8
45923b:	55                   	push   %ebp
45923c:	8b ec                	mov    %esp,%ebp
45923e:	83 ec 14             	sub    $0x14,%esp
459241:	8b 45 08             	mov    0x8(%ebp),%eax
459244:	56                   	push   %esi
459245:	8b 40 04             	mov    0x4(%eax),%eax
459248:	89 4d fc             	mov    %ecx,-0x4(%ebp)
45924b:	8b 30                	mov    (%eax),%esi
45924d:	57                   	push   %edi
45924e:	8b 78 04             	mov    0x4(%eax),%edi
459251:	8b ce                	mov    %esi,%ecx
459253:	e8 14 01 fb ff       	call   0x40936c
459258:	8b 76 08             	mov    0x8(%esi),%esi
45925b:	8b cf                	mov    %edi,%ecx
45925d:	e8 24 40 fb ff       	call   0x40d286
459262:	50                   	push   %eax
459263:	56                   	push   %esi
459264:	8b 75 fc             	mov    -0x4(%ebp),%esi
459267:	8d 45 ec             	lea    -0x14(%ebp),%eax
45926a:	50                   	push   %eax
45926b:	8b ce                	mov    %esi,%ecx
45926d:	e8 ba 15 00 00       	call   0x45a82c
459272:	84 c0                	test   %al,%al
459274:	75 19                	jne    0x45928f
459276:	8b 75 0c             	mov    0xc(%ebp),%esi
459279:	8b ce                	mov    %esi,%ecx
45927b:	e8 a0 99 fb ff       	call   0x412c20
459280:	83 0e ff             	orl    $0xffffffff,(%esi)
459283:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
45928a:	e9 2c 01 00 00       	jmp    0x4593bb
45928f:	53                   	push   %ebx