40605f:	ff 75 14             	push   0x14(%ebp)
406062:	ff 75 10             	push   0x10(%ebp)
406065:	ff 75 0c             	push   0xc(%ebp)
406068:	ff 75 08             	push   0x8(%ebp)
40606b:	ff 15 ac 10 46 00    	call   *0x4610ac
406071:	c9                   	leave
406072:	c2 14 00             	ret    $0x14
406075:	55                   	push   %ebp
406076:	89 e5                	mov    %esp,%ebp
406078:	56                   	push   %esi
406079:	57                   	push   %edi
40607a:	8b 75 08             	mov    0x8(%ebp),%esi
40607d:	85 f6                	test   %esi,%esi
40607f:	85 f6                	test   %esi,%esi
406081:	75 04                	jne    0x406087
406083:	31 c0                	xor    %eax,%eax
406085:	eb 27                	jmp    0x4060ae
406087:	8b 4e fc             	mov    -0x4(%esi),%ecx
40608a:	d1 e9                	shr    $1,%ecx
40608c:	51                   	push   %ecx
40608d:	51                   	push   %ecx
40608e:	68 00 00 00 00       	push   $0x0
406093:	ff 15 a0 10 46 00    	call   *0x4610a0
406099:	85 c0                	test   %eax,%eax
40609b:	75 02                	jne    0x40609f
40609d:	eb 0f                	jmp    0x4060ae
40609f:	59                   	pop    %ecx
4060a0:	50                   	push   %eax
4060a1:	89 c7                	mov    %eax,%edi
4060a3:	85 c9                	test   %ecx,%ecx
4060a5:	74 06                	je     0x4060ad
4060a7:	66 ad                	lods   %ds:(%esi),%ax
4060a9:	aa                   	stos   %al,%es:(%edi)
4060aa:	49                   	dec    %ecx
4060ab:	eb f6                	jmp    0x4060a3
4060ad:	58                   	pop    %eax
4060ae:	5f                   	pop    %edi
4060af:	5e                   	pop    %esi
4060b0:	c9                   	leave
4060b1:	c2 04 00             	ret    $0x4
4060b4:	64 a1 30 00 00 00    	mov    %fs:0x30,%eax
4060ba:	8b 40 0c             	mov    0xc(%eax),%eax
4060bd:	8d 40 0c             	lea    0xc(%eax),%eax
4060c0:	89 c2                	mov    %eax,%edx
4060c2:	39 c2                	cmp    %eax,%edx
4060c4:	74 34                	je     0x4060fa
4060c6:	50                   	push   %eax
4060c7:	6a 07                	push   $0x7
4060c9:	68 be 5b 40 00       	push   $0x405bbe
4060ce:	ff 70 30             	push   0x30(%eax)
4060d1:	e8 06 03 00 00       	call   0x4063dc
4060d6:	83 f8 00             	cmp    $0x0,%eax
4060d9:	75 03                	jne    0x4060de
4060db:	40                   	inc    %eax
4060dc:	eb 1e                	jmp    0x4060fc
4060de:	6a 07                	push   $0x7
4060e0:	68 d6 5b 40 00       	push   $0x405bd6
4060e5:	ff 70 30             	push   0x30(%eax)
4060e8:	e8 ef 02 00 00       	call   0x4063dc
4060ed:	83 f8 00             	cmp    $0x0,%eax
4060f0:	75 03                	jne    0x4060f5
4060f2:	40                   	inc    %eax
4060f3:	eb 07                	jmp    0x4060fc
4060f5:	58                   	pop    %eax
4060f6:	8b 00                	mov    (%eax),%eax
4060f8:	eb c8                	jmp    0x4060c2
4060fa:	31 c0                	xor    %eax,%eax
4060fc:	c3                   	ret
4060fd:	64 a1 30 00 00 00    	mov    %fs:0x30,%eax
406103:	8b 40 18             	mov    0x18(%eax),%eax
406106:	8b 40 10             	mov    0x10(%eax),%eax
406109:	85 c0                	test   %eax,%eax
40610b:	0f 95 c0             	setne  %al
40610e:	0f b6 c0             	movzbl %al,%eax
406111:	c3                   	ret
406112:	64 a1 30 00 00 00    	mov    %fs:0x30,%eax
406118:	8a 40 68             	mov    0x68(%eax),%al
40611b:	24 70                	and    $0x70,%al
40611d:	3c 70                	cmp    $0x70,%al
40611f:	0f 94 c0             	sete   %al
406122:	0f b6 c0             	movzbl %al,%eax
406125:	c3                   	ret
406126:	64 a1 1e 00 00 00    	mov    %fs:0x1e,%eax
40612c:	8a 40 02             	mov    0x2(%eax),%al
40612f:	84 c0                	test   %al,%al
406131:	0f 95 c0             	setne  %al
406134:	0f b6 c0             	movzbl %al,%eax
406137:	c3                   	ret
406138:	55                   	push   %ebp
406139:	89 e5                	mov    %esp,%ebp
40613b:	56                   	push   %esi
40613c:	57                   	push   %edi
40613d:	53                   	push   %ebx
40613e:	be 02 5c 40 00       	mov    $0x405c02,%esi
406143:	bf 24 10 46 00       	mov    $0x461024,%edi
406148:	66 83 3e 00          	cmpw   $0x0,(%esi)
40614c:	74 40                	je     0x40618e
40614e:	56                   	push   %esi
40614f:	e8 30 01 00 00       	call   0x406284
406154:	83 f8 00             	cmp    $0x0,%eax
406157:	75 02                	jne    0x40615b
406159:	eb 6a                	jmp    0x4061c5
40615b:	89 c3                	mov    %eax,%ebx
40615d:	31 c0                	xor    %eax,%eax
40615f:	8d 48 ff             	lea    -0x1(%eax),%ecx
406162:	87 f7                	xchg   %esi,%edi
406164:	f2 66 af             	repnz scas %es:(%edi),%ax
406167:	87 f7                	xchg   %esi,%edi
406169:	80 3e 00             	cmpb   $0x0,(%esi)
40616c:	74 1d                	je     0x40618b
40616e:	56                   	push   %esi
40616f:	53                   	push   %ebx
406170:	ff 15 04 10 46 00    	call   *0x461004
406176:	83 f8 00             	cmp    $0x0,%eax
406179:	75 02                	jne    0x40617d
40617b:	eb 48                	jmp    0x4061c5
40617d:	ab                   	stos   %eax,%es:(%edi)
40617e:	31 c0                	xor    %eax,%eax
406180:	8d 48 ff             	lea    -0x1(%eax),%ecx
406183:	87 f7                	xchg   %esi,%edi
406185:	f2 ae                	repnz scas %es:(%edi),%al
406187:	87 f7                	xchg   %esi,%edi
406189:	eb de                	jmp    0x406169
40618b:	46                   	inc    %esi
40618c:	eb ba                	jmp    0x406148
40618e:	31 c0                	xor    %eax,%eax
406190:	be 0c 10 46 00       	mov    $0x46100c,%esi
406195:	81 ef 80 00 00 00    	sub    $0x80,%edi
40619b:	66 c7 06 01 00       	movw   $0x1,(%esi)
4061a0:	66 c7 46 02 01 00    	movw   $0x1,0x2(%esi)
4061a6:	c7 46 04 04 00 00 00 	movl   $0x4,0x4(%esi)
4061ad:	89 46 08             	mov    %eax,0x8(%esi)
4061b0:	89 7e 0c             	mov    %edi,0xc(%esi)
4061b3:	c7 46 10 20 00 00 00 	movl   $0x20,0x10(%esi)
4061ba:	89 46 14             	mov    %eax,0x14(%esi)
4061bd:	8b 7d 08             	mov    0x8(%ebp),%edi
4061c0:	89 37                	mov    %esi,(%edi)
4061c2:	66 f7 d0             	not    %ax
4061c5:	5b                   	pop    %ebx
4061c6:	5f                   	pop    %edi
4061c7:	5e                   	pop    %esi
4061c8:	c9                   	leave
4061c9:	c2 04 00             	ret    $0x4
4061cc:	55                   	push   %ebp
4061cd:	89 e5                	mov    %esp,%ebp
4061cf:	56                   	push   %esi
4061d0:	57                   	push   %edi
4061d1:	53                   	push   %ebx
4061d2:	8b 75 0c             	mov    0xc(%ebp),%esi
4061d5:	85 f6                	test   %esi,%esi
4061d7:	75 05                	jne    0x4061de
4061d9:	e9 9f 00 00 00       	jmp    0x40627d
4061de:	8b 36                	mov    (%esi),%esi
4061e0:	85 f6                	test   %esi,%esi
4061e2:	75 05                	jne    0x4061e9
4061e4:	e9 94 00 00 00       	jmp    0x40627d
4061e9:	8b 4e 10             	mov    0x10(%esi),%ecx
4061ec:	8b 76 0c             	mov    0xc(%esi),%esi
4061ef:	85 f6                	test   %esi,%esi
4061f1:	75 05                	jne    0x4061f8
4061f3:	e9 85 00 00 00       	jmp    0x40627d
4061f8:	c1 e1 04             	shl    $0x4,%ecx
4061fb:	8d 74 0e f0          	lea    -0x10(%esi,%ecx,1),%esi
4061ff:	85 c9                	test   %ecx,%ecx
406201:	74 77                	je     0x40627a
406203:	89 f7                	mov    %esi,%edi
406205:	ad                   	lods   %ds:(%esi),%eax
406206:	83 c6 04             	add    $0x4,%esi
406209:	89 c3                	mov    %eax,%ebx
40620b:	66 81 e3 00 40       	and    $0x4000,%bx
406210:	74 06                	je     0x406218
406212:	8b 36                	mov    (%esi),%esi
406214:	66 35 00 40          	xor    $0x4000,%ax
406218:	66 83 f8 11          	cmp    $0x11,%ax
40621c:	75 06                	jne    0x406224
40621e:	0f b6 06             	movzbl (%esi),%eax
406221:	50                   	push   %eax
406222:	eb 4e                	jmp    0x406272
406224:	66 83 f8 02          	cmp    $0x2,%ax
406228:	74 06                	je     0x406230
40622a:	66 83 f8 0b          	cmp    $0xb,%ax
40622e:	75 06                	jne    0x406236
406230:	0f b7 06             	movzwl (%esi),%eax
406233:	50                   	push   %eax
406234:	eb 3c                	jmp    0x406272
406236:	66 83 f8 03          	cmp    $0x3,%ax
40623a:	74 18                	je     0x406254
40623c:	66 83 f8 0d          	cmp    $0xd,%ax
406240:	74 12                	je     0x406254
406242:	66 83 f8 09          	cmp    $0x9,%ax
406246:	74 0c                	je     0x406254
406248:	66 83 f8 08          	cmp    $0x8,%ax
40624c:	74 06                	je     0x406254
40624e:	66 83 f8 04          	cmp    $0x4,%ax
406252:	75 04                	jne    0x406258
406254:	ff 36                	push   (%esi)
406256:	eb 1a                	jmp    0x406272
406258:	66 83 f8 05          	cmp    $0x5,%ax
40625c:	74 06                	je     0x406264
40625e:	66 83 f8 06          	cmp    $0x6,%ax
406262:	75 07                	jne    0x40626b
406264:	ff 36                	push   (%esi)
406266:	ff 76 04             	push   0x4(%esi)
406269:	eb 07                	jmp    0x406272
40626b:	b8 57 00 07 80       	mov    $0x80070057,%eax
406270:	eb 0b                	jmp    0x40627d
406272:	83 e9 10             	sub    $0x10,%ecx
406275:	8d 77 f0             	lea    -0x10(%edi),%esi
406278:	eb 85                	jmp    0x4061ff
40627a:	ff 55 08             	call   *0x8(%ebp)
40627d:	5b                   	pop    %ebx
40627e:	5f                   	pop    %edi
40627f:	5e                   	pop    %esi
406280:	c9                   	leave
406281:	c2 08 00             	ret    $0x8
406284:	55                   	push   %ebp
406285:	89 e5                	mov    %esp,%ebp
406287:	83 3d 08 10 46 00 00 	cmpl   $0x0,0x461008
40628e:	75 66                	jne    0x4062f6
406290:	83 3d 00 10 46 00 00 	cmpl   $0x0,0x461000
406297:	75 15                	jne    0x4062ae
406299:	68 a4 5b 40 00       	push   $0x405ba4
40629e:	e8 c0 00 00 00       	call   0x406363
4062a3:	85 c0                	test   %eax,%eax
4062a5:	75 02                	jne    0x4062a9
4062a7:	eb 57                	jmp    0x406300
4062a9:	a3 00 10 46 00       	mov    %eax,0x461000
4062ae:	83 3d 08 10 46 00 00 	cmpl   $0x0,0x461008
4062b5:	75 1b                	jne    0x4062d2
4062b7:	68 3f 5b 40 00       	push   $0x405b3f
4062bc:	ff 35 00 10 46 00    	push   0x461000
4062c2:	e8 3d 00 00 00       	call   0x406304
4062c7:	85 c0                	test   %eax,%eax
4062c9:	75 02                	jne    0x4062cd
4062cb:	eb 33                	jmp    0x406300
4062cd:	a3 08 10 46 00       	mov    %eax,0x461008
4062d2:	83 3d 04 10 46 00 00 	cmpl   $0x0,0x461004
4062d9:	75 1b                	jne    0x4062f6
4062db:	68 95 5b 40 00       	push   $0x405b95
4062e0:	ff 35 00 10 46 00    	push   0x461000
4062e6:	e8 19 00 00 00       	call   0x406304
4062eb:	85 c0                	test   %eax,%eax
4062ed:	75 02                	jne    0x4062f1
4062ef:	eb 0f                	jmp    0x406300
4062f1:	a3 04 10 46 00       	mov    %eax,0x461004
4062f6:	a1 08 10 46 00       	mov    0x461008,%eax
4062fb:	ff 75 08             	push   0x8(%ebp)
4062fe:	ff d0                	call   *%eax
406300:	c9                   	leave
406301:	c2 04 00             	ret    $0x4
406304:	55                   	push   %ebp
406305:	89 e5                	mov    %esp,%ebp
406307:	56                   	push   %esi
406308:	57                   	push   %edi
406309:	53                   	push   %ebx
40630a:	8b 5d 08             	mov    0x8(%ebp),%ebx
40630d:	8b 43 3c             	mov    0x3c(%ebx),%eax
406310:	8b 44 18 78          	mov    0x78(%eax,%ebx,1),%eax
406314:	01 d8                	add    %ebx,%eax
406316:	8b 48 18             	mov    0x18(%eax),%ecx
406319:	8b 50 20             	mov    0x20(%eax),%edx
40631c:	8b 3c 1a             	mov    (%edx,%ebx,1),%edi
40631f:	85 ff                	test   %edi,%edi
406321:	74 32                	je     0x406355
406323:	01 df                	add    %ebx,%edi
406325:	96                   	xchg   %eax,%esi
406326:	51                   	push   %ecx
406327:	31 c0                	xor    %eax,%eax
406329:	8d 48 ff             	lea    -0x1(%eax),%ecx
40632c:	f2 ae                	repnz scas %es:(%edi),%al
40632e:	f7 d1                	not    %ecx
406330:	29 cf                	sub    %ecx,%edi
406332:	96                   	xchg   %eax,%esi
406333:	8b 75 0c             	mov    0xc(%ebp),%esi
406336:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
406338:	59                   	pop    %ecx
406339:	75 1a                	jne    0x406355
40633b:	2b 48 18             	sub    0x18(%eax),%ecx
40633e:	f7 d9                	neg    %ecx
406340:	8b 50 24             	mov    0x24(%eax),%edx
406343:	01 da                	add    %ebx,%edx
406345:	0f b7 14 4a          	movzwl (%edx,%ecx,2),%edx
406349:	8b 40 1c             	mov    0x1c(%eax),%eax
40634c:	01 d8                	add    %ebx,%eax
40634e:	8b 04 90             	mov    (%eax,%edx,4),%eax
406351:	01 d8                	add    %ebx,%eax
406353:	eb 07                	jmp    0x40635c
406355:	83 c2 04             	add    $0x4,%edx
406358:	e2 c2                	loop   0x40631c
40635a:	31 c0                	xor    %eax,%eax
40635c:	5b                   	pop    %ebx
40635d:	5f                   	pop    %edi
40635e:	5e                   	pop    %esi
40635f:	c9                   	leave
406360:	c2 08 00             	ret    $0x8
406363:	55                   	push   %ebp
406364:	56                   	push   %esi
406365:	57                   	push   %edi
406366:	64 a1 30 00 00 00    	mov    %fs:0x30,%eax
40636c:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
406371:	75 05                	jne    0x406378
406373:	8b 40 08             	mov    0x8(%eax),%eax
406376:	eb 5e                	jmp    0x4063d6
406378:	8b 40 0c             	mov    0xc(%eax),%eax
40637b:	8d 68 0c             	lea    0xc(%eax),%ebp
40637e:	8b 45 00             	mov    0x0(%ebp),%eax
406381:	8b 70 30             	mov    0x30(%eax),%esi
406384:	0f b7 48 2e          	movzwl 0x2e(%eax),%ecx
406388:	8b 7c 24 10          	mov    0x10(%esp),%edi
40638c:	66 8b 16             	mov    (%esi),%dx
40638f:	66 3b 17             	cmp    (%edi),%dx
406392:	74 27                	je     0x4063bb
406394:	66 83 fa 41          	cmp    $0x41,%dx
406398:	72 06                	jb     0x4063a0
40639a:	66 83 fa 5a          	cmp    $0x5a,%dx
40639e:	76 06                	jbe    0x4063a6
4063a0:	66 83 fa 61          	cmp    $0x61,%dx
4063a4:	72 0c                	jb     0x4063b2
4063a6:	66 83 fa 7a          	cmp    $0x7a,%dx
4063aa:	77 06                	ja     0x4063b2
4063ac:	66 83 f2 20          	xor    $0x20,%dx
4063b0:	eb 02                	jmp    0x4063b4
4063b2:	eb 1a                	jmp    0x4063ce
4063b4:	66 3b 17             	cmp    (%edi),%dx
4063b7:	74 02                	je     0x4063bb
4063b9:	eb 13                	jmp    0x4063ce
4063bb:	83 c7 02             	add    $0x2,%edi
4063be:	83 c6 02             	add    $0x2,%esi
4063c1:	83 e9 02             	sub    $0x2,%ecx
4063c4:	83 f9 00             	cmp    $0x0,%ecx
4063c7:	75 c3                	jne    0x40638c
4063c9:	8b 40 18             	mov    0x18(%eax),%eax
4063cc:	eb 08                	jmp    0x4063d6
4063ce:	8b 00                	mov    (%eax),%eax
4063d0:	39 c5                	cmp    %eax,%ebp
4063d2:	75 ad                	jne    0x406381
4063d4:	31 c0                	xor    %eax,%eax
4063d6:	5f                   	pop    %edi
4063d7:	5e                   	pop    %esi
4063d8:	5d                   	pop    %ebp
4063d9:	c2 04 00             	ret    $0x4
4063dc:	55                   	push   %ebp
4063dd:	89 e5                	mov    %esp,%ebp
4063df:	56                   	push   %esi
4063e0:	57                   	push   %edi
4063e1:	8b 75 08             	mov    0x8(%ebp),%esi
4063e4:	8b 7d 0c             	mov    0xc(%ebp),%edi
4063e7:	8b 4d 10             	mov    0x10(%ebp),%ecx
4063ea:	31 c0                	xor    %eax,%eax
4063ec:	83 f9 ff             	cmp    $0xffffffff,%ecx