434014:	55                   	push   %ebp
434015:	8b ec                	mov    %esp,%ebp
434017:	8b 45 08             	mov    0x8(%ebp),%eax
43401a:	a3 e0 ae 46 00       	mov    %eax,0x46aee0
43401f:	5d                   	pop    %ebp
434020:	c3                   	ret
434021:	a1 08 a0 46 00       	mov    0x46a008,%eax
434026:	8b c8                	mov    %eax,%ecx
434028:	33 05 e4 ae 46 00    	xor    0x46aee4,%eax
43402e:	83 e1 1f             	and    $0x1f,%ecx
434031:	d3 c8                	ror    %cl,%eax
434033:	f7 d8                	neg    %eax
434035:	1b c0                	sbb    %eax,%eax
434037:	f7 d8                	neg    %eax
434039:	c3                   	ret
43403a:	8b ff                	mov    %edi,%edi
43403c:	55                   	push   %ebp
43403d:	8b ec                	mov    %esp,%ebp
43403f:	ff 75 08             	push   0x8(%ebp)
434042:	b9 e4 ae 46 00       	mov    $0x46aee4,%ecx
434047:	e8 33 fb ff ff       	call   0x433b7f
43404c:	5d                   	pop    %ebp
43404d:	c3                   	ret
43404e:	8b ff                	mov    %edi,%edi
434050:	55                   	push   %ebp
434051:	8b ec                	mov    %esp,%ebp
434053:	51                   	push   %ecx
434054:	a1 08 a0 46 00       	mov    0x46a008,%eax
434059:	33 c5                	xor    %ebp,%eax
43405b:	89 45 fc             	mov    %eax,-0x4(%ebp)
43405e:	56                   	push   %esi
43405f:	8b 35 08 a0 46 00    	mov    0x46a008,%esi
434065:	8b ce                	mov    %esi,%ecx
434067:	33 35 e4 ae 46 00    	xor    0x46aee4,%esi
43406d:	83 e1 1f             	and    $0x1f,%ecx
434070:	d3 ce                	ror    %cl,%esi
434072:	85 f6                	test   %esi,%esi
434074:	75 04                	jne    0x43407a
434076:	33 c0                	xor    %eax,%eax
434078:	eb 0e                	jmp    0x434088
43407a:	ff 75 08             	push   0x8(%ebp)
43407d:	8b ce                	mov    %esi,%ecx
43407f:	ff 15 d0 b3 44 00    	call   *0x44b3d0
434085:	ff d6                	call   *%esi
434087:	59                   	pop    %ecx
434088:	8b 4d fc             	mov    -0x4(%ebp),%ecx
43408b:	33 cd                	xor    %ebp,%ecx
43408d:	5e                   	pop    %esi
43408e:	e8 a3 9d ff ff       	call   0x42de36
434093:	8b e5                	mov    %ebp,%esp
434095:	5d                   	pop    %ebp
434096:	c3                   	ret
434097:	8b ff                	mov    %edi,%edi
434099:	55                   	push   %ebp
43409a:	8b ec                	mov    %esp,%ebp
43409c:	ff 75 08             	push   0x8(%ebp)
43409f:	e8 23 06 00 00       	call   0x4346c7
4340a4:	59                   	pop    %ecx
4340a5:	a3 e4 ae 46 00       	mov    %eax,0x46aee4
4340aa:	5d                   	pop    %ebp
4340ab:	c3                   	ret
4340ac:	8b ff                	mov    %edi,%edi
4340ae:	55                   	push   %ebp
4340af:	8b ec                	mov    %esp,%ebp
4340b1:	83 ec 0c             	sub    $0xc,%esp
4340b4:	83 7d 08 02          	cmpl   $0x2,0x8(%ebp)
4340b8:	56                   	push   %esi
4340b9:	74 1c                	je     0x4340d7
4340bb:	83 7d 08 01          	cmpl   $0x1,0x8(%ebp)
4340bf:	74 16                	je     0x4340d7
4340c1:	e8 70 fd ff ff       	call   0x433e36
4340c6:	6a 16                	push   $0x16
4340c8:	5e                   	pop    %esi
4340c9:	89 30                	mov    %esi,(%eax)
4340cb:	e8 aa fc ff ff       	call   0x433d7a
4340d0:	8b c6                	mov    %esi,%eax
4340d2:	e9 ef 00 00 00       	jmp    0x4341c6
4340d7:	53                   	push   %ebx
4340d8:	57                   	push   %edi
4340d9:	68 04 01 00 00       	push   $0x104
4340de:	be e8 ae 46 00       	mov    $0x46aee8,%esi
4340e3:	33 ff                	xor    %edi,%edi
4340e5:	56                   	push   %esi
4340e6:	57                   	push   %edi
4340e7:	ff 15 10 b1 44 00    	call   *0x44b110
4340ed:	8b 1d 8c b3 46 00    	mov    0x46b38c,%ebx
4340f3:	89 35 90 b3 46 00    	mov    %esi,0x46b390
4340f9:	85 db                	test   %ebx,%ebx
4340fb:	74 05                	je     0x434102
4340fd:	66 39 3b             	cmp    %di,(%ebx)
434100:	75 02                	jne    0x434104
434102:	8b de                	mov    %esi,%ebx
434104:	8d 45 f4             	lea    -0xc(%ebp),%eax
434107:	89 7d fc             	mov    %edi,-0x4(%ebp)
43410a:	50                   	push   %eax
43410b:	8d 45 fc             	lea    -0x4(%ebp),%eax
43410e:	89 7d f4             	mov    %edi,-0xc(%ebp)
434111:	50                   	push   %eax
434112:	57                   	push   %edi
434113:	57                   	push   %edi
434114:	53                   	push   %ebx
434115:	e8 b1 00 00 00       	call   0x4341cb
43411a:	6a 02                	push   $0x2
43411c:	ff 75 f4             	push   -0xc(%ebp)
43411f:	ff 75 fc             	push   -0x4(%ebp)
434122:	e8 2a 02 00 00       	call   0x434351
434127:	8b f0                	mov    %eax,%esi
434129:	83 c4 20             	add    $0x20,%esp
43412c:	85 f6                	test   %esi,%esi
43412e:	75 0c                	jne    0x43413c
434130:	e8 01 fd ff ff       	call   0x433e36
434135:	6a 0c                	push   $0xc
434137:	5f                   	pop    %edi
434138:	89 38                	mov    %edi,(%eax)
43413a:	eb 31                	jmp    0x43416d
43413c:	8d 45 f4             	lea    -0xc(%ebp),%eax
43413f:	50                   	push   %eax
434140:	8d 45 fc             	lea    -0x4(%ebp),%eax
434143:	50                   	push   %eax
434144:	8b 45 fc             	mov    -0x4(%ebp),%eax
434147:	8d 04 86             	lea    (%esi,%eax,4),%eax
43414a:	50                   	push   %eax
43414b:	56                   	push   %esi
43414c:	53                   	push   %ebx
43414d:	e8 79 00 00 00       	call   0x4341cb
434152:	83 c4 14             	add    $0x14,%esp
434155:	83 7d 08 01          	cmpl   $0x1,0x8(%ebp)
434159:	75 16                	jne    0x434171
43415b:	8b 45 fc             	mov    -0x4(%ebp),%eax
43415e:	48                   	dec    %eax
43415f:	a3 7c b3 46 00       	mov    %eax,0x46b37c
434164:	8b c6                	mov    %esi,%eax
434166:	8b f7                	mov    %edi,%esi
434168:	a3 84 b3 46 00       	mov    %eax,0x46b384
43416d:	8b df                	mov    %edi,%ebx
43416f:	eb 4a                	jmp    0x4341bb
434171:	8d 45 f8             	lea    -0x8(%ebp),%eax
434174:	89 7d f8             	mov    %edi,-0x8(%ebp)
434177:	50                   	push   %eax
434178:	56                   	push   %esi
434179:	e8 3e 3c 00 00       	call   0x437dbc
43417e:	8b d8                	mov    %eax,%ebx
434180:	59                   	pop    %ecx
434181:	59                   	pop    %ecx
434182:	85 db                	test   %ebx,%ebx
434184:	74 05                	je     0x43418b
434186:	8b 45 f8             	mov    -0x8(%ebp),%eax
434189:	eb 26                	jmp    0x4341b1
43418b:	8b 55 f8             	mov    -0x8(%ebp),%edx
43418e:	8b cf                	mov    %edi,%ecx
434190:	8b c2                	mov    %edx,%eax
434192:	39 3a                	cmp    %edi,(%edx)
434194:	74 08                	je     0x43419e
434196:	8d 40 04             	lea    0x4(%eax),%eax
434199:	41                   	inc    %ecx
43419a:	39 38                	cmp    %edi,(%eax)
43419c:	75 f8                	jne    0x434196
43419e:	8b c7                	mov    %edi,%eax
4341a0:	89 0d 7c b3 46 00    	mov    %ecx,0x46b37c
4341a6:	89 45 f8             	mov    %eax,-0x8(%ebp)
4341a9:	8b df                	mov    %edi,%ebx
4341ab:	89 15 84 b3 46 00    	mov    %edx,0x46b384
4341b1:	50                   	push   %eax
4341b2:	e8 63 0f 00 00       	call   0x43511a
4341b7:	59                   	pop    %ecx
4341b8:	89 7d f8             	mov    %edi,-0x8(%ebp)
4341bb:	56                   	push   %esi
4341bc:	e8 59 0f 00 00       	call   0x43511a
4341c1:	59                   	pop    %ecx
4341c2:	5f                   	pop    %edi
4341c3:	8b c3                	mov    %ebx,%eax
4341c5:	5b                   	pop    %ebx
4341c6:	5e                   	pop    %esi
4341c7:	8b e5                	mov    %ebp,%esp
4341c9:	5d                   	pop    %ebp
4341ca:	c3                   	ret
4341cb:	8b ff                	mov    %edi,%edi
4341cd:	55                   	push   %ebp
4341ce:	8b ec                	mov    %esp,%ebp
4341d0:	8b 45 14             	mov    0x14(%ebp),%eax
4341d3:	83 ec 10             	sub    $0x10,%esp
4341d6:	8b 4d 08             	mov    0x8(%ebp),%ecx
4341d9:	8b 55 10             	mov    0x10(%ebp),%edx
4341dc:	53                   	push   %ebx
4341dd:	56                   	push   %esi
4341de:	8b 75 0c             	mov    0xc(%ebp),%esi
4341e1:	33 db                	xor    %ebx,%ebx
4341e3:	57                   	push   %edi
4341e4:	8b 7d 18             	mov    0x18(%ebp),%edi
4341e7:	89 1f                	mov    %ebx,(%edi)
4341e9:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
4341ef:	85 f6                	test   %esi,%esi
4341f1:	74 08                	je     0x4341fb
4341f3:	89 16                	mov    %edx,(%esi)
4341f5:	83 c6 04             	add    $0x4,%esi
4341f8:	89 75 0c             	mov    %esi,0xc(%ebp)
4341fb:	c7 45 f8 20 00 00 00 	movl   $0x20,-0x8(%ebp)
434202:	c7 45 f4 09 00 00 00 	movl   $0x9,-0xc(%ebp)
434209:	6a 22                	push   $0x22
43420b:	58                   	pop    %eax
43420c:	66 39 01             	cmp    %ax,(%ecx)
43420f:	75 0a                	jne    0x43421b
434211:	84 db                	test   %bl,%bl
434213:	0f 94 c3             	sete   %bl
434216:	83 c1 02             	add    $0x2,%ecx
434219:	eb 1a                	jmp    0x434235
43421b:	ff 07                	incl   (%edi)
43421d:	85 d2                	test   %edx,%edx
43421f:	74 09                	je     0x43422a
434221:	66 8b 01             	mov    (%ecx),%ax
434224:	66 89 02             	mov    %ax,(%edx)
434227:	83 c2 02             	add    $0x2,%edx
43422a:	0f b7 01             	movzwl (%ecx),%eax
43422d:	83 c1 02             	add    $0x2,%ecx
434230:	66 85 c0             	test   %ax,%ax
434233:	74 1f                	je     0x434254
434235:	84 db                	test   %bl,%bl
434237:	75 d0                	jne    0x434209
434239:	66 3b 45 f8          	cmp    -0x8(%ebp),%ax
43423d:	74 09                	je     0x434248
43423f:	66 3b 45 f4          	cmp    -0xc(%ebp),%ax
434243:	6a 22                	push   $0x22
434245:	58                   	pop    %eax
434246:	75 c4                	jne    0x43420c
434248:	85 d2                	test   %edx,%edx
43424a:	74 0b                	je     0x434257
43424c:	33 c0                	xor    %eax,%eax
43424e:	66 89 42 fe          	mov    %ax,-0x2(%edx)
434252:	eb 03                	jmp    0x434257
434254:	83 e9 02             	sub    $0x2,%ecx
434257:	8b 5d 14             	mov    0x14(%ebp),%ebx
43425a:	33 c0                	xor    %eax,%eax
43425c:	88 45 ff             	mov    %al,-0x1(%ebp)
43425f:	66 39 01             	cmp    %ax,(%ecx)
434262:	0f 84 da 00 00 00    	je     0x434342
434268:	0f b7 01             	movzwl (%ecx),%eax
43426b:	66 3b 45 f8          	cmp    -0x8(%ebp),%ax
43426f:	74 06                	je     0x434277
434271:	66 3b 45 f4          	cmp    -0xc(%ebp),%ax
434275:	75 05                	jne    0x43427c
434277:	83 c1 02             	add    $0x2,%ecx
43427a:	eb ec                	jmp    0x434268
43427c:	33 c0                	xor    %eax,%eax
43427e:	66 39 01             	cmp    %ax,(%ecx)
434281:	0f 84 bb 00 00 00    	je     0x434342
434287:	85 f6                	test   %esi,%esi
434289:	74 08                	je     0x434293
43428b:	89 16                	mov    %edx,(%esi)
43428d:	83 c6 04             	add    $0x4,%esi
434290:	89 75 0c             	mov    %esi,0xc(%ebp)
434293:	ff 03                	incl   (%ebx)
434295:	33 db                	xor    %ebx,%ebx
434297:	6a 5c                	push   $0x5c
434299:	5e                   	pop    %esi
43429a:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
4342a1:	8b c3                	mov    %ebx,%eax
4342a3:	eb 04                	jmp    0x4342a9
4342a5:	83 c1 02             	add    $0x2,%ecx
4342a8:	40                   	inc    %eax
4342a9:	66 39 31             	cmp    %si,(%ecx)
4342ac:	74 f7                	je     0x4342a5
4342ae:	6a 22                	push   $0x22
4342b0:	5e                   	pop    %esi
4342b1:	66 39 31             	cmp    %si,(%ecx)
4342b4:	6a 5c                	push   $0x5c
4342b6:	5e                   	pop    %esi
4342b7:	75 38                	jne    0x4342f1
4342b9:	a8 01                	test   $0x1,%al
4342bb:	75 20                	jne    0x4342dd
4342bd:	38 5d ff             	cmp    %bl,-0x1(%ebp)
4342c0:	74 11                	je     0x4342d3
4342c2:	6a 22                	push   $0x22
4342c4:	5e                   	pop    %esi
4342c5:	66 39 71 02          	cmp    %si,0x2(%ecx)
4342c9:	6a 5c                	push   $0x5c
4342cb:	5e                   	pop    %esi
4342cc:	75 05                	jne    0x4342d3
4342ce:	83 c1 02             	add    $0x2,%ecx
4342d1:	eb 0a                	jmp    0x4342dd
4342d3:	38 5d ff             	cmp    %bl,-0x1(%ebp)
4342d6:	89 5d f0             	mov    %ebx,-0x10(%ebp)
4342d9:	0f 94 45 ff          	sete   -0x1(%ebp)
4342dd:	8b 7d 18             	mov    0x18(%ebp),%edi
4342e0:	d1 e8                	shr    $1,%eax
4342e2:	eb 0d                	jmp    0x4342f1
4342e4:	48                   	dec    %eax
4342e5:	85 d2                	test   %edx,%edx
4342e7:	74 06                	je     0x4342ef
4342e9:	66 89 32             	mov    %si,(%edx)
4342ec:	83 c2 02             	add    $0x2,%edx
4342ef:	ff 07                	incl   (%edi)
4342f1:	85 c0                	test   %eax,%eax
4342f3:	75 ef                	jne    0x4342e4
4342f5:	0f b7 01             	movzwl (%ecx),%eax
4342f8:	66 85 c0             	test   %ax,%ax
4342fb:	74 2a                	je     0x434327
4342fd:	38 5d ff             	cmp    %bl,-0x1(%ebp)
434300:	75 0c                	jne    0x43430e
434302:	66 3b 45 f8          	cmp    -0x8(%ebp),%ax
434306:	74 1f                	je     0x434327
434308:	66 3b 45 f4          	cmp    -0xc(%ebp),%ax
43430c:	74 19                	je     0x434327
43430e:	39 5d f0             	cmp    %ebx,-0x10(%ebp)
434311:	74 0c                	je     0x43431f
434313:	85 d2                	test   %edx,%edx
434315:	74 06                	je     0x43431d
434317:	66 89 02             	mov    %ax,(%edx)
43431a:	83 c2 02             	add    $0x2,%edx
43431d:	ff 07                	incl   (%edi)
43431f:	83 c1 02             	add    $0x2,%ecx
434322:	e9 73 ff ff ff       	jmp    0x43429a
434327:	8b 75 0c             	mov    0xc(%ebp),%esi
43432a:	8b 5d 14             	mov    0x14(%ebp),%ebx
43432d:	85 d2                	test   %edx,%edx
43432f:	74 08                	je     0x434339
434331:	33 c0                	xor    %eax,%eax
434333:	66 89 02             	mov    %ax,(%edx)
434336:	83 c2 02             	add    $0x2,%edx
434339:	ff 07                	incl   (%edi)
43433b:	33 c0                	xor    %eax,%eax
43433d:	e9 1d ff ff ff       	jmp    0x43425f
434342:	85 f6                	test   %esi,%esi
434344:	74 02                	je     0x434348
434346:	89 06                	mov    %eax,(%esi)
434348:	ff 03                	incl   (%ebx)
43434a:	5f                   	pop    %edi
43434b:	5e                   	pop    %esi
43434c:	5b                   	pop    %ebx
43434d:	8b e5                	mov    %ebp,%esp
43434f:	5d                   	pop    %ebp
434350:	c3                   	ret
434351:	8b ff                	mov    %edi,%edi
434353:	55                   	push   %ebp
434354:	8b ec                	mov    %esp,%ebp
434356:	56                   	push   %esi
434357:	8b 75 08             	mov    0x8(%ebp),%esi
43435a:	81 fe ff ff ff 3f    	cmp    $0x3fffffff,%esi
434360:	72 04                	jb     0x434366
434362:	33 c0                	xor    %eax,%eax
434364:	eb 3d                	jmp    0x4343a3
434366:	57                   	push   %edi
434367:	83 cf ff             	or     $0xffffffff,%edi
43436a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
43436d:	33 d2                	xor    %edx,%edx
43436f:	8b c7                	mov    %edi,%eax
434371:	f7 75 10             	divl   0x10(%ebp)
434374:	3b c8                	cmp    %eax,%ecx
434376:	73 0d                	jae    0x434385
434378:	0f af 4d 10          	imul   0x10(%ebp),%ecx
43437c:	c1 e6 02             	shl    $0x2,%esi