408ee0:	c3                   	ret
408ee1:	8b ff                	mov    %edi,%edi
408ee3:	55                   	push   %ebp
408ee4:	8b ec                	mov    %esp,%ebp
408ee6:	51                   	push   %ecx
408ee7:	51                   	push   %ecx
408ee8:	56                   	push   %esi
408ee9:	ff 15 d0 f0 40 00    	call   *0x40f0d0
408eef:	8b f0                	mov    %eax,%esi
408ef1:	85 f6                	test   %esi,%esi
408ef3:	0f 84 85 00 00 00    	je     0x408f7e
408ef9:	53                   	push   %ebx
408efa:	56                   	push   %esi
408efb:	e8 aa ff ff ff       	call   0x408eaa
408f00:	33 db                	xor    %ebx,%ebx
408f02:	2b c6                	sub    %esi,%eax
408f04:	53                   	push   %ebx
408f05:	53                   	push   %ebx
408f06:	53                   	push   %ebx
408f07:	53                   	push   %ebx
408f08:	d1 f8                	sar    $1,%eax
408f0a:	50                   	push   %eax
408f0b:	56                   	push   %esi
408f0c:	53                   	push   %ebx
408f0d:	53                   	push   %ebx
408f0e:	89 45 f8             	mov    %eax,-0x8(%ebp)
408f11:	e8 28 ff ff ff       	call   0x408e3e
408f16:	83 c4 24             	add    $0x24,%esp
408f19:	89 45 fc             	mov    %eax,-0x4(%ebp)
408f1c:	85 c0                	test   %eax,%eax
408f1e:	75 0b                	jne    0x408f2b
408f20:	56                   	push   %esi
408f21:	ff 15 d4 f0 40 00    	call   *0x40f0d4
408f27:	33 c0                	xor    %eax,%eax
408f29:	eb 52                	jmp    0x408f7d
408f2b:	57                   	push   %edi
408f2c:	50                   	push   %eax
408f2d:	e8 f9 e8 ff ff       	call   0x40782b
408f32:	8b f8                	mov    %eax,%edi
408f34:	59                   	pop    %ecx
408f35:	53                   	push   %ebx
408f36:	85 ff                	test   %edi,%edi
408f38:	75 11                	jne    0x408f4b
408f3a:	e8 3a e9 ff ff       	call   0x407879
408f3f:	59                   	pop    %ecx
408f40:	56                   	push   %esi
408f41:	ff 15 d4 f0 40 00    	call   *0x40f0d4
408f47:	33 c0                	xor    %eax,%eax
408f49:	eb 31                	jmp    0x408f7c
408f4b:	53                   	push   %ebx
408f4c:	ff 75 fc             	push   -0x4(%ebp)
408f4f:	57                   	push   %edi
408f50:	ff 75 f8             	push   -0x8(%ebp)
408f53:	56                   	push   %esi
408f54:	53                   	push   %ebx
408f55:	53                   	push   %ebx
408f56:	e8 e3 fe ff ff       	call   0x408e3e
408f5b:	83 c4 20             	add    $0x20,%esp
408f5e:	85 c0                	test   %eax,%eax
408f60:	75 08                	jne    0x408f6a
408f62:	57                   	push   %edi
408f63:	e8 11 e9 ff ff       	call   0x407879
408f68:	eb 08                	jmp    0x408f72
408f6a:	53                   	push   %ebx
408f6b:	e8 09 e9 ff ff       	call   0x407879
408f70:	8b df                	mov    %edi,%ebx
408f72:	59                   	pop    %ecx
408f73:	56                   	push   %esi
408f74:	ff 15 d4 f0 40 00    	call   *0x40f0d4
408f7a:	8b c3                	mov    %ebx,%eax
408f7c:	5f                   	pop    %edi
408f7d:	5b                   	pop    %ebx
408f7e:	5e                   	pop    %esi
408f7f:	c9                   	leave
408f80:	c3                   	ret
408f81:	64 a1 18 00 00 00    	mov    %fs:0x18,%eax
408f87:	8b 40 30             	mov    0x30(%eax),%eax
408f8a:	8b 40 68             	mov    0x68(%eax),%eax
408f8d:	c1 e8 08             	shr    $0x8,%eax
408f90:	24 01                	and    $0x1,%al
408f92:	c3                   	ret
408f93:	64 a1 18 00 00 00    	mov    %fs:0x18,%eax
408f99:	8b 40 30             	mov    0x30(%eax),%eax
408f9c:	8b 40 10             	mov    0x10(%eax),%eax
408f9f:	8b 40 08             	mov    0x8(%eax),%eax
408fa2:	c1 e8 1f             	shr    $0x1f,%eax
408fa5:	c3                   	ret
408fa6:	8b ff                	mov    %edi,%edi
408fa8:	55                   	push   %ebp
408fa9:	8b ec                	mov    %esp,%ebp
408fab:	51                   	push   %ecx
408fac:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
408fb0:	e8 de ff ff ff       	call   0x408f93
408fb5:	84 c0                	test   %al,%al
408fb7:	75 09                	jne    0x408fc2
408fb9:	8d 45 fc             	lea    -0x4(%ebp),%eax
408fbc:	50                   	push   %eax
408fbd:	e8 6b 0d 00 00       	call   0x409d2d
408fc2:	33 c0                	xor    %eax,%eax
408fc4:	83 7d fc 01          	cmpl   $0x1,-0x4(%ebp)
408fc8:	0f 95 c0             	setne  %al
408fcb:	c9                   	leave
408fcc:	c3                   	ret
408fcd:	8b ff                	mov    %edi,%edi
408fcf:	55                   	push   %ebp
408fd0:	8b ec                	mov    %esp,%ebp
408fd2:	51                   	push   %ecx
408fd3:	51                   	push   %ecx
408fd4:	53                   	push   %ebx
408fd5:	56                   	push   %esi
408fd6:	6a 38                	push   $0x38
408fd8:	6a 40                	push   $0x40
408fda:	e8 84 e9 ff ff       	call   0x407963
408fdf:	8b f0                	mov    %eax,%esi
408fe1:	33 db                	xor    %ebx,%ebx
408fe3:	89 75 f8             	mov    %esi,-0x8(%ebp)
408fe6:	59                   	pop    %ecx
408fe7:	59                   	pop    %ecx
408fe8:	85 f6                	test   %esi,%esi
408fea:	75 04                	jne    0x408ff0
408fec:	8b f3                	mov    %ebx,%esi
408fee:	eb 4b                	jmp    0x40903b
408ff0:	8d 86 00 0e 00 00    	lea    0xe00(%esi),%eax
408ff6:	3b f0                	cmp    %eax,%esi
408ff8:	74 41                	je     0x40903b
408ffa:	57                   	push   %edi
408ffb:	8d 7e 20             	lea    0x20(%esi),%edi
408ffe:	8b f0                	mov    %eax,%esi
409000:	53                   	push   %ebx
409001:	68 a0 0f 00 00       	push   $0xfa0
409006:	8d 47 e0             	lea    -0x20(%edi),%eax
409009:	50                   	push   %eax
40900a:	e8 7c 0e 00 00       	call   0x409e8b
40900f:	83 4f f8 ff          	orl    $0xffffffff,-0x8(%edi)
409013:	80 67 0d f8          	andb   $0xf8,0xd(%edi)
409017:	89 1f                	mov    %ebx,(%edi)
409019:	8d 7f 38             	lea    0x38(%edi),%edi
40901c:	89 5f cc             	mov    %ebx,-0x34(%edi)
40901f:	8d 47 e0             	lea    -0x20(%edi),%eax
409022:	c7 47 d0 00 00 0a 0a 	movl   $0xa0a0000,-0x30(%edi)
409029:	c6 47 d4 0a          	movb   $0xa,-0x2c(%edi)
40902d:	89 5f d6             	mov    %ebx,-0x2a(%edi)
409030:	88 5f da             	mov    %bl,-0x26(%edi)
409033:	3b c6                	cmp    %esi,%eax
409035:	75 c9                	jne    0x409000
409037:	8b 75 f8             	mov    -0x8(%ebp),%esi
40903a:	5f                   	pop    %edi
40903b:	53                   	push   %ebx
40903c:	e8 38 e8 ff ff       	call   0x407879
409041:	59                   	pop    %ecx
409042:	8b c6                	mov    %esi,%eax
409044:	5e                   	pop    %esi
409045:	5b                   	pop    %ebx
409046:	c9                   	leave
409047:	c3                   	ret
409048:	8b ff                	mov    %edi,%edi
40904a:	55                   	push   %ebp
40904b:	8b ec                	mov    %esp,%ebp
40904d:	56                   	push   %esi
40904e:	8b 75 08             	mov    0x8(%ebp),%esi
409051:	85 f6                	test   %esi,%esi
409053:	74 25                	je     0x40907a
409055:	53                   	push   %ebx
409056:	8d 9e 00 0e 00 00    	lea    0xe00(%esi),%ebx
40905c:	57                   	push   %edi
40905d:	8b fe                	mov    %esi,%edi
40905f:	3b f3                	cmp    %ebx,%esi
409061:	74 0e                	je     0x409071
409063:	57                   	push   %edi
409064:	ff 15 6c f0 40 00    	call   *0x40f06c
40906a:	83 c7 38             	add    $0x38,%edi
40906d:	3b fb                	cmp    %ebx,%edi
40906f:	75 f2                	jne    0x409063
409071:	56                   	push   %esi
409072:	e8 02 e8 ff ff       	call   0x407879
409077:	59                   	pop    %ecx
409078:	5f                   	pop    %edi
409079:	5b                   	pop    %ebx
40907a:	5e                   	pop    %esi
40907b:	5d                   	pop    %ebp
40907c:	c3                   	ret
40907d:	6a 10                	push   $0x10
40907f:	68 d8 4b 41 00       	push   $0x414bd8
409084:	e8 87 a3 ff ff       	call   0x403410
409089:	81 7d 08 00 20 00 00 	cmpl   $0x2000,0x8(%ebp)
409090:	72 21                	jb     0x4090b3
409092:	e8 b9 e8 ff ff       	call   0x407950
409097:	6a 09                	push   $0x9
409099:	5e                   	pop    %esi
40909a:	89 30                	mov    %esi,(%eax)
40909c:	e8 7b cc ff ff       	call   0x405d1c
4090a1:	8b c6                	mov    %esi,%eax
4090a3:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4090a6:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4090ad:	59                   	pop    %ecx
4090ae:	5f                   	pop    %edi
4090af:	5e                   	pop    %esi
4090b0:	5b                   	pop    %ebx
4090b1:	c9                   	leave
4090b2:	c3                   	ret
4090b3:	33 f6                	xor    %esi,%esi
4090b5:	89 75 e4             	mov    %esi,-0x1c(%ebp)
4090b8:	6a 07                	push   $0x7
4090ba:	e8 0d e7 ff ff       	call   0x4077cc
4090bf:	59                   	pop    %ecx
4090c0:	89 75 fc             	mov    %esi,-0x4(%ebp)
4090c3:	8b fe                	mov    %esi,%edi
4090c5:	a1 78 72 41 00       	mov    0x417278,%eax
4090ca:	89 7d e0             	mov    %edi,-0x20(%ebp)
4090cd:	39 45 08             	cmp    %eax,0x8(%ebp)
4090d0:	7c 1f                	jl     0x4090f1
4090d2:	39 34 bd 78 70 41 00 	cmp    %esi,0x417078(,%edi,4)
4090d9:	75 31                	jne    0x40910c
4090db:	e8 ed fe ff ff       	call   0x408fcd
4090e0:	89 04 bd 78 70 41 00 	mov    %eax,0x417078(,%edi,4)
4090e7:	85 c0                	test   %eax,%eax
4090e9:	75 14                	jne    0x4090ff
4090eb:	6a 0c                	push   $0xc
4090ed:	5e                   	pop    %esi
4090ee:	89 75 e4             	mov    %esi,-0x1c(%ebp)
4090f1:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4090f8:	e8 15 00 00 00       	call   0x409112
4090fd:	eb a2                	jmp    0x4090a1
4090ff:	a1 78 72 41 00       	mov    0x417278,%eax
409104:	83 c0 40             	add    $0x40,%eax
409107:	a3 78 72 41 00       	mov    %eax,0x417278
40910c:	47                   	inc    %edi
40910d:	eb bb                	jmp    0x4090ca
40910f:	8b 75 e4             	mov    -0x1c(%ebp),%esi
409112:	6a 07                	push   $0x7
409114:	e8 fb e6 ff ff       	call   0x407814
409119:	59                   	pop    %ecx
40911a:	c3                   	ret
40911b:	8b ff                	mov    %edi,%edi
40911d:	55                   	push   %ebp
40911e:	8b ec                	mov    %esp,%ebp
409120:	8b 45 08             	mov    0x8(%ebp),%eax
409123:	8b c8                	mov    %eax,%ecx
409125:	83 e0 3f             	and    $0x3f,%eax
409128:	c1 f9 06             	sar    $0x6,%ecx
40912b:	6b c0 38             	imul   $0x38,%eax,%eax
40912e:	03 04 8d 78 70 41 00 	add    0x417078(,%ecx,4),%eax
409135:	50                   	push   %eax
409136:	ff 15 64 f0 40 00    	call   *0x40f064
40913c:	5d                   	pop    %ebp
40913d:	c3                   	ret
40913e:	8b ff                	mov    %edi,%edi
409140:	55                   	push   %ebp
409141:	8b ec                	mov    %esp,%ebp
409143:	8b 45 08             	mov    0x8(%ebp),%eax
409146:	8b c8                	mov    %eax,%ecx
409148:	83 e0 3f             	and    $0x3f,%eax
40914b:	c1 f9 06             	sar    $0x6,%ecx
40914e:	6b c0 38             	imul   $0x38,%eax,%eax
409151:	03 04 8d 78 70 41 00 	add    0x417078(,%ecx,4),%eax
409158:	50                   	push   %eax
409159:	ff 15 68 f0 40 00    	call   *0x40f068
40915f:	5d                   	pop    %ebp
409160:	c3                   	ret
409161:	8b ff                	mov    %edi,%edi
409163:	55                   	push   %ebp
409164:	8b ec                	mov    %esp,%ebp
409166:	53                   	push   %ebx
409167:	56                   	push   %esi
409168:	8b 75 08             	mov    0x8(%ebp),%esi
40916b:	57                   	push   %edi
40916c:	85 f6                	test   %esi,%esi
40916e:	78 67                	js     0x4091d7
409170:	3b 35 78 72 41 00    	cmp    0x417278,%esi
409176:	73 5f                	jae    0x4091d7
409178:	8b c6                	mov    %esi,%eax
40917a:	8b de                	mov    %esi,%ebx
40917c:	83 e0 3f             	and    $0x3f,%eax
40917f:	c1 eb 06             	shr    $0x6,%ebx
409182:	6b f8 38             	imul   $0x38,%eax,%edi
409185:	8b 04 9d 78 70 41 00 	mov    0x417078(,%ebx,4),%eax
40918c:	f6 44 07 28 01       	testb  $0x1,0x28(%edi,%eax,1)
409191:	74 44                	je     0x4091d7
409193:	83 7c 07 18 ff       	cmpl   $0xffffffff,0x18(%edi,%eax,1)
409198:	74 3d                	je     0x4091d7
40919a:	e8 f7 cd ff ff       	call   0x405f96
40919f:	83 f8 01             	cmp    $0x1,%eax
4091a2:	75 23                	jne    0x4091c7
4091a4:	33 c0                	xor    %eax,%eax
4091a6:	2b f0                	sub    %eax,%esi
4091a8:	74 14                	je     0x4091be
4091aa:	83 ee 01             	sub    $0x1,%esi
4091ad:	74 0a                	je     0x4091b9
4091af:	83 ee 01             	sub    $0x1,%esi
4091b2:	75 13                	jne    0x4091c7
4091b4:	50                   	push   %eax
4091b5:	6a f4                	push   $0xfffffff4
4091b7:	eb 08                	jmp    0x4091c1
4091b9:	50                   	push   %eax
4091ba:	6a f5                	push   $0xfffffff5
4091bc:	eb 03                	jmp    0x4091c1
4091be:	50                   	push   %eax
4091bf:	6a f6                	push   $0xfffffff6
4091c1:	ff 15 d8 f0 40 00    	call   *0x40f0d8
4091c7:	8b 04 9d 78 70 41 00 	mov    0x417078(,%ebx,4),%eax
4091ce:	83 4c 38 18 ff       	orl    $0xffffffff,0x18(%eax,%edi,1)
4091d3:	33 c0                	xor    %eax,%eax
4091d5:	eb 16                	jmp    0x4091ed
4091d7:	e8 74 e7 ff ff       	call   0x407950
4091dc:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
4091e2:	e8 56 e7 ff ff       	call   0x40793d
4091e7:	83 20 00             	andl   $0x0,(%eax)
4091ea:	83 c8 ff             	or     $0xffffffff,%eax
4091ed:	5f                   	pop    %edi
4091ee:	5e                   	pop    %esi
4091ef:	5b                   	pop    %ebx
4091f0:	5d                   	pop    %ebp
4091f1:	c3                   	ret
4091f2:	8b ff                	mov    %edi,%edi
4091f4:	55                   	push   %ebp
4091f5:	8b ec                	mov    %esp,%ebp
4091f7:	8b 4d 08             	mov    0x8(%ebp),%ecx
4091fa:	83 f9 fe             	cmp    $0xfffffffe,%ecx
4091fd:	75 15                	jne    0x409214
4091ff:	e8 39 e7 ff ff       	call   0x40793d
409204:	83 20 00             	andl   $0x0,(%eax)
409207:	e8 44 e7 ff ff       	call   0x407950
40920c:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
409212:	eb 43                	jmp    0x409257
409214:	85 c9                	test   %ecx,%ecx
409216:	78 27                	js     0x40923f
409218:	3b 0d 78 72 41 00    	cmp    0x417278,%ecx
40921e:	73 1f                	jae    0x40923f
409220:	8b c1                	mov    %ecx,%eax
409222:	83 e1 3f             	and    $0x3f,%ecx
409225:	c1 e8 06             	shr    $0x6,%eax
409228:	6b c9 38             	imul   $0x38,%ecx,%ecx
40922b:	8b 04 85 78 70 41 00 	mov    0x417078(,%eax,4),%eax
409232:	f6 44 08 28 01       	testb  $0x1,0x28(%eax,%ecx,1)
409237:	74 06                	je     0x40923f
409239:	8b 44 08 18          	mov    0x18(%eax,%ecx,1),%eax
40923d:	5d                   	pop    %ebp
40923e:	c3                   	ret
40923f:	e8 f9 e6 ff ff       	call   0x40793d
409244:	83 20 00             	andl   $0x0,(%eax)
409247:	e8 04 e7 ff ff       	call   0x407950
40924c:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
409252:	e8 c5 ca ff ff       	call   0x405d1c
409257:	83 c8 ff             	or     $0xffffffff,%eax
40925a:	5d                   	pop    %ebp
40925b:	c3                   	ret
40925c:	83 3d 70 70 41 00 00 	cmpl   $0x0,0x417070
409263:	75 0a                	jne    0x40926f
409265:	c7 05 70 70 41 00 00 	movl   $0x4000,0x417070
40926c:	40 00 00