40e27b:	85 c0                	test   %eax,%eax
40e27d:	74 17                	je     0x40e296
40e27f:	8b 86 3c 02 00 00    	mov    0x23c(%esi),%eax
40e285:	3b 87 3c 02 00 00    	cmp    0x23c(%edi),%eax
40e28b:	75 09                	jne    0x40e296
40e28d:	33 c0                	xor    %eax,%eax
40e28f:	40                   	inc    %eax
40e290:	5f                   	pop    %edi
40e291:	5e                   	pop    %esi
40e292:	5d                   	pop    %ebp
40e293:	c2 04 00             	ret    $0x4
40e296:	33 c0                	xor    %eax,%eax
40e298:	eb f6                	jmp    0x40e290
40e29a:	8b ff                	mov    %edi,%edi
40e29c:	55                   	push   %ebp
40e29d:	8b ec                	mov    %esp,%ebp
40e29f:	8b 45 08             	mov    0x8(%ebp),%eax
40e2a2:	8b 49 04             	mov    0x4(%ecx),%ecx
40e2a5:	8b 50 04             	mov    0x4(%eax),%edx
40e2a8:	e8 d3 b3 00 00       	call   0x419680
40e2ad:	f7 d8                	neg    %eax
40e2af:	1b c0                	sbb    %eax,%eax
40e2b1:	40                   	inc    %eax
40e2b2:	5d                   	pop    %ebp
40e2b3:	c2 04 00             	ret    $0x4
40e2b6:	8b ff                	mov    %edi,%edi
40e2b8:	55                   	push   %ebp
40e2b9:	8b ec                	mov    %esp,%ebp
40e2bb:	83 ec 0c             	sub    $0xc,%esp
40e2be:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40e2c2:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40e2c5:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40e2c8:	56                   	push   %esi
40e2c9:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40e2cc:	e8 47 fc ff ff       	call   0x40df18
40e2d1:	85 c0                	test   %eax,%eax
40e2d3:	74 2e                	je     0x40e303
40e2d5:	8b 75 fc             	mov    -0x4(%ebp),%esi
40e2d8:	8b c6                	mov    %esi,%eax
40e2da:	f7 d8                	neg    %eax
40e2dc:	1b c0                	sbb    %eax,%eax
40e2de:	23 45 f8             	and    -0x8(%ebp),%eax
40e2e1:	74 27                	je     0x40e30a
40e2e3:	8b 48 08             	mov    0x8(%eax),%ecx
40e2e6:	ff 75 08             	push   0x8(%ebp)
40e2e9:	e8 6b ff ff ff       	call   0x40e259
40e2ee:	85 c0                	test   %eax,%eax
40e2f0:	74 d7                	je     0x40e2c9
40e2f2:	f7 de                	neg    %esi
40e2f4:	1b f6                	sbb    %esi,%esi
40e2f6:	23 75 f8             	and    -0x8(%ebp),%esi
40e2f9:	74 13                	je     0x40e30e
40e2fb:	8d 46 04             	lea    0x4(%esi),%eax
40e2fe:	5e                   	pop    %esi
40e2ff:	c9                   	leave
40e300:	c2 04 00             	ret    $0x4
40e303:	b8 f0 8a 43 00       	mov    $0x438af0,%eax
40e308:	eb f4                	jmp    0x40e2fe
40e30a:	33 c9                	xor    %ecx,%ecx
40e30c:	eb d8                	jmp    0x40e2e6
40e30e:	b8 dc 8a 43 00       	mov    $0x438adc,%eax
40e313:	eb e9                	jmp    0x40e2fe
40e315:	cc                   	int3
40e316:	cc                   	int3
40e317:	cc                   	int3
40e318:	cc                   	int3
40e319:	cc                   	int3
40e31a:	cc                   	int3
40e31b:	cc                   	int3
40e31c:	cc                   	int3
40e31d:	cc                   	int3
40e31e:	cc                   	int3
40e31f:	cc                   	int3
40e320:	8b ff                	mov    %edi,%edi
40e322:	55                   	push   %ebp
40e323:	8b ec                	mov    %esp,%ebp
40e325:	8b 4d 08             	mov    0x8(%ebp),%ecx
40e328:	8d 49 04             	lea    0x4(%ecx),%ecx
40e32b:	e8 82 da 00 00       	call   0x41bdb2
40e330:	83 f8 ff             	cmp    $0xffffffff,%eax
40e333:	75 05                	jne    0x40e33a
40e335:	b8 ff ff 00 80       	mov    $0x8000ffff,%eax
40e33a:	5d                   	pop    %ebp
40e33b:	c2 04 00             	ret    $0x4
40e33e:	33 d2                	xor    %edx,%edx
40e340:	39 51 0c             	cmp    %edx,0xc(%ecx)
40e343:	75 11                	jne    0x40e356
40e345:	8b 01                	mov    (%ecx),%eax
40e347:	89 51 08             	mov    %edx,0x8(%ecx)
40e34a:	89 41 04             	mov    %eax,0x4(%ecx)
40e34d:	89 11                	mov    %edx,(%ecx)
40e34f:	c7 41 0c 01 00 00 00 	movl   $0x1,0xc(%ecx)
40e356:	c3                   	ret
40e357:	8b ff                	mov    %edi,%edi
40e359:	55                   	push   %ebp
40e35a:	8b ec                	mov    %esp,%ebp
40e35c:	8b 45 08             	mov    0x8(%ebp),%eax
40e35f:	56                   	push   %esi
40e360:	8b f1                	mov    %ecx,%esi
40e362:	57                   	push   %edi
40e363:	8b 48 04             	mov    0x4(%eax),%ecx
40e366:	6a ff                	push   $0xffffffff
40e368:	8b 06                	mov    (%esi),%eax
40e36a:	6a 00                	push   $0x0
40e36c:	51                   	push   %ecx
40e36d:	8b 78 10             	mov    0x10(%eax),%edi
40e370:	81 ff a0 36 41 00    	cmp    $0x4136a0,%edi
40e376:	0f 85 18 25 01 00    	jne    0x420894
40e37c:	8b ce                	mov    %esi,%ecx
40e37e:	e8 1d 53 00 00       	call   0x4136a0
40e383:	5f                   	pop    %edi
40e384:	5e                   	pop    %esi
40e385:	5d                   	pop    %ebp
40e386:	c2 04 00             	ret    $0x4
40e389:	8b ff                	mov    %edi,%edi
40e38b:	55                   	push   %ebp
40e38c:	8b ec                	mov    %esp,%ebp
40e38e:	56                   	push   %esi
40e38f:	8b f1                	mov    %ecx,%esi
40e391:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
40e395:	74 1c                	je     0x40e3b3
40e397:	8b 16                	mov    (%esi),%edx
40e399:	8b 46 08             	mov    0x8(%esi),%eax
40e39c:	8b 40 04             	mov    0x4(%eax),%eax
40e39f:	0f b7 04 50          	movzwl (%eax,%edx,2),%eax
40e3a3:	50                   	push   %eax
40e3a4:	ff 15 84 a4 43 00    	call   *0x43a484
40e3aa:	59                   	pop    %ecx
40e3ab:	85 c0                	test   %eax,%eax
40e3ad:	0f 85 f2 24 01 00    	jne    0x4208a5
40e3b3:	8b 56 04             	mov    0x4(%esi),%edx
40e3b6:	85 d2                	test   %edx,%edx
40e3b8:	74 1f                	je     0x40e3d9
40e3ba:	8b 46 08             	mov    0x8(%esi),%eax
40e3bd:	8b 0e                	mov    (%esi),%ecx
40e3bf:	03 ca                	add    %edx,%ecx
40e3c1:	8b 40 04             	mov    0x4(%eax),%eax
40e3c4:	0f b7 44 48 fe       	movzwl -0x2(%eax,%ecx,2),%eax
40e3c9:	50                   	push   %eax
40e3ca:	ff 15 84 a4 43 00    	call   *0x43a484
40e3d0:	59                   	pop    %ecx
40e3d1:	85 c0                	test   %eax,%eax
40e3d3:	0f 85 14 25 01 00    	jne    0x4208ed
40e3d9:	5e                   	pop    %esi
40e3da:	5d                   	pop    %ebp
40e3db:	c3                   	ret
40e3dc:	68 a8 01 00 00       	push   $0x1a8
40e3e1:	b8 0d e5 41 00       	mov    $0x41e50d,%eax
40e3e6:	e8 56 ca 00 00       	call   0x41ae41
40e3eb:	8b f9                	mov    %ecx,%edi
40e3ed:	8b 4d 08             	mov    0x8(%ebp),%ecx
40e3f0:	8d 5f 0c             	lea    0xc(%edi),%ebx
40e3f3:	8b 03                	mov    (%ebx),%eax
40e3f5:	33 f6                	xor    %esi,%esi
40e3f7:	6a ff                	push   $0xffffffff
40e3f9:	56                   	push   %esi
40e3fa:	51                   	push   %ecx
40e3fb:	8b 40 10             	mov    0x10(%eax),%eax
40e3fe:	89 85 58 fe ff ff    	mov    %eax,-0x1a8(%ebp)
40e404:	3d a0 36 41 00       	cmp    $0x4136a0,%eax
40e409:	0f 85 f0 24 01 00    	jne    0x4208ff
40e40f:	8b cb                	mov    %ebx,%ecx
40e411:	e8 8a 52 00 00       	call   0x4136a0
40e416:	8b 43 0c             	mov    0xc(%ebx),%eax
40e419:	8d 8d 4c fe ff ff    	lea    -0x1b4(%ebp),%ecx
40e41f:	89 b5 4c fe ff ff    	mov    %esi,-0x1b4(%ebp)
40e425:	89 85 50 fe ff ff    	mov    %eax,-0x1b0(%ebp)
40e42b:	89 9d 54 fe ff ff    	mov    %ebx,-0x1ac(%ebp)
40e431:	e8 53 ff ff ff       	call   0x40e389
40e436:	8b 47 18             	mov    0x18(%edi),%eax
40e439:	39 85 50 fe ff ff    	cmp    %eax,-0x1b0(%ebp)
40e43f:	0f 85 cf 24 01 00    	jne    0x420914
40e445:	6a 5f                	push   $0x5f
40e447:	58                   	pop    %eax
40e448:	66 89 87 b6 01 00 00 	mov    %ax,0x1b6(%edi)
40e44f:	33 c0                	xor    %eax,%eax
40e451:	89 87 a2 01 00 00    	mov    %eax,0x1a2(%edi)
40e457:	89 87 a6 01 00 00    	mov    %eax,0x1a6(%edi)
40e45d:	89 87 aa 01 00 00    	mov    %eax,0x1aa(%edi)
40e463:	89 87 ae 01 00 00    	mov    %eax,0x1ae(%edi)
40e469:	89 87 b2 01 00 00    	mov    %eax,0x1b2(%edi)
40e46f:	89 87 b8 01 00 00    	mov    %eax,0x1b8(%edi)
40e475:	e8 76 c9 00 00       	call   0x41adf0
40e47a:	c2 08 00             	ret    $0x8
40e47d:	8b ff                	mov    %edi,%edi
40e47f:	55                   	push   %ebp
40e480:	8b ec                	mov    %esp,%ebp
40e482:	6a ff                	push   $0xffffffff
40e484:	68 6e e2 41 00       	push   $0x41e26e
40e489:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40e48f:	50                   	push   %eax
40e490:	56                   	push   %esi
40e491:	a1 08 85 43 00       	mov    0x438508,%eax
40e496:	33 c5                	xor    %ebp,%eax
40e498:	50                   	push   %eax
40e499:	8d 45 f4             	lea    -0xc(%ebp),%eax
40e49c:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40e4a2:	8b f1                	mov    %ecx,%esi
40e4a4:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
40e4a8:	c7 06 fc 11 40 00    	movl   $0x4011fc,(%esi)
40e4ae:	0f 85 d8 24 01 00    	jne    0x42098c
40e4b4:	c7 06 18 12 40 00    	movl   $0x401218,(%esi)
40e4ba:	8b 4e 10             	mov    0x10(%esi),%ecx
40e4bd:	c7 46 0c e0 11 40 00 	movl   $0x4011e0,0xc(%esi)
40e4c4:	85 c9                	test   %ecx,%ecx
40e4c6:	74 0b                	je     0x40e4d3
40e4c8:	8d 46 1c             	lea    0x1c(%esi),%eax
40e4cb:	3b c8                	cmp    %eax,%ecx
40e4cd:	0f 85 d0 24 01 00    	jne    0x4209a3
40e4d3:	c7 46 0c 80 11 40 00 	movl   $0x401180,0xc(%esi)
40e4da:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40e4dd:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40e4e4:	59                   	pop    %ecx
40e4e5:	5e                   	pop    %esi
40e4e6:	c9                   	leave
40e4e7:	c3                   	ret
40e4e8:	8b ff                	mov    %edi,%edi
40e4ea:	56                   	push   %esi
40e4eb:	8b f1                	mov    %ecx,%esi
40e4ed:	8b 4e 04             	mov    0x4(%esi),%ecx
40e4f0:	c7 06 64 11 40 00    	movl   $0x401164,(%esi)
40e4f6:	85 c9                	test   %ecx,%ecx
40e4f8:	74 0b                	je     0x40e505
40e4fa:	8d 46 10             	lea    0x10(%esi),%eax
40e4fd:	3b c8                	cmp    %eax,%ecx
40e4ff:	0f 85 ab 24 01 00    	jne    0x4209b0
40e505:	c7 06 80 11 40 00    	movl   $0x401180,(%esi)
40e50b:	5e                   	pop    %esi
40e50c:	c3                   	ret
40e50d:	6a 08                	push   $0x8
40e50f:	b8 3d e5 41 00       	mov    $0x41e53d,%eax
40e514:	e8 f5 c8 00 00       	call   0x41ae0e
40e519:	8b f1                	mov    %ecx,%esi
40e51b:	89 75 ec             	mov    %esi,-0x14(%ebp)
40e51e:	8d 5e 04             	lea    0x4(%esi),%ebx
40e521:	c7 06 9c 11 40 00    	movl   $0x40119c,(%esi)
40e527:	8b cb                	mov    %ebx,%ecx
40e529:	e8 ed 4f 00 00       	call   0x41351b
40e52e:	8b 7d 0c             	mov    0xc(%ebp),%edi
40e531:	33 c9                	xor    %ecx,%ecx
40e533:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40e536:	c7 06 3c 11 40 00    	movl   $0x40113c,(%esi)
40e53c:	c7 86 98 00 00 00 01 	movl   $0x1,0x98(%esi)
40e543:	00 00 00
40e546:	8b 03                	mov    (%ebx),%eax
40e548:	6a ff                	push   $0xffffffff
40e54a:	51                   	push   %ecx
40e54b:	57                   	push   %edi
40e54c:	8b 40 10             	mov    0x10(%eax),%eax
40e54f:	89 45 f0             	mov    %eax,-0x10(%ebp)
40e552:	3d a0 36 41 00       	cmp    $0x4136a0,%eax
40e557:	75 09                	jne    0x40e562
40e559:	8b cb                	mov    %ebx,%ecx
40e55b:	e8 40 51 00 00       	call   0x4136a0
40e560:	eb 0d                	jmp    0x40e56f
40e562:	8b c8                	mov    %eax,%ecx
40e564:	ff 15 20 a5 43 00    	call   *0x43a520
40e56a:	8b cb                	mov    %ebx,%ecx
40e56c:	ff 55 f0             	call   *-0x10(%ebp)
40e56f:	6a 00                	push   $0x0
40e571:	ff 15 ac a0 43 00    	call   *0x43a0ac
40e577:	8b 55 08             	mov    0x8(%ebp),%edx
40e57a:	8d 9e 9c 00 00 00    	lea    0x9c(%esi),%ebx
40e580:	53                   	push   %ebx
40e581:	68 19 00 02 00       	push   $0x20019
40e586:	51                   	push   %ecx
40e587:	57                   	push   %edi
40e588:	e8 2d ed 00 00       	call   0x41d2ba
40e58d:	85 c0                	test   %eax,%eax
40e58f:	74 0a                	je     0x40e59b
40e591:	83 23 00             	andl   $0x0,(%ebx)
40e594:	50                   	push   %eax
40e595:	ff 15 ac a0 43 00    	call   *0x43a0ac
40e59b:	8b c6                	mov    %esi,%eax
40e59d:	e8 3a c8 00 00       	call   0x41addc
40e5a2:	c2 10 00             	ret    $0x10
40e5a5:	8b ff                	mov    %edi,%edi
40e5a7:	55                   	push   %ebp
40e5a8:	8b ec                	mov    %esp,%ebp
40e5aa:	56                   	push   %esi
40e5ab:	8b 75 08             	mov    0x8(%ebp),%esi
40e5ae:	8b d6                	mov    %esi,%edx
40e5b0:	57                   	push   %edi
40e5b1:	c7 01 80 11 40 00    	movl   $0x401180,(%ecx)
40e5b7:	8d 7a 02             	lea    0x2(%edx),%edi
40e5ba:	66 8b 02             	mov    (%edx),%ax
40e5bd:	83 c2 02             	add    $0x2,%edx
40e5c0:	66 85 c0             	test   %ax,%ax
40e5c3:	75 f5                	jne    0x40e5ba
40e5c5:	2b d7                	sub    %edi,%edx
40e5c7:	89 71 04             	mov    %esi,0x4(%ecx)
40e5ca:	d1 fa                	sar    $1,%edx
40e5cc:	8b c1                	mov    %ecx,%eax
40e5ce:	5f                   	pop    %edi
40e5cf:	89 51 0c             	mov    %edx,0xc(%ecx)
40e5d2:	89 51 08             	mov    %edx,0x8(%ecx)
40e5d5:	c7 01 20 11 40 00    	movl   $0x401120,(%ecx)
40e5db:	5e                   	pop    %esi
40e5dc:	5d                   	pop    %ebp
40e5dd:	c2 04 00             	ret    $0x4
40e5e0:	8b ff                	mov    %edi,%edi
40e5e2:	55                   	push   %ebp
40e5e3:	8b ec                	mov    %esp,%ebp
40e5e5:	56                   	push   %esi
40e5e6:	57                   	push   %edi
40e5e7:	ff 75 0c             	push   0xc(%ebp)
40e5ea:	8b f9                	mov    %ecx,%edi
40e5ec:	33 f6                	xor    %esi,%esi
40e5ee:	51                   	push   %ecx
40e5ef:	52                   	push   %edx
40e5f0:	e8 0b 37 00 00       	call   0x411d00
40e5f5:	85 c0                	test   %eax,%eax
40e5f7:	75 0d                	jne    0x40e606
40e5f9:	39 77 14             	cmp    %esi,0x14(%edi)
40e5fc:	75 0f                	jne    0x40e60d
40e5fe:	5f                   	pop    %edi
40e5ff:	8b c6                	mov    %esi,%eax
40e601:	5e                   	pop    %esi
40e602:	5d                   	pop    %ebp
40e603:	c2 08 00             	ret    $0x8
40e606:	be 20 00 07 80       	mov    $0x80070020,%esi
40e60b:	eb f1                	jmp    0x40e5fe
40e60d:	be 23 0d 04 80       	mov    $0x80040d23,%esi
40e612:	eb ea                	jmp    0x40e5fe
40e614:	8b ff                	mov    %edi,%edi
40e616:	55                   	push   %ebp
40e617:	8b ec                	mov    %esp,%ebp
40e619:	8b 45 08             	mov    0x8(%ebp),%eax
40e61c:	ff 30                	push   (%eax)
40e61e:	e8 4e 56 00 00       	call   0x413c71
40e623:	5d                   	pop    %ebp
40e624:	c2 04 00             	ret    $0x4
40e627:	8b ff                	mov    %edi,%edi
40e629:	55                   	push   %ebp
40e62a:	8b ec                	mov    %esp,%ebp
40e62c:	56                   	push   %esi
40e62d:	6a 07                	push   $0x7
40e62f:	6a 00                	push   $0x0
40e631:	6a 18                	push   $0x18
40e633:	8b f1                	mov    %ecx,%esi
40e635:	e8 e8 0a 00 00       	call   0x40f122
40e63a:	85 c0                	test   %eax,%eax
40e63c:	78 0e                	js     0x40e64c
40e63e:	ff 75 08             	push   0x8(%ebp)
40e641:	8d 8e b8 09 00 00    	lea    0x9b8(%esi),%ecx
40e647:	e8 a4 11 00 00       	call   0x40f7f0
40e64c:	5e                   	pop    %esi
40e64d:	5d                   	pop    %ebp
40e64e:	c2 04 00             	ret    $0x4
40e651:	8b ff                	mov    %edi,%edi