54527c:	83 c4 08             	add    $0x8,%esp
54527f:	39 b7 d4 01 00 00    	cmp    %esi,0x1d4(%edi)
545285:	75 d9                	jne    0x545260
545287:	8b 8d 84 fe ff ff    	mov    -0x17c(%ebp),%ecx
54528d:	83 f9 01             	cmp    $0x1,%ecx
545290:	75 3d                	jne    0x5452cf
545292:	8b 46 18             	mov    0x18(%esi),%eax
545295:	56                   	push   %esi
545296:	57                   	push   %edi
545297:	89 87 d4 01 00 00    	mov    %eax,0x1d4(%edi)
54529d:	e8 ce c0 fd ff       	call   0x521370
5452a2:	83 c4 08             	add    $0x8,%esp
5452a5:	83 bd 5c fe ff ff 00 	cmpl   $0x0,-0x1a4(%ebp)
5452ac:	0f 85 b4 d8 ff ff    	jne    0x542b66
5452b2:	ff 8f dc 01 00 00    	decl   0x1dc(%edi)
5452b8:	8b 8d 84 fe ff ff    	mov    -0x17c(%ebp),%ecx
5452be:	eb 45                	jmp    0x545305
5452c0:	c7 85 48 fe ff ff 00 	movl   $0x0,-0x1b8(%ebp)
5452c7:	00 00 00
5452ca:	e9 fb fe ff ff       	jmp    0x5451ca
5452cf:	83 bd 5c fe ff ff 00 	cmpl   $0x0,-0x1a4(%ebp)
5452d6:	8b 46 08             	mov    0x8(%esi),%eax
5452d9:	89 87 e8 01 00 00    	mov    %eax,0x1e8(%edi)
5452df:	8b 46 0c             	mov    0xc(%esi),%eax
5452e2:	89 87 ec 01 00 00    	mov    %eax,0x1ec(%edi)
5452e8:	8b 46 10             	mov    0x10(%esi),%eax
5452eb:	89 87 f0 01 00 00    	mov    %eax,0x1f0(%edi)
5452f1:	8b 46 14             	mov    0x14(%esi),%eax
5452f4:	89 87 f4 01 00 00    	mov    %eax,0x1f4(%edi)
5452fa:	74 09                	je     0x545305
5452fc:	83 f9 02             	cmp    $0x2,%ecx
5452ff:	0f 85 61 d8 ff ff    	jne    0x542b66
545305:	53                   	push   %ebx
545306:	51                   	push   %ecx
545307:	57                   	push   %edi
545308:	e8 43 97 00 00       	call   0x54ea50
54530d:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
545313:	83 c4 0c             	add    $0xc,%esp
545316:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
54531c:	85 c0                	test   %eax,%eax
54531e:	0f 85 e0 3b 00 00    	jne    0x548f04
545324:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
54532a:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
545330:	83 c6 14             	add    $0x14,%esi
545333:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
545339:	e9 76 d5 ff ff       	jmp    0x5428b4
54533e:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
545344:	c7 85 0c fe ff ff 00 	movl   $0x0,-0x1f4(%ebp)
54534b:	00 00 00
54534e:	8b 52 08             	mov    0x8(%edx),%edx
545351:	85 d2                	test   %edx,%edx
545353:	74 11                	je     0x545366
545355:	8b 47 20             	mov    0x20(%edi),%eax
545358:	25 00 00 10 00       	and    $0x100000,%eax
54535d:	83 c8 00             	or     $0x0,%eax
545360:	0f 85 77 3a 00 00    	jne    0x548ddd
545366:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
54536c:	8b 48 04             	mov    0x4(%eax),%ecx
54536f:	8b 47 10             	mov    0x10(%edi),%eax
545372:	03 c9                	add    %ecx,%ecx
545374:	8b 74 c8 04          	mov    0x4(%eax,%ecx,8),%esi
545378:	85 f6                	test   %esi,%esi
54537a:	0f 84 cc 00 00 00    	je     0x54544c
545380:	8d 85 0c fe ff ff    	lea    -0x1f4(%ebp),%eax
545386:	50                   	push   %eax
545387:	52                   	push   %edx
545388:	56                   	push   %esi
545389:	e8 c2 57 fd ff       	call   0x51ab50
54538e:	83 c4 0c             	add    $0xc,%esp
545391:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
545397:	85 c0                	test   %eax,%eax
545399:	0f 85 48 3a 00 00    	jne    0x548de7
54539f:	8b 95 9c fe ff ff    	mov    -0x164(%ebp),%edx
5453a5:	f6 82 98 00 00 00 80 	testb  $0x80,0x98(%edx)
5453ac:	0f 84 a6 00 00 00    	je     0x545458
5453b2:	8b 8d 98 fe ff ff    	mov    -0x168(%ebp),%ecx
5453b8:	39 41 08             	cmp    %eax,0x8(%ecx)
5453bb:	0f 84 97 00 00 00    	je     0x545458
5453c1:	38 47 4f             	cmp    %al,0x4f(%edi)
5453c4:	74 0d                	je     0x5453d3
5453c6:	83 bf b4 00 00 00 01 	cmpl   $0x1,0xb4(%edi)
5453cd:	0f 8e 85 00 00 00    	jle    0x545458
5453d3:	83 7a 30 00          	cmpl   $0x0,0x30(%edx)
5453d7:	75 15                	jne    0x5453ee
5453d9:	8b 87 dc 01 00 00    	mov    0x1dc(%edi),%eax
5453df:	ff 87 e0 01 00 00    	incl   0x1e0(%edi)
5453e5:	03 87 e0 01 00 00    	add    0x1e0(%edi),%eax
5453eb:	89 42 30             	mov    %eax,0x30(%edx)
5453ee:	8b 42 30             	mov    0x30(%edx),%eax
5453f1:	48                   	dec    %eax
5453f2:	50                   	push   %eax
5453f3:	6a 00                	push   $0x0
5453f5:	57                   	push   %edi
5453f6:	e8 55 96 00 00       	call   0x54ea50
5453fb:	83 c4 0c             	add    $0xc,%esp
5453fe:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
545404:	85 c0                	test   %eax,%eax
545406:	75 18                	jne    0x545420
545408:	8b 85 9c fe ff ff    	mov    -0x164(%ebp),%eax
54540e:	ff 70 30             	push   0x30(%eax)
545411:	56                   	push   %esi
545412:	e8 d9 56 fd ff       	call   0x51aaf0
545417:	83 c4 08             	add    $0x8,%esp
54541a:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
545420:	8b 95 9c fe ff ff    	mov    -0x164(%ebp),%edx
545426:	8b 87 e8 01 00 00    	mov    0x1e8(%edi),%eax
54542c:	89 42 48             	mov    %eax,0x48(%edx)
54542f:	8b 87 ec 01 00 00    	mov    0x1ec(%edi),%eax
545435:	89 42 4c             	mov    %eax,0x4c(%edx)
545438:	8b 87 f0 01 00 00    	mov    0x1f0(%edi),%eax
54543e:	89 42 50             	mov    %eax,0x50(%edx)
545441:	8b 87 f4 01 00 00    	mov    0x1f4(%edi),%eax
545447:	89 42 54             	mov    %eax,0x54(%edx)
54544a:	eb 06                	jmp    0x545452
54544c:	8b 95 9c fe ff ff    	mov    -0x164(%ebp),%edx
545452:	8b 85 94 fe ff ff    	mov    -0x16c(%ebp),%eax
545458:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
54545e:	66 83 7e 02 00       	cmpw   $0x0,0x2(%esi)
545463:	74 2f                	je     0x545494
545465:	8b 85 0c fe ff ff    	mov    -0x1f4(%ebp),%eax
54546b:	3b 46 0c             	cmp    0xc(%esi),%eax
54546e:	0f 85 b7 39 00 00    	jne    0x548e2b
545474:	8b c6                	mov    %esi,%eax
545476:	8b 48 04             	mov    0x4(%eax),%ecx
545479:	8b 47 10             	mov    0x10(%edi),%eax
54547c:	03 c9                	add    %ecx,%ecx
54547e:	8b 44 c8 0c          	mov    0xc(%eax,%ecx,8),%eax
545482:	8b 40 04             	mov    0x4(%eax),%eax
545485:	3b 46 10             	cmp    0x10(%esi),%eax
545488:	0f 85 9d 39 00 00    	jne    0x548e2b
54548e:	8b 85 94 fe ff ff    	mov    -0x16c(%ebp),%eax
545494:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
54549a:	85 c0                	test   %eax,%eax
54549c:	0f 85 62 3a 00 00    	jne    0x548f04
5454a2:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
5454a8:	83 c6 14             	add    $0x14,%esi
5454ab:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
5454b1:	e9 fe d3 ff ff       	jmp    0x5428b4
5454b6:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
5454bc:	8d 85 c8 fd ff ff    	lea    -0x238(%ebp),%eax
5454c2:	50                   	push   %eax
5454c3:	8b 47 10             	mov    0x10(%edi),%eax
5454c6:	8b 4a 04             	mov    0x4(%edx),%ecx
5454c9:	ff 72 0c             	push   0xc(%edx)
5454cc:	03 c9                	add    %ecx,%ecx
5454ce:	ff 74 c8 04          	push   0x4(%eax,%ecx,8)
5454d2:	e8 e9 65 fd ff       	call   0x51bac0
5454d7:	ff b5 98 fe ff ff    	push   -0x168(%ebp)
5454dd:	ff b5 9c fe ff ff    	push   -0x164(%ebp)
5454e3:	e8 a8 6b fc ff       	call   0x50c090
5454e8:	8b c8                	mov    %eax,%ecx
5454ea:	83 c4 14             	add    $0x14,%esp
5454ed:	8b 85 c8 fd ff ff    	mov    -0x238(%ebp),%eax
5454f3:	e9 68 d6 ff ff       	jmp    0x542b60
5454f8:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
5454fe:	8b 72 04             	mov    0x4(%edx),%esi
545501:	ff 72 0c             	push   0xc(%edx)
545504:	c1 e6 04             	shl    $0x4,%esi
545507:	03 77 10             	add    0x10(%edi),%esi
54550a:	ff 72 08             	push   0x8(%edx)
54550d:	ff 76 04             	push   0x4(%esi)
545510:	e8 8b 89 fd ff       	call   0x51dea0
545515:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
54551b:	83 c4 0c             	add    $0xc,%esp
54551e:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
545524:	8b 42 08             	mov    0x8(%edx),%eax
545527:	83 f8 01             	cmp    $0x1,%eax
54552a:	75 0e                	jne    0x54553a
54552c:	8b 4e 0c             	mov    0xc(%esi),%ecx
54552f:	8b 42 0c             	mov    0xc(%edx),%eax
545532:	89 01                	mov    %eax,(%ecx)
545534:	83 4f 18 01          	orl    $0x1,0x18(%edi)
545538:	eb 0e                	jmp    0x545548
54553a:	83 f8 02             	cmp    $0x2,%eax
54553d:	75 09                	jne    0x545548
54553f:	8b 4e 0c             	mov    0xc(%esi),%ecx
545542:	8a 42 0c             	mov    0xc(%edx),%al
545545:	88 41 4c             	mov    %al,0x4c(%ecx)
545548:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
54554e:	83 78 04 01          	cmpl   $0x1,0x4(%eax)
545552:	75 1a                	jne    0x54556e
545554:	6a 00                	push   $0x0
545556:	57                   	push   %edi
545557:	e8 34 df fd ff       	call   0x523490
54555c:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
545562:	83 c4 08             	add    $0x8,%esp
545565:	83 a1 98 00 00 00 fc 	andl   $0xfffffffc,0x98(%ecx)
54556c:	eb 06                	jmp    0x545574
54556e:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
545574:	8b 85 94 fe ff ff    	mov    -0x16c(%ebp),%eax
54557a:	85 c0                	test   %eax,%eax
54557c:	0f 85 7c 39 00 00    	jne    0x548efe
545582:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
545588:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
54558e:	83 c6 14             	add    $0x14,%esi
545591:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
545597:	e9 18 d3 ff ff       	jmp    0x5428b4
54559c:	8b 9d 98 fe ff ff    	mov    -0x168(%ebp),%ebx
5455a2:	8b 85 9c fe ff ff    	mov    -0x164(%ebp),%eax
5455a8:	8b 4b 04             	mov    0x4(%ebx),%ecx
5455ab:	8b 40 60             	mov    0x60(%eax),%eax
5455ae:	8b 34 88             	mov    (%eax,%ecx,4),%esi
5455b1:	85 f6                	test   %esi,%esi
5455b3:	74 0c                	je     0x5455c1
5455b5:	8b 46 34             	mov    0x34(%esi),%eax
5455b8:	3b 43 08             	cmp    0x8(%ebx),%eax
5455bb:	0f 84 48 01 00 00    	je     0x545709
5455c1:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
5455c7:	8b 81 98 00 00 00    	mov    0x98(%ecx),%eax
5455cd:	24 03                	and    $0x3,%al
5455cf:	3c 01                	cmp    $0x1,%al
5455d1:	0f 84 c9 38 00 00    	je     0x548ea0
5455d7:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
5455dd:	c7 85 5c fe ff ff 00 	movl   $0x0,-0x1a4(%ebp)
5455e4:	00 00 00
5455e7:	c7 85 88 fe ff ff 00 	movl   $0x0,-0x178(%ebp)
5455ee:	00 00 00
5455f1:	8b 48 08             	mov    0x8(%eax),%ecx
5455f4:	8b 70 0c             	mov    0xc(%eax),%esi
5455f7:	8b c6                	mov    %esi,%eax
5455f9:	c1 e0 04             	shl    $0x4,%eax
5455fc:	03 47 10             	add    0x10(%edi),%eax
5455ff:	89 8d 70 fe ff ff    	mov    %ecx,-0x190(%ebp)
545605:	89 b5 78 fe ff ff    	mov    %esi,-0x188(%ebp)
54560b:	8b 58 04             	mov    0x4(%eax),%ebx
54560e:	89 9d 48 fe ff ff    	mov    %ebx,-0x1b8(%ebp)
545614:	80 fa 61             	cmp    $0x61,%dl
545617:	75 2c                	jne    0x545645
545619:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
54561f:	8b 40 0c             	mov    0xc(%eax),%eax
545622:	0f b7 5a 02          	movzwl 0x2(%edx),%ebx
545626:	8b 95 9c fe ff ff    	mov    -0x164(%ebp),%edx
54562c:	83 e3 08             	and    $0x8,%ebx
54562f:	8a 40 4c             	mov    0x4c(%eax),%al
545632:	83 cb 04             	or     $0x4,%ebx
545635:	3a 82 93 00 00 00    	cmp    0x93(%edx),%al
54563b:	73 0a                	jae    0x545647
54563d:	88 82 93 00 00 00    	mov    %al,0x93(%edx)
545643:	eb 02                	jmp    0x545647
545645:	33 db                	xor    %ebx,%ebx
545647:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
54564d:	f6 40 02 10          	testb  $0x10,0x2(%eax)
545651:	74 23                	je     0x545676
545653:	8d 04 89             	lea    (%ecx,%ecx,4),%eax
545656:	8b 8d 8c fe ff ff    	mov    -0x174(%ebp),%ecx
54565c:	8d 34 c1             	lea    (%ecx,%eax,8),%esi
54565f:	56                   	push   %esi
545660:	e8 7b 60 00 00       	call   0x54b6e0
545665:	8b 06                	mov    (%esi),%eax
545667:	83 c4 04             	add    $0x4,%esp
54566a:	8b b5 78 fe ff ff    	mov    -0x188(%ebp),%esi
545670:	89 85 70 fe ff ff    	mov    %eax,-0x190(%ebp)
545676:	8b 8d 98 fe ff ff    	mov    -0x168(%ebp),%ecx
54567c:	8a 41 01             	mov    0x1(%ecx),%al
54567f:	3c f7                	cmp    $0xf7,%al
545681:	75 0f                	jne    0x545692
545683:	8b 41 10             	mov    0x10(%ecx),%eax
545686:	89 85 88 fe ff ff    	mov    %eax,-0x178(%ebp)
54568c:	0f b7 40 08          	movzwl 0x8(%eax),%eax
545690:	eb 0f                	jmp    0x5456a1
545692:	3c fd                	cmp    $0xfd,%al
545694:	75 05                	jne    0x54569b
545696:	8b 41 10             	mov    0x10(%ecx),%eax
545699:	eb 06                	jmp    0x5456a1
54569b:	8b 85 5c fe ff ff    	mov    -0x1a4(%ebp),%eax
5456a1:	6a 00                	push   $0x0
5456a3:	56                   	push   %esi
5456a4:	50                   	push   %eax
5456a5:	ff 71 04             	push   0x4(%ecx)
5456a8:	ff b5 9c fe ff ff    	push   -0x164(%ebp)
5456ae:	e8 9d d2 fa ff       	call   0x4f2950
5456b3:	8b f0                	mov    %eax,%esi
5456b5:	83 c4 14             	add    $0x14,%esp
5456b8:	85 f6                	test   %esi,%esi
5456ba:	0f 84 14 39 00 00    	je     0x548fd4
5456c0:	ff 76 28             	push   0x28(%esi)
5456c3:	8b 85 70 fe ff ff    	mov    -0x190(%ebp),%eax
5456c9:	ff b5 88 fe ff ff    	push   -0x178(%ebp)
5456cf:	83 4e 08 04          	orl    $0x4,0x8(%esi)
5456d3:	53                   	push   %ebx
5456d4:	50                   	push   %eax
5456d5:	ff b5 48 fe ff ff    	push   -0x1b8(%ebp)
5456db:	c6 46 02 01          	movb   $0x1,0x2(%esi)
5456df:	89 46 34             	mov    %eax,0x34(%esi)
5456e2:	e8 a9 5e fd ff       	call   0x51b590
5456e7:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
5456ed:	83 c4 14             	add    $0x14,%esp
5456f0:	8b 85 88 fe ff ff    	mov    -0x178(%ebp),%eax
5456f6:	89 46 2c             	mov    %eax,0x2c(%esi)
5456f9:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
5456ff:	80 78 01 f7          	cmpb   $0xf7,0x1(%eax)
545703:	0f 95 c0             	setne  %al
545706:	88 46 04             	mov    %al,0x4(%esi)
545709:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
54570f:	8a 48 02             	mov    0x2(%eax),%cl
545712:	8b 46 28             	mov    0x28(%esi),%eax
545715:	80 e1 03             	and    $0x3,%cl
545718:	88 48 03             	mov    %cl,0x3(%eax)
54571b:	8b 85 94 fe ff ff    	mov    -0x16c(%ebp),%eax
545721:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
545727:	85 c0                	test   %eax,%eax
545729:	0f 85 d5 37 00 00    	jne    0x548f04
54572f:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
545735:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
54573b:	83 c6 14             	add    $0x14,%esi
54573e:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
545744:	e9 6b d1 ff ff       	jmp    0x5428b4
545749:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
54574f:	8b b5 9c fe ff ff    	mov    -0x164(%ebp),%esi
545755:	6a 00                	push   $0x0
545757:	6a ff                	push   $0xffffffff
545759:	8b 4a 08             	mov    0x8(%edx),%ecx
54575c:	8b 46 60             	mov    0x60(%esi),%eax
54575f:	8b 1c 88             	mov    (%eax,%ecx,4),%ebx
545762:	0f bf 43 38          	movswl 0x38(%ebx),%eax
545766:	50                   	push   %eax
545767:	ff 72 04             	push   0x4(%edx)
54576a:	56                   	push   %esi
54576b:	e8 e0 d1 fa ff       	call   0x4f2950
545770:	8b f0                	mov    %eax,%esi
545772:	83 c4 14             	add    $0x14,%esp
545775:	85 f6                	test   %esi,%esi
545777:	0f 84 57 38 00 00    	je     0x548fd4
54577d:	83 4e 08 01          	orl    $0x1,0x8(%esi)
545781:	ff 76 28             	push   0x28(%esi)
545784:	8b 56 08             	mov    0x8(%esi),%edx
545787:	c6 46 02 01          	movb   $0x1,0x2(%esi)
54578b:	8b 4b 2c             	mov    0x2c(%ebx),%ecx
54578e:	89 4e 2c             	mov    %ecx,0x2c(%esi)
545791:	8a 43 04             	mov    0x4(%ebx),%al
545794:	88 46 04             	mov    %al,0x4(%esi)
545797:	8b 43 34             	mov    0x34(%ebx),%eax
54579a:	89 46 34             	mov    %eax,0x34(%esi)
54579d:	8b 43 08             	mov    0x8(%ebx),%eax
5457a0:	51                   	push   %ecx
5457a1:	33 c2                	xor    %edx,%eax
5457a3:	83 e0 04             	and    $0x4,%eax
5457a6:	6a 04                	push   $0x4
5457a8:	ff 76 34             	push   0x34(%esi)
5457ab:	33 c2                	xor    %edx,%eax
5457ad:	89 46 08             	mov    %eax,0x8(%esi)
5457b0:	ff 73 0c             	push   0xc(%ebx)
5457b3:	e8 d8 5d fd ff       	call   0x51b590
5457b8:	8b c8                	mov    %eax,%ecx
5457ba:	83 c4 14             	add    $0x14,%esp
5457bd:	89 8d 94 fe ff ff    	mov    %ecx,-0x16c(%ebp)
5457c3:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
5457c9:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
5457cf:	83 c6 14             	add    $0x14,%esi
5457d2:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi