53636a:	33 ff                	xor    %edi,%edi
53636c:	ff 48 38             	decl   0x38(%eax)
53636f:	8b 58 38             	mov    0x38(%eax),%ebx
536372:	8b 45 c0             	mov    -0x40(%ebp),%eax
536375:	66 3b 48 32          	cmp    0x32(%eax),%cx
536379:	73 41                	jae    0x5363bc
53637b:	eb 06                	jmp    0x536383
53637d:	0f 1f 00             	nopl   (%eax)
536380:	8b 45 c0             	mov    -0x40(%ebp),%eax
536383:	8b 40 04             	mov    0x4(%eax),%eax
536386:	0f bf 04 78          	movswl (%eax,%edi,2),%eax
53638a:	85 c0                	test   %eax,%eax
53638c:	78 10                	js     0x53639e
53638e:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
536391:	8b 45 ac             	mov    -0x54(%ebp),%eax
536394:	8b 40 04             	mov    0x4(%eax),%eax
536397:	80 7c 88 0c 00       	cmpb   $0x0,0xc(%eax,%ecx,4)
53639c:	75 12                	jne    0x5363b0
53639e:	8b 45 b4             	mov    -0x4c(%ebp),%eax
5363a1:	53                   	push   %ebx
5363a2:	03 c7                	add    %edi,%eax
5363a4:	50                   	push   %eax
5363a5:	6a 32                	push   $0x32
5363a7:	56                   	push   %esi
5363a8:	e8 33 b7 00 00       	call   0x541ae0
5363ad:	83 c4 10             	add    $0x10,%esp
5363b0:	8b 45 c0             	mov    -0x40(%ebp),%eax
5363b3:	47                   	inc    %edi
5363b4:	0f b7 40 32          	movzwl 0x32(%eax),%eax
5363b8:	3b f8                	cmp    %eax,%edi
5363ba:	7c c4                	jl     0x536380
5363bc:	ff 75 b0             	push   -0x50(%ebp)
5363bf:	6a 05                	push   $0x5
5363c1:	56                   	push   %esi
5363c2:	e8 b9 b6 00 00       	call   0x541a80
5363c7:	53                   	push   %ebx
5363c8:	56                   	push   %esi
5363c9:	8b f8                	mov    %eax,%edi
5363cb:	e8 d0 3c 01 00       	call   0x54a0a0
5363d0:	8b 56 6c             	mov    0x6c(%esi),%edx
5363d3:	83 c4 14             	add    $0x14,%esp
5363d6:	85 ff                	test   %edi,%edi
5363d8:	79 03                	jns    0x5363dd
5363da:	8d 7a ff             	lea    -0x1(%edx),%edi
5363dd:	8b 06                	mov    (%esi),%eax
5363df:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
5363e3:	74 07                	je     0x5363ec
5363e5:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
5363ea:	eb 09                	jmp    0x5363f5
5363ec:	8b 46 68             	mov    0x68(%esi),%eax
5363ef:	8d 0c bf             	lea    (%edi,%edi,4),%ecx
5363f2:	8d 04 88             	lea    (%eax,%ecx,4),%eax
5363f5:	89 50 08             	mov    %edx,0x8(%eax)
5363f8:	8b 45 c0             	mov    -0x40(%ebp),%eax
5363fb:	0f b7 40 32          	movzwl 0x32(%eax),%eax
5363ff:	50                   	push   %eax
536400:	ff 75 b4             	push   -0x4c(%ebp)
536403:	53                   	push   %ebx
536404:	ff 75 b0             	push   -0x50(%ebp)
536407:	6a 27                	push   $0x27
536409:	56                   	push   %esi
53640a:	e8 01 b8 00 00       	call   0x541c10
53640f:	8b 56 6c             	mov    0x6c(%esi),%edx
536412:	83 c4 18             	add    $0x18,%esp
536415:	39 56 70             	cmp    %edx,0x70(%esi)
536418:	7f 15                	jg     0x53642f
53641a:	6a 00                	push   $0x0
53641c:	6a 03                	push   $0x3
53641e:	6a 00                	push   $0x0
536420:	6a 73                	push   $0x73
536422:	56                   	push   %esi
536423:	e8 d8 00 fd ff       	call   0x506500
536428:	83 c4 14             	add    $0x14,%esp
53642b:	8b d0                	mov    %eax,%edx
53642d:	eb 33                	jmp    0x536462
53642f:	8d 42 01             	lea    0x1(%edx),%eax
536432:	89 46 6c             	mov    %eax,0x6c(%esi)
536435:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
536438:	8b 46 68             	mov    0x68(%esi),%eax
53643b:	c7 04 88 73 00 00 00 	movl   $0x73,(%eax,%ecx,4)
536442:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
536449:	00
53644a:	c7 44 88 08 03 00 00 	movl   $0x3,0x8(%eax,%ecx,4)
536451:	00
536452:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
536459:	00
53645a:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
536461:	00
536462:	8b 06                	mov    (%esi),%eax
536464:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
536468:	74 12                	je     0x53647c
53646a:	68 60 ac 6b 00       	push   $0x6bac60
53646f:	6a 00                	push   $0x0
536471:	50                   	push   %eax
536472:	e8 39 d8 fc ff       	call   0x503cb0
536477:	83 c4 0c             	add    $0xc,%esp
53647a:	eb 22                	jmp    0x53649e
53647c:	85 d2                	test   %edx,%edx
53647e:	79 04                	jns    0x536484
536480:	8b 56 6c             	mov    0x6c(%esi),%edx
536483:	4a                   	dec    %edx
536484:	8b 46 68             	mov    0x68(%esi),%eax
536487:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
53648a:	6a 00                	push   $0x0
53648c:	68 60 ac 6b 00       	push   $0x6bac60
536491:	8d 04 88             	lea    (%eax,%ecx,4),%eax
536494:	50                   	push   %eax
536495:	56                   	push   %esi
536496:	e8 a5 37 02 00       	call   0x559c40
53649b:	83 c4 10             	add    $0x10,%esp
53649e:	ff 75 90             	push   -0x70(%ebp)
5364a1:	56                   	push   %esi
5364a2:	e8 f9 3b 01 00       	call   0x54a0a0
5364a7:	8b 4e 0c             	mov    0xc(%esi),%ecx
5364aa:	83 c4 08             	add    $0x8,%esp
5364ad:	f7 d3                	not    %ebx
5364af:	8b 41 3c             	mov    0x3c(%ecx),%eax
5364b2:	03 41 38             	add    0x38(%ecx),%eax
5364b5:	79 0d                	jns    0x5364c4
5364b7:	53                   	push   %ebx
5364b8:	56                   	push   %esi
5364b9:	51                   	push   %ecx
5364ba:	e8 e1 d2 fd ff       	call   0x5137a0
5364bf:	83 c4 0c             	add    $0xc,%esp
5364c2:	eb 09                	jmp    0x5364cd
5364c4:	8b 49 40             	mov    0x40(%ecx),%ecx
5364c7:	8b 46 6c             	mov    0x6c(%esi),%eax
5364ca:	89 04 99             	mov    %eax,(%ecx,%ebx,4)
5364cd:	8b 5d c0             	mov    -0x40(%ebp),%ebx
5364d0:	8b 4d 8c             	mov    -0x74(%ebp),%ecx
5364d3:	8b 56 6c             	mov    0x6c(%esi),%edx
5364d6:	85 c9                	test   %ecx,%ecx
5364d8:	79 03                	jns    0x5364dd
5364da:	8d 4a ff             	lea    -0x1(%edx),%ecx
5364dd:	8b 06                	mov    (%esi),%eax
5364df:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
5364e3:	74 07                	je     0x5364ec
5364e5:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
5364ea:	eb 09                	jmp    0x5364f5
5364ec:	8b 46 68             	mov    0x68(%esi),%eax
5364ef:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5364f2:	8d 04 88             	lea    (%eax,%ecx,4),%eax
5364f5:	89 50 08             	mov    %edx,0x8(%eax)
5364f8:	8b 55 88             	mov    -0x78(%ebp),%edx
5364fb:	8b 45 d4             	mov    -0x2c(%ebp),%eax
5364fe:	85 d2                	test   %edx,%edx
536500:	74 29                	je     0x53652b
536502:	8b 78 08             	mov    0x8(%eax),%edi
536505:	f7 d2                	not    %edx
536507:	8b 4f 0c             	mov    0xc(%edi),%ecx
53650a:	8b 41 3c             	mov    0x3c(%ecx),%eax
53650d:	03 41 38             	add    0x38(%ecx),%eax
536510:	79 0d                	jns    0x53651f
536512:	52                   	push   %edx
536513:	57                   	push   %edi
536514:	51                   	push   %ecx
536515:	e8 86 d2 fd ff       	call   0x5137a0
53651a:	83 c4 0c             	add    $0xc,%esp
53651d:	eb 09                	jmp    0x536528
53651f:	8b 49 40             	mov    0x40(%ecx),%ecx
536522:	8b 47 6c             	mov    0x6c(%edi),%eax
536525:	89 04 91             	mov    %eax,(%ecx,%edx,4)
536528:	8b 45 d4             	mov    -0x2c(%ebp),%eax
53652b:	8b 4d bc             	mov    -0x44(%ebp),%ecx
53652e:	8b 5b 14             	mov    0x14(%ebx),%ebx
536531:	ff 45 b0             	incl   -0x50(%ebp)
536534:	89 5d c0             	mov    %ebx,-0x40(%ebp)
536537:	85 db                	test   %ebx,%ebx
536539:	0f 85 31 fc ff ff    	jne    0x536170
53653f:	8a 5d ab             	mov    -0x55(%ebp),%bl
536542:	8b 7d e4             	mov    -0x1c(%ebp),%edi
536545:	57                   	push   %edi
536546:	ff 75 cc             	push   -0x34(%ebp)
536549:	6a 05                	push   $0x5
53654b:	56                   	push   %esi
53654c:	e8 8f b5 00 00       	call   0x541ae0
536551:	8b 56 6c             	mov    0x6c(%esi),%edx
536554:	8d 4f ff             	lea    -0x1(%edi),%ecx
536557:	83 c4 10             	add    $0x10,%esp
53655a:	85 c9                	test   %ecx,%ecx
53655c:	79 03                	jns    0x536561
53655e:	8d 4a ff             	lea    -0x1(%edx),%ecx
536561:	8b 06                	mov    (%esi),%eax
536563:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
536567:	74 07                	je     0x536570
536569:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
53656e:	eb 09                	jmp    0x536579
536570:	8b 46 68             	mov    0x68(%esi),%eax
536573:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
536576:	8d 04 88             	lea    (%eax,%ecx,4),%eax
536579:	89 50 08             	mov    %edx,0x8(%eax)
53657c:	80 fb 71             	cmp    $0x71,%bl
53657f:	0f 84 18 02 00 00    	je     0x53679d
536585:	8b 56 6c             	mov    0x6c(%esi),%edx
536588:	39 56 70             	cmp    %edx,0x70(%esi)
53658b:	7f 15                	jg     0x5365a2
53658d:	6a 00                	push   $0x0
53658f:	6a 02                	push   $0x2
536591:	6a 00                	push   $0x0
536593:	6a 73                	push   $0x73
536595:	56                   	push   %esi
536596:	e8 65 ff fc ff       	call   0x506500
53659b:	83 c4 14             	add    $0x14,%esp
53659e:	8b d0                	mov    %eax,%edx
5365a0:	eb 33                	jmp    0x5365d5
5365a2:	8d 42 01             	lea    0x1(%edx),%eax
5365a5:	89 46 6c             	mov    %eax,0x6c(%esi)
5365a8:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
5365ab:	8b 46 68             	mov    0x68(%esi),%eax
5365ae:	c7 04 88 73 00 00 00 	movl   $0x73,(%eax,%ecx,4)
5365b5:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
5365bc:	00
5365bd:	c7 44 88 08 02 00 00 	movl   $0x2,0x8(%eax,%ecx,4)
5365c4:	00
5365c5:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
5365cc:	00
5365cd:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
5365d4:	00
5365d5:	8b 06                	mov    (%esi),%eax
5365d7:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
5365db:	74 12                	je     0x5365ef
5365dd:	68 7c ac 6b 00       	push   $0x6bac7c
5365e2:	6a 00                	push   $0x0
5365e4:	50                   	push   %eax
5365e5:	e8 c6 d6 fc ff       	call   0x503cb0
5365ea:	83 c4 0c             	add    $0xc,%esp
5365ed:	eb 22                	jmp    0x536611
5365ef:	85 d2                	test   %edx,%edx
5365f1:	79 04                	jns    0x5365f7
5365f3:	8b 56 6c             	mov    0x6c(%esi),%edx
5365f6:	4a                   	dec    %edx
5365f7:	8b 46 68             	mov    0x68(%esi),%eax
5365fa:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
5365fd:	6a 00                	push   $0x0
5365ff:	68 7c ac 6b 00       	push   $0x6bac7c
536604:	8d 04 88             	lea    (%eax,%ecx,4),%eax
536607:	50                   	push   %eax
536608:	56                   	push   %esi
536609:	e8 32 36 02 00       	call   0x559c40
53660e:	83 c4 10             	add    $0x10,%esp
536611:	8b 45 ac             	mov    -0x54(%ebp),%eax
536614:	8b 40 08             	mov    0x8(%eax),%eax
536617:	89 45 b4             	mov    %eax,-0x4c(%ebp)
53661a:	85 c0                	test   %eax,%eax
53661c:	0f 84 7b 01 00 00    	je     0x53679d
536622:	8b 4d bc             	mov    -0x44(%ebp),%ecx
536625:	bb 08 00 00 00       	mov    $0x8,%ebx
53662a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
536630:	3b c8                	cmp    %eax,%ecx
536632:	0f 84 56 01 00 00    	je     0x53678e
536638:	8b 4e 6c             	mov    0x6c(%esi),%ecx
53663b:	39 4e 70             	cmp    %ecx,0x70(%esi)
53663e:	7f 1a                	jg     0x53665a
536640:	8b 45 9c             	mov    -0x64(%ebp),%eax
536643:	6a 00                	push   $0x0
536645:	83 c0 f8             	add    $0xfffffff8,%eax
536648:	6a 03                	push   $0x3
53664a:	03 c3                	add    %ebx,%eax
53664c:	50                   	push   %eax
53664d:	6a 5c                	push   $0x5c
53664f:	56                   	push   %esi
536650:	e8 ab fe fc ff       	call   0x506500
536655:	83 c4 14             	add    $0x14,%esp
536658:	eb 38                	jmp    0x536692
53665a:	8d 41 01             	lea    0x1(%ecx),%eax
53665d:	89 46 6c             	mov    %eax,0x6c(%esi)
536660:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
536663:	8b 46 68             	mov    0x68(%esi),%eax
536666:	c7 04 88 5c 00 00 00 	movl   $0x5c,(%eax,%ecx,4)
53666d:	c7 44 88 08 03 00 00 	movl   $0x3,0x8(%eax,%ecx,4)
536674:	00
536675:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
53667c:	00
53667d:	8d 0c 88             	lea    (%eax,%ecx,4),%ecx
536680:	8b 45 9c             	mov    -0x64(%ebp),%eax
536683:	83 c0 f8             	add    $0xfffffff8,%eax
536686:	c7 41 10 00 00 00 00 	movl   $0x0,0x10(%ecx)
53668d:	03 c3                	add    %ebx,%eax
53668f:	89 41 04             	mov    %eax,0x4(%ecx)
536692:	8b 7e 6c             	mov    0x6c(%esi),%edi
536695:	39 7e 70             	cmp    %edi,0x70(%esi)
536698:	7f 14                	jg     0x5366ae
53669a:	6a 03                	push   $0x3
53669c:	6a 00                	push   $0x0
53669e:	53                   	push   %ebx
53669f:	6a 35                	push   $0x35
5366a1:	56                   	push   %esi
5366a2:	e8 59 fe fc ff       	call   0x506500
5366a7:	83 c4 14             	add    $0x14,%esp
5366aa:	8b f8                	mov    %eax,%edi
5366ac:	eb 2f                	jmp    0x5366dd
5366ae:	8d 47 01             	lea    0x1(%edi),%eax
5366b1:	89 46 6c             	mov    %eax,0x6c(%esi)
5366b4:	8d 0c bf             	lea    (%edi,%edi,4),%ecx
5366b7:	8b 46 68             	mov    0x68(%esi),%eax
5366ba:	c7 04 88 35 00 00 00 	movl   $0x35,(%eax,%ecx,4)
5366c1:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
5366c5:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
5366cc:	00
5366cd:	c7 44 88 0c 03 00 00 	movl   $0x3,0xc(%eax,%ecx,4)
5366d4:	00
5366d5:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
5366dc:	00
5366dd:	8b 46 6c             	mov    0x6c(%esi),%eax
5366e0:	85 c0                	test   %eax,%eax
5366e2:	7e 10                	jle    0x5366f4
5366e4:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
5366e7:	ba 90 00 00 00       	mov    $0x90,%edx
5366ec:	8b 46 68             	mov    0x68(%esi),%eax
5366ef:	66 89 54 88 ee       	mov    %dx,-0x12(%eax,%ecx,4)
5366f4:	8b 45 b4             	mov    -0x4c(%ebp),%eax
5366f7:	6a 00                	push   $0x0
5366f9:	ff 30                	push   (%eax)
5366fb:	6a 00                	push   $0x0
5366fd:	6a 04                	push   $0x4
5366ff:	6a 00                	push   $0x0
536701:	6a 73                	push   $0x73
536703:	56                   	push   %esi
536704:	e8 87 b4 00 00       	call   0x541b90
536709:	8b 4e 6c             	mov    0x6c(%esi),%ecx
53670c:	83 c4 1c             	add    $0x1c,%esp
53670f:	39 4e 70             	cmp    %ecx,0x70(%esi)
536712:	7f 13                	jg     0x536727
536714:	6a 03                	push   $0x3
536716:	6a 02                	push   $0x2
536718:	6a 04                	push   $0x4
53671a:	6a 6e                	push   $0x6e
53671c:	56                   	push   %esi
53671d:	e8 de fd fc ff       	call   0x506500
536722:	83 c4 14             	add    $0x14,%esp
536725:	eb 33                	jmp    0x53675a
536727:	8d 41 01             	lea    0x1(%ecx),%eax
53672a:	89 46 6c             	mov    %eax,0x6c(%esi)
53672d:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
536730:	8b 46 68             	mov    0x68(%esi),%eax
536733:	c7 04 88 6e 00 00 00 	movl   $0x6e,(%eax,%ecx,4)
53673a:	c7 44 88 04 04 00 00 	movl   $0x4,0x4(%eax,%ecx,4)
536741:	00
536742:	c7 44 88 08 02 00 00 	movl   $0x2,0x8(%eax,%ecx,4)
536749:	00
53674a:	c7 44 88 0c 03 00 00 	movl   $0x3,0xc(%eax,%ecx,4)
536751:	00
536752:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
536759:	00
53675a:	56                   	push   %esi
53675b:	e8 90 0b fd ff       	call   0x5072f0
536760:	8b 56 6c             	mov    0x6c(%esi),%edx
536763:	83 c4 04             	add    $0x4,%esp
536766:	85 ff                	test   %edi,%edi
536768:	79 03                	jns    0x53676d