5de9b5:	8d 71 04             	lea    0x4(%ecx),%esi
5de9b8:	50                   	push   %eax
5de9b9:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
5de9bf:	89 01                	mov    %eax,(%ecx)
5de9c1:	8d 85 e4 fd ff ff    	lea    -0x21c(%ebp),%eax
5de9c7:	50                   	push   %eax
5de9c8:	68 cc 01 00 00       	push   $0x1cc
5de9cd:	56                   	push   %esi
5de9ce:	e8 b6 0f 00 00       	call   0x5df989
5de9d3:	33 d2                	xor    %edx,%edx
5de9d5:	8b c7                	mov    %edi,%eax
5de9d7:	f7 f3                	div    %ebx
5de9d9:	83 c4 10             	add    $0x10,%esp
5de9dc:	33 c0                	xor    %eax,%eax
5de9de:	3b c2                	cmp    %edx,%eax
5de9e0:	89 16                	mov    %edx,(%esi)
5de9e2:	8b 55 08             	mov    0x8(%ebp),%edx
5de9e5:	8b c7                	mov    %edi,%eax
5de9e7:	1b c9                	sbb    %ecx,%ecx
5de9e9:	f7 d9                	neg    %ecx
5de9eb:	5f                   	pop    %edi
5de9ec:	89 0a                	mov    %ecx,(%edx)
5de9ee:	33 d2                	xor    %edx,%edx
5de9f0:	f7 f3                	div    %ebx
5de9f2:	5e                   	pop    %esi
5de9f3:	33 d2                	xor    %edx,%edx
5de9f5:	5b                   	pop    %ebx
5de9f6:	8b e5                	mov    %ebp,%esp
5de9f8:	5d                   	pop    %ebp
5de9f9:	c3                   	ret
5de9fa:	33 ff                	xor    %edi,%edi
5de9fc:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
5dea03:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
5dea0a:	89 7d ec             	mov    %edi,-0x14(%ebp)
5dea0d:	83 f8 ff             	cmp    $0xffffffff,%eax
5dea10:	74 4a                	je     0x5dea5c
5dea12:	40                   	inc    %eax
5dea13:	8d 04 81             	lea    (%ecx,%eax,4),%eax
5dea16:	89 45 e8             	mov    %eax,-0x18(%ebp)
5dea19:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
5dea20:	6a 00                	push   $0x0
5dea22:	53                   	push   %ebx
5dea23:	33 f6                	xor    %esi,%esi
5dea25:	0b 30                	or     (%eax),%esi
5dea27:	57                   	push   %edi
5dea28:	56                   	push   %esi
5dea29:	e8 f2 2a ff ff       	call   0x5d1520
5dea2e:	6a 00                	push   $0x0
5dea30:	33 c9                	xor    %ecx,%ecx
5dea32:	03 c1                	add    %ecx,%eax
5dea34:	53                   	push   %ebx
5dea35:	13 4d f4             	adc    -0xc(%ebp),%ecx
5dea38:	57                   	push   %edi
5dea39:	56                   	push   %esi
5dea3a:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5dea3d:	89 45 f4             	mov    %eax,-0xc(%ebp)
5dea40:	e8 6b 27 ff ff       	call   0x5d11b0
5dea45:	8b f8                	mov    %eax,%edi
5dea47:	89 55 ec             	mov    %edx,-0x14(%ebp)
5dea4a:	8b 45 e8             	mov    -0x18(%ebp),%eax
5dea4d:	83 e8 04             	sub    $0x4,%eax
5dea50:	83 6d f8 01          	subl   $0x1,-0x8(%ebp)
5dea54:	89 45 e8             	mov    %eax,-0x18(%ebp)
5dea57:	75 c7                	jne    0x5dea20
5dea59:	8b 4d 08             	mov    0x8(%ebp),%ecx
5dea5c:	6a 00                	push   $0x0
5dea5e:	8d 85 e4 fd ff ff    	lea    -0x21c(%ebp),%eax
5dea64:	c7 85 e0 fd ff ff 00 	movl   $0x0,-0x220(%ebp)
5dea6b:	00 00 00
5dea6e:	50                   	push   %eax
5dea6f:	8d 71 04             	lea    0x4(%ecx),%esi
5dea72:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
5dea78:	68 cc 01 00 00       	push   $0x1cc
5dea7d:	56                   	push   %esi
5dea7e:	e8 06 0f 00 00       	call   0x5df989
5dea83:	8b 45 ec             	mov    -0x14(%ebp),%eax
5dea86:	83 c4 10             	add    $0x10,%esp
5dea89:	8b 55 08             	mov    0x8(%ebp),%edx
5dea8c:	33 c9                	xor    %ecx,%ecx
5dea8e:	3b c8                	cmp    %eax,%ecx
5dea90:	89 3e                	mov    %edi,(%esi)
5dea92:	1b c9                	sbb    %ecx,%ecx
5dea94:	f7 d9                	neg    %ecx
5dea96:	89 42 08             	mov    %eax,0x8(%edx)
5dea99:	8b 45 f4             	mov    -0xc(%ebp),%eax
5dea9c:	41                   	inc    %ecx
5dea9d:	5f                   	pop    %edi
5dea9e:	5e                   	pop    %esi
5dea9f:	89 0a                	mov    %ecx,(%edx)
5deaa1:	8b 55 fc             	mov    -0x4(%ebp),%edx
5deaa4:	5b                   	pop    %ebx
5deaa5:	8b e5                	mov    %ebp,%esp
5deaa7:	5d                   	pop    %ebp
5deaa8:	c3                   	ret
5deaa9:	3b f0                	cmp    %eax,%esi
5deaab:	0f 87 1f 03 00 00    	ja     0x5dedd0
5deab1:	8b d0                	mov    %eax,%edx
5deab3:	8b d8                	mov    %eax,%ebx
5deab5:	2b d6                	sub    %esi,%edx
5deab7:	3b da                	cmp    %edx,%ebx
5deab9:	7c 1f                	jl     0x5deada
5deabb:	8d 0c 99             	lea    (%ecx,%ebx,4),%ecx
5deabe:	83 c1 04             	add    $0x4,%ecx
5deac1:	46                   	inc    %esi
5deac2:	8d 34 b7             	lea    (%edi,%esi,4),%esi
5deac5:	8b 3e                	mov    (%esi),%edi
5deac7:	3b 39                	cmp    (%ecx),%edi
5deac9:	75 0d                	jne    0x5dead8
5deacb:	48                   	dec    %eax
5deacc:	83 ee 04             	sub    $0x4,%esi
5deacf:	83 e9 04             	sub    $0x4,%ecx
5dead2:	3b c2                	cmp    %edx,%eax
5dead4:	7d ef                	jge    0x5deac5
5dead6:	eb 02                	jmp    0x5deada
5dead8:	73 01                	jae    0x5deadb
5deada:	42                   	inc    %edx
5deadb:	85 d2                	test   %edx,%edx
5deadd:	0f 84 ed 02 00 00    	je     0x5dedd0
5deae3:	8b 7d ec             	mov    -0x14(%ebp),%edi
5deae6:	8b 75 0c             	mov    0xc(%ebp),%esi
5deae9:	8b 44 be fc          	mov    -0x4(%esi,%edi,4),%eax
5deaed:	8b 1c be             	mov    (%esi,%edi,4),%ebx
5deaf0:	89 45 e0             	mov    %eax,-0x20(%ebp)
5deaf3:	0f bd c3             	bsr    %ebx,%eax
5deaf6:	89 5d d0             	mov    %ebx,-0x30(%ebp)
5deaf9:	74 09                	je     0x5deb04
5deafb:	b9 1f 00 00 00       	mov    $0x1f,%ecx
5deb00:	2b c8                	sub    %eax,%ecx
5deb02:	eb 05                	jmp    0x5deb09
5deb04:	b9 20 00 00 00       	mov    $0x20,%ecx
5deb09:	b8 20 00 00 00       	mov    $0x20,%eax
5deb0e:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
5deb11:	2b c1                	sub    %ecx,%eax
5deb13:	89 45 d4             	mov    %eax,-0x2c(%ebp)
5deb16:	85 c9                	test   %ecx,%ecx
5deb18:	74 2d                	je     0x5deb47
5deb1a:	8b 45 e0             	mov    -0x20(%ebp),%eax
5deb1d:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
5deb20:	d3 e8                	shr    %cl,%eax
5deb22:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
5deb25:	d3 e3                	shl    %cl,%ebx
5deb27:	0b d8                	or     %eax,%ebx
5deb29:	89 5d d0             	mov    %ebx,-0x30(%ebp)
5deb2c:	8b 5d e0             	mov    -0x20(%ebp),%ebx
5deb2f:	d3 e3                	shl    %cl,%ebx
5deb31:	89 5d e0             	mov    %ebx,-0x20(%ebp)
5deb34:	83 ff 02             	cmp    $0x2,%edi
5deb37:	76 0e                	jbe    0x5deb47
5deb39:	8b 44 be f8          	mov    -0x8(%esi,%edi,4),%eax
5deb3d:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
5deb40:	d3 e8                	shr    %cl,%eax
5deb42:	0b d8                	or     %eax,%ebx
5deb44:	89 5d e0             	mov    %ebx,-0x20(%ebp)
5deb47:	8d 5a ff             	lea    -0x1(%edx),%ebx
5deb4a:	c7 45 b4 00 00 00 00 	movl   $0x0,-0x4c(%ebp)
5deb51:	33 f6                	xor    %esi,%esi
5deb53:	89 5d b0             	mov    %ebx,-0x50(%ebp)
5deb56:	85 db                	test   %ebx,%ebx
5deb58:	0f 88 31 02 00 00    	js     0x5ded8f
5deb5e:	8b 55 08             	mov    0x8(%ebp),%edx
5deb61:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
5deb64:	89 45 c8             	mov    %eax,-0x38(%ebp)
5deb67:	8d 4a 04             	lea    0x4(%edx),%ecx
5deb6a:	8d 0c 99             	lea    (%ecx,%ebx,4),%ecx
5deb6d:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
5deb70:	8d 4a fc             	lea    -0x4(%edx),%ecx
5deb73:	8d 0c 81             	lea    (%ecx,%eax,4),%ecx
5deb76:	89 4d e8             	mov    %ecx,-0x18(%ebp)
5deb79:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
5deb80:	3b 45 f4             	cmp    -0xc(%ebp),%eax
5deb83:	77 05                	ja     0x5deb8a
5deb85:	8b 51 08             	mov    0x8(%ecx),%edx
5deb88:	eb 02                	jmp    0x5deb8c
5deb8a:	33 d2                	xor    %edx,%edx
5deb8c:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
5deb90:	8b 41 04             	mov    0x4(%ecx),%eax
5deb93:	8b 19                	mov    (%ecx),%ebx
5deb95:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
5deb9c:	89 55 b8             	mov    %edx,-0x48(%ebp)
5deb9f:	89 45 fc             	mov    %eax,-0x4(%ebp)
5deba2:	89 55 dc             	mov    %edx,-0x24(%ebp)
5deba5:	89 5d f8             	mov    %ebx,-0x8(%ebp)
5deba8:	76 3c                	jbe    0x5debe6
5debaa:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
5debad:	8b fb                	mov    %ebx,%edi
5debaf:	d3 ef                	shr    %cl,%edi
5debb1:	33 f6                	xor    %esi,%esi
5debb3:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
5debb6:	e8 f5 2f ff ff       	call   0x5d1bb0
5debbb:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
5debbe:	0b c7                	or     %edi,%eax
5debc0:	0b d6                	or     %esi,%edx
5debc2:	d3 e3                	shl    %cl,%ebx
5debc4:	83 7d c8 03          	cmpl   $0x3,-0x38(%ebp)
5debc8:	89 45 fc             	mov    %eax,-0x4(%ebp)
5debcb:	89 55 dc             	mov    %edx,-0x24(%ebp)
5debce:	89 5d f8             	mov    %ebx,-0x8(%ebp)
5debd1:	72 13                	jb     0x5debe6
5debd3:	8b 45 e8             	mov    -0x18(%ebp),%eax
5debd6:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
5debd9:	8b 40 fc             	mov    -0x4(%eax),%eax
5debdc:	d3 e8                	shr    %cl,%eax
5debde:	0b d8                	or     %eax,%ebx
5debe0:	8b 45 fc             	mov    -0x4(%ebp),%eax
5debe3:	89 5d f8             	mov    %ebx,-0x8(%ebp)
5debe6:	8b 75 d0             	mov    -0x30(%ebp),%esi
5debe9:	6a 00                	push   $0x0
5debeb:	56                   	push   %esi
5debec:	52                   	push   %edx
5debed:	50                   	push   %eax
5debee:	e8 2d 29 ff ff       	call   0x5d1520
5debf3:	6a 00                	push   $0x0
5debf5:	56                   	push   %esi
5debf6:	ff 75 dc             	push   -0x24(%ebp)
5debf9:	8b d8                	mov    %eax,%ebx
5debfb:	89 55 f0             	mov    %edx,-0x10(%ebp)
5debfe:	ff 75 fc             	push   -0x4(%ebp)
5dec01:	89 5d cc             	mov    %ebx,-0x34(%ebp)
5dec04:	89 5d bc             	mov    %ebx,-0x44(%ebp)
5dec07:	89 55 c0             	mov    %edx,-0x40(%ebp)
5dec0a:	e8 a1 25 ff ff       	call   0x5d11b0
5dec0f:	8b f8                	mov    %eax,%edi
5dec11:	33 f6                	xor    %esi,%esi
5dec13:	8b 45 f0             	mov    -0x10(%ebp),%eax
5dec16:	89 75 fc             	mov    %esi,-0x4(%ebp)
5dec19:	85 c0                	test   %eax,%eax
5dec1b:	75 05                	jne    0x5dec22
5dec1d:	83 fb ff             	cmp    $0xffffffff,%ebx
5dec20:	76 2a                	jbe    0x5dec4c
5dec22:	6a 00                	push   $0x0
5dec24:	ff 75 d0             	push   -0x30(%ebp)
5dec27:	83 c3 01             	add    $0x1,%ebx
5dec2a:	83 d0 ff             	adc    $0xffffffff,%eax
5dec2d:	50                   	push   %eax
5dec2e:	53                   	push   %ebx
5dec2f:	e8 4c 32 ff ff       	call   0x5d1e80
5dec34:	03 f8                	add    %eax,%edi
5dec36:	13 f2                	adc    %edx,%esi
5dec38:	83 cb ff             	or     $0xffffffff,%ebx
5dec3b:	33 c0                	xor    %eax,%eax
5dec3d:	89 75 fc             	mov    %esi,-0x4(%ebp)
5dec40:	89 5d cc             	mov    %ebx,-0x34(%ebp)
5dec43:	89 5d bc             	mov    %ebx,-0x44(%ebp)
5dec46:	89 45 f0             	mov    %eax,-0x10(%ebp)
5dec49:	89 45 c0             	mov    %eax,-0x40(%ebp)
5dec4c:	85 f6                	test   %esi,%esi
5dec4e:	77 50                	ja     0x5deca0
5dec50:	72 05                	jb     0x5dec57
5dec52:	83 ff ff             	cmp    $0xffffffff,%edi
5dec55:	77 49                	ja     0x5deca0
5dec57:	50                   	push   %eax
5dec58:	53                   	push   %ebx
5dec59:	33 c9                	xor    %ecx,%ecx
5dec5b:	8b f7                	mov    %edi,%esi
5dec5d:	0b 4d f8             	or     -0x8(%ebp),%ecx
5dec60:	6a 00                	push   $0x0
5dec62:	ff 75 e0             	push   -0x20(%ebp)
5dec65:	89 4d dc             	mov    %ecx,-0x24(%ebp)
5dec68:	e8 13 32 ff ff       	call   0x5d1e80
5dec6d:	3b d6                	cmp    %esi,%edx
5dec6f:	72 29                	jb     0x5dec9a
5dec71:	77 05                	ja     0x5dec78
5dec73:	3b 45 dc             	cmp    -0x24(%ebp),%eax
5dec76:	76 22                	jbe    0x5dec9a
5dec78:	8b 45 f0             	mov    -0x10(%ebp),%eax
5dec7b:	83 c3 ff             	add    $0xffffffff,%ebx
5dec7e:	89 5d bc             	mov    %ebx,-0x44(%ebp)
5dec81:	83 d0 ff             	adc    $0xffffffff,%eax
5dec84:	03 7d d0             	add    -0x30(%ebp),%edi
5dec87:	89 45 f0             	mov    %eax,-0x10(%ebp)
5dec8a:	83 55 fc 00          	adcl   $0x0,-0x4(%ebp)
5dec8e:	89 45 c0             	mov    %eax,-0x40(%ebp)
5dec91:	75 0a                	jne    0x5dec9d
5dec93:	83 ff ff             	cmp    $0xffffffff,%edi
5dec96:	76 bf                	jbe    0x5dec57
5dec98:	eb 03                	jmp    0x5dec9d
5dec9a:	8b 45 f0             	mov    -0x10(%ebp),%eax
5dec9d:	89 5d cc             	mov    %ebx,-0x34(%ebp)
5deca0:	85 c0                	test   %eax,%eax
5deca2:	75 08                	jne    0x5decac
5deca4:	85 db                	test   %ebx,%ebx
5deca6:	0f 84 af 00 00 00    	je     0x5ded5b
5decac:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5decaf:	33 ff                	xor    %edi,%edi
5decb1:	8b 45 0c             	mov    0xc(%ebp),%eax
5decb4:	33 f6                	xor    %esi,%esi
5decb6:	85 c9                	test   %ecx,%ecx
5decb8:	74 55                	je     0x5ded0f
5decba:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
5decbd:	83 c0 04             	add    $0x4,%eax
5decc0:	89 45 f8             	mov    %eax,-0x8(%ebp)
5decc3:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5decc6:	8b 00                	mov    (%eax),%eax
5decc8:	89 45 dc             	mov    %eax,-0x24(%ebp)
5deccb:	8b 45 c0             	mov    -0x40(%ebp),%eax
5decce:	f7 65 dc             	mull   -0x24(%ebp)
5decd1:	8b c8                	mov    %eax,%ecx
5decd3:	8b 45 bc             	mov    -0x44(%ebp),%eax
5decd6:	f7 65 dc             	mull   -0x24(%ebp)
5decd9:	03 d1                	add    %ecx,%edx
5decdb:	03 f8                	add    %eax,%edi
5decdd:	8b 03                	mov    (%ebx),%eax
5decdf:	8b cf                	mov    %edi,%ecx
5dece1:	13 f2                	adc    %edx,%esi
5dece3:	8b fe                	mov    %esi,%edi
5dece5:	33 f6                	xor    %esi,%esi
5dece7:	3b c1                	cmp    %ecx,%eax
5dece9:	73 05                	jae    0x5decf0
5deceb:	83 c7 01             	add    $0x1,%edi
5decee:	13 f6                	adc    %esi,%esi
5decf0:	2b c1                	sub    %ecx,%eax
5decf2:	89 03                	mov    %eax,(%ebx)
5decf4:	83 c3 04             	add    $0x4,%ebx
5decf7:	8b 45 f8             	mov    -0x8(%ebp),%eax
5decfa:	83 c0 04             	add    $0x4,%eax
5decfd:	83 6d fc 01          	subl   $0x1,-0x4(%ebp)
5ded01:	89 45 f8             	mov    %eax,-0x8(%ebp)
5ded04:	75 c0                	jne    0x5decc6
5ded06:	8b 45 0c             	mov    0xc(%ebp),%eax
5ded09:	8b 5d cc             	mov    -0x34(%ebp),%ebx
5ded0c:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5ded0f:	83 c0 04             	add    $0x4,%eax
5ded12:	89 45 dc             	mov    %eax,-0x24(%ebp)
5ded15:	33 c0                	xor    %eax,%eax
5ded17:	3b c6                	cmp    %esi,%eax
5ded19:	77 39                	ja     0x5ded54
5ded1b:	72 05                	jb     0x5ded22
5ded1d:	39 7d b8             	cmp    %edi,-0x48(%ebp)
5ded20:	73 32                	jae    0x5ded54
5ded22:	85 c9                	test   %ecx,%ecx
5ded24:	74 2b                	je     0x5ded51
5ded26:	8b 55 c4             	mov    -0x3c(%ebp),%edx
5ded29:	33 db                	xor    %ebx,%ebx
5ded2b:	8b 75 dc             	mov    -0x24(%ebp),%esi
5ded2e:	8b f9                	mov    %ecx,%edi
5ded30:	8b 0a                	mov    (%edx),%ecx
5ded32:	8d 76 04             	lea    0x4(%esi),%esi
5ded35:	33 c0                	xor    %eax,%eax
5ded37:	8d 52 04             	lea    0x4(%edx),%edx
5ded3a:	03 4e fc             	add    -0x4(%esi),%ecx
5ded3d:	13 c0                	adc    %eax,%eax
5ded3f:	03 cb                	add    %ebx,%ecx
5ded41:	89 4a fc             	mov    %ecx,-0x4(%edx)
5ded44:	83 d0 00             	adc    $0x0,%eax
5ded47:	8b d8                	mov    %eax,%ebx
5ded49:	83 ef 01             	sub    $0x1,%edi
5ded4c:	75 e2                	jne    0x5ded30
5ded4e:	8b 5d cc             	mov    -0x34(%ebp),%ebx
5ded51:	83 c3 ff             	add    $0xffffffff,%ebx
5ded54:	8b 45 c8             	mov    -0x38(%ebp),%eax