40eff9:	74 30                	je     0x40f02b
40effb:	a8 08                	test   $0x8,%al
40effd:	75 0b                	jne    0x40f00a
40efff:	51                   	push   %ecx
40f000:	ff 15 0c 96 43 00    	call   *0x43960c
40f006:	85 c0                	test   %eax,%eax
40f008:	74 21                	je     0x40f02b
40f00a:	8b ce                	mov    %esi,%ecx
40f00c:	8b c6                	mov    %esi,%eax
40f00e:	c1 f9 05             	sar    $0x5,%ecx
40f011:	83 e0 1f             	and    $0x1f,%eax
40f014:	8d 14 c0             	lea    (%eax,%eax,8),%edx
40f017:	8b 04 8d a0 89 43 00 	mov    0x4389a0(,%ecx,4),%eax
40f01e:	8b 4d 00             	mov    0x0(%ebp),%ecx
40f021:	8d 04 90             	lea    (%eax,%edx,4),%eax
40f024:	89 08                	mov    %ecx,(%eax)
40f026:	8a 17                	mov    (%edi),%dl
40f028:	88 50 04             	mov    %dl,0x4(%eax)
40f02b:	8b 44 24 10          	mov    0x10(%esp),%eax
40f02f:	46                   	inc    %esi
40f030:	47                   	inc    %edi
40f031:	83 c5 04             	add    $0x4,%ebp
40f034:	3b f0                	cmp    %eax,%esi
40f036:	7c b5                	jl     0x40efed
40f038:	8b 1d 08 96 43 00    	mov    0x439608,%ebx
40f03e:	33 ed                	xor    %ebp,%ebp
40f040:	8b 0d a0 89 43 00    	mov    0x4389a0,%ecx
40f046:	8d 44 ed 00          	lea    0x0(%ebp,%ebp,8),%eax
40f04a:	8d 34 81             	lea    (%ecx,%eax,4),%esi
40f04d:	8b 04 81             	mov    (%ecx,%eax,4),%eax
40f050:	83 f8 ff             	cmp    $0xffffffff,%eax
40f053:	75 54                	jne    0x40f0a9
40f055:	85 ed                	test   %ebp,%ebp
40f057:	c6 46 04 81          	movb   $0x81,0x4(%esi)
40f05b:	75 07                	jne    0x40f064
40f05d:	b8 f6 ff ff ff       	mov    $0xfffffff6,%eax
40f062:	eb 0a                	jmp    0x40f06e
40f064:	8b c5                	mov    %ebp,%eax
40f066:	48                   	dec    %eax
40f067:	f7 d8                	neg    %eax
40f069:	1b c0                	sbb    %eax,%eax
40f06b:	83 c0 f5             	add    $0xfffffff5,%eax
40f06e:	50                   	push   %eax
40f06f:	ff d3                	call   *%ebx
40f071:	8b f8                	mov    %eax,%edi
40f073:	83 ff ff             	cmp    $0xffffffff,%edi
40f076:	74 2a                	je     0x40f0a2
40f078:	57                   	push   %edi
40f079:	ff 15 0c 96 43 00    	call   *0x43960c
40f07f:	85 c0                	test   %eax,%eax
40f081:	74 1f                	je     0x40f0a2
40f083:	25 ff 00 00 00       	and    $0xff,%eax
40f088:	89 3e                	mov    %edi,(%esi)
40f08a:	83 f8 02             	cmp    $0x2,%eax
40f08d:	75 07                	jne    0x40f096
40f08f:	8a 46 04             	mov    0x4(%esi),%al
40f092:	0c 40                	or     $0x40,%al
40f094:	eb 18                	jmp    0x40f0ae
40f096:	83 f8 03             	cmp    $0x3,%eax
40f099:	75 16                	jne    0x40f0b1
40f09b:	8a 46 04             	mov    0x4(%esi),%al
40f09e:	0c 08                	or     $0x8,%al
40f0a0:	eb 0c                	jmp    0x40f0ae
40f0a2:	8a 46 04             	mov    0x4(%esi),%al
40f0a5:	0c 40                	or     $0x40,%al
40f0a7:	eb 05                	jmp    0x40f0ae
40f0a9:	8a 46 04             	mov    0x4(%esi),%al
40f0ac:	0c 80                	or     $0x80,%al
40f0ae:	88 46 04             	mov    %al,0x4(%esi)
40f0b1:	45                   	inc    %ebp
40f0b2:	83 fd 03             	cmp    $0x3,%ebp
40f0b5:	7c 89                	jl     0x40f040
40f0b7:	8b 15 a0 8a 43 00    	mov    0x438aa0,%edx
40f0bd:	52                   	push   %edx
40f0be:	ff 15 04 96 43 00    	call   *0x439604
40f0c4:	5f                   	pop    %edi
40f0c5:	5e                   	pop    %esi
40f0c6:	5d                   	pop    %ebp
40f0c7:	5b                   	pop    %ebx
40f0c8:	83 c4 48             	add    $0x48,%esp
40f0cb:	c3                   	ret
40f0cc:	90                   	nop
40f0cd:	90                   	nop
40f0ce:	90                   	nop
40f0cf:	90                   	nop
40f0d0:	6a 00                	push   $0x0
40f0d2:	68 00 10 00 00       	push   $0x1000
40f0d7:	6a 00                	push   $0x0
40f0d9:	ff 15 14 96 43 00    	call   *0x439614
40f0df:	85 c0                	test   %eax,%eax
40f0e1:	a3 8c 89 43 00       	mov    %eax,0x43898c
40f0e6:	75 01                	jne    0x40f0e9
40f0e8:	c3                   	ret
40f0e9:	e8 82 05 00 00       	call   0x40f670
40f0ee:	85 c0                	test   %eax,%eax
40f0f0:	75 0f                	jne    0x40f101
40f0f2:	a1 8c 89 43 00       	mov    0x43898c,%eax
40f0f7:	50                   	push   %eax
40f0f8:	ff 15 10 96 43 00    	call   *0x439610
40f0fe:	33 c0                	xor    %eax,%eax
40f100:	c3                   	ret
40f101:	b8 01 00 00 00       	mov    $0x1,%eax
40f106:	c3                   	ret
40f107:	90                   	nop
40f108:	90                   	nop
40f109:	90                   	nop
40f10a:	90                   	nop
40f10b:	90                   	nop
40f10c:	90                   	nop
40f10d:	90                   	nop
40f10e:	90                   	nop
40f10f:	90                   	nop
40f110:	56                   	push   %esi
40f111:	43                   	inc    %ebx
40f112:	32 30                	xor    (%eax),%dh
40f114:	58                   	pop    %eax
40f115:	43                   	inc    %ebx
40f116:	30 30                	xor    %dh,(%eax)
40f118:	55                   	push   %ebp
40f119:	8b ec                	mov    %esp,%ebp
40f11b:	83 ec 08             	sub    $0x8,%esp
40f11e:	53                   	push   %ebx
40f11f:	56                   	push   %esi
40f120:	57                   	push   %edi
40f121:	55                   	push   %ebp
40f122:	fc                   	cld
40f123:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40f126:	8b 45 08             	mov    0x8(%ebp),%eax
40f129:	f7 40 04 06 00 00 00 	testl  $0x6,0x4(%eax)
40f130:	0f 85 82 00 00 00    	jne    0x40f1b8
40f136:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f139:	8b 45 10             	mov    0x10(%ebp),%eax
40f13c:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f13f:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f142:	89 43 fc             	mov    %eax,-0x4(%ebx)
40f145:	8b 73 0c             	mov    0xc(%ebx),%esi
40f148:	8b 7b 08             	mov    0x8(%ebx),%edi
40f14b:	83 fe ff             	cmp    $0xffffffff,%esi
40f14e:	74 61                	je     0x40f1b1
40f150:	8d 0c 76             	lea    (%esi,%esi,2),%ecx
40f153:	83 7c 8f 04 00       	cmpl   $0x0,0x4(%edi,%ecx,4)
40f158:	74 45                	je     0x40f19f
40f15a:	56                   	push   %esi
40f15b:	55                   	push   %ebp
40f15c:	8d 6b 10             	lea    0x10(%ebx),%ebp
40f15f:	ff 54 8f 04          	call   *0x4(%edi,%ecx,4)
40f163:	5d                   	pop    %ebp
40f164:	5e                   	pop    %esi
40f165:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40f168:	0b c0                	or     %eax,%eax
40f16a:	74 33                	je     0x40f19f
40f16c:	78 3c                	js     0x40f1aa
40f16e:	8b 7b 08             	mov    0x8(%ebx),%edi
40f171:	53                   	push   %ebx
40f172:	e8 c9 c9 ff ff       	call   0x40bb40
40f177:	83 c4 04             	add    $0x4,%esp
40f17a:	8d 6b 10             	lea    0x10(%ebx),%ebp
40f17d:	56                   	push   %esi
40f17e:	53                   	push   %ebx
40f17f:	e8 fe c9 ff ff       	call   0x40bb82
40f184:	83 c4 08             	add    $0x8,%esp
40f187:	8d 0c 76             	lea    (%esi,%esi,2),%ecx
40f18a:	6a 01                	push   $0x1
40f18c:	8b 44 8f 08          	mov    0x8(%edi,%ecx,4),%eax
40f190:	e8 81 ca ff ff       	call   0x40bc16
40f195:	8b 04 8f             	mov    (%edi,%ecx,4),%eax
40f198:	89 43 0c             	mov    %eax,0xc(%ebx)
40f19b:	ff 54 8f 08          	call   *0x8(%edi,%ecx,4)
40f19f:	8b 7b 08             	mov    0x8(%ebx),%edi
40f1a2:	8d 0c 76             	lea    (%esi,%esi,2),%ecx
40f1a5:	8b 34 8f             	mov    (%edi,%ecx,4),%esi
40f1a8:	eb a1                	jmp    0x40f14b
40f1aa:	b8 00 00 00 00       	mov    $0x0,%eax
40f1af:	eb 1c                	jmp    0x40f1cd
40f1b1:	b8 01 00 00 00       	mov    $0x1,%eax
40f1b6:	eb 15                	jmp    0x40f1cd
40f1b8:	55                   	push   %ebp
40f1b9:	8d 6b 10             	lea    0x10(%ebx),%ebp
40f1bc:	6a ff                	push   $0xffffffff
40f1be:	53                   	push   %ebx
40f1bf:	e8 be c9 ff ff       	call   0x40bb82
40f1c4:	83 c4 08             	add    $0x8,%esp
40f1c7:	5d                   	pop    %ebp
40f1c8:	b8 01 00 00 00       	mov    $0x1,%eax
40f1cd:	5d                   	pop    %ebp
40f1ce:	5f                   	pop    %edi
40f1cf:	5e                   	pop    %esi
40f1d0:	5b                   	pop    %ebx
40f1d1:	8b e5                	mov    %ebp,%esp
40f1d3:	5d                   	pop    %ebp
40f1d4:	c3                   	ret
40f1d5:	55                   	push   %ebp
40f1d6:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40f1da:	8b 29                	mov    (%ecx),%ebp
40f1dc:	8b 41 1c             	mov    0x1c(%ecx),%eax
40f1df:	50                   	push   %eax
40f1e0:	8b 41 18             	mov    0x18(%ecx),%eax
40f1e3:	50                   	push   %eax
40f1e4:	e8 99 c9 ff ff       	call   0x40bb82
40f1e9:	83 c4 08             	add    $0x8,%esp
40f1ec:	5d                   	pop    %ebp
40f1ed:	c2 04 00             	ret    $0x4
40f1f0:	a1 2c 70 43 00       	mov    0x43702c,%eax
40f1f5:	83 f8 01             	cmp    $0x1,%eax
40f1f8:	74 0d                	je     0x40f207
40f1fa:	85 c0                	test   %eax,%eax
40f1fc:	75 2e                	jne    0x40f22c
40f1fe:	83 3d f4 17 43 00 01 	cmpl   $0x1,0x4317f4
40f205:	75 25                	jne    0x40f22c
40f207:	68 fc 00 00 00       	push   $0xfc
40f20c:	e8 1f 00 00 00       	call   0x40f230
40f211:	a1 ec 72 43 00       	mov    0x4372ec,%eax
40f216:	83 c4 04             	add    $0x4,%esp
40f219:	85 c0                	test   %eax,%eax
40f21b:	74 02                	je     0x40f21f
40f21d:	ff d0                	call   *%eax
40f21f:	68 ff 00 00 00       	push   $0xff
40f224:	e8 07 00 00 00       	call   0x40f230
40f229:	83 c4 04             	add    $0x4,%esp
40f22c:	c3                   	ret
40f22d:	90                   	nop
40f22e:	90                   	nop
40f22f:	90                   	nop
40f230:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40f234:	81 ec a8 01 00 00    	sub    $0x1a8,%esp
40f23a:	b8 10 1e 43 00       	mov    $0x431e10,%eax
40f23f:	53                   	push   %ebx
40f240:	55                   	push   %ebp
40f241:	56                   	push   %esi
40f242:	57                   	push   %edi
40f243:	33 ed                	xor    %ebp,%ebp
40f245:	3b 08                	cmp    (%eax),%ecx
40f247:	74 0b                	je     0x40f254
40f249:	83 c0 08             	add    $0x8,%eax
40f24c:	45                   	inc    %ebp
40f24d:	3d a0 1e 43 00       	cmp    $0x431ea0,%eax
40f252:	72 f1                	jb     0x40f245
40f254:	3b 0c ed 10 1e 43 00 	cmp    0x431e10(,%ebp,8),%ecx
40f25b:	0f 85 9a 01 00 00    	jne    0x40f3fb
40f261:	a1 2c 70 43 00       	mov    0x43702c,%eax
40f266:	83 f8 01             	cmp    $0x1,%eax
40f269:	0f 84 4e 01 00 00    	je     0x40f3bd
40f26f:	85 c0                	test   %eax,%eax
40f271:	75 0d                	jne    0x40f280
40f273:	83 3d f4 17 43 00 01 	cmpl   $0x1,0x4317f4
40f27a:	0f 84 3d 01 00 00    	je     0x40f3bd
40f280:	81 f9 fc 00 00 00    	cmp    $0xfc,%ecx
40f286:	0f 84 6f 01 00 00    	je     0x40f3fb
40f28c:	8d 84 24 b4 00 00 00 	lea    0xb4(%esp),%eax
40f293:	68 04 01 00 00       	push   $0x104
40f298:	50                   	push   %eax
40f299:	6a 00                	push   $0x0
40f29b:	ff 15 7c 96 43 00    	call   *0x43967c
40f2a1:	85 c0                	test   %eax,%eax
40f2a3:	75 16                	jne    0x40f2bb
40f2a5:	b9 05 00 00 00       	mov    $0x5,%ecx
40f2aa:	be 70 c3 42 00       	mov    $0x42c370,%esi
40f2af:	8d bc 24 b4 00 00 00 	lea    0xb4(%esp),%edi
40f2b6:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40f2b8:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
40f2ba:	a4                   	movsb  %ds:(%esi),%es:(%edi)
40f2bb:	8d bc 24 b4 00 00 00 	lea    0xb4(%esp),%edi
40f2c2:	83 c9 ff             	or     $0xffffffff,%ecx
40f2c5:	33 c0                	xor    %eax,%eax
40f2c7:	8d 9c 24 b4 00 00 00 	lea    0xb4(%esp),%ebx
40f2ce:	f2 ae                	repnz scas %es:(%edi),%al
40f2d0:	f7 d1                	not    %ecx
40f2d2:	83 f9 3c             	cmp    $0x3c,%ecx
40f2d5:	76 2d                	jbe    0x40f304
40f2d7:	8d bc 24 b4 00 00 00 	lea    0xb4(%esp),%edi
40f2de:	83 c9 ff             	or     $0xffffffff,%ecx
40f2e1:	f2 ae                	repnz scas %es:(%edi),%al
40f2e3:	f7 d1                	not    %ecx
40f2e5:	49                   	dec    %ecx
40f2e6:	6a 03                	push   $0x3
40f2e8:	8b d9                	mov    %ecx,%ebx
40f2ea:	8d 8c 24 b8 00 00 00 	lea    0xb8(%esp),%ecx
40f2f1:	83 e9 3b             	sub    $0x3b,%ecx
40f2f4:	68 6c c3 42 00       	push   $0x42c36c
40f2f9:	03 d9                	add    %ecx,%ebx
40f2fb:	53                   	push   %ebx
40f2fc:	e8 2f 18 00 00       	call   0x410b30
40f301:	83 c4 0c             	add    $0xc,%esp
40f304:	b9 06 00 00 00       	mov    $0x6,%ecx
40f309:	be 50 c3 42 00       	mov    $0x42c350,%esi
40f30e:	8d 7c 24 14          	lea    0x14(%esp),%edi
40f312:	33 c0                	xor    %eax,%eax
40f314:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40f316:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
40f318:	83 c9 ff             	or     $0xffffffff,%ecx
40f31b:	8b fb                	mov    %ebx,%edi
40f31d:	f2 ae                	repnz scas %es:(%edi),%al
40f31f:	f7 d1                	not    %ecx
40f321:	2b f9                	sub    %ecx,%edi
40f323:	8d 54 24 14          	lea    0x14(%esp),%edx
40f327:	8b d9                	mov    %ecx,%ebx
40f329:	8b f7                	mov    %edi,%esi
40f32b:	83 c9 ff             	or     $0xffffffff,%ecx
40f32e:	8b fa                	mov    %edx,%edi
40f330:	f2 ae                	repnz scas %es:(%edi),%al
40f332:	8b cb                	mov    %ebx,%ecx
40f334:	4f                   	dec    %edi
40f335:	c1 e9 02             	shr    $0x2,%ecx
40f338:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40f33a:	8b cb                	mov    %ebx,%ecx
40f33c:	8d 54 24 14          	lea    0x14(%esp),%edx
40f340:	83 e1 03             	and    $0x3,%ecx
40f343:	68 10 20 01 00       	push   $0x12010
40f348:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40f34a:	bf 4c c3 42 00       	mov    $0x42c34c,%edi
40f34f:	83 c9 ff             	or     $0xffffffff,%ecx
40f352:	f2 ae                	repnz scas %es:(%edi),%al
40f354:	f7 d1                	not    %ecx
40f356:	2b f9                	sub    %ecx,%edi
40f358:	68 24 c3 42 00       	push   $0x42c324
40f35d:	8b f7                	mov    %edi,%esi
40f35f:	8b d9                	mov    %ecx,%ebx
40f361:	8b fa                	mov    %edx,%edi
40f363:	83 c9 ff             	or     $0xffffffff,%ecx
40f366:	f2 ae                	repnz scas %es:(%edi),%al
40f368:	8b cb                	mov    %ebx,%ecx
40f36a:	4f                   	dec    %edi
40f36b:	c1 e9 02             	shr    $0x2,%ecx
40f36e:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40f370:	8b cb                	mov    %ebx,%ecx
40f372:	8d 54 24 1c          	lea    0x1c(%esp),%edx
40f376:	83 e1 03             	and    $0x3,%ecx
40f379:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40f37b:	8b 3c ed 14 1e 43 00 	mov    0x431e14(,%ebp,8),%edi
40f382:	83 c9 ff             	or     $0xffffffff,%ecx
40f385:	f2 ae                	repnz scas %es:(%edi),%al
40f387:	f7 d1                	not    %ecx
40f389:	2b f9                	sub    %ecx,%edi
40f38b:	8b f7                	mov    %edi,%esi
40f38d:	8b d9                	mov    %ecx,%ebx
40f38f:	8b fa                	mov    %edx,%edi
40f391:	83 c9 ff             	or     $0xffffffff,%ecx
40f394:	f2 ae                	repnz scas %es:(%edi),%al
40f396:	8b cb                	mov    %ebx,%ecx
40f398:	4f                   	dec    %edi
40f399:	c1 e9 02             	shr    $0x2,%ecx
40f39c:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40f39e:	8b cb                	mov    %ebx,%ecx
40f3a0:	8d 44 24 1c          	lea    0x1c(%esp),%eax
40f3a4:	83 e1 03             	and    $0x3,%ecx
40f3a7:	50                   	push   %eax
40f3a8:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40f3aa:	e8 f1 16 00 00       	call   0x410aa0
40f3af:	83 c4 0c             	add    $0xc,%esp
40f3b2:	5f                   	pop    %edi