414fa0:	55                   	push   %ebp
414fa1:	8b ec                	mov    %esp,%ebp
414fa3:	83 ec 28             	sub    $0x28,%esp
414fa6:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
414fad:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
414fb1:	74 10                	je     0x414fc3
414fb3:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
414fb7:	74 0a                	je     0x414fc3
414fb9:	8b 45 08             	mov    0x8(%ebp),%eax
414fbc:	0f b7 08             	movzwl (%eax),%ecx
414fbf:	85 c9                	test   %ecx,%ecx
414fc1:	75 08                	jne    0x414fcb
414fc3:	8b 45 e0             	mov    -0x20(%ebp),%eax
414fc6:	e9 04 02 00 00       	jmp    0x4151cf
414fcb:	6a 00                	push   $0x0
414fcd:	6a 00                	push   $0x0
414fcf:	e8 ec d5 fe ff       	call   0x4025c0
414fd4:	8b 90 ec 00 00 00    	mov    0xec(%eax),%edx
414fda:	ff d2                	call   *%edx
414fdc:	89 45 ec             	mov    %eax,-0x14(%ebp)
414fdf:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
414fe3:	0f 84 e3 01 00 00    	je     0x4151cc
414fe9:	8b 45 ec             	mov    -0x14(%ebp),%eax
414fec:	50                   	push   %eax
414fed:	e8 0e 1a ff ff       	call   0x406a00
414ff2:	83 c4 04             	add    $0x4,%esp
414ff5:	89 45 f0             	mov    %eax,-0x10(%ebp)
414ff8:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
414ffc:	0f 84 ca 01 00 00    	je     0x4151cc
415002:	8b 4d f0             	mov    -0x10(%ebp),%ecx
415005:	51                   	push   %ecx
415006:	8b 55 ec             	mov    -0x14(%ebp),%edx
415009:	52                   	push   %edx
41500a:	e8 b1 d5 fe ff       	call   0x4025c0
41500f:	8b 80 ec 00 00 00    	mov    0xec(%eax),%eax
415015:	ff d0                	call   *%eax
415017:	85 c0                	test   %eax,%eax
415019:	0f 84 a1 01 00 00    	je     0x4151c0
41501f:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
415026:	eb 16                	jmp    0x41503e
415028:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41502b:	51                   	push   %ecx
41502c:	e8 2f 1a ff ff       	call   0x406a60
415031:	83 c4 04             	add    $0x4,%esp
415034:	8b 55 e8             	mov    -0x18(%ebp),%edx
415037:	8d 44 02 01          	lea    0x1(%edx,%eax,1),%eax
41503b:	89 45 e8             	mov    %eax,-0x18(%ebp)
41503e:	8b 4d e8             	mov    -0x18(%ebp),%ecx
415041:	3b 4d ec             	cmp    -0x14(%ebp),%ecx
415044:	0f 83 76 01 00 00    	jae    0x4151c0
41504a:	8b 55 e8             	mov    -0x18(%ebp),%edx
41504d:	8b 45 f0             	mov    -0x10(%ebp),%eax
415050:	8d 0c 50             	lea    (%eax,%edx,2),%ecx
415053:	89 4d dc             	mov    %ecx,-0x24(%ebp)
415056:	8b 55 dc             	mov    -0x24(%ebp),%edx
415059:	52                   	push   %edx
41505a:	e8 01 1a ff ff       	call   0x406a60
41505f:	83 c4 04             	add    $0x4,%esp
415062:	83 f8 03             	cmp    $0x3,%eax
415065:	0f 85 50 01 00 00    	jne    0x4151bb
41506b:	8b 45 dc             	mov    -0x24(%ebp),%eax
41506e:	50                   	push   %eax
41506f:	e8 7c 1a ff ff       	call   0x406af0
415074:	83 c4 04             	add    $0x4,%esp
415077:	89 45 f4             	mov    %eax,-0xc(%ebp)
41507a:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
41507e:	0f 84 37 01 00 00    	je     0x4151bb
415084:	b9 02 00 00 00       	mov    $0x2,%ecx
415089:	d1 e1                	shl    $1,%ecx
41508b:	33 d2                	xor    %edx,%edx
41508d:	8b 45 f4             	mov    -0xc(%ebp),%eax
415090:	66 89 14 08          	mov    %dx,(%eax,%ecx,1)
415094:	68 04 01 00 00       	push   $0x104
415099:	e8 62 19 ff ff       	call   0x406a00
41509e:	83 c4 04             	add    $0x4,%esp
4150a1:	89 45 f8             	mov    %eax,-0x8(%ebp)
4150a4:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
4150a8:	0f 84 01 01 00 00    	je     0x4151af
4150ae:	68 04 01 00 00       	push   $0x104
4150b3:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4150b6:	51                   	push   %ecx
4150b7:	8b 55 f4             	mov    -0xc(%ebp),%edx
4150ba:	52                   	push   %edx
4150bb:	e8 00 d5 fe ff       	call   0x4025c0
4150c0:	8b 80 a4 01 00 00    	mov    0x1a4(%eax),%eax
4150c6:	ff d0                	call   *%eax
4150c8:	85 c0                	test   %eax,%eax
4150ca:	0f 84 d3 00 00 00    	je     0x4151a3
4150d0:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4150d3:	51                   	push   %ecx
4150d4:	e8 87 19 ff ff       	call   0x406a60
4150d9:	83 c4 04             	add    $0x4,%esp
4150dc:	89 45 fc             	mov    %eax,-0x4(%ebp)
4150df:	68 a8 62 41 00       	push   $0x4162a8
4150e4:	8b 55 f8             	mov    -0x8(%ebp),%edx
4150e7:	52                   	push   %edx
4150e8:	e8 d3 d4 fe ff       	call   0x4025c0
4150ed:	8b 40 30             	mov    0x30(%eax),%eax
4150f0:	ff d0                	call   *%eax
4150f2:	83 c4 08             	add    $0x8,%esp
4150f5:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4150f8:	83 c1 01             	add    $0x1,%ecx
4150fb:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4150fe:	8b 55 fc             	mov    -0x4(%ebp),%edx
415101:	d1 e2                	shl    $1,%edx
415103:	52                   	push   %edx
415104:	8b 45 f8             	mov    -0x8(%ebp),%eax
415107:	50                   	push   %eax
415108:	8b 4d 08             	mov    0x8(%ebp),%ecx
41510b:	8b 51 04             	mov    0x4(%ecx),%edx
41510e:	52                   	push   %edx
41510f:	e8 ac 18 ff ff       	call   0x4069c0
415114:	83 c4 0c             	add    $0xc,%esp
415117:	85 c0                	test   %eax,%eax
415119:	0f 85 84 00 00 00    	jne    0x4151a3
41511f:	8b 45 08             	mov    0x8(%ebp),%eax
415122:	0f b7 08             	movzwl (%eax),%ecx
415125:	d1 e9                	shr    $1,%ecx
415127:	2b 4d fc             	sub    -0x4(%ebp),%ecx
41512a:	83 c1 03             	add    $0x3,%ecx
41512d:	89 4d d8             	mov    %ecx,-0x28(%ebp)
415130:	8b 55 d8             	mov    -0x28(%ebp),%edx
415133:	52                   	push   %edx
415134:	e8 c7 18 ff ff       	call   0x406a00
415139:	83 c4 04             	add    $0x4,%esp
41513c:	89 45 e4             	mov    %eax,-0x1c(%ebp)
41513f:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
415143:	74 5e                	je     0x4151a3
415145:	b8 02 00 00 00       	mov    $0x2,%eax
41514a:	d1 e0                	shl    $1,%eax
41514c:	b9 5c 00 00 00       	mov    $0x5c,%ecx
415151:	8b 55 f4             	mov    -0xc(%ebp),%edx
415154:	66 89 0c 02          	mov    %cx,(%edx,%eax,1)
415158:	6a 06                	push   $0x6
41515a:	8b 45 f4             	mov    -0xc(%ebp),%eax
41515d:	50                   	push   %eax
41515e:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
415161:	51                   	push   %ecx
415162:	e8 39 18 ff ff       	call   0x4069a0
415167:	83 c4 0c             	add    $0xc,%esp
41516a:	8b 55 08             	mov    0x8(%ebp),%edx
41516d:	0f b7 02             	movzwl (%edx),%eax
415170:	8b 4d fc             	mov    -0x4(%ebp),%ecx
415173:	d1 e1                	shl    $1,%ecx
415175:	2b c1                	sub    %ecx,%eax
415177:	50                   	push   %eax
415178:	8b 55 08             	mov    0x8(%ebp),%edx
41517b:	8b 42 04             	mov    0x4(%edx),%eax
41517e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
415181:	8d 14 48             	lea    (%eax,%ecx,2),%edx
415184:	52                   	push   %edx
415185:	8b 45 e4             	mov    -0x1c(%ebp),%eax
415188:	83 c0 06             	add    $0x6,%eax
41518b:	50                   	push   %eax
41518c:	e8 0f 18 ff ff       	call   0x4069a0
415191:	83 c4 0c             	add    $0xc,%esp
415194:	8b 4d 0c             	mov    0xc(%ebp),%ecx
415197:	8b 55 e4             	mov    -0x1c(%ebp),%edx
41519a:	89 11                	mov    %edx,(%ecx)
41519c:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%ebp)
4151a3:	8b 45 f8             	mov    -0x8(%ebp),%eax
4151a6:	50                   	push   %eax
4151a7:	e8 04 17 ff ff       	call   0x4068b0
4151ac:	83 c4 04             	add    $0x4,%esp
4151af:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4151b2:	51                   	push   %ecx
4151b3:	e8 f8 16 ff ff       	call   0x4068b0
4151b8:	83 c4 04             	add    $0x4,%esp
4151bb:	e9 68 fe ff ff       	jmp    0x415028
4151c0:	8b 55 f0             	mov    -0x10(%ebp),%edx
4151c3:	52                   	push   %edx
4151c4:	e8 e7 16 ff ff       	call   0x4068b0
4151c9:	83 c4 04             	add    $0x4,%esp
4151cc:	8b 45 e0             	mov    -0x20(%ebp),%eax
4151cf:	8b e5                	mov    %ebp,%esp
4151d1:	5d                   	pop    %ebp
4151d2:	c3                   	ret
4151d3:	cc                   	int3
4151d4:	cc                   	int3
4151d5:	cc                   	int3
4151d6:	cc                   	int3
4151d7:	cc                   	int3
4151d8:	cc                   	int3
4151d9:	cc                   	int3
4151da:	cc                   	int3
4151db:	cc                   	int3
4151dc:	cc                   	int3
4151dd:	cc                   	int3
4151de:	cc                   	int3
4151df:	cc                   	int3
4151e0:	55                   	push   %ebp
4151e1:	8b ec                	mov    %esp,%ebp
4151e3:	83 ec 2c             	sub    $0x2c,%esp
4151e6:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
4151ed:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4151f1:	74 0c                	je     0x4151ff
4151f3:	83 7d 08 ff          	cmpl   $0xffffffff,0x8(%ebp)
4151f7:	74 06                	je     0x4151ff
4151f9:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4151fd:	75 08                	jne    0x415207
4151ff:	8b 45 f4             	mov    -0xc(%ebp),%eax
415202:	e9 37 01 00 00       	jmp    0x41533e
415207:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
41520e:	6a 08                	push   $0x8
415210:	6a 00                	push   $0x0
415212:	8d 45 d4             	lea    -0x2c(%ebp),%eax
415215:	50                   	push   %eax
415216:	e8 65 17 ff ff       	call   0x406980
41521b:	83 c4 0c             	add    $0xc,%esp
41521e:	c7 45 d4 01 00 00 00 	movl   $0x1,-0x2c(%ebp)
415225:	8b 4d 08             	mov    0x8(%ebp),%ecx
415228:	51                   	push   %ecx
415229:	68 00 00 00 08       	push   $0x8000000
41522e:	6a 02                	push   $0x2
415230:	8d 55 d4             	lea    -0x2c(%ebp),%edx
415233:	52                   	push   %edx
415234:	6a 00                	push   $0x0
415236:	6a 04                	push   $0x4
415238:	8d 45 ec             	lea    -0x14(%ebp),%eax
41523b:	50                   	push   %eax
41523c:	e8 7f d3 fe ff       	call   0x4025c0
415241:	8b 88 98 00 00 00    	mov    0x98(%eax),%ecx
415247:	ff d1                	call   *%ecx
415249:	89 45 fc             	mov    %eax,-0x4(%ebp)
41524c:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
415250:	0f 8c e0 00 00 00    	jl     0x415336
415256:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
41525d:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
415264:	6a 02                	push   $0x2
415266:	6a 00                	push   $0x0
415268:	6a 02                	push   $0x2
41526a:	8d 55 e4             	lea    -0x1c(%ebp),%edx
41526d:	52                   	push   %edx
41526e:	6a 00                	push   $0x0
415270:	6a 01                	push   $0x1
415272:	6a 00                	push   $0x0
415274:	8d 45 f0             	lea    -0x10(%ebp),%eax
415277:	50                   	push   %eax
415278:	6a ff                	push   $0xffffffff
41527a:	8b 4d ec             	mov    -0x14(%ebp),%ecx
41527d:	51                   	push   %ecx
41527e:	e8 3d d3 fe ff       	call   0x4025c0
415283:	8b 90 9c 00 00 00    	mov    0x9c(%eax),%edx
415289:	ff d2                	call   *%edx
41528b:	89 45 fc             	mov    %eax,-0x4(%ebp)
41528e:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
415292:	0f 8c 8d 00 00 00    	jl     0x415325
415298:	c7 45 e8 10 02 00 00 	movl   $0x210,-0x18(%ebp)
41529f:	8b 45 e8             	mov    -0x18(%ebp),%eax
4152a2:	50                   	push   %eax
4152a3:	e8 d8 15 ff ff       	call   0x406880
4152a8:	83 c4 04             	add    $0x4,%esp
4152ab:	89 45 f8             	mov    %eax,-0x8(%ebp)
4152ae:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
4152b2:	74 5e                	je     0x415312
4152b4:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
4152bb:	8d 4d e0             	lea    -0x20(%ebp),%ecx
4152be:	51                   	push   %ecx
4152bf:	8b 55 e8             	mov    -0x18(%ebp),%edx
4152c2:	52                   	push   %edx
4152c3:	8b 45 f8             	mov    -0x8(%ebp),%eax
4152c6:	50                   	push   %eax
4152c7:	6a 02                	push   $0x2
4152c9:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4152cc:	51                   	push   %ecx
4152cd:	6a ff                	push   $0xffffffff
4152cf:	e8 ec d2 fe ff       	call   0x4025c0
4152d4:	8b 90 94 00 00 00    	mov    0x94(%eax),%edx
4152da:	ff d2                	call   *%edx
4152dc:	89 45 fc             	mov    %eax,-0x4(%ebp)
4152df:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
4152e3:	7c 21                	jl     0x415306
4152e5:	8b 45 f8             	mov    -0x8(%ebp),%eax
4152e8:	89 45 dc             	mov    %eax,-0x24(%ebp)
4152eb:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4152ee:	51                   	push   %ecx
4152ef:	8b 55 dc             	mov    -0x24(%ebp),%edx
4152f2:	52                   	push   %edx
4152f3:	e8 a8 fc ff ff       	call   0x414fa0
4152f8:	83 c4 08             	add    $0x8,%esp
4152fb:	85 c0                	test   %eax,%eax
4152fd:	74 07                	je     0x415306
4152ff:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
415306:	8b 45 f8             	mov    -0x8(%ebp),%eax
415309:	50                   	push   %eax
41530a:	e8 a1 15 ff ff       	call   0x4068b0
41530f:	83 c4 04             	add    $0x4,%esp
415312:	8b 4d f0             	mov    -0x10(%ebp),%ecx
415315:	51                   	push   %ecx
415316:	6a ff                	push   $0xffffffff
415318:	e8 a3 d2 fe ff       	call   0x4025c0
41531d:	8b 90 a0 00 00 00    	mov    0xa0(%eax),%edx
415323:	ff d2                	call   *%edx
415325:	8b 45 ec             	mov    -0x14(%ebp),%eax
415328:	50                   	push   %eax
415329:	e8 92 d2 fe ff       	call   0x4025c0
41532e:	8b 88 b8 00 00 00    	mov    0xb8(%eax),%ecx
415334:	ff d1                	call   *%ecx
415336:	8b 45 f4             	mov    -0xc(%ebp),%eax
415339:	eb 03                	jmp    0x41533e
41533b:	8b 45 f4             	mov    -0xc(%ebp),%eax
41533e:	8b e5                	mov    %ebp,%esp
415340:	5d                   	pop    %ebp
415341:	c3                   	ret
415342:	cc                   	int3
415343:	cc                   	int3
415344:	cc                   	int3
415345:	cc                   	int3
415346:	cc                   	int3
415347:	cc                   	int3
415348:	cc                   	int3
415349:	cc                   	int3
41534a:	cc                   	int3
41534b:	cc                   	int3
41534c:	cc                   	int3
41534d:	cc                   	int3
41534e:	cc                   	int3
41534f:	cc                   	int3
415350:	55                   	push   %ebp
415351:	8b ec                	mov    %esp,%ebp
415353:	83 ec 18             	sub    $0x18,%esp
415356:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
41535d:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
415361:	75 08                	jne    0x41536b
415363:	8b 45 ec             	mov    -0x14(%ebp),%eax
415366:	e9 d8 00 00 00       	jmp    0x415443
41536b:	8b 45 08             	mov    0x8(%ebp),%eax
41536e:	50                   	push   %eax
41536f:	e8 7c f7 ff ff       	call   0x414af0
415374:	83 c4 04             	add    $0x4,%esp
415377:	89 45 f8             	mov    %eax,-0x8(%ebp)
41537a:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
41537e:	0f 84 bc 00 00 00    	je     0x415440
415384:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
41538b:	6a 02                	push   $0x2
41538d:	6a 00                	push   $0x0
41538f:	6a 00                	push   $0x0
415391:	8d 4d f0             	lea    -0x10(%ebp),%ecx
415394:	51                   	push   %ecx
415395:	6a ff                	push   $0xffffffff
415397:	8b 55 0c             	mov    0xc(%ebp),%edx
41539a:	52                   	push   %edx
41539b:	8b 45 f8             	mov    -0x8(%ebp),%eax
41539e:	8b 08                	mov    (%eax),%ecx
4153a0:	51                   	push   %ecx
4153a1:	e8 1a d2 fe ff       	call   0x4025c0
4153a6:	8b 90 c8 00 00 00    	mov    0xc8(%eax),%edx
4153ac:	ff d2                	call   *%edx
4153ae:	85 c0                	test   %eax,%eax
4153b0:	0f 8c 8a 00 00 00    	jl     0x415440