40e19c:	8d 8d 78 fb ff ff    	lea    -0x488(%ebp),%ecx
40e1a2:	51                   	push   %ecx
40e1a3:	8d 8d 74 fb ff ff    	lea    -0x48c(%ebp),%ecx
40e1a9:	51                   	push   %ecx
40e1aa:	8b 30                	mov    (%eax),%esi
40e1ac:	8d 8d 00 fb ff ff    	lea    -0x500(%ebp),%ecx
40e1b2:	51                   	push   %ecx
40e1b3:	6a 00                	push   $0x0
40e1b5:	68 90 6a 40 00       	push   $0x406a90
40e1ba:	8b 76 10             	mov    0x10(%esi),%esi
40e1bd:	8b ce                	mov    %esi,%ecx
40e1bf:	50                   	push   %eax
40e1c0:	ff 15 c4 12 45 00    	call   *0x4512c4
40e1c6:	ff d6                	call   *%esi
40e1c8:	8b d8                	mov    %eax,%ebx
40e1ca:	85 db                	test   %ebx,%ebx
40e1cc:	0f 88 93 02 00 00    	js     0x40e465
40e1d2:	66 83 bd 00 fb ff ff 	cmpw   $0x8,-0x500(%ebp)
40e1d9:	08
40e1da:	0f 85 f4 a3 01 00    	jne    0x4285d4
40e1e0:	8b 85 18 fb ff ff    	mov    -0x4e8(%ebp),%eax
40e1e6:	85 c0                	test   %eax,%eax
40e1e8:	0f 84 2e a3 01 00    	je     0x42851c
40e1ee:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
40e1f3:	33 db                	xor    %ebx,%ebx
40e1f5:	66 39 18             	cmp    %bx,(%eax)
40e1f8:	74 0d                	je     0x40e207
40e1fa:	83 c0 02             	add    $0x2,%eax
40e1fd:	83 e9 01             	sub    $0x1,%ecx
40e200:	75 f3                	jne    0x40e1f5
40e202:	e9 04 a3 01 00       	jmp    0x42850b
40e207:	85 c9                	test   %ecx,%ecx
40e209:	0f 84 fc a2 01 00    	je     0x42850b
40e20f:	ba ff ff ff 7f       	mov    $0x7fffffff,%edx
40e214:	8b f2                	mov    %edx,%esi
40e216:	2b f1                	sub    %ecx,%esi
40e218:	85 db                	test   %ebx,%ebx
40e21a:	0f 88 06 a3 01 00    	js     0x428526
40e220:	8b 85 08 fb ff ff    	mov    -0x4f8(%ebp),%eax
40e226:	85 c0                	test   %eax,%eax
40e228:	0f 84 13 a3 01 00    	je     0x428541
40e22e:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
40e233:	33 db                	xor    %ebx,%ebx
40e235:	66 39 18             	cmp    %bx,(%eax)
40e238:	74 0d                	je     0x40e247
40e23a:	83 c0 02             	add    $0x2,%eax
40e23d:	83 e9 01             	sub    $0x1,%ecx
40e240:	75 f3                	jne    0x40e235
40e242:	e9 ee a2 01 00       	jmp    0x428535
40e247:	85 c9                	test   %ecx,%ecx
40e249:	0f 84 e6 a2 01 00    	je     0x428535
40e24f:	2b d1                	sub    %ecx,%edx
40e251:	85 db                	test   %ebx,%ebx
40e253:	0f 88 ed a2 01 00    	js     0x428546
40e259:	8d 7a 02             	lea    0x2(%edx),%edi
40e25c:	03 fe                	add    %esi,%edi
40e25e:	57                   	push   %edi
40e25f:	6a 00                	push   $0x0
40e261:	89 bd b0 fb ff ff    	mov    %edi,-0x450(%ebp)
40e267:	ff 15 20 30 45 00    	call   *0x453020
40e26d:	89 85 b4 fb ff ff    	mov    %eax,-0x44c(%ebp)
40e273:	85 c0                	test   %eax,%eax
40e275:	0f 84 49 a3 01 00    	je     0x4285c4
40e27b:	33 db                	xor    %ebx,%ebx
40e27d:	85 ff                	test   %edi,%edi
40e27f:	0f 84 d0 a2 01 00    	je     0x428555
40e285:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
40e28b:	0f 87 c4 a2 01 00    	ja     0x428555
40e291:	85 db                	test   %ebx,%ebx
40e293:	0f 88 d3 a2 01 00    	js     0x42856c
40e299:	8b 95 18 fb ff ff    	mov    -0x4e8(%ebp),%edx
40e29f:	33 db                	xor    %ebx,%ebx
40e2a1:	8b cf                	mov    %edi,%ecx
40e2a3:	8b f0                	mov    %eax,%esi
40e2a5:	85 ff                	test   %edi,%edi
40e2a7:	0f 84 b2 a2 01 00    	je     0x42855f
40e2ad:	bf fe ff ff 7f       	mov    $0x7ffffffe,%edi
40e2b2:	2b bd b0 fb ff ff    	sub    -0x450(%ebp),%edi
40e2b8:	8d 04 0f             	lea    (%edi,%ecx,1),%eax
40e2bb:	85 c0                	test   %eax,%eax
40e2bd:	74 1b                	je     0x40e2da
40e2bf:	0f b7 02             	movzwl (%edx),%eax
40e2c2:	66 85 c0             	test   %ax,%ax
40e2c5:	74 13                	je     0x40e2da
40e2c7:	66 89 06             	mov    %ax,(%esi)
40e2ca:	83 c2 02             	add    $0x2,%edx
40e2cd:	83 c6 02             	add    $0x2,%esi
40e2d0:	83 e9 01             	sub    $0x1,%ecx
40e2d3:	75 e3                	jne    0x40e2b8
40e2d5:	e9 85 a2 01 00       	jmp    0x42855f
40e2da:	85 c9                	test   %ecx,%ecx
40e2dc:	0f 84 7d a2 01 00    	je     0x42855f
40e2e2:	8b bd b0 fb ff ff    	mov    -0x450(%ebp),%edi
40e2e8:	33 c0                	xor    %eax,%eax
40e2ea:	66 89 06             	mov    %ax,(%esi)
40e2ed:	8b 85 b4 fb ff ff    	mov    -0x44c(%ebp),%eax
40e2f3:	85 db                	test   %ebx,%ebx
40e2f5:	0f 88 64 01 00 00    	js     0x40e45f
40e2fb:	33 db                	xor    %ebx,%ebx
40e2fd:	85 ff                	test   %edi,%edi
40e2ff:	0f 84 79 a2 01 00    	je     0x42857e
40e305:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
40e30b:	0f 87 6d a2 01 00    	ja     0x42857e
40e311:	85 db                	test   %ebx,%ebx
40e313:	0f 88 74 a2 01 00    	js     0x42858d
40e319:	33 db                	xor    %ebx,%ebx
40e31b:	8b cf                	mov    %edi,%ecx
40e31d:	85 ff                	test   %edi,%edi
40e31f:	0f 84 63 a2 01 00    	je     0x428588
40e325:	66 39 18             	cmp    %bx,(%eax)
40e328:	74 0d                	je     0x40e337
40e32a:	83 c0 02             	add    $0x2,%eax
40e32d:	83 e9 01             	sub    $0x1,%ecx
40e330:	75 f3                	jne    0x40e325
40e332:	e9 51 a2 01 00       	jmp    0x428588
40e337:	85 c9                	test   %ecx,%ecx
40e339:	0f 84 49 a2 01 00    	je     0x428588
40e33f:	8b f7                	mov    %edi,%esi
40e341:	2b f1                	sub    %ecx,%esi
40e343:	85 db                	test   %ebx,%ebx
40e345:	0f 88 14 01 00 00    	js     0x40e45f
40e34b:	8b 85 b4 fb ff ff    	mov    -0x44c(%ebp),%eax
40e351:	8b d7                	mov    %edi,%edx
40e353:	bb 00 00 00 00       	mov    $0x0,%ebx
40e358:	8d 0c 70             	lea    (%eax,%esi,2),%ecx
40e35b:	2b d6                	sub    %esi,%edx
40e35d:	0f 84 31 a2 01 00    	je     0x428594
40e363:	8b c2                	mov    %edx,%eax
40e365:	2b c7                	sub    %edi,%eax
40e367:	05 fe ff ff 7f       	add    $0x7ffffffe,%eax
40e36c:	03 f0                	add    %eax,%esi
40e36e:	b8 8c 6a 40 00       	mov    $0x406a8c,%eax
40e373:	2b c1                	sub    %ecx,%eax
40e375:	89 85 bc fb ff ff    	mov    %eax,-0x444(%ebp)
40e37b:	eb 03                	jmp    0x40e380
40e37d:	8d 49 00             	lea    0x0(%ecx),%ecx
40e380:	85 f6                	test   %esi,%esi
40e382:	74 0d                	je     0x40e391
40e384:	0f b7 04 08          	movzwl (%eax,%ecx,1),%eax
40e388:	66 85 c0             	test   %ax,%ax
40e38b:	0f 85 65 05 00 00    	jne    0x40e8f6
40e391:	85 d2                	test   %edx,%edx
40e393:	0f 84 fb a1 01 00    	je     0x428594
40e399:	33 c0                	xor    %eax,%eax
40e39b:	66 89 01             	mov    %ax,(%ecx)
40e39e:	85 db                	test   %ebx,%ebx
40e3a0:	0f 88 b9 00 00 00    	js     0x40e45f
40e3a6:	33 db                	xor    %ebx,%ebx
40e3a8:	85 ff                	test   %edi,%edi
40e3aa:	0f 84 f1 a1 01 00    	je     0x4285a1
40e3b0:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
40e3b6:	0f 87 e5 a1 01 00    	ja     0x4285a1
40e3bc:	85 db                	test   %ebx,%ebx
40e3be:	0f 88 ec a1 01 00    	js     0x4285b0
40e3c4:	8b 85 b4 fb ff ff    	mov    -0x44c(%ebp),%eax
40e3ca:	33 db                	xor    %ebx,%ebx
40e3cc:	8b cf                	mov    %edi,%ecx
40e3ce:	85 ff                	test   %edi,%edi
40e3d0:	0f 84 d5 a1 01 00    	je     0x4285ab
40e3d6:	66 39 18             	cmp    %bx,(%eax)
40e3d9:	74 0d                	je     0x40e3e8
40e3db:	83 c0 02             	add    $0x2,%eax
40e3de:	83 e9 01             	sub    $0x1,%ecx
40e3e1:	75 f3                	jne    0x40e3d6
40e3e3:	e9 c3 a1 01 00       	jmp    0x4285ab
40e3e8:	85 c9                	test   %ecx,%ecx
40e3ea:	0f 84 bb a1 01 00    	je     0x4285ab
40e3f0:	8b c7                	mov    %edi,%eax
40e3f2:	2b c1                	sub    %ecx,%eax
40e3f4:	89 85 ac fb ff ff    	mov    %eax,-0x454(%ebp)
40e3fa:	85 db                	test   %ebx,%ebx
40e3fc:	78 61                	js     0x40e45f
40e3fe:	8b 8d b4 fb ff ff    	mov    -0x44c(%ebp),%ecx
40e404:	8b f7                	mov    %edi,%esi
40e406:	8b 95 08 fb ff ff    	mov    -0x4f8(%ebp),%edx
40e40c:	bb 00 00 00 00       	mov    $0x0,%ebx
40e411:	8d 3c 41             	lea    (%ecx,%eax,2),%edi
40e414:	2b f0                	sub    %eax,%esi
40e416:	0f 84 9b a1 01 00    	je     0x4285b7
40e41c:	8b 8d ac fb ff ff    	mov    -0x454(%ebp),%ecx
40e422:	8b c6                	mov    %esi,%eax
40e424:	2b 85 b0 fb ff ff    	sub    -0x450(%ebp),%eax
40e42a:	81 c1 fe ff ff 7f    	add    $0x7ffffffe,%ecx
40e430:	03 c8                	add    %eax,%ecx
40e432:	85 c9                	test   %ecx,%ecx
40e434:	74 1c                	je     0x40e452
40e436:	0f b7 02             	movzwl (%edx),%eax
40e439:	66 85 c0             	test   %ax,%ax
40e43c:	74 14                	je     0x40e452
40e43e:	66 89 07             	mov    %ax,(%edi)
40e441:	83 c2 02             	add    $0x2,%edx
40e444:	83 c7 02             	add    $0x2,%edi
40e447:	49                   	dec    %ecx
40e448:	83 ee 01             	sub    $0x1,%esi
40e44b:	75 e5                	jne    0x40e432
40e44d:	e9 65 a1 01 00       	jmp    0x4285b7
40e452:	85 f6                	test   %esi,%esi
40e454:	0f 84 5d a1 01 00    	je     0x4285b7
40e45a:	33 c0                	xor    %eax,%eax
40e45c:	66 89 07             	mov    %ax,(%edi)
40e45f:	8b bd c0 fb ff ff    	mov    -0x440(%ebp),%edi
40e465:	8d 85 10 fb ff ff    	lea    -0x4f0(%ebp),%eax
40e46b:	50                   	push   %eax
40e46c:	ff 15 1c 30 45 00    	call   *0x45301c
40e472:	8d 85 00 fb ff ff    	lea    -0x500(%ebp),%eax
40e478:	50                   	push   %eax
40e479:	ff 15 1c 30 45 00    	call   *0x45301c
40e47f:	85 db                	test   %ebx,%ebx
40e481:	0f 88 96 11 00 00    	js     0x40f61d
40e487:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
40e48d:	50                   	push   %eax
40e48e:	ff 15 00 30 45 00    	call   *0x453000
40e494:	8b 85 c4 fb ff ff    	mov    -0x43c(%ebp),%eax
40e49a:	8d 8d bc fb ff ff    	lea    -0x444(%ebp),%ecx
40e4a0:	51                   	push   %ecx
40e4a1:	8d 8d b8 fb ff ff    	lea    -0x448(%ebp),%ecx
40e4a7:	c7 85 b8 fb ff ff 00 	movl   $0x0,-0x448(%ebp)
40e4ae:	00 00 00
40e4b1:	51                   	push   %ecx
40e4b2:	8b 30                	mov    (%eax),%esi
40e4b4:	8d 8d c8 fb ff ff    	lea    -0x438(%ebp),%ecx
40e4ba:	51                   	push   %ecx
40e4bb:	6a 00                	push   $0x0
40e4bd:	68 7c 6a 40 00       	push   $0x406a7c
40e4c2:	8b 76 10             	mov    0x10(%esi),%esi
40e4c5:	8b ce                	mov    %esi,%ecx
40e4c7:	50                   	push   %eax
40e4c8:	c7 85 bc fb ff ff 00 	movl   $0x0,-0x444(%ebp)
40e4cf:	00 00 00
40e4d2:	ff 15 c4 12 45 00    	call   *0x4512c4
40e4d8:	ff d6                	call   *%esi
40e4da:	85 c0                	test   %eax,%eax
40e4dc:	0f 88 06 a1 01 00    	js     0x4285e8
40e4e2:	66 8b 85 c8 fb ff ff 	mov    -0x438(%ebp),%ax
40e4e9:	66 83 f8 03          	cmp    $0x3,%ax
40e4ed:	0f 84 5f 12 00 00    	je     0x40f752
40e4f3:	66 83 f8 01          	cmp    $0x1,%ax
40e4f7:	0f 85 e1 a0 01 00    	jne    0x4285de
40e4fd:	c7 87 50 06 00 00 01 	movl   $0x1,0x650(%edi)
40e504:	00 00 00
40e507:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
40e50d:	50                   	push   %eax
40e50e:	ff 15 1c 30 45 00    	call   *0x45301c
40e514:	85 db                	test   %ebx,%ebx
40e516:	0f 88 01 11 00 00    	js     0x40f61d
40e51c:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
40e522:	50                   	push   %eax
40e523:	ff 15 00 30 45 00    	call   *0x453000
40e529:	8b 85 c4 fb ff ff    	mov    -0x43c(%ebp),%eax
40e52f:	8d 8d bc fb ff ff    	lea    -0x444(%ebp),%ecx
40e535:	51                   	push   %ecx
40e536:	8d 8d b8 fb ff ff    	lea    -0x448(%ebp),%ecx
40e53c:	c7 85 b8 fb ff ff 00 	movl   $0x0,-0x448(%ebp)
40e543:	00 00 00
40e546:	51                   	push   %ecx
40e547:	8b 30                	mov    (%eax),%esi
40e549:	8d 8d c8 fb ff ff    	lea    -0x438(%ebp),%ecx
40e54f:	51                   	push   %ecx
40e550:	6a 00                	push   $0x0
40e552:	68 70 6a 40 00       	push   $0x406a70
40e557:	8b 76 10             	mov    0x10(%esi),%esi
40e55a:	8b ce                	mov    %esi,%ecx
40e55c:	50                   	push   %eax
40e55d:	c7 85 bc fb ff ff 00 	movl   $0x0,-0x444(%ebp)
40e564:	00 00 00
40e567:	ff 15 c4 12 45 00    	call   *0x4512c4
40e56d:	ff d6                	call   *%esi
40e56f:	85 c0                	test   %eax,%eax
40e571:	0f 88 a3 a0 01 00    	js     0x42861a
40e577:	66 83 bd c8 fb ff ff 	cmpw   $0x8,-0x438(%ebp)
40e57e:	08
40e57f:	0f 85 8b a0 01 00    	jne    0x428610
40e585:	8b 87 ac 06 00 00    	mov    0x6ac(%edi),%eax
40e58b:	85 c0                	test   %eax,%eax
40e58d:	0f 85 67 a0 01 00    	jne    0x4285fa
40e593:	ff b5 d0 fb ff ff    	push   -0x430(%ebp)
40e599:	ff 15 10 30 45 00    	call   *0x453010
40e59f:	89 87 ac 06 00 00    	mov    %eax,0x6ac(%edi)
40e5a5:	85 c0                	test   %eax,%eax
40e5a7:	0f 84 59 a0 01 00    	je     0x428606
40e5ad:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
40e5b3:	50                   	push   %eax
40e5b4:	ff 15 1c 30 45 00    	call   *0x45301c
40e5ba:	85 db                	test   %ebx,%ebx
40e5bc:	0f 88 5b 10 00 00    	js     0x40f61d
40e5c2:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
40e5c8:	50                   	push   %eax
40e5c9:	ff 15 00 30 45 00    	call   *0x453000
40e5cf:	8b 85 c4 fb ff ff    	mov    -0x43c(%ebp),%eax
40e5d5:	8d 8d bc fb ff ff    	lea    -0x444(%ebp),%ecx
40e5db:	51                   	push   %ecx
40e5dc:	8d 8d b8 fb ff ff    	lea    -0x448(%ebp),%ecx
40e5e2:	c7 85 b8 fb ff ff 00 	movl   $0x0,-0x448(%ebp)
40e5e9:	00 00 00
40e5ec:	51                   	push   %ecx
40e5ed:	8b 30                	mov    (%eax),%esi
40e5ef:	8d 8d c8 fb ff ff    	lea    -0x438(%ebp),%ecx
40e5f5:	51                   	push   %ecx
40e5f6:	6a 00                	push   $0x0
40e5f8:	68 60 6a 40 00       	push   $0x406a60
40e5fd:	8b 76 10             	mov    0x10(%esi),%esi
40e600:	8b ce                	mov    %esi,%ecx
40e602:	50                   	push   %eax
40e603:	c7 85 bc fb ff ff 00 	movl   $0x0,-0x444(%ebp)
40e60a:	00 00 00
40e60d:	ff 15 c4 12 45 00    	call   *0x4512c4
40e613:	ff d6                	call   *%esi
40e615:	85 c0                	test   %eax,%eax
40e617:	0f 88 31 a0 01 00    	js     0x42864e
40e61d:	66 8b 85 c8 fb ff ff 	mov    -0x438(%ebp),%ax
40e624:	66 83 f8 0b          	cmp    $0xb,%ax
40e628:	0f 84 fe 9f 01 00    	je     0x42862c
40e62e:	66 83 f8 01          	cmp    $0x1,%ax
40e632:	0f 85 0c a0 01 00    	jne    0x428644
40e638:	c7 87 6c 06 00 00 01 	movl   $0x1,0x66c(%edi)
40e63f:	00 00 00
40e642:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
40e648:	50                   	push   %eax
40e649:	ff 15 1c 30 45 00    	call   *0x45301c
40e64f:	85 db                	test   %ebx,%ebx
40e651:	0f 88 c6 0f 00 00    	js     0x40f61d
40e657:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
40e65d:	50                   	push   %eax
40e65e:	ff 15 00 30 45 00    	call   *0x453000
40e664:	8b 85 c4 fb ff ff    	mov    -0x43c(%ebp),%eax
40e66a:	8d 8d 70 fb ff ff    	lea    -0x490(%ebp),%ecx
40e670:	51                   	push   %ecx
40e671:	8d 8d 6c fb ff ff    	lea    -0x494(%ebp),%ecx
40e677:	c7 85 6c fb ff ff 00 	movl   $0x0,-0x494(%ebp)
40e67e:	00 00 00
40e681:	51                   	push   %ecx
40e682:	8b 30                	mov    (%eax),%esi
40e684:	8d 8d c8 fb ff ff    	lea    -0x438(%ebp),%ecx
40e68a:	51                   	push   %ecx
40e68b:	6a 00                	push   $0x0
40e68d:	68 54 6a 40 00       	push   $0x406a54
40e692:	8b 76 10             	mov    0x10(%esi),%esi
40e695:	8b ce                	mov    %esi,%ecx
40e697:	50                   	push   %eax
40e698:	c7 85 70 fb ff ff 00 	movl   $0x0,-0x490(%ebp)
40e69f:	00 00 00
40e6a2:	ff 15 c4 12 45 00    	call   *0x4512c4
40e6a8:	ff d6                	call   *%esi
40e6aa:	85 c0                	test   %eax,%eax
40e6ac:	0f 88 27 a3 01 00    	js     0x4289d9
40e6b2:	66 8b 85 c8 fb ff ff 	mov    -0x438(%ebp),%ax
40e6b9:	66 83 f8 08          	cmp    $0x8,%ax
40e6bd:	0f 85 d5 a2 01 00    	jne    0x428998
40e6c3:	8d 87 b0 06 00 00    	lea    0x6b0(%edi),%eax
40e6c9:	50                   	push   %eax