40f27e:	39 99 8c 00 00 00    	cmp    %ebx,0x8c(%ecx)
40f284:	0f 85 2e fd ff ff    	jne    0x40efb8
40f28a:	85 d2                	test   %edx,%edx
40f28c:	0f 85 26 fd ff ff    	jne    0x40efb8
40f292:	a9 00 c0 00 00       	test   $0xc000,%eax
40f297:	0f 84 1b fd ff ff    	je     0x40efb8
40f29d:	8b 19                	mov    (%ecx),%ebx
40f29f:	e9 14 fd ff ff       	jmp    0x40efb8
40f2a4:	8d 4b 02             	lea    0x2(%ebx),%ecx
40f2a7:	e8 04 ba ff ff       	call   0x40acb0
40f2ac:	8b d8                	mov    %eax,%ebx
40f2ae:	85 db                	test   %ebx,%ebx
40f2b0:	0f 84 a0 ec 00 00    	je     0x41df56
40f2b6:	0f b7 03             	movzwl (%ebx),%eax
40f2b9:	8b cb                	mov    %ebx,%ecx
40f2bb:	8b d0                	mov    %eax,%edx
40f2bd:	66 85 c0             	test   %ax,%ax
40f2c0:	0f 84 a0 ec 00 00    	je     0x41df66
40f2c6:	33 f6                	xor    %esi,%esi
40f2c8:	8b d1                	mov    %ecx,%edx
40f2ca:	8b c1                	mov    %ecx,%eax
40f2cc:	83 c1 02             	add    $0x2,%ecx
40f2cf:	66 39 31             	cmp    %si,(%ecx)
40f2d2:	75 f4                	jne    0x40f2c8
40f2d4:	0f b7 12             	movzwl (%edx),%edx
40f2d7:	8b b5 7c fd ff ff    	mov    -0x284(%ebp),%esi
40f2dd:	6a 22                	push   $0x22
40f2df:	59                   	pop    %ecx
40f2e0:	66 3b d1             	cmp    %cx,%dx
40f2e3:	0f 85 c3 fc ff ff    	jne    0x40efac
40f2e9:	33 c9                	xor    %ecx,%ecx
40f2eb:	66 89 08             	mov    %cx,(%eax)
40f2ee:	e9 b9 fc ff ff       	jmp    0x40efac
40f2f3:	b9 02 80 00 00       	mov    $0x8002,%ecx
40f2f8:	e9 41 ff ff ff       	jmp    0x40f23e
40f2fd:	b9 04 80 00 00       	mov    $0x8004,%ecx
40f302:	e9 37 ff ff ff       	jmp    0x40f23e
40f307:	8b 85 8c fd ff ff    	mov    -0x274(%ebp),%eax
40f30d:	e9 2e fe ff ff       	jmp    0x40f140
40f312:	8b 8d 8c fd ff ff    	mov    -0x274(%ebp),%ecx
40f318:	ba ce ff 00 00       	mov    $0xffce,%edx
40f31d:	50                   	push   %eax
40f31e:	8b c1                	mov    %ecx,%eax
40f320:	2b c6                	sub    %esi,%eax
40f322:	d1 f8                	sar    $1,%eax
40f324:	2b d0                	sub    %eax,%edx
40f326:	e8 75 00 00 00       	call   0x40f3a0
40f32b:	e9 5a fe ff ff       	jmp    0x40f18a
40f330:	89 bd 98 fd ff ff    	mov    %edi,-0x268(%ebp)
40f336:	89 9d 94 fd ff ff    	mov    %ebx,-0x26c(%ebp)
40f33c:	e9 b6 fe ff ff       	jmp    0x40f1f7
40f341:	8b bd 98 fd ff ff    	mov    -0x268(%ebp),%edi
40f347:	8b 85 94 fd ff ff    	mov    -0x26c(%ebp),%eax
40f34d:	89 85 a0 fd ff ff    	mov    %eax,-0x260(%ebp)
40f353:	e9 0f fc ff ff       	jmp    0x40ef67
40f358:	b9 00 41 00 00       	mov    $0x4100,%ecx
40f35d:	e9 dc fe ff ff       	jmp    0x40f23e
40f362:	b9 01 80 00 00       	mov    $0x8001,%ecx
40f367:	e9 d2 fe ff ff       	jmp    0x40f23e
40f36c:	83 e8 73             	sub    $0x73,%eax
40f36f:	0f 84 01 eb 00 00    	je     0x41de76
40f375:	83 e8 01             	sub    $0x1,%eax
40f378:	0f 84 ee ea 00 00    	je     0x41de6c
40f37e:	83 e8 04             	sub    $0x4,%eax
40f381:	0f 85 d1 ea 00 00    	jne    0x41de58
40f387:	b9 10 80 00 00       	mov    $0x8010,%ecx
40f38c:	e9 ad fe ff ff       	jmp    0x40f23e
40f391:	8b f9                	mov    %ecx,%edi
40f393:	eb b2                	jmp    0x40f347
40f395:	cc                   	int3
40f396:	cc                   	int3
40f397:	cc                   	int3
40f398:	cc                   	int3
40f399:	cc                   	int3
40f39a:	cc                   	int3
40f39b:	cc                   	int3
40f39c:	cc                   	int3
40f39d:	cc                   	int3
40f39e:	cc                   	int3
40f39f:	cc                   	int3
40f3a0:	8b ff                	mov    %edi,%edi
40f3a2:	55                   	push   %ebp
40f3a3:	8b ec                	mov    %esp,%ebp
40f3a5:	33 c0                	xor    %eax,%eax
40f3a7:	85 d2                	test   %edx,%edx
40f3a9:	74 5c                	je     0x40f407
40f3ab:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
40f3b1:	77 54                	ja     0x40f407
40f3b3:	85 c0                	test   %eax,%eax
40f3b5:	0f 88 e5 ee 00 00    	js     0x41e2a0
40f3bb:	53                   	push   %ebx
40f3bc:	56                   	push   %esi
40f3bd:	33 db                	xor    %ebx,%ebx
40f3bf:	57                   	push   %edi
40f3c0:	85 d2                	test   %edx,%edx
40f3c2:	74 27                	je     0x40f3eb
40f3c4:	8b 7d 08             	mov    0x8(%ebp),%edi
40f3c7:	be fe ff ff 7f       	mov    $0x7ffffffe,%esi
40f3cc:	2b f2                	sub    %edx,%esi
40f3ce:	2b f9                	sub    %ecx,%edi
40f3d0:	8d 04 16             	lea    (%esi,%edx,1),%eax
40f3d3:	85 c0                	test   %eax,%eax
40f3d5:	74 1e                	je     0x40f3f5
40f3d7:	0f b7 04 0f          	movzwl (%edi,%ecx,1),%eax
40f3db:	66 85 c0             	test   %ax,%ax
40f3de:	74 15                	je     0x40f3f5
40f3e0:	66 89 01             	mov    %ax,(%ecx)
40f3e3:	83 c1 02             	add    $0x2,%ecx
40f3e6:	83 ea 01             	sub    $0x1,%edx
40f3e9:	75 e5                	jne    0x40f3d0
40f3eb:	83 e9 02             	sub    $0x2,%ecx
40f3ee:	bb 7a 00 07 80       	mov    $0x8007007a,%ebx
40f3f3:	eb 04                	jmp    0x40f3f9
40f3f5:	85 d2                	test   %edx,%edx
40f3f7:	74 f2                	je     0x40f3eb
40f3f9:	33 c0                	xor    %eax,%eax
40f3fb:	5f                   	pop    %edi
40f3fc:	66 89 01             	mov    %ax,(%ecx)
40f3ff:	8b c3                	mov    %ebx,%eax
40f401:	5e                   	pop    %esi
40f402:	5b                   	pop    %ebx
40f403:	5d                   	pop    %ebp
40f404:	c2 04 00             	ret    $0x4
40f407:	b8 57 00 07 80       	mov    $0x80070057,%eax
40f40c:	eb a5                	jmp    0x40f3b3
40f40e:	cc                   	int3
40f40f:	cc                   	int3
40f410:	8b ff                	mov    %edi,%edi
40f412:	55                   	push   %ebp
40f413:	8b ec                	mov    %esp,%ebp
40f415:	83 e4 f8             	and    $0xfffffff8,%esp
40f418:	81 ec 4c 02 00 00    	sub    $0x24c,%esp
40f41e:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
40f423:	33 c4                	xor    %esp,%eax
40f425:	89 84 24 48 02 00 00 	mov    %eax,0x248(%esp)
40f42c:	8b 49 38             	mov    0x38(%ecx),%ecx
40f42f:	53                   	push   %ebx
40f430:	56                   	push   %esi
40f431:	33 db                	xor    %ebx,%ebx
40f433:	89 54 24 0c          	mov    %edx,0xc(%esp)
40f437:	57                   	push   %edi
40f438:	89 5c 24 1c          	mov    %ebx,0x1c(%esp)
40f43c:	33 f6                	xor    %esi,%esi
40f43e:	e8 1d 0c 00 00       	call   0x410060
40f443:	8b f8                	mov    %eax,%edi
40f445:	85 ff                	test   %edi,%edi
40f447:	74 22                	je     0x40f46b
40f449:	8b f7                	mov    %edi,%esi
40f44b:	8d 4e 02             	lea    0x2(%esi),%ecx
40f44e:	8b ff                	mov    %edi,%edi
40f450:	66 8b 06             	mov    (%esi),%ax
40f453:	83 c6 02             	add    $0x2,%esi
40f456:	66 85 c0             	test   %ax,%ax
40f459:	75 f5                	jne    0x40f450
40f45b:	2b f1                	sub    %ecx,%esi
40f45d:	d1 fe                	sar    $1,%esi
40f45f:	81 fe e7 7f 00 00    	cmp    $0x7fe7,%esi
40f465:	0f 83 47 ee 00 00    	jae    0x41e2b2
40f46b:	38 1d 55 67 43 00    	cmp    %bl,0x436755
40f471:	74 21                	je     0x40f494
40f473:	85 ff                	test   %edi,%edi
40f475:	0f 84 46 ee 00 00    	je     0x41e2c1
40f47b:	6a 04                	push   $0x4
40f47d:	68 18 25 40 00       	push   $0x402518
40f482:	57                   	push   %edi
40f483:	ff 15 28 a4 44 00    	call   *0x44a428
40f489:	83 c4 0c             	add    $0xc,%esp
40f48c:	85 c0                	test   %eax,%eax
40f48e:	0f 84 2d ee 00 00    	je     0x41e2c1
40f494:	68 04 01 00 00       	push   $0x104
40f499:	8d 44 24 34          	lea    0x34(%esp),%eax
40f49d:	89 9c 24 3c 02 00 00 	mov    %ebx,0x23c(%esp)
40f4a4:	6a 00                	push   $0x0
40f4a6:	50                   	push   %eax
40f4a7:	c6 84 24 48 02 00 00 	movb   $0x1,0x248(%esp)
40f4ae:	01
40f4af:	c7 84 24 4c 02 00 00 	movl   $0x104,0x24c(%esp)
40f4b6:	04 01 00 00
40f4ba:	e8 fe 8a 00 00       	call   0x417fbd
40f4bf:	83 c4 0c             	add    $0xc,%esp
40f4c2:	38 9c 24 3c 02 00 00 	cmp    %bl,0x23c(%esp)
40f4c9:	0f 84 15 ee 00 00    	je     0x41e2e4
40f4cf:	b8 e7 7f 00 00       	mov    $0x7fe7,%eax
40f4d4:	50                   	push   %eax
40f4d5:	8d 4c 24 34          	lea    0x34(%esp),%ecx
40f4d9:	e8 12 ef ff ff       	call   0x40e3f0
40f4de:	85 c0                	test   %eax,%eax
40f4e0:	0f 88 08 ee 00 00    	js     0x41e2ee
40f4e6:	57                   	push   %edi
40f4e7:	8d 4c 24 34          	lea    0x34(%esp),%ecx
40f4eb:	e8 51 b1 ff ff       	call   0x40a641
40f4f0:	8b 8c 24 38 02 00 00 	mov    0x238(%esp),%ecx
40f4f7:	85 c9                	test   %ecx,%ecx
40f4f9:	0f 84 14 ee 00 00    	je     0x41e313
40f4ff:	bb 5c 00 00 00       	mov    $0x5c,%ebx
40f504:	ba 2f 00 00 00       	mov    $0x2f,%edx
40f509:	e8 21 b1 ff ff       	call   0x40a62f
40f50e:	85 c0                	test   %eax,%eax
40f510:	0f 85 06 ee 00 00    	jne    0x41e31c
40f516:	8b 8c 24 38 02 00 00 	mov    0x238(%esp),%ecx
40f51d:	c7 84 24 4c 02 00 00 	movl   $0x3a005c,0x24c(%esp)
40f524:	5c 00 3a 00
40f528:	66 89 84 24 50 02 00 	mov    %ax,0x250(%esp)
40f52f:	00
40f530:	85 c9                	test   %ecx,%ecx
40f532:	0f 84 ef ed 00 00    	je     0x41e327
40f538:	8d 94 24 4c 02 00 00 	lea    0x24c(%esp),%edx
40f53f:	e8 76 a9 ff ff       	call   0x409eba
40f544:	3b c6                	cmp    %esi,%eax
40f546:	0f 83 2c 05 00 00    	jae    0x40fa78
40f54c:	8b 8c 24 38 02 00 00 	mov    0x238(%esp),%ecx
40f553:	33 c0                	xor    %eax,%eax
40f555:	c7 44 24 18 01 00 00 	movl   $0x1,0x18(%esp)
40f55c:	00
40f55d:	66 89 84 24 4e 02 00 	mov    %ax,0x24e(%esp)
40f564:	00
40f565:	85 c9                	test   %ecx,%ecx
40f567:	0f 84 c3 ed 00 00    	je     0x41e330
40f56d:	8b d3                	mov    %ebx,%edx
40f56f:	e8 81 0c 00 00       	call   0x4101f5
40f574:	8b f8                	mov    %eax,%edi
40f576:	85 ff                	test   %edi,%edi
40f578:	0f 84 bb ed 00 00    	je     0x41e339
40f57e:	8b b4 24 38 02 00 00 	mov    0x238(%esp),%esi
40f585:	83 c7 02             	add    $0x2,%edi
40f588:	66 83 3f 00          	cmpw   $0x0,(%edi)
40f58c:	0f 84 cf ee 00 00    	je     0x41e461
40f592:	b9 34 24 40 00       	mov    $0x402434,%ecx
40f597:	8b c7                	mov    %edi,%eax
40f599:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40f5a0:	66 8b 10             	mov    (%eax),%dx
40f5a3:	66 3b 11             	cmp    (%ecx),%dx
40f5a6:	0f 85 58 06 00 00    	jne    0x40fc04
40f5ac:	66 85 d2             	test   %dx,%dx
40f5af:	74 19                	je     0x40f5ca
40f5b1:	66 8b 50 02          	mov    0x2(%eax),%dx
40f5b5:	66 3b 51 02          	cmp    0x2(%ecx),%dx
40f5b9:	0f 85 45 06 00 00    	jne    0x40fc04
40f5bf:	83 c0 04             	add    $0x4,%eax
40f5c2:	83 c1 04             	add    $0x4,%ecx
40f5c5:	66 85 d2             	test   %dx,%dx
40f5c8:	75 d6                	jne    0x40f5a0
40f5ca:	33 c0                	xor    %eax,%eax
40f5cc:	85 c0                	test   %eax,%eax
40f5ce:	0f 84 8d ee 00 00    	je     0x41e461
40f5d4:	b9 10 25 40 00       	mov    $0x402510,%ecx
40f5d9:	8b c7                	mov    %edi,%eax
40f5db:	eb 03                	jmp    0x40f5e0
40f5dd:	8d 49 00             	lea    0x0(%ecx),%ecx
40f5e0:	66 8b 10             	mov    (%eax),%dx
40f5e3:	66 3b 11             	cmp    (%ecx),%dx
40f5e6:	0f 85 22 06 00 00    	jne    0x40fc0e
40f5ec:	66 85 d2             	test   %dx,%dx
40f5ef:	74 19                	je     0x40f60a
40f5f1:	66 8b 50 02          	mov    0x2(%eax),%dx
40f5f5:	66 3b 51 02          	cmp    0x2(%ecx),%dx
40f5f9:	0f 85 0f 06 00 00    	jne    0x40fc0e
40f5ff:	83 c0 04             	add    $0x4,%eax
40f602:	83 c1 04             	add    $0x4,%ecx
40f605:	66 85 d2             	test   %dx,%dx
40f608:	75 d6                	jne    0x40f5e0
40f60a:	33 c0                	xor    %eax,%eax
40f60c:	85 c0                	test   %eax,%eax
40f60e:	0f 84 4d ee 00 00    	je     0x41e461
40f614:	b9 9c ff 01 00       	mov    $0x1ff9c,%ecx
40f619:	e8 b2 e6 ff ff       	call   0x40dcd0
40f61e:	8b f0                	mov    %eax,%esi
40f620:	8b 84 24 38 02 00 00 	mov    0x238(%esp),%eax
40f627:	85 f6                	test   %esi,%esi
40f629:	0f 84 41 ed 00 00    	je     0x41e370
40f62f:	85 c0                	test   %eax,%eax
40f631:	0f 84 5b ed 00 00    	je     0x41e392
40f637:	8b 5d 08             	mov    0x8(%ebp),%ebx
40f63a:	8b d3                	mov    %ebx,%edx
40f63c:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40f640:	50                   	push   %eax
40f641:	e8 5a fd ff ff       	call   0x40f3a0
40f646:	8b 8c 24 38 02 00 00 	mov    0x238(%esp),%ecx
40f64d:	85 c9                	test   %ecx,%ecx
40f64f:	0f 84 46 ed 00 00    	je     0x41e39b
40f655:	8b c7                	mov    %edi,%eax
40f657:	33 d2                	xor    %edx,%edx
40f659:	2b c1                	sub    %ecx,%eax
40f65b:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40f65f:	d1 f8                	sar    $1,%eax
40f661:	68 34 24 40 00       	push   $0x402434
40f666:	66 89 14 41          	mov    %dx,(%ecx,%eax,2)
40f66a:	8b d3                	mov    %ebx,%edx
40f66c:	8b d9                	mov    %ecx,%ebx
40f66e:	e8 cd 05 00 00       	call   0x40fc40
40f673:	53                   	push   %ebx
40f674:	ba ce ff 00 00       	mov    $0xffce,%edx
40f679:	8b ce                	mov    %esi,%ecx
40f67b:	e8 55 26 00 00       	call   0x411cd5
40f680:	85 c0                	test   %eax,%eax
40f682:	0f 85 1c ed 00 00    	jne    0x41e3a4
40f688:	0f b7 06             	movzwl (%esi),%eax
40f68b:	8b ce                	mov    %esi,%ecx
40f68d:	8b d0                	mov    %eax,%edx
40f68f:	66 85 c0             	test   %ax,%ax
40f692:	74 0e                	je     0x40f6a2
40f694:	8b c1                	mov    %ecx,%eax
40f696:	83 c1 02             	add    $0x2,%ecx
40f699:	66 83 39 00          	cmpw   $0x0,(%ecx)
40f69d:	75 f5                	jne    0x40f694
40f69f:	0f b7 10             	movzwl (%eax),%edx
40f6a2:	66 83 fa 5c          	cmp    $0x5c,%dx
40f6a6:	74 11                	je     0x40f6b9
40f6a8:	68 0c 25 40 00       	push   $0x40250c
40f6ad:	ba ce ff 00 00       	mov    $0xffce,%edx
40f6b2:	8b ce                	mov    %esi,%ecx
40f6b4:	e8 87 05 00 00       	call   0x40fc40
40f6b9:	57                   	push   %edi
40f6ba:	ba ce ff 00 00       	mov    $0xffce,%edx
40f6bf:	8b ce                	mov    %esi,%ecx
40f6c1:	e8 7a 05 00 00       	call   0x40fc40
40f6c6:	8b d6                	mov    %esi,%edx
40f6c8:	8d 4a 02             	lea    0x2(%edx),%ecx
40f6cb:	eb 03                	jmp    0x40f6d0
40f6cd:	8d 49 00             	lea    0x0(%ecx),%ecx
40f6d0:	66 8b 02             	mov    (%edx),%ax
40f6d3:	83 c2 02             	add    $0x2,%edx
40f6d6:	66 85 c0             	test   %ax,%ax
40f6d9:	75 f5                	jne    0x40f6d0
40f6db:	2b d1                	sub    %ecx,%edx
40f6dd:	8b ce                	mov    %esi,%ecx
40f6df:	d1 fa                	sar    $1,%edx
40f6e1:	8d 14 55 02 00 00 00 	lea    0x2(,%edx,2),%edx
40f6e8:	e8 33 e6 ff ff       	call   0x40dd20
40f6ed:	8b d8                	mov    %eax,%ebx
40f6ef:	85 db                	test   %ebx,%ebx
40f6f1:	0f 84 6b ec 00 00    	je     0x41e362
40f6f7:	ba 5c 00 00 00       	mov    $0x5c,%edx
40f6fc:	8b cb                	mov    %ebx,%ecx
40f6fe:	e8 f2 0a 00 00       	call   0x4101f5
40f703:	33 c9                	xor    %ecx,%ecx
40f705:	66 89 08             	mov    %cx,(%eax)
40f708:	83 c0 02             	add    $0x2,%eax
40f70b:	89 44 24 24          	mov    %eax,0x24(%esp)
40f70f:	39 4c 24 18          	cmp    %ecx,0x18(%esp)
40f713:	0f 84 87 03 00 00    	je     0x40faa0
40f719:	33 f6                	xor    %esi,%esi
40f71b:	ff 74 24 10          	push   0x10(%esp)
40f71f:	ff 15 e8 a1 44 00    	call   *0x44a1e8
40f725:	89 44 24 14          	mov    %eax,0x14(%esp)
40f729:	85 c0                	test   %eax,%eax
40f72b:	0f 84 b7 ec 00 00    	je     0x41e3e8
40f731:	8b cb                	mov    %ebx,%ecx
40f733:	8d 51 02             	lea    0x2(%ecx),%edx
40f736:	66 8b 01             	mov    (%ecx),%ax