501811:	f7 d8                	neg    %eax
501813:	89 45 d8             	mov    %eax,-0x28(%ebp)
501816:	8b 55 b4             	mov    -0x4c(%ebp),%edx
501819:	8b 45 c8             	mov    -0x38(%ebp),%eax
50181c:	40                   	inc    %eax
50181d:	03 c0                	add    %eax,%eax
50181f:	8b 0a                	mov    (%edx),%ecx
501821:	03 c8                	add    %eax,%ecx
501823:	eb 10                	jmp    0x501835
501825:	be 01 00 00 00       	mov    $0x1,%esi
50182a:	8b 45 dc             	mov    -0x24(%ebp),%eax
50182d:	89 45 d8             	mov    %eax,-0x28(%ebp)
501830:	8b 55 b4             	mov    -0x4c(%ebp),%edx
501833:	8b 0a                	mov    (%edx),%ecx
501835:	8b 45 fc             	mov    -0x4(%ebp),%eax
501838:	8b 50 18             	mov    0x18(%eax),%edx
50183b:	8b 45 d4             	mov    -0x2c(%ebp),%eax
50183e:	8b 14 82             	mov    (%edx,%eax,4),%edx
501841:	89 55 e4             	mov    %edx,-0x1c(%ebp)
501844:	8b 45 fc             	mov    -0x4(%ebp),%eax
501847:	8b 50 10             	mov    0x10(%eax),%edx
50184a:	8b 45 d4             	mov    -0x2c(%ebp),%eax
50184d:	8b 14 82             	mov    (%edx,%eax,4),%edx
501850:	33 c0                	xor    %eax,%eax
501852:	89 55 e0             	mov    %edx,-0x20(%ebp)
501855:	33 d2                	xor    %edx,%edx
501857:	89 55 f4             	mov    %edx,-0xc(%ebp)
50185a:	89 55 f8             	mov    %edx,-0x8(%ebp)
50185d:	8b 55 c8             	mov    -0x38(%ebp),%edx
501860:	89 55 cc             	mov    %edx,-0x34(%ebp)
501863:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
501867:	76 6d                	jbe    0x5018d6
501869:	0f bf 14 71          	movswl (%ecx,%esi,2),%edx
50186d:	03 c2                	add    %edx,%eax
50186f:	8b 55 ec             	mov    -0x14(%ebp),%edx
501872:	83 c0 08             	add    $0x8,%eax
501875:	8b 5d e8             	mov    -0x18(%ebp),%ebx
501878:	0f b6 12             	movzbl (%edx),%edx
50187b:	c1 f8 04             	sar    $0x4,%eax
50187e:	03 c2                	add    %edx,%eax
501880:	8b 55 c4             	mov    -0x3c(%ebp),%edx
501883:	0f b6 04 02          	movzbl (%edx,%eax,1),%eax
501887:	8b 55 e4             	mov    -0x1c(%ebp),%edx
50188a:	0f b6 14 02          	movzbl (%edx,%eax,1),%edx
50188e:	00 13                	add    %dl,(%ebx)
501890:	8b 5d e0             	mov    -0x20(%ebp),%ebx
501893:	0f b6 14 13          	movzbl (%ebx,%edx,1),%edx
501897:	2b c2                	sub    %edx,%eax
501899:	89 45 f0             	mov    %eax,-0x10(%ebp)
50189c:	8b d0                	mov    %eax,%edx
50189e:	66 8b 5d f4          	mov    -0xc(%ebp),%bx
5018a2:	03 d2                	add    %edx,%edx
5018a4:	03 c2                	add    %edx,%eax
5018a6:	66 03 d8             	add    %ax,%bx
5018a9:	03 c2                	add    %edx,%eax
5018ab:	66 89 19             	mov    %bx,(%ecx)
5018ae:	8b 5d f8             	mov    -0x8(%ebp),%ebx
5018b1:	03 d8                	add    %eax,%ebx
5018b3:	03 c2                	add    %edx,%eax
5018b5:	89 5d f4             	mov    %ebx,-0xc(%ebp)
5018b8:	8b 5d f0             	mov    -0x10(%ebp),%ebx
5018bb:	89 5d f8             	mov    %ebx,-0x8(%ebp)
5018be:	8b 55 d8             	mov    -0x28(%ebp),%edx
5018c1:	01 55 ec             	add    %edx,-0x14(%ebp)
5018c4:	01 75 e8             	add    %esi,-0x18(%ebp)
5018c7:	ff 4d cc             	decl   -0x34(%ebp)
5018ca:	8b d6                	mov    %esi,%edx
5018cc:	03 d2                	add    %edx,%edx
5018ce:	03 ca                	add    %edx,%ecx
5018d0:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
5018d4:	77 93                	ja     0x501869
5018d6:	66 8b 45 f4          	mov    -0xc(%ebp),%ax
5018da:	66 89 01             	mov    %ax,(%ecx)
5018dd:	ff 45 d4             	incl   -0x2c(%ebp)
5018e0:	83 45 b4 04          	addl   $0x4,-0x4c(%ebp)
5018e4:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
5018e7:	3b 4d dc             	cmp    -0x24(%ebp),%ecx
5018ea:	0f 8c ef fe ff ff    	jl     0x5017df
5018f0:	8b 45 fc             	mov    -0x4(%ebp),%eax
5018f3:	83 78 54 00          	cmpl   $0x0,0x54(%eax)
5018f7:	74 04                	je     0x5018fd
5018f9:	33 d2                	xor    %edx,%edx
5018fb:	eb 05                	jmp    0x501902
5018fd:	ba 01 00 00 00       	mov    $0x1,%edx
501902:	8b 45 fc             	mov    -0x4(%ebp),%eax
501905:	89 50 54             	mov    %edx,0x54(%eax)
501908:	ff 45 d0             	incl   -0x30(%ebp)
50190b:	83 45 b0 04          	addl   $0x4,-0x50(%ebp)
50190f:	83 45 c0 04          	addl   $0x4,-0x40(%ebp)
501913:	8b 4d d0             	mov    -0x30(%ebp),%ecx
501916:	3b 4d 08             	cmp    0x8(%ebp),%ecx
501919:	0f 8c 82 fe ff ff    	jl     0x5017a1
50191f:	5e                   	pop    %esi
501920:	5b                   	pop    %ebx
501921:	8b e5                	mov    %ebp,%esp
501923:	5d                   	pop    %ebp
501924:	c2 04 00             	ret    $0x4
501927:	90                   	nop
501928:	53                   	push   %ebx
501929:	56                   	push   %esi
50192a:	8b d8                	mov    %eax,%ebx
50192c:	57                   	push   %edi
50192d:	55                   	push   %ebp
50192e:	51                   	push   %ecx
50192f:	8b 83 c4 01 00 00    	mov    0x1c4(%ebx),%eax
501935:	8b 53 6c             	mov    0x6c(%ebx),%edx
501938:	03 d2                	add    %edx,%edx
50193a:	83 c2 04             	add    $0x4,%edx
50193d:	33 ff                	xor    %edi,%edi
50193f:	89 14 24             	mov    %edx,(%esp)
501942:	8d 70 44             	lea    0x44(%eax),%esi
501945:	eb 16                	jmp    0x50195d
501947:	8b c3                	mov    %ebx,%eax
501949:	8b 0c 24             	mov    (%esp),%ecx
50194c:	ba 01 00 00 00       	mov    $0x1,%edx
501951:	8b 68 04             	mov    0x4(%eax),%ebp
501954:	ff 55 04             	call   *0x4(%ebp)
501957:	89 06                	mov    %eax,(%esi)
501959:	47                   	inc    %edi
50195a:	83 c6 04             	add    $0x4,%esi
50195d:	3b 7b 74             	cmp    0x74(%ebx),%edi
501960:	7c e5                	jl     0x501947
501962:	5a                   	pop    %edx
501963:	5d                   	pop    %ebp
501964:	5f                   	pop    %edi
501965:	5e                   	pop    %esi
501966:	5b                   	pop    %ebx
501967:	c3                   	ret
501968:	53                   	push   %ebx
501969:	8b d8                	mov    %eax,%ebx
50196b:	56                   	push   %esi
50196c:	57                   	push   %edi
50196d:	55                   	push   %ebp
50196e:	8b b3 c4 01 00 00    	mov    0x1c4(%ebx),%esi
501974:	8b 46 10             	mov    0x10(%esi),%eax
501977:	89 83 84 00 00 00    	mov    %eax,0x84(%ebx)
50197d:	8b 56 14             	mov    0x14(%esi),%edx
501980:	89 93 80 00 00 00    	mov    %edx,0x80(%ebx)
501986:	8b 4b 54             	mov    0x54(%ebx),%ecx
501989:	83 e9 01             	sub    $0x1,%ecx
50198c:	72 0a                	jb     0x501998
50198e:	74 26                	je     0x5019b6
501990:	49                   	dec    %ecx
501991:	74 5a                	je     0x5019ed
501993:	e9 98 00 00 00       	jmp    0x501a30
501998:	83 7b 74 03          	cmpl   $0x3,0x74(%ebx)
50199c:	75 0c                	jne    0x5019aa
50199e:	c7 46 04 9c 14 50 00 	movl   $0x50149c,0x4(%esi)
5019a5:	e9 95 00 00 00       	jmp    0x501a3f
5019aa:	c7 46 04 fc 13 50 00 	movl   $0x5013fc,0x4(%esi)
5019b1:	e9 89 00 00 00       	jmp    0x501a3f
5019b6:	83 7b 74 03          	cmpl   $0x3,0x74(%ebx)
5019ba:	75 09                	jne    0x5019c5
5019bc:	c7 46 04 4c 16 50 00 	movl   $0x50164c,0x4(%esi)
5019c3:	eb 07                	jmp    0x5019cc
5019c5:	c7 46 04 38 15 50 00 	movl   $0x501538,0x4(%esi)
5019cc:	33 c0                	xor    %eax,%eax
5019ce:	89 46 30             	mov    %eax,0x30(%esi)
5019d1:	83 7e 1c 00          	cmpl   $0x0,0x1c(%esi)
5019d5:	75 07                	jne    0x5019de
5019d7:	8b c3                	mov    %ebx,%eax
5019d9:	e8 a6 f7 ff ff       	call   0x501184
5019de:	83 7e 34 00          	cmpl   $0x0,0x34(%esi)
5019e2:	75 5b                	jne    0x501a3f
5019e4:	8b c3                	mov    %ebx,%eax
5019e6:	e8 a9 f9 ff ff       	call   0x501394
5019eb:	eb 52                	jmp    0x501a3f
5019ed:	c7 46 04 64 17 50 00 	movl   $0x501764,0x4(%esi)
5019f4:	33 d2                	xor    %edx,%edx
5019f6:	89 56 54             	mov    %edx,0x54(%esi)
5019f9:	83 7e 44 00          	cmpl   $0x0,0x44(%esi)
5019fd:	75 07                	jne    0x501a06
5019ff:	8b c3                	mov    %ebx,%eax
501a01:	e8 22 ff ff ff       	call   0x501928
501a06:	8b 6b 6c             	mov    0x6c(%ebx),%ebp
501a09:	8d 46 44             	lea    0x44(%esi),%eax
501a0c:	03 ed                	add    %ebp,%ebp
501a0e:	8b f0                	mov    %eax,%esi
501a10:	83 c5 04             	add    $0x4,%ebp
501a13:	33 ff                	xor    %edi,%edi
501a15:	eb 12                	jmp    0x501a29
501a17:	55                   	push   %ebp
501a18:	6a 00                	push   $0x0
501a1a:	8b 16                	mov    (%esi),%edx
501a1c:	52                   	push   %edx
501a1d:	e8 92 98 ff ff       	call   0x4fb2b4
501a22:	83 c4 0c             	add    $0xc,%esp
501a25:	47                   	inc    %edi
501a26:	83 c6 04             	add    $0x4,%esi
501a29:	3b 7b 74             	cmp    0x74(%ebx),%edi
501a2c:	7c e9                	jl     0x501a17
501a2e:	eb 0f                	jmp    0x501a3f
501a30:	8b 0b                	mov    (%ebx),%ecx
501a32:	8b c3                	mov    %ebx,%eax
501a34:	c7 41 14 2f 00 00 00 	movl   $0x2f,0x14(%ecx)
501a3b:	8b 10                	mov    (%eax),%edx
501a3d:	ff 12                	call   *(%edx)
501a3f:	5d                   	pop    %ebp
501a40:	5f                   	pop    %edi
501a41:	5e                   	pop    %esi
501a42:	5b                   	pop    %ebx
501a43:	c3                   	ret
501a44:	c3                   	ret
501a45:	90                   	nop
501a46:	90                   	nop
501a47:	90                   	nop
501a48:	8b 10                	mov    (%eax),%edx
501a4a:	c7 42 14 2d 00 00 00 	movl   $0x2d,0x14(%edx)
501a51:	8b 08                	mov    (%eax),%ecx
501a53:	ff 11                	call   *(%ecx)
501a55:	c3                   	ret
501a56:	90                   	nop
501a57:	90                   	nop
501a58:	53                   	push   %ebx
501a59:	8b d8                	mov    %eax,%ebx
501a5b:	8b c3                	mov    %ebx,%eax
501a5d:	56                   	push   %esi
501a5e:	b9 58 00 00 00       	mov    $0x58,%ecx
501a63:	ba 01 00 00 00       	mov    $0x1,%edx
501a68:	8b 70 04             	mov    0x4(%eax),%esi
501a6b:	ff 16                	call   *(%esi)
501a6d:	89 83 c4 01 00 00    	mov    %eax,0x1c4(%ebx)
501a73:	c7 00 68 19 50 00    	movl   $0x501968,(%eax)
501a79:	c7 40 08 44 1a 50 00 	movl   $0x501a44,0x8(%eax)
501a80:	c7 40 0c 48 1a 50 00 	movl   $0x501a48,0xc(%eax)
501a87:	33 d2                	xor    %edx,%edx
501a89:	33 c9                	xor    %ecx,%ecx
501a8b:	89 50 44             	mov    %edx,0x44(%eax)
501a8e:	89 48 34             	mov    %ecx,0x34(%eax)
501a91:	83 7b 74 04          	cmpl   $0x4,0x74(%ebx)
501a95:	7e 16                	jle    0x501aad
501a97:	8b 03                	mov    (%ebx),%eax
501a99:	c7 40 14 36 00 00 00 	movl   $0x36,0x14(%eax)
501aa0:	c7 40 18 04 00 00 00 	movl   $0x4,0x18(%eax)
501aa7:	8b c3                	mov    %ebx,%eax
501aa9:	8b 10                	mov    (%eax),%edx
501aab:	ff 12                	call   *(%edx)
501aad:	81 7b 5c 00 01 00 00 	cmpl   $0x100,0x5c(%ebx)
501ab4:	7e 16                	jle    0x501acc
501ab6:	8b 03                	mov    (%ebx),%eax
501ab8:	c7 40 14 38 00 00 00 	movl   $0x38,0x14(%eax)
501abf:	c7 40 18 00 01 00 00 	movl   $0x100,0x18(%eax)
501ac6:	8b c3                	mov    %ebx,%eax
501ac8:	8b 10                	mov    (%eax),%edx
501aca:	ff 12                	call   *(%edx)
501acc:	8b c3                	mov    %ebx,%eax
501ace:	e8 fd f4 ff ff       	call   0x500fd0
501ad3:	8b c3                	mov    %ebx,%eax
501ad5:	e8 aa f6 ff ff       	call   0x501184
501ada:	83 7b 54 02          	cmpl   $0x2,0x54(%ebx)
501ade:	75 07                	jne    0x501ae7
501ae0:	8b c3                	mov    %ebx,%eax
501ae2:	e8 41 fe ff ff       	call   0x501928
501ae7:	5e                   	pop    %esi
501ae8:	5b                   	pop    %ebx
501ae9:	c3                   	ret
501aea:	8b c0                	mov    %eax,%eax
501aec:	55                   	push   %ebp
501aed:	8b ec                	mov    %esp,%ebp
501aef:	83 c4 f4             	add    $0xfffffff4,%esp
501af2:	53                   	push   %ebx
501af3:	56                   	push   %esi
501af4:	8b 88 c4 01 00 00    	mov    0x1c4(%eax),%ecx
501afa:	8b 59 18             	mov    0x18(%ecx),%ebx
501afd:	8b 40 6c             	mov    0x6c(%eax),%eax
501b00:	89 45 f8             	mov    %eax,-0x8(%ebp)
501b03:	33 c9                	xor    %ecx,%ecx
501b05:	89 4d fc             	mov    %ecx,-0x4(%ebp)
501b08:	89 55 f4             	mov    %edx,-0xc(%ebp)
501b0b:	8b 45 fc             	mov    -0x4(%ebp),%eax
501b0e:	3b 45 08             	cmp    0x8(%ebp),%eax
501b11:	7d 52                	jge    0x501b65
501b13:	8b 55 f4             	mov    -0xc(%ebp),%edx
501b16:	8b 02                	mov    (%edx),%eax
501b18:	8b 4d f8             	mov    -0x8(%ebp),%ecx
501b1b:	85 c9                	test   %ecx,%ecx
501b1d:	76 37                	jbe    0x501b56
501b1f:	0f b6 70 01          	movzbl 0x1(%eax),%esi
501b23:	33 d2                	xor    %edx,%edx
501b25:	8a 10                	mov    (%eax),%dl
501b27:	c1 fa 03             	sar    $0x3,%edx
501b2a:	c1 fe 02             	sar    $0x2,%esi
501b2d:	c1 e6 06             	shl    $0x6,%esi
501b30:	8b 14 93             	mov    (%ebx,%edx,4),%edx
501b33:	03 d6                	add    %esi,%edx
501b35:	0f b6 70 02          	movzbl 0x2(%eax),%esi
501b39:	c1 fe 03             	sar    $0x3,%esi
501b3c:	03 f6                	add    %esi,%esi
501b3e:	03 d6                	add    %esi,%edx
501b40:	66 ff 02             	incw   (%edx)
501b43:	66 8b 32             	mov    (%edx),%si
501b46:	66 85 f6             	test   %si,%si
501b49:	77 03                	ja     0x501b4e
501b4b:	66 ff 0a             	decw   (%edx)
501b4e:	83 c0 03             	add    $0x3,%eax
501b51:	49                   	dec    %ecx
501b52:	85 c9                	test   %ecx,%ecx
501b54:	77 c9                	ja     0x501b1f
501b56:	ff 45 fc             	incl   -0x4(%ebp)
501b59:	83 45 f4 04          	addl   $0x4,-0xc(%ebp)
501b5d:	8b 45 fc             	mov    -0x4(%ebp),%eax
501b60:	3b 45 08             	cmp    0x8(%ebp),%eax
501b63:	7c ae                	jl     0x501b13
501b65:	5e                   	pop    %esi
501b66:	5b                   	pop    %ebx
501b67:	8b e5                	mov    %ebp,%esp
501b69:	5d                   	pop    %ebp
501b6a:	c2 04 00             	ret    $0x4
501b6d:	90                   	nop
501b6e:	90                   	nop
501b6f:	90                   	nop
501b70:	53                   	push   %ebx
501b71:	56                   	push   %esi
501b72:	57                   	push   %edi
501b73:	33 db                	xor    %ebx,%ebx
501b75:	33 ff                	xor    %edi,%edi
501b77:	33 c9                	xor    %ecx,%ecx
501b79:	3b d1                	cmp    %ecx,%edx
501b7b:	7e 19                	jle    0x501b96
501b7d:	8b 70 1c             	mov    0x1c(%eax),%esi
501b80:	3b de                	cmp    %esi,%ebx
501b82:	7d 0a                	jge    0x501b8e
501b84:	83 78 18 00          	cmpl   $0x0,0x18(%eax)
501b88:	7e 04                	jle    0x501b8e
501b8a:	8b f8                	mov    %eax,%edi
501b8c:	8b de                	mov    %esi,%ebx
501b8e:	41                   	inc    %ecx
501b8f:	83 c0 20             	add    $0x20,%eax
501b92:	3b d1                	cmp    %ecx,%edx
501b94:	7f e7                	jg     0x501b7d
501b96:	8b c7                	mov    %edi,%eax
501b98:	5f                   	pop    %edi
501b99:	5e                   	pop    %esi
501b9a:	5b                   	pop    %ebx
501b9b:	c3                   	ret
501b9c:	53                   	push   %ebx
501b9d:	56                   	push   %esi
501b9e:	57                   	push   %edi
501b9f:	33 db                	xor    %ebx,%ebx
501ba1:	33 ff                	xor    %edi,%edi
501ba3:	33 c9                	xor    %ecx,%ecx
501ba5:	3b d1                	cmp    %ecx,%edx
501ba7:	7e 13                	jle    0x501bbc
501ba9:	8b 70 18             	mov    0x18(%eax),%esi
501bac:	3b de                	cmp    %esi,%ebx
501bae:	7d 04                	jge    0x501bb4
501bb0:	8b f8                	mov    %eax,%edi
501bb2:	8b de                	mov    %esi,%ebx
501bb4:	41                   	inc    %ecx
501bb5:	83 c0 20             	add    $0x20,%eax