5405da:	8b 55 8c             	mov    -0x74(%ebp),%edx
5405dd:	8b 4d 90             	mov    -0x70(%ebp),%ecx
5405e0:	33 db                	xor    %ebx,%ebx
5405e2:	8b 85 24 ff ff ff    	mov    -0xdc(%ebp),%eax
5405e8:	33 f6                	xor    %esi,%esi
5405ea:	8b f8                	mov    %eax,%edi
5405ec:	66 3b 59 2a          	cmp    0x2a(%ecx),%bx
5405f0:	0f 8d a0 00 00 00    	jge    0x540696
5405f6:	8b 41 04             	mov    0x4(%ecx),%eax
5405f9:	0f b7 44 03 10       	movzwl 0x10(%ebx,%eax,1),%eax
5405fe:	a8 60                	test   $0x60,%al
540600:	74 57                	je     0x540659
540602:	a8 20                	test   $0x20,%al
540604:	8d 47 ff             	lea    -0x1(%edi),%eax
540607:	0f 44 c7             	cmove  %edi,%eax
54060a:	8b f8                	mov    %eax,%edi
54060c:	eb 6e                	jmp    0x54067c
54060e:	8b 4b 6c             	mov    0x6c(%ebx),%ecx
540611:	39 4b 70             	cmp    %ecx,0x70(%ebx)
540614:	7f 14                	jg     0x54062a
540616:	ff 75 80             	push   -0x80(%ebp)
540619:	57                   	push   %edi
54061a:	ff 75 8c             	push   -0x74(%ebp)
54061d:	6a 20                	push   $0x20
54061f:	53                   	push   %ebx
540620:	e8 db 5e fc ff       	call   0x506500
540625:	83 c4 14             	add    $0x14,%esp
540628:	eb b0                	jmp    0x5405da
54062a:	8b 55 8c             	mov    -0x74(%ebp),%edx
54062d:	8d 41 01             	lea    0x1(%ecx),%eax
540630:	8b 75 80             	mov    -0x80(%ebp),%esi
540633:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
540636:	89 43 6c             	mov    %eax,0x6c(%ebx)
540639:	8b 43 68             	mov    0x68(%ebx),%eax
54063c:	c7 04 88 20 00 00 00 	movl   $0x20,(%eax,%ecx,4)
540643:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
540647:	89 7c 88 08          	mov    %edi,0x8(%eax,%ecx,4)
54064b:	89 74 88 0c          	mov    %esi,0xc(%eax,%ecx,4)
54064f:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
540656:	00
540657:	eb 84                	jmp    0x5405dd
540659:	8b 45 84             	mov    -0x7c(%ebp),%eax
54065c:	83 3c b0 00          	cmpl   $0x0,(%eax,%esi,4)
540660:	7d 1a                	jge    0x54067c
540662:	0f bf 41 28          	movswl 0x28(%ecx),%eax
540666:	3b f0                	cmp    %eax,%esi
540668:	74 12                	je     0x54067c
54066a:	57                   	push   %edi
54066b:	56                   	push   %esi
54066c:	52                   	push   %edx
54066d:	51                   	push   %ecx
54066e:	ff 75 98             	push   -0x68(%ebp)
540671:	e8 4a 3a fe ff       	call   0x5240c0
540676:	8b 4d 90             	mov    -0x70(%ebp),%ecx
540679:	83 c4 14             	add    $0x14,%esp
54067c:	0f bf 41 2a          	movswl 0x2a(%ecx),%eax
540680:	46                   	inc    %esi
540681:	8b 55 8c             	mov    -0x74(%ebp),%edx
540684:	83 c3 14             	add    $0x14,%ebx
540687:	47                   	inc    %edi
540688:	3b f0                	cmp    %eax,%esi
54068a:	0f 8c 66 ff ff ff    	jl     0x5405f6
540690:	8b 85 24 ff ff ff    	mov    -0xdc(%ebp),%eax
540696:	f6 41 24 60          	testb  $0x60,0x24(%ecx)
54069a:	8b 75 9c             	mov    -0x64(%ebp),%esi
54069d:	74 13                	je     0x5406b2
54069f:	51                   	push   %ecx
5406a0:	50                   	push   %eax
5406a1:	56                   	push   %esi
5406a2:	e8 19 f5 fd ff       	call   0x51fbc0
5406a7:	83 c4 0c             	add    $0xc,%esp
5406aa:	eb 03                	jmp    0x5406af
5406ac:	8b 75 9c             	mov    -0x64(%ebp),%esi
5406af:	8b 4d 90             	mov    -0x70(%ebp),%ecx
5406b2:	83 bd 04 ff ff ff 00 	cmpl   $0x0,-0xfc(%ebp)
5406b9:	8b 9d 54 ff ff ff    	mov    -0xac(%ebp),%ebx
5406bf:	0f 85 8e 02 00 00    	jne    0x540953
5406c5:	6a 00                	push   $0x0
5406c7:	ff 75 84             	push   -0x7c(%ebp)
5406ca:	8b 7d 8c             	mov    -0x74(%ebp),%edi
5406cd:	8d 45 f8             	lea    -0x8(%ebp),%eax
5406d0:	50                   	push   %eax
5406d1:	53                   	push   %ebx
5406d2:	ff 75 18             	push   0x18(%ebp)
5406d5:	ff b5 38 ff ff ff    	push   -0xc8(%ebp)
5406db:	ff 75 80             	push   -0x80(%ebp)
5406de:	ff b5 5c ff ff ff    	push   -0xa4(%ebp)
5406e4:	ff b5 20 ff ff ff    	push   -0xe0(%ebp)
5406ea:	57                   	push   %edi
5406eb:	ff b5 30 ff ff ff    	push   -0xd0(%ebp)
5406f1:	51                   	push   %ecx
5406f2:	56                   	push   %esi
5406f3:	e8 e8 9d fe ff       	call   0x52a4e0
5406f8:	83 c4 34             	add    $0x34,%esp
5406fb:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
5406ff:	75 0d                	jne    0x54070e
540701:	80 bd 38 ff ff ff 00 	cmpb   $0x0,-0xc8(%ebp)
540708:	0f 84 c3 00 00 00    	je     0x5407d1
54070e:	83 bd 68 ff ff ff 00 	cmpl   $0x0,-0x98(%ebp)
540715:	8b 75 98             	mov    -0x68(%ebp),%esi
540718:	74 71                	je     0x54078b
54071a:	8b 56 6c             	mov    0x6c(%esi),%edx
54071d:	39 56 70             	cmp    %edx,0x70(%esi)
540720:	7f 17                	jg     0x540739
540722:	ff b5 70 ff ff ff    	push   -0x90(%ebp)
540728:	53                   	push   %ebx
540729:	57                   	push   %edi
54072a:	6a 1d                	push   $0x1d
54072c:	56                   	push   %esi
54072d:	e8 ce 5d fc ff       	call   0x506500
540732:	83 c4 14             	add    $0x14,%esp
540735:	8b d0                	mov    %eax,%edx
540737:	eb 33                	jmp    0x54076c
540739:	8b 9d 54 ff ff ff    	mov    -0xac(%ebp),%ebx
54073f:	8d 42 01             	lea    0x1(%edx),%eax
540742:	89 46 6c             	mov    %eax,0x6c(%esi)
540745:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
540748:	8b 46 68             	mov    0x68(%esi),%eax
54074b:	89 7c 88 04          	mov    %edi,0x4(%eax,%ecx,4)
54074f:	8b bd 70 ff ff ff    	mov    -0x90(%ebp),%edi
540755:	c7 04 88 1d 00 00 00 	movl   $0x1d,(%eax,%ecx,4)
54075c:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
540760:	89 7c 88 0c          	mov    %edi,0xc(%eax,%ecx,4)
540764:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
54076b:	00
54076c:	8b 06                	mov    (%esi),%eax
54076e:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
540772:	75 60                	jne    0x5407d4
540774:	8b 46 68             	mov    0x68(%esi),%eax
540777:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
54077a:	8b 95 fc fe ff ff    	mov    -0x104(%ebp),%edx
540780:	c6 44 88 01 fd       	movb   $0xfd,0x1(%eax,%ecx,4)
540785:	89 54 88 10          	mov    %edx,0x10(%eax,%ecx,4)
540789:	eb 49                	jmp    0x5407d4
54078b:	8b 4e 6c             	mov    0x6c(%esi),%ecx
54078e:	39 4e 70             	cmp    %ecx,0x70(%esi)
540791:	7f 12                	jg     0x5407a5
540793:	ff 75 80             	push   -0x80(%ebp)
540796:	53                   	push   %ebx
540797:	57                   	push   %edi
540798:	6a 20                	push   $0x20
54079a:	56                   	push   %esi
54079b:	e8 60 5d fc ff       	call   0x506500
5407a0:	83 c4 14             	add    $0x14,%esp
5407a3:	eb 2f                	jmp    0x5407d4
5407a5:	8b 55 80             	mov    -0x80(%ebp),%edx
5407a8:	8d 41 01             	lea    0x1(%ecx),%eax
5407ab:	89 46 6c             	mov    %eax,0x6c(%esi)
5407ae:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5407b1:	8b 46 68             	mov    0x68(%esi),%eax
5407b4:	c7 04 88 20 00 00 00 	movl   $0x20,(%eax,%ecx,4)
5407bb:	89 7c 88 04          	mov    %edi,0x4(%eax,%ecx,4)
5407bf:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
5407c3:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
5407c7:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
5407ce:	00
5407cf:	eb 06                	jmp    0x5407d7
5407d1:	8b 75 98             	mov    -0x68(%ebp),%esi
5407d4:	8b 55 80             	mov    -0x80(%ebp),%edx
5407d7:	8b bd 74 ff ff ff    	mov    -0x8c(%ebp),%edi
5407dd:	85 ff                	test   %edi,%edi
5407df:	74 1a                	je     0x5407fb
5407e1:	ff b5 f4 fe ff ff    	push   -0x10c(%ebp)
5407e7:	ff 75 84             	push   -0x7c(%ebp)
5407ea:	6a 00                	push   $0x0
5407ec:	52                   	push   %edx
5407ed:	ff 75 90             	push   -0x70(%ebp)
5407f0:	ff 75 9c             	push   -0x64(%ebp)
5407f3:	e8 e8 8c fe ff       	call   0x5294e0
5407f8:	83 c4 18             	add    $0x18,%esp
5407fb:	6a ff                	push   $0xffffffff
5407fd:	ff b5 30 ff ff ff    	push   -0xd0(%ebp)
540803:	ff b5 20 ff ff ff    	push   -0xe0(%ebp)
540809:	ff 75 8c             	push   -0x74(%ebp)
54080c:	ff 75 90             	push   -0x70(%ebp)
54080f:	ff 75 9c             	push   -0x64(%ebp)
540812:	e8 39 c3 fe ff       	call   0x52cb50
540817:	83 c4 18             	add    $0x18,%esp
54081a:	83 bd 18 ff ff ff 00 	cmpl   $0x0,-0xe8(%ebp)
540821:	74 1d                	je     0x540840
540823:	8b 4e 6c             	mov    0x6c(%esi),%ecx
540826:	39 4e 70             	cmp    %ecx,0x70(%esi)
540829:	7f 40                	jg     0x54086b
54082b:	6a 00                	push   $0x0
54082d:	6a 00                	push   $0x0
54082f:	ff 75 8c             	push   -0x74(%ebp)
540832:	68 87 00 00 00       	push   $0x87
540837:	56                   	push   %esi
540838:	e8 c3 5c fc ff       	call   0x506500
54083d:	83 c4 14             	add    $0x14,%esp
540840:	8b 55 8c             	mov    -0x74(%ebp),%edx
540843:	83 ff 01             	cmp    $0x1,%edi
540846:	7f 09                	jg     0x540851
540848:	80 bd 38 ff ff ff 00 	cmpb   $0x0,-0xc8(%ebp)
54084f:	74 7d                	je     0x5408ce
540851:	8b 4e 6c             	mov    0x6c(%esi),%ecx
540854:	39 4e 70             	cmp    %ecx,0x70(%esi)
540857:	7f 46                	jg     0x54089f
540859:	6a 00                	push   $0x0
54085b:	6a 00                	push   $0x0
54085d:	52                   	push   %edx
54085e:	6a 7a                	push   $0x7a
540860:	56                   	push   %esi
540861:	e8 9a 5c fc ff       	call   0x506500
540866:	83 c4 14             	add    $0x14,%esp
540869:	eb 63                	jmp    0x5408ce
54086b:	8b 55 8c             	mov    -0x74(%ebp),%edx
54086e:	8d 41 01             	lea    0x1(%ecx),%eax
540871:	89 46 6c             	mov    %eax,0x6c(%esi)
540874:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
540877:	8b 46 68             	mov    0x68(%esi),%eax
54087a:	c7 04 88 87 00 00 00 	movl   $0x87,(%eax,%ecx,4)
540881:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
540885:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
54088c:	00
54088d:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
540894:	00
540895:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
54089c:	00
54089d:	eb a4                	jmp    0x540843
54089f:	8d 41 01             	lea    0x1(%ecx),%eax
5408a2:	89 46 6c             	mov    %eax,0x6c(%esi)
5408a5:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5408a8:	8b 46 68             	mov    0x68(%esi),%eax
5408ab:	c7 04 88 7a 00 00 00 	movl   $0x7a,(%eax,%ecx,4)
5408b2:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
5408b6:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
5408bd:	00
5408be:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
5408c5:	00
5408c6:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
5408cd:	00
5408ce:	8b 75 90             	mov    -0x70(%ebp),%esi
5408d1:	85 ff                	test   %edi,%edi
5408d3:	74 1d                	je     0x5408f2
5408d5:	ff b5 f4 fe ff ff    	push   -0x10c(%ebp)
5408db:	ff 75 84             	push   -0x7c(%ebp)
5408de:	ff b5 5c ff ff ff    	push   -0xa4(%ebp)
5408e4:	6a 00                	push   $0x0
5408e6:	56                   	push   %esi
5408e7:	ff 75 9c             	push   -0x64(%ebp)
5408ea:	e8 f1 8b fe ff       	call   0x5294e0
5408ef:	83 c4 18             	add    $0x18,%esp
5408f2:	8b bd 58 ff ff ff    	mov    -0xa8(%ebp),%edi
5408f8:	33 c0                	xor    %eax,%eax
5408fa:	6a 00                	push   $0x0
5408fc:	83 ff 02             	cmp    $0x2,%edi
5408ff:	6a 00                	push   $0x0
540901:	0f 94 c0             	sete   %al
540904:	8d 04 45 04 00 00 00 	lea    0x4(,%eax,2),%eax
54090b:	50                   	push   %eax
54090c:	ff b5 30 ff ff ff    	push   -0xd0(%ebp)
540912:	ff b5 5c ff ff ff    	push   -0xa4(%ebp)
540918:	ff b5 20 ff ff ff    	push   -0xe0(%ebp)
54091e:	ff 75 8c             	push   -0x74(%ebp)
540921:	56                   	push   %esi
540922:	ff 75 9c             	push   -0x64(%ebp)
540925:	e8 76 f0 fd ff       	call   0x51f9a0
54092a:	83 c4 24             	add    $0x24,%esp
54092d:	83 bd 74 ff ff ff 00 	cmpl   $0x0,-0x8c(%ebp)
540934:	74 23                	je     0x540959
540936:	ff b5 f4 fe ff ff    	push   -0x10c(%ebp)
54093c:	ff 75 84             	push   -0x7c(%ebp)
54093f:	ff 75 80             	push   -0x80(%ebp)
540942:	ff 75 88             	push   -0x78(%ebp)
540945:	56                   	push   %esi
540946:	ff 75 9c             	push   -0x64(%ebp)
540949:	e8 02 8b fe ff       	call   0x529450
54094e:	83 c4 18             	add    $0x18,%esp
540951:	eb 06                	jmp    0x540959
540953:	8b bd 58 ff ff ff    	mov    -0xa8(%ebp),%edi
540959:	8b 95 e4 fe ff ff    	mov    -0x11c(%ebp),%edx
54095f:	8b 75 98             	mov    -0x68(%ebp),%esi
540962:	85 d2                	test   %edx,%edx
540964:	74 4f                	je     0x5409b5
540966:	8b 4e 6c             	mov    0x6c(%esi),%ecx
540969:	39 4e 70             	cmp    %ecx,0x70(%esi)
54096c:	7f 12                	jg     0x540980
54096e:	6a 00                	push   $0x0
540970:	6a 01                	push   $0x1
540972:	52                   	push   %edx
540973:	6a 52                	push   $0x52
540975:	56                   	push   %esi
540976:	e8 85 5b fc ff       	call   0x506500
54097b:	83 c4 14             	add    $0x14,%esp
54097e:	eb 35                	jmp    0x5409b5
540980:	8b 9d 54 ff ff ff    	mov    -0xac(%ebp),%ebx
540986:	8d 41 01             	lea    0x1(%ecx),%eax
540989:	89 46 6c             	mov    %eax,0x6c(%esi)
54098c:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
54098f:	8b 46 68             	mov    0x68(%esi),%eax
540992:	c7 04 88 52 00 00 00 	movl   $0x52,(%eax,%ecx,4)
540999:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
54099d:	c7 44 88 08 01 00 00 	movl   $0x1,0x8(%eax,%ecx,4)
5409a4:	00
5409a5:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
5409ac:	00
5409ad:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
5409b4:	00
5409b5:	8b 85 6c ff ff ff    	mov    -0x94(%ebp),%eax
5409bb:	85 c0                	test   %eax,%eax
5409bd:	74 57                	je     0x540a16
5409bf:	8b 7d 90             	mov    -0x70(%ebp),%edi
5409c2:	8b 75 9c             	mov    -0x64(%ebp),%esi
5409c5:	80 78 08 7f          	cmpb   $0x7f,0x8(%eax)
5409c9:	75 35                	jne    0x540a00
5409cb:	80 78 09 02          	cmpb   $0x2,0x9(%eax)
5409cf:	75 2f                	jne    0x540a00
5409d1:	ff 75 88             	push   -0x78(%ebp)
5409d4:	ff 70 10             	push   0x10(%eax)
5409d7:	e8 e4 75 fb ff       	call   0x4f7fc0
5409dc:	83 c4 08             	add    $0x8,%esp
5409df:	85 c0                	test   %eax,%eax
5409e1:	74 17                	je     0x5409fa
5409e3:	53                   	push   %ebx
5409e4:	ff 75 18             	push   0x18(%ebp)
5409e7:	ff 75 80             	push   -0x80(%ebp)
5409ea:	57                   	push   %edi
5409eb:	ff b5 6c ff ff ff    	push   -0x94(%ebp)
5409f1:	56                   	push   %esi
5409f2:	e8 59 e4 fd ff       	call   0x51ee50
5409f7:	83 c4 18             	add    $0x18,%esp
5409fa:	8b 85 6c ff ff ff    	mov    -0x94(%ebp),%eax
540a00:	8b 40 20             	mov    0x20(%eax),%eax
540a03:	89 85 6c ff ff ff    	mov    %eax,-0x94(%ebp)
540a09:	85 c0                	test   %eax,%eax
540a0b:	75 b8                	jne    0x5409c5
540a0d:	8b 75 98             	mov    -0x68(%ebp),%esi
540a10:	8b bd 58 ff ff ff    	mov    -0xa8(%ebp),%edi
540a16:	83 ff 01             	cmp    $0x1,%edi
540a19:	0f 84 0e 01 00 00    	je     0x540b2d
540a1f:	83 ff 02             	cmp    $0x2,%edi
540a22:	75 47                	jne    0x540a6b
540a24:	8b 4e 0c             	mov    0xc(%esi),%ecx
540a27:	f7 d3                	not    %ebx
540a29:	8b 41 3c             	mov    0x3c(%ecx),%eax
540a2c:	03 41 38             	add    0x38(%ecx),%eax
540a2f:	79 1e                	jns    0x540a4f
540a31:	53                   	push   %ebx
540a32:	56                   	push   %esi
540a33:	51                   	push   %ecx
540a34:	e8 67 2d fd ff       	call   0x5137a0
540a39:	83 c4 0c             	add    $0xc,%esp
540a3c:	ff b5 14 ff ff ff    	push   -0xec(%ebp)
540a42:	e8 c9 23 01 00       	call   0x552e10
540a47:	83 c4 04             	add    $0x4,%esp
540a4a:	e9 de 00 00 00       	jmp    0x540b2d
540a4f:	8b 49 40             	mov    0x40(%ecx),%ecx
540a52:	8b 46 6c             	mov    0x6c(%esi),%eax
540a55:	ff b5 14 ff ff ff    	push   -0xec(%ebp)