504324:	5e                   	pop    %esi
504325:	5b                   	pop    %ebx
504326:	8b e5                	mov    %ebp,%esp
504328:	5d                   	pop    %ebp
504329:	c3                   	ret
50432a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
50432d:	8b c3                	mov    %ebx,%eax
50432f:	c1 e8 08             	shr    $0x8,%eax
504332:	88 44 37 01          	mov    %al,0x1(%edi,%esi,1)
504336:	8b c1                	mov    %ecx,%eax
504338:	c1 e8 08             	shr    $0x8,%eax
50433b:	88 5c 37 02          	mov    %bl,0x2(%edi,%esi,1)
50433f:	88 44 37 05          	mov    %al,0x5(%edi,%esi,1)
504343:	88 4c 37 06          	mov    %cl,0x6(%edi,%esi,1)
504347:	eb 0f                	jmp    0x504358
504349:	8b 4d f8             	mov    -0x8(%ebp),%ecx
50434c:	8b c2                	mov    %edx,%eax
50434e:	c1 e8 08             	shr    $0x8,%eax
504351:	88 04 31             	mov    %al,(%ecx,%esi,1)
504354:	88 54 31 01          	mov    %dl,0x1(%ecx,%esi,1)
504358:	8b 7d 08             	mov    0x8(%ebp),%edi
50435b:	8b 47 34             	mov    0x34(%edi),%eax
50435e:	f6 40 16 0c          	testb  $0xc,0x16(%eax)
504362:	74 1a                	je     0x50437e
504364:	8b 45 10             	mov    0x10(%ebp),%eax
504367:	0f b7 c0             	movzwl %ax,%eax
50436a:	50                   	push   %eax
50436b:	0f b7 c2             	movzwl %dx,%eax
50436e:	03 c6                	add    %esi,%eax
504370:	6a 00                	push   $0x0
504372:	50                   	push   %eax
504373:	e8 88 f6 0d 00       	call   0x5e3a00
504378:	8b 55 0c             	mov    0xc(%ebp),%edx
50437b:	83 c4 0c             	add    $0xc,%esp
50437e:	0f b7 ca             	movzwl %dx,%ecx
504381:	8b c3                	mov    %ebx,%eax
504383:	8b 55 10             	mov    0x10(%ebp),%edx
504386:	03 ce                	add    %esi,%ecx
504388:	c1 e8 08             	shr    $0x8,%eax
50438b:	88 01                	mov    %al,(%ecx)
50438d:	8b c2                	mov    %edx,%eax
50438f:	c1 e8 08             	shr    $0x8,%eax
504392:	88 41 02             	mov    %al,0x2(%ecx)
504395:	8b 45 e4             	mov    -0x1c(%ebp),%eax
504398:	88 59 01             	mov    %bl,0x1(%ecx)
50439b:	88 51 03             	mov    %dl,0x3(%ecx)
50439e:	01 47 14             	add    %eax,0x14(%edi)
5043a1:	33 c0                	xor    %eax,%eax
5043a3:	5f                   	pop    %edi
5043a4:	5e                   	pop    %esi
5043a5:	5b                   	pop    %ebx
5043a6:	8b e5                	mov    %ebp,%esp
5043a8:	5d                   	pop    %ebp
5043a9:	c3                   	ret
5043aa:	cc                   	int3
5043ab:	cc                   	int3
5043ac:	cc                   	int3
5043ad:	cc                   	int3
5043ae:	cc                   	int3
5043af:	cc                   	int3
5043b0:	55                   	push   %ebp
5043b1:	8b ec                	mov    %esp,%ebp
5043b3:	56                   	push   %esi
5043b4:	8b 75 08             	mov    0x8(%ebp),%esi
5043b7:	8b 46 50             	mov    0x50(%esi),%eax
5043ba:	85 c0                	test   %eax,%eax
5043bc:	74 16                	je     0x5043d4
5043be:	83 c0 fc             	add    $0xfffffffc,%eax
5043c1:	50                   	push   %eax
5043c2:	89 46 50             	mov    %eax,0x50(%esi)
5043c5:	e8 c6 ba 00 00       	call   0x50fe90
5043ca:	83 c4 04             	add    $0x4,%esp
5043cd:	c7 46 50 00 00 00 00 	movl   $0x0,0x50(%esi)
5043d4:	5e                   	pop    %esi
5043d5:	5d                   	pop    %ebp
5043d6:	c3                   	ret
5043d7:	cc                   	int3
5043d8:	cc                   	int3
5043d9:	cc                   	int3
5043da:	cc                   	int3
5043db:	cc                   	int3
5043dc:	cc                   	int3
5043dd:	cc                   	int3
5043de:	cc                   	int3
5043df:	cc                   	int3
5043e0:	55                   	push   %ebp
5043e1:	8b ec                	mov    %esp,%ebp
5043e3:	8b 45 0c             	mov    0xc(%ebp),%eax
5043e6:	56                   	push   %esi
5043e7:	8b 70 24             	mov    0x24(%eax),%esi
5043ea:	85 f6                	test   %esi,%esi
5043ec:	74 19                	je     0x504407
5043ee:	83 06 ff             	addl   $0xffffffff,(%esi)
5043f1:	75 14                	jne    0x504407
5043f3:	ff 76 08             	push   0x8(%esi)
5043f6:	8b 46 04             	mov    0x4(%esi),%eax
5043f9:	ff d0                	call   *%eax
5043fb:	56                   	push   %esi
5043fc:	ff 75 08             	push   0x8(%ebp)
5043ff:	e8 6c cf 01 00       	call   0x521370
504404:	83 c4 0c             	add    $0xc,%esp
504407:	5e                   	pop    %esi
504408:	5d                   	pop    %ebp
504409:	c3                   	ret
50440a:	cc                   	int3
50440b:	cc                   	int3
50440c:	cc                   	int3
50440d:	cc                   	int3
50440e:	cc                   	int3
50440f:	cc                   	int3
504410:	55                   	push   %ebp
504411:	8b ec                	mov    %esp,%ebp
504413:	8b 4d 0c             	mov    0xc(%ebp),%ecx
504416:	80 39 a9             	cmpb   $0xa9,(%ecx)
504419:	75 4f                	jne    0x50446a
50441b:	f7 41 04 00 00 00 01 	testl  $0x1000000,0x4(%ecx)
504422:	74 46                	je     0x50446a
504424:	8b 45 08             	mov    0x8(%ebp),%eax
504427:	56                   	push   %esi
504428:	57                   	push   %edi
504429:	8b 79 2c             	mov    0x2c(%ecx),%edi
50442c:	8b 70 18             	mov    0x18(%eax),%esi
50442f:	85 f6                	test   %esi,%esi
504431:	74 31                	je     0x504464
504433:	8b 46 44             	mov    0x44(%esi),%eax
504436:	83 c6 44             	add    $0x44,%esi
504439:	85 c0                	test   %eax,%eax
50443b:	74 12                	je     0x50444f
50443d:	6a 00                	push   $0x0
50443f:	57                   	push   %edi
504440:	50                   	push   %eax
504441:	6a 00                	push   $0x0
504443:	e8 e8 15 05 00       	call   0x555a30
504448:	83 c4 10             	add    $0x10,%esp
50444b:	85 c0                	test   %eax,%eax
50444d:	75 15                	jne    0x504464
50444f:	8b 06                	mov    (%esi),%eax
504451:	8d 4f 24             	lea    0x24(%edi),%ecx
504454:	89 01                	mov    %eax,(%ecx)
504456:	8b 06                	mov    (%esi),%eax
504458:	85 c0                	test   %eax,%eax
50445a:	74 03                	je     0x50445f
50445c:	89 48 20             	mov    %ecx,0x20(%eax)
50445f:	89 3e                	mov    %edi,(%esi)
504461:	89 77 20             	mov    %esi,0x20(%edi)
504464:	5f                   	pop    %edi
504465:	33 c0                	xor    %eax,%eax
504467:	5e                   	pop    %esi
504468:	5d                   	pop    %ebp
504469:	c3                   	ret
50446a:	33 c0                	xor    %eax,%eax
50446c:	5d                   	pop    %ebp
50446d:	c3                   	ret
50446e:	cc                   	int3
50446f:	cc                   	int3
504470:	55                   	push   %ebp
504471:	8b ec                	mov    %esp,%ebp
504473:	8b 4d 08             	mov    0x8(%ebp),%ecx
504476:	33 c0                	xor    %eax,%eax
504478:	8b 55 0c             	mov    0xc(%ebp),%edx
50447b:	3b 51 18             	cmp    0x18(%ecx),%edx
50447e:	0f 95 c0             	setne  %al
504481:	5d                   	pop    %ebp
504482:	c3                   	ret
504483:	cc                   	int3
504484:	cc                   	int3
504485:	cc                   	int3
504486:	cc                   	int3
504487:	cc                   	int3
504488:	cc                   	int3
504489:	cc                   	int3
50448a:	cc                   	int3
50448b:	cc                   	int3
50448c:	cc                   	int3
50448d:	cc                   	int3
50448e:	cc                   	int3
50448f:	cc                   	int3
504490:	55                   	push   %ebp
504491:	8b ec                	mov    %esp,%ebp
504493:	83 ec 1c             	sub    $0x1c,%esp
504496:	53                   	push   %ebx
504497:	8b 5d 08             	mov    0x8(%ebp),%ebx
50449a:	57                   	push   %edi
50449b:	80 bb c7 00 00 00 00 	cmpb   $0x0,0xc7(%ebx)
5044a2:	8b 13                	mov    (%ebx),%edx
5044a4:	8b 7b 08             	mov    0x8(%ebx),%edi
5044a7:	89 55 f8             	mov    %edx,-0x8(%ebp)
5044aa:	0f 85 76 01 00 00    	jne    0x504626
5044b0:	80 7b 10 00          	cmpb   $0x0,0x10(%ebx)
5044b4:	0f 85 6c 01 00 00    	jne    0x504626
5044ba:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5044bd:	8b 41 34             	mov    0x34(%ecx),%eax
5044c0:	85 c0                	test   %eax,%eax
5044c2:	74 09                	je     0x5044cd
5044c4:	8b c8                	mov    %eax,%ecx
5044c6:	8b 41 34             	mov    0x34(%ecx),%eax
5044c9:	85 c0                	test   %eax,%eax
5044cb:	75 f7                	jne    0x5044c4
5044cd:	8b 41 20             	mov    0x20(%ecx),%eax
5044d0:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5044d3:	56                   	push   %esi
5044d4:	8b 71 1c             	mov    0x1c(%ecx),%esi
5044d7:	c6 43 10 01          	movb   $0x1,0x10(%ebx)
5044db:	8b 42 24             	mov    0x24(%edx),%eax
5044de:	8b 4a 20             	mov    0x20(%edx),%ecx
5044e1:	89 45 f0             	mov    %eax,-0x10(%ebp)
5044e4:	8b c1                	mov    %ecx,%eax
5044e6:	83 e0 04             	and    $0x4,%eax
5044e9:	89 75 e8             	mov    %esi,-0x18(%ebp)
5044ec:	83 c8 00             	or     $0x0,%eax
5044ef:	74 07                	je     0x5044f8
5044f1:	b8 01 00 00 00       	mov    $0x1,%eax
5044f6:	eb 02                	jmp    0x5044fa
5044f8:	33 c0                	xor    %eax,%eax
5044fa:	83 e1 40             	and    $0x40,%ecx
5044fd:	89 45 f0             	mov    %eax,-0x10(%ebp)
504500:	83 c9 00             	or     $0x0,%ecx
504503:	75 07                	jne    0x50450c
504505:	89 4d f4             	mov    %ecx,-0xc(%ebp)
504508:	85 c0                	test   %eax,%eax
50450a:	74 07                	je     0x504513
50450c:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
504513:	ff 36                	push   (%esi)
504515:	57                   	push   %edi
504516:	e8 a5 8a 04 00       	call   0x54cfc0
50451b:	8b 45 e8             	mov    -0x18(%ebp),%eax
50451e:	33 f6                	xor    %esi,%esi
504520:	83 c4 08             	add    $0x8,%esp
504523:	39 30                	cmp    %esi,(%eax)
504525:	0f 8e ed 00 00 00    	jle    0x504618
50452b:	89 75 fc             	mov    %esi,-0x4(%ebp)
50452e:	8d 58 08             	lea    0x8(%eax),%ebx
504531:	8b 0b                	mov    (%ebx),%ecx
504533:	8b 53 fc             	mov    -0x4(%ebx),%edx
504536:	85 c9                	test   %ecx,%ecx
504538:	74 19                	je     0x504553
50453a:	f6 43 08 03          	testb  $0x3,0x8(%ebx)
50453e:	75 13                	jne    0x504553
504540:	8b 07                	mov    (%edi),%eax
504542:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
504546:	0f 85 b6 00 00 00    	jne    0x504602
50454c:	6a ff                	push   $0xffffffff
50454e:	e9 9b 00 00 00       	jmp    0x5045ee
504553:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
504557:	74 60                	je     0x5045b9
504559:	80 3a a4             	cmpb   $0xa4,(%edx)
50455c:	75 5b                	jne    0x5045b9
50455e:	0f bf 42 20          	movswl 0x20(%edx),%eax
504562:	8b 52 2c             	mov    0x2c(%edx),%edx
504565:	85 c0                	test   %eax,%eax
504567:	79 0f                	jns    0x504578
504569:	0f bf 42 28          	movswl 0x28(%edx),%eax
50456d:	85 c0                	test   %eax,%eax
50456f:	79 07                	jns    0x504578
504571:	b8 a0 6a 6b 00       	mov    $0x6b6aa0,%eax
504576:	eb 09                	jmp    0x504581
504578:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
50457b:	8b 42 04             	mov    0x4(%edx),%eax
50457e:	8b 04 88             	mov    (%eax,%ecx,4),%eax
504581:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
504585:	74 24                	je     0x5045ab
504587:	50                   	push   %eax
504588:	ff 32                	push   (%edx)
50458a:	68 24 9d 6b 00       	push   $0x6b9d24
50458f:	ff 75 f8             	push   -0x8(%ebp)
504592:	e8 a9 c9 02 00       	call   0x530f40
504597:	68 c0 10 53 00       	push   $0x5310c0
50459c:	50                   	push   %eax
50459d:	6a 00                	push   $0x0
50459f:	56                   	push   %esi
5045a0:	57                   	push   %edi
5045a1:	e8 ca 89 04 00       	call   0x54cf70
5045a6:	83 c4 24             	add    $0x24,%esp
5045a9:	eb 57                	jmp    0x504602
5045ab:	6a ff                	push   $0xffffffff
5045ad:	50                   	push   %eax
5045ae:	6a 00                	push   $0x0
5045b0:	56                   	push   %esi
5045b1:	57                   	push   %edi
5045b2:	e8 b9 89 04 00       	call   0x54cf70
5045b7:	eb 46                	jmp    0x5045ff
5045b9:	85 c9                	test   %ecx,%ecx
5045bb:	75 16                	jne    0x5045d3
5045bd:	8d 46 01             	lea    0x1(%esi),%eax
5045c0:	50                   	push   %eax
5045c1:	68 28 af 6b 00       	push   $0x6baf28
5045c6:	ff 75 f8             	push   -0x8(%ebp)
5045c9:	e8 72 c9 02 00       	call   0x530f40
5045ce:	83 c4 0c             	add    $0xc,%esp
5045d1:	eb 0c                	jmp    0x5045df
5045d3:	51                   	push   %ecx
5045d4:	ff 75 f8             	push   -0x8(%ebp)
5045d7:	e8 d4 d0 01 00       	call   0x5216b0
5045dc:	83 c4 08             	add    $0x8,%esp
5045df:	8b c8                	mov    %eax,%ecx
5045e1:	8b 07                	mov    (%edi),%eax
5045e3:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
5045e7:	75 19                	jne    0x504602
5045e9:	68 c0 10 53 00       	push   $0x5310c0
5045ee:	8b 47 74             	mov    0x74(%edi),%eax
5045f1:	03 45 fc             	add    -0x4(%ebp),%eax
5045f4:	6a 01                	push   $0x1
5045f6:	6a ff                	push   $0xffffffff
5045f8:	51                   	push   %ecx
5045f9:	50                   	push   %eax
5045fa:	e8 e1 74 04 00       	call   0x54bae0
5045ff:	83 c4 14             	add    $0x14,%esp
504602:	8b 45 e8             	mov    -0x18(%ebp),%eax
504605:	46                   	inc    %esi
504606:	83 45 fc 28          	addl   $0x28,-0x4(%ebp)
50460a:	83 c3 14             	add    $0x14,%ebx
50460d:	3b 30                	cmp    (%eax),%esi
50460f:	0f 8c 1c ff ff ff    	jl     0x504531
504615:	8b 5d 08             	mov    0x8(%ebp),%ebx
504618:	50                   	push   %eax
504619:	ff 75 e4             	push   -0x1c(%ebp)
50461c:	53                   	push   %ebx
50461d:	e8 0e 00 00 00       	call   0x504630
504622:	83 c4 0c             	add    $0xc,%esp
504625:	5e                   	pop    %esi
504626:	5f                   	pop    %edi
504627:	5b                   	pop    %ebx
504628:	8b e5                	mov    %ebp,%esp
50462a:	5d                   	pop    %ebp
50462b:	c3                   	ret
50462c:	cc                   	int3
50462d:	cc                   	int3
50462e:	cc                   	int3
50462f:	cc                   	int3
504630:	55                   	push   %ebp
504631:	8b ec                	mov    %esp,%ebp
504633:	83 ec 38             	sub    $0x38,%esp
504636:	a1 d4 89 72 00       	mov    0x7289d4,%eax
50463b:	33 c5                	xor    %ebp,%eax
50463d:	89 45 fc             	mov    %eax,-0x4(%ebp)
504640:	8b 4d 08             	mov    0x8(%ebp),%ecx
504643:	8b 55 10             	mov    0x10(%ebp),%edx
504646:	8b 45 0c             	mov    0xc(%ebp),%eax
504649:	53                   	push   %ebx
50464a:	8b 59 08             	mov    0x8(%ecx),%ebx
50464d:	56                   	push   %esi
50464e:	33 f6                	xor    %esi,%esi
504650:	89 55 c8             	mov    %edx,-0x38(%ebp)
504653:	89 5d d8             	mov    %ebx,-0x28(%ebp)
504656:	89 45 e0             	mov    %eax,-0x20(%ebp)
504659:	89 4d dc             	mov    %ecx,-0x24(%ebp)
50465c:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
504663:	89 75 d4             	mov    %esi,-0x2c(%ebp)
504666:	39 32                	cmp    %esi,(%edx)
504668:	0f 8e 1e 01 00 00    	jle    0x50478c