40b178:	8b ce                	mov    %esi,%ecx
40b17a:	e8 7d 1b 00 00       	call   0x40ccfc
40b17f:	6a 00                	push   $0x0
40b181:	68 4e 04 00 00       	push   $0x44e
40b186:	8b ce                	mov    %esi,%ecx
40b188:	e8 6f 1b 00 00       	call   0x40ccfc
40b18d:	6a 00                	push   $0x0
40b18f:	68 4e 04 00 00       	push   $0x44e
40b194:	e9 6f 01 00 00       	jmp    0x40b308
40b199:	33 c9                	xor    %ecx,%ecx
40b19b:	39 8f ec 51 41 00    	cmp    %ecx,0x4151ec(%edi)
40b1a1:	75 14                	jne    0x40b1b7
40b1a3:	39 8f f0 51 41 00    	cmp    %ecx,0x4151f0(%edi)
40b1a9:	75 0c                	jne    0x40b1b7
40b1ab:	39 8f f4 51 41 00    	cmp    %ecx,0x4151f4(%edi)
40b1b1:	0f 84 64 01 00 00    	je     0x40b31b
40b1b7:	8b 87 08 52 41 00    	mov    0x415208(%edi),%eax
40b1bd:	2b c1                	sub    %ecx,%eax
40b1bf:	74 45                	je     0x40b206
40b1c1:	83 e8 01             	sub    $0x1,%eax
40b1c4:	74 32                	je     0x40b1f8
40b1c6:	83 e8 01             	sub    $0x1,%eax
40b1c9:	74 22                	je     0x40b1ed
40b1cb:	83 e8 01             	sub    $0x1,%eax
40b1ce:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40b1d1:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40b1d4:	8b c1                	mov    %ecx,%eax
40b1d6:	74 09                	je     0x40b1e1
40b1d8:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
40b1df:	eb 31                	jmp    0x40b212
40b1e1:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40b1e4:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
40b1eb:	eb 28                	jmp    0x40b215
40b1ed:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
40b1f4:	8b c1                	mov    %ecx,%eax
40b1f6:	eb 14                	jmp    0x40b20c
40b1f8:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40b1fb:	8b c1                	mov    %ecx,%eax
40b1fd:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
40b204:	eb 09                	jmp    0x40b20f
40b206:	33 c0                	xor    %eax,%eax
40b208:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40b20b:	40                   	inc    %eax
40b20c:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40b20f:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40b212:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40b215:	50                   	push   %eax
40b216:	68 4c 04 00 00       	push   $0x44c
40b21b:	8b ce                	mov    %esi,%ecx
40b21d:	e8 da 1a 00 00       	call   0x40ccfc
40b222:	ff 75 f8             	push   -0x8(%ebp)
40b225:	8b ce                	mov    %esi,%ecx
40b227:	68 4d 04 00 00       	push   $0x44d
40b22c:	e8 cb 1a 00 00       	call   0x40ccfc
40b231:	ff 75 f4             	push   -0xc(%ebp)
40b234:	8b ce                	mov    %esi,%ecx
40b236:	68 4e 04 00 00       	push   $0x44e
40b23b:	e8 bc 1a 00 00       	call   0x40ccfc
40b240:	ff 75 f0             	push   -0x10(%ebp)
40b243:	8b ce                	mov    %esi,%ecx
40b245:	68 67 04 00 00       	push   $0x467
40b24a:	e8 ad 1a 00 00       	call   0x40ccfc
40b24f:	ff 75 ec             	push   -0x14(%ebp)
40b252:	8b ce                	mov    %esi,%ecx
40b254:	68 6b 04 00 00       	push   $0x46b
40b259:	e8 9e 1a 00 00       	call   0x40ccfc
40b25e:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b261:	83 f8 0f             	cmp    $0xf,%eax
40b264:	0f 85 b1 00 00 00    	jne    0x40b31b
40b26a:	8b 0d 18 98 41 00    	mov    0x419818,%ecx
40b270:	ba 13 00 02 00       	mov    $0x20013,%edx
40b275:	3b ca                	cmp    %edx,%ecx
40b277:	74 0c                	je     0x40b285
40b279:	81 f9 11 00 02 00    	cmp    $0x20011,%ecx
40b27f:	0f 85 96 00 00 00    	jne    0x40b31b
40b285:	a1 8c 55 41 00       	mov    0x41558c,%eax
40b28a:	83 f8 02             	cmp    $0x2,%eax
40b28d:	74 09                	je     0x40b298
40b28f:	83 f8 03             	cmp    $0x3,%eax
40b292:	75 4a                	jne    0x40b2de
40b294:	3b ca                	cmp    %edx,%ecx
40b296:	75 46                	jne    0x40b2de
40b298:	6a 01                	push   $0x1
40b29a:	68 4c 04 00 00       	push   $0x44c
40b29f:	8b ce                	mov    %esi,%ecx
40b2a1:	e8 56 1a 00 00       	call   0x40ccfc
40b2a6:	6a 00                	push   $0x0
40b2a8:	68 4d 04 00 00       	push   $0x44d
40b2ad:	8b ce                	mov    %esi,%ecx
40b2af:	e8 48 1a 00 00       	call   0x40ccfc
40b2b4:	6a 00                	push   $0x0
40b2b6:	68 4e 04 00 00       	push   $0x44e
40b2bb:	8b ce                	mov    %esi,%ecx
40b2bd:	e8 3a 1a 00 00       	call   0x40ccfc
40b2c2:	6a 00                	push   $0x0
40b2c4:	68 67 04 00 00       	push   $0x467
40b2c9:	8b ce                	mov    %esi,%ecx
40b2cb:	e8 2c 1a 00 00       	call   0x40ccfc
40b2d0:	6a 00                	push   $0x0
40b2d2:	68 6b 04 00 00       	push   $0x46b
40b2d7:	8b ce                	mov    %esi,%ecx
40b2d9:	e8 1e 1a 00 00       	call   0x40ccfc
40b2de:	6a 00                	push   $0x0
40b2e0:	68 4e 04 00 00       	push   $0x44e
40b2e5:	ff 76 04             	push   0x4(%esi)
40b2e8:	ff 15 d0 b1 41 00    	call   *0x41b1d0
40b2ee:	50                   	push   %eax
40b2ef:	ff 15 dc b1 41 00    	call   *0x41b1dc
40b2f5:	81 3d 18 98 41 00 13 	cmpl   $0x20013,0x419818
40b2fc:	00 02 00
40b2ff:	75 17                	jne    0x40b318
40b301:	6a 00                	push   $0x0
40b303:	68 67 04 00 00       	push   $0x467
40b308:	ff 76 04             	push   0x4(%esi)
40b30b:	ff 15 d0 b1 41 00    	call   *0x41b1d0
40b311:	50                   	push   %eax
40b312:	ff 15 dc b1 41 00    	call   *0x41b1dc
40b318:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b31b:	8b 75 e8             	mov    -0x18(%ebp),%esi
40b31e:	85 f6                	test   %esi,%esi
40b320:	74 45                	je     0x40b367
40b322:	83 f8 07             	cmp    $0x7,%eax
40b325:	75 0f                	jne    0x40b336
40b327:	33 c0                	xor    %eax,%eax
40b329:	83 3d ac 53 41 00 01 	cmpl   $0x1,0x4153ac
40b330:	0f 94 c0             	sete   %al
40b333:	50                   	push   %eax
40b334:	eb 15                	jmp    0x40b34b
40b336:	83 f8 06             	cmp    $0x6,%eax
40b339:	75 0a                	jne    0x40b345
40b33b:	33 c0                	xor    %eax,%eax
40b33d:	39 05 70 53 41 00    	cmp    %eax,0x415370
40b343:	eb eb                	jmp    0x40b330
40b345:	ff b7 00 52 41 00    	push   0x415200(%edi)
40b34b:	56                   	push   %esi
40b34c:	ff 15 dc b1 41 00    	call   *0x41b1dc
40b352:	8b 87 00 52 41 00    	mov    0x415200(%edi),%eax
40b358:	f7 d8                	neg    %eax
40b35a:	1b c0                	sbb    %eax,%eax
40b35c:	83 e0 05             	and    $0x5,%eax
40b35f:	50                   	push   %eax
40b360:	56                   	push   %esi
40b361:	ff 15 34 b2 41 00    	call   *0x41b234
40b367:	85 db                	test   %ebx,%ebx
40b369:	0f 84 a4 00 00 00    	je     0x40b413
40b36f:	8b 87 0c 52 41 00    	mov    0x41520c(%edi),%eax
40b375:	85 c0                	test   %eax,%eax
40b377:	74 7d                	je     0x40b3f6
40b379:	68 08 02 00 00       	push   $0x208
40b37e:	e8 09 82 00 00       	call   0x41358c
40b383:	8b f0                	mov    %eax,%esi
40b385:	59                   	pop    %ecx
40b386:	85 f6                	test   %esi,%esi
40b388:	0f 84 ae 00 00 00    	je     0x40b43c
40b38e:	6a 00                	push   $0x0
40b390:	6a 00                	push   $0x0
40b392:	68 4b 01 00 00       	push   $0x14b
40b397:	53                   	push   %ebx
40b398:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40b39e:	33 ff                	xor    %edi,%edi
40b3a0:	47                   	inc    %edi
40b3a1:	57                   	push   %edi
40b3a2:	68 04 3b 40 00       	push   $0x403b04
40b3a7:	68 04 01 00 00       	push   $0x104
40b3ac:	56                   	push   %esi
40b3ad:	e8 f2 d3 ff ff       	call   0x4087a4
40b3b2:	83 c4 10             	add    $0x10,%esp
40b3b5:	85 c0                	test   %eax,%eax
40b3b7:	78 0f                	js     0x40b3c8
40b3b9:	56                   	push   %esi
40b3ba:	6a 00                	push   $0x0
40b3bc:	68 43 01 00 00       	push   $0x143
40b3c1:	53                   	push   %ebx
40b3c2:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40b3c8:	83 ff 1f             	cmp    $0x1f,%edi
40b3cb:	7c d3                	jl     0x40b3a0
40b3cd:	8b 7d e0             	mov    -0x20(%ebp),%edi
40b3d0:	6a 00                	push   $0x0
40b3d2:	8b 87 08 52 41 00    	mov    0x415208(%edi),%eax
40b3d8:	83 e8 02             	sub    $0x2,%eax
40b3db:	50                   	push   %eax
40b3dc:	68 4e 01 00 00       	push   $0x14e
40b3e1:	53                   	push   %ebx
40b3e2:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40b3e8:	56                   	push   %esi
40b3e9:	ff 15 24 b3 41 00    	call   *0x41b324
40b3ef:	8b 87 0c 52 41 00    	mov    0x41520c(%edi),%eax
40b3f5:	59                   	pop    %ecx
40b3f6:	50                   	push   %eax
40b3f7:	53                   	push   %ebx
40b3f8:	ff 15 dc b1 41 00    	call   *0x41b1dc
40b3fe:	8b 87 0c 52 41 00    	mov    0x41520c(%edi),%eax
40b404:	f7 d8                	neg    %eax
40b406:	1b c0                	sbb    %eax,%eax
40b408:	83 e0 05             	and    $0x5,%eax
40b40b:	50                   	push   %eax
40b40c:	53                   	push   %ebx
40b40d:	ff 15 34 b2 41 00    	call   *0x41b234
40b413:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
40b416:	85 db                	test   %ebx,%ebx
40b418:	74 22                	je     0x40b43c
40b41a:	ff b7 0c 52 41 00    	push   0x41520c(%edi)
40b420:	53                   	push   %ebx
40b421:	ff 15 dc b1 41 00    	call   *0x41b1dc
40b427:	8b 87 0c 52 41 00    	mov    0x41520c(%edi),%eax
40b42d:	f7 d8                	neg    %eax
40b42f:	1b c0                	sbb    %eax,%eax
40b431:	83 e0 05             	and    $0x5,%eax
40b434:	50                   	push   %eax
40b435:	53                   	push   %ebx
40b436:	ff 15 34 b2 41 00    	call   *0x41b234
40b43c:	5f                   	pop    %edi
40b43d:	5e                   	pop    %esi
40b43e:	5b                   	pop    %ebx
40b43f:	c9                   	leave
40b440:	c2 04 00             	ret    $0x4
40b443:	8b ff                	mov    %edi,%edi
40b445:	55                   	push   %ebp
40b446:	8b ec                	mov    %esp,%ebp
40b448:	83 ec 3c             	sub    $0x3c,%esp
40b44b:	53                   	push   %ebx
40b44c:	56                   	push   %esi
40b44d:	33 db                	xor    %ebx,%ebx
40b44f:	c7 45 c4 0c 00 00 00 	movl   $0xc,-0x3c(%ebp)
40b456:	53                   	push   %ebx
40b457:	8b f1                	mov    %ecx,%esi
40b459:	c7 45 d4 01 00 00 00 	movl   $0x1,-0x2c(%ebp)
40b460:	53                   	push   %ebx
40b461:	68 42 10 00 00       	push   $0x1042
40b466:	ff 76 0c             	push   0xc(%esi)
40b469:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40b46f:	89 45 c8             	mov    %eax,-0x38(%ebp)
40b472:	89 5d cc             	mov    %ebx,-0x34(%ebp)
40b475:	83 f8 ff             	cmp    $0xffffffff,%eax
40b478:	0f 84 df 00 00 00    	je     0x40b55d
40b47e:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40b481:	50                   	push   %eax
40b482:	53                   	push   %ebx
40b483:	68 4b 10 00 00       	push   $0x104b
40b488:	ff 76 0c             	push   0xc(%esi)
40b48b:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40b491:	85 c0                	test   %eax,%eax
40b493:	0f 84 c4 00 00 00    	je     0x40b55d
40b499:	f6 45 d0 01          	testb  $0x1,-0x30(%ebp)
40b49d:	0f 84 ba 00 00 00    	je     0x40b55d
40b4a3:	8b 55 e4             	mov    -0x1c(%ebp),%edx
40b4a6:	6b ca 3c             	imul   $0x3c,%edx,%ecx
40b4a9:	39 99 0c 52 41 00    	cmp    %ebx,0x41520c(%ecx)
40b4af:	0f 85 a8 00 00 00    	jne    0x40b55d
40b4b5:	a1 18 98 41 00       	mov    0x419818,%eax
40b4ba:	39 99 14 52 41 00    	cmp    %ebx,0x415214(%ecx)
40b4c0:	74 24                	je     0x40b4e6
40b4c2:	3d 22 00 10 00       	cmp    $0x100022,%eax
40b4c7:	0f 84 90 00 00 00    	je     0x40b55d
40b4cd:	3d 23 00 10 00       	cmp    $0x100023,%eax
40b4d2:	0f 84 85 00 00 00    	je     0x40b55d
40b4d8:	3d 31 00 00 04       	cmp    $0x4000031,%eax
40b4dd:	74 7e                	je     0x40b55d
40b4df:	3d 24 00 10 00       	cmp    $0x100024,%eax
40b4e4:	74 77                	je     0x40b55d
40b4e6:	39 99 18 52 41 00    	cmp    %ebx,0x415218(%ecx)
40b4ec:	74 07                	je     0x40b4f5
40b4ee:	3d 14 00 02 00       	cmp    $0x20014,%eax
40b4f3:	74 68                	je     0x40b55d
40b4f5:	83 fa 10             	cmp    $0x10,%edx
40b4f8:	75 13                	jne    0x40b50d
40b4fa:	39 9e f0 03 00 00    	cmp    %ebx,0x3f0(%esi)
40b500:	75 5b                	jne    0x40b55d
40b502:	83 3d ac 53 41 00 02 	cmpl   $0x2,0x4153ac
40b509:	75 0f                	jne    0x40b51a
40b50b:	eb 50                	jmp    0x40b55d
40b50d:	83 fa 0f             	cmp    $0xf,%edx
40b510:	75 08                	jne    0x40b51a
40b512:	39 9e f0 03 00 00    	cmp    %ebx,0x3f0(%esi)
40b518:	75 43                	jne    0x40b55d
40b51a:	8b 99 08 52 41 00    	mov    0x415208(%ecx),%ebx
40b520:	57                   	push   %edi
40b521:	43                   	inc    %ebx
40b522:	8d b9 fc 51 41 00    	lea    0x4151fc(%ecx),%edi
40b528:	6a 04                	push   $0x4
40b52a:	89 99 08 52 41 00    	mov    %ebx,0x415208(%ecx)
40b530:	58                   	pop    %eax
40b531:	83 3f 00             	cmpl   $0x0,(%edi)
40b534:	75 0a                	jne    0x40b540
40b536:	83 ef 04             	sub    $0x4,%edi
40b539:	83 e8 01             	sub    $0x1,%eax
40b53c:	75 f3                	jne    0x40b531
40b53e:	eb 0b                	jmp    0x40b54b
40b540:	3b d8                	cmp    %eax,%ebx
40b542:	76 07                	jbe    0x40b54b
40b544:	83 a1 08 52 41 00 00 	andl   $0x0,0x415208(%ecx)
40b54b:	52                   	push   %edx
40b54c:	8b ce                	mov    %esi,%ecx
40b54e:	e8 c7 ef ff ff       	call   0x40a51a
40b553:	6a ff                	push   $0xffffffff
40b555:	8b ce                	mov    %esi,%ecx
40b557:	e8 8d f8 ff ff       	call   0x40ade9
40b55c:	5f                   	pop    %edi
40b55d:	5e                   	pop    %esi
40b55e:	5b                   	pop    %ebx
40b55f:	c9                   	leave
40b560:	c3                   	ret
40b561:	cc                   	int3
40b562:	cc                   	int3
40b563:	cc                   	int3
40b564:	cc                   	int3
40b565:	cc                   	int3
40b566:	cc                   	int3
40b567:	cc                   	int3
40b568:	cc                   	int3
40b569:	cc                   	int3
40b56a:	cc                   	int3
40b56b:	cc                   	int3
40b56c:	cc                   	int3
40b56d:	cc                   	int3
40b56e:	cc                   	int3
40b56f:	cc                   	int3
40b570:	8b ff                	mov    %edi,%edi
40b572:	55                   	push   %ebp
40b573:	8b ec                	mov    %esp,%ebp
40b575:	51                   	push   %ecx
40b576:	53                   	push   %ebx
40b577:	56                   	push   %esi
40b578:	57                   	push   %edi
40b579:	8d 45 fc             	lea    -0x4(%ebp),%eax
40b57c:	33 db                	xor    %ebx,%ebx
40b57e:	50                   	push   %eax
40b57f:	68 23 01 00 00       	push   $0x123
40b584:	8b f1                	mov    %ecx,%esi
40b586:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40b589:	e8 3b 78 00 00       	call   0x412dc9
40b58e:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b591:	89 46 0c             	mov    %eax,0xc(%esi)
40b594:	8d 45 fc             	lea    -0x4(%ebp),%eax
40b597:	50                   	push   %eax
40b598:	68 01 01 00 00       	push   $0x101
40b59d:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40b5a0:	e8 24 78 00 00       	call   0x412dc9
40b5a5:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b5a8:	89 46 10             	mov    %eax,0x10(%esi)
40b5ab:	8d 45 fc             	lea    -0x4(%ebp),%eax
40b5ae:	50                   	push   %eax
40b5af:	68 3b 01 00 00       	push   $0x13b
40b5b4:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40b5b7:	e8 0d 78 00 00       	call   0x412dc9
40b5bc:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b5bf:	89 46 14             	mov    %eax,0x14(%esi)
40b5c2:	8d 45 fc             	lea    -0x4(%ebp),%eax
40b5c5:	50                   	push   %eax
40b5c6:	68 04 01 00 00       	push   $0x104