55670e:	5b                   	pop    %ebx
55670f:	59                   	pop    %ecx
556710:	c3                   	ret
556711:	ff 74 24 18          	push   0x18(%esp)
556715:	e8 f6 23 fa ff       	call   0x4f8b10
55671a:	8b 44 24 14          	mov    0x14(%esp),%eax
55671e:	83 c4 04             	add    $0x4,%esp
556721:	85 ff                	test   %edi,%edi
556723:	79 e6                	jns    0x55670b
556725:	85 c0                	test   %eax,%eax
556727:	0f 4f f8             	cmovg  %eax,%edi
55672a:	8b c7                	mov    %edi,%eax
55672c:	5f                   	pop    %edi
55672d:	5e                   	pop    %esi
55672e:	5d                   	pop    %ebp
55672f:	5b                   	pop    %ebx
556730:	59                   	pop    %ecx
556731:	c3                   	ret
556732:	5e                   	pop    %esi
556733:	5d                   	pop    %ebp
556734:	33 c0                	xor    %eax,%eax
556736:	5b                   	pop    %ebx
556737:	59                   	pop    %ecx
556738:	c3                   	ret
556739:	cc                   	int3
55673a:	cc                   	int3
55673b:	cc                   	int3
55673c:	cc                   	int3
55673d:	cc                   	int3
55673e:	cc                   	int3
55673f:	cc                   	int3
556740:	b8 04 00 00 00       	mov    $0x4,%eax
556745:	e8 66 b0 07 00       	call   0x5d17b0
55674a:	53                   	push   %ebx
55674b:	8b 5c 24 10          	mov    0x10(%esp),%ebx
55674f:	57                   	push   %edi
556750:	85 db                	test   %ebx,%ebx
556752:	0f 84 08 01 00 00    	je     0x556860
556758:	8b 4c 24 10          	mov    0x10(%esp),%ecx
55675c:	8b 79 24             	mov    0x24(%ecx),%edi
55675f:	85 ff                	test   %edi,%edi
556761:	0f 84 f9 00 00 00    	je     0x556860
556767:	83 79 28 00          	cmpl   $0x0,0x28(%ecx)
55676b:	0f 84 ef 00 00 00    	je     0x556860
556771:	55                   	push   %ebp
556772:	56                   	push   %esi
556773:	33 c0                	xor    %eax,%eax
556775:	6a 0f                	push   $0xf
556777:	51                   	push   %ecx
556778:	89 44 24 24          	mov    %eax,0x24(%esp)
55677c:	e8 7f 23 fa ff       	call   0x4f8b00
556781:	8b 6f 0c             	mov    0xc(%edi),%ebp
556784:	83 c4 08             	add    $0x8,%esp
556787:	8b 74 24 20          	mov    0x20(%esp),%esi
55678b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
556790:	85 ed                	test   %ebp,%ebp
556792:	74 3a                	je     0x5567ce
556794:	3b ee                	cmp    %esi,%ebp
556796:	8b c6                	mov    %esi,%eax
556798:	0f 4e c5             	cmovle %ebp,%eax
55679b:	50                   	push   %eax
55679c:	89 44 24 14          	mov    %eax,0x14(%esp)
5567a0:	8b 47 08             	mov    0x8(%edi),%eax
5567a3:	03 47 10             	add    0x10(%edi),%eax
5567a6:	50                   	push   %eax
5567a7:	53                   	push   %ebx
5567a8:	e8 23 c6 07 00       	call   0x5d2dd0
5567ad:	8b 44 24 1c          	mov    0x1c(%esp),%eax
5567b1:	83 c4 0c             	add    $0xc,%esp
5567b4:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
5567b8:	01 47 10             	add    %eax,0x10(%edi)
5567bb:	03 e8                	add    %eax,%ebp
5567bd:	29 47 0c             	sub    %eax,0xc(%edi)
5567c0:	89 6c 24 1c          	mov    %ebp,0x1c(%esp)
5567c4:	3b f0                	cmp    %eax,%esi
5567c6:	74 4e                	je     0x556816
5567c8:	2b f0                	sub    %eax,%esi
5567ca:	03 d8                	add    %eax,%ebx
5567cc:	eb 04                	jmp    0x5567d2
5567ce:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
5567d2:	8b 07                	mov    (%edi),%eax
5567d4:	3b f0                	cmp    %eax,%esi
5567d6:	7f 48                	jg     0x556820
5567d8:	50                   	push   %eax
5567d9:	8b 44 24 1c          	mov    0x1c(%esp),%eax
5567dd:	ff 77 08             	push   0x8(%edi)
5567e0:	ff 70 28             	push   0x28(%eax)
5567e3:	e8 58 2c fa ff       	call   0x4f9440
5567e8:	8b e8                	mov    %eax,%ebp
5567ea:	83 c4 0c             	add    $0xc,%esp
5567ed:	85 ed                	test   %ebp,%ebp
5567ef:	7e 0c                	jle    0x5567fd
5567f1:	c7 47 10 00 00 00 00 	movl   $0x0,0x10(%edi)
5567f8:	89 6f 0c             	mov    %ebp,0xc(%edi)
5567fb:	eb 93                	jmp    0x556790
5567fd:	ff 74 24 18          	push   0x18(%esp)
556801:	e8 0a 23 fa ff       	call   0x4f8b10
556806:	8b 44 24 20          	mov    0x20(%esp),%eax
55680a:	83 c4 04             	add    $0x4,%esp
55680d:	85 ed                	test   %ebp,%ebp
55680f:	79 07                	jns    0x556818
556811:	85 c0                	test   %eax,%eax
556813:	0f 4f e8             	cmovg  %eax,%ebp
556816:	8b c5                	mov    %ebp,%eax
556818:	5e                   	pop    %esi
556819:	5d                   	pop    %ebp
55681a:	5f                   	pop    %edi
55681b:	5b                   	pop    %ebx
55681c:	59                   	pop    %ecx
55681d:	c3                   	ret
55681e:	66 90                	xchg   %ax,%ax
556820:	8b 44 24 18          	mov    0x18(%esp),%eax
556824:	56                   	push   %esi
556825:	53                   	push   %ebx
556826:	ff 70 28             	push   0x28(%eax)
556829:	e8 12 2c fa ff       	call   0x4f9440
55682e:	8b f8                	mov    %eax,%edi
556830:	83 c4 0c             	add    $0xc,%esp
556833:	85 ff                	test   %edi,%edi
556835:	7e 0c                	jle    0x556843
556837:	03 ef                	add    %edi,%ebp
556839:	3b f7                	cmp    %edi,%esi
55683b:	74 d9                	je     0x556816
55683d:	03 df                	add    %edi,%ebx
55683f:	2b f7                	sub    %edi,%esi
556841:	eb dd                	jmp    0x556820
556843:	ff 74 24 18          	push   0x18(%esp)
556847:	e8 c4 22 fa ff       	call   0x4f8b10
55684c:	83 c4 04             	add    $0x4,%esp
55684f:	85 ff                	test   %edi,%edi
556851:	79 c3                	jns    0x556816
556853:	85 ed                	test   %ebp,%ebp
556855:	5e                   	pop    %esi
556856:	0f 4f fd             	cmovg  %ebp,%edi
556859:	5d                   	pop    %ebp
55685a:	8b c7                	mov    %edi,%eax
55685c:	5f                   	pop    %edi
55685d:	5b                   	pop    %ebx
55685e:	59                   	pop    %ecx
55685f:	c3                   	ret
556860:	5f                   	pop    %edi
556861:	33 c0                	xor    %eax,%eax
556863:	5b                   	pop    %ebx
556864:	59                   	pop    %ecx
556865:	c3                   	ret
556866:	cc                   	int3
556867:	cc                   	int3
556868:	cc                   	int3
556869:	cc                   	int3
55686a:	cc                   	int3
55686b:	cc                   	int3
55686c:	cc                   	int3
55686d:	cc                   	int3
55686e:	cc                   	int3
55686f:	cc                   	int3
556870:	8b 54 24 08          	mov    0x8(%esp),%edx
556874:	8b c2                	mov    %edx,%eax
556876:	56                   	push   %esi
556877:	8d 70 01             	lea    0x1(%eax),%esi
55687a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
556880:	8a 08                	mov    (%eax),%cl
556882:	40                   	inc    %eax
556883:	84 c9                	test   %cl,%cl
556885:	75 f9                	jne    0x556880
556887:	2b c6                	sub    %esi,%eax
556889:	50                   	push   %eax
55688a:	52                   	push   %edx
55688b:	ff 74 24 10          	push   0x10(%esp)
55688f:	e8 4c fd ff ff       	call   0x5565e0
556894:	83 c4 0c             	add    $0xc,%esp
556897:	5e                   	pop    %esi
556898:	c3                   	ret
556899:	cc                   	int3
55689a:	cc                   	int3
55689b:	cc                   	int3
55689c:	cc                   	int3
55689d:	cc                   	int3
55689e:	cc                   	int3
55689f:	cc                   	int3
5568a0:	b8 04 00 00 00       	mov    $0x4,%eax
5568a5:	e8 06 af 07 00       	call   0x5d17b0
5568aa:	53                   	push   %ebx
5568ab:	8b 5c 24 14          	mov    0x14(%esp),%ebx
5568af:	33 c0                	xor    %eax,%eax
5568b1:	55                   	push   %ebp
5568b2:	56                   	push   %esi
5568b3:	57                   	push   %edi
5568b4:	89 44 24 10          	mov    %eax,0x10(%esp)
5568b8:	4b                   	dec    %ebx
5568b9:	8b 44 24 18          	mov    0x18(%esp),%eax
5568bd:	6a 0f                	push   $0xf
5568bf:	50                   	push   %eax
5568c0:	8b 78 24             	mov    0x24(%eax),%edi
5568c3:	e8 38 22 fa ff       	call   0x4f8b00
5568c8:	8b 77 0c             	mov    0xc(%edi),%esi
5568cb:	83 c4 08             	add    $0x8,%esp
5568ce:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
5568d2:	8b 47 08             	mov    0x8(%edi),%eax
5568d5:	85 f6                	test   %esi,%esi
5568d7:	7e 52                	jle    0x55692b
5568d9:	8b 4f 10             	mov    0x10(%edi),%ecx
5568dc:	03 c8                	add    %eax,%ecx
5568de:	33 d2                	xor    %edx,%edx
5568e0:	89 4c 24 20          	mov    %ecx,0x20(%esp)
5568e4:	3b d3                	cmp    %ebx,%edx
5568e6:	7d 29                	jge    0x556911
5568e8:	8a 04 11             	mov    (%ecx,%edx,1),%al
5568eb:	03 ca                	add    %edx,%ecx
5568ed:	88 45 00             	mov    %al,0x0(%ebp)
5568f0:	42                   	inc    %edx
5568f1:	8b 77 0c             	mov    0xc(%edi),%esi
5568f4:	45                   	inc    %ebp
5568f5:	80 39 0a             	cmpb   $0xa,(%ecx)
5568f8:	74 55                	je     0x55694f
5568fa:	8b 4c 24 20          	mov    0x20(%esp),%ecx
5568fe:	3b d6                	cmp    %esi,%edx
556900:	7c e2                	jl     0x5568e4
556902:	8b 44 24 10          	mov    0x10(%esp),%eax
556906:	2b f2                	sub    %edx,%esi
556908:	01 57 10             	add    %edx,0x10(%edi)
55690b:	03 c2                	add    %edx,%eax
55690d:	2b da                	sub    %edx,%ebx
55690f:	eb 0d                	jmp    0x55691e
556911:	8b 44 24 10          	mov    0x10(%esp),%eax
556915:	2b da                	sub    %edx,%ebx
556917:	03 c2                	add    %edx,%eax
556919:	2b f2                	sub    %edx,%esi
55691b:	01 57 10             	add    %edx,0x10(%edi)
55691e:	89 77 0c             	mov    %esi,0xc(%edi)
556921:	89 44 24 10          	mov    %eax,0x10(%esp)
556925:	85 db                	test   %ebx,%ebx
556927:	74 34                	je     0x55695d
556929:	eb a7                	jmp    0x5568d2
55692b:	ff 37                	push   (%edi)
55692d:	50                   	push   %eax
55692e:	8b 44 24 20          	mov    0x20(%esp),%eax
556932:	ff 70 28             	push   0x28(%eax)
556935:	e8 06 2b fa ff       	call   0x4f9440
55693a:	8b f0                	mov    %eax,%esi
55693c:	83 c4 0c             	add    $0xc,%esp
55693f:	85 f6                	test   %esi,%esi
556941:	7e 24                	jle    0x556967
556943:	89 77 0c             	mov    %esi,0xc(%edi)
556946:	c7 47 10 00 00 00 00 	movl   $0x0,0x10(%edi)
55694d:	eb 83                	jmp    0x5568d2
55694f:	8b 44 24 10          	mov    0x10(%esp),%eax
556953:	2b f2                	sub    %edx,%esi
556955:	01 57 10             	add    %edx,0x10(%edi)
556958:	03 c2                	add    %edx,%eax
55695a:	89 77 0c             	mov    %esi,0xc(%edi)
55695d:	5f                   	pop    %edi
55695e:	5e                   	pop    %esi
55695f:	c6 45 00 00          	movb   $0x0,0x0(%ebp)
556963:	5d                   	pop    %ebp
556964:	5b                   	pop    %ebx
556965:	59                   	pop    %ecx
556966:	c3                   	ret
556967:	ff 74 24 18          	push   0x18(%esp)
55696b:	e8 a0 21 fa ff       	call   0x4f8b10
556970:	8b 44 24 14          	mov    0x14(%esp),%eax
556974:	83 c4 04             	add    $0x4,%esp
556977:	c6 45 00 00          	movb   $0x0,0x0(%ebp)
55697b:	85 f6                	test   %esi,%esi
55697d:	79 07                	jns    0x556986
55697f:	85 c0                	test   %eax,%eax
556981:	0f 4f f0             	cmovg  %eax,%esi
556984:	8b c6                	mov    %esi,%eax
556986:	5f                   	pop    %edi
556987:	5e                   	pop    %esi
556988:	5d                   	pop    %ebp
556989:	5b                   	pop    %ebx
55698a:	59                   	pop    %ecx
55698b:	c3                   	ret
55698c:	cc                   	int3
55698d:	cc                   	int3
55698e:	cc                   	int3
55698f:	cc                   	int3
556990:	b8 04 00 00 00       	mov    $0x4,%eax
556995:	e8 16 ae 07 00       	call   0x5d17b0
55699a:	53                   	push   %ebx
55699b:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
55699f:	55                   	push   %ebp
5569a0:	8b 6c 24 14          	mov    0x14(%esp),%ebp
5569a4:	56                   	push   %esi
5569a5:	8b 73 24             	mov    0x24(%ebx),%esi
5569a8:	57                   	push   %edi
5569a9:	8d 45 ff             	lea    -0x1(%ebp),%eax
5569ac:	bf 01 00 00 00       	mov    $0x1,%edi
5569b1:	83 f8 79             	cmp    $0x79,%eax
5569b4:	0f 87 21 04 00 00    	ja     0x556ddb
5569ba:	0f b6 80 24 6e 55 00 	movzbl 0x556e24(%eax),%eax
5569c1:	ff 24 85 f0 6d 55 00 	jmp    *0x556df0(,%eax,4)
5569c8:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
5569cf:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
5569d6:	c7 46 1c 00 00 00 00 	movl   $0x0,0x1c(%esi)
5569dd:	c7 46 18 00 00 00 00 	movl   $0x0,0x18(%esi)
5569e4:	8b 43 28             	mov    0x28(%ebx),%eax
5569e7:	85 c0                	test   %eax,%eax
5569e9:	0f 84 f7 03 00 00    	je     0x556de6
5569ef:	ff 74 24 24          	push   0x24(%esp)
5569f3:	ff 74 24 24          	push   0x24(%esp)
5569f7:	55                   	push   %ebp
5569f8:	50                   	push   %eax
5569f9:	e8 32 21 fa ff       	call   0x4f8b30
5569fe:	83 c4 10             	add    $0x10,%esp
556a01:	8b f8                	mov    %eax,%edi
556a03:	8b c7                	mov    %edi,%eax
556a05:	5f                   	pop    %edi
556a06:	5e                   	pop    %esi
556a07:	5d                   	pop    %ebp
556a08:	5b                   	pop    %ebx
556a09:	59                   	pop    %ecx
556a0a:	c3                   	ret
556a0b:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
556a0f:	0f 8f d1 03 00 00    	jg     0x556de6
556a15:	ff 74 24 24          	push   0x24(%esp)
556a19:	ff 74 24 24          	push   0x24(%esp)
556a1d:	55                   	push   %ebp
556a1e:	ff 73 28             	push   0x28(%ebx)
556a21:	e8 0a 21 fa ff       	call   0x4f8b30
556a26:	83 c4 10             	add    $0x10,%esp
556a29:	8b f8                	mov    %eax,%edi
556a2b:	5f                   	pop    %edi
556a2c:	5e                   	pop    %esi
556a2d:	5d                   	pop    %ebp
556a2e:	5b                   	pop    %ebx
556a2f:	59                   	pop    %ecx
556a30:	c3                   	ret
556a31:	8b 7e 18             	mov    0x18(%esi),%edi
556a34:	8b c7                	mov    %edi,%eax
556a36:	5f                   	pop    %edi
556a37:	5e                   	pop    %esi
556a38:	5d                   	pop    %ebp
556a39:	5b                   	pop    %ebx
556a3a:	59                   	pop    %ecx
556a3b:	c3                   	ret
556a3c:	8b 56 0c             	mov    0xc(%esi),%edx
556a3f:	33 ff                	xor    %edi,%edi
556a41:	85 d2                	test   %edx,%edx
556a43:	7e be                	jle    0x556a03
556a45:	8b 4e 10             	mov    0x10(%esi),%ecx
556a48:	03 4e 08             	add    0x8(%esi),%ecx
556a4b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
556a50:	80 39 0a             	cmpb   $0xa,(%ecx)
556a53:	8d 47 01             	lea    0x1(%edi),%eax
556a56:	8d 49 01             	lea    0x1(%ecx),%ecx
556a59:	0f 45 c7             	cmovne %edi,%eax
556a5c:	8b f8                	mov    %eax,%edi
556a5e:	83 ea 01             	sub    $0x1,%edx
556a61:	75 ed                	jne    0x556a50