50178a:	8b 3e                	mov    (%esi),%edi
50178c:	85 ff                	test   %edi,%edi
50178e:	74 04                	je     0x501794
501790:	8b 17                	mov    (%edi),%edx
501792:	eb 02                	jmp    0x501796
501794:	33 d2                	xor    %edx,%edx
501796:	33 c0                	xor    %eax,%eax
501798:	85 d2                	test   %edx,%edx
50179a:	7e 1d                	jle    0x5017b9
50179c:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
50179f:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5017a2:	8d 4f 34             	lea    0x34(%edi),%ecx
5017a5:	8b 5d fc             	mov    -0x4(%ebp),%ebx
5017a8:	3b 19                	cmp    (%ecx),%ebx
5017aa:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5017ad:	74 20                	je     0x5017cf
5017af:	40                   	inc    %eax
5017b0:	83 c1 48             	add    $0x48,%ecx
5017b3:	3b c2                	cmp    %edx,%eax
5017b5:	7c ee                	jl     0x5017a5
5017b7:	85 d2                	test   %edx,%edx
5017b9:	74 08                	je     0x5017c3
5017bb:	8b 43 1c             	mov    0x1c(%ebx),%eax
5017be:	3b 47 34             	cmp    0x34(%edi),%eax
5017c1:	7d 03                	jge    0x5017c6
5017c3:	ff 46 08             	incl   0x8(%esi)
5017c6:	5f                   	pop    %edi
5017c7:	5e                   	pop    %esi
5017c8:	33 c0                	xor    %eax,%eax
5017ca:	5b                   	pop    %ebx
5017cb:	8b e5                	mov    %ebp,%esp
5017cd:	5d                   	pop    %ebp
5017ce:	c3                   	ret
5017cf:	3b c2                	cmp    %edx,%eax
5017d1:	7d e4                	jge    0x5017b7
5017d3:	ff 46 04             	incl   0x4(%esi)
5017d6:	33 c0                	xor    %eax,%eax
5017d8:	5f                   	pop    %edi
5017d9:	5e                   	pop    %esi
5017da:	5b                   	pop    %ebx
5017db:	8b e5                	mov    %ebp,%esp
5017dd:	5d                   	pop    %ebp
5017de:	c3                   	ret
5017df:	cc                   	int3
5017e0:	55                   	push   %ebp
5017e1:	8b ec                	mov    %esp,%ebp
5017e3:	83 ec 08             	sub    $0x8,%esp
5017e6:	53                   	push   %ebx
5017e7:	8b 5d 08             	mov    0x8(%ebp),%ebx
5017ea:	8d 45 f8             	lea    -0x8(%ebp),%eax
5017ed:	57                   	push   %edi
5017ee:	6a 00                	push   $0x0
5017f0:	50                   	push   %eax
5017f1:	8b 1b                	mov    (%ebx),%ebx
5017f3:	68 ad 00 00 00       	push   $0xad
5017f8:	53                   	push   %ebx
5017f9:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
501800:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
501807:	e8 64 1e 02 00       	call   0x523670
50180c:	8b f8                	mov    %eax,%edi
50180e:	83 c4 10             	add    $0x10,%esp
501811:	85 ff                	test   %edi,%edi
501813:	74 69                	je     0x50187e
501815:	8b 55 14             	mov    0x14(%ebp),%edx
501818:	56                   	push   %esi
501819:	66 85 d2             	test   %dx,%dx
50181c:	78 53                	js     0x501871
50181e:	8b 75 0c             	mov    0xc(%ebp),%esi
501821:	66 3b 56 28          	cmp    0x28(%esi),%dx
501825:	74 4a                	je     0x501871
501827:	0f bf c2             	movswl %dx,%eax
50182a:	52                   	push   %edx
50182b:	ff 75 0c             	push   0xc(%ebp)
50182e:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
501831:	8b 46 04             	mov    0x4(%esi),%eax
501834:	8d 34 88             	lea    (%eax,%ecx,4),%esi
501837:	e8 14 c6 03 00       	call   0x53de50
50183c:	0f bf c8             	movswl %ax,%ecx
50183f:	83 c4 08             	add    $0x8,%esp
501842:	8b 45 10             	mov    0x10(%ebp),%eax
501845:	40                   	inc    %eax
501846:	03 c1                	add    %ecx,%eax
501848:	89 47 1c             	mov    %eax,0x1c(%edi)
50184b:	8a 46 0d             	mov    0xd(%esi),%al
50184e:	88 47 01             	mov    %al,0x1(%edi)
501851:	8b 46 08             	mov    0x8(%esi),%eax
501854:	85 c0                	test   %eax,%eax
501856:	75 05                	jne    0x50185d
501858:	8b 43 08             	mov    0x8(%ebx),%eax
50185b:	8b 00                	mov    (%eax),%eax
50185d:	50                   	push   %eax
50185e:	57                   	push   %edi
50185f:	ff 75 08             	push   0x8(%ebp)
501862:	e8 99 1c 02 00       	call   0x523500
501867:	83 c4 0c             	add    $0xc,%esp
50186a:	5e                   	pop    %esi
50186b:	5f                   	pop    %edi
50186c:	5b                   	pop    %ebx
50186d:	8b e5                	mov    %ebp,%esp
50186f:	5d                   	pop    %ebp
501870:	c3                   	ret
501871:	8b 45 10             	mov    0x10(%ebp),%eax
501874:	89 47 1c             	mov    %eax,0x1c(%edi)
501877:	8b c7                	mov    %edi,%eax
501879:	c6 47 01 44          	movb   $0x44,0x1(%edi)
50187d:	5e                   	pop    %esi
50187e:	5f                   	pop    %edi
50187f:	5b                   	pop    %ebx
501880:	8b e5                	mov    %ebp,%esp
501882:	5d                   	pop    %ebp
501883:	c3                   	ret
501884:	cc                   	int3
501885:	cc                   	int3
501886:	cc                   	int3
501887:	cc                   	int3
501888:	cc                   	int3
501889:	cc                   	int3
50188a:	cc                   	int3
50188b:	cc                   	int3
50188c:	cc                   	int3
50188d:	cc                   	int3
50188e:	cc                   	int3
50188f:	cc                   	int3
501890:	55                   	push   %ebp
501891:	8b ec                	mov    %esp,%ebp
501893:	8b 45 08             	mov    0x8(%ebp),%eax
501896:	83 ec 1c             	sub    $0x1c,%esp
501899:	80 78 02 00          	cmpb   $0x0,0x2(%eax)
50189d:	53                   	push   %ebx
50189e:	56                   	push   %esi
50189f:	57                   	push   %edi
5018a0:	0f b6 78 0a          	movzbl 0xa(%eax),%edi
5018a4:	74 5d                	je     0x501903
5018a6:	8b 4d 10             	mov    0x10(%ebp),%ecx
5018a9:	8b 71 1c             	mov    0x1c(%ecx),%esi
5018ac:	8b 59 20             	mov    0x20(%ecx),%ebx
5018af:	8b 41 10             	mov    0x10(%ecx),%eax
5018b2:	03 de                	add    %esi,%ebx
5018b4:	89 75 f4             	mov    %esi,-0xc(%ebp)
5018b7:	89 5d f8             	mov    %ebx,-0x8(%ebp)
5018ba:	89 45 fc             	mov    %eax,-0x4(%ebp)
5018bd:	81 fb 80 00 00 00    	cmp    $0x80,%ebx
5018c3:	73 0d                	jae    0x5018d2
5018c5:	8b 45 0c             	mov    0xc(%ebp),%eax
5018c8:	88 1c 07             	mov    %bl,(%edi,%eax,1)
5018cb:	b8 01 00 00 00       	mov    $0x1,%eax
5018d0:	eb 16                	jmp    0x5018e8
5018d2:	8b c3                	mov    %ebx,%eax
5018d4:	99                   	cltd
5018d5:	52                   	push   %edx
5018d6:	50                   	push   %eax
5018d7:	8b 45 0c             	mov    0xc(%ebp),%eax
5018da:	03 c7                	add    %edi,%eax
5018dc:	50                   	push   %eax
5018dd:	e8 1e 5b 03 00       	call   0x537400
5018e2:	8b 4d 10             	mov    0x10(%ebp),%ecx
5018e5:	83 c4 0c             	add    $0xc,%esp
5018e8:	ff 71 0c             	push   0xc(%ecx)
5018eb:	0f b6 c0             	movzbl %al,%eax
5018ee:	ff 71 08             	push   0x8(%ecx)
5018f1:	03 f8                	add    %eax,%edi
5018f3:	8b 45 0c             	mov    0xc(%ebp),%eax
5018f6:	03 c7                	add    %edi,%eax
5018f8:	50                   	push   %eax
5018f9:	e8 02 5b 03 00       	call   0x537400
5018fe:	83 c4 0c             	add    $0xc,%esp
501901:	eb 3e                	jmp    0x501941
501903:	8b 45 10             	mov    0x10(%ebp),%eax
501906:	8b 58 08             	mov    0x8(%eax),%ebx
501909:	8b f3                	mov    %ebx,%esi
50190b:	8b 00                	mov    (%eax),%eax
50190d:	89 5d f8             	mov    %ebx,-0x8(%ebp)
501910:	89 5d f4             	mov    %ebx,-0xc(%ebp)
501913:	89 45 fc             	mov    %eax,-0x4(%ebp)
501916:	81 fb 80 00 00 00    	cmp    $0x80,%ebx
50191c:	73 0d                	jae    0x50192b
50191e:	8b 45 0c             	mov    0xc(%ebp),%eax
501921:	88 1c 07             	mov    %bl,(%edi,%eax,1)
501924:	b8 01 00 00 00       	mov    $0x1,%eax
501929:	eb 13                	jmp    0x50193e
50192b:	8b c3                	mov    %ebx,%eax
50192d:	99                   	cltd
50192e:	52                   	push   %edx
50192f:	50                   	push   %eax
501930:	8b 45 0c             	mov    0xc(%ebp),%eax
501933:	03 c7                	add    %edi,%eax
501935:	50                   	push   %eax
501936:	e8 c5 5a 03 00       	call   0x537400
50193b:	83 c4 0c             	add    $0xc,%esp
50193e:	0f b6 c0             	movzbl %al,%eax
501941:	8b 4d 08             	mov    0x8(%ebp),%ecx
501944:	03 f8                	add    %eax,%edi
501946:	89 7d ec             	mov    %edi,-0x14(%ebp)
501949:	03 7d 0c             	add    0xc(%ebp),%edi
50194c:	0f b7 41 0e          	movzwl 0xe(%ecx),%eax
501950:	89 45 e4             	mov    %eax,-0x1c(%ebp)
501953:	3b d8                	cmp    %eax,%ebx
501955:	7f 38                	jg     0x50198f
501957:	8b 4d ec             	mov    -0x14(%ebp),%ecx
50195a:	b8 04 00 00 00       	mov    $0x4,%eax
50195f:	03 cb                	add    %ebx,%ecx
501961:	3b c8                	cmp    %eax,%ecx
501963:	56                   	push   %esi
501964:	ff 75 fc             	push   -0x4(%ebp)
501967:	0f 4c c8             	cmovl  %eax,%ecx
50196a:	8b 45 14             	mov    0x14(%ebp),%eax
50196d:	57                   	push   %edi
50196e:	89 08                	mov    %ecx,(%eax)
501970:	e8 8b 15 0e 00       	call   0x5e2f00
501975:	2b de                	sub    %esi,%ebx
501977:	8d 04 37             	lea    (%edi,%esi,1),%eax
50197a:	53                   	push   %ebx
50197b:	6a 00                	push   $0x0
50197d:	50                   	push   %eax
50197e:	e8 7d 20 0e 00       	call   0x5e3a00
501983:	83 c4 18             	add    $0x18,%esp
501986:	33 c0                	xor    %eax,%eax
501988:	5f                   	pop    %edi
501989:	5e                   	pop    %esi
50198a:	5b                   	pop    %ebx
50198b:	8b e5                	mov    %ebp,%esp
50198d:	5d                   	pop    %ebp
50198e:	c3                   	ret
50198f:	0f b7 71 10          	movzwl 0x10(%ecx),%esi
501993:	33 d2                	xor    %edx,%edx
501995:	8b 49 34             	mov    0x34(%ecx),%ecx
501998:	8b c3                	mov    %ebx,%eax
50199a:	2b c6                	sub    %esi,%eax
50199c:	8b 49 24             	mov    0x24(%ecx),%ecx
50199f:	83 e9 04             	sub    $0x4,%ecx
5019a2:	f7 f1                	div    %ecx
5019a4:	8d 04 32             	lea    (%edx,%esi,1),%eax
5019a7:	8b 55 ec             	mov    -0x14(%ebp),%edx
5019aa:	3b 45 e4             	cmp    -0x1c(%ebp),%eax
5019ad:	0f 4e f0             	cmovle %eax,%esi
5019b0:	8b 45 14             	mov    0x14(%ebp),%eax
5019b3:	03 d6                	add    %esi,%edx
5019b5:	89 75 f0             	mov    %esi,-0x10(%ebp)
5019b8:	8d 4a 04             	lea    0x4(%edx),%ecx
5019bb:	89 08                	mov    %ecx,(%eax)
5019bd:	8b 45 0c             	mov    0xc(%ebp),%eax
5019c0:	03 c2                	add    %edx,%eax
5019c2:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5019c5:	33 c0                	xor    %eax,%eax
5019c7:	89 45 ec             	mov    %eax,-0x14(%ebp)
5019ca:	33 db                	xor    %ebx,%ebx
5019cc:	8b 45 08             	mov    0x8(%ebp),%eax
5019cf:	89 5d e8             	mov    %ebx,-0x18(%ebp)
5019d2:	8b 40 34             	mov    0x34(%eax),%eax
5019d5:	89 45 0c             	mov    %eax,0xc(%ebp)
5019d8:	8b c6                	mov    %esi,%eax
5019da:	8b 55 f4             	mov    -0xc(%ebp),%edx
5019dd:	8b 4d f8             	mov    -0x8(%ebp),%ecx
5019e0:	3b c8                	cmp    %eax,%ecx
5019e2:	8b f1                	mov    %ecx,%esi
5019e4:	0f 4f f0             	cmovg  %eax,%esi
5019e7:	3b d6                	cmp    %esi,%edx
5019e9:	7c 0c                	jl     0x5019f7
5019eb:	56                   	push   %esi
5019ec:	ff 75 fc             	push   -0x4(%ebp)
5019ef:	57                   	push   %edi
5019f0:	e8 0b 15 0e 00       	call   0x5e2f00
5019f5:	eb 1b                	jmp    0x501a12
5019f7:	85 d2                	test   %edx,%edx
5019f9:	7e 0e                	jle    0x501a09
5019fb:	52                   	push   %edx
5019fc:	ff 75 fc             	push   -0x4(%ebp)
5019ff:	8b f2                	mov    %edx,%esi
501a01:	57                   	push   %edi
501a02:	e8 f9 14 0e 00       	call   0x5e2f00
501a07:	eb 09                	jmp    0x501a12
501a09:	56                   	push   %esi
501a0a:	6a 00                	push   $0x0
501a0c:	57                   	push   %edi
501a0d:	e8 ee 1f 0e 00       	call   0x5e3a00
501a12:	8b 4d f8             	mov    -0x8(%ebp),%ecx
501a15:	83 c4 0c             	add    $0xc,%esp
501a18:	2b ce                	sub    %esi,%ecx
501a1a:	89 4d f8             	mov    %ecx,-0x8(%ebp)
501a1d:	85 c9                	test   %ecx,%ecx
501a1f:	0f 8e 8b 01 00 00    	jle    0x501bb0
501a25:	8b 55 f4             	mov    -0xc(%ebp),%edx
501a28:	03 fe                	add    %esi,%edi
501a2a:	8b 45 f0             	mov    -0x10(%ebp),%eax
501a2d:	2b d6                	sub    %esi,%edx
501a2f:	01 75 fc             	add    %esi,-0x4(%ebp)
501a32:	2b c6                	sub    %esi,%eax
501a34:	89 55 f4             	mov    %edx,-0xc(%ebp)
501a37:	89 45 f0             	mov    %eax,-0x10(%ebp)
501a3a:	75 a4                	jne    0x5019e0
501a3c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
501a3f:	8b fb                	mov    %ebx,%edi
501a41:	c7 45 08 00 00 00 00 	movl   $0x0,0x8(%ebp)
501a48:	89 7d f0             	mov    %edi,-0x10(%ebp)
501a4b:	80 79 11 00          	cmpb   $0x0,0x11(%ecx)
501a4f:	74 56                	je     0x501aa7
501a51:	8b 79 20             	mov    0x20(%ecx),%edi
501a54:	43                   	inc    %ebx
501a55:	83 fb 02             	cmp    $0x2,%ebx
501a58:	73 04                	jae    0x501a5e
501a5a:	33 c9                	xor    %ecx,%ecx
501a5c:	eb 2e                	jmp    0x501a8c
501a5e:	b8 cd cc cc cc       	mov    $0xcccccccd,%eax
501a63:	8d 73 fe             	lea    -0x2(%ebx),%esi
501a66:	f7 61 24             	mull   0x24(%ecx)
501a69:	8b c6                	mov    %esi,%eax
501a6b:	8b ca                	mov    %edx,%ecx
501a6d:	33 d2                	xor    %edx,%edx
501a6f:	c1 e9 02             	shr    $0x2,%ecx
501a72:	41                   	inc    %ecx
501a73:	f7 f1                	div    %ecx
501a75:	a1 18 19 72 00       	mov    0x721918,%eax
501a7a:	2b f2                	sub    %edx,%esi
501a7c:	33 d2                	xor    %edx,%edx
501a7e:	f7 f7                	div    %edi
501a80:	83 c6 02             	add    $0x2,%esi
501a83:	40                   	inc    %eax
501a84:	3b f0                	cmp    %eax,%esi
501a86:	8d 4e 01             	lea    0x1(%esi),%ecx
501a89:	0f 45 ce             	cmovne %esi,%ecx
501a8c:	3b cb                	cmp    %ebx,%ecx
501a8e:	8b 4d 0c             	mov    0xc(%ebp),%ecx
501a91:	74 c1                	je     0x501a54
501a93:	a1 18 19 72 00       	mov    0x721918,%eax
501a98:	33 d2                	xor    %edx,%edx
501a9a:	f7 f7                	div    %edi
501a9c:	40                   	inc    %eax
501a9d:	3b d8                	cmp    %eax,%ebx
501a9f:	74 b3                	je     0x501a54
501aa1:	8b 7d f0             	mov    -0x10(%ebp),%edi
501aa4:	89 5d e8             	mov    %ebx,-0x18(%ebp)
501aa7:	6a 00                	push   $0x0
501aa9:	53                   	push   %ebx
501aaa:	8d 45 e8             	lea    -0x18(%ebp),%eax
501aad:	50                   	push   %eax
501aae:	8d 45 08             	lea    0x8(%ebp),%eax
501ab1:	50                   	push   %eax
501ab2:	51                   	push   %ecx
501ab3:	e8 68 08 ff ff       	call   0x4f2320
501ab8:	8b 4d 0c             	mov    0xc(%ebp),%ecx
501abb:	83 c4 14             	add    $0x14,%esp
501abe:	8b 5d e8             	mov    -0x18(%ebp),%ebx
501ac1:	8b f0                	mov    %eax,%esi
501ac3:	89 75 f0             	mov    %esi,-0x10(%ebp)
501ac6:	80 79 11 00          	cmpb   $0x0,0x11(%ecx)
501aca:	74 39                	je     0x501b05
501acc:	85 f6                	test   %esi,%esi
501ace:	0f 85 c3 00 00 00    	jne    0x501b97
501ad4:	8d 45 f0             	lea    -0x10(%ebp),%eax
501ad7:	85 ff                	test   %edi,%edi