40f20c:	8b 76 10             	mov    0x10(%esi),%esi
40f20f:	8b ce                	mov    %esi,%ecx
40f211:	50                   	push   %eax
40f212:	c7 85 dc fb ff ff 00 	movl   $0x0,-0x424(%ebp)
40f219:	00 00 00
40f21c:	ff 15 c4 12 45 00    	call   *0x4512c4
40f222:	ff d6                	call   *%esi
40f224:	85 c0                	test   %eax,%eax
40f226:	0f 88 20 9c 01 00    	js     0x428e4c
40f22c:	66 8b 85 c8 fb ff ff 	mov    -0x438(%ebp),%ax
40f233:	66 83 f8 03          	cmp    $0x3,%ax
40f237:	0f 85 fa 9b 01 00    	jne    0x428e37
40f23d:	8b 85 d0 fb ff ff    	mov    -0x430(%ebp),%eax
40f243:	85 c0                	test   %eax,%eax
40f245:	0f 85 c9 9b 01 00    	jne    0x428e14
40f24b:	89 87 58 06 00 00    	mov    %eax,0x658(%edi)
40f251:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
40f257:	50                   	push   %eax
40f258:	ff 15 1c 30 45 00    	call   *0x45301c
40f25e:	85 db                	test   %ebx,%ebx
40f260:	0f 88 b7 03 00 00    	js     0x40f61d
40f266:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
40f26c:	50                   	push   %eax
40f26d:	ff 15 00 30 45 00    	call   *0x453000
40f273:	8b 85 c4 fb ff ff    	mov    -0x43c(%ebp),%eax
40f279:	8d 8d dc fb ff ff    	lea    -0x424(%ebp),%ecx
40f27f:	51                   	push   %ecx
40f280:	8d 8d d8 fb ff ff    	lea    -0x428(%ebp),%ecx
40f286:	c7 85 d8 fb ff ff 00 	movl   $0x0,-0x428(%ebp)
40f28d:	00 00 00
40f290:	51                   	push   %ecx
40f291:	8b 30                	mov    (%eax),%esi
40f293:	8d 8d c8 fb ff ff    	lea    -0x438(%ebp),%ecx
40f299:	51                   	push   %ecx
40f29a:	6a 00                	push   $0x0
40f29c:	68 70 67 40 00       	push   $0x406770
40f2a1:	8b 76 10             	mov    0x10(%esi),%esi
40f2a4:	8b ce                	mov    %esi,%ecx
40f2a6:	50                   	push   %eax
40f2a7:	c7 85 dc fb ff ff 00 	movl   $0x0,-0x424(%ebp)
40f2ae:	00 00 00
40f2b1:	ff 15 c4 12 45 00    	call   *0x4512c4
40f2b7:	ff d6                	call   *%esi
40f2b9:	85 c0                	test   %eax,%eax
40f2bb:	0f 88 a7 9b 01 00    	js     0x428e68
40f2c1:	66 8b 85 c8 fb ff ff 	mov    -0x438(%ebp),%ax
40f2c8:	66 83 f8 0b          	cmp    $0xb,%ax
40f2cc:	0f 84 91 04 00 00    	je     0x40f763
40f2d2:	66 83 f8 01          	cmp    $0x1,%ax
40f2d6:	0f 85 82 9b 01 00    	jne    0x428e5e
40f2dc:	c7 87 5c 06 00 00 00 	movl   $0x0,0x65c(%edi)
40f2e3:	00 00 00
40f2e6:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
40f2ec:	50                   	push   %eax
40f2ed:	ff 15 1c 30 45 00    	call   *0x45301c
40f2f3:	85 db                	test   %ebx,%ebx
40f2f5:	0f 88 22 03 00 00    	js     0x40f61d
40f2fb:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
40f301:	50                   	push   %eax
40f302:	ff 15 00 30 45 00    	call   *0x453000
40f308:	8b 85 c4 fb ff ff    	mov    -0x43c(%ebp),%eax
40f30e:	8d 8d dc fb ff ff    	lea    -0x424(%ebp),%ecx
40f314:	51                   	push   %ecx
40f315:	8d 8d d8 fb ff ff    	lea    -0x428(%ebp),%ecx
40f31b:	c7 85 d8 fb ff ff 00 	movl   $0x0,-0x428(%ebp)
40f322:	00 00 00
40f325:	51                   	push   %ecx
40f326:	8b 30                	mov    (%eax),%esi
40f328:	8d 8d c8 fb ff ff    	lea    -0x438(%ebp),%ecx
40f32e:	51                   	push   %ecx
40f32f:	6a 00                	push   $0x0
40f331:	68 44 67 40 00       	push   $0x406744
40f336:	8b 76 10             	mov    0x10(%esi),%esi
40f339:	8b ce                	mov    %esi,%ecx
40f33b:	50                   	push   %eax
40f33c:	c7 85 dc fb ff ff 00 	movl   $0x0,-0x424(%ebp)
40f343:	00 00 00
40f346:	ff 15 c4 12 45 00    	call   *0x4512c4
40f34c:	ff d6                	call   *%esi
40f34e:	85 c0                	test   %eax,%eax
40f350:	0f 88 43 9b 01 00    	js     0x428e99
40f356:	66 8b 85 c8 fb ff ff 	mov    -0x438(%ebp),%ax
40f35d:	66 83 f8 0b          	cmp    $0xb,%ax
40f361:	0f 85 13 9b 01 00    	jne    0x428e7a
40f367:	33 c0                	xor    %eax,%eax
40f369:	66 83 bd d0 fb ff ff 	cmpw   $0xffff,-0x430(%ebp)
40f370:	ff
40f371:	0f 94 c0             	sete   %al
40f374:	89 87 60 06 00 00    	mov    %eax,0x660(%edi)
40f37a:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
40f380:	50                   	push   %eax
40f381:	ff 15 1c 30 45 00    	call   *0x45301c
40f387:	85 db                	test   %ebx,%ebx
40f389:	0f 88 8e 02 00 00    	js     0x40f61d
40f38f:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
40f395:	50                   	push   %eax
40f396:	ff 15 00 30 45 00    	call   *0x453000
40f39c:	8b 85 c4 fb ff ff    	mov    -0x43c(%ebp),%eax
40f3a2:	8d 8d dc fb ff ff    	lea    -0x424(%ebp),%ecx
40f3a8:	51                   	push   %ecx
40f3a9:	8d 8d d8 fb ff ff    	lea    -0x428(%ebp),%ecx
40f3af:	c7 85 d8 fb ff ff 00 	movl   $0x0,-0x428(%ebp)
40f3b6:	00 00 00
40f3b9:	51                   	push   %ecx
40f3ba:	8b 30                	mov    (%eax),%esi
40f3bc:	8d 8d c8 fb ff ff    	lea    -0x438(%ebp),%ecx
40f3c2:	51                   	push   %ecx
40f3c3:	6a 00                	push   $0x0
40f3c5:	68 14 67 40 00       	push   $0x406714
40f3ca:	8b 76 10             	mov    0x10(%esi),%esi
40f3cd:	8b ce                	mov    %esi,%ecx
40f3cf:	50                   	push   %eax
40f3d0:	c7 85 dc fb ff ff 00 	movl   $0x0,-0x424(%ebp)
40f3d7:	00 00 00
40f3da:	ff 15 c4 12 45 00    	call   *0x4512c4
40f3e0:	ff d6                	call   *%esi
40f3e2:	85 c0                	test   %eax,%eax
40f3e4:	0f 88 ea 9a 01 00    	js     0x428ed4
40f3ea:	66 8b 85 c8 fb ff ff 	mov    -0x438(%ebp),%ax
40f3f1:	66 83 f8 0b          	cmp    $0xb,%ax
40f3f5:	0f 85 ba 9a 01 00    	jne    0x428eb5
40f3fb:	66 83 bd d0 fb ff ff 	cmpw   $0xffff,-0x430(%ebp)
40f402:	ff
40f403:	0f 84 a2 9a 01 00    	je     0x428eab
40f409:	33 c0                	xor    %eax,%eax
40f40b:	89 87 64 06 00 00    	mov    %eax,0x664(%edi)
40f411:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
40f417:	50                   	push   %eax
40f418:	ff 15 1c 30 45 00    	call   *0x45301c
40f41e:	85 db                	test   %ebx,%ebx
40f420:	0f 88 f7 01 00 00    	js     0x40f61d
40f426:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
40f42c:	50                   	push   %eax
40f42d:	ff 15 00 30 45 00    	call   *0x453000
40f433:	8b 85 c4 fb ff ff    	mov    -0x43c(%ebp),%eax
40f439:	8d 8d dc fb ff ff    	lea    -0x424(%ebp),%ecx
40f43f:	51                   	push   %ecx
40f440:	8d 8d d8 fb ff ff    	lea    -0x428(%ebp),%ecx
40f446:	c7 85 d8 fb ff ff 00 	movl   $0x0,-0x428(%ebp)
40f44d:	00 00 00
40f450:	51                   	push   %ecx
40f451:	8b 30                	mov    (%eax),%esi
40f453:	8d 8d c8 fb ff ff    	lea    -0x438(%ebp),%ecx
40f459:	51                   	push   %ecx
40f45a:	6a 00                	push   $0x0
40f45c:	68 08 67 40 00       	push   $0x406708
40f461:	8b 76 10             	mov    0x10(%esi),%esi
40f464:	8b ce                	mov    %esi,%ecx
40f466:	50                   	push   %eax
40f467:	c7 85 dc fb ff ff 00 	movl   $0x0,-0x424(%ebp)
40f46e:	00 00 00
40f471:	ff 15 c4 12 45 00    	call   *0x4512c4
40f477:	ff d6                	call   *%esi
40f479:	85 c0                	test   %eax,%eax
40f47b:	0f 88 8b 9a 01 00    	js     0x428f0c
40f481:	66 8b 85 c8 fb ff ff 	mov    -0x438(%ebp),%ax
40f488:	66 83 f8 0b          	cmp    $0xb,%ax
40f48c:	0f 85 5b 9a 01 00    	jne    0x428eed
40f492:	66 83 bd d0 fb ff ff 	cmpw   $0xffff,-0x430(%ebp)
40f499:	ff
40f49a:	0f 85 46 9a 01 00    	jne    0x428ee6
40f4a0:	b8 01 00 00 00       	mov    $0x1,%eax
40f4a5:	89 87 74 06 00 00    	mov    %eax,0x674(%edi)
40f4ab:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
40f4b1:	50                   	push   %eax
40f4b2:	ff 15 1c 30 45 00    	call   *0x45301c
40f4b8:	85 db                	test   %ebx,%ebx
40f4ba:	0f 88 5d 01 00 00    	js     0x40f61d
40f4c0:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
40f4c6:	50                   	push   %eax
40f4c7:	ff 15 00 30 45 00    	call   *0x453000
40f4cd:	8b 85 c4 fb ff ff    	mov    -0x43c(%ebp),%eax
40f4d3:	8d 8d dc fb ff ff    	lea    -0x424(%ebp),%ecx
40f4d9:	51                   	push   %ecx
40f4da:	8d 8d d8 fb ff ff    	lea    -0x428(%ebp),%ecx
40f4e0:	c7 85 d8 fb ff ff 00 	movl   $0x0,-0x428(%ebp)
40f4e7:	00 00 00
40f4ea:	51                   	push   %ecx
40f4eb:	8b 30                	mov    (%eax),%esi
40f4ed:	8d 8d c8 fb ff ff    	lea    -0x438(%ebp),%ecx
40f4f3:	51                   	push   %ecx
40f4f4:	6a 00                	push   $0x0
40f4f6:	68 ec 66 40 00       	push   $0x4066ec
40f4fb:	8b 76 10             	mov    0x10(%esi),%esi
40f4fe:	8b ce                	mov    %esi,%ecx
40f500:	50                   	push   %eax
40f501:	c7 85 dc fb ff ff 00 	movl   $0x0,-0x424(%ebp)
40f508:	00 00 00
40f50b:	ff 15 c4 12 45 00    	call   *0x4512c4
40f511:	ff d6                	call   *%esi
40f513:	85 c0                	test   %eax,%eax
40f515:	0f 88 15 9a 01 00    	js     0x428f30
40f51b:	66 8b 85 c8 fb ff ff 	mov    -0x438(%ebp),%ax
40f522:	66 83 f8 08          	cmp    $0x8,%ax
40f526:	0f 85 fc 99 01 00    	jne    0x428f28
40f52c:	ff b7 50 06 00 00    	push   0x650(%edi)
40f532:	8b 8d d0 fb ff ff    	mov    -0x430(%ebp),%ecx
40f538:	8d 87 84 06 00 00    	lea    0x684(%edi),%eax
40f53e:	ff b5 b4 fb ff ff    	push   -0x44c(%ebp)
40f544:	8d 97 78 06 00 00    	lea    0x678(%edi),%edx
40f54a:	50                   	push   %eax
40f54b:	8d 87 7c 06 00 00    	lea    0x67c(%edi),%eax
40f551:	50                   	push   %eax
40f552:	e8 69 0c 00 00       	call   0x4101c0
40f557:	8b d8                	mov    %eax,%ebx
40f559:	85 db                	test   %ebx,%ebx
40f55b:	0f 88 bd 99 01 00    	js     0x428f1e
40f561:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
40f567:	50                   	push   %eax
40f568:	ff 15 1c 30 45 00    	call   *0x45301c
40f56e:	85 db                	test   %ebx,%ebx
40f570:	0f 88 a7 00 00 00    	js     0x40f61d
40f576:	8b 87 78 06 00 00    	mov    0x678(%edi),%eax
40f57c:	83 f8 04             	cmp    $0x4,%eax
40f57f:	74 0f                	je     0x40f590
40f581:	83 f8 0a             	cmp    $0xa,%eax
40f584:	74 0a                	je     0x40f590
40f586:	83 7f 28 00          	cmpl   $0x0,0x28(%edi)
40f58a:	0f 84 fc 99 01 00    	je     0x428f8c
40f590:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
40f596:	50                   	push   %eax
40f597:	ff 15 00 30 45 00    	call   *0x453000
40f59d:	8b 85 c4 fb ff ff    	mov    -0x43c(%ebp),%eax
40f5a3:	8d 8d dc fb ff ff    	lea    -0x424(%ebp),%ecx
40f5a9:	51                   	push   %ecx
40f5aa:	8d 8d d8 fb ff ff    	lea    -0x428(%ebp),%ecx
40f5b0:	c7 85 d8 fb ff ff 00 	movl   $0x0,-0x428(%ebp)
40f5b7:	00 00 00
40f5ba:	51                   	push   %ecx
40f5bb:	8b 30                	mov    (%eax),%esi
40f5bd:	8d 8d c8 fb ff ff    	lea    -0x438(%ebp),%ecx
40f5c3:	51                   	push   %ecx
40f5c4:	6a 00                	push   $0x0
40f5c6:	68 c4 66 40 00       	push   $0x4066c4
40f5cb:	8b 76 10             	mov    0x10(%esi),%esi
40f5ce:	8b ce                	mov    %esi,%ecx
40f5d0:	50                   	push   %eax
40f5d1:	c7 85 dc fb ff ff 00 	movl   $0x0,-0x424(%ebp)
40f5d8:	00 00 00
40f5db:	ff 15 c4 12 45 00    	call   *0x4512c4
40f5e1:	ff d6                	call   *%esi
40f5e3:	85 c0                	test   %eax,%eax
40f5e5:	0f 88 d4 99 01 00    	js     0x428fbf
40f5eb:	66 8b 85 c8 fb ff ff 	mov    -0x438(%ebp),%ax
40f5f2:	66 83 f8 08          	cmp    $0x8,%ax
40f5f6:	0f 84 9a 99 01 00    	je     0x428f96
40f5fc:	66 83 f8 01          	cmp    $0x1,%ax
40f600:	0f 85 af 99 01 00    	jne    0x428fb5
40f606:	c7 87 e0 06 00 00 00 	movl   $0x0,0x6e0(%edi)
40f60d:	00 00 00
40f610:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
40f616:	50                   	push   %eax
40f617:	ff 15 1c 30 45 00    	call   *0x45301c
40f61d:	8b 85 b4 fb ff ff    	mov    -0x44c(%ebp),%eax
40f623:	85 c0                	test   %eax,%eax
40f625:	74 07                	je     0x40f62e
40f627:	50                   	push   %eax
40f628:	ff 15 0c 30 45 00    	call   *0x45300c
40f62e:	8b c3                	mov    %ebx,%eax
40f630:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40f633:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40f63a:	59                   	pop    %ecx
40f63b:	5f                   	pop    %edi
40f63c:	5e                   	pop    %esi
40f63d:	5b                   	pop    %ebx
40f63e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40f641:	33 cd                	xor    %ebp,%ecx
40f643:	e8 c8 fc 00 00       	call   0x41f310
40f648:	8b e5                	mov    %ebp,%esp
40f64a:	5d                   	pop    %ebp
40f64b:	c2 10 00             	ret    $0x10
40f64e:	8d 41 20             	lea    0x20(%ecx),%eax
40f651:	0f b7 f8             	movzwl %ax,%edi
40f654:	e9 6f f2 ff ff       	jmp    0x40e8c8
40f659:	8b 87 90 06 00 00    	mov    0x690(%edi),%eax
40f65f:	85 c0                	test   %eax,%eax
40f661:	0f 85 07 94 01 00    	jne    0x428a6e
40f667:	ff b5 d0 fb ff ff    	push   -0x430(%ebp)
40f66d:	ff 15 10 30 45 00    	call   *0x453010
40f673:	89 87 90 06 00 00    	mov    %eax,0x690(%edi)
40f679:	85 c0                	test   %eax,%eax
40f67b:	0f 84 03 94 01 00    	je     0x428a84
40f681:	8d 8d 24 fb ff ff    	lea    -0x4dc(%ebp),%ecx
40f687:	e8 df d8 ff ff       	call   0x40cf6b
40f68c:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40f693:	ff b7 90 06 00 00    	push   0x690(%edi)
40f699:	e8 32 ac 00 00       	call   0x41a2d0
40f69e:	85 c0                	test   %eax,%eax
40f6a0:	0f 88 d4 93 01 00    	js     0x428a7a
40f6a6:	33 db                	xor    %ebx,%ebx
40f6a8:	66 83 bd 38 fb ff ff 	cmpw   $0xffff,-0x4c8(%ebp)
40f6af:	ff
40f6b0:	0f 85 c4 93 01 00    	jne    0x428a7a
40f6b6:	8b 85 44 fb ff ff    	mov    -0x4bc(%ebp),%eax
40f6bc:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
40f6bf:	8b 85 48 fb ff ff    	mov    -0x4b8(%ebp),%eax
40f6c5:	8d 04 c8             	lea    (%eax,%ecx,8),%eax
40f6c8:	8b c8                	mov    %eax,%ecx
40f6ca:	c1 e1 04             	shl    $0x4,%ecx
40f6cd:	2b c8                	sub    %eax,%ecx
40f6cf:	8b 85 4c fb ff ff    	mov    -0x4b4(%ebp),%eax
40f6d5:	8d 04 88             	lea    (%eax,%ecx,4),%eax
40f6d8:	8b c8                	mov    %eax,%ecx
40f6da:	c1 e1 04             	shl    $0x4,%ecx
40f6dd:	2b c8                	sub    %eax,%ecx
40f6df:	8b 85 50 fb ff ff    	mov    -0x4b0(%ebp),%eax
40f6e5:	8d 04 88             	lea    (%eax,%ecx,4),%eax
40f6e8:	69 c8 e8 03 00 00    	imul   $0x3e8,%eax,%ecx
40f6ee:	b8 d3 4d 62 10       	mov    $0x10624dd3,%eax
40f6f3:	f7 ad 54 fb ff ff    	imull  -0x4ac(%ebp)
40f6f9:	c1 fa 06             	sar    $0x6,%edx
40f6fc:	8b c2                	mov    %edx,%eax
40f6fe:	03 ca                	add    %edx,%ecx
40f700:	c1 e8 1f             	shr    $0x1f,%eax
40f703:	03 c1                	add    %ecx,%eax
40f705:	89 87 94 06 00 00    	mov    %eax,0x694(%edi)
40f70b:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
40f712:	c7 85 24 fb ff ff d0 	movl   $0x4013d0,-0x4dc(%ebp)
40f719:	13 40 00
40f71c:	e9 f7 f5 ff ff       	jmp    0x40ed18
40f721:	c7 87 54 06 00 00 00 	movl   $0x0,0x654(%edi)
40f728:	00 00 00
40f72b:	e9 8b f6 ff ff       	jmp    0x40edbb
40f730:	8d 87 c0 06 00 00    	lea    0x6c0(%edi),%eax
40f736:	50                   	push   %eax
40f737:	ff b5 d0 fb ff ff    	push   -0x430(%ebp)
40f73d:	ff 15 50 30 45 00    	call   *0x453050
40f743:	8b d8                	mov    %eax,%ebx
40f745:	85 db                	test   %ebx,%ebx
40f747:	0f 89 99 f4 ff ff    	jns    0x40ebe6
40f74d:	e9 99 92 01 00       	jmp    0x4289eb
40f752:	8b 85 d0 fb ff ff    	mov    -0x430(%ebp),%eax
40f758:	89 87 50 06 00 00    	mov    %eax,0x650(%edi)
40f75e:	e9 a4 ed ff ff       	jmp    0x40e507
40f763:	66 83 bd d0 fb ff ff 	cmpw   $0xffff,-0x430(%ebp)
40f76a:	ff
40f76b:	74 0d                	je     0x40f77a
40f76d:	33 c0                	xor    %eax,%eax
40f76f:	89 87 5c 06 00 00    	mov    %eax,0x65c(%edi)
40f775:	e9 6c fb ff ff       	jmp    0x40f2e6
40f77a:	b8 01 00 00 00       	mov    $0x1,%eax
40f77f:	eb ee                	jmp    0x40f76f
40f781:	cc                   	int3
40f782:	cc                   	int3
40f783:	cc                   	int3
40f784:	cc                   	int3
40f785:	cc                   	int3
40f786:	cc                   	int3
40f787:	cc                   	int3
40f788:	cc                   	int3