00401000 <.text>:
401000:	55                   	push   %ebp
401001:	8b ec                	mov    %esp,%ebp
401003:	83 ec 48             	sub    $0x48,%esp
401006:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
40100d:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
401011:	74 06                	je     0x401019
401013:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
401017:	75 08                	jne    0x401021
401019:	8b 45 ec             	mov    -0x14(%ebp),%eax
40101c:	e9 f9 01 00 00       	jmp    0x40121a
401021:	8b 45 08             	mov    0x8(%ebp),%eax
401024:	89 45 d8             	mov    %eax,-0x28(%ebp)
401027:	8b 4d d8             	mov    -0x28(%ebp),%ecx
40102a:	8b 55 d8             	mov    -0x28(%ebp),%edx
40102d:	03 51 3c             	add    0x3c(%ecx),%edx
401030:	89 55 dc             	mov    %edx,-0x24(%ebp)
401033:	0f 84 de 01 00 00    	je     0x401217
401039:	b8 08 00 00 00       	mov    $0x8,%eax
40103e:	6b c8 00             	imul   $0x0,%eax,%ecx
401041:	8b 55 dc             	mov    -0x24(%ebp),%edx
401044:	8b 45 08             	mov    0x8(%ebp),%eax
401047:	03 44 0a 78          	add    0x78(%edx,%ecx,1),%eax
40104b:	89 45 e8             	mov    %eax,-0x18(%ebp)
40104e:	8b 4d e8             	mov    -0x18(%ebp),%ecx
401051:	8b 55 08             	mov    0x8(%ebp),%edx
401054:	03 51 20             	add    0x20(%ecx),%edx
401057:	89 55 d0             	mov    %edx,-0x30(%ebp)
40105a:	8b 45 e8             	mov    -0x18(%ebp),%eax
40105d:	8b 4d 08             	mov    0x8(%ebp),%ecx
401060:	03 48 1c             	add    0x1c(%eax),%ecx
401063:	89 4d e0             	mov    %ecx,-0x20(%ebp)
401066:	8b 55 e8             	mov    -0x18(%ebp),%edx
401069:	8b 45 08             	mov    0x8(%ebp),%eax
40106c:	03 42 24             	add    0x24(%edx),%eax
40106f:	89 45 e4             	mov    %eax,-0x1c(%ebp)
401072:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
401079:	eb 09                	jmp    0x401084
40107b:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40107e:	83 c1 01             	add    $0x1,%ecx
401081:	89 4d f8             	mov    %ecx,-0x8(%ebp)
401084:	8b 55 e8             	mov    -0x18(%ebp),%edx
401087:	8b 45 f8             	mov    -0x8(%ebp),%eax
40108a:	3b 42 18             	cmp    0x18(%edx),%eax
40108d:	0f 83 84 01 00 00    	jae    0x401217
401093:	8b 4d f8             	mov    -0x8(%ebp),%ecx
401096:	8b 55 d0             	mov    -0x30(%ebp),%edx
401099:	8b 45 08             	mov    0x8(%ebp),%eax
40109c:	03 04 8a             	add    (%edx,%ecx,4),%eax
40109f:	89 45 cc             	mov    %eax,-0x34(%ebp)
4010a2:	8b 4d cc             	mov    -0x34(%ebp),%ecx
4010a5:	51                   	push   %ecx
4010a6:	e8 d5 66 00 00       	call   0x407780
4010ab:	83 c4 04             	add    $0x4,%esp
4010ae:	3b 45 0c             	cmp    0xc(%ebp),%eax
4010b1:	0f 85 5b 01 00 00    	jne    0x401212
4010b7:	ba 08 00 00 00       	mov    $0x8,%edx
4010bc:	6b c2 00             	imul   $0x0,%edx,%eax
4010bf:	8b 4d dc             	mov    -0x24(%ebp),%ecx
4010c2:	8b 54 01 78          	mov    0x78(%ecx,%eax,1),%edx
4010c6:	8b 44 01 7c          	mov    0x7c(%ecx,%eax,1),%eax
4010ca:	89 55 b8             	mov    %edx,-0x48(%ebp)
4010cd:	89 45 bc             	mov    %eax,-0x44(%ebp)
4010d0:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4010d3:	8b 55 e4             	mov    -0x1c(%ebp),%edx
4010d6:	0f b7 04 4a          	movzwl (%edx,%ecx,2),%eax
4010da:	8b 4d e0             	mov    -0x20(%ebp),%ecx
4010dd:	8b 14 81             	mov    (%ecx,%eax,4),%edx
4010e0:	3b 55 b8             	cmp    -0x48(%ebp),%edx
4010e3:	0f 86 11 01 00 00    	jbe    0x4011fa
4010e9:	8b 45 f8             	mov    -0x8(%ebp),%eax
4010ec:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
4010ef:	0f b7 14 41          	movzwl (%ecx,%eax,2),%edx
4010f3:	8b 45 b8             	mov    -0x48(%ebp),%eax
4010f6:	03 45 bc             	add    -0x44(%ebp),%eax
4010f9:	8b 4d e0             	mov    -0x20(%ebp),%ecx
4010fc:	39 04 91             	cmp    %eax,(%ecx,%edx,4)
4010ff:	0f 83 f5 00 00 00    	jae    0x4011fa
401105:	8b 55 f8             	mov    -0x8(%ebp),%edx
401108:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40110b:	0f b7 0c 50          	movzwl (%eax,%edx,2),%ecx
40110f:	8b 55 e0             	mov    -0x20(%ebp),%edx
401112:	8b 45 08             	mov    0x8(%ebp),%eax
401115:	03 04 8a             	add    (%edx,%ecx,4),%eax
401118:	89 45 f4             	mov    %eax,-0xc(%ebp)
40111b:	0f 84 d7 00 00 00    	je     0x4011f8
401121:	8b 0d 94 71 41 00    	mov    0x417194,%ecx
401127:	83 39 00             	cmpl   $0x0,(%ecx)
40112a:	75 08                	jne    0x401134
40112c:	8b 45 ec             	mov    -0x14(%ebp),%eax
40112f:	e9 e6 00 00 00       	jmp    0x40121a
401134:	c7 45 c4 00 00 00 00 	movl   $0x0,-0x3c(%ebp)
40113b:	c7 45 c0 00 00 00 00 	movl   $0x0,-0x40(%ebp)
401142:	8b 55 f4             	mov    -0xc(%ebp),%edx
401145:	52                   	push   %edx
401146:	e8 d5 58 00 00       	call   0x406a20
40114b:	83 c4 04             	add    $0x4,%esp
40114e:	89 45 c8             	mov    %eax,-0x38(%ebp)
401151:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
401158:	eb 09                	jmp    0x401163
40115a:	8b 45 fc             	mov    -0x4(%ebp),%eax
40115d:	83 c0 01             	add    $0x1,%eax
401160:	89 45 fc             	mov    %eax,-0x4(%ebp)
401163:	8b 4d fc             	mov    -0x4(%ebp),%ecx
401166:	3b 4d c8             	cmp    -0x38(%ebp),%ecx
401169:	0f 8d 89 00 00 00    	jge    0x4011f8
40116f:	8b 55 f4             	mov    -0xc(%ebp),%edx
401172:	03 55 fc             	add    -0x4(%ebp),%edx
401175:	0f be 02             	movsbl (%edx),%eax
401178:	83 f8 2e             	cmp    $0x2e,%eax
40117b:	75 76                	jne    0x4011f3
40117d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
401180:	51                   	push   %ecx
401181:	e8 5a 58 00 00       	call   0x4069e0
401186:	83 c4 04             	add    $0x4,%esp
401189:	89 45 f0             	mov    %eax,-0x10(%ebp)
40118c:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
401190:	74 61                	je     0x4011f3
401192:	8b 55 fc             	mov    -0x4(%ebp),%edx
401195:	52                   	push   %edx
401196:	8b 45 f4             	mov    -0xc(%ebp),%eax
401199:	50                   	push   %eax
40119a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40119d:	51                   	push   %ecx
40119e:	e8 fd 57 00 00       	call   0x4069a0
4011a3:	83 c4 0c             	add    $0xc,%esp
4011a6:	8b 55 f0             	mov    -0x10(%ebp),%edx
4011a9:	03 55 fc             	add    -0x4(%ebp),%edx
4011ac:	c6 02 00             	movb   $0x0,(%edx)
4011af:	8b 45 f0             	mov    -0x10(%ebp),%eax
4011b2:	50                   	push   %eax
4011b3:	e8 48 01 00 00       	call   0x401300
4011b8:	83 c4 04             	add    $0x4,%esp
4011bb:	89 45 d4             	mov    %eax,-0x2c(%ebp)
4011be:	83 7d d4 00          	cmpl   $0x0,-0x2c(%ebp)
4011c2:	74 23                	je     0x4011e7
4011c4:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4011c7:	8b 55 f4             	mov    -0xc(%ebp),%edx
4011ca:	8d 44 0a 01          	lea    0x1(%edx,%ecx,1),%eax
4011ce:	50                   	push   %eax
4011cf:	e8 ac 65 00 00       	call   0x407780
4011d4:	83 c4 04             	add    $0x4,%esp
4011d7:	50                   	push   %eax
4011d8:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
4011db:	51                   	push   %ecx
4011dc:	e8 1f fe ff ff       	call   0x401000
4011e1:	83 c4 08             	add    $0x8,%esp
4011e4:	89 45 ec             	mov    %eax,-0x14(%ebp)
4011e7:	8b 55 f0             	mov    -0x10(%ebp),%edx
4011ea:	52                   	push   %edx
4011eb:	e8 c0 56 00 00       	call   0x4068b0
4011f0:	83 c4 04             	add    $0x4,%esp
4011f3:	e9 62 ff ff ff       	jmp    0x40115a
4011f8:	eb 16                	jmp    0x401210
4011fa:	8b 45 f8             	mov    -0x8(%ebp),%eax
4011fd:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
401200:	0f b7 14 41          	movzwl (%ecx,%eax,2),%edx
401204:	8b 45 e0             	mov    -0x20(%ebp),%eax
401207:	8b 4d 08             	mov    0x8(%ebp),%ecx
40120a:	03 0c 90             	add    (%eax,%edx,4),%ecx
40120d:	89 4d ec             	mov    %ecx,-0x14(%ebp)
401210:	eb 05                	jmp    0x401217
401212:	e9 64 fe ff ff       	jmp    0x40107b
401217:	8b 45 ec             	mov    -0x14(%ebp),%eax
40121a:	8b e5                	mov    %ebp,%esp
40121c:	5d                   	pop    %ebp
40121d:	c3                   	ret
40121e:	cc                   	int3
40121f:	cc                   	int3
401220:	55                   	push   %ebp
401221:	8b ec                	mov    %esp,%ebp
401223:	83 ec 10             	sub    $0x10,%esp
401226:	e8 d5 25 01 00       	call   0x413800
40122b:	89 45 f4             	mov    %eax,-0xc(%ebp)
40122e:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
401232:	74 57                	je     0x40128b
401234:	8b 45 f4             	mov    -0xc(%ebp),%eax
401237:	8b 48 0c             	mov    0xc(%eax),%ecx
40123a:	83 c1 14             	add    $0x14,%ecx
40123d:	89 4d f0             	mov    %ecx,-0x10(%ebp)
401240:	8b 55 f0             	mov    -0x10(%ebp),%edx
401243:	8b 02                	mov    (%edx),%eax
401245:	89 45 fc             	mov    %eax,-0x4(%ebp)
401248:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40124b:	3b 4d f0             	cmp    -0x10(%ebp),%ecx
40124e:	74 3b                	je     0x40128b
401250:	8b 55 fc             	mov    -0x4(%ebp),%edx
401253:	83 ea 08             	sub    $0x8,%edx
401256:	89 55 f8             	mov    %edx,-0x8(%ebp)
401259:	6a 01                	push   $0x1
40125b:	8b 45 f8             	mov    -0x8(%ebp),%eax
40125e:	0f b7 48 2c          	movzwl 0x2c(%eax),%ecx
401262:	d1 e9                	shr    $1,%ecx
401264:	51                   	push   %ecx
401265:	8b 55 f8             	mov    -0x8(%ebp),%edx
401268:	8b 42 30             	mov    0x30(%edx),%eax
40126b:	50                   	push   %eax
40126c:	e8 4f 65 00 00       	call   0x4077c0
401271:	83 c4 0c             	add    $0xc,%esp
401274:	3b 45 08             	cmp    0x8(%ebp),%eax
401277:	75 08                	jne    0x401281
401279:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40127c:	8b 41 18             	mov    0x18(%ecx),%eax
40127f:	eb 0c                	jmp    0x40128d
401281:	8b 55 fc             	mov    -0x4(%ebp),%edx
401284:	8b 02                	mov    (%edx),%eax
401286:	89 45 fc             	mov    %eax,-0x4(%ebp)
401289:	eb bd                	jmp    0x401248
40128b:	33 c0                	xor    %eax,%eax
40128d:	8b e5                	mov    %ebp,%esp
40128f:	5d                   	pop    %ebp
401290:	c3                   	ret
401291:	cc                   	int3
401292:	cc                   	int3
401293:	cc                   	int3
401294:	cc                   	int3
401295:	cc                   	int3
401296:	cc                   	int3
401297:	cc                   	int3
401298:	cc                   	int3
401299:	cc                   	int3
40129a:	cc                   	int3
40129b:	cc                   	int3
40129c:	cc                   	int3
40129d:	cc                   	int3
40129e:	cc                   	int3
40129f:	cc                   	int3
4012a0:	55                   	push   %ebp
4012a1:	8b ec                	mov    %esp,%ebp
4012a3:	83 ec 10             	sub    $0x10,%esp
4012a6:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4012aa:	75 04                	jne    0x4012b0
4012ac:	33 c0                	xor    %eax,%eax
4012ae:	eb 3f                	jmp    0x4012ef
4012b0:	8b 45 08             	mov    0x8(%ebp),%eax
4012b3:	50                   	push   %eax
4012b4:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4012b7:	51                   	push   %ecx
4012b8:	e8 03 13 00 00       	call   0x4025c0
4012bd:	8b 50 50             	mov    0x50(%eax),%edx
4012c0:	ff d2                	call   *%edx
4012c2:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
4012c9:	8d 45 fc             	lea    -0x4(%ebp),%eax
4012cc:	50                   	push   %eax
4012cd:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4012d0:	51                   	push   %ecx
4012d1:	6a 00                	push   $0x0
4012d3:	6a 00                	push   $0x0
4012d5:	e8 e6 12 00 00       	call   0x4025c0
4012da:	8b 50 64             	mov    0x64(%eax),%edx
4012dd:	ff d2                	call   *%edx
4012df:	89 45 f8             	mov    %eax,-0x8(%ebp)
4012e2:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
4012e6:	7c 05                	jl     0x4012ed
4012e8:	8b 45 fc             	mov    -0x4(%ebp),%eax
4012eb:	eb 02                	jmp    0x4012ef
4012ed:	33 c0                	xor    %eax,%eax
4012ef:	8b e5                	mov    %ebp,%esp
4012f1:	5d                   	pop    %ebp
4012f2:	c3                   	ret
4012f3:	cc                   	int3
4012f4:	cc                   	int3
4012f5:	cc                   	int3
4012f6:	cc                   	int3
4012f7:	cc                   	int3
4012f8:	cc                   	int3
4012f9:	cc                   	int3
4012fa:	cc                   	int3
4012fb:	cc                   	int3
4012fc:	cc                   	int3
4012fd:	cc                   	int3
4012fe:	cc                   	int3
4012ff:	cc                   	int3
401300:	55                   	push   %ebp
401301:	8b ec                	mov    %esp,%ebp
401303:	83 ec 08             	sub    $0x8,%esp
401306:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
40130d:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
401311:	75 05                	jne    0x401318
401313:	8b 45 f8             	mov    -0x8(%ebp),%eax
401316:	eb 39                	jmp    0x401351
401318:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40131f:	8d 45 fc             	lea    -0x4(%ebp),%eax
401322:	50                   	push   %eax
401323:	8b 4d 08             	mov    0x8(%ebp),%ecx
401326:	51                   	push   %ecx
401327:	e8 a4 60 00 00       	call   0x4073d0
40132c:	83 c4 08             	add    $0x8,%esp
40132f:	85 c0                	test   %eax,%eax
401331:	74 1b                	je     0x40134e
401333:	8b 55 fc             	mov    -0x4(%ebp),%edx
401336:	52                   	push   %edx
401337:	e8 64 ff ff ff       	call   0x4012a0
40133c:	83 c4 04             	add    $0x4,%esp
40133f:	89 45 f8             	mov    %eax,-0x8(%ebp)
401342:	8b 45 fc             	mov    -0x4(%ebp),%eax
401345:	50                   	push   %eax
401346:	e8 65 55 00 00       	call   0x4068b0
40134b:	83 c4 04             	add    $0x4,%esp
40134e:	8b 45 f8             	mov    -0x8(%ebp),%eax
401351:	8b e5                	mov    %ebp,%esp
401353:	5d                   	pop    %ebp
401354:	c3                   	ret
401355:	cc                   	int3
401356:	cc                   	int3
401357:	cc                   	int3
401358:	cc                   	int3
401359:	cc                   	int3
40135a:	cc                   	int3
40135b:	cc                   	int3
40135c:	cc                   	int3
40135d:	cc                   	int3
40135e:	cc                   	int3
40135f:	cc                   	int3
401360:	55                   	push   %ebp
401361:	8b ec                	mov    %esp,%ebp
401363:	83 ec 28             	sub    $0x28,%esp
401366:	68 40 5e c0 84       	push   $0x84c05e40
40136b:	e8 b0 fe ff ff       	call   0x401220
401370:	83 c4 04             	add    $0x4,%esp
401373:	89 45 f8             	mov    %eax,-0x8(%ebp)
401376:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
40137a:	0f 84 36 12 00 00    	je     0x4025b6
401380:	68 74 59 d4 a1       	push   $0xa1d45974
401385:	8b 45 f8             	mov    -0x8(%ebp),%eax
401388:	50                   	push   %eax
401389:	e8 72 fc ff ff       	call   0x401000
40138e:	83 c4 08             	add    $0x8,%esp
401391:	89 45 d8             	mov    %eax,-0x28(%ebp)
401394:	83 7d d8 00          	cmpl   $0x0,-0x28(%ebp)
401398:	0f 84 18 12 00 00    	je     0x4025b6
40139e:	68 54 02 00 00       	push   $0x254
4013a3:	6a 08                	push   $0x8
4013a5:	e8 c6 54 00 00       	call   0x406870
4013aa:	50                   	push   %eax
4013ab:	ff 55 d8             	call   *-0x28(%ebp)
4013ae:	a3 94 71 41 00       	mov    %eax,0x417194
4013b3:	83 3d 94 71 41 00 00 	cmpl   $0x0,0x417194
4013ba:	0f 84 f6 11 00 00    	je     0x4025b6
4013c0:	68 74 59 d4 a1       	push   $0xa1d45974
4013c5:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4013c8:	51                   	push   %ecx
4013c9:	e8 32 fc ff ff       	call   0x401000
4013ce:	83 c4 08             	add    $0x8,%esp
4013d1:	8b 15 94 71 41 00    	mov    0x417194,%edx
4013d7:	89 02                	mov    %eax,(%edx)
4013d9:	68 24 bc 11 af       	push   $0xaf11bc24
4013de:	8b 45 f8             	mov    -0x8(%ebp),%eax
4013e1:	50                   	push   %eax
4013e2:	e8 19 fc ff ff       	call   0x401000