502725:	8b ec                	mov    %esp,%ebp
502727:	83 c4 dc             	add    $0xffffffdc,%esp
50272a:	53                   	push   %ebx
50272b:	56                   	push   %esi
50272c:	89 45 fc             	mov    %eax,-0x4(%ebp)
50272f:	8b 45 fc             	mov    -0x4(%ebp),%eax
502732:	8b 80 c4 01 00 00    	mov    0x1c4(%eax),%eax
502738:	8b 40 18             	mov    0x18(%eax),%eax
50273b:	89 45 f8             	mov    %eax,-0x8(%ebp)
50273e:	8b 45 fc             	mov    -0x4(%ebp),%eax
502741:	8b 40 6c             	mov    0x6c(%eax),%eax
502744:	89 45 e4             	mov    %eax,-0x1c(%ebp)
502747:	33 c0                	xor    %eax,%eax
502749:	89 45 ec             	mov    %eax,-0x14(%ebp)
50274c:	89 4d dc             	mov    %ecx,-0x24(%ebp)
50274f:	89 55 e0             	mov    %edx,-0x20(%ebp)
502752:	8b 45 ec             	mov    -0x14(%ebp),%eax
502755:	3b 45 08             	cmp    0x8(%ebp),%eax
502758:	0f 8d 89 00 00 00    	jge    0x5027e7
50275e:	8b 55 e0             	mov    -0x20(%ebp),%edx
502761:	8b 45 dc             	mov    -0x24(%ebp),%eax
502764:	8b 1a                	mov    (%edx),%ebx
502766:	8b 10                	mov    (%eax),%edx
502768:	89 55 f4             	mov    %edx,-0xc(%ebp)
50276b:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
50276e:	89 4d e8             	mov    %ecx,-0x18(%ebp)
502771:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
502775:	76 59                	jbe    0x5027d0
502777:	33 c0                	xor    %eax,%eax
502779:	33 d2                	xor    %edx,%edx
50277b:	8a 03                	mov    (%ebx),%al
50277d:	43                   	inc    %ebx
50277e:	33 c9                	xor    %ecx,%ecx
502780:	c1 f8 03             	sar    $0x3,%eax
502783:	8a 13                	mov    (%ebx),%dl
502785:	43                   	inc    %ebx
502786:	c1 fa 02             	sar    $0x2,%edx
502789:	8a 0b                	mov    (%ebx),%cl
50278b:	c1 f9 03             	sar    $0x3,%ecx
50278e:	43                   	inc    %ebx
50278f:	89 4d f0             	mov    %ecx,-0x10(%ebp)
502792:	8b 4d f8             	mov    -0x8(%ebp),%ecx
502795:	8b 34 81             	mov    (%ecx,%eax,4),%esi
502798:	8b ca                	mov    %edx,%ecx
50279a:	c1 e1 06             	shl    $0x6,%ecx
50279d:	03 f1                	add    %ecx,%esi
50279f:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5027a2:	03 c9                	add    %ecx,%ecx
5027a4:	03 f1                	add    %ecx,%esi
5027a6:	66 83 3e 00          	cmpw   $0x0,(%esi)
5027aa:	75 0f                	jne    0x5027bb
5027ac:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5027af:	51                   	push   %ecx
5027b0:	8b ca                	mov    %edx,%ecx
5027b2:	8b 55 fc             	mov    -0x4(%ebp),%edx
5027b5:	92                   	xchg   %eax,%edx
5027b6:	e8 89 fe ff ff       	call   0x502644
5027bb:	8b 55 f4             	mov    -0xc(%ebp),%edx
5027be:	8a 06                	mov    (%esi),%al
5027c0:	04 ff                	add    $0xff,%al
5027c2:	88 02                	mov    %al,(%edx)
5027c4:	ff 45 f4             	incl   -0xc(%ebp)
5027c7:	ff 4d e8             	decl   -0x18(%ebp)
5027ca:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
5027ce:	77 a7                	ja     0x502777
5027d0:	ff 45 ec             	incl   -0x14(%ebp)
5027d3:	83 45 dc 04          	addl   $0x4,-0x24(%ebp)
5027d7:	83 45 e0 04          	addl   $0x4,-0x20(%ebp)
5027db:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5027de:	3b 4d 08             	cmp    0x8(%ebp),%ecx
5027e1:	0f 8c 77 ff ff ff    	jl     0x50275e
5027e7:	5e                   	pop    %esi
5027e8:	5b                   	pop    %ebx
5027e9:	8b e5                	mov    %ebp,%esp
5027eb:	5d                   	pop    %ebp
5027ec:	c2 04 00             	ret    $0x4
5027ef:	90                   	nop
5027f0:	55                   	push   %ebp
5027f1:	8b ec                	mov    %esp,%ebp
5027f3:	83 c4 90             	add    $0xffffff90,%esp
5027f6:	53                   	push   %ebx
5027f7:	56                   	push   %esi
5027f8:	57                   	push   %edi
5027f9:	89 4d f4             	mov    %ecx,-0xc(%ebp)
5027fc:	89 55 f8             	mov    %edx,-0x8(%ebp)
5027ff:	89 45 fc             	mov    %eax,-0x4(%ebp)
502802:	8b 45 fc             	mov    -0x4(%ebp),%eax
502805:	8b 90 c4 01 00 00    	mov    0x1c4(%eax),%edx
50280b:	89 55 f0             	mov    %edx,-0x10(%ebp)
50280e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
502811:	8b 41 18             	mov    0x18(%ecx),%eax
502814:	89 45 ec             	mov    %eax,-0x14(%ebp)
502817:	8b 55 fc             	mov    -0x4(%ebp),%edx
50281a:	8b 4a 6c             	mov    0x6c(%edx),%ecx
50281d:	89 4d b0             	mov    %ecx,-0x50(%ebp)
502820:	8b 45 fc             	mov    -0x4(%ebp),%eax
502823:	8b 90 3c 01 00 00    	mov    0x13c(%eax),%edx
502829:	89 55 ac             	mov    %edx,-0x54(%ebp)
50282c:	8b 4d f0             	mov    -0x10(%ebp),%ecx
50282f:	8b 41 28             	mov    0x28(%ecx),%eax
502832:	89 45 a8             	mov    %eax,-0x58(%ebp)
502835:	8b 55 fc             	mov    -0x4(%ebp),%edx
502838:	8b 8a 84 00 00 00    	mov    0x84(%edx),%ecx
50283e:	8b 01                	mov    (%ecx),%eax
502840:	89 45 a4             	mov    %eax,-0x5c(%ebp)
502843:	8b 55 fc             	mov    -0x4(%ebp),%edx
502846:	8b 8a 84 00 00 00    	mov    0x84(%edx),%ecx
50284c:	8b 41 04             	mov    0x4(%ecx),%eax
50284f:	89 45 a0             	mov    %eax,-0x60(%ebp)
502852:	8b 55 fc             	mov    -0x4(%ebp),%edx
502855:	8b 8a 84 00 00 00    	mov    0x84(%edx),%ecx
50285b:	33 d2                	xor    %edx,%edx
50285d:	8b 41 08             	mov    0x8(%ecx),%eax
502860:	89 45 9c             	mov    %eax,-0x64(%ebp)
502863:	89 55 b8             	mov    %edx,-0x48(%ebp)
502866:	8b 4d f4             	mov    -0xc(%ebp),%ecx
502869:	8b c1                	mov    %ecx,%eax
50286b:	89 45 90             	mov    %eax,-0x70(%ebp)
50286e:	8b 55 f8             	mov    -0x8(%ebp),%edx
502871:	8b ca                	mov    %edx,%ecx
502873:	89 4d 94             	mov    %ecx,-0x6c(%ebp)
502876:	8b 45 b8             	mov    -0x48(%ebp),%eax
502879:	3b 45 08             	cmp    0x8(%ebp),%eax
50287c:	0f 8d 66 02 00 00    	jge    0x502ae8
502882:	8b 55 94             	mov    -0x6c(%ebp),%edx
502885:	8b 0a                	mov    (%edx),%ecx
502887:	89 4d cc             	mov    %ecx,-0x34(%ebp)
50288a:	8b 45 90             	mov    -0x70(%ebp),%eax
50288d:	8b 10                	mov    (%eax),%edx
50288f:	89 55 c8             	mov    %edx,-0x38(%ebp)
502892:	8b 4d f0             	mov    -0x10(%ebp),%ecx
502895:	83 79 24 00          	cmpl   $0x0,0x24(%ecx)
502899:	74 3f                	je     0x5028da
50289b:	8b 45 b0             	mov    -0x50(%ebp),%eax
50289e:	48                   	dec    %eax
50289f:	8d 14 40             	lea    (%eax,%eax,2),%edx
5028a2:	01 55 cc             	add    %edx,-0x34(%ebp)
5028a5:	8b 4d b0             	mov    -0x50(%ebp),%ecx
5028a8:	49                   	dec    %ecx
5028a9:	01 4d c8             	add    %ecx,-0x38(%ebp)
5028ac:	c7 45 c0 ff ff ff ff 	movl   $0xffffffff,-0x40(%ebp)
5028b3:	c7 45 bc fd ff ff ff 	movl   $0xfffffffd,-0x44(%ebp)
5028ba:	8b 4d b0             	mov    -0x50(%ebp),%ecx
5028bd:	8b 45 f0             	mov    -0x10(%ebp),%eax
5028c0:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx
5028c3:	8b 50 20             	mov    0x20(%eax),%edx
5028c6:	83 c1 03             	add    $0x3,%ecx
5028c9:	03 c9                	add    %ecx,%ecx
5028cb:	03 d1                	add    %ecx,%edx
5028cd:	89 55 d0             	mov    %edx,-0x30(%ebp)
5028d0:	33 d2                	xor    %edx,%edx
5028d2:	8b 45 f0             	mov    -0x10(%ebp),%eax
5028d5:	89 50 24             	mov    %edx,0x24(%eax)
5028d8:	eb 21                	jmp    0x5028fb
5028da:	c7 45 c0 01 00 00 00 	movl   $0x1,-0x40(%ebp)
5028e1:	c7 45 bc 03 00 00 00 	movl   $0x3,-0x44(%ebp)
5028e8:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5028eb:	8b 41 20             	mov    0x20(%ecx),%eax
5028ee:	89 45 d0             	mov    %eax,-0x30(%ebp)
5028f1:	8b 55 f0             	mov    -0x10(%ebp),%edx
5028f4:	c7 42 24 01 00 00 00 	movl   $0x1,0x24(%edx)
5028fb:	33 c0                	xor    %eax,%eax
5028fd:	33 d2                	xor    %edx,%edx
5028ff:	89 45 e0             	mov    %eax,-0x20(%ebp)
502902:	89 45 e4             	mov    %eax,-0x1c(%ebp)
502905:	89 45 e8             	mov    %eax,-0x18(%ebp)
502908:	89 55 d4             	mov    %edx,-0x2c(%ebp)
50290b:	89 55 d8             	mov    %edx,-0x28(%ebp)
50290e:	89 55 dc             	mov    %edx,-0x24(%ebp)
502911:	8b 45 b0             	mov    -0x50(%ebp),%eax
502914:	33 c9                	xor    %ecx,%ecx
502916:	89 45 b4             	mov    %eax,-0x4c(%ebp)
502919:	89 cb                	mov    %ecx,%ebx
50291b:	83 7d b4 00          	cmpl   $0x0,-0x4c(%ebp)
50291f:	8b f1                	mov    %ecx,%esi
502921:	8b f9                	mov    %ecx,%edi
502923:	0f 86 88 01 00 00    	jbe    0x502ab1
502929:	8b 4d d0             	mov    -0x30(%ebp),%ecx
50292c:	8b 45 bc             	mov    -0x44(%ebp),%eax
50292f:	0f bf 14 41          	movswl (%ecx,%eax,2),%edx
502933:	8b 45 bc             	mov    -0x44(%ebp),%eax
502936:	8b 4d d0             	mov    -0x30(%ebp),%ecx
502939:	03 fa                	add    %edx,%edi
50293b:	0f bf 54 41 02       	movswl 0x2(%ecx,%eax,2),%edx
502940:	8b 45 bc             	mov    -0x44(%ebp),%eax
502943:	8b 4d d0             	mov    -0x30(%ebp),%ecx
502946:	03 f2                	add    %edx,%esi
502948:	83 c7 08             	add    $0x8,%edi
50294b:	0f bf 54 41 04       	movswl 0x4(%ecx,%eax,2),%edx
502950:	03 da                	add    %edx,%ebx
502952:	8b 4d a8             	mov    -0x58(%ebp),%ecx
502955:	c1 ff 04             	sar    $0x4,%edi
502958:	83 c3 08             	add    $0x8,%ebx
50295b:	83 c6 08             	add    $0x8,%esi
50295e:	8b 45 a8             	mov    -0x58(%ebp),%eax
502961:	c1 fe 04             	sar    $0x4,%esi
502964:	8b 55 a8             	mov    -0x58(%ebp),%edx
502967:	c1 fb 04             	sar    $0x4,%ebx
50296a:	8b 3c b9             	mov    (%ecx,%edi,4),%edi
50296d:	8b 4d cc             	mov    -0x34(%ebp),%ecx
502970:	8b 34 b0             	mov    (%eax,%esi,4),%esi
502973:	8b 1c 9a             	mov    (%edx,%ebx,4),%ebx
502976:	8b 55 cc             	mov    -0x34(%ebp),%edx
502979:	33 c0                	xor    %eax,%eax
50297b:	8a 01                	mov    (%ecx),%al
50297d:	33 c9                	xor    %ecx,%ecx
50297f:	03 f8                	add    %eax,%edi
502981:	8b 45 cc             	mov    -0x34(%ebp),%eax
502984:	8a 4a 01             	mov    0x1(%edx),%cl
502987:	33 d2                	xor    %edx,%edx
502989:	03 f1                	add    %ecx,%esi
50298b:	8b 4d ac             	mov    -0x54(%ebp),%ecx
50298e:	8a 50 02             	mov    0x2(%eax),%dl
502991:	33 c0                	xor    %eax,%eax
502993:	03 da                	add    %edx,%ebx
502995:	8b 55 ac             	mov    -0x54(%ebp),%edx
502998:	8a 04 39             	mov    (%ecx,%edi,1),%al
50299b:	33 c9                	xor    %ecx,%ecx
50299d:	8b f8                	mov    %eax,%edi
50299f:	8b 45 ac             	mov    -0x54(%ebp),%eax
5029a2:	8a 0c 32             	mov    (%edx,%esi,1),%cl
5029a5:	33 d2                	xor    %edx,%edx
5029a7:	8a 14 18             	mov    (%eax,%ebx,1),%dl
5029aa:	8b c7                	mov    %edi,%eax
5029ac:	c1 f8 03             	sar    $0x3,%eax
5029af:	8b da                	mov    %edx,%ebx
5029b1:	8b 55 ec             	mov    -0x14(%ebp),%edx
5029b4:	8b f1                	mov    %ecx,%esi
5029b6:	8b 0c 82             	mov    (%edx,%eax,4),%ecx
5029b9:	8b d6                	mov    %esi,%edx
5029bb:	c1 fa 02             	sar    $0x2,%edx
5029be:	c1 e2 06             	shl    $0x6,%edx
5029c1:	03 ca                	add    %edx,%ecx
5029c3:	8b d3                	mov    %ebx,%edx
5029c5:	c1 fa 03             	sar    $0x3,%edx
5029c8:	03 d2                	add    %edx,%edx
5029ca:	03 ca                	add    %edx,%ecx
5029cc:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
5029cf:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
5029d2:	66 83 39 00          	cmpw   $0x0,(%ecx)
5029d6:	75 15                	jne    0x5029ed
5029d8:	8b d3                	mov    %ebx,%edx
5029da:	c1 fa 03             	sar    $0x3,%edx
5029dd:	52                   	push   %edx
5029de:	8b ce                	mov    %esi,%ecx
5029e0:	c1 f9 02             	sar    $0x2,%ecx
5029e3:	8b d0                	mov    %eax,%edx
5029e5:	8b 45 fc             	mov    -0x4(%ebp),%eax
5029e8:	e8 57 fc ff ff       	call   0x502644
5029ed:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
5029f0:	8b 55 c8             	mov    -0x38(%ebp),%edx
5029f3:	0f b7 01             	movzwl (%ecx),%eax
5029f6:	48                   	dec    %eax
5029f7:	88 02                	mov    %al,(%edx)
5029f9:	33 d2                	xor    %edx,%edx
5029fb:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
5029fe:	8a 14 01             	mov    (%ecx,%eax,1),%dl
502a01:	8b 4d a0             	mov    -0x60(%ebp),%ecx
502a04:	2b fa                	sub    %edx,%edi
502a06:	33 d2                	xor    %edx,%edx
502a08:	8a 14 01             	mov    (%ecx,%eax,1),%dl
502a0b:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
502a0e:	2b f2                	sub    %edx,%esi
502a10:	0f b6 04 01          	movzbl (%ecx,%eax,1),%eax
502a14:	2b d8                	sub    %eax,%ebx
502a16:	89 7d 98             	mov    %edi,-0x68(%ebp)
502a19:	8b c7                	mov    %edi,%eax
502a1b:	66 8b 55 dc          	mov    -0x24(%ebp),%dx
502a1f:	03 c0                	add    %eax,%eax
502a21:	03 f8                	add    %eax,%edi
502a23:	8b 4d d0             	mov    -0x30(%ebp),%ecx
502a26:	66 03 d7             	add    %di,%dx
502a29:	03 f8                	add    %eax,%edi
502a2b:	66 89 11             	mov    %dx,(%ecx)
502a2e:	8b 55 e8             	mov    -0x18(%ebp),%edx
502a31:	03 d7                	add    %edi,%edx
502a33:	03 f8                	add    %eax,%edi
502a35:	89 55 dc             	mov    %edx,-0x24(%ebp)
502a38:	8b c6                	mov    %esi,%eax
502a3a:	8b 4d 98             	mov    -0x68(%ebp),%ecx
502a3d:	03 c0                	add    %eax,%eax
502a3f:	89 4d e8             	mov    %ecx,-0x18(%ebp)
502a42:	89 75 98             	mov    %esi,-0x68(%ebp)
502a45:	66 8b 55 d8          	mov    -0x28(%ebp),%dx
502a49:	03 f0                	add    %eax,%esi
502a4b:	66 03 d6             	add    %si,%dx
502a4e:	8b 4d d0             	mov    -0x30(%ebp),%ecx
502a51:	03 f0                	add    %eax,%esi
502a53:	66 89 51 02          	mov    %dx,0x2(%ecx)
502a57:	8b 55 e4             	mov    -0x1c(%ebp),%edx
502a5a:	03 d6                	add    %esi,%edx
502a5c:	03 f0                	add    %eax,%esi
502a5e:	89 55 d8             	mov    %edx,-0x28(%ebp)
502a61:	8b c3                	mov    %ebx,%eax
502a63:	8b 4d 98             	mov    -0x68(%ebp),%ecx
502a66:	03 c0                	add    %eax,%eax
502a68:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
502a6b:	89 5d 98             	mov    %ebx,-0x68(%ebp)
502a6e:	66 8b 55 d4          	mov    -0x2c(%ebp),%dx
502a72:	03 d8                	add    %eax,%ebx
502a74:	66 03 d3             	add    %bx,%dx
502a77:	8b 4d d0             	mov    -0x30(%ebp),%ecx
502a7a:	03 d8                	add    %eax,%ebx
502a7c:	66 89 51 04          	mov    %dx,0x4(%ecx)
502a80:	8b 55 e0             	mov    -0x20(%ebp),%edx
502a83:	03 d3                	add    %ebx,%edx
502a85:	03 d8                	add    %eax,%ebx
502a87:	89 55 d4             	mov    %edx,-0x2c(%ebp)
502a8a:	8b 4d 98             	mov    -0x68(%ebp),%ecx
502a8d:	89 4d e0             	mov    %ecx,-0x20(%ebp)
502a90:	8b 45 bc             	mov    -0x44(%ebp),%eax
502a93:	01 45 cc             	add    %eax,-0x34(%ebp)
502a96:	8b 45 c0             	mov    -0x40(%ebp),%eax
502a99:	01 45 c8             	add    %eax,-0x38(%ebp)
502a9c:	8b 55 bc             	mov    -0x44(%ebp),%edx
502a9f:	03 d2                	add    %edx,%edx
502aa1:	01 55 d0             	add    %edx,-0x30(%ebp)
502aa4:	ff 4d b4             	decl   -0x4c(%ebp)
502aa7:	83 7d b4 00          	cmpl   $0x0,-0x4c(%ebp)
502aab:	0f 87 78 fe ff ff    	ja     0x502929
502ab1:	8b 4d d0             	mov    -0x30(%ebp),%ecx
502ab4:	66 8b 45 dc          	mov    -0x24(%ebp),%ax
502ab8:	66 89 01             	mov    %ax,(%ecx)
502abb:	8b 55 d0             	mov    -0x30(%ebp),%edx
502abe:	66 8b 4d d8          	mov    -0x28(%ebp),%cx
502ac2:	66 89 4a 02          	mov    %cx,0x2(%edx)
502ac6:	8b 45 d0             	mov    -0x30(%ebp),%eax
502ac9:	66 8b 55 d4          	mov    -0x2c(%ebp),%dx
502acd:	66 89 50 04          	mov    %dx,0x4(%eax)
502ad1:	ff 45 b8             	incl   -0x48(%ebp)
502ad4:	83 45 90 04          	addl   $0x4,-0x70(%ebp)
502ad8:	83 45 94 04          	addl   $0x4,-0x6c(%ebp)
502adc:	8b 4d b8             	mov    -0x48(%ebp),%ecx
502adf:	3b 4d 08             	cmp    0x8(%ebp),%ecx
502ae2:	0f 8c 9a fd ff ff    	jl     0x502882
502ae8:	5f                   	pop    %edi
502ae9:	5e                   	pop    %esi
502aea:	5b                   	pop    %ebx
502aeb:	8b e5                	mov    %ebp,%esp
502aed:	5d                   	pop    %ebp
502aee:	c2 04 00             	ret    $0x4
502af1:	90                   	nop
502af2:	90                   	nop
502af3:	90                   	nop
502af4:	53                   	push   %ebx
502af5:	56                   	push   %esi
502af6:	57                   	push   %edi
502af7:	b9 fc 07 00 00       	mov    $0x7fc,%ecx
502afc:	8b 70 04             	mov    0x4(%eax),%esi
502aff:	8b 98 c4 01 00 00    	mov    0x1c4(%eax),%ebx