5de7ec:	03 f7                	add    %edi,%esi
5de7ee:	13 d3                	adc    %ebx,%edx
5de7f0:	85 c9                	test   %ecx,%ecx
5de7f2:	74 05                	je     0x5de7f9
5de7f4:	83 c1 fe             	add    $0xfffffffe,%ecx
5de7f7:	eb 08                	jmp    0x5de801
5de7f9:	8b 8d e0 f6 ff ff    	mov    -0x920(%ebp),%ecx
5de7ff:	f7 d1                	not    %ecx
5de801:	ff b5 ac f6 ff ff    	push   -0x954(%ebp)
5de807:	8b 85 b4 f6 ff ff    	mov    -0x94c(%ebp),%eax
5de80d:	ff b5 d8 f6 ff ff    	push   -0x928(%ebp)
5de813:	0f b6 80 08 03 00 00 	movzbl 0x308(%eax),%eax
5de81a:	50                   	push   %eax
5de81b:	51                   	push   %ecx
5de81c:	52                   	push   %edx
5de81d:	56                   	push   %esi
5de81e:	e8 85 dd ff ff       	call   0x5dc5a8
5de823:	83 c4 18             	add    $0x18,%esp
5de826:	eb 37                	jmp    0x5de85f
5de828:	8b 85 a4 f6 ff ff    	mov    -0x95c(%ebp),%eax
5de82e:	3b 85 a8 f6 ff ff    	cmp    -0x958(%ebp),%eax
5de834:	ff b5 ac f6 ff ff    	push   -0x954(%ebp)
5de83a:	0f 95 c0             	setne  %al
5de83d:	0f b6 c0             	movzbl %al,%eax
5de840:	50                   	push   %eax
5de841:	8b 85 b4 f6 ff ff    	mov    -0x94c(%ebp),%eax
5de847:	0f b6 80 08 03 00 00 	movzbl 0x308(%eax),%eax
5de84e:	50                   	push   %eax
5de84f:	51                   	push   %ecx
5de850:	8d 85 2c fe ff ff    	lea    -0x1d4(%ebp),%eax
5de856:	50                   	push   %eax
5de857:	e8 a5 e0 ff ff       	call   0x5dc901
5de85c:	83 c4 14             	add    $0x14,%esp
5de85f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5de862:	5f                   	pop    %edi
5de863:	5e                   	pop    %esi
5de864:	33 cd                	xor    %ebp,%ecx
5de866:	5b                   	pop    %ebx
5de867:	e8 ba 31 ff ff       	call   0x5d1a26
5de86c:	c9                   	leave
5de86d:	c3                   	ret
5de86e:	8b ff                	mov    %edi,%edi
5de870:	55                   	push   %ebp
5de871:	8b ec                	mov    %esp,%ebp
5de873:	51                   	push   %ecx
5de874:	51                   	push   %ecx
5de875:	8b 45 0c             	mov    0xc(%ebp),%eax
5de878:	8b 4d 08             	mov    0x8(%ebp),%ecx
5de87b:	53                   	push   %ebx
5de87c:	56                   	push   %esi
5de87d:	33 db                	xor    %ebx,%ebx
5de87f:	57                   	push   %edi
5de880:	33 ff                	xor    %edi,%edi
5de882:	8d 71 08             	lea    0x8(%ecx),%esi
5de885:	8b d7                	mov    %edi,%edx
5de887:	38 50 04             	cmp    %dl,0x4(%eax)
5de88a:	8b 41 04             	mov    0x4(%ecx),%eax
5de88d:	0f 94 c3             	sete   %bl
5de890:	89 55 fc             	mov    %edx,-0x4(%ebp)
5de893:	4b                   	dec    %ebx
5de894:	83 c0 08             	add    $0x8,%eax
5de897:	83 e3 1d             	and    $0x1d,%ebx
5de89a:	03 c1                	add    %ecx,%eax
5de89c:	83 c3 17             	add    $0x17,%ebx
5de89f:	89 45 f8             	mov    %eax,-0x8(%ebp)
5de8a2:	03 19                	add    (%ecx),%ebx
5de8a4:	3b f0                	cmp    %eax,%esi
5de8a6:	74 36                	je     0x5de8de
5de8a8:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5de8ab:	e8 16 06 00 00       	call   0x5deec6
5de8b0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5de8b3:	3b ca                	cmp    %edx,%ecx
5de8b5:	77 21                	ja     0x5de8d8
5de8b7:	72 04                	jb     0x5de8bd
5de8b9:	3b f8                	cmp    %eax,%edi
5de8bb:	77 1b                	ja     0x5de8d8
5de8bd:	0f b6 06             	movzbl (%esi),%eax
5de8c0:	46                   	inc    %esi
5de8c1:	0f a4 f9 04          	shld   $0x4,%edi,%ecx
5de8c5:	99                   	cltd
5de8c6:	c1 e7 04             	shl    $0x4,%edi
5de8c9:	03 f8                	add    %eax,%edi
5de8cb:	13 ca                	adc    %edx,%ecx
5de8cd:	83 eb 04             	sub    $0x4,%ebx
5de8d0:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5de8d3:	3b 75 f8             	cmp    -0x8(%ebp),%esi
5de8d6:	75 d0                	jne    0x5de8a8
5de8d8:	8b 4d 08             	mov    0x8(%ebp),%ecx
5de8db:	8b 55 fc             	mov    -0x4(%ebp),%edx
5de8de:	b0 01                	mov    $0x1,%al
5de8e0:	eb 0c                	jmp    0x5de8ee
5de8e2:	84 c0                	test   %al,%al
5de8e4:	74 10                	je     0x5de8f6
5de8e6:	8a 06                	mov    (%esi),%al
5de8e8:	46                   	inc    %esi
5de8e9:	84 c0                	test   %al,%al
5de8eb:	0f 94 c0             	sete   %al
5de8ee:	88 45 fc             	mov    %al,-0x4(%ebp)
5de8f1:	3b 75 f8             	cmp    -0x8(%ebp),%esi
5de8f4:	75 ec                	jne    0x5de8e2
5de8f6:	ff 75 0c             	push   0xc(%ebp)
5de8f9:	0f b6 81 08 03 00 00 	movzbl 0x308(%ecx),%eax
5de900:	ff 75 fc             	push   -0x4(%ebp)
5de903:	50                   	push   %eax
5de904:	53                   	push   %ebx
5de905:	52                   	push   %edx
5de906:	57                   	push   %edi
5de907:	e8 9c dc ff ff       	call   0x5dc5a8
5de90c:	83 c4 18             	add    $0x18,%esp
5de90f:	5f                   	pop    %edi
5de910:	5e                   	pop    %esi
5de911:	5b                   	pop    %ebx
5de912:	c9                   	leave
5de913:	c3                   	ret
5de914:	80 79 04 00          	cmpb   $0x0,0x4(%ecx)
5de918:	74 09                	je     0x5de923
5de91a:	83 c8 ff             	or     $0xffffffff,%eax
5de91d:	ba ff ff 0f 00       	mov    $0xfffff,%edx
5de922:	c3                   	ret
5de923:	b8 ff ff 7f 00       	mov    $0x7fffff,%eax
5de928:	33 d2                	xor    %edx,%edx
5de92a:	c3                   	ret
5de92b:	cc                   	int3
5de92c:	cc                   	int3
5de92d:	cc                   	int3
5de92e:	cc                   	int3
5de92f:	cc                   	int3
5de930:	8b ff                	mov    %edi,%edi
5de932:	55                   	push   %ebp
5de933:	8b ec                	mov    %esp,%ebp
5de935:	81 ec 20 02 00 00    	sub    $0x220,%esp
5de93b:	8b 4d 08             	mov    0x8(%ebp),%ecx
5de93e:	53                   	push   %ebx
5de93f:	56                   	push   %esi
5de940:	57                   	push   %edi
5de941:	8b 01                	mov    (%ecx),%eax
5de943:	89 45 f8             	mov    %eax,-0x8(%ebp)
5de946:	85 c0                	test   %eax,%eax
5de948:	0f 84 82 04 00 00    	je     0x5dedd0
5de94e:	8b 7d 0c             	mov    0xc(%ebp),%edi
5de951:	8b 37                	mov    (%edi),%esi
5de953:	89 75 ec             	mov    %esi,-0x14(%ebp)
5de956:	85 f6                	test   %esi,%esi
5de958:	0f 84 72 04 00 00    	je     0x5dedd0
5de95e:	48                   	dec    %eax
5de95f:	89 45 f4             	mov    %eax,-0xc(%ebp)
5de962:	83 c6 ff             	add    $0xffffffff,%esi
5de965:	0f 85 3e 01 00 00    	jne    0x5deaa9
5de96b:	8b 5f 04             	mov    0x4(%edi),%ebx
5de96e:	83 fb 01             	cmp    $0x1,%ebx
5de971:	75 3b                	jne    0x5de9ae
5de973:	8b 55 08             	mov    0x8(%ebp),%edx
5de976:	8d 85 e4 fd ff ff    	lea    -0x21c(%ebp),%eax
5de97c:	8b 71 04             	mov    0x4(%ecx),%esi
5de97f:	83 c1 04             	add    $0x4,%ecx
5de982:	6a 00                	push   $0x0
5de984:	50                   	push   %eax
5de985:	68 cc 01 00 00       	push   $0x1cc
5de98a:	51                   	push   %ecx
5de98b:	c7 85 e0 fd ff ff 00 	movl   $0x0,-0x220(%ebp)
5de992:	00 00 00
5de995:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
5de99b:	e8 e9 0f 00 00       	call   0x5df989
5de9a0:	83 c4 10             	add    $0x10,%esp
5de9a3:	8b c6                	mov    %esi,%eax
5de9a5:	33 d2                	xor    %edx,%edx
5de9a7:	5f                   	pop    %edi
5de9a8:	5e                   	pop    %esi
5de9a9:	5b                   	pop    %ebx
5de9aa:	8b e5                	mov    %ebp,%esp
5de9ac:	5d                   	pop    %ebp
5de9ad:	c3                   	ret
5de9ae:	85 c0                	test   %eax,%eax
5de9b0:	75 48                	jne    0x5de9fa
5de9b2:	8b 79 04             	mov    0x4(%ecx),%edi
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)