582187:	8b c3                	mov    %ebx,%eax
582189:	e8 46 5d e8 ff       	call   0x407ed4
58218e:	89 33                	mov    %esi,(%ebx)
582190:	89 73 04             	mov    %esi,0x4(%ebx)
582193:	c6 43 0c 00          	movb   $0x0,0xc(%ebx)
582197:	c6 43 2d 00          	movb   $0x0,0x2d(%ebx)
58219b:	8b c3                	mov    %ebx,%eax
58219d:	5f                   	pop    %edi
58219e:	5e                   	pop    %esi
58219f:	5b                   	pop    %ebx
5821a0:	c3                   	ret
5821a1:	8d 40 00             	lea    0x0(%eax),%eax
5821a4:	53                   	push   %ebx
5821a5:	56                   	push   %esi
5821a6:	8b f2                	mov    %edx,%esi
5821a8:	8b d8                	mov    %eax,%ebx
5821aa:	80 7b 0c 00          	cmpb   $0x0,0xc(%ebx)
5821ae:	75 12                	jne    0x5821c2
5821b0:	80 7b 2d 00          	cmpb   $0x0,0x2d(%ebx)
5821b4:	75 0c                	jne    0x5821c2
5821b6:	83 7b 08 00          	cmpl   $0x0,0x8(%ebx)
5821ba:	75 06                	jne    0x5821c2
5821bc:	83 c8 ff             	or     $0xffffffff,%eax
5821bf:	5e                   	pop    %esi
5821c0:	5b                   	pop    %ebx
5821c1:	c3                   	ret
5821c2:	8d 56 0c             	lea    0xc(%esi),%edx
5821c5:	8d 43 0c             	lea    0xc(%ebx),%eax
5821c8:	e8 2b 7d e8 ff       	call   0x409ef8
5821cd:	85 c0                	test   %eax,%eax
5821cf:	74 05                	je     0x5821d6
5821d1:	33 c0                	xor    %eax,%eax
5821d3:	5e                   	pop    %esi
5821d4:	5b                   	pop    %ebx
5821d5:	c3                   	ret
5821d6:	8d 56 2c             	lea    0x2c(%esi),%edx
5821d9:	8d 43 2d             	lea    0x2d(%ebx),%eax
5821dc:	e8 17 7d e8 ff       	call   0x409ef8
5821e1:	85 c0                	test   %eax,%eax
5821e3:	74 05                	je     0x5821ea
5821e5:	33 c0                	xor    %eax,%eax
5821e7:	5e                   	pop    %esi
5821e8:	5b                   	pop    %ebx
5821e9:	c3                   	ret
5821ea:	8b 43 08             	mov    0x8(%ebx),%eax
5821ed:	99                   	cltd
5821ee:	52                   	push   %edx
5821ef:	50                   	push   %eax
5821f0:	8b 46 08             	mov    0x8(%esi),%eax
5821f3:	33 d2                	xor    %edx,%edx
5821f5:	3b 54 24 04          	cmp    0x4(%esp),%edx
5821f9:	75 03                	jne    0x5821fe
5821fb:	3b 04 24             	cmp    (%esp),%eax
5821fe:	0f 94 c0             	sete   %al
582201:	83 c4 08             	add    $0x8,%esp
582204:	f6 d8                	neg    %al
582206:	1b c0                	sbb    %eax,%eax
582208:	5e                   	pop    %esi
582209:	5b                   	pop    %ebx
58220a:	c3                   	ret
58220b:	90                   	nop
58220c:	53                   	push   %ebx
58220d:	56                   	push   %esi
58220e:	57                   	push   %edi
58220f:	8b f0                	mov    %eax,%esi
582211:	8b 46 04             	mov    0x4(%esi),%eax
582214:	3b d0                	cmp    %eax,%edx
582216:	7e 5b                	jle    0x582273
582218:	85 c0                	test   %eax,%eax
58221a:	75 07                	jne    0x582223
58221c:	bb 40 00 00 00       	mov    $0x40,%ebx
582221:	eb 02                	jmp    0x582225
582223:	8b d8                	mov    %eax,%ebx
582225:	3b da                	cmp    %edx,%ebx
582227:	7d 0a                	jge    0x582233
582229:	8b c3                	mov    %ebx,%eax
58222b:	03 c0                	add    %eax,%eax
58222d:	8b d8                	mov    %eax,%ebx
58222f:	3b da                	cmp    %edx,%ebx
582231:	7c f6                	jl     0x582229
582233:	69 c3 2a 01 00 00    	imul   $0x12a,%ebx,%eax
582239:	05 78 01 00 00       	add    $0x178,%eax
58223e:	e8 69 05 e8 ff       	call   0x4027ac
582243:	8b f8                	mov    %eax,%edi
582245:	85 ff                	test   %edi,%edi
582247:	75 04                	jne    0x58224d
582249:	33 c0                	xor    %eax,%eax
58224b:	eb 28                	jmp    0x582275
58224d:	8b 06                	mov    (%esi),%eax
58224f:	48                   	dec    %eax
582250:	69 c8 2a 01 00 00    	imul   $0x12a,%eax,%ecx
582256:	81 c1 78 01 00 00    	add    $0x178,%ecx
58225c:	8b d6                	mov    %esi,%edx
58225e:	8b c7                	mov    %edi,%eax
582260:	e8 5b 5c e8 ff       	call   0x407ec0
582265:	89 5f 04             	mov    %ebx,0x4(%edi)
582268:	8b c6                	mov    %esi,%eax
58226a:	e8 5d 05 e8 ff       	call   0x4027cc
58226f:	8b c7                	mov    %edi,%eax
582271:	eb 02                	jmp    0x582275
582273:	8b c6                	mov    %esi,%eax
582275:	5f                   	pop    %edi
582276:	5e                   	pop    %esi
582277:	5b                   	pop    %ebx
582278:	c3                   	ret
582279:	8d 40 00             	lea    0x0(%eax),%eax
58227c:	55                   	push   %ebp
58227d:	8b ec                	mov    %esp,%ebp
58227f:	51                   	push   %ecx
582280:	53                   	push   %ebx
582281:	56                   	push   %esi
582282:	57                   	push   %edi
582283:	8b f1                	mov    %ecx,%esi
582285:	89 55 fc             	mov    %edx,-0x4(%ebp)
582288:	8b 7d 08             	mov    0x8(%ebp),%edi
58228b:	8b d8                	mov    %eax,%ebx
58228d:	83 bb d8 00 00 00 00 	cmpl   $0x0,0xd8(%ebx)
582294:	75 04                	jne    0x58229a
582296:	33 c0                	xor    %eax,%eax
582298:	eb 76                	jmp    0x582310
58229a:	8b 83 d8 00 00 00    	mov    0xd8(%ebx),%eax
5822a0:	8b 10                	mov    (%eax),%edx
5822a2:	42                   	inc    %edx
5822a3:	8b 83 d8 00 00 00    	mov    0xd8(%ebx),%eax
5822a9:	e8 5e ff ff ff       	call   0x58220c
5822ae:	89 83 d8 00 00 00    	mov    %eax,0xd8(%ebx)
5822b4:	8b 9b d8 00 00 00    	mov    0xd8(%ebx),%ebx
5822ba:	33 c0                	xor    %eax,%eax
5822bc:	66 8b 14 47          	mov    (%edi,%eax,2),%dx
5822c0:	69 0b 95 00 00 00    	imul   $0x95,(%ebx),%ecx
5822c6:	8d 0c 4b             	lea    (%ebx,%ecx,2),%ecx
5822c9:	66 89 94 41 58 01 00 	mov    %dx,0x158(%ecx,%eax,2)
5822d0:	00
5822d1:	40                   	inc    %eax
5822d2:	83 f8 10             	cmp    $0x10,%eax
5822d5:	75 e5                	jne    0x5822bc
5822d7:	33 c0                	xor    %eax,%eax
5822d9:	66 8b 14 46          	mov    (%esi,%eax,2),%dx
5822dd:	69 0b 95 00 00 00    	imul   $0x95,(%ebx),%ecx
5822e3:	8d 0c 4b             	lea    (%ebx,%ecx,2),%ecx
5822e6:	66 89 94 41 52 01 00 	mov    %dx,0x152(%ecx,%eax,2)
5822ed:	00
5822ee:	40                   	inc    %eax
5822ef:	83 f8 03             	cmp    $0x3,%eax
5822f2:	75 e5                	jne    0x5822d9
5822f4:	69 03 95 00 00 00    	imul   $0x95,(%ebx),%eax
5822fa:	8d 44 43 4e          	lea    0x4e(%ebx,%eax,2),%eax
5822fe:	b9 03 01 00 00       	mov    $0x103,%ecx
582303:	8b 55 fc             	mov    -0x4(%ebp),%edx
582306:	e8 75 7b e8 ff       	call   0x409e80
58230b:	ff 03                	incl   (%ebx)
58230d:	83 c8 ff             	or     $0xffffffff,%eax
582310:	5f                   	pop    %edi
582311:	5e                   	pop    %esi
582312:	5b                   	pop    %ebx
582313:	59                   	pop    %ecx
582314:	5d                   	pop    %ebp
582315:	c2 04 00             	ret    $0x4
582318:	53                   	push   %ebx
582319:	56                   	push   %esi
58231a:	57                   	push   %edi
58231b:	55                   	push   %ebp
58231c:	81 c4 54 ff ff ff    	add    $0xffffff54,%esp
582322:	89 0c 24             	mov    %ecx,(%esp)
582325:	89 44 24 04          	mov    %eax,0x4(%esp)
582329:	8b fa                	mov    %edx,%edi
58232b:	8b 14 24             	mov    (%esp),%edx
58232e:	8b c7                	mov    %edi,%eax
582330:	e8 e3 9a ff ff       	call   0x57be18
582335:	8b d8                	mov    %eax,%ebx
582337:	85 db                	test   %ebx,%ebx
582339:	7d 07                	jge    0x582342
58233b:	33 c0                	xor    %eax,%eax
58233d:	e9 17 02 00 00       	jmp    0x582559
582342:	83 3f 00             	cmpl   $0x0,(%edi)
582345:	75 4e                	jne    0x582395
582347:	8b b4 9f 88 01 00 00 	mov    0x188(%edi,%ebx,4),%esi
58234e:	8b 44 24 04          	mov    0x4(%esp),%eax
582352:	8b 80 d8 00 00 00    	mov    0xd8(%eax),%eax
582358:	85 c0                	test   %eax,%eax
58235a:	74 05                	je     0x582361
58235c:	e8 4b d0 ff ff       	call   0x57f3ac
582361:	8b c6                	mov    %esi,%eax
582363:	e8 44 04 e8 ff       	call   0x4027ac
582368:	8b e8                	mov    %eax,%ebp
58236a:	8b 44 24 04          	mov    0x4(%esp),%eax
58236e:	89 a8 d8 00 00 00    	mov    %ebp,0xd8(%eax)
582374:	8b 94 9f 18 03 00 00 	mov    0x318(%edi,%ebx,4),%edx
58237b:	8b c5                	mov    %ebp,%eax
58237d:	8b ce                	mov    %esi,%ecx
58237f:	e8 3c 5b e8 ff       	call   0x407ec0
582384:	8b 44 24 04          	mov    0x4(%esp),%eax
582388:	8b 80 d8 00 00 00    	mov    0xd8(%eax),%eax
58238e:	8b 00                	mov    (%eax),%eax
582390:	e9 c4 01 00 00       	jmp    0x582559
582395:	8b 9c 9f 50 02 00 00 	mov    0x250(%edi,%ebx,4),%ebx
58239c:	8b c3                	mov    %ebx,%eax
58239e:	99                   	cltd
58239f:	52                   	push   %edx
5823a0:	50                   	push   %eax
5823a1:	8b 07                	mov    (%edi),%eax
5823a3:	ff 97 f0 03 00 00    	call   *0x3f0(%edi)
5823a9:	85 c0                	test   %eax,%eax
5823ab:	74 07                	je     0x5823b4
5823ad:	33 c0                	xor    %eax,%eax
5823af:	e9 a5 01 00 00       	jmp    0x582559
5823b4:	8b 07                	mov    (%edi),%eax
5823b6:	50                   	push   %eax
5823b7:	8d 44 24 0c          	lea    0xc(%esp),%eax
5823bb:	b9 08 00 00 00       	mov    $0x8,%ecx
5823c0:	ba 01 00 00 00       	mov    $0x1,%edx
5823c5:	ff 97 ec 03 00 00    	call   *0x3ec(%edi)
5823cb:	8d 44 24 08          	lea    0x8(%esp),%eax
5823cf:	e8 e0 93 ff ff       	call   0x57b7b4
5823d4:	8b 44 24 08          	mov    0x8(%esp),%eax
5823d8:	2d 32 6c 63 6e       	sub    $0x6e636c32,%eax
5823dd:	74 12                	je     0x5823f1
5823df:	2d 3a 03 00 00       	sub    $0x33a,%eax
5823e4:	0f 85 6d 01 00 00    	jne    0x582557
5823ea:	33 c0                	xor    %eax,%eax
5823ec:	e9 68 01 00 00       	jmp    0x582559
5823f1:	8b 07                	mov    (%edi),%eax
5823f3:	50                   	push   %eax
5823f4:	e8 33 d2 ff ff       	call   0x57f62c
5823f9:	ba 4d 00 00 00       	mov    $0x4d,%edx
5823fe:	2b d0                	sub    %eax,%edx
582400:	8d 44 24 20          	lea    0x20(%esp),%eax
582404:	b9 01 00 00 00       	mov    $0x1,%ecx
582409:	ff 97 ec 03 00 00    	call   *0x3ec(%edi)
58240f:	8d 44 24 1c          	lea    0x1c(%esp),%eax
582413:	e8 9c 93 ff ff       	call   0x57b7b4
582418:	8d 44 24 20          	lea    0x20(%esp),%eax
58241c:	e8 93 93 ff ff       	call   0x57b7b4
582421:	8d 44 24 24          	lea    0x24(%esp),%eax
582425:	e8 8a 93 ff ff       	call   0x57b7b4
58242a:	8d 54 24 1c          	lea    0x1c(%esp),%edx
58242e:	8b 44 24 04          	mov    0x4(%esp),%eax
582432:	8b 80 d8 00 00 00    	mov    0xd8(%eax),%eax
582438:	e8 67 fd ff ff       	call   0x5821a4
58243d:	85 c0                	test   %eax,%eax
58243f:	8d 54 24 28          	lea    0x28(%esp),%edx
582443:	8b 44 24 04          	mov    0x4(%esp),%eax
582447:	8b 80 d8 00 00 00    	mov    0xd8(%eax),%eax
58244d:	83 c0 0c             	add    $0xc,%eax
582450:	b9 20 00 00 00       	mov    $0x20,%ecx
582455:	e8 26 7a e8 ff       	call   0x409e80
58245a:	8d 54 24 48          	lea    0x48(%esp),%edx
58245e:	8b 44 24 04          	mov    0x4(%esp),%eax
582462:	8b 80 d8 00 00 00    	mov    0xd8(%eax),%eax
582468:	83 c0 2d             	add    $0x2d,%eax
58246b:	b9 20 00 00 00       	mov    $0x20,%ecx
582470:	e8 0b 7a e8 ff       	call   0x409e80
582475:	8b 44 24 04          	mov    0x4(%esp),%eax
582479:	8b 80 d8 00 00 00    	mov    0xd8(%eax),%eax
58247f:	33 d2                	xor    %edx,%edx
582481:	88 50 4d             	mov    %dl,0x4d(%eax)
582484:	88 50 2c             	mov    %dl,0x2c(%eax)
582487:	8b 54 24 24          	mov    0x24(%esp),%edx
58248b:	89 50 08             	mov    %edx,0x8(%eax)
58248e:	8b 44 24 20          	mov    0x20(%esp),%eax
582492:	48                   	dec    %eax
582493:	85 c0                	test   %eax,%eax
582495:	0f 8c ae 00 00 00    	jl     0x582549
58249b:	40                   	inc    %eax
58249c:	89 44 24 18          	mov    %eax,0x18(%esp)
5824a0:	8d 44 24 6a          	lea    0x6a(%esp),%eax
5824a4:	ba 20 00 00 00       	mov    $0x20,%edx
5824a9:	e8 26 5a e8 ff       	call   0x407ed4
5824ae:	8b 07                	mov    (%edi),%eax
5824b0:	50                   	push   %eax
5824b1:	8d 84 24 8e 00 00 00 	lea    0x8e(%esp),%eax
5824b8:	b9 20 00 00 00       	mov    $0x20,%ecx
5824bd:	ba 01 00 00 00       	mov    $0x1,%edx
5824c2:	ff 97 ec 03 00 00    	call   *0x3ec(%edi)
5824c8:	8b 07                	mov    (%edi),%eax
5824ca:	50                   	push   %eax
5824cb:	8d 44 24 14          	lea    0x14(%esp),%eax
5824cf:	b9 02 00 00 00       	mov    $0x2,%ecx
5824d4:	ba 03 00 00 00       	mov    $0x3,%edx
5824d9:	ff 97 ec 03 00 00    	call   *0x3ec(%edi)
5824df:	be 03 00 00 00       	mov    $0x3,%esi
5824e4:	8d 5c 24 10          	lea    0x10(%esp),%ebx
5824e8:	8b c3                	mov    %ebx,%eax
5824ea:	e8 b9 92 ff ff       	call   0x57b7a8
5824ef:	83 c3 02             	add    $0x2,%ebx
5824f2:	4e                   	dec    %esi
5824f3:	75 f3                	jne    0x5824e8
5824f5:	8b 07                	mov    (%edi),%eax
5824f7:	50                   	push   %eax
5824f8:	8d 44 24 6e          	lea    0x6e(%esp),%eax
5824fc:	8b 4c 24 28          	mov    0x28(%esp),%ecx
582500:	ba 02 00 00 00       	mov    $0x2,%edx
582505:	ff 97 ec 03 00 00    	call   *0x3ec(%edi)
58250b:	8b 74 24 24          	mov    0x24(%esp),%esi
58250f:	4e                   	dec    %esi
582510:	85 f6                	test   %esi,%esi
582512:	7c 12                	jl     0x582526
582514:	46                   	inc    %esi
582515:	8d 5c 24 6a          	lea    0x6a(%esp),%ebx
582519:	8b c3                	mov    %ebx,%eax
58251b:	e8 88 92 ff ff       	call   0x57b7a8
582520:	83 c3 02             	add    $0x2,%ebx
582523:	4e                   	dec    %esi
582524:	75 f3                	jne    0x582519
582526:	8d 44 24 6a          	lea    0x6a(%esp),%eax
58252a:	50                   	push   %eax
58252b:	8d 4c 24 14          	lea    0x14(%esp),%ecx
58252f:	8d 94 24 8e 00 00 00 	lea    0x8e(%esp),%edx
582536:	8b 44 24 08          	mov    0x8(%esp),%eax
58253a:	e8 3d fd ff ff       	call   0x58227c
58253f:	ff 4c 24 18          	decl   0x18(%esp)
582543:	0f 85 57 ff ff ff    	jne    0x5824a0
582549:	8b 44 24 04          	mov    0x4(%esp),%eax
58254d:	8b 80 d8 00 00 00    	mov    0xd8(%eax),%eax
582553:	8b 00                	mov    (%eax),%eax
582555:	eb 02                	jmp    0x582559
582557:	33 c0                	xor    %eax,%eax
582559:	81 c4 ac 00 00 00    	add    $0xac,%esp
58255f:	5d                   	pop    %ebp
582560:	5f                   	pop    %edi
582561:	5e                   	pop    %esi
582562:	5b                   	pop    %ebx
582563:	c3                   	ret
582564:	55                   	push   %ebp
582565:	8b ec                	mov    %esp,%ebp
582567:	83 c4 b4             	add    $0xffffffb4,%esp
58256a:	53                   	push   %ebx
58256b:	56                   	push   %esi
58256c:	89 4d fc             	mov    %ecx,-0x4(%ebp)
58256f:	8b d8                	mov    %eax,%ebx
582571:	89 55 f8             	mov    %edx,-0x8(%ebp)
582574:	8b 45 fc             	mov    -0x4(%ebp),%eax
582577:	89 45 f4             	mov    %eax,-0xc(%ebp)
58257a:	8b 75 08             	mov    0x8(%ebp),%esi
58257d:	4e                   	dec    %esi
58257e:	85 f6                	test   %esi,%esi
582580:	72 4a                	jb     0x5825cc
582582:	46                   	inc    %esi
582583:	8d 55 d4             	lea    -0x2c(%ebp),%edx
582586:	8b 4d f8             	mov    -0x8(%ebp),%ecx
582589:	8b c3                	mov    %ebx,%eax
58258b:	ff 93 94 00 00 00    	call   *0x94(%ebx)
582591:	89 45 f8             	mov    %eax,-0x8(%ebp)
582594:	0f b7 45 d4          	movzwl -0x2c(%ebp),%eax
582598:	69 c0 95 00 00 00    	imul   $0x95,%eax,%eax
58259e:	8b 93 d8 00 00 00    	mov    0xd8(%ebx),%edx
5825a4:	8d 94 42 58 01 00 00 	lea    0x158(%edx,%eax,2),%edx
5825ab:	8d 45 b4             	lea    -0x4c(%ebp),%eax
5825ae:	b9 20 00 00 00       	mov    $0x20,%ecx
5825b3:	e8 08 59 e8 ff       	call   0x407ec0