5154bb:	85 c0                	test   %eax,%eax
5154bd:	75 f7                	jne    0x5154b6
5154bf:	6a 40                	push   $0x40
5154c1:	51                   	push   %ecx
5154c2:	52                   	push   %edx
5154c3:	ff 75 0c             	push   0xc(%ebp)
5154c6:	e8 35 6b 02 00       	call   0x53c000
5154cb:	83 c4 10             	add    $0x10,%esp
5154ce:	47                   	inc    %edi
5154cf:	83 c6 48             	add    $0x48,%esi
5154d2:	3b 3b                	cmp    (%ebx),%edi
5154d4:	7c ca                	jl     0x5154a0
5154d6:	5e                   	pop    %esi
5154d7:	5f                   	pop    %edi
5154d8:	5b                   	pop    %ebx
5154d9:	5d                   	pop    %ebp
5154da:	c3                   	ret
5154db:	cc                   	int3
5154dc:	cc                   	int3
5154dd:	cc                   	int3
5154de:	cc                   	int3
5154df:	cc                   	int3
5154e0:	55                   	push   %ebp
5154e1:	8b ec                	mov    %esp,%ebp
5154e3:	83 ec 60             	sub    $0x60,%esp
5154e6:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5154e9:	53                   	push   %ebx
5154ea:	56                   	push   %esi
5154eb:	8b 75 08             	mov    0x8(%ebp),%esi
5154ee:	0f b7 41 04          	movzwl 0x4(%ecx),%eax
5154f2:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
5154f9:	8b 1e                	mov    (%esi),%ebx
5154fb:	89 5d f8             	mov    %ebx,-0x8(%ebp)
5154fe:	8b 13                	mov    (%ebx),%edx
515500:	83 49 04 40          	orl    $0x40,0x4(%ecx)
515504:	89 55 f4             	mov    %edx,-0xc(%ebp)
515507:	80 7a 51 00          	cmpb   $0x0,0x51(%edx)
51550b:	74 0b                	je     0x515518
51550d:	5e                   	pop    %esi
51550e:	b8 02 00 00 00       	mov    $0x2,%eax
515513:	5b                   	pop    %ebx
515514:	8b e5                	mov    %ebp,%esp
515516:	5d                   	pop    %ebp
515517:	c3                   	ret
515518:	a8 40                	test   $0x40,%al
51551a:	74 0b                	je     0x515527
51551c:	5e                   	pop    %esi
51551d:	b8 01 00 00 00       	mov    $0x1,%eax
515522:	5b                   	pop    %ebx
515523:	8b e5                	mov    %ebp,%esp
515525:	5d                   	pop    %ebp
515526:	c3                   	ret
515527:	66 83 7e 14 00       	cmpw   $0x0,0x14(%esi)
51552c:	74 09                	je     0x515537
51552e:	ff 43 64             	incl   0x64(%ebx)
515531:	8b 43 64             	mov    0x64(%ebx),%eax
515534:	89 41 10             	mov    %eax,0x10(%ecx)
515537:	8b 41 20             	mov    0x20(%ecx),%eax
51553a:	89 45 f0             	mov    %eax,-0x10(%ebp)
51553d:	8b 41 1c             	mov    0x1c(%ecx),%eax
515540:	8b 49 40             	mov    0x40(%ecx),%ecx
515543:	89 45 cc             	mov    %eax,-0x34(%ebp)
515546:	85 c9                	test   %ecx,%ecx
515548:	74 0f                	je     0x515559
51554a:	8b 83 08 01 00 00    	mov    0x108(%ebx),%eax
515550:	89 41 04             	mov    %eax,0x4(%ecx)
515553:	89 8b 08 01 00 00    	mov    %ecx,0x108(%ebx)
515559:	8b 4d f0             	mov    -0x10(%ebp),%ecx
51555c:	57                   	push   %edi
51555d:	51                   	push   %ecx
51555e:	53                   	push   %ebx
51555f:	e8 ac 77 02 00       	call   0x53cd10
515564:	33 ff                	xor    %edi,%edi
515566:	8d 41 08             	lea    0x8(%ecx),%eax
515569:	83 c4 08             	add    $0x8,%esp
51556c:	89 7d dc             	mov    %edi,-0x24(%ebp)
51556f:	8b d8                	mov    %eax,%ebx
515571:	89 45 b4             	mov    %eax,-0x4c(%ebp)
515574:	39 39                	cmp    %edi,(%ecx)
515576:	0f 8e 97 01 00 00    	jle    0x515713
51557c:	0f 1f 40 00          	nopl   0x0(%eax)
515580:	f6 43 28 20          	testb  $0x20,0x28(%ebx)
515584:	0f 85 77 01 00 00    	jne    0x515701
51558a:	53                   	push   %ebx
51558b:	56                   	push   %esi
51558c:	e8 df 32 05 00       	call   0x568870
515591:	83 c4 08             	add    $0x8,%esp
515594:	85 c0                	test   %eax,%eax
515596:	75 32                	jne    0x5155ca
515598:	39 43 10             	cmp    %eax,0x10(%ebx)
51559b:	0f 85 49 01 00 00    	jne    0x5156ea
5155a1:	39 43 08             	cmp    %eax,0x8(%ebx)
5155a4:	75 30                	jne    0x5155d6
5155a6:	ff 73 14             	push   0x14(%ebx)
5155a9:	56                   	push   %esi
5155aa:	e8 41 a8 03 00       	call   0x54fdf0
5155af:	83 c4 08             	add    $0x8,%esp
5155b2:	85 c0                	test   %eax,%eax
5155b4:	75 14                	jne    0x5155ca
5155b6:	53                   	push   %ebx
5155b7:	ff 75 f8             	push   -0x8(%ebp)
5155ba:	e8 c1 dd 00 00       	call   0x523380
5155bf:	83 c4 08             	add    $0x8,%esp
5155c2:	85 c0                	test   %eax,%eax
5155c4:	0f 84 20 01 00 00    	je     0x5156ea
5155ca:	5f                   	pop    %edi
5155cb:	5e                   	pop    %esi
5155cc:	b8 02 00 00 00       	mov    $0x2,%eax
5155d1:	5b                   	pop    %ebx
5155d2:	8b e5                	mov    %ebp,%esp
5155d4:	5d                   	pop    %ebp
5155d5:	c3                   	ret
5155d6:	53                   	push   %ebx
5155d7:	6a 00                	push   $0x0
5155d9:	ff 75 f8             	push   -0x8(%ebp)
5155dc:	e8 4f b6 01 00       	call   0x530c30
5155e1:	8b f8                	mov    %eax,%edi
5155e3:	83 c4 0c             	add    $0xc,%esp
5155e6:	89 7b 10             	mov    %edi,0x10(%ebx)
5155e9:	85 ff                	test   %edi,%edi
5155eb:	74 dd                	je     0x5155ca
5155ed:	8b 47 20             	mov    0x20(%edi),%eax
5155f0:	3d ff ff 00 00       	cmp    $0xffff,%eax
5155f5:	0f 83 17 02 00 00    	jae    0x515812
5155fb:	40                   	inc    %eax
5155fc:	83 7f 38 00          	cmpl   $0x0,0x38(%edi)
515600:	89 47 20             	mov    %eax,0x20(%edi)
515603:	75 1e                	jne    0x515623
515605:	53                   	push   %ebx
515606:	ff 75 f8             	push   -0x8(%ebp)
515609:	e8 72 27 fe ff       	call   0x4f7d80
51560e:	83 c4 08             	add    $0x8,%esp
515611:	85 c0                	test   %eax,%eax
515613:	75 b5                	jne    0x5155ca
515615:	39 47 38             	cmp    %eax,0x38(%edi)
515618:	75 09                	jne    0x515623
51561a:	39 47 0c             	cmp    %eax,0xc(%edi)
51561d:	0f 84 c4 00 00 00    	je     0x5156e7
515623:	8a 46 14             	mov    0x14(%esi),%al
515626:	57                   	push   %edi
515627:	ff 75 f8             	push   -0x8(%ebp)
51562a:	88 45 ff             	mov    %al,-0x1(%ebp)
51562d:	e8 ae 85 03 00       	call   0x54dbe0
515632:	83 c4 08             	add    $0x8,%esp
515635:	85 c0                	test   %eax,%eax
515637:	75 91                	jne    0x5155ca
515639:	8b 75 f4             	mov    -0xc(%ebp),%esi
51563c:	39 47 0c             	cmp    %eax,0xc(%edi)
51563f:	74 1f                	je     0x515660
515641:	8b 46 20             	mov    0x20(%esi),%eax
515644:	25 00 00 00 80       	and    $0x80000000,%eax
515649:	83 c8 00             	or     $0x0,%eax
51564c:	75 12                	jne    0x515660
51564e:	ff 37                	push   (%edi)
515650:	68 08 b2 6b 00       	push   $0x6bb208
515655:	ff 75 f8             	push   -0x8(%ebp)
515658:	e8 03 dc 00 00       	call   0x523260
51565d:	83 c4 0c             	add    $0xc,%esp
515660:	83 7f 38 00          	cmpl   $0x0,0x38(%edi)
515664:	74 3d                	je     0x5156a3
515666:	f6 43 28 40          	testb  $0x40,0x28(%ebx)
51566a:	74 37                	je     0x5156a3
51566c:	8b 57 40             	mov    0x40(%edi),%edx
51566f:	85 d2                	test   %edx,%edx
515671:	74 30                	je     0x5156a3
515673:	8b 46 20             	mov    0x20(%esi),%eax
515676:	25 80 00 00 00       	and    $0x80,%eax
51567b:	83 c8 00             	or     $0x0,%eax
51567e:	74 07                	je     0x515687
515680:	b9 01 00 00 00       	mov    $0x1,%ecx
515685:	eb 02                	jmp    0x515689
515687:	33 c9                	xor    %ecx,%ecx
515689:	0f b6 42 11          	movzbl 0x11(%edx),%eax
51568d:	3b c1                	cmp    %ecx,%eax
51568f:	76 12                	jbe    0x5156a3
515691:	ff 37                	push   (%edi)
515693:	68 28 b2 6b 00       	push   $0x6bb228
515698:	ff 75 f8             	push   -0x8(%ebp)
51569b:	e8 c0 db 00 00       	call   0x523260
5156a0:	83 c4 0c             	add    $0xc,%esp
5156a3:	6a 00                	push   $0x0
5156a5:	ff 77 0c             	push   0xc(%edi)
5156a8:	56                   	push   %esi
5156a9:	e8 32 6b 02 00       	call   0x53c1e0
5156ae:	89 43 14             	mov    %eax,0x14(%ebx)
5156b1:	b9 01 00 00 00       	mov    $0x1,%ecx
5156b6:	0f b7 77 2a          	movzwl 0x2a(%edi),%esi
5156ba:	83 c8 ff             	or     $0xffffffff,%eax
5156bd:	66 89 47 2a          	mov    %ax,0x2a(%edi)
5156c1:	8b 45 08             	mov    0x8(%ebp),%eax
5156c4:	66 89 48 14          	mov    %cx,0x14(%eax)
5156c8:	ff 73 14             	push   0x14(%ebx)
5156cb:	50                   	push   %eax
5156cc:	e8 1f a7 03 00       	call   0x54fdf0
5156d1:	8b 4d 08             	mov    0x8(%ebp),%ecx
5156d4:	83 c4 14             	add    $0x14,%esp
5156d7:	8a 45 ff             	mov    -0x1(%ebp),%al
5156da:	0f b6 c0             	movzbl %al,%eax
5156dd:	66 89 41 14          	mov    %ax,0x14(%ecx)
5156e1:	66 89 77 2a          	mov    %si,0x2a(%edi)
5156e5:	8b f1                	mov    %ecx,%esi
5156e7:	8b 7d dc             	mov    -0x24(%ebp),%edi
5156ea:	53                   	push   %ebx
5156eb:	ff 75 f8             	push   -0x8(%ebp)
5156ee:	e8 cd 89 01 00       	call   0x52e0c0
5156f3:	83 c4 08             	add    $0x8,%esp
5156f6:	85 c0                	test   %eax,%eax
5156f8:	0f 85 cc fe ff ff    	jne    0x5155ca
5156fe:	8b 4d f0             	mov    -0x10(%ebp),%ecx
515701:	47                   	inc    %edi
515702:	83 c3 48             	add    $0x48,%ebx
515705:	89 7d dc             	mov    %edi,-0x24(%ebp)
515708:	3b 39                	cmp    (%ecx),%edi
51570a:	0f 8c 70 fe ff ff    	jl     0x515580
515710:	8b 55 f4             	mov    -0xc(%ebp),%edx
515713:	8b 5d f8             	mov    -0x8(%ebp),%ebx
515716:	83 7b 24 00          	cmpl   $0x0,0x24(%ebx)
51571a:	0f 85 aa fe ff ff    	jne    0x5155ca
515720:	80 7a 51 00          	cmpb   $0x0,0x51(%edx)
515724:	0f 85 a0 fe ff ff    	jne    0x5155ca
51572a:	8b 75 0c             	mov    0xc(%ebp),%esi
51572d:	56                   	push   %esi
51572e:	53                   	push   %ebx
51572f:	e8 bc 1d 04 00       	call   0x5574f0
515734:	83 c4 08             	add    $0x8,%esp
515737:	85 c0                	test   %eax,%eax
515739:	0f 85 8b fe ff ff    	jne    0x5155ca
51573f:	8b 4d cc             	mov    -0x34(%ebp),%ecx
515742:	33 d2                	xor    %edx,%edx
515744:	8b 39                	mov    (%ecx),%edi
515746:	85 ff                	test   %edi,%edi
515748:	7e 31                	jle    0x51577b
51574a:	8d 71 04             	lea    0x4(%ecx),%esi
51574d:	33 db                	xor    %ebx,%ebx
51574f:	90                   	nop
515750:	8b 0e                	mov    (%esi),%ecx
515752:	8a 01                	mov    (%ecx),%al
515754:	3c b1                	cmp    $0xb1,%al
515756:	74 17                	je     0x51576f
515758:	3c 8b                	cmp    $0x8b,%al
51575a:	75 08                	jne    0x515764
51575c:	8b 41 10             	mov    0x10(%ecx),%eax
51575f:	80 38 b1             	cmpb   $0xb1,(%eax)
515762:	74 0b                	je     0x51576f
515764:	0b 59 04             	or     0x4(%ecx),%ebx
515767:	42                   	inc    %edx
515768:	83 c6 14             	add    $0x14,%esi
51576b:	3b d7                	cmp    %edi,%edx
51576d:	7c e1                	jl     0x515750
51576f:	8b 75 0c             	mov    0xc(%ebp),%esi
515772:	8b 4d cc             	mov    -0x34(%ebp),%ecx
515775:	89 5d d8             	mov    %ebx,-0x28(%ebp)
515778:	8b 5d f8             	mov    -0x8(%ebp),%ebx
51577b:	3b d7                	cmp    %edi,%edx
51577d:	0f 8d 75 07 00 00    	jge    0x515ef8
515783:	8b 03                	mov    (%ebx),%eax
515785:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
51578c:	8b 40 20             	mov    0x20(%eax),%eax
51578f:	83 e0 44             	and    $0x44,%eax
515792:	89 45 c8             	mov    %eax,-0x38(%ebp)
515795:	33 c0                	xor    %eax,%eax
515797:	89 45 b8             	mov    %eax,-0x48(%ebp)
51579a:	85 ff                	test   %edi,%edi
51579c:	0f 8e 41 07 00 00    	jle    0x515ee3
5157a2:	8d 04 80             	lea    (%eax,%eax,4),%eax
5157a5:	8d 34 81             	lea    (%ecx,%eax,4),%esi
5157a8:	8b 45 d8             	mov    -0x28(%ebp),%eax
5157ab:	8b 4e 04             	mov    0x4(%esi),%ecx
5157ae:	0b 41 04             	or     0x4(%ecx),%eax
5157b1:	8a 11                	mov    (%ecx),%dl
5157b3:	89 45 d8             	mov    %eax,-0x28(%ebp)
5157b6:	80 fa b1             	cmp    $0xb1,%dl
5157b9:	74 7c                	je     0x515837
5157bb:	80 fa 8b             	cmp    $0x8b,%dl
5157be:	75 08                	jne    0x5157c8
5157c0:	8b 41 10             	mov    0x10(%ecx),%eax
5157c3:	80 38 b1             	cmpb   $0xb1,(%eax)
5157c6:	74 6f                	je     0x515837
5157c8:	8b 45 e8             	mov    -0x18(%ebp),%eax
5157cb:	51                   	push   %ecx
5157cc:	50                   	push   %eax
5157cd:	53                   	push   %ebx
5157ce:	e8 ad 1d 01 00       	call   0x527580
5157d3:	8b f8                	mov    %eax,%edi
5157d5:	83 c4 0c             	add    $0xc,%esp
5157d8:	89 7d e8             	mov    %edi,-0x18(%ebp)
5157db:	85 ff                	test   %edi,%edi
5157dd:	74 27                	je     0x515806
5157df:	8b 0f                	mov    (%edi),%ecx
5157e1:	8d 14 89             	lea    (%ecx,%ecx,4),%edx
5157e4:	8b 4e 08             	mov    0x8(%esi),%ecx
5157e7:	89 4c 97 f4          	mov    %ecx,-0xc(%edi,%edx,4)
5157eb:	8b 0f                	mov    (%edi),%ecx
5157ed:	8d 04 89             	lea    (%ecx,%ecx,4),%eax
5157f0:	8d 0c 87             	lea    (%edi,%eax,4),%ecx
5157f3:	8b 46 10             	mov    0x10(%esi),%eax
5157f6:	33 41 fc             	xor    -0x4(%ecx),%eax
5157f9:	83 e0 03             	and    $0x3,%eax
5157fc:	31 41 fc             	xor    %eax,-0x4(%ecx)
5157ff:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
515806:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
51580d:	e9 bc 06 00 00       	jmp    0x515ece
515812:	ff 37                	push   (%edi)
515814:	68 e0 b1 6b 00       	push   $0x6bb1e0
515819:	ff 75 f8             	push   -0x8(%ebp)
51581c:	e8 3f da 00 00       	call   0x523260
515821:	83 c4 0c             	add    $0xc,%esp
515824:	c7 43 10 00 00 00 00 	movl   $0x0,0x10(%ebx)
51582b:	b8 02 00 00 00       	mov    $0x2,%eax
515830:	5f                   	pop    %edi
515831:	5e                   	pop    %esi
515832:	5b                   	pop    %ebx
515833:	8b e5                	mov    %ebp,%esp
515835:	5d                   	pop    %ebp
515836:	c3                   	ret
515837:	33 c0                	xor    %eax,%eax
515839:	89 45 bc             	mov    %eax,-0x44(%ebp)
51583c:	89 45 ec             	mov    %eax,-0x14(%ebp)
51583f:	80 fa 8b             	cmp    $0x8b,%dl
515842:	75 0b                	jne    0x51584f
515844:	8b 41 0c             	mov    0xc(%ecx),%eax
515847:	8b 48 08             	mov    0x8(%eax),%ecx
51584a:	89 4d ec             	mov    %ecx,-0x14(%ebp)
51584d:	eb 02                	jmp    0x515851
51584f:	33 c9                	xor    %ecx,%ecx
515851:	8b 55 f0             	mov    -0x10(%ebp),%edx
515854:	8b 45 b4             	mov    -0x4c(%ebp),%eax
515857:	c7 45 d4 00 00 00 00 	movl   $0x0,-0x2c(%ebp)
51585e:	89 45 d0             	mov    %eax,-0x30(%ebp)
515861:	83 3a 00             	cmpl   $0x0,(%edx)
515864:	0f 8e 3e 06 00 00    	jle    0x515ea8
51586a:	eb 07                	jmp    0x515873
51586c:	0f 1f 40 00          	nopl   0x0(%eax)
515870:	8b 4d ec             	mov    -0x14(%ebp),%ecx
515873:	8b 58 10             	mov    0x10(%eax),%ebx
515876:	8b 50 14             	mov    0x14(%eax),%edx
515879:	8b 40 0c             	mov    0xc(%eax),%eax
51587c:	89 5d a8             	mov    %ebx,-0x58(%ebp)
51587f:	89 55 dc             	mov    %edx,-0x24(%ebp)
515882:	89 45 e4             	mov    %eax,-0x1c(%ebp)
515885:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
51588c:	85 c0                	test   %eax,%eax
51588e:	75 05                	jne    0x515895
515890:	8b 03                	mov    (%ebx),%eax
515892:	89 45 e4             	mov    %eax,-0x1c(%ebp)
515895:	8b 75 f4             	mov    -0xc(%ebp),%esi
515898:	80 7e 51 00          	cmpb   $0x0,0x51(%esi)
51589c:	0f 85 fc 05 00 00    	jne    0x515e9e
5158a2:	85 d2                	test   %edx,%edx
5158a4:	74 09                	je     0x5158af