554783:	5e                   	pop    %esi
554784:	5b                   	pop    %ebx
554785:	8b e5                	mov    %ebp,%esp
554787:	5d                   	pop    %ebp
554788:	c3                   	ret
554789:	cc                   	int3
55478a:	cc                   	int3
55478b:	cc                   	int3
55478c:	cc                   	int3
55478d:	cc                   	int3
55478e:	cc                   	int3
55478f:	cc                   	int3
554790:	55                   	push   %ebp
554791:	8b ec                	mov    %esp,%ebp
554793:	83 ec 70             	sub    $0x70,%esp
554796:	8b 45 0c             	mov    0xc(%ebp),%eax
554799:	53                   	push   %ebx
55479a:	8b 5d 08             	mov    0x8(%ebp),%ebx
55479d:	56                   	push   %esi
55479e:	57                   	push   %edi
55479f:	8b 78 44             	mov    0x44(%eax),%edi
5547a2:	8b 73 08             	mov    0x8(%ebx),%esi
5547a5:	89 7d d4             	mov    %edi,-0x2c(%ebp)
5547a8:	8b 4f 0c             	mov    0xc(%edi),%ecx
5547ab:	89 4d ec             	mov    %ecx,-0x14(%ebp)
5547ae:	85 f6                	test   %esi,%esi
5547b0:	75 1f                	jne    0x5547d1
5547b2:	39 73 74             	cmp    %esi,0x74(%ebx)
5547b5:	75 0c                	jne    0x5547c3
5547b7:	8b 03                	mov    (%ebx),%eax
5547b9:	f6 40 4c 08          	testb  $0x8,0x4c(%eax)
5547bd:	75 04                	jne    0x5547c3
5547bf:	c6 43 17 01          	movb   $0x1,0x17(%ebx)
5547c3:	53                   	push   %ebx
5547c4:	e8 47 dc fe ff       	call   0x542410
5547c9:	8b f0                	mov    %eax,%esi
5547cb:	83 c4 04             	add    $0x4,%esp
5547ce:	8b 45 0c             	mov    0xc(%ebp),%eax
5547d1:	8b 40 20             	mov    0x20(%eax),%eax
5547d4:	6a 34                	push   $0x34
5547d6:	6a 00                	push   $0x0
5547d8:	8b 48 34             	mov    0x34(%eax),%ecx
5547db:	8b 40 18             	mov    0x18(%eax),%eax
5547de:	89 4d c8             	mov    %ecx,-0x38(%ebp)
5547e1:	0f bf 40 2a          	movswl 0x2a(%eax),%eax
5547e5:	ff 4b 38             	decl   0x38(%ebx)
5547e8:	89 45 dc             	mov    %eax,-0x24(%ebp)
5547eb:	33 c0                	xor    %eax,%eax
5547ed:	89 45 d0             	mov    %eax,-0x30(%ebp)
5547f0:	89 45 cc             	mov    %eax,-0x34(%ebp)
5547f3:	89 45 f0             	mov    %eax,-0x10(%ebp)
5547f6:	89 45 f8             	mov    %eax,-0x8(%ebp)
5547f9:	89 45 f4             	mov    %eax,-0xc(%ebp)
5547fc:	89 45 0c             	mov    %eax,0xc(%ebp)
5547ff:	89 45 fc             	mov    %eax,-0x4(%ebp)
554802:	8b 43 38             	mov    0x38(%ebx),%eax
554805:	89 45 e8             	mov    %eax,-0x18(%ebp)
554808:	8d 45 90             	lea    -0x70(%ebp),%eax
55480b:	50                   	push   %eax
55480c:	e8 ef f1 08 00       	call   0x5e3a00
554811:	8b 4f 30             	mov    0x30(%edi),%ecx
554814:	83 c4 0c             	add    $0xc,%esp
554817:	8b 45 14             	mov    0x14(%ebp),%eax
55481a:	89 45 a0             	mov    %eax,-0x60(%ebp)
55481d:	8b 45 18             	mov    0x18(%ebp),%eax
554820:	89 45 9c             	mov    %eax,-0x64(%ebp)
554823:	8d 41 01             	lea    0x1(%ecx),%eax
554826:	89 45 18             	mov    %eax,0x18(%ebp)
554829:	8d 41 02             	lea    0x2(%ecx),%eax
55482c:	89 45 ac             	mov    %eax,-0x54(%ebp)
55482f:	8d 41 03             	lea    0x3(%ecx),%eax
554832:	89 45 bc             	mov    %eax,-0x44(%ebp)
554835:	8a 47 11             	mov    0x11(%edi),%al
554838:	89 5d 90             	mov    %ebx,-0x70(%ebp)
55483b:	89 7d 94             	mov    %edi,-0x6c(%ebp)
55483e:	89 75 98             	mov    %esi,-0x68(%ebp)
554841:	89 4d 14             	mov    %ecx,0x14(%ebp)
554844:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
554847:	3c 56                	cmp    $0x56,%al
554849:	74 48                	je     0x554893
55484b:	3c 5a                	cmp    $0x5a,%al
55484d:	74 09                	je     0x554858
55484f:	c7 45 a8 02 00 00 00 	movl   $0x2,-0x58(%ebp)
554856:	eb 5d                	jmp    0x5548b5
554858:	57                   	push   %edi
554859:	e8 a2 22 01 00       	call   0x566b00
55485e:	83 c4 04             	add    $0x4,%esp
554861:	85 c0                	test   %eax,%eax
554863:	75 50                	jne    0x5548b5
554865:	80 7f 12 58          	cmpb   $0x58,0x12(%edi)
554869:	75 1f                	jne    0x55488a
55486b:	80 7f 10 59          	cmpb   $0x59,0x10(%edi)
55486f:	74 44                	je     0x5548b5
554871:	ff 77 1c             	push   0x1c(%edi)
554874:	53                   	push   %ebx
554875:	e8 66 2d 01 00       	call   0x5675e0
55487a:	83 c4 08             	add    $0x8,%esp
55487d:	85 c0                	test   %eax,%eax
55487f:	74 34                	je     0x5548b5
554881:	c7 45 a8 03 00 00 00 	movl   $0x3,-0x58(%ebp)
554888:	eb 2b                	jmp    0x5548b5
55488a:	c7 45 a8 01 00 00 00 	movl   $0x1,-0x58(%ebp)
554891:	eb 22                	jmp    0x5548b5
554893:	80 7f 10 59          	cmpb   $0x59,0x10(%edi)
554897:	74 1c                	je     0x5548b5
554899:	ff 77 18             	push   0x18(%edi)
55489c:	53                   	push   %ebx
55489d:	e8 3e 2d 01 00       	call   0x5675e0
5548a2:	8b 4d a8             	mov    -0x58(%ebp),%ecx
5548a5:	83 c4 08             	add    $0x8,%esp
5548a8:	85 c0                	test   %eax,%eax
5548aa:	b8 01 00 00 00       	mov    $0x1,%eax
5548af:	0f 45 c8             	cmovne %eax,%ecx
5548b2:	89 4d a8             	mov    %ecx,-0x58(%ebp)
5548b5:	8b 43 2c             	mov    0x2c(%ebx),%eax
5548b8:	8b 4d dc             	mov    -0x24(%ebp),%ecx
5548bb:	41                   	inc    %ecx
5548bc:	8d 50 01             	lea    0x1(%eax),%edx
5548bf:	03 c1                	add    %ecx,%eax
5548c1:	89 45 d8             	mov    %eax,-0x28(%ebp)
5548c4:	89 55 e0             	mov    %edx,-0x20(%ebp)
5548c7:	8d 48 01             	lea    0x1(%eax),%ecx
5548ca:	89 4b 2c             	mov    %ecx,0x2c(%ebx)
5548cd:	8a 47 11             	mov    0x11(%edi),%al
5548d0:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
5548d3:	3c 58                	cmp    $0x58,%al
5548d5:	74 04                	je     0x5548db
5548d7:	3c 56                	cmp    $0x56,%al
5548d9:	75 09                	jne    0x5548e4
5548db:	8d 41 01             	lea    0x1(%ecx),%eax
5548de:	89 45 0c             	mov    %eax,0xc(%ebp)
5548e1:	89 43 2c             	mov    %eax,0x2c(%ebx)
5548e4:	8a 47 12             	mov    0x12(%edi),%al
5548e7:	3c 58                	cmp    $0x58,%al
5548e9:	74 04                	je     0x5548ef
5548eb:	3c 56                	cmp    $0x56,%al
5548ed:	75 09                	jne    0x5548f8
5548ef:	ff 43 2c             	incl   0x2c(%ebx)
5548f2:	8b 43 2c             	mov    0x2c(%ebx),%eax
5548f5:	89 45 fc             	mov    %eax,-0x4(%ebp)
5548f8:	80 7f 10 4c          	cmpb   $0x4c,0x10(%edi)
5548fc:	74 50                	je     0x55494e
5548fe:	8b 45 ec             	mov    -0x14(%ebp),%eax
554901:	85 c0                	test   %eax,%eax
554903:	74 04                	je     0x554909
554905:	8b 08                	mov    (%eax),%ecx
554907:	eb 02                	jmp    0x55490b
554909:	33 c9                	xor    %ecx,%ecx
55490b:	8b 47 4c             	mov    0x4c(%edi),%eax
55490e:	03 c2                	add    %edx,%eax
554910:	89 45 f0             	mov    %eax,-0x10(%ebp)
554913:	8b 47 08             	mov    0x8(%edi),%eax
554916:	85 c0                	test   %eax,%eax
554918:	74 0b                	je     0x554925
55491a:	8b 7d f0             	mov    -0x10(%ebp),%edi
55491d:	03 38                	add    (%eax),%edi
55491f:	89 7d f0             	mov    %edi,-0x10(%ebp)
554922:	8b 7d d4             	mov    -0x2c(%ebp),%edi
554925:	8b 43 2c             	mov    0x2c(%ebx),%eax
554928:	8d 50 01             	lea    0x1(%eax),%edx
55492b:	03 c1                	add    %ecx,%eax
55492d:	89 55 f8             	mov    %edx,-0x8(%ebp)
554930:	8d 50 01             	lea    0x1(%eax),%edx
554933:	03 c1                	add    %ecx,%eax
554935:	89 55 b0             	mov    %edx,-0x50(%ebp)
554938:	8d 50 01             	lea    0x1(%eax),%edx
55493b:	03 c1                	add    %ecx,%eax
55493d:	89 55 b8             	mov    %edx,-0x48(%ebp)
554940:	8d 50 01             	lea    0x1(%eax),%edx
554943:	03 c1                	add    %ecx,%eax
554945:	89 55 c0             	mov    %edx,-0x40(%ebp)
554948:	8b 55 e0             	mov    -0x20(%ebp),%edx
55494b:	89 43 2c             	mov    %eax,0x2c(%ebx)
55494e:	8b 45 dc             	mov    -0x24(%ebp),%eax
554951:	33 db                	xor    %ebx,%ebx
554953:	85 c0                	test   %eax,%eax
554955:	7e 62                	jle    0x5549b9
554957:	8b 7d e0             	mov    -0x20(%ebp),%edi
55495a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
554960:	8b 4e 6c             	mov    0x6c(%esi),%ecx
554963:	39 4e 70             	cmp    %ecx,0x70(%esi)
554966:	7f 15                	jg     0x55497d
554968:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
55496b:	50                   	push   %eax
55496c:	53                   	push   %ebx
55496d:	ff 75 c8             	push   -0x38(%ebp)
554970:	6a 59                	push   $0x59
554972:	56                   	push   %esi
554973:	e8 88 1b fb ff       	call   0x506500
554978:	83 c4 14             	add    $0x14,%esp
55497b:	eb 2e                	jmp    0x5549ab
55497d:	8d 41 01             	lea    0x1(%ecx),%eax
554980:	89 46 6c             	mov    %eax,0x6c(%esi)
554983:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
554986:	8b 46 68             	mov    0x68(%esi),%eax
554989:	c7 04 88 59 00 00 00 	movl   $0x59,(%eax,%ecx,4)
554990:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
554994:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
55499b:	00
55499c:	8d 0c 88             	lea    (%eax,%ecx,4),%ecx
55499f:	8b 45 c8             	mov    -0x38(%ebp),%eax
5549a2:	89 41 04             	mov    %eax,0x4(%ecx)
5549a5:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
5549a8:	89 41 0c             	mov    %eax,0xc(%ecx)
5549ab:	8b 45 dc             	mov    -0x24(%ebp),%eax
5549ae:	43                   	inc    %ebx
5549af:	3b d8                	cmp    %eax,%ebx
5549b1:	7c ad                	jl     0x554960
5549b3:	8b 7d d4             	mov    -0x2c(%ebp),%edi
5549b6:	8b 55 e0             	mov    -0x20(%ebp),%edx
5549b9:	8b 4e 6c             	mov    0x6c(%esi),%ecx
5549bc:	39 4e 70             	cmp    %ecx,0x70(%esi)
5549bf:	7f 15                	jg     0x5549d6
5549c1:	ff 75 d8             	push   -0x28(%ebp)
5549c4:	50                   	push   %eax
5549c5:	52                   	push   %edx
5549c6:	6a 5b                	push   $0x5b
5549c8:	56                   	push   %esi
5549c9:	e8 32 1b fb ff       	call   0x506500
5549ce:	8b 55 e0             	mov    -0x20(%ebp),%edx
5549d1:	83 c4 14             	add    $0x14,%esp
5549d4:	eb 2d                	jmp    0x554a03
5549d6:	8b 5d dc             	mov    -0x24(%ebp),%ebx
5549d9:	8d 41 01             	lea    0x1(%ecx),%eax
5549dc:	89 46 6c             	mov    %eax,0x6c(%esi)
5549df:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5549e2:	8b 46 68             	mov    0x68(%esi),%eax
5549e5:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
5549e9:	8b 5d d8             	mov    -0x28(%ebp),%ebx
5549ec:	c7 04 88 5b 00 00 00 	movl   $0x5b,(%eax,%ecx,4)
5549f3:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
5549f7:	89 5c 88 0c          	mov    %ebx,0xc(%eax,%ecx,4)
5549fb:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
554a02:	00
554a03:	8b 47 08             	mov    0x8(%edi),%eax
554a06:	8b 5d 08             	mov    0x8(%ebp),%ebx
554a09:	85 c0                	test   %eax,%eax
554a0b:	0f 84 a4 01 00 00    	je     0x554bb5
554a11:	8b 08                	mov    (%eax),%ecx
554a13:	6a 00                	push   $0x0
554a15:	89 4d e0             	mov    %ecx,-0x20(%ebp)
554a18:	8b 4f 4c             	mov    0x4c(%edi),%ecx
554a1b:	6a 00                	push   $0x0
554a1d:	50                   	push   %eax
554a1e:	03 ca                	add    %edx,%ecx
554a20:	53                   	push   %ebx
554a21:	89 4d dc             	mov    %ecx,-0x24(%ebp)
554a24:	e8 47 b2 fd ff       	call   0x52fc70
554a29:	ff 43 2c             	incl   0x2c(%ebx)
554a2c:	83 c4 10             	add    $0x10,%esp
554a2f:	8b 56 6c             	mov    0x6c(%esi),%edx
554a32:	89 45 c8             	mov    %eax,-0x38(%ebp)
554a35:	8b 43 2c             	mov    0x2c(%ebx),%eax
554a38:	89 45 f4             	mov    %eax,-0xc(%ebp)
554a3b:	8b 47 44             	mov    0x44(%edi),%eax
554a3e:	89 45 c4             	mov    %eax,-0x3c(%ebp)
554a41:	89 55 d0             	mov    %edx,-0x30(%ebp)
554a44:	39 56 70             	cmp    %edx,0x70(%esi)
554a47:	7f 18                	jg     0x554a61
554a49:	8b 55 e0             	mov    -0x20(%ebp),%edx
554a4c:	52                   	push   %edx
554a4d:	50                   	push   %eax
554a4e:	ff 75 dc             	push   -0x24(%ebp)
554a51:	6a 56                	push   $0x56
554a53:	56                   	push   %esi
554a54:	e8 a7 1a fb ff       	call   0x506500
554a59:	83 c4 14             	add    $0x14,%esp
554a5c:	89 45 d0             	mov    %eax,-0x30(%ebp)
554a5f:	eb 30                	jmp    0x554a91
554a61:	8d 42 01             	lea    0x1(%edx),%eax
554a64:	89 46 6c             	mov    %eax,0x6c(%esi)
554a67:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
554a6a:	8b 46 68             	mov    0x68(%esi),%eax
554a6d:	8b 55 dc             	mov    -0x24(%ebp),%edx
554a70:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
554a74:	8b 55 c4             	mov    -0x3c(%ebp),%edx
554a77:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
554a7b:	8b 55 e0             	mov    -0x20(%ebp),%edx
554a7e:	c7 04 88 56 00 00 00 	movl   $0x56,(%eax,%ecx,4)
554a85:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
554a89:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
554a90:	00
554a91:	8b 06                	mov    (%esi),%eax
554a93:	8b 55 c8             	mov    -0x38(%ebp),%edx
554a96:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
554a9a:	74 0e                	je     0x554aaa
554a9c:	52                   	push   %edx
554a9d:	6a f7                	push   $0xfffffff7
554a9f:	50                   	push   %eax
554aa0:	e8 0b f2 fa ff       	call   0x503cb0
554aa5:	83 c4 0c             	add    $0xc,%esp
554aa8:	eb 12                	jmp    0x554abc
554aaa:	8b 46 6c             	mov    0x6c(%esi),%eax
554aad:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
554ab0:	8b 46 68             	mov    0x68(%esi),%eax
554ab3:	c6 44 88 ed f7       	movb   $0xf7,-0x13(%eax,%ecx,4)
554ab8:	89 54 88 fc          	mov    %edx,-0x4(%eax,%ecx,4)
554abc:	8b 45 d0             	mov    -0x30(%ebp),%eax
554abf:	8b 4e 6c             	mov    0x6c(%esi),%ecx
554ac2:	8d 50 02             	lea    0x2(%eax),%edx
554ac5:	83 c0 04             	add    $0x4,%eax
554ac8:	89 45 c4             	mov    %eax,-0x3c(%ebp)
554acb:	39 4e 70             	cmp    %ecx,0x70(%esi)
554ace:	7f 10                	jg     0x554ae0
554ad0:	52                   	push   %edx
554ad1:	50                   	push   %eax
554ad2:	52                   	push   %edx
554ad3:	6a 10                	push   $0x10
554ad5:	56                   	push   %esi
554ad6:	e8 25 1a fb ff       	call   0x506500
554adb:	83 c4 14             	add    $0x14,%esp
554ade:	eb 2d                	jmp    0x554b0d
554ae0:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
554ae3:	8d 41 01             	lea    0x1(%ecx),%eax
554ae6:	89 46 6c             	mov    %eax,0x6c(%esi)
554ae9:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
554aec:	8b 46 68             	mov    0x68(%esi),%eax
554aef:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
554af3:	8b 5d 08             	mov    0x8(%ebp),%ebx
554af6:	c7 04 88 10 00 00 00 	movl   $0x10,(%eax,%ecx,4)
554afd:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
554b01:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
554b05:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
554b0c:	00
554b0d:	8b 4e 6c             	mov    0x6c(%esi),%ecx
554b10:	89 4d d0             	mov    %ecx,-0x30(%ebp)
554b13:	39 4e 70             	cmp    %ecx,0x70(%esi)
554b16:	7f 17                	jg     0x554b2f
554b18:	6a 00                	push   $0x0
554b1a:	6a 00                	push   $0x0
554b1c:	ff 75 f4             	push   -0xc(%ebp)
554b1f:	6a 0c                	push   $0xc
554b21:	56                   	push   %esi
554b22:	e8 d9 19 fb ff       	call   0x506500
554b27:	83 c4 14             	add    $0x14,%esp
554b2a:	89 45 d0             	mov    %eax,-0x30(%ebp)
554b2d:	eb 32                	jmp    0x554b61
554b2f:	8b 55 f4             	mov    -0xc(%ebp),%edx
554b32:	8d 41 01             	lea    0x1(%ecx),%eax
554b35:	89 46 6c             	mov    %eax,0x6c(%esi)
554b38:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
554b3b:	8b 46 68             	mov    0x68(%esi),%eax
554b3e:	c7 04 88 0c 00 00 00 	movl   $0xc,(%eax,%ecx,4)
554b45:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
554b49:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
554b50:	00
554b51:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
554b58:	00
554b59:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
554b60:	00