457085:	e8 ea fc ff ff       	call   0x456d74
45708a:	59                   	pop    %ecx
45708b:	8b d0                	mov    %eax,%edx
45708d:	8b 45 fc             	mov    -0x4(%ebp),%eax
457090:	e8 af 00 00 00       	call   0x457144
457095:	eb 2b                	jmp    0x4570c2
457097:	8b 55 f8             	mov    -0x8(%ebp),%edx
45709a:	0f bf 52 06          	movswl 0x6(%edx),%edx
45709e:	8b 45 fc             	mov    -0x4(%ebp),%eax
4570a1:	e8 9e 00 00 00       	call   0x457144
4570a6:	eb 1a                	jmp    0x4570c2
4570a8:	33 d2                	xor    %edx,%edx
4570aa:	8b 45 fc             	mov    -0x4(%ebp),%eax
4570ad:	e8 92 00 00 00       	call   0x457144
4570b2:	eb 0e                	jmp    0x4570c2
4570b4:	8b 45 fc             	mov    -0x4(%ebp),%eax
4570b7:	8b 50 14             	mov    0x14(%eax),%edx
4570ba:	8b 45 fc             	mov    -0x4(%ebp),%eax
4570bd:	e8 82 00 00 00       	call   0x457144
4570c2:	5f                   	pop    %edi
4570c3:	5e                   	pop    %esi
4570c4:	5b                   	pop    %ebx
4570c5:	8b e5                	mov    %ebp,%esp
4570c7:	5d                   	pop    %ebp
4570c8:	c3                   	ret
4570c9:	8d 40 00             	lea    0x0(%eax),%eax
4570cc:	53                   	push   %ebx
4570cd:	56                   	push   %esi
4570ce:	8b d8                	mov    %eax,%ebx
4570d0:	3b 53 24             	cmp    0x24(%ebx),%edx
4570d3:	74 36                	je     0x45710b
4570d5:	8b f2                	mov    %edx,%esi
4570d7:	85 f6                	test   %esi,%esi
4570d9:	75 18                	jne    0x4570f3
4570db:	33 c0                	xor    %eax,%eax
4570dd:	8a 43 18             	mov    0x18(%ebx),%al
4570e0:	8b 04 85 ac 3d 46 00 	mov    0x463dac(,%eax,4),%eax
4570e7:	50                   	push   %eax
4570e8:	a1 44 db 46 00       	mov    0x46db44,%eax
4570ed:	8b 00                	mov    (%eax),%eax
4570ef:	ff d0                	call   *%eax
4570f1:	8b d0                	mov    %eax,%edx
4570f3:	89 53 24             	mov    %edx,0x24(%ebx)
4570f6:	c6 43 44 01          	movb   $0x1,0x44(%ebx)
4570fa:	8b 43 04             	mov    0x4(%ebx),%eax
4570fd:	e8 ba 06 00 00       	call   0x4577bc
457102:	85 f6                	test   %esi,%esi
457104:	75 05                	jne    0x45710b
457106:	33 c0                	xor    %eax,%eax
457108:	89 43 24             	mov    %eax,0x24(%ebx)
45710b:	5e                   	pop    %esi
45710c:	5b                   	pop    %ebx
45710d:	c3                   	ret
45710e:	8b c0                	mov    %eax,%eax
457110:	3b 50 28             	cmp    0x28(%eax),%edx
457113:	74 13                	je     0x457128
457115:	89 50 28             	mov    %edx,0x28(%eax)
457118:	c6 40 2c 00          	movb   $0x0,0x2c(%eax)
45711c:	c6 40 44 01          	movb   $0x1,0x44(%eax)
457120:	8b 40 04             	mov    0x4(%eax),%eax
457123:	e8 94 06 00 00       	call   0x4577bc
457128:	c3                   	ret
457129:	8d 40 00             	lea    0x0(%eax),%eax
45712c:	3a 50 2c             	cmp    0x2c(%eax),%dl
45712f:	74 11                	je     0x457142
457131:	88 50 2c             	mov    %dl,0x2c(%eax)
457134:	84 d2                	test   %dl,%dl
457136:	74 0a                	je     0x457142
457138:	ba 14 00 00 ff       	mov    $0xff000014,%edx
45713d:	e8 ce ff ff ff       	call   0x457110
457142:	c3                   	ret
457143:	90                   	nop
457144:	53                   	push   %ebx
457145:	56                   	push   %esi
457146:	57                   	push   %edi
457147:	8b d8                	mov    %eax,%ebx
457149:	8b 43 04             	mov    0x4(%ebx),%eax
45714c:	f6 40 1c 02          	testb  $0x2,0x1c(%eax)
457150:	74 08                	je     0x45715a
457152:	89 53 0c             	mov    %edx,0xc(%ebx)
457155:	e9 a7 00 00 00       	jmp    0x457201
45715a:	8b 43 14             	mov    0x14(%ebx),%eax
45715d:	3b d0                	cmp    %eax,%edx
45715f:	7e 04                	jle    0x457165
457161:	8b d0                	mov    %eax,%edx
457163:	eb 06                	jmp    0x45716b
457165:	85 d2                	test   %edx,%edx
457167:	7d 02                	jge    0x45716b
457169:	33 d2                	xor    %edx,%edx
45716b:	80 7b 18 00          	cmpb   $0x0,0x18(%ebx)
45716f:	75 04                	jne    0x457175
457171:	33 f6                	xor    %esi,%esi
457173:	eb 04                	jmp    0x457179
457175:	66 be 01 00          	mov    $0x1,%si
457179:	8b 43 0c             	mov    0xc(%ebx),%eax
45717c:	3b d0                	cmp    %eax,%edx
45717e:	74 4d                	je     0x4571cd
457180:	89 53 0c             	mov    %edx,0xc(%ebx)
457183:	80 7b 18 00          	cmpb   $0x0,0x18(%ebx)
457187:	75 10                	jne    0x457199
457189:	2b c2                	sub    %edx,%eax
45718b:	8b d0                	mov    %eax,%edx
45718d:	33 c9                	xor    %ecx,%ecx
45718f:	8b 43 04             	mov    0x4(%ebx),%eax
457192:	e8 11 eb fe ff       	call   0x445ca8
457197:	eb 0e                	jmp    0x4571a7
457199:	8b c8                	mov    %eax,%ecx
45719b:	2b ca                	sub    %edx,%ecx
45719d:	8b 43 04             	mov    0x4(%ebx),%eax
4571a0:	33 d2                	xor    %edx,%edx
4571a2:	e8 01 eb fe ff       	call   0x445ca8
4571a7:	8b 43 04             	mov    0x4(%ebx),%eax
4571aa:	f6 40 1c 10          	testb  $0x10,0x1c(%eax)
4571ae:	74 1d                	je     0x4571cd
4571b0:	e8 ff f6 ff ff       	call   0x4568b4
4571b5:	85 c0                	test   %eax,%eax
4571b7:	74 14                	je     0x4571cd
4571b9:	83 b8 50 02 00 00 00 	cmpl   $0x0,0x250(%eax)
4571c0:	74 0b                	je     0x4571cd
4571c2:	8b 80 50 02 00 00    	mov    0x250(%eax),%eax
4571c8:	8b 10                	mov    (%eax),%edx
4571ca:	ff 52 0c             	call   *0xc(%edx)
4571cd:	0f b7 fe             	movzwl %si,%edi
4571d0:	57                   	push   %edi
4571d1:	8b 43 04             	mov    0x4(%ebx),%eax
4571d4:	e8 17 ef fe ff       	call   0x4460f0
4571d9:	50                   	push   %eax
4571da:	a1 b4 db 46 00       	mov    0x46dbb4,%eax
4571df:	8b 00                	mov    (%eax),%eax
4571e1:	ff d0                	call   *%eax
4571e3:	3b 43 0c             	cmp    0xc(%ebx),%eax
4571e6:	74 19                	je     0x457201
4571e8:	6a ff                	push   $0xffffffff
4571ea:	8b 43 0c             	mov    0xc(%ebx),%eax
4571ed:	50                   	push   %eax
4571ee:	57                   	push   %edi
4571ef:	8b 43 04             	mov    0x4(%ebx),%eax
4571f2:	e8 f9 ee fe ff       	call   0x4460f0
4571f7:	50                   	push   %eax
4571f8:	a1 dc dd 46 00       	mov    0x46dddc,%eax
4571fd:	8b 00                	mov    (%eax),%eax
4571ff:	ff d0                	call   *%eax
457201:	5f                   	pop    %edi
457202:	5e                   	pop    %esi
457203:	5b                   	pop    %ebx
457204:	c3                   	ret
457205:	8d 40 00             	lea    0x0(%eax),%eax
457208:	53                   	push   %ebx
457209:	56                   	push   %esi
45720a:	8b d8                	mov    %eax,%ebx
45720c:	3b 53 30             	cmp    0x30(%ebx),%edx
45720f:	74 36                	je     0x457247
457211:	8b f2                	mov    %edx,%esi
457213:	85 f6                	test   %esi,%esi
457215:	75 18                	jne    0x45722f
457217:	33 c0                	xor    %eax,%eax
457219:	8a 43 18             	mov    0x18(%ebx),%al
45721c:	8b 04 85 b4 3d 46 00 	mov    0x463db4(,%eax,4),%eax
457223:	50                   	push   %eax
457224:	a1 44 db 46 00       	mov    0x46db44,%eax
457229:	8b 00                	mov    (%eax),%eax
45722b:	ff d0                	call   *%eax
45722d:	8b d0                	mov    %eax,%edx
45722f:	89 53 30             	mov    %edx,0x30(%ebx)
457232:	c6 43 44 01          	movb   $0x1,0x44(%ebx)
457236:	8b 43 04             	mov    0x4(%ebx),%eax
457239:	e8 7e 05 00 00       	call   0x4577bc
45723e:	85 f6                	test   %esi,%esi
457240:	75 05                	jne    0x457247
457242:	33 c0                	xor    %eax,%eax
457244:	89 43 30             	mov    %eax,0x30(%ebx)
457247:	5e                   	pop    %esi
457248:	5b                   	pop    %ebx
457249:	c3                   	ret
45724a:	8b c0                	mov    %eax,%eax
45724c:	3a 50 34             	cmp    0x34(%eax),%dl
45724f:	74 0f                	je     0x457260
457251:	88 50 34             	mov    %dl,0x34(%eax)
457254:	c6 40 44 01          	movb   $0x1,0x44(%eax)
457258:	8b 40 04             	mov    0x4(%eax),%eax
45725b:	e8 5c 05 00 00       	call   0x4577bc
457260:	c3                   	ret
457261:	8d 40 00             	lea    0x0(%eax),%eax
457264:	3b 50 38             	cmp    0x38(%eax),%edx
457267:	74 0f                	je     0x457278
457269:	89 50 38             	mov    %edx,0x38(%eax)
45726c:	c6 40 44 01          	movb   $0x1,0x44(%eax)
457270:	8b 40 04             	mov    0x4(%eax),%eax
457273:	e8 44 05 00 00       	call   0x4577bc
457278:	c3                   	ret
457279:	8d 40 00             	lea    0x0(%eax),%eax
45727c:	8b ca                	mov    %edx,%ecx
45727e:	89 48 10             	mov    %ecx,0x10(%eax)
457281:	85 c9                	test   %ecx,%ecx
457283:	7d 05                	jge    0x45728a
457285:	33 d2                	xor    %edx,%edx
457287:	89 50 10             	mov    %edx,0x10(%eax)
45728a:	8b 40 04             	mov    0x4(%eax),%eax
45728d:	e8 2a 05 00 00       	call   0x4577bc
457292:	c3                   	ret
457293:	90                   	nop
457294:	8b 48 04             	mov    0x4(%eax),%ecx
457297:	c6 81 10 02 00 00 00 	movb   $0x0,0x210(%ecx)
45729e:	c6 40 1e 01          	movb   $0x1,0x1e(%eax)
4572a2:	e8 d5 ff ff ff       	call   0x45727c
4572a7:	c3                   	ret
4572a8:	8b 40 04             	mov    0x4(%eax),%eax
4572ab:	8a 80 10 02 00 00    	mov    0x210(%eax),%al
4572b1:	34 01                	xor    $0x1,%al
4572b3:	c3                   	ret
4572b4:	88 50 1c             	mov    %dl,0x1c(%eax)
4572b7:	8b 40 04             	mov    0x4(%eax),%eax
4572ba:	e8 fd 04 00 00       	call   0x4577bc
4572bf:	c3                   	ret
4572c0:	55                   	push   %ebp
4572c1:	8b ec                	mov    %esp,%ebp
4572c3:	53                   	push   %ebx
4572c4:	56                   	push   %esi
4572c5:	8b d8                	mov    %eax,%ebx
4572c7:	8b 75 08             	mov    0x8(%ebp),%esi
4572ca:	83 c6 fc             	add    $0xfffffffc,%esi
4572cd:	80 fb 01             	cmp    $0x1,%bl
4572d0:	f5                   	cmc
4572d1:	1b c0                	sbb    %eax,%eax
4572d3:	50                   	push   %eax
4572d4:	8b 06                	mov    (%esi),%eax
4572d6:	0f b6 40 34          	movzbl 0x34(%eax),%eax
4572da:	8b 04 85 e4 3d 46 00 	mov    0x463de4(,%eax,4),%eax
4572e1:	50                   	push   %eax
4572e2:	8b 06                	mov    (%esi),%eax
4572e4:	0f b6 40 18          	movzbl 0x18(%eax),%eax
4572e8:	8d 04 80             	lea    (%eax,%eax,4),%eax
4572eb:	8b 04 85 bc 3d 46 00 	mov    0x463dbc(,%eax,4),%eax
4572f2:	50                   	push   %eax
4572f3:	8b 06                	mov    (%esi),%eax
4572f5:	8b 40 04             	mov    0x4(%eax),%eax
4572f8:	e8 f3 ed fe ff       	call   0x4460f0
4572fd:	50                   	push   %eax
4572fe:	e8 19 f1 fc ff       	call   0x42641c
457303:	8b 06                	mov    (%esi),%eax
457305:	83 78 24 00          	cmpl   $0x0,0x24(%eax)
457309:	7e 29                	jle    0x457334
45730b:	6a 00                	push   $0x0
45730d:	8b 06                	mov    (%esi),%eax
45730f:	8b 40 24             	mov    0x24(%eax),%eax
457312:	50                   	push   %eax
457313:	8b 06                	mov    (%esi),%eax
457315:	0f b6 40 18          	movzbl 0x18(%eax),%eax
457319:	8d 04 80             	lea    (%eax,%eax,4),%eax
45731c:	8b 04 85 c0 3d 46 00 	mov    0x463dc0(,%eax,4),%eax
457323:	50                   	push   %eax
457324:	8b 06                	mov    (%esi),%eax
457326:	8b 40 04             	mov    0x4(%eax),%eax
457329:	e8 c2 ed fe ff       	call   0x4460f0
45732e:	50                   	push   %eax
45732f:	e8 e8 f0 fc ff       	call   0x42641c
457334:	8b 06                	mov    (%esi),%eax
457336:	83 78 38 00          	cmpl   $0x0,0x38(%eax)
45733a:	7e 29                	jle    0x457365
45733c:	6a 00                	push   $0x0
45733e:	8b 06                	mov    (%esi),%eax
457340:	8b 40 38             	mov    0x38(%eax),%eax
457343:	50                   	push   %eax
457344:	8b 06                	mov    (%esi),%eax
457346:	0f b6 40 18          	movzbl 0x18(%eax),%eax
45734a:	8d 04 80             	lea    (%eax,%eax,4),%eax
45734d:	8b 04 85 c4 3d 46 00 	mov    0x463dc4(,%eax,4),%eax
457354:	50                   	push   %eax
457355:	8b 06                	mov    (%esi),%eax
457357:	8b 40 04             	mov    0x4(%eax),%eax
45735a:	e8 91 ed fe ff       	call   0x4460f0
45735f:	50                   	push   %eax
457360:	e8 b7 f0 fc ff       	call   0x42641c
457365:	8b 06                	mov    (%esi),%eax
457367:	83 78 30 00          	cmpl   $0x0,0x30(%eax)
45736b:	7e 29                	jle    0x457396
45736d:	6a 00                	push   $0x0
45736f:	8b 06                	mov    (%esi),%eax
457371:	8b 40 30             	mov    0x30(%eax),%eax
457374:	50                   	push   %eax
457375:	8b 06                	mov    (%esi),%eax
457377:	0f b6 40 18          	movzbl 0x18(%eax),%eax
45737b:	8d 04 80             	lea    (%eax,%eax,4),%eax
45737e:	8b 04 85 c8 3d 46 00 	mov    0x463dc8(,%eax,4),%eax
457385:	50                   	push   %eax
457386:	8b 06                	mov    (%esi),%eax
457388:	8b 40 04             	mov    0x4(%eax),%eax
45738b:	e8 60 ed fe ff       	call   0x4460f0
457390:	50                   	push   %eax
457391:	e8 86 f0 fc ff       	call   0x42641c
457396:	6a 00                	push   $0x0
457398:	8b 06                	mov    (%esi),%eax
45739a:	8b 40 28             	mov    0x28(%eax),%eax
45739d:	e8 66 5a fc ff       	call   0x41ce08
4573a2:	50                   	push   %eax
4573a3:	8b 06                	mov    (%esi),%eax
4573a5:	0f b6 40 18          	movzbl 0x18(%eax),%eax
4573a9:	8d 04 80             	lea    (%eax,%eax,4),%eax
4573ac:	8b 04 85 cc 3d 46 00 	mov    0x463dcc(,%eax,4),%eax
4573b3:	50                   	push   %eax
4573b4:	8b 06                	mov    (%esi),%eax
4573b6:	8b 40 04             	mov    0x4(%eax),%eax
4573b9:	e8 32 ed fe ff       	call   0x4460f0
4573be:	50                   	push   %eax
4573bf:	e8 58 f0 fc ff       	call   0x42641c
4573c4:	5e                   	pop    %esi
4573c5:	5b                   	pop    %ebx
4573c6:	5d                   	pop    %ebp
4573c7:	c3                   	ret
4573c8:	55                   	push   %ebp
4573c9:	8b ec                	mov    %esp,%ebp
4573cb:	83 c4 dc             	add    $0xffffffdc,%esp
4573ce:	53                   	push   %ebx
4573cf:	56                   	push   %esi
4573d0:	57                   	push   %edi
4573d1:	88 4d fa             	mov    %cl,-0x6(%ebp)
4573d4:	88 55 fb             	mov    %dl,-0x5(%ebp)
4573d7:	89 45 fc             	mov    %eax,-0x4(%ebp)
4573da:	8d 75 fc             	lea    -0x4(%ebp),%esi
4573dd:	8b 06                	mov    (%esi),%eax
4573df:	33 d2                	xor    %edx,%edx
4573e1:	89 50 14             	mov    %edx,0x14(%eax)
4573e4:	33 db                	xor    %ebx,%ebx
4573e6:	8b 06                	mov    (%esi),%eax
4573e8:	80 78 18 01          	cmpb   $0x1,0x18(%eax)
4573ec:	75 04                	jne    0x4573f2
4573ee:	66 bb 01 00          	mov    $0x1,%bx
4573f2:	8b 06                	mov    (%esi),%eax
4573f4:	80 78 1c 00          	cmpb   $0x0,0x1c(%eax)
4573f8:	74 24                	je     0x45741e
4573fa:	8a 4d fa             	mov    -0x6(%ebp),%cl
4573fd:	8a 55 fb             	mov    -0x5(%ebp),%dl
457400:	8b 06                	mov    (%esi),%eax
457402:	e8 d5 f8 ff ff       	call   0x456cdc
457407:	8b 16                	mov    (%esi),%edx
457409:	8b 7a 10             	mov    0x10(%edx),%edi
45740c:	2b f8                	sub    %eax,%edi
45740e:	8b 06                	mov    (%esi),%eax
457410:	89 78 14             	mov    %edi,0x14(%eax)
457413:	85 ff                	test   %edi,%edi
457415:	7d 07                	jge    0x45741e
457417:	8b 06                	mov    (%esi),%eax
457419:	33 d2                	xor    %edx,%edx
45741b:	89 50 14             	mov    %edx,0x14(%eax)
45741e:	c7 45 de 1c 00 00 00 	movl   $0x1c,-0x22(%ebp)
457425:	c7 45 e2 17 00 00 00 	movl   $0x17,-0x1e(%ebp)
45742c:	33 c0                	xor    %eax,%eax
45742e:	89 45 e6             	mov    %eax,-0x1a(%ebp)
457431:	8b 06                	mov    (%esi),%eax
457433:	83 78 14 00          	cmpl   $0x0,0x14(%eax)