46be23:	eb 02                	jmp    0x46be27
46be25:	33 f6                	xor    %esi,%esi
46be27:	8b 45 fc             	mov    -0x4(%ebp),%eax
46be2a:	8b 55 08             	mov    0x8(%ebp),%edx
46be2d:	8d 0c 86             	lea    (%esi,%eax,4),%ecx
46be30:	8b 45 0c             	mov    0xc(%ebp),%eax
46be33:	89 4d fc             	mov    %ecx,-0x4(%ebp)
46be36:	8b 00                	mov    (%eax),%eax
46be38:	89 01                	mov    %eax,(%ecx)
46be3a:	8b 47 04             	mov    0x4(%edi),%eax
46be3d:	8b 0f                	mov    (%edi),%ecx
46be3f:	3b d0                	cmp    %eax,%edx
46be41:	75 0f                	jne    0x46be52
46be43:	2b c1                	sub    %ecx,%eax
46be45:	50                   	push   %eax
46be46:	51                   	push   %ecx
46be47:	56                   	push   %esi
46be48:	e8 83 6f 16 00       	call   0x5d2dd0
46be4d:	83 c4 0c             	add    $0xc,%esp
46be50:	eb 23                	jmp    0x46be75
46be52:	2b d1                	sub    %ecx,%edx
46be54:	52                   	push   %edx
46be55:	51                   	push   %ecx
46be56:	56                   	push   %esi
46be57:	e8 74 6f 16 00       	call   0x5d2dd0
46be5c:	8b 47 04             	mov    0x4(%edi),%eax
46be5f:	8b 4d 08             	mov    0x8(%ebp),%ecx
46be62:	2b c1                	sub    %ecx,%eax
46be64:	50                   	push   %eax
46be65:	8b 45 fc             	mov    -0x4(%ebp),%eax
46be68:	51                   	push   %ecx
46be69:	83 c0 04             	add    $0x4,%eax
46be6c:	50                   	push   %eax
46be6d:	e8 5e 6f 16 00       	call   0x5d2dd0
46be72:	83 c4 18             	add    $0x18,%esp
46be75:	8b 07                	mov    (%edi),%eax
46be77:	85 c0                	test   %eax,%eax
46be79:	74 2c                	je     0x46bea7
46be7b:	8b 4f 08             	mov    0x8(%edi),%ecx
46be7e:	2b c8                	sub    %eax,%ecx
46be80:	83 e1 fc             	and    $0xfffffffc,%ecx
46be83:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
46be89:	72 12                	jb     0x46be9d
46be8b:	8b 50 fc             	mov    -0x4(%eax),%edx
46be8e:	83 c1 23             	add    $0x23,%ecx
46be91:	2b c2                	sub    %edx,%eax
46be93:	83 c0 fc             	add    $0xfffffffc,%eax
46be96:	83 f8 1f             	cmp    $0x1f,%eax
46be99:	77 33                	ja     0x46bece
46be9b:	8b c2                	mov    %edx,%eax
46be9d:	51                   	push   %ecx
46be9e:	50                   	push   %eax
46be9f:	e8 b1 53 16 00       	call   0x5d1255
46bea4:	83 c4 08             	add    $0x8,%esp
46bea7:	8b 45 f8             	mov    -0x8(%ebp),%eax
46beaa:	89 37                	mov    %esi,(%edi)
46beac:	8d 0c 86             	lea    (%esi,%eax,4),%ecx
46beaf:	8b 45 fc             	mov    -0x4(%ebp),%eax
46beb2:	89 4f 04             	mov    %ecx,0x4(%edi)
46beb5:	8d 0c 33             	lea    (%ebx,%esi,1),%ecx
46beb8:	89 4f 08             	mov    %ecx,0x8(%edi)
46bebb:	5f                   	pop    %edi
46bebc:	5e                   	pop    %esi
46bebd:	5b                   	pop    %ebx
46bebe:	8b e5                	mov    %ebp,%esp
46bec0:	5d                   	pop    %ebp
46bec1:	c2 08 00             	ret    $0x8
46bec4:	e8 27 b7 fd ff       	call   0x4475f0
46bec9:	e8 d2 08 ff ff       	call   0x45c7a0
46bece:	e8 1d a3 16 00       	call   0x5d61f0
46bed3:	cc                   	int3
46bed4:	cc                   	int3
46bed5:	cc                   	int3
46bed6:	cc                   	int3
46bed7:	cc                   	int3
46bed8:	cc                   	int3
46bed9:	cc                   	int3
46beda:	cc                   	int3
46bedb:	cc                   	int3
46bedc:	cc                   	int3
46bedd:	cc                   	int3
46bede:	cc                   	int3
46bedf:	cc                   	int3
46bee0:	55                   	push   %ebp
46bee1:	8b ec                	mov    %esp,%ebp
46bee3:	6a ff                	push   $0xffffffff
46bee5:	68 e5 97 5f 00       	push   $0x5f97e5
46beea:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
46bef0:	50                   	push   %eax
46bef1:	81 ec 88 00 00 00    	sub    $0x88,%esp
46bef7:	a1 c0 14 69 00       	mov    0x6914c0,%eax
46befc:	33 c5                	xor    %ebp,%eax
46befe:	89 45 f0             	mov    %eax,-0x10(%ebp)
46bf01:	53                   	push   %ebx
46bf02:	56                   	push   %esi
46bf03:	57                   	push   %edi
46bf04:	50                   	push   %eax
46bf05:	8d 45 f4             	lea    -0xc(%ebp),%eax
46bf08:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
46bf0e:	83 7d 10 20          	cmpl   $0x20,0x10(%ebp)
46bf12:	8b 7d 08             	mov    0x8(%ebp),%edi
46bf15:	89 bd 78 ff ff ff    	mov    %edi,-0x88(%ebp)
46bf1b:	0f 8e 62 01 00 00    	jle    0x46c083
46bf21:	8b 45 14             	mov    0x14(%ebp),%eax
46bf24:	8d 8f 80 00 00 00    	lea    0x80(%edi),%ecx
46bf2a:	89 8d 74 ff ff ff    	mov    %ecx,-0x8c(%ebp)
46bf30:	89 45 84             	mov    %eax,-0x7c(%ebp)
46bf33:	3b f9                	cmp    %ecx,%edi
46bf35:	0f 84 2e 01 00 00    	je     0x46c069
46bf3b:	8d 77 04             	lea    0x4(%edi),%esi
46bf3e:	89 b5 7c ff ff ff    	mov    %esi,-0x84(%ebp)
46bf44:	3b f1                	cmp    %ecx,%esi
46bf46:	0f 84 1d 01 00 00    	je     0x46c069
46bf4c:	0f 1f 40 00          	nopl   0x0(%eax)
46bf50:	ff 37                	push   (%edi)
46bf52:	8b 1e                	mov    (%esi),%ebx
46bf54:	8d 4d 84             	lea    -0x7c(%ebp),%ecx
46bf57:	53                   	push   %ebx
46bf58:	89 75 88             	mov    %esi,-0x78(%ebp)
46bf5b:	89 5d 80             	mov    %ebx,-0x80(%ebp)
46bf5e:	e8 5d 2e 00 00       	call   0x46edc0
46bf63:	84 c0                	test   %al,%al
46bf65:	74 1d                	je     0x46bf84
46bf67:	8b ce                	mov    %esi,%ecx
46bf69:	8b c6                	mov    %esi,%eax
46bf6b:	2b cf                	sub    %edi,%ecx
46bf6d:	51                   	push   %ecx
46bf6e:	2b c1                	sub    %ecx,%eax
46bf70:	83 c0 04             	add    $0x4,%eax
46bf73:	57                   	push   %edi
46bf74:	50                   	push   %eax
46bf75:	e8 56 6e 16 00       	call   0x5d2dd0
46bf7a:	83 c4 0c             	add    $0xc,%esp
46bf7d:	89 1f                	mov    %ebx,(%edi)
46bf7f:	e9 ce 00 00 00       	jmp    0x46c052
46bf84:	8b fe                	mov    %esi,%edi
46bf86:	8b 75 84             	mov    -0x7c(%ebp),%esi
46bf89:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
46bf90:	8b 47 fc             	mov    -0x4(%edi),%eax
46bf93:	8d 8d 6c ff ff ff    	lea    -0x94(%ebp),%ecx
46bf99:	83 ef 04             	sub    $0x4,%edi
46bf9c:	89 45 94             	mov    %eax,-0x6c(%ebp)
46bf9f:	8b 03                	mov    (%ebx),%eax
46bfa1:	51                   	push   %ecx
46bfa2:	8b cb                	mov    %ebx,%ecx
46bfa4:	ff 50 48             	call   *0x48(%eax)
46bfa7:	8b ce                	mov    %esi,%ecx
46bfa9:	8b 40 04             	mov    0x4(%eax),%eax
46bfac:	89 45 98             	mov    %eax,-0x68(%ebp)
46bfaf:	e8 ec d1 fe ff       	call   0x4591a0
46bfb4:	8b 04 85 98 7b 60 00 	mov    0x607b98(,%eax,4),%eax
46bfbb:	48                   	dec    %eax
46bfbc:	83 f8 08             	cmp    $0x8,%eax
46bfbf:	0f 87 5b 02 00 00    	ja     0x46c220
46bfc5:	ff 24 85 78 c2 46 00 	jmp    *0x46c278(,%eax,4)
46bfcc:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46bfcf:	56                   	push   %esi
46bfd0:	53                   	push   %ebx
46bfd1:	e8 7a 83 ff ff       	call   0x464350
46bfd6:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46bfd9:	8a d8                	mov    %al,%bl
46bfdb:	56                   	push   %esi
46bfdc:	ff 75 94             	push   -0x6c(%ebp)
46bfdf:	e8 6c 83 ff ff       	call   0x464350
46bfe4:	3a d8                	cmp    %al,%bl
46bfe6:	0f 92 c0             	setb   %al
46bfe9:	e9 18 02 00 00       	jmp    0x46c206
46bfee:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46bff1:	56                   	push   %esi
46bff2:	53                   	push   %ebx
46bff3:	e8 38 89 ff ff       	call   0x464930
46bff8:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46bffb:	8b d8                	mov    %eax,%ebx
46bffd:	56                   	push   %esi
46bffe:	ff 75 94             	push   -0x6c(%ebp)
46c001:	e8 2a 89 ff ff       	call   0x464930
46c006:	3b d8                	cmp    %eax,%ebx
46c008:	0f 9c c0             	setl   %al
46c00b:	e9 f6 01 00 00       	jmp    0x46c206
46c010:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46c013:	56                   	push   %esi
46c014:	53                   	push   %ebx
46c015:	e8 f6 89 ff ff       	call   0x464a10
46c01a:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46c01d:	8b da                	mov    %edx,%ebx
46c01f:	56                   	push   %esi
46c020:	ff 75 94             	push   -0x6c(%ebp)
46c023:	89 45 90             	mov    %eax,-0x70(%ebp)
46c026:	e8 e5 89 ff ff       	call   0x464a10
46c02b:	3b da                	cmp    %edx,%ebx
46c02d:	7f 0f                	jg     0x46c03e
46c02f:	0f 8c 2a 02 00 00    	jl     0x46c25f
46c035:	39 45 90             	cmp    %eax,-0x70(%ebp)
46c038:	0f 82 21 02 00 00    	jb     0x46c25f
46c03e:	8b 4d 88             	mov    -0x78(%ebp),%ecx
46c041:	8b 45 80             	mov    -0x80(%ebp),%eax
46c044:	8b b5 7c ff ff ff    	mov    -0x84(%ebp),%esi
46c04a:	8b bd 78 ff ff ff    	mov    -0x88(%ebp),%edi
46c050:	89 01                	mov    %eax,(%ecx)
46c052:	8b 8d 74 ff ff ff    	mov    -0x8c(%ebp),%ecx
46c058:	83 c6 04             	add    $0x4,%esi
46c05b:	89 b5 7c ff ff ff    	mov    %esi,-0x84(%ebp)
46c061:	3b f1                	cmp    %ecx,%esi
46c063:	0f 85 e7 fe ff ff    	jne    0x46bf50
46c069:	8b 45 10             	mov    0x10(%ebp),%eax
46c06c:	8b f9                	mov    %ecx,%edi
46c06e:	83 e8 20             	sub    $0x20,%eax
46c071:	89 bd 78 ff ff ff    	mov    %edi,-0x88(%ebp)
46c077:	89 45 10             	mov    %eax,0x10(%ebp)
46c07a:	83 f8 20             	cmp    $0x20,%eax
46c07d:	0f 8f 9e fe ff ff    	jg     0x46bf21
46c083:	ff 75 14             	push   0x14(%ebp)
46c086:	ff 75 0c             	push   0xc(%ebp)
46c089:	57                   	push   %edi
46c08a:	e8 11 02 00 00       	call   0x46c2a0
46c08f:	83 c4 0c             	add    $0xc,%esp
46c092:	8b 4d f4             	mov    -0xc(%ebp),%ecx
46c095:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
46c09c:	59                   	pop    %ecx
46c09d:	5f                   	pop    %edi
46c09e:	5e                   	pop    %esi
46c09f:	5b                   	pop    %ebx
46c0a0:	8b 4d f0             	mov    -0x10(%ebp),%ecx
46c0a3:	33 cd                	xor    %ebp,%ecx
46c0a5:	e8 7c 59 16 00       	call   0x5d1a26
46c0aa:	8b e5                	mov    %ebp,%esp
46c0ac:	5d                   	pop    %ebp
46c0ad:	c3                   	ret
46c0ae:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46c0b1:	56                   	push   %esi
46c0b2:	53                   	push   %ebx
46c0b3:	e8 d8 98 ff ff       	call   0x465990
46c0b8:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46c0bb:	8b d8                	mov    %eax,%ebx
46c0bd:	56                   	push   %esi
46c0be:	ff 75 94             	push   -0x6c(%ebp)
46c0c1:	e8 ca 98 ff ff       	call   0x465990
46c0c6:	3b d8                	cmp    %eax,%ebx
46c0c8:	0f 92 c0             	setb   %al
46c0cb:	e9 36 01 00 00       	jmp    0x46c206
46c0d0:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46c0d3:	56                   	push   %esi
46c0d4:	53                   	push   %ebx
46c0d5:	e8 96 99 ff ff       	call   0x465a70
46c0da:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46c0dd:	8b da                	mov    %edx,%ebx
46c0df:	56                   	push   %esi
46c0e0:	ff 75 94             	push   -0x6c(%ebp)
46c0e3:	89 45 90             	mov    %eax,-0x70(%ebp)
46c0e6:	e8 85 99 ff ff       	call   0x465a70
46c0eb:	3b da                	cmp    %edx,%ebx
46c0ed:	0f 87 4b ff ff ff    	ja     0x46c03e
46c0f3:	0f 82 66 01 00 00    	jb     0x46c25f
46c0f9:	39 45 90             	cmp    %eax,-0x70(%ebp)
46c0fc:	0f 83 3c ff ff ff    	jae    0x46c03e
46c102:	8b 4d 88             	mov    -0x78(%ebp),%ecx
46c105:	8b 07                	mov    (%edi),%eax
46c107:	8b 5d 80             	mov    -0x80(%ebp),%ebx
46c10a:	89 7d 88             	mov    %edi,-0x78(%ebp)
46c10d:	89 01                	mov    %eax,(%ecx)
46c10f:	e9 7c fe ff ff       	jmp    0x46bf90
46c114:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46c117:	8d 45 d8             	lea    -0x28(%ebp),%eax
46c11a:	56                   	push   %esi
46c11b:	53                   	push   %ebx
46c11c:	50                   	push   %eax
46c11d:	e8 6e 96 ff ff       	call   0x465790
46c122:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46c125:	8d 45 c0             	lea    -0x40(%ebp),%eax
46c128:	56                   	push   %esi
46c129:	ff 75 94             	push   -0x6c(%ebp)
46c12c:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
46c133:	50                   	push   %eax
46c134:	e8 57 96 ff ff       	call   0x465790
46c139:	83 7d d4 10          	cmpl   $0x10,-0x2c(%ebp)
46c13d:	8d 4d c0             	lea    -0x40(%ebp),%ecx
46c140:	8b 45 c0             	mov    -0x40(%ebp),%eax
46c143:	ff 75 d0             	push   -0x30(%ebp)
46c146:	8b 5d d8             	mov    -0x28(%ebp),%ebx
46c149:	0f 43 c8             	cmovae %eax,%ecx
46c14c:	83 7d ec 10          	cmpl   $0x10,-0x14(%ebp)
46c150:	89 45 90             	mov    %eax,-0x70(%ebp)
46c153:	8d 45 d8             	lea    -0x28(%ebp),%eax
46c156:	51                   	push   %ecx
46c157:	ff 75 e8             	push   -0x18(%ebp)
46c15a:	0f 43 c3             	cmovae %ebx,%eax
46c15d:	50                   	push   %eax
46c15e:	e8 ad 23 00 00       	call   0x46e510
46c163:	c1 e8 1f             	shr    $0x1f,%eax
46c166:	83 c4 10             	add    $0x10,%esp
46c169:	89 45 94             	mov    %eax,-0x6c(%ebp)
46c16c:	8b 45 d4             	mov    -0x2c(%ebp),%eax
46c16f:	83 f8 10             	cmp    $0x10,%eax
46c172:	72 31                	jb     0x46c1a5
46c174:	8b 4d 90             	mov    -0x70(%ebp),%ecx
46c177:	8d 50 01             	lea    0x1(%eax),%edx
46c17a:	8b c1                	mov    %ecx,%eax
46c17c:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
46c182:	72 14                	jb     0x46c198
46c184:	8b 49 fc             	mov    -0x4(%ecx),%ecx
46c187:	83 c2 23             	add    $0x23,%edx
46c18a:	2b c1                	sub    %ecx,%eax
46c18c:	83 c0 fc             	add    $0xfffffffc,%eax
46c18f:	83 f8 1f             	cmp    $0x1f,%eax
46c192:	0f 87 d9 00 00 00    	ja     0x46c271
46c198:	52                   	push   %edx
46c199:	51                   	push   %ecx
46c19a:	e8 b6 50 16 00       	call   0x5d1255
46c19f:	8b 5d d8             	mov    -0x28(%ebp),%ebx
46c1a2:	83 c4 08             	add    $0x8,%esp
46c1a5:	8b 45 ec             	mov    -0x14(%ebp),%eax
46c1a8:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
46c1af:	c7 45 d4 0f 00 00 00 	movl   $0xf,-0x2c(%ebp)
46c1b6:	c6 45 c0 00          	movb   $0x0,-0x40(%ebp)
46c1ba:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
46c1c1:	83 f8 10             	cmp    $0x10,%eax
46c1c4:	72 2b                	jb     0x46c1f1
46c1c6:	8d 48 01             	lea    0x1(%eax),%ecx
46c1c9:	8b c3                	mov    %ebx,%eax
46c1cb:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
46c1d1:	72 14                	jb     0x46c1e7
46c1d3:	8b 5b fc             	mov    -0x4(%ebx),%ebx
46c1d6:	83 c1 23             	add    $0x23,%ecx
46c1d9:	2b c3                	sub    %ebx,%eax
46c1db:	83 c0 fc             	add    $0xfffffffc,%eax
46c1de:	83 f8 1f             	cmp    $0x1f,%eax
46c1e1:	0f 87 8a 00 00 00    	ja     0x46c271
46c1e7:	51                   	push   %ecx
46c1e8:	53                   	push   %ebx
46c1e9:	e8 67 50 16 00       	call   0x5d1255
46c1ee:	83 c4 08             	add    $0x8,%esp
46c1f1:	8b 45 94             	mov    -0x6c(%ebp),%eax
46c1f4:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
46c1fb:	c7 45 ec 0f 00 00 00 	movl   $0xf,-0x14(%ebp)
46c202:	c6 45 d8 00          	movb   $0x0,-0x28(%ebp)
46c206:	84 c0                	test   %al,%al
46c208:	0f 84 30 fe ff ff    	je     0x46c03e
46c20e:	8b 4d 88             	mov    -0x78(%ebp),%ecx
46c211:	8b 07                	mov    (%edi),%eax
46c213:	8b 5d 80             	mov    -0x80(%ebp),%ebx
46c216:	89 7d 88             	mov    %edi,-0x78(%ebp)
46c219:	89 01                	mov    %eax,(%ecx)
46c21b:	e9 70 fd ff ff       	jmp    0x46bf90
46c220:	68 d2 00 00 00       	push   $0xd2
46c225:	68 e0 76 60 00       	push   $0x6076e0
46c22a:	6a 02                	push   $0x2
46c22c:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
46c22f:	e8 ac 90 00 00       	call   0x4752e0
46c234:	68 48 77 60 00       	push   $0x607748
46c239:	8b c8                	mov    %eax,%ecx