40f00f:	50                   	push   %eax
40f010:	56                   	push   %esi
40f011:	68 ce ff 00 00       	push   $0xffce
40f016:	53                   	push   %ebx
40f017:	ff 15 a4 a0 44 00    	call   *0x44a0a4
40f01d:	8b f8                	mov    %eax,%edi
40f01f:	8b 85 a0 fd ff ff    	mov    -0x260(%ebp),%eax
40f025:	6a 20                	push   $0x20
40f027:	59                   	pop    %ecx
40f028:	23 c1                	and    %ecx,%eax
40f02a:	ba ce ff 00 00       	mov    $0xffce,%edx
40f02f:	50                   	push   %eax
40f030:	8b ce                	mov    %esi,%ecx
40f032:	89 85 7c fd ff ff    	mov    %eax,-0x284(%ebp)
40f038:	e8 ca 11 00 00       	call   0x410207
40f03d:	6a 5c                	push   $0x5c
40f03f:	56                   	push   %esi
40f040:	ff 15 04 a4 44 00    	call   *0x44a404
40f046:	89 85 8c fd ff ff    	mov    %eax,-0x274(%ebp)
40f04c:	59                   	pop    %ecx
40f04d:	59                   	pop    %ecx
40f04e:	85 c0                	test   %eax,%eax
40f050:	0f 84 63 ef 00 00    	je     0x41dfb9
40f056:	83 c0 02             	add    $0x2,%eax
40f059:	89 85 8c fd ff ff    	mov    %eax,-0x274(%ebp)
40f05f:	85 ff                	test   %edi,%edi
40f061:	0f 84 69 01 00 00    	je     0x40f1d0
40f067:	b8 04 01 00 00       	mov    $0x104,%eax
40f06c:	c6 45 b0 01          	movb   $0x1,-0x50(%ebp)
40f070:	50                   	push   %eax
40f071:	33 db                	xor    %ebx,%ebx
40f073:	89 45 b4             	mov    %eax,-0x4c(%ebp)
40f076:	8d 85 a4 fd ff ff    	lea    -0x25c(%ebp),%eax
40f07c:	89 5d ac             	mov    %ebx,-0x54(%ebp)
40f07f:	53                   	push   %ebx
40f080:	50                   	push   %eax
40f081:	e8 37 8f 00 00       	call   0x417fbd
40f086:	33 c0                	xor    %eax,%eax
40f088:	8d 8d a4 fd ff ff    	lea    -0x25c(%ebp),%ecx
40f08e:	83 c4 0c             	add    $0xc,%esp
40f091:	38 45 b0             	cmp    %al,-0x50(%ebp)
40f094:	0f 94 c0             	sete   %al
40f097:	48                   	dec    %eax
40f098:	25 c6 fd 00 00       	and    $0xfdc6,%eax
40f09d:	05 08 02 00 00       	add    $0x208,%eax
40f0a2:	50                   	push   %eax
40f0a3:	e8 48 f3 ff ff       	call   0x40e3f0
40f0a8:	85 c0                	test   %eax,%eax
40f0aa:	0f 88 1a ef 00 00    	js     0x41dfca
40f0b0:	8b 55 ac             	mov    -0x54(%ebp),%edx
40f0b3:	8b fa                	mov    %edx,%edi
40f0b5:	85 d2                	test   %edx,%edx
40f0b7:	0f 84 2e ef 00 00    	je     0x41dfeb
40f0bd:	8b 9d a0 fd ff ff    	mov    -0x260(%ebp),%ebx
40f0c3:	8b c3                	mov    %ebx,%eax
40f0c5:	25 00 40 00 00       	and    $0x4000,%eax
40f0ca:	89 85 94 fd ff ff    	mov    %eax,-0x26c(%ebp)
40f0d0:	0f 85 20 ef 00 00    	jne    0x41dff6
40f0d6:	f7 c3 00 80 00 00    	test   $0x8000,%ebx
40f0dc:	0f 84 3f f1 00 00    	je     0x41e221
40f0e2:	8b c2                	mov    %edx,%eax
40f0e4:	85 d2                	test   %edx,%edx
40f0e6:	0f 84 42 f1 00 00    	je     0x41e22e
40f0ec:	3b f8                	cmp    %eax,%edi
40f0ee:	0f 85 45 f1 00 00    	jne    0x41e239
40f0f4:	f6 c3 01             	test   $0x1,%bl
40f0f7:	0f 85 90 00 00 00    	jne    0x40f18d
40f0fd:	83 bd 7c fd ff ff 00 	cmpl   $0x0,-0x284(%ebp)
40f104:	0f 85 5e f1 00 00    	jne    0x41e268
40f10a:	8d 4e 04             	lea    0x4(%esi),%ecx
40f10d:	89 8d 88 fd ff ff    	mov    %ecx,-0x278(%ebp)
40f113:	f6 c3 02             	test   $0x2,%bl
40f116:	0f 85 eb 01 00 00    	jne    0x40f307
40f11c:	51                   	push   %ecx
40f11d:	ba ce ff 00 00       	mov    $0xffce,%edx
40f122:	8b ce                	mov    %esi,%ecx
40f124:	e8 77 02 00 00       	call   0x40f3a0
40f129:	8b 85 8c fd ff ff    	mov    -0x274(%ebp),%eax
40f12f:	8b ce                	mov    %esi,%ecx
40f131:	83 e8 04             	sub    $0x4,%eax
40f134:	89 8d 88 fd ff ff    	mov    %ecx,-0x278(%ebp)
40f13a:	89 85 8c fd ff ff    	mov    %eax,-0x274(%ebp)
40f140:	f6 c3 04             	test   $0x4,%bl
40f143:	75 1f                	jne    0x40f164
40f145:	50                   	push   %eax
40f146:	8b c1                	mov    %ecx,%eax
40f148:	ba ce ff 00 00       	mov    $0xffce,%edx
40f14d:	2b c6                	sub    %esi,%eax
40f14f:	d1 f8                	sar    $1,%eax
40f151:	2b d0                	sub    %eax,%edx
40f153:	e8 48 02 00 00       	call   0x40f3a0
40f158:	8b 85 88 fd ff ff    	mov    -0x278(%ebp),%eax
40f15e:	89 85 8c fd ff ff    	mov    %eax,-0x274(%ebp)
40f164:	6a 2e                	push   $0x2e
40f166:	50                   	push   %eax
40f167:	ff 15 04 a4 44 00    	call   *0x44a404
40f16d:	59                   	pop    %ecx
40f16e:	59                   	pop    %ecx
40f16f:	85 c0                	test   %eax,%eax
40f171:	0f 84 ff f0 00 00    	je     0x41e276
40f177:	f6 c3 10             	test   $0x10,%bl
40f17a:	75 05                	jne    0x40f181
40f17c:	33 c9                	xor    %ecx,%ecx
40f17e:	66 89 08             	mov    %cx,(%eax)
40f181:	f6 c3 08             	test   $0x8,%bl
40f184:	0f 84 88 01 00 00    	je     0x40f312
40f18a:	8b 55 ac             	mov    -0x54(%ebp),%edx
40f18d:	85 d2                	test   %edx,%edx
40f18f:	0f 84 f5 f0 00 00    	je     0x41e28a
40f195:	8b c7                	mov    %edi,%eax
40f197:	8b cf                	mov    %edi,%ecx
40f199:	2b c2                	sub    %edx,%eax
40f19b:	8b 55 b4             	mov    -0x4c(%ebp),%edx
40f19e:	d1 f8                	sar    $1,%eax
40f1a0:	56                   	push   %esi
40f1a1:	2b d0                	sub    %eax,%edx
40f1a3:	e8 f8 01 00 00       	call   0x40f3a0
40f1a8:	8b 55 ac             	mov    -0x54(%ebp),%edx
40f1ab:	85 d2                	test   %edx,%edx
40f1ad:	0f 84 e2 f0 00 00    	je     0x41e295
40f1b3:	8b ca                	mov    %edx,%ecx
40f1b5:	e8 f6 ba ff ff       	call   0x40acb0
40f1ba:	8b d8                	mov    %eax,%ebx
40f1bc:	33 c9                	xor    %ecx,%ecx
40f1be:	8b 45 ac             	mov    -0x54(%ebp),%eax
40f1c1:	89 4d ac             	mov    %ecx,-0x54(%ebp)
40f1c4:	85 c0                	test   %eax,%eax
40f1c6:	74 08                	je     0x40f1d0
40f1c8:	50                   	push   %eax
40f1c9:	ff 15 e0 a3 44 00    	call   *0x44a3e0
40f1cf:	59                   	pop    %ecx
40f1d0:	85 f6                	test   %esi,%esi
40f1d2:	0f 85 17 fe ff ff    	jne    0x40efef
40f1d8:	e9 c4 fc ff ff       	jmp    0x40eea1
40f1dd:	0f b7 07             	movzwl (%edi),%eax
40f1e0:	50                   	push   %eax
40f1e1:	ff b5 84 fd ff ff    	push   -0x27c(%ebp)
40f1e7:	ff 15 04 a4 44 00    	call   *0x44a404
40f1ed:	59                   	pop    %ecx
40f1ee:	59                   	pop    %ecx
40f1ef:	85 c0                	test   %eax,%eax
40f1f1:	0f 85 39 01 00 00    	jne    0x40f330
40f1f7:	0f b7 07             	movzwl (%edi),%eax
40f1fa:	50                   	push   %eax
40f1fb:	ff 15 10 a4 44 00    	call   *0x44a410
40f201:	0f b7 c0             	movzwl %ax,%eax
40f204:	59                   	pop    %ecx
40f205:	83 f8 70             	cmp    $0x70,%eax
40f208:	0f 84 ef 00 00 00    	je     0x40f2fd
40f20e:	0f 87 58 01 00 00    	ja     0x40f36c
40f214:	83 e8 61             	sub    $0x61,%eax
40f217:	0f 84 3b 01 00 00    	je     0x40f358
40f21d:	83 e8 03             	sub    $0x3,%eax
40f220:	0f 84 cd 00 00 00    	je     0x40f2f3
40f226:	48                   	dec    %eax
40f227:	83 e8 01             	sub    $0x1,%eax
40f22a:	0f 84 32 01 00 00    	je     0x40f362
40f230:	83 e8 08             	sub    $0x8,%eax
40f233:	0f 85 ec ec 00 00    	jne    0x41df25
40f239:	b9 08 80 00 00       	mov    $0x8008,%ecx
40f23e:	83 c7 02             	add    $0x2,%edi
40f241:	0b cb                	or     %ebx,%ecx
40f243:	8b d9                	mov    %ecx,%ebx
40f245:	89 9d a0 fd ff ff    	mov    %ebx,-0x260(%ebp)
40f24b:	0f b7 07             	movzwl (%edi),%eax
40f24e:	8b d0                	mov    %eax,%edx
40f250:	66 85 c0             	test   %ax,%ax
40f253:	0f 85 a8 fc ff ff    	jne    0x40ef01
40f259:	89 9d a0 fd ff ff    	mov    %ebx,-0x260(%ebp)
40f25f:	e9 c6 fc ff ff       	jmp    0x40ef2a
40f264:	8b 0d 48 67 43 00    	mov    0x436748,%ecx
40f26a:	8b 95 9c fd ff ff    	mov    -0x264(%ebp),%edx
40f270:	8b 85 a0 fd ff ff    	mov    -0x260(%ebp),%eax
40f276:	85 c9                	test   %ecx,%ecx
40f278:	0f 84 3a fd ff ff    	je     0x40efb8
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)