46ee72:	0f 84 e0 01 00 00    	je     0x46f058
46ee78:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
46ee7f:	90                   	nop
46ee80:	3b f7                	cmp    %edi,%esi
46ee82:	0f 84 d0 01 00 00    	je     0x46f058
46ee88:	6a 10                	push   $0x10
46ee8a:	e8 b3 21 17 00       	call   0x5e1042
46ee8f:	8b 55 f8             	mov    -0x8(%ebp),%edx
46ee92:	83 c4 04             	add    $0x4,%esp
46ee95:	8b 5d fc             	mov    -0x4(%ebp),%ebx
46ee98:	8b 8a ac 03 00 00    	mov    0x3ac(%edx),%ecx
46ee9e:	8b 0c 99             	mov    (%ecx,%ebx,4),%ecx
46eea1:	8b 5d f4             	mov    -0xc(%ebp),%ebx
46eea4:	8b 49 18             	mov    0x18(%ecx),%ecx
46eea7:	89 04 99             	mov    %eax,(%ecx,%ebx,4)
46eeaa:	8b 5d ec             	mov    -0x14(%ebp),%ebx
46eead:	8b 43 4c             	mov    0x4c(%ebx),%eax
46eeb0:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46eeb3:	03 d8                	add    %eax,%ebx
46eeb5:	89 5d e8             	mov    %ebx,-0x18(%ebp)
46eeb8:	83 7b 14 10          	cmpl   $0x10,0x14(%ebx)
46eebc:	72 05                	jb     0x46eec3
46eebe:	8b 0b                	mov    (%ebx),%ecx
46eec0:	89 4d e8             	mov    %ecx,-0x18(%ebp)
46eec3:	8b 92 ac 03 00 00    	mov    0x3ac(%edx),%edx
46eec9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46eecc:	8b 7d f4             	mov    -0xc(%ebp),%edi
46eecf:	8b 0c 8a             	mov    (%edx,%ecx,4),%ecx
46eed2:	8b 49 18             	mov    0x18(%ecx),%ecx
46eed5:	8b 0c b9             	mov    (%ecx,%edi,4),%ecx
46eed8:	89 4d d0             	mov    %ecx,-0x30(%ebp)
46eedb:	85 c9                	test   %ecx,%ecx
46eedd:	74 37                	je     0x46ef16
46eedf:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
46eee3:	74 31                	je     0x46ef16
46eee5:	8b 5b 10             	mov    0x10(%ebx),%ebx
46eee8:	8d 43 01             	lea    0x1(%ebx),%eax
46eeeb:	50                   	push   %eax
46eeec:	e8 8f 21 17 00       	call   0x5e1080
46eef1:	8b 4d d0             	mov    -0x30(%ebp),%ecx
46eef4:	53                   	push   %ebx
46eef5:	ff 75 e8             	push   -0x18(%ebp)
46eef8:	89 01                	mov    %eax,(%ecx)
46eefa:	8d 4b 01             	lea    0x1(%ebx),%ecx
46eefd:	51                   	push   %ecx
46eefe:	50                   	push   %eax
46eeff:	e8 7c 96 ff ff       	call   0x468580
46ef04:	8b 45 ec             	mov    -0x14(%ebp),%eax
46ef07:	83 c4 14             	add    $0x14,%esp
46ef0a:	8b 55 f8             	mov    -0x8(%ebp),%edx
46ef0d:	8b 40 4c             	mov    0x4c(%eax),%eax
46ef10:	8b 92 ac 03 00 00    	mov    0x3ac(%edx),%edx
46ef16:	8b 4d f0             	mov    -0x10(%ebp),%ecx
46ef19:	03 c8                	add    %eax,%ecx
46ef1b:	83 79 2c 10          	cmpl   $0x10,0x2c(%ecx)
46ef1f:	89 4d d0             	mov    %ecx,-0x30(%ebp)
46ef22:	8d 59 18             	lea    0x18(%ecx),%ebx
46ef25:	89 5d e8             	mov    %ebx,-0x18(%ebp)
46ef28:	72 05                	jb     0x46ef2f
46ef2a:	8b 1b                	mov    (%ebx),%ebx
46ef2c:	89 5d e8             	mov    %ebx,-0x18(%ebp)
46ef2f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46ef32:	8b 7d f4             	mov    -0xc(%ebp),%edi
46ef35:	8b 0c 8a             	mov    (%edx,%ecx,4),%ecx
46ef38:	8b 49 18             	mov    0x18(%ecx),%ecx
46ef3b:	8b 0c b9             	mov    (%ecx,%edi,4),%ecx
46ef3e:	83 c1 04             	add    $0x4,%ecx
46ef41:	89 4d cc             	mov    %ecx,-0x34(%ebp)
46ef44:	74 38                	je     0x46ef7e
46ef46:	85 db                	test   %ebx,%ebx
46ef48:	74 34                	je     0x46ef7e
46ef4a:	8b 5d d0             	mov    -0x30(%ebp),%ebx
46ef4d:	8b 5b 28             	mov    0x28(%ebx),%ebx
46ef50:	8d 43 01             	lea    0x1(%ebx),%eax
46ef53:	50                   	push   %eax
46ef54:	e8 27 21 17 00       	call   0x5e1080
46ef59:	8b 4d cc             	mov    -0x34(%ebp),%ecx
46ef5c:	53                   	push   %ebx
46ef5d:	ff 75 e8             	push   -0x18(%ebp)
46ef60:	89 01                	mov    %eax,(%ecx)
46ef62:	8d 4b 01             	lea    0x1(%ebx),%ecx
46ef65:	51                   	push   %ecx
46ef66:	50                   	push   %eax
46ef67:	e8 14 96 ff ff       	call   0x468580
46ef6c:	8b 45 ec             	mov    -0x14(%ebp),%eax
46ef6f:	83 c4 14             	add    $0x14,%esp
46ef72:	8b 4d f8             	mov    -0x8(%ebp),%ecx
46ef75:	8b 40 4c             	mov    0x4c(%eax),%eax
46ef78:	8b 91 ac 03 00 00    	mov    0x3ac(%ecx),%edx
46ef7e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
46ef81:	03 c8                	add    %eax,%ecx
46ef83:	83 79 5c 10          	cmpl   $0x10,0x5c(%ecx)
46ef87:	89 4d cc             	mov    %ecx,-0x34(%ebp)
46ef8a:	8d 59 48             	lea    0x48(%ecx),%ebx
46ef8d:	89 5d e8             	mov    %ebx,-0x18(%ebp)
46ef90:	72 05                	jb     0x46ef97
46ef92:	8b 1b                	mov    (%ebx),%ebx
46ef94:	89 5d e8             	mov    %ebx,-0x18(%ebp)
46ef97:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46ef9a:	8b 7d f4             	mov    -0xc(%ebp),%edi
46ef9d:	8b 0c 8a             	mov    (%edx,%ecx,4),%ecx
46efa0:	8b 49 18             	mov    0x18(%ecx),%ecx
46efa3:	8b 0c b9             	mov    (%ecx,%edi,4),%ecx
46efa6:	8b 7d e4             	mov    -0x1c(%ebp),%edi
46efa9:	83 c1 0c             	add    $0xc,%ecx
46efac:	89 4d d0             	mov    %ecx,-0x30(%ebp)
46efaf:	74 38                	je     0x46efe9
46efb1:	85 db                	test   %ebx,%ebx
46efb3:	74 34                	je     0x46efe9
46efb5:	8b 5d cc             	mov    -0x34(%ebp),%ebx
46efb8:	8b 5b 58             	mov    0x58(%ebx),%ebx
46efbb:	8d 43 01             	lea    0x1(%ebx),%eax
46efbe:	50                   	push   %eax
46efbf:	e8 bc 20 17 00       	call   0x5e1080
46efc4:	8b 4d d0             	mov    -0x30(%ebp),%ecx
46efc7:	53                   	push   %ebx
46efc8:	ff 75 e8             	push   -0x18(%ebp)
46efcb:	89 01                	mov    %eax,(%ecx)
46efcd:	8d 4b 01             	lea    0x1(%ebx),%ecx
46efd0:	51                   	push   %ecx
46efd1:	50                   	push   %eax
46efd2:	e8 a9 95 ff ff       	call   0x468580
46efd7:	8b 45 ec             	mov    -0x14(%ebp),%eax
46efda:	83 c4 14             	add    $0x14,%esp
46efdd:	8b 4d f8             	mov    -0x8(%ebp),%ecx
46efe0:	8b 40 4c             	mov    0x4c(%eax),%eax
46efe3:	8b 91 ac 03 00 00    	mov    0x3ac(%ecx),%edx
46efe9:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46efec:	03 d8                	add    %eax,%ebx
46efee:	83 7b 44 10          	cmpl   $0x10,0x44(%ebx)
46eff2:	8d 4b 30             	lea    0x30(%ebx),%ecx
46eff5:	89 4d e8             	mov    %ecx,-0x18(%ebp)
46eff8:	72 05                	jb     0x46efff
46effa:	8b 09                	mov    (%ecx),%ecx
46effc:	89 4d e8             	mov    %ecx,-0x18(%ebp)
46efff:	8b 45 fc             	mov    -0x4(%ebp),%eax
46f002:	8b 04 82             	mov    (%edx,%eax,4),%eax
46f005:	8b 55 f4             	mov    -0xc(%ebp),%edx
46f008:	8b 40 18             	mov    0x18(%eax),%eax
46f00b:	8b 04 90             	mov    (%eax,%edx,4),%eax
46f00e:	83 c0 08             	add    $0x8,%eax
46f011:	89 45 cc             	mov    %eax,-0x34(%ebp)
46f014:	74 26                	je     0x46f03c
46f016:	85 c9                	test   %ecx,%ecx
46f018:	74 22                	je     0x46f03c
46f01a:	8b 5b 40             	mov    0x40(%ebx),%ebx
46f01d:	8d 43 01             	lea    0x1(%ebx),%eax
46f020:	50                   	push   %eax
46f021:	e8 5a 20 17 00       	call   0x5e1080
46f026:	8b 4d cc             	mov    -0x34(%ebp),%ecx
46f029:	53                   	push   %ebx
46f02a:	ff 75 e8             	push   -0x18(%ebp)
46f02d:	89 01                	mov    %eax,(%ecx)
46f02f:	8d 4b 01             	lea    0x1(%ebx),%ecx
46f032:	51                   	push   %ecx
46f033:	50                   	push   %eax
46f034:	e8 47 95 ff ff       	call   0x468580
46f039:	83 c4 14             	add    $0x14,%esp
46f03c:	8b 45 f4             	mov    -0xc(%ebp),%eax
46f03f:	83 c6 60             	add    $0x60,%esi
46f042:	83 45 f0 60          	addl   $0x60,-0x10(%ebp)
46f046:	40                   	inc    %eax
46f047:	8b 4d dc             	mov    -0x24(%ebp),%ecx
46f04a:	8b 5d ec             	mov    -0x14(%ebp),%ebx
46f04d:	89 45 f4             	mov    %eax,-0xc(%ebp)
46f050:	3b c1                	cmp    %ecx,%eax
46f052:	0f 82 28 fe ff ff    	jb     0x46ee80
46f058:	8b 7d f8             	mov    -0x8(%ebp),%edi
46f05b:	81 c3 9c 00 00 00    	add    $0x9c,%ebx
46f061:	8b 55 fc             	mov    -0x4(%ebp),%edx
46f064:	8b 75 d8             	mov    -0x28(%ebp),%esi
46f067:	81 45 e0 9c 00 00 00 	addl   $0x9c,-0x20(%ebp)
46f06e:	81 c6 9c 00 00 00    	add    $0x9c,%esi
46f074:	8b 87 ac 03 00 00    	mov    0x3ac(%edi),%eax
46f07a:	89 75 d8             	mov    %esi,-0x28(%ebp)
46f07d:	89 5d ec             	mov    %ebx,-0x14(%ebp)
46f080:	8b 04 90             	mov    (%eax,%edx,4),%eax
46f083:	42                   	inc    %edx
46f084:	89 55 fc             	mov    %edx,-0x4(%ebp)
46f087:	8b 40 18             	mov    0x18(%eax),%eax
46f08a:	c7 04 88 00 00 00 00 	movl   $0x0,(%eax,%ecx,4)
46f091:	8b 45 c8             	mov    -0x38(%ebp),%eax
46f094:	3b 55 d4             	cmp    -0x2c(%ebp),%edx
46f097:	0f 82 83 fb ff ff    	jb     0x46ec20
46f09d:	8b 5d d4             	mov    -0x2c(%ebp),%ebx
46f0a0:	8b 55 08             	mov    0x8(%ebp),%edx
46f0a3:	8b 87 ac 03 00 00    	mov    0x3ac(%edi),%eax
46f0a9:	c7 04 98 00 00 00 00 	movl   $0x0,(%eax,%ebx,4)
46f0b0:	8d 5a 0c             	lea    0xc(%edx),%ebx
46f0b3:	83 7b 14 10          	cmpl   $0x10,0x14(%ebx)
46f0b7:	72 02                	jb     0x46f0bb
46f0b9:	8b 1b                	mov    (%ebx),%ebx
46f0bb:	8d 87 b0 03 00 00    	lea    0x3b0(%edi),%eax
46f0c1:	89 45 08             	mov    %eax,0x8(%ebp)
46f0c4:	85 c0                	test   %eax,%eax
46f0c6:	74 21                	je     0x46f0e9
46f0c8:	85 db                	test   %ebx,%ebx
46f0ca:	74 1d                	je     0x46f0e9
46f0cc:	8b 72 1c             	mov    0x1c(%edx),%esi
46f0cf:	8d 7e 01             	lea    0x1(%esi),%edi
46f0d2:	57                   	push   %edi
46f0d3:	e8 a8 1f 17 00       	call   0x5e1080
46f0d8:	8b 4d 08             	mov    0x8(%ebp),%ecx
46f0db:	56                   	push   %esi
46f0dc:	53                   	push   %ebx
46f0dd:	57                   	push   %edi
46f0de:	50                   	push   %eax
46f0df:	89 01                	mov    %eax,(%ecx)
46f0e1:	e8 9a 94 ff ff       	call   0x468580
46f0e6:	83 c4 14             	add    $0x14,%esp
46f0e9:	5e                   	pop    %esi
46f0ea:	5b                   	pop    %ebx
46f0eb:	5f                   	pop    %edi
46f0ec:	8b e5                	mov    %ebp,%esp
46f0ee:	5d                   	pop    %ebp
46f0ef:	c2 04 00             	ret    $0x4
46f0f2:	cc                   	int3
46f0f3:	cc                   	int3
46f0f4:	cc                   	int3
46f0f5:	cc                   	int3
46f0f6:	cc                   	int3
46f0f7:	cc                   	int3
46f0f8:	cc                   	int3
46f0f9:	cc                   	int3
46f0fa:	cc                   	int3
46f0fb:	cc                   	int3
46f0fc:	cc                   	int3
46f0fd:	cc                   	int3
46f0fe:	cc                   	int3
46f0ff:	cc                   	int3
46f100:	55                   	push   %ebp
46f101:	8b ec                	mov    %esp,%ebp
46f103:	83 ec 1c             	sub    $0x1c,%esp
46f106:	8b 45 08             	mov    0x8(%ebp),%eax
46f109:	57                   	push   %edi
46f10a:	8b f9                	mov    %ecx,%edi
46f10c:	89 7d fc             	mov    %edi,-0x4(%ebp)
46f10f:	85 c0                	test   %eax,%eax
46f111:	0f 84 d6 01 00 00    	je     0x46f2ed
46f117:	8b 50 04             	mov    0x4(%eax),%edx
46f11a:	33 c9                	xor    %ecx,%ecx
46f11c:	2b 10                	sub    (%eax),%edx
46f11e:	b8 39 8e e3 38       	mov    $0x38e38e39,%eax
46f123:	f7 ea                	imul   %edx
46f125:	53                   	push   %ebx
46f126:	c1 fa 04             	sar    $0x4,%edx
46f129:	8b da                	mov    %edx,%ebx
46f12b:	c1 eb 1f             	shr    $0x1f,%ebx
46f12e:	03 da                	add    %edx,%ebx
46f130:	ba 04 00 00 00       	mov    $0x4,%edx
46f135:	56                   	push   %esi
46f136:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
46f139:	8d 43 01             	lea    0x1(%ebx),%eax
46f13c:	f7 e2                	mul    %edx
46f13e:	0f 90 c1             	seto   %cl
46f141:	f7 d9                	neg    %ecx
46f143:	0b c8                	or     %eax,%ecx
46f145:	51                   	push   %ecx
46f146:	e8 35 1f 17 00       	call   0x5e1080
46f14b:	33 f6                	xor    %esi,%esi
46f14d:	89 87 8c 03 00 00    	mov    %eax,0x38c(%edi)
46f153:	83 c4 04             	add    $0x4,%esp
46f156:	89 75 e8             	mov    %esi,-0x18(%ebp)
46f159:	85 db                	test   %ebx,%ebx
46f15b:	0f 84 38 01 00 00    	je     0x46f299
46f161:	33 db                	xor    %ebx,%ebx
46f163:	89 5d f4             	mov    %ebx,-0xc(%ebp)
46f166:	6a 0c                	push   $0xc
46f168:	e8 d5 1e 17 00       	call   0x5e1042
46f16d:	8b 8f 8c 03 00 00    	mov    0x38c(%edi),%ecx
46f173:	8d 14 b5 00 00 00 00 	lea    0x0(,%esi,4),%edx
46f17a:	83 c4 04             	add    $0x4,%esp
46f17d:	89 55 ec             	mov    %edx,-0x14(%ebp)
46f180:	89 04 0a             	mov    %eax,(%edx,%ecx,1)
46f183:	8b 45 08             	mov    0x8(%ebp),%eax
46f186:	8b 08                	mov    (%eax),%ecx
46f188:	83 7c 0b 14 10       	cmpl   $0x10,0x14(%ebx,%ecx,1)
46f18d:	8d 34 0b             	lea    (%ebx,%ecx,1),%esi
46f190:	89 75 f8             	mov    %esi,-0x8(%ebp)
46f193:	72 05                	jb     0x46f19a
46f195:	8b 06                	mov    (%esi),%eax
46f197:	89 45 f8             	mov    %eax,-0x8(%ebp)
46f19a:	8b 87 8c 03 00 00    	mov    0x38c(%edi),%eax
46f1a0:	8b 14 10             	mov    (%eax,%edx,1),%edx
46f1a3:	89 55 f0             	mov    %edx,-0x10(%ebp)
46f1a6:	8b d0                	mov    %eax,%edx
46f1a8:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
46f1ac:	74 35                	je     0x46f1e3
46f1ae:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
46f1b2:	74 2f                	je     0x46f1e3
46f1b4:	8b 76 10             	mov    0x10(%esi),%esi
46f1b7:	8d 7e 01             	lea    0x1(%esi),%edi
46f1ba:	57                   	push   %edi
46f1bb:	e8 c0 1e 17 00       	call   0x5e1080
46f1c0:	8b 4d f0             	mov    -0x10(%ebp),%ecx
46f1c3:	56                   	push   %esi
46f1c4:	ff 75 f8             	push   -0x8(%ebp)
46f1c7:	57                   	push   %edi
46f1c8:	50                   	push   %eax
46f1c9:	89 01                	mov    %eax,(%ecx)
46f1cb:	e8 b0 93 ff ff       	call   0x468580
46f1d0:	8b 45 08             	mov    0x8(%ebp),%eax
46f1d3:	83 c4 14             	add    $0x14,%esp
46f1d6:	8b 7d fc             	mov    -0x4(%ebp),%edi
46f1d9:	8b 08                	mov    (%eax),%ecx
46f1db:	8b 97 8c 03 00 00    	mov    0x38c(%edi),%edx
46f1e1:	8b c2                	mov    %edx,%eax
46f1e3:	03 d9                	add    %ecx,%ebx
46f1e5:	89 5d f0             	mov    %ebx,-0x10(%ebp)
46f1e8:	83 c3 30             	add    $0x30,%ebx
46f1eb:	83 7b 14 10          	cmpl   $0x10,0x14(%ebx)
46f1ef:	72 02                	jb     0x46f1f3
46f1f1:	8b 1b                	mov    (%ebx),%ebx
46f1f3:	8b 75 ec             	mov    -0x14(%ebp),%esi
46f1f6:	8b 34 16             	mov    (%esi,%edx,1),%esi
46f1f9:	83 c6 08             	add    $0x8,%esi
46f1fc:	89 75 f8             	mov    %esi,-0x8(%ebp)
46f1ff:	74 34                	je     0x46f235
46f201:	85 db                	test   %ebx,%ebx
46f203:	74 30                	je     0x46f235
46f205:	8b 75 f0             	mov    -0x10(%ebp),%esi
46f208:	8b 76 40             	mov    0x40(%esi),%esi
46f20b:	8d 7e 01             	lea    0x1(%esi),%edi
46f20e:	57                   	push   %edi
46f20f:	e8 6c 1e 17 00       	call   0x5e1080
46f214:	8b 4d f8             	mov    -0x8(%ebp),%ecx
46f217:	56                   	push   %esi
46f218:	53                   	push   %ebx
46f219:	57                   	push   %edi
46f21a:	50                   	push   %eax
46f21b:	89 01                	mov    %eax,(%ecx)
46f21d:	e8 5e 93 ff ff       	call   0x468580
46f222:	8b 45 08             	mov    0x8(%ebp),%eax
46f225:	83 c4 14             	add    $0x14,%esp
46f228:	8b 7d fc             	mov    -0x4(%ebp),%edi
46f22b:	8b 08                	mov    (%eax),%ecx
46f22d:	8b 97 8c 03 00 00    	mov    0x38c(%edi),%edx
46f233:	8b c2                	mov    %edx,%eax
46f235:	8b 75 f4             	mov    -0xc(%ebp),%esi
46f238:	03 f1                	add    %ecx,%esi
46f23a:	83 7e 2c 10          	cmpl   $0x10,0x2c(%esi)
46f23e:	8d 5e 18             	lea    0x18(%esi),%ebx
46f241:	72 02                	jb     0x46f245
46f243:	8b 1b                	mov    (%ebx),%ebx
46f245:	8b 4d ec             	mov    -0x14(%ebp),%ecx
46f248:	8b 0c 11             	mov    (%ecx,%edx,1),%ecx
46f24b:	83 c1 04             	add    $0x4,%ecx
46f24e:	89 4d ec             	mov    %ecx,-0x14(%ebp)
46f251:	74 2a                	je     0x46f27d
46f253:	85 db                	test   %ebx,%ebx